Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Hilfe bei Klausuraufgaben (https://www.delphipraxis.net/116794-hilfe-bei-klausuraufgaben.html)

jarturogt 6. Jul 2008 20:06


Hilfe bei Klausuraufgaben
 
hi an alle user,

wollte mal vorsichtig anfragen ob sich hier wer bereit erklären würde, mir bei drei von fünf Aufgaben einer alten Klausur zu helfen...

würde mich über Unterstützung und Kontaktaufnahme sehr freuen...

euch noch nen schönen abend,

jarturo

Die Muhkuh 6. Jul 2008 20:07

Re: Hilfe bei Klausuraufgaben
 
Wie sieht diese Hilfestellung denn aus?

jarturogt 6. Jul 2008 20:11

Re: Hilfe bei Klausuraufgaben
 
naja,

bei den drei Aufgaben weiss ich leider gar nicht was zu tun ist...

erhoffe mir durch dieses Forum Hilfe, sprich Lösungen oder zumindest Ansätze... vielleicht sind die Aufgaben gar nicht schwer und mir fehlt einfach nur nen Wink mitm Zaunpfahl, falls also wer Interesse an der Aufgabenstellung hat würde ich diese als doc-Dokument hochladen...

mkinzler 6. Jul 2008 20:12

Re: Hilfe bei Klausuraufgaben
 
Am Besten löst du die Aufgaben oder versuchst es zumindest. Sollten dann Probleme auftauchen wirst du bestimmt hier Hilfe bekommen. Und auch Korrekturhinweise.
[edit]Hänge diese doch hier an[/edit]

jarturogt 6. Jul 2008 20:13

Re: Hilfe bei Klausuraufgaben
 
vielen dank,

doch bei diesen Aufgaben fehlt mir der richtige Einstieg :(

mkinzler 6. Jul 2008 20:18

Re: Hilfe bei Klausuraufgaben
 
Cross-Post: http://www.delphi-forum.de/viewtopic.php?t=84738

xxl1 6. Jul 2008 20:19

Re: Hilfe bei Klausuraufgaben
 
wie wäre es du lädst die aufgaben mal hoch (die du nicht lösen kannst) und zeigst uns wie weit du bist/was du nicht verstehst...dann wirst du schon nen wink mit dem zaunpfahl bekommen :D
deine aufgaben machen wird aber wohl keiner, is ja auch nich sinn der sache ;-)

Die Muhkuh 6. Jul 2008 20:20

Re: Hilfe bei Klausuraufgaben
 
Hi,

die Aufgaben werden wir nicht machen, aber wie Du schon selbst sagst: Es fehlt manchmal das gewisse Etwas, der Wink mit dem Zaunpfahl, den sind wir gerne bereit zu geben. Außerdem hast Du nachher selbst mehr davon, wenn Du nur einen Ansatz bekommst und Dir die Lösung selbst erarbeitest.

jarturogt 6. Jul 2008 20:26

Re: Hilfe bei Klausuraufgaben
 
Aufgabe 1

Eine Datei enthält zeilenweise einen Messwert für eine Schwingungsdauer T. Schreiben sie ein Programm, das aus den Werten den Mittelwert der Schwingungsdauer (Formel vorhanden), sowie den zugehörigen Messfehler berechnet (Formel ebenfalls vorhanden). Geben sie auch die Zahl der Messungen in ein Label aus!

---------------

So schön so gut...

ich soll also die Datei bis zur letzten Zeile auslesen. Wie aber bekomme ich (zum Beispiel für den Mittelwert) die Anzahl der Zeilen heraus? Die Formel lautet ja "x = 1 / N * summe(aus den werten)... wie kann ich zudem alle Werte zusammenaddieren?

mkinzler 6. Jul 2008 20:27

Re: Hilfe bei Klausuraufgaben
 
Einfach in der Schleife aufaddieren:
Delphi-Quellcode:
Summe := Summe + Wert;

jarturogt 6. Jul 2008 20:29

Re: Hilfe bei Klausuraufgaben
 
ermittle ich denn die n-zeilen mittels einer repeat-until-schleife? der erste schritt soll ja sein, alles bis zum eof(f) auszulesen...

mkinzler 6. Jul 2008 20:30

Re: Hilfe bei Klausuraufgaben
 
Delphi-Quellcode:
while not eof(f) do
begin
    inc(n);
    Summe := Summe + Wert;
    ...
end;

jarturogt 6. Jul 2008 20:43

Re: Hilfe bei Klausuraufgaben
 
wäre der beginn so richtig:

button1.click
begin
assignfile(f,'datei.txt');
reset(f)
while not eof(f) do
begin
inc(n);
summe := summe + wert;

mkinzler 6. Jul 2008 20:44

Re: Hilfe bei Klausuraufgaben
 
Du solltest natürlich den Wert auch aus der Datei lesen :zwinker:

Der.Kaktus 6. Jul 2008 20:57

Re: Hilfe bei Klausuraufgaben
 
Zitat:

Zitat von jarturogt
wäre der beginn so richtig:

Delphi-Quellcode:
button1.click
begin
   summe:=0; //eingefuegt
   assignfile(f,'datei.txt');
   {$I+} //eingefuegt
   reset(f)
   {$I-}//eingefuegt
   while not eof(f) do
   begin
      read(f,s); readln(f); //eingefuegt
      If length(s) <>0 then
      begin
        inc(n); //korrigiert
        summe := summe + wert;
      end;
   end;
end; //eingefuegt
versuch das mal als Ansatz ;-)

mkinzler 6. Jul 2008 21:01

Re: Hilfe bei Klausuraufgaben
 
Zitat:

versuch das mal als Ansatz Wink
Und das ohne selber überlegen zu müssen.

jarturogt 6. Jul 2008 21:05

Re: Hilfe bei Klausuraufgaben
 
vielen dank schonmal.... ihr habt gut reden, arbeitet wahrscheinlich jeden tag mit delphi und könnt das gut :)

wieso aber denn real(f,s) und dann nochmal readln(s)?

zudem irritiert mich die variable "wert", wofür soll die stehen?

xxl1 6. Jul 2008 21:07

Re: Hilfe bei Klausuraufgaben
 
wert ist natürlich der "wert" den du aus der zeile der datei ausgelesen hast!

Der.Kaktus 6. Jul 2008 21:08

Re: Hilfe bei Klausuraufgaben
 
Zitat:

Zitat von jarturogt
vielen dank schonmal.... ihr habt gut reden, arbeitet wahrscheinlich jeden tag mit delphi und könnt das gut :)

wieso aber denn real(f,s) und dann nochmal readln(s)?

zudem irritiert mich die variable "wert", wofür soll die stehen?

read liest Zeile bis Zeilenende(Text vor $0D0A)..readln(f) liest das ($0D0A) nur ein..das EOF erfolg"t" erst nach!!! dem einlesen des ($0D0A)

mkinzler 6. Jul 2008 21:10

Re: Hilfe bei Klausuraufgaben
 
ReadLn() macht beides

jarturogt 6. Jul 2008 21:11

Re: Hilfe bei Klausuraufgaben
 
ok, n steht also für die anzahl der zeilen, und summe für die addition aller werte, die die zeilen beinhalten?

jarturogt 6. Jul 2008 21:14

Re: Hilfe bei Klausuraufgaben
 
und wofür steht "lenght(s)"? den befehl kannte ich noch gar nicht...

mkinzler 6. Jul 2008 21:15

Re: Hilfe bei Klausuraufgaben
 
Zitat:

Zitat von jarturogt
ok, n steht also für die anzahl der zeilen, und summe für die addition aller werte, die die zeilen beinhalten?

Ja

Der.Kaktus 6. Jul 2008 21:17

Re: Hilfe bei Klausuraufgaben
 
Zitat:

Zitat von mkinzler
ReadLn() macht beides

[OT]Im Prinzip JA..ABER..die feinere Variante iss getrennte Bearbeitung ;-)readln(ins besonder bei Repeat..Until..wuerde zur vorzeitigen EOF Erkennung fuehren ;-))[/OT]


n musst Du auch noch vorher auf "0" setzen..damit iss "n" auch der Zeilenzaehler
Summe:=summe + Wert(????) Wert musst Du aus (s) rausfischen und umwandeln in Integer etc...dann waere es so.

jarturogt 6. Jul 2008 21:23

Re: Hilfe bei Klausuraufgaben
 
na das sieht doch schonmal sehr vielversprechend aus...

vielen dank an alle :)

mit den umwandlungen mache ich mir weniger sorgen, vielmehr fehlt mir nen gesamt-überblick, wie ich zur lösung kommen könnte...

im prinzip wäre ich doch nun in der lage, in den nächsten schritten den mittelwert, die standardabweichung und den messfehler auszurechnen oder?

Der.Kaktus 6. Jul 2008 21:25

Re: Hilfe bei Klausuraufgaben
 
Zitat:

Zitat von jarturogt
na das sieht doch schonmal sehr vielversprechend aus...

vielen dank an alle :)

mit den umwandlungen mache ich mir weniger sorgen, vielmehr fehlt mir nen gesamt-überblick, wie ich zur lösung kommen könnte...

im prinzip wäre ich doch nun in der lage, in den nächsten schritten den mittelwert, die standardabweichung und den messfehler auszurechnen oder?

Jep, wenn du die Werte aus dem eingelesenen String umgewandelt hast ;-)

mkinzler 6. Jul 2008 21:25

Re: Hilfe bei Klausuraufgaben
 
Ja, ist eigentlich dann nur noch Mathematik

jarturogt 6. Jul 2008 21:42

Re: Hilfe bei Klausuraufgaben
 
spitze, zwei fragen hätte ich aber noch:

ist read(f,s) und readln(f) dann nicht doppeltgemoppelt?

und wofür steht lenght(s) <> 0?

mkinzler 6. Jul 2008 21:52

Re: Hilfe bei Klausuraufgaben
 
Zitat:

ist read(f,s) und readln(f) dann nicht doppeltgemoppelt?
Wie gesagt sollte ReadLn() reichen. Schaden tut es aber nicht getrennt den Wert und den Zeilenumbruch zu lesen.
Zitat:

und wofür steht lenght(s) <> 0?
Es wird überprüft ob ein Leerstring gelesen wurde

jarturogt 6. Jul 2008 22:22

Re: Hilfe bei Klausuraufgaben
 
und an welche stelle packe ich den befehl "closefile(f);"?

vor oder hinter die berechnung des mittelwerts, der st-abweichung und des messfehlers?

xxl1 6. Jul 2008 22:31

Re: Hilfe bei Klausuraufgaben
 
da du ja alles was du brauchst nach der schleife zusammenhast kannst du direkt danach closefile(f) ausführen...für die berechnungen greifst du ja nich mehr auf die datei zu

jarturogt 6. Jul 2008 22:37

Re: Hilfe bei Klausuraufgaben
 
ahso, okay... würde es denn zum fehler kommen wenn ich closefile ganz ans ende der prozedur setze?

xxl1 6. Jul 2008 22:56

Re: Hilfe bei Klausuraufgaben
 
nein es würde kein fehler geben...die datei is nur länger offen. Wäre hier zwar noch nich wichtig aber wenn du mal was zeitintensiveres hinterher ausführen würdest wäre ja schlecht wenn da die datei die ganze zeit noch offen is oder?

jarturogt 15. Jul 2008 20:49

Re: Hilfe bei Klausuraufgaben
 
dann wird in der Aufgabenstellung noch gesagt:

"Geben sie auch die Zahl der Messungen in ein Label aus"

Mit welchem Befehl kann ich feststellen, wieviele Messungen (sprich Zeilen) in der Datei vorhanden sind?

mkinzler 15. Jul 2008 20:57

Re: Hilfe bei Klausuraufgaben
 
Zähle die Zeilen beim Einlesen

jarturogt 15. Jul 2008 21:01

Re: Hilfe bei Klausuraufgaben
 
wäre das dann in dieser Aufgabe "n"?

wie heisst dann die Funktion? label1.caption := ....?

mkinzler 15. Jul 2008 21:04

Re: Hilfe bei Klausuraufgaben
 
Ist keine Funktion sondern eine Eigenschaft

SirThornberry 15. Jul 2008 21:07

Re: Hilfe bei Klausuraufgaben
 
Es ist zwar reichlich spät aber trotzdem die übliche Bitte.

Mache bitte für jede Frage ein eigenes Thema auf. So wie es jetzt ist, ist es ein perfektes Beispiel wie ducheinander es sonst zu geht. Auch der Titel sagt nichts über die einzelnen Probleme aus.
All das zusammen sorgt dafür das jemand mit einem gleichen Problem über die Suche nicht fündig wird, weil der Betreff einfach zu keinem Thema zu passen scheint.

Daher meine Bitte. Mache für jede Frage ein eigenes Thema auf und gebe den Beiträgen jeweils einen aussagekräftigen Titel etc. :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:02 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