| Autor |
Beitrag |
delphianer5
      
Beiträge: 30
|
Verfasst: Mi 29.09.10 19:41
Hi,
ich schreibe morgen eine Kursarbeit über Informatik. Hab mir Übungsaufgaben besorgt. Bin mir aber nicht vöölig sicher ob ich sie korrekt gelöst habe und wäre sehr dankbar wenn ihr mir helfen könntet. Ihr sollt hier nicht meine Hausaufgaben machen, ich will nur wissen ob das stimmt was ich sage und ob ich etwas verbessern kann oder etwas vergessen habe.
Danke!
Aufgabenstellung 1:
Was ist in folgender Funktionsdeklaration falsch?
Wie kann man den Fehler verbessern?
Delphi-Quelltext 1:
| function ueben (a:array[0..4] of integer):integer; |
Meine Lösung:
Bin mir nicht sicher ob es ein Fehler ist, aber mir fällt als erstes auf das der Name der Funktion klein geschrieben wurde, würde da "Ueben" daraus machen.
Der Informatiker zählt zwar bei vielen Dingen von 0 aufwärts jedoch, denke ich ist es unlogisch ein nulltes Array zu haben - sagt mir wenn ich ich mich irre- würde sagen gibt ja auch keine 0 Äpfel oder so. Oder sind die Zahlen nur Namenszuweisungen zu den einzelnen Arrays?Gehe davon aus das das die Anzahl der Arrays ist.
Hmm,Lösungsvorschläge - gute Frage- einfach umbennen und eine 1 statt 0 zu schreiben.
Aufgabenstellung 2:
a) Sei "SortZahlen" ein array mit 50 Elementen vom Typ real. Gib die notwendigen Delphi-Anweisungen an, um "SortZahlen" so zu sortieren, dass im ersten Feldelement die kleinste Zahl steht, im zweiten die zweit kleinste usw.
b)Schätze ab, wie viele Schritte dein Algorithmus benötigt, bis alle Zahlen sortiert sind?
Meine Lösung:
a)a) var SortZahlen: array [1..50] of real;
begin
for i:= 1 to 50 do
x:=High(SortZahlen);
B) 50 Schritte?
Wäre nett wenn da einer drüber schauen könnte. Danke!
mfg
Moderiert von Gausi: Topic aus VCL (Visual Component Library) verschoben am Mi 29.09.2010 um 20:29
Moderiert von Gausi: Titel geändert.
Zuletzt bearbeitet von delphianer5 am Mi 29.09.10 20:31, insgesamt 1-mal bearbeitet
|
|
delphianer5 
      
Beiträge: 30
|
Verfasst: Mi 29.09.10 19:49
Sry, bin wohl im falschem Topic - bitte verschieben.
Kann trotzdem mir einer dabei helfen?
|
|
bole
      
Beiträge: 107
Erhaltene Danke: 15
win 10
|
Verfasst: Mi 29.09.10 20:05
Hallo
Zu aufgabestellung a kann ich dir nicht helfen... aber zu der 2. Aufgabe.
Sortieren ist eine Wissenschaft! Als einstieg würde ich mal den einfachsten Sortalgo nehmen Bubblesort de.wikipedia.org/wiki/Bubblesort
Dein Code sortiert nicht, er weisst nur die Anzahl der Arrayelemente 50 mal der Variablen x zu.
Gruss
Bole
_________________ ein programm macht nicht das was du willst sondern was du schreibst!
|
|
delphianer5 
      
Beiträge: 30
|
Verfasst: Mi 29.09.10 20:18
So schwer kann das nicht sein bin erst im 2. Jahr wo ich in der Schule delphi lerne, aber danke für deinen Link - sehr interessant.
Verbesserung:
Delphi-Quelltext 1: 2: 3: 4: 5:
| repeat for i:= 1 to 50 do x[i]:=High(SortZahlen); until x[i]<x[i-1] |
|
|
Muck
      
