Autor Beitrag
delphianer5
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: 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?
ausblenden Delphi-Quelltext
1:
function ueben (a:array[0..4of 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 user profile iconGausi: Topic aus VCL (Visual Component Library) verschoben am Mi 29.09.2010 um 20:29
Moderiert von user profile iconGausi: Titel geändert.


Zuletzt bearbeitet von delphianer5 am Mi 29.09.10 20:31, insgesamt 1-mal bearbeitet
delphianer5 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Mi 29.09.10 19:49 
Sry, bin wohl im falschem Topic - bitte verschieben.
Kann trotzdem mir einer dabei helfen?
bole
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 107
Erhaltene Danke: 15

win 10

BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 98
Erhaltene Danke: 8

Win 8, Win 7, Vista, Win XP
Delphi XE3, Delphi 2009, Delphi 2007, Delphi 5
BeitragVerfasst: Mi 29.09.10 20:20 
Hi,

einfach mal in Delphi compilieren... die Fehlermeldung wird Dir sagen, dass "of" erwartet wurde.

Richtig:
ausblenden Delphi-Quelltext
1:
function ueben (a:array of integer):integer;					
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 480

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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. :roll:

_________________
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Administrator
Beiträge: 217
Erhaltene Danke: 96



BeitragVerfasst: Mi 29.09.10 20:28 
user profile iconMuck hat folgendes geschrieben Zum zitierten Posting springen:
Hi,

einfach mal in Delphi compilieren... die Fehlermeldung wird Dir sagen, dass "of" erwartet wurde.

Richtig:
ausblenden Delphi-Quelltext
1:
function ueben (a:array of integer):integer;					


nein. man keine keine index type specifiers mit uebergeben. richtig deklariert wuerde die funktion so lauten

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
type t=array[0..4of integer;

function ueben (a:t):integer;
begin
end;


ob von 0 zaehlen oder von 1 sinnvoll ist, kommt auf die art der aufgabe an. bei manchen sachen macht 1 oft mehr sinn, meistens um zb zu vermeiden immer index-1 zu schreiben.

ist aber reine geschmacksache.

Für diesen Beitrag haben gedankt: BenBE, delphianer5
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 480

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Mi 29.09.10 20:33 
Threadname wurde geändert.
@Tankard: Danke!habe dir "gedankt".

Weiß jemand bei dem Sortieren Rat?
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 480

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 98
Erhaltene Danke: 8

Win 8, Win 7, Vista, Win XP
Delphi XE3, Delphi 2009, Delphi 2007, Delphi 5
BeitragVerfasst: Mi 29.09.10 20:44 
Hi,

ja, bedingt richtig, weil

ausblenden 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[2else 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Administrator
Beiträge: 217
Erhaltene Danke: 96



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 480

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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