Hogyan kell megírni egy ''egyszerű'' programot lazarusban?
Az a helyzet,hogy ez a program holnapre kellene,de sajnos nemtudok semerre sem elindulni,valaki segítene,vagy leírná?
Szoval a programnek így kellene kinéznie:
-A beírt pozitív szám átlagját számolja ki
-A számokat addig kérje,míg 0-át nem írok be neki.
-Ha negatív értéket adok meg,akkor a program figyelmeztessen,hogy pozitívat adjak meg
Nagyon megköszönném,ha valaki segítene,vagy megmutatná egy mintaként,hogy hogyan kell megcsinálni.Előre is köszönöm.
Ez idáig szimpla pascal-feladat, akkor is, ha a Lazarus IDE-t használod szerkesztésre. A szerkezete nagyjából:
---
változók: szám, összeg, számló
ciklus indul
beolvassa a számot
szám nagyobb nullánál?
igen: hozzáadod a számot az összeghez, és növeled a számlálót
nem: szám kisebb nullánál?
igen: figyelmeztetést ír ki
ha szám egyenlő nullával, ciklus vége
elosztja az összeget a számlálóval, és kiírja az eredményt
---
Másold ide, meddig jutottál.
Hát, ez igen szomorú, nem tudom, mit tanultok abban az iskolában... Itt egy nagyon egyszerű megoldás, hibakezelés nélkül, csak azért, hogy ne kapjál karót:
program atlag;
var szam, osszeg, szamlalo : integer;
BEGIN
WriteLn('POZITÍV EGÉSZ SZÁMOK ÁTLAGA', #10#13);
WriteLn('Írj be pozitív egész számokat.');
WriteLn('A bevitel végét 0 érték beírásával jelezd.', #10#13);
osszeg := 0; szamlalo := 0;
repeat
Write('Írd be a következő számot: '); ReadLn(szam);
if szam > 0 then
begin
Inc(osszeg, szam); Inc(szamlalo);
end
else
if szam < 0 then WriteLn('Negatív nem lehet!');
until szam = 0;
If osszeg > 0 then
WriteLn('A számok átlaga, öt tizedesjegyig: ', osszeg / szamlalo :5:5)
else
WriteLn('Nem adtál meg egy számot sem!');
ReadLn;
END.
Leszel szíves csak akkor bemutatni, ha nagyon muszáj. És addig tanulmányozd, míg pontosan meg nem értesz benne mindent.
Egy picit utána is kereshettél volna, két napja volt http://www.gyakorikerdesek.hu/kozoktatas-tanfolyamok__hazife.. számbekerésre kérdés. Az ottani függvényemet felhasználva írtam neked egy 'szájbarágósat', de erről valószínűleg nem hiszik el, hogy te készítetted. Megtűzdeltem kommentekkel, hogy érthető legyen:
program Project2;
{$APPTYPE CONSOLE} //Csak Delphi-ben kell
var szam, szamlalo, osszeg : integer;
//Függvény a hibakezeléses szám bekéréshez
function beker(hol_tartunk: byte) : integer;
var i, hiba: integer;
s: string;
begin
i := 0;
hiba := -1;
//Amig a Val eljárás hibakódja nem egyenlő 0-val addig ismételjük
while hiba <> 0 do
begin
Write(#10#13, 'Kérem a ', hol_tartunk, '. elemet: ');
//Szövegként kérjük be
ReadLn(s);
//Átkonvertáljuk számmá
Val(s, i, hiba);
//Ha a szám negatív újrakérjük
if i < 0 then
begin
hiba := -1;
Write(#10#13, 'A szám nem lehet negatív !');
end;
end;
//A függvény visszatérési értéke i - a régebbi Pascal-ok nem ismerik a Result-ot
//ezért a függvény nevét használjuk
beker := i;
end;
begin
szamlalo := 0;
osszeg := 0;
repeat
szam := beker(szamlalo + 1);
Inc(szamlalo); //Növeljük a számlálót
Inc(osszeg, szam); //Növeljük az összeget == osszeg := osszeg + szam
until szam = 0;
Dec(szamlalo); //Mivel a 0-át is számoltuk ezért 1-el csökkentjük a számlálót
WriteLn('A számok összeg: ', osszeg, ' darabszáma: ', szamlalo, ' átlaga: ', (osszeg / szamlalo):0:5);
ReadLn;
end.
tabaki kollégához csatlakozva én sem értem, hogy mit vagy hogyan tanultok abban az iskolában :)
Esetleg próbáld meg a Turbo Pascal 6.0 -t magyar nyelvű helppel. Igaz, hogy ezeréves, de alap dolgokra elég és a magyar help nagyon hasznos lehet egy kezdőnek.
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!