Beiträge: 98
Erhaltene Danke: 8
Win 8, Win 7, Vista, Win XP
Delphi XE3, Delphi 2009, Delphi 2007, Delphi 5
|
Verfasst: Mi 29.09.10 20:20
Hi,
einfach mal in Delphi compilieren... die Fehlermeldung wird Dir sagen, dass "of" erwartet wurde.
Richtig:
Delphi-Quelltext 1:
| function ueben (a:array of integer):integer; |
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 480
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 29.09.10 20:22
Bitte nur eine Frage pro Topic.
Da hier schon mit der Sortierung begonnen wurde, würde ich darum bitten, die Frage nach der Funktionsdeklaration in einem neuen Topic zu besprechen. Danke.
(Die Lösung von Muck ist nämlich falsch, bzw. nur sehr bedingt richtig.  )
Edit, ok, dann halt doch das andere. 
_________________ We are, we were and will not be.
Zuletzt bearbeitet von Gausi am Mi 29.09.10 20:35, insgesamt 1-mal bearbeitet
Für diesen Beitrag haben gedankt: delphianer5
|
|
delphianer5 
      
Beiträge: 30
|
Verfasst: Mi 29.09.10 20:27
@Muck:
Danke für den Tipp mit delphi. Das mit dem of stimmt nicht so wirklich.
@Gausi:
K,danke mach ich.
|
|
Tankard
      

Beiträge: 217
Erhaltene Danke: 96
|
Verfasst: Mi 29.09.10 20:28
Für diesen Beitrag haben gedankt: BenBE, delphianer5
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 480
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 29.09.10 20:29
Und den Titel des Topics könntest du auch noch anpassen, der sagt nämlich nicht so richtig was über das Thema aus. 
_________________ We are, we were and will not be.
Für diesen Beitrag haben gedankt: BenBE, delphianer5
|
|
delphianer5 
      
Beiträge: 30
|
Verfasst: Mi 29.09.10 20:33
Threadname wurde geändert.
@Tankard: Danke!habe dir "gedankt".
Weiß jemand bei dem Sortieren Rat?
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 480
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 29.09.10 20:34
Ich habe den Titel jetzt so geändert, dass er zu dem Teil passt, der jetzt hier korrekt beantwortet wurde.
Für das Sortieren bitte einen neuen Thread aufmachen. Weitere Postings, die sich hier auf das Sortieren beziehen, werden gelöscht. 
_________________ We are, we were and will not be.
|
|
Muck
      
Beiträge: 98
Erhaltene Danke: 8
Win 8, Win 7, Vista, Win XP
Delphi XE3, Delphi 2009, Delphi 2007, Delphi 5
|
Verfasst: Mi 29.09.10 20:44
Hi,
ja, bedingt richtig, weil
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| function ueben (a:array of integer):integer; begin if length(A)>=3 then Result:=A[2] else Result:=0; end;
procedure TForm1.FormCreate(Sender: TObject); begin Form1.Caption:=IntToStr(ueben([0,1,2,3,4])); end; |
funktioniert (jedenfalls mit Delphi 2007). Ist aber wahrscheinlich nicht in der Schulaufgabe gemeint.
|
|
Tankard
      

Beiträge: 217
Erhaltene Danke: 96
|
Verfasst: Mi 29.09.10 20:47
@muck: bedingt richtig, weil die aufgabe mit einem array von 0-4 arbeiten soll.
du hast einen dynamischen array definiert. kannst also auch von 0-100 gehen, ohne das er meckert.
Für diesen Beitrag haben gedankt: delphianer5
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 480
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 29.09.10 20:48
Die Funktion möchte ein fixes Array[0..4] bekommen. Du übergibst ihr nach deiner Änderung ein dynamisches Array. Wenn ich Lehrer wäre, würde ich das als "falsch" werten.
Der Weg über einen neu definierten Typ (den ich aber nicht unbedingt "t" nennen würde) ist der richtige.
_________________ We are, we were and will not be.
Für diesen Beitrag haben gedankt: delphianer5
|
|