220 likes | 355 Vues
Vorkurs Programmierungstechnik Einführung in Pascal. Michael Gellner Lehrstuhl für Softwaretechnik am Institut für praktische Informatik der Universität Rostock. Aufgabe 1: Ein Programm, das die Zeichenkette ‘Hello World’ ausgibt. program hello ; uses dos ; begin writeln ( 'Hello World' );
E N D
Vorkurs ProgrammierungstechnikEinführung in Pascal Michael Gellner Lehrstuhl für Softwaretechnik am Institut für praktische Informatik der Universität Rostock
Aufgabe 1:Ein Programm, das die Zeichenkette ‘Hello World’ ausgibt. Michael Gellner
programhello; usesdos; begin writeln('Hello World'); readln; end. Michael Gellner
Aufgabe 2:Ein Programm, das- zwei Zahlen entgegen nimmt, - diese addiert und - das Ergebnis ausgibt. Michael Gellner
program summe; (*======Deklarationsteil=====*) uses dos; vara:real; b:real; c:real; (*=========Hauptteil=========*) begin Writeln(’Ein Programm zur Addition zweier Zahlen'); Writeln('Geben Sie die erste Zahl ein: '); Readln(a); Writeln('Geben Sie die zweite Zahl ein'); Readln(b); c:=a+b(* Berechnung *) Writeln('Das Ergebnis ist: ',c:4:2); readln; end. Michael Gellner
Aufgabe 3:Ein Programm soll eine eingegebene Zahl darauf hin analysieren, ob sie gerade ist oder nicht, und das Ergebnis der Analyse ausgeben. Michael Gellner
programGerade; usesdos; varx:integer; begin writeln('Eine Zahl bitte:'); readln(x); if((xmod2)=0) thenbegin write(x,' ist'); writeln(' gerade'); end elsebegin write(x,' ist'); writeln(' ungerade'); end; readln; end. Michael Gellner
Aufgabe 4:Ein Programm soll eine Zahl n entgegennehmen, bis zu der das Programm die Summe der Zahlen von 1 bis n durch Aufsummieren bildet. Michael Gellner
programForLoop; usesdos; varsum:integer; i,n:integer; begin sum:=0; readln(n); fori:=0tondo begin sum:=sum+i; end; writeln(sum); readln; end. Michael Gellner
Aufgabe 5Ein Programm, das Zahlen entgegen nimmt und die Summe der eingegebenen Zahlen bildet sowie ausgibt, bis der Anwender das Programm beenden will. Michael Gellner
programRepeatLoop; usesdos; varx,y:integer; abbruch:string; begin x:=0; writeln('Dieses Programm addiert alle Zahlen,'); writeln('die von Ihnen eingegeben werden,'); writeln('bis Sie abbrechen'); repeat readln(y); x:=x+y; writeln('x ist ',x); writeln; writeln('Abbrechen? (j/n)'); readln(abbruch); until(abbruch= 'J')or(abbruch= 'j'); end. Michael Gellner
Aufgabe 6:Ein Programm, das OC in OF konvertiert. Voraussetzung Michael Gellner
programBeispiel_6_Fahrenheit_Celsius; varFahrenheit:real; Celsius:real; begin Readln(Celsius); Fahrenheit:=((9*Celsius)/5)+32; Writeln(Fahrenheit:4:2); Readln; end. Michael Gellner
Aufgabe 7:Ein Programm, das OF in OC konvertiert. Voraussetzung Michael Gellner
programBeispiel_7_Celsius_Fahrenheit; varFahrenheit:real; Celsius:real; begin Readln(Fahrenheit); Celsius:=((Fahrenheit-32)*5)/9; Writeln(Celsius:4:2); Readln; end. Michael Gellner
Aufgabe 8:Ein Programm, das OF in OC oder OC in OF konvertiert, je nachdem, was der Benutzer gerade eingibt. Michael Gellner
programBeispiel_8_FahrToCels_and_CelsToFahr; varTemperatur:real; Eingabe:char; weiter:char; functionFahrToCels(Fahrenheit:real):real; begin FahrToCels:=((Fahrenheit-32)*5)/9; end; functionCelsToFahr(Celsius:real):real; begin CelsToFahr:=((9*Celsius)/5)+32; end; Michael Gellner
begin repeat Writeln('Geben Sie eine Temperatur ein: '); Readln(Temperatur); Writeln('(a) Von Celsius zu Fahrenheit rechnen?'); Writeln('(b) Von Fahrenheit zu Celsius rechnen?'); Readln(Eingabe); caseEingabeof 'a', 'A':Temperatur:=CelsToFahr(Temperatur); 'b', 'B':Temperatur:=FahrToCels(Temperatur); elseWriteln('Ein falscher Buchstabe!'); end; Writeln(Temperatur:4:2); Writeln('Weiter? (j oder n)'); Readln(weiter) until((weiter= 'n')or(weiter= 'N')) end. Michael Gellner
Aufgabe 9:Ein Programm, das (i) ein Feld mit Werten initialisiert, (ii) die Werte aufsummiert und (iii) die Werte ausgibt.Jeder der Schritte ist in einer eigenen Routine vorzunehmen. Michael Gellner
programArraySum; usesdos; constmax=10; typevector=array[0..max]ofinteger; vara:vector; x:integer; procedureinit(varfeld:vector;size:integer); vari:integer; begin fori:=0tosizedo begin feld[i]:=random(20); end; end; Michael Gellner
functionsum(feld:vector;size:integer):integer; vari:integer; s:integer; begin s:=0; fori:=0tosizedo begin s:=s+feld[i]; end; sum:=s; end; Michael Gellner
procedureshow(sumfeld:integer; feld:vector; size:integer); vari:integer; begin fori:=0tosizedo begin writeln(feld[i]); end; writeln('Summe: ',sumfeld); readln; end; begin Init(a,max); x:=Sum(a,max); Show(x,a,max); end. Michael Gellner