Pascal |
ami itt levan irva med a videóba mind kipróbáltam de egyik se megy
Nekem most sem megy.Pontosan ezt írtam le, de még most sem működik.
Nem indítja el.
Na leírom, hogy mi az amit be kell írni a videó alapján, mert a videó tényleg egy kicsit zavaros
uses crt;
var
a,n,s,i:longint;
begin
clrscr;
writeln('Add meg a jegyeid számát:');
readln(n);
for i:=1 to n do begin
writeln('Add meg az osztályzatodat:');
readln(a);
s:=s+a;
end;
writeln('A Jegyeid átlaga:',s/n:6:2);
readln;
end.
A fenti kód viszont tartalmaz egy pár hibát (ami nem biztos, hogy a program futása közben előjön, de jobb megelőzni a bajt, mint nem érteni, hogy miért nem megy ), amit én javítanék. Szóval a helyes forráskódnak valahogy így kell(ene) kinézni:
program jegyek;
uses crt;
var
a, n, s, i:integer;
begin
clrscr;
writeln('Add meg a jegyeid számát:');
readln(n);
s:=0;
for i:=1 to n do begin
writeln('Add meg az osztályzatodat:');
readln(a);
s:=s+a;
end;
writeln('A Jegyeid átlaga:',s/n:6:2);
readln;
end.
Vagyis az eredeti kódból hiányzik az s változó nullázása, ami így véletlenszerű kezdőértéket vesz fel, ami általában 0, de nem mindig, így illik nullázni a változót (vagyis ez hiányzik az eredeti forráskódból: s:=0.
a program legelső sora úgy szabványos, ha tartalmazza a "program" parancsot, és egy nevet, ami jelen esetben lehet jegyek, vagy osztályzat (vagy bármi ).
valamint még egy módosítás:
ebben a sorban: a,n,s,i:longint;
a longintet átírtam integer-re, ugyanis nem hinném, hogy bárki is több, mint 6000 jegy átlagát szeretné ilyen módon kiszámolni, így elég az integer tartomány is (ami egészen 32767-ig tudja a számokat tárolni, ami bőven elég). Természetesen nem kötelező integert használni a longint helyett, de érdemes a megfelelő típusú változót használni, ami jelenleg az integer
Mindenkitől elnézést kérek, hogy ilyen hosszú lett a hozzászólásom, de jó pár ezer sornyi program megírása után már kötelességemnek érzem, hogy mindenki a helyes alapokat tanulja meg.
Nemtudom nektek mi a bajotok vele.
Egy kicsit javítottam rajta és tökéletesen megy.