import java.awt.Graphics; public class JParabola extends JOxy { private double a, b, c; public JParabola() { setA(1.0); setB(0.0); setC(0.0); } @Override public void paintComponent(Graphics g) { super.paintComponent(g); int w = getWidth() - 1; double x0 = 0.0, y0 = 0.0; for (int i = 0; i < w; i++) { double x = xr(i); double y = getA() * x * x + getB() * x + getC(); if (i == 0) { x0 = x; y0 = y; } else { g.drawLine(xg(x0), yg(y0), xg(x), yg(y)); x0 = x; y0 = y; } } } public double getA() { return a; } public final void setA(double a) { this.a = a; repaint(); } public double getB() { return b; } public final void setB(double b) { this.b = b; repaint(); } public double getC() { return c; } public final void setC(double c) { this.c = c; repaint(); } }
Categoria: Informatica
Logo Peano
public class JLogo extends JComponent { public JLogo() { setPreferredSize(new Dimension(80, 100)); } @Override public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setColor(new Color(0, 200, 255)); g2.setStroke(new BasicStroke(10.0f)); int[] x = {10, 30, 30, 10, 10, 30, 30, 50, 50, 70, 70, 50, 50, 70}; int[] y = {70, 70, 50, 50, 10, 10, 30, 30, 10, 10, 50, 50, 70, 70}; g2.drawPolyline(x, y, x.length); g2.setFont(new Font("Arial", Font.BOLD, 24)); g2.setColor(Color.RED); g2.drawString("Peano", 5, 95); } }
Grafica in Java
Cartella compressa contenente il progetto NetBeans con gli esempi: Canvas [ZIP]
OperatoriSuiBit.java
public class OperatoriSuiBit { public static String bin(int i) { return Integer.toBinaryString(i)+"b"; } public static void main(String[] args) { int a, b, c; System.out.println("Operatori logici"); a = 10; System.out.println("a = "+a+" = "+bin(a)); b = 12; System.out.println("b = "+b+" = "+bin(b)); c = a & b; System.out.println("c = a & b = "+c+" = "+bin(c)); c = a | b; System.out.println("c = a | b = "+c+" = "+bin(c)); c = ~a; System.out.println("c = ~a = "+c+" = "+bin(c)); System.out.println(); System.out.println("Operatori di spostamento"); a = 20; System.out.println("a = "+a+" = "+bin(a)); c = a << 2; System.out.println("c = a << 2 = "+c+" = "+bin(c)); c = a >> 2; System.out.println("c = a >> 2 = "+c+" = "+bin(c)); c = a >>> 2; System.out.println("c = a >>> 2 = "+c+" = "+bin(c)); b = -20; System.out.println("b = "+b+" = "+bin(b)); c = b << 2; System.out.println("c = b << 2 = "+c+" = "+bin(c)); c = b >> 2; System.out.println("c = b >> 2 = "+c+" = "+bin(c)); c = b >>> 2; System.out.println("c = b >>> 2 = "+c+" = "+bin(c)); } }
Materiale didattico per la 3ª E – CSS
Ordinamento per selezione
program OrdinamentoPerSelezione; {$APPTYPE CONSOLE} var a: array[1..100] of Integer; n: Integer; procedure Legge; var i: Integer; begin for i:=1 to n do begin Write('a[', i, ']? '); ReadLn(a[i]); end; end; procedure Scrive; var i: Integer; begin for i:=1 to n do WriteLn('a[', i, ']= ', a[i]); end; procedure Scambia(var x, y: Integer); var t: Integer; begin t:=x; x:=y; y:=t; end; procedure Ordina; var i, j: Integer; begin for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then Scambia(a[i], a[j]); end; begin Write('Quanti elementi? '); ReadLn(n); Legge; Ordina; WriteLn('Array ordinato'); Scrive; ReadLn; end.
Temperature – Esempio di programma con gli array
const nMax = 100; var frmTemperature: TfrmTemperature; citta: array[1..nMax] of String; temp: array[1..nMax] of Double; nCitta: Integer;
procedure TfrmTemperature.btnCaricaClick(Sender: TObject); var i: Integer; begin for i:=1 to nMax do begin citta[i]:=InputBox('Città', 'Inserisci il nome (stringa vuota per finire): ', ''); if citta[i]='' then begin nCitta:=i-1; Exit; end; temp[i]:=StrToFLoat(InputBox('Temperature', 'Inserisci la temperatura di '+citta[i]+': ', '')); end; end; procedure TfrmTemperature.btnVisualizzaClick(Sender: TObject); var i: Integer; s: String; begin s:='Elenco delle città inserite e delle temperature'+#13; for i:=1 to nCitta do s:=s+citta[i]+' '+FloatToStr(temp[i])+' °C'+#13; ShowMessage(s); end; procedure TfrmTemperature.btnCittaMinClick(Sender: TObject); var i: Integer; min: Double; s: String; begin min:=100; // ricerca prima la temperatura minima for i:=1 to nCitta do if temp[i]<min then min:=temp[i]; // ricerca poi tutte le città che hanno la temperatura minima s:='Città con la temperatura minima: '+FloatToStr(min)+' °C'+#13; for i:=1 to nCitta do if temp[i]=min then s:=s+citta[i]+#13; ShowMessage(s); end;
Algoritmi di ordinamento
- Ordinamento per selezione: V-ORD-SE.PAS
procedure Ordina; var i, j: Integer; begin for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then Scambia(a[i], a[j]); end;
- Ordinamento a bolla: V-ORD-BO.PAS
procedure Ordina; var i, j: Integer; begin for i:=n-1 downto 1 do for j:=1 to i do if a[j]>a[j+1] then Scambia(a[j], a[j+1]); end;
- Ordinamento per inserzione: V-ORD-IN.PAS
procedure Ordina; var i, j, t: Integer; begin for i:=2 to n do begin t:=a[i]; j:=i; while (a[j-1]>t) and (j>1) do begin a[j]:=a[j-1]; Dec(j); end; a[j]:=t; end; end;
- Ordinamento veloce (quick sort): V-ORD-VE.PAS
procedure Ordina(inf, sup: Integer); var i, j, p: Integer; begin i:=inf; j:=sup; p:=a[(inf+sup) div 2]; repeat while a[i]<p do Inc(i); while a[j]>p do Dec(j); if i<=j then begin Scambia(a[i], a[j]); Inc(i); Dec(j); end; until i>j; if inf<j then Ordina(inf, j); if i<sup then Ordina(i, sup); end;
- File da includere i tutti programmi precedenti: V-ORD-XX.PAS
Corso di Delphi
A partire da giovedì 6 ottobre 2011 dalle 14:30 alle 16:30 per 3 giovedì consecutivi avrà inizio il corso sulla programmazione in Delphi tenuto dal prof. Gianfranco Oddenino. Programma:
06/10/2011 – L’ambiente di sviluppo, gli oggetti visuali di Windows, l’interazione con l’utente.
13/10/2011 – La grafica in Windows, le animazioni.
20/10/2011 – La programmazione ad oggetti: costruzione di nuovi oggetti e loro utilizzo.