Delphi-PRAXiS
Seite 1 von 6  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   5 Programmteile, Erklärung gesucht, bitte. (https://www.delphipraxis.net/191495-5-programmteile-erklaerung-gesucht-bitte.html)

linomail 21. Jan 2017 16:45


5 Programmteile, Erklärung gesucht, bitte.
 
Hallo zusammen,

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!

nahpets 21. Jan 2017 17:08

AW: Hilfe
 
Hallo,

schau mal bitte hier: http://www.delphipraxis.net/191465-a...ml#post1359286

Da hat wohl jemand zum Teil die gleichen Aufgaben bekommen.

linomail 21. Jan 2017 17:12

AW: Hilfe
 
ach wie witzig ist das denn :D Danke :)

linomail 21. Jan 2017 17:30

AW: Hilfe
 
Ja gut bei den dreien lag ich richtig oder fast richtig :D

aber zu 2, 4 und 5 bin ich trotzdem zienmlich unsicher ob ich richtig liege :(

nahpets 21. Jan 2017 17:43

AW: Hilfe
 
1. Aufgabe: Deine Schlussfolgerung ist richtig, das geht so nicht wirklich.

2. Aufgabe: Versuche das bitte mal genau nachzuvollziehen:

ik wird von 1 bis i + 3 hochgezählt.
In der Schleife wird i jeweils um 1 erhöht.
Auch ik wird je Schleifendurchlauf um 1 erhöht.
Wann wird dann i + 3 erreicht?

3. Aufgabe: Was ist in ch, wenn die Schleife beendet wird?

4. Aufgabe: Wann wird die Bedingung i > 0 erreicht sein, wenn i = -2 ist und nicht verändert wird? Nach 100 Durchläufen? Wieso?

5. Aufgabe: Deine Vermutung bezüglich des Kopierens ist korrekt. Was steht dann in Str2?

6. Aufgabe: Das von Dir angegebene Ergebnis ist falsch. Da hast Du in der Ausgabe einen Programmierfehler.

himitsu 21. Jan 2017 18:03

AW: Hilfe
 
Zitat:

Zitat von nahpets (Beitrag 1359494)
Da hat wohl jemand zum Teil die gleichen Aufgaben bekommen.

Sogar mit den selben Schreibfehlern.

@linomail: Bitte lies dir nochmal die FAQ durch, die du bei der Anmeldung bestätigt hast.
Editiere dann bitte deinen ersten Post, da drin in dem "erweiteren" Editor kannst du dann dementsprechend den Thread-Titel ändern.

a.def 21. Jan 2017 18:16

AW: Hilfe
 
Vorsicht ironie:
ihr solltet in die AGB mal den Hinweis aufnehmen, dass "Hausaufgaben" als solche vom TE deklariert werden sollten :stupid:

Luckie 21. Jan 2017 18:51

AW: Hilfe
 
Bitte gib deinem Thread einen aussagekräftigen Titel, der dein Problem kurz zusammenfasst. Um Hilfe bittet hier so ziemlich jeder.

linomail 21. Jan 2017 19:01

AW: Hilfe
 
Das sind keine Hausaufgaben, Ich habe diese Porgrammteile aaus einem Script von der Hochschule Osnabrück.

@himitsu welche Schreibfehler in dem Code oder was ich geschrieben habe?

Hätte nicht erwartet dass hier soein ähnliches Thema ist :D Sorry aber was soll ich denn jetzt ändern versteh ich nicht.

@nahpets aufgabe 2: Asso also zählt er i hoch bis er 3 erreicht hat? und darum wird es 3 mal ausgegeben? Aber ist i+1 wirklich von nöten. Ich meine vorhin als ich das ganze auf ideone.com nachprogrammiert habe, habe ich i nicht eins hochzählen lassen und kam auf das selbe ergebnis

Aufgabe 3: Also ein leerzeichen? ich meine der schreibt ja immer nur ein leerzeichen rein? Aber er gibt nur den letzten an von der Datei oder?

Aufgabe 4: Ja bei der war ich mir iwie sicher also hab ich das nachprogrammiert. Aber ich glaube ich verstehe iwie repeat nicht ich meine i ist ja -2 aber der Wert wird ja nicht verändert also ich meine wie soll i größer als 0 werden? Als ich das nachprogrammiert habe gab er erst aus ABC - und dann gefühlt 100 mal ABC -2. Aus der werde ich echt nicht schlau :(

Aufgabe 5: Also wenn meine Vermutung dann richtig ist dann "1433" ?

Aufgabe 6: Ach ich meint i und j waren 1 und 90
2 und 45
2 und 90
müsste doch eigentlich richtig sein

Danke für deine schnelle Hilfe :)

PS: ja mache ich Entschuldige. :-D

a.def 21. Jan 2017 19:03

AW: Hilfe
 
Delphi-Quellcode:
writeln("abc"); i:=i+1;
Soweit ich weiß ist das sogar eine Totsünde die Iterations-Variable einer For-Schleife selber hochzuzählen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:52 Uhr.
Seite 1 von 6  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz