Hilfe

#1
Hallo,


Bin grade dabei Programmieren zu lernen und hab paar Aufgaben gefunden die mich iwie verunsichern. Also stelle ich euch mal die Fragen: Was passiert im folgenden Programmteil

ch:="1"; i:=2;
ch:=(ch" ") and (i>0);

wie ich das verstehe, hier handelt es um den TYP CHAR und INTEGER.
Char hat das Zeichen 1 und i hat den wert 2

jetzt bekommt char - char zugewiesen? und dann wird i verglichen in char? Wie können die typen überhaupt in einer Anweisung sein oder versteh ich da was falsch?

Was passiert im folgenden Programmteil?

For ik:= 1 to i+3 do
begin
writeln("abc"); i:=i+1;
end;

Was ich hier verstanden habe, ist das die For - Schleife bei 1 anfängt so und dann i+ 3 die schleife 3 mal ausführt d.h. 3 mal wird abc ausgegeben wie ich das verstanden habe aber was soll das mit i:=i+1 ich meine was zählt er hier hoch? ist das nicht iwie überflüssig?

Was passiert im folgenden Programmteil
ch:=" ";
while(not(eof(input))) do
read(ch);
Write(ch);

Was ich hier denke, ch hat ein Zeichen , so jetzt führt er eine while schleife durch und liest das Zeichen von der Datei Input. Die EOF Funktion ist ja solange false bis das Ende der Datei erreicht wird, dann gibt er true zurück wenn es erreicht wurde. Also gibt er "" ein und aus?

Was passiert im folgenden Programmteil

I:=-2
repeat
Writeln("abc", i);
until i > 0;

Also i hat den wert -2 dann machen repeat schleife d.h. auch wenn die bedingung nicht wahr ist am anfang wird es trotzdem 1 mal ausgeführt so ergibt dann abc und - 2 aus
so dann versteh ich nicht warum unten until i > 0 steht ich meine das wird eh nicht zu treffen i wird immer -2 bleiben was macht dann das Programm? 100 mal abc -2 ausgeben :D?

Was passiert im folgenden Programmteil

Str:="12345rt";
Str2 := copy (str, 1,4);
Str2 := copy (Str, 3,3);

Das versteh ich nicht ganz also wir haben einen String mit "12345rt"
So jetzt haben den Sting2 benutzen die FUnktion Copy also kopiert er den ersten String aber was ist mit dem 1,4? Kopiert er nur die Zeichen 1 und 4?

Was passiert im folgenden Programmteil

for i:= 1 to 100 do
for j:= 1 to 100 do
if (i*J mod 90) = 0 then writeln( ́ i,j waren‘, i,‘ ́,j)

Das verstehe ich nicht ganz also ich habe 2 for schleifen. Beide gehen von 1 bis 100 durch
so dann habe ich ein If Statement und dort wird i mal j genommen und dann mod 90( was bedeutet das?) und es muss 0 ergeben wenn es nicht 0 ergibt, dann gibt er aus i j waren ....

so also müssen doch die ersten 3 Ausgaben lauten:
i und j waren 190
i und j waren 245
i und j waren 290

also das kam raus als ich es nachprogrammiert habe

Könnt ihr mir helfen ? :D Wäre für alle Hinweise dankbar!
 
Oben