Sehogy nem bírok rájönni a jó relációra, hogy 1-10 ig kérje be a számokat a program?
tesztelős ciklusban kell megírni a kov.
Kerjen be egy szamot 1 es 10 kozott(tesztelje!),es irassa ki a szam negyzetet(onmagaval valo szorzatat!)
modositsa az elzozo feladatot ugy hogy a vegen kerdezze meg hogy vege legy e mar!
(TURBO PASCAL)
Repeattel szeretnem megoldani.
begin
repeat
writeln('adjon egy szamot 1-10g');
readln(a);
writeln(a,' szam negyzete ',a*a);
until (a>=1) and (a<=10);
es aztan readkeyel kellene beagzazni valmi hasonlot:
repeat
writeln('szeretne kilepni?(i)');
r:=readkey;
until (r<>'i') or (r<>'I');
Ezek nem biztos hogy jok de nem valmi hasonlot kepzeltem el megoldasnak...de mar annyit probalgattam es nem jo mar elegem van ebbol a feladatbol...valki segithetne,hogy tovabb tudjak lepni rajta.
Koszonom
Ez úgy ahogy van rossz! rossz a gondolatmeneted! gondold át és írd le az egész programot, majd segítek elemezni. (mármint amire gonoltál: innentől: program neve; idáig: end)
Tehát leírod akkor elemezem nekede lehet rájössz a hibára. ja és én semmiképp nem használnék readkey-t a továbblépéshez.
vegul igy irtam meg:
program tizigtest;
uses crt;
var i:integer;
c:char;
begin
clrscr;
repeat
write('adjon meg egy szamot 1-10 ig: ');
repeat
readln(i);
until
(i>=1) and (i<=10);
writeln(i,' szam negyzete ',i*i);
writeln;
writeln('folytatja? (n)');
c:=readkey;
until
(c='n') or (c='N');
end.
lehet van benne hiba..nagyjából működik a program,bár kétlem,hogy tökéltessen van megírva. Ha van valami észrevételed,tanácsod ..annak örülnék.
"writeln('adjon egy szamot 1-10g');"
Nem jó üzenet a felhasználónak, akkor megadom hogy 3.7 és elszáll a program, pedig azt csináltam amit "kért" a program. Vagy figyelmetlenségből beírom hogy 11 és semmi ...
azt "hiszem" hogy lefagyott a program(, nincs hibaüzenet).
Vagy pedig hajlamos vagyok ezt beírni pl.: 5ű (gyakori gépelési hiba) szintén elszáll a program.
"writeln('szeretne kilepni?(i)');"
szeretne kilepni?(i/n) -t lenne illő írni(, e szerint is működni).
Majdnem így:
program tizigtest;
uses crt;
var
i:integer;
c:char;
begin
clrscr;
repeat
repeat
write('Adjon meg egy egesz szamot 1 es 10 kozott: ');
readln(i);
if not((i>=1) and (i<=10)) then
writeln('Tartomanyon kivuli.');
until (i>=1) and (i<=10);
writeln(i,' szam negyzete ',i*i);
writeln;
repeat
write('folytatja? (i/n)');
c:=readkey;
writeln(' ',c);
until UpCase(c) in ['I','N'];
until (UpCase(c)='N');
end.
Rakd bele hogy tesztelje hogy számot írtunk e be és a megfelelő hibaüzeneteket! Segítség az hogy szám-e a val eljárással lehet eldönteni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!