Kezdőoldal » Számítástechnika » Programozás » Sehogy nem bírok rájönni a jó...

Sehogy nem bírok rájönni a jó relációra, hogy 1-10 ig kérje be a számokat a program?

Figyelt kérdés

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


2011. júl. 23. 18:42
 1/4 anonim ***** válasza:

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.

2011. júl. 25. 16:06
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:

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.

2011. júl. 25. 16:40
 3/4 anonim ***** válasza:

"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.

2011. júl. 25. 21:34
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
A szám e eljárást még nem ismerem. Most kezdtem el nem rég foglalkozni vele még nem tartok ott.
2011. júl. 25. 21:59

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!