Kezdőoldal » Számítástechnika » Programozás » Nem tudom futtatni a pascal...

Nem tudom futtatni a pascal programomat, leellenőriznétek, hogy jól oldtam-e meg?

Figyelt kérdés

A feladat szövege: Nulla végjeléig generálj -10 és 10 közötti számokat, és számítsd ki a párosak és páratlanok összegét.


Így oldottam meg:

uses crt;

var a,ossz_paros,ossz_paratlan:integer;

begin

randomize;

ossz_paros:=0;

ossz_paratlan:=0;

a:=0;

writeln('a:=');readln(a);

while a<>o do begin

random(-19)+10

if a mod 2=0 then ossz_paros:=ossz_paros+a

else ossz_paratlan:=ossz_paratlan+a

end;

readln;

end.


2012. febr. 6. 13:51
 1/3 coopper ***** válasza:

Szia.


A következőket látom benne :


1. while a<>o do begin <-szerintem ez nem nulla ez kis "o" betű


2. random(-19)+10 hiányzik egy pontosveszző a végéről, illetve a "b:=" az elejéről és nem is jó, mivel negativ szám nem lehet a random függvény paramétere. (Ha "b:="-t használod akkor "b"-t fel kell venni a változók listájára)


Itt a random helpje a borland pascálból :


"A Word random number within the range 0 <= X < Range."


Tehát : b:=random(11)-20; vagy valami hasonló.


3. Az "a' bekérése sem jó helyen van.

Bekéred "a"-t aztán elinditod a ciklust, Ha nem nullát adok be kapsz egy végtelen ciklust mert "a"-t nem kéred be ujra valahogy igy kellene :


a:=1;

while a<>0 do begin

writeln('a:=');readln(a);


4. A vizsgálat nem "a"-ra kell hogy vonatkozzon, hanem a random függvény által generált számra (elvileg ez "b") és nem "a"-t kell hozzáadni, hanem "b"-t. Az Else ág végéről hiányzik egy pontosveszző.


if b mod 2=0 then ossz_paros:=ossz_paros+b

else ossz_paratlan:=ossz_paratlan+b ;


Nagyjából ennyi.


Mi a gond a kipróbálással ? Mi nem megy ?


Üdv.

2012. febr. 6. 14:32
Hasznos számodra ez a válasz?
 2/3 coopper ***** válasza:

Konkrétan a véletlensztám generálás :


b:=random(21)-10;


Mivel 21-rgy sohasem lesz, de 20 már igen ebből ha leveszel 10-ert akkor +10-et kapsz. Ha a másik végletet nézzük 0-10 akkor minusz 10.


Üdv.

2012. febr. 6. 14:40
Hasznos számodra ez a válasz?
 3/3 ejbenjaro ***** válasza:

Én így csinálnám:

program szamgeneral;


uses crt;


var

veletlenSzam, osszParos, osszParatlan: integer;

vegJel : char;


begin

osszParos:=0;

osszParatlan:=0;

vegJel:='a';

Randomize;

writeln('Szamok generalasa folyamatban...');

writeln('A kilepeshez nyomj 0-t!');

repeat

veletlenSzam:=Random(20)-10;

if (veletlenSzam mod 2) <> 0 then osszParatlan:=osszParatlan+veletlenSzam

else osszParos:=osszParos+veletlenSzam;

if KeyPressed() then vegJel:=ReadKey();

until vegJel='0';

writeln('A paros szamok osszege: ',osszParos);

writeln('A paratlan szamok osszege: ',osszParatlan);

end.

2012. febr. 6. 15:31
Hasznos számodra ez a válasz?

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!