Keresés Kategóriák Kedvencek

Programozás Pascalban: Átlagszámító program készítése

Készítette: davidman96
2009. május 17. 19:24:06 - 11868 megtekintés
  • Az alábbi tippben egy egyszerű átlagszámító program készítését fogjuk bemutatni, amit Pascalban írunk meg.
  • Amire szükségünk lesz

    Pascal
  • Átlagszámító program készítése

    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, 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írtuk integer-re, ugyanis kizárt, 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.
  • Címkék:

    Free Pascal programozás pascal számítástechnika
Joshiweb - 14 éve

Nemtudom nektek mi a bajotok vele.
Egy kicsit javítottam rajta és tökéletesen megy.

jozsefpetkes - 14 éve, 4 hónapja

ami itt levan irva med a videóba mind kipróbáltam de egyik se megy

jani12 - 14 éve, 10 hónapja

Nekem most sem megy.Pontosan ezt írtam le, de még most sem működik.
Nem indítja el.

davidman96 - 14 éve, 11 hónapja

Köszi!
a koocsi lamborghini embolado

Fefy - 14 éve, 11 hónapja

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.