2007-09-28, 22:30
#1
Hej! jag har ett problem.. har nyligen börjat studera pascal i delphi på egen hand men har nu ett problem som jag inte lyckats få svar på.
jag skriver just nu en typ av "miniräknare" men när jag kommer till metoden
dvs +,-,* och / så lägger jag in dessa i variablar där man själv väljer vad det ska va för metod. men när jag kommer till beräkningen
så använder jag mig av:
writeln(number[1]:0:2,method[1],number[2]:0:2);
då blir t.ex. ressultatet på skärmen att den bara skriver ut 20 + 30
men jag vill att den ska skriva ut summan av de 2 talen. dvs. 50 i detta läge.
"number" är av datatyp Real och "method" är av datatyp Char och jag använder dom i arrays. det hade fungerat att lösa med if-satser men om man vill använda sig av fler tal och olika metoder blir det ju en jäkla massa if-satser
jag är nog lite "noob" på detta men hoppas någon kan hjälpa mig eller framföralt förstår vad jag just skrivit..
Hela programkoden:
tack på förhand.
jag skriver just nu en typ av "miniräknare" men när jag kommer till metoden
dvs +,-,* och / så lägger jag in dessa i variablar där man själv väljer vad det ska va för metod. men när jag kommer till beräkningen
så använder jag mig av:
writeln(number[1]:0:2,method[1],number[2]:0:2);
då blir t.ex. ressultatet på skärmen att den bara skriver ut 20 + 30
men jag vill att den ska skriva ut summan av de 2 talen. dvs. 50 i detta läge.
"number" är av datatyp Real och "method" är av datatyp Char och jag använder dom i arrays. det hade fungerat att lösa med if-satser men om man vill använda sig av fler tal och olika metoder blir det ju en jäkla massa if-satser
jag är nog lite "noob" på detta men hoppas någon kan hjälpa mig eller framföralt förstår vad jag just skrivit..
Hela programkoden:
program najsigt;
uses Crt32;
{$APPTYPE Console}
var number : array [1..5] of real;
method : array [1..4] of char;
i,max : integer;
begin
i := 1;
write('How many numbers do you wanna use? min=2 max=5: ');
readln(max);
if(max > 1) and (max < 6) then
begin
repeat
write('Enter number ',i,': ');
readln(number[i]);
i := i+1;
until(i > max);
clrscr;
i := 1;
writeln('You may only use (+),(-),(*) or (/)');
repeat
write('Enter Method ',i,': ');
readln(method[i]);
if NOT((method[i] = '+') or (method[i] = '-') or (method[i] = '*') or (method[i] = '/')) then
begin
writeln('You did use a bad character!');
i := 5;
readln;
end;
i := i+1;
until(i > max-1);
clrscr;
if(max = 2) then
begin
writeln(number[1]:0:2,method[1],number[2]:0:2);
end
else if(max = 3) then
begin
writeln(number[1]:0:2,method[1],number[2]:0:2,method[2],number[3]:0:2);
end
else if(max = 4) then
begin
writeln(number[1]:0:2,method[1],number[2]:0:2,method[2],number[3]:0:2,method[3],number[4]:0:2);
end
else if(max = 5) then
begin
writeln(number[1]:0:2,method[1],number[2]:0:2,method[2],number[3]:0:2,method[3],number[4]:0:2,method[4],number[5]:0:2);
end;
end
else
begin
writeln('Numbers to use may not be more then 5 and less then 2!');
end;
readln;
uses Crt32;
{$APPTYPE Console}
var number : array [1..5] of real;
method : array [1..4] of char;
i,max : integer;
begin
i := 1;
write('How many numbers do you wanna use? min=2 max=5: ');
readln(max);
if(max > 1) and (max < 6) then
begin
repeat
write('Enter number ',i,': ');
readln(number[i]);
i := i+1;
until(i > max);
clrscr;
i := 1;
writeln('You may only use (+),(-),(*) or (/)');
repeat
write('Enter Method ',i,': ');
readln(method[i]);
if NOT((method[i] = '+') or (method[i] = '-') or (method[i] = '*') or (method[i] = '/')) then
begin
writeln('You did use a bad character!');
i := 5;
readln;
end;
i := i+1;
until(i > max-1);
clrscr;
if(max = 2) then
begin
writeln(number[1]:0:2,method[1],number[2]:0:2);
end
else if(max = 3) then
begin
writeln(number[1]:0:2,method[1],number[2]:0:2,method[2],number[3]:0:2);
end
else if(max = 4) then
begin
writeln(number[1]:0:2,method[1],number[2]:0:2,method[2],number[3]:0:2,method[3],number[4]:0:2);
end
else if(max = 5) then
begin
writeln(number[1]:0:2,method[1],number[2]:0:2,method[2],number[3]:0:2,method[3],number[4]:0:2,method[4],number[5]:0:2);
end;
end
else
begin
writeln('Numbers to use may not be more then 5 and less then 2!');
end;
readln;
har använt mig lite av case förut men har aldrig fattat vikten av dess funktion försen nu, tack så mkt.