![]() |
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! |
AW: Hilfe
Hallo,
schau mal bitte hier: ![]() Da hat wohl jemand zum Teil die gleichen Aufgaben bekommen. |
AW: Hilfe
ach wie witzig ist das denn :D Danke :)
|
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 :( |
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. |
AW: Hilfe
Zitat:
@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. |
AW: Hilfe
Vorsicht ironie:
ihr solltet in die AGB mal den Hinweis aufnehmen, dass "Hausaufgaben" als solche vom TE deklariert werden sollten :stupid: |
AW: Hilfe
Bitte gib deinem Thread einen aussagekräftigen Titel, der dein Problem kurz zusammenfasst. Um Hilfe bittet hier so ziemlich jeder.
|
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 |
AW: Hilfe
Delphi-Quellcode:
Soweit ich weiß ist das sogar eine Totsünde die Iterations-Variable einer For-Schleife selber hochzuzählen.
writeln("abc"); i:=i+1;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz