program aufg2;
const ANZ = 20;
type tIndex = 1..ANZ; tFeld = array[tIndex] of integer; var A: tFeld; i: integer;
procedure loeschen(var ioFeld: tFeld); var element: integer; i, j: integer; begin for i:= 1 to 20 do begin element:= ioFeld[i]; for j:= i+1 to 20 do if ioFeld[j]=element then ioFeld[j] := 0; end; end;
BEGIN for i:=1 to ANZ do readln(A[i]); loeschen(A); for i:=1 to ANZ do write(A[i],' '); writeln(); END.
program pascal;
type tRefListe = ^tListe; tListe = record wert:integer; next:tRefListe end; var P, neu, neuP: tRefListe;
function Peck(inRefListe: tRefListe) : tRefListe; var vor, nach, kopf, ende, hilfe: tRefListe; begin vor:= inRefListe; if vor^.next = nil then {Liste hat nur ein Element} begin new(kopf); kopf^.wert:= 1; new(ende); ende^.wert:= 1; kopf^.next:= ende; ende^.next:=nil; Peck:=kopf; end else begin nach:=vor^.next; new(kopf); kopf^.wert:= 1; hilfe:=kopf; while (nach<>nil) do begin new(ende); ende^.wert:= vor^.wert+nach^.wert; ende^.next:=nil; hilfe^.next:= ende; hilfe:=ende; vor:= nach; nach:=nach^.next; end; new(ende); ende^.wert:=1; ende^.next:=nil; hilfe^.next:= ende; Peck:= kopf; end; end;
BEGIN new(neu); neu^.wert:=1; neu^.next:=nil; P:=neu; new(neu); neu^.wert:=4; neu^.next:=P; P:=neu; new(neu); neu^.wert:=6; neu^.next:=P; P:=neu; new(neu); neu^.wert:=4; neu^.next:=P; P:=neu; new(neu); neu^.wert:=1; neu^.next:=P; P:=neu; neuP := Peck(P); while (neuP <> nil) do begin write(neuP^.wert, ' '); neuP:= neuP^.next; end; writeln(); END.
program aufgabe4;
type tNatZahl = 1..maxint; tRefBinBaum = ^tBinBaum; tBinBaum = record Wert:tNatZahl; links:tRefBinBaum; rechts:tRefBinBaum end;
function OKBaum(inRefWurzel: tRefBinBaum; inMax: tNatZahl) : boolean; var left,right:boolean; begin if (inRefWurzel^.links=nil) and (inRefWurzel^.rechts=nil) then {Blatt erreicht} begin if inMax < inRefWurzel^.Wert then OKBaum:=true else OKBaum:= false; end else {innerer Knoten} begin if inMax < inRefWurzel^.Wert then inMax:= inRefWurzel^.Wert; if inRefWurzel^.links<>nil then left:= OKBaum(inRefWurzel^.links, inMax) else left:=true; if inRefWurzel^.rechts<>nil then right := OKBaum(inRefWurzel^.rechts,inMax) else right:= true; OKBaum:= right and left; end; end;
BEGIN END.
program heron;
var w,a: real; i,n: integer;
BEGIN writeln('a'); readln(a); writeln('n'); readln(n); w:=1; for i:=1 to n do w:=0.5*(w+a/w); writeln(w); END.
program heron_rek;
var w,a: real; i,n: integer; function heron(inA: real; inN : integer): real; var w: real; begin if inN=0 then heron:= inA/2 else begin w:= heron(inA, inN-1); writeln(w); heron:= 0.5* (w+inA/w); end; end;
BEGIN writeln('a'); readln(a); writeln('n'); readln(n); w:= heron(a, n); writeln(w); END.
program untitled;
const FELDGROESSE=5;
type tIndex=1..FELDGROESSE; tFeld=array[tIndex] of integer;
function istDrin(inFeldA: tFeld; inFeldB: tFeld): boolean; var i,j: integer; OK,elem_drin: boolean; begin OK:= true; for i:= 1 to FELDGROESSE do begin elem_drin:= false; for j:= 1 to FELDGROESSE do if inFeldA[i]=inFeldB[j] then elem_drin:= true; OK:= OK and elem_drin; end; end;
BEGIN END.
program PascalDreieck;
type tRefListe = ^tListe; tListe = record wert:integer; next:tRefListe end;
var Liste,zeiger,neu, NeuZeile : tRefListe; function naechsteZeile(inListe: tRefListe) : tRefListe; var zeigerneu, zeigeralt, neuerKnoten, zeigerneuLetzter: tRefListe; vorWert:integer; begin vorWert:=0; zeigeralt:= inListe; zeigerneu:=nil; while zeigeralt<>nil do begin new(neuerKnoten); neuerKnoten^.wert:= vorWert + zeigeralt^.wert; neuerKnoten^.next:=nil; if zeigerneu=nil then begin zeigerneu:=neuerKnoten; zeigerneuLetzter:= neuerKnoten; end else begin zeigerneuLetzter^.next:= neuerKnoten; zeigerneuLetzter:= neuerKnoten; end; vorWert := zeigeralt^.wert; zeigeralt:= zeigeralt^.next; end; {while} {letztes Element erzeugen} new(neuerKnoten); zeigerneuLetzter^.next := neuerKnoten; neuerKnoten^.wert := 1; neuerKnoten^.next := nil; naechsteZeile := zeigerneu; end; procedure drucken(inListe: tRefListe); var zeiger: tRefListe; begin zeiger:= inListe; while zeiger<> nil do begin write(zeiger^.wert, ' '); zeiger:= zeiger^.next; end; writeln(); end;
BEGIN new(Liste); Liste^.wert:=1; Liste^.next:=nil; zeiger:=Liste; new(neu); neu^.wert:=4; neu^.next:=nil; zeiger^.next:=neu; zeiger:= neu; new(neu); neu^.wert:=6; neu^.next:=nil; zeiger^.next:=neu; zeiger:= neu; new(neu); neu^.wert:=4; neu^.next:=nil; zeiger^.next:=neu; zeiger:= neu;
new(neu); neu^.wert:=1; neu^.next:=nil; zeiger^.next:=neu; zeiger:= neu; write(' '); drucken(Liste); neuZeile := naechsteZeile(Liste); drucken(neuZeile); END.
program quadrat;
var n,i: integer; istQuadrat: boolean;
BEGIN readln(n); istQuadrat:= false; i:= 0; while (not istQuadrat) and ((i*i)<=n) do begin if (i*i)=n then istQuadrat:= true else i:= i+1; end; if istQuadrat then writeln('Ist Quadratzahl') else writeln('Ist keine Quadratzahl'); END.