![]() |
erstellen einer funktion getinteger
hi leutz
ich hab ne aufgabe und weis nicht so genau was ich da machen soll habt ihr ne idee und einen lösungsvorschlag?? Wenn die Deklaration var s:string; z,c:integer; gegeben ist, bewirkt der Aufruf val(s,z,c) folgendes: s wird in eine Zahl zu wandeln versuch und in z abgelegt. Ist c=0; war es erfolgreich; sonst enthält c die Fehlerposition. Aufgabe: eine Funktion GetInteger(p:string), welche den Parameter p per writeln ausgibt. per readln einen string einliest, dies solange tut , bis ein gültiger integer eingegeben wurde und den als result zurückliefert. Im Fehlerfall wird dem User die Fehlerposition mitgelteilt und erneut zur Eingabe aufgefordert. :idea: |
Re: erstellen einer funktion getinteger
Zeige uns doch mal, wie weit Du mit Deinem Code bist. Das ganze hört sich für mich nach einer Schulaufgabe an, die wir hier nicht komplett lösen wollen. Also, zeige uns, wie weit Du kommst und dann zeigen wir Dir, wie es weiter geht ;-)
...:cat:... |
Re: erstellen einer funktion getinteger
Delphi-Quellcode:
kann das stimmen?
program GetInteger;
{$APPTYPE CONSOLE} uses SysUtils; function GetName:string; var p:string; begin repeat write('einen Parameter bitte'); readln(p); until p<>''; result:=p; end; end. ich weis nicht ich glaube da ist was falsch. |
Re: erstellen einer funktion getinteger
Ein Hallöle von
![]() ich geb' mal 'nen kleine Tip. Fang' erst mal mit diesem Teil an: Zitat:
Code:
Und jetzt zeig mal was du in diese Prozedur schreiben würdest, damit das angegebene erfüllt wird !
[b]Procedure[/b] Val(S: [b]String[/b]; [b]Var[/b] Z, C: Integer);
[b]Begin[/b] [color=red][b]...[/b][/color] [color=darkred]{ hier soll dein Vorschlag rein }[/color] [b]End[/b]; Wenn du keine entsprechenden Befehle findest, sag es wenigstens in Sätzen. (und nicht die OH vergessen - die ist ganz hilfreich) [ADD] PS: Zitat:
http://www.delphipraxis.net/images/common/divider.jpg ![]() ![]() ![]() |
Re: erstellen einer funktion getinteger
aber ich soll doch keine procedure sondern eine function machen.?????????????????
|
Re: erstellen einer funktion getinteger
Keine Sorge, am Ende kommt schon eine Funktion raus - das ist doch erst der 1. Teil der Aufgabe.
Zitat:
![]() ![]() ![]() |
Re: erstellen einer funktion getinteger
@himitsu: Die Prozedur val gibt es schon. Und ich denke mal, er soll sie verwenden für seine GetInteger Funktion.
Delphi-Quellcode:
Das wäre mein Ansatz aber das:
function GetInteger(s: String): Boolean;
var Code: Integer; i: Integer; begin val(s, i, Code); result := Code = 0; end; Zitat:
|
Re: erstellen einer funktion getinteger
das weis ich auch nicht genau. der lehrer gibt immer solche aufgaben wo man nicht durchsieht. aber ich glaube es soll in der funktion passieren. aber wenn du einen lösungsvorschlag für die while schleife hast wäre ich auch dafür dankbar.
|
Re: erstellen einer funktion getinteger
Oh, Das (val) kannte ich noch nicht, daher dachte ich es gehört mit zu Aufgabe. :oops:
(man lernt halt immer mal was neues dazu) Dafür bin ich mal, zumindestens bei dieser Aufgabe, nett. :angle2: 1: Zitat:
Code:
2:
[color=red][b]Function[/b] GetInteger(P: [b]String[/b])[/color]: Integer;
Zitat:
Code:
3:
[color=red]WriteLn(P);[/color]
Zitat:
Code:
4:
[color=red]ReadLn(S)[/color];
Zitat:
Code:
5:
[color=red][b]Repeat[/b][/color]
... [color=red][b]Until[/b] C = 0[/color]; Zitat:
Code:
[color=red][b]Function[/b][/color] GetInteger(P: [b]String[/b])[color=red]: Integer[/color];
Code:
6:
[color=red]Result := I;[/color]
Zitat:
Code:
7:
[b]If[/b] [color=red]C <> 0[/color] [b]Then[/b] [color=red]WriteLn('Fehler auf Position ' + IntToStr(C));[/color]
Zitat:
Code:
Ergebnis:
[color=darkred][b]Repeat[/b][/color]
[color=red]WriteLn(P);[/color] [color=red]ReadLn(S);[/color] ... [color=darkred][b]Until[/b] C = 0;[/color]
Delphi-Quellcode:
http://www.delphipraxis.net/images/common/divider.jpg
Function GetInteger(P: String): Integer;
Var S: String; C, I: Integer; Begin Repeat WriteLn(P); ReadLn(S); Val(S, I, C); If C <> 0 Then WriteLn('Fehler auf Position ' + IntToStr(C)); Until C = 0; Result := I; End; ![]() ![]() ![]() |
Re: erstellen einer funktion getinteger
danke ohne euch wäre ich echt aufgeschmissen gewesen. :love:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:57 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