webForumDet fria alternativet

Function i Pascal

4 svar · 493 visningar · startad av dahlgren

dahlgrenMedlem sedan aug. 20011 946 inlägg
#1

Kan inte lyckas få till en enkel funktion i pascal. vad den gör är ovesentligt, viktigt är att jag lär mig principen. Koden ndean ger felet: d:\mina dokument\pascal\array.pas:11: too many arguments to routine `Hej'

program test;
var x:integer;
function hej:integer;
var tal1:integer;
begin
tal1:=x+2;
hej:=tal1;
end;
begin
x:=2;
writeln(hej(x));
readln;
end.
spangoMedlem sedan juni 20008 205 inlägg
#2

Jag tror att det du är ute efter är procedure hej (arg:integer); och inte function hej:integer; eftersom det senare är signaturen för en funktion som inte tar några argument men returnerar en integer, och det förra är en procedur (som alltså inte returnerar något) och som tar emot en integer.

Mvh, en som handleder en del i Pascal ;) (om än inte åt DSVL:are)

dahlgrenMedlem sedan aug. 20011 946 inlägg
#3

Jag må vara trög och dömd att misslyckas på tentan men jag förstå inte. Änen om jag kör om det till en procedure så blir det fel.

MinOrkMedlem sedan aug. 2000234 inlägg
#4

Du anropar funktionen hej i ditt huvudprogram med argumentet x, men du har inte gjort funktionen så att den tar emot något argument.

function Hej(tal: integer): integer;
begin
    tal := tal + 1;
    Result := tal;
end;
dahlgrenMedlem sedan aug. 20011 946 inlägg
#5

Tacknu förstår jag. Det innanför () är vad som tas emot och det efter är hur resultatet ska presenteras. Trodde det räckte med den sista endast.

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)