Kezdőoldal » Számítástechnika » Programozás » Hogy oldjam meg Free Pascalban...

Adamhu99 kérdése:

Hogy oldjam meg Free Pascalban? For ciklus?

Figyelt kérdés

Kaptunk egy csomó programozásos házit és itt elakadtam. Valaki tudna segíteni a hatványozásban? Még nem csináltunk hatványozást és ez elég nehéz egy csomó mindent próbáltam (neten is kerestem megoldást), de nem megy. A for ciklushoz (for to do)-hoz nem értek mert beteg voltam amikor suliban tanultuk. El tudná magyarázni nekem valaki, hogy mire jó a for ciklus? (suliban kérdeztem a többieket de ők sem tudják elmagyarázni hogy miért kell oda... csak annyit hogy kell, eredetileg forciklus nélkül csináltuk a programokat és ez most új/újabb). A programot le tudom írni csak valahogy ki kéne egészíteni.


program hatvanyozashazi;

uses crt;

var a,h,i:integer;

begin

clrscr;

write('A bekért szám: ');

readln(a);

write('A hatvány: ');

i:=1;

for 1 to h do

i:=i*a;

readkey;

end.



2015. szept. 15. 18:50
1 2 3 4 5
 1/45 tabaki ***** válasza:

A kezdőszámtól a határszámig (itt 1-től h-ig, vagyis h-szor) ismétli az utána következő utasítást. Ez most nálad egyetlen szorzás:

i := i * a;

Ennek az alapján azt hiszem, elég könnyű megérteni, hogyan hatványoz a program. Mivel kéne kiegészíteni?

2015. szept. 15. 18:59
Hasznos számodra ez a válasz?
 2/45 A kérdező kommentje:

az a baj hogy nem indul a program. Azt hittem rosszul írtam meg a programot.

Ezt írja: "Compile failed"

és "Total errors: 4".

2015. szept. 15. 19:03
 3/45 tabaki ***** válasza:

Hüm, egy kissé pongyolán fogalmaztam, mivel ez egy értékadás, és pont az a lényege, hogy a szorzás eredménye ugyanabba a változóba kerüljön, és az szorzódjon tovább.

El tudod mesélni sorról sorra, hogy mi miért kell, és mit csinál?

2015. szept. 15. 19:03
Hasznos számodra ez a válasz?
 4/45 tabaki ***** válasza:
Izé... várjál, én még ki sem próbáltam...
2015. szept. 15. 19:04
Hasznos számodra ez a válasz?
 5/45 coopper ***** válasza:

Szia.


Sok baj van itt, nézzük sorban :


1. Nem i:=1; hanem a:=1; feltéve ha az a-ban lesz a hatványozás éredménye.


2. For ciklus nem igy : for 1 to h do hanem igy : for i:=1 to h do (a jövőre nézve szerintem mindig begin end közé téve az utasitást vagy utasitásokat)


3. Étrékadás : nem i:=i*a, (ha az i a ciklusváltozó akkor hibát fog adni) hanem a:=a*i;


Illetve ki is kellene iratni az eredményt :


writeln ('Hatványozás eredménye : ',a);



Egyben az egész :


a:=1;

for i:=1 to h do begin

_ _a:=a*i;

end ;

writeln ('Hatványozás eredménye : ',a);

readkey;


Sok sikert.

üdv.

2015. szept. 15. 19:11
Hasznos számodra ez a válasz?
 6/45 coopper ***** válasza:

illetve még a bekérés sem jó, mivel nem a-t kell bekérni hanem h-t (vagy akkor ha a-t kéred be akkor h lesz az összeg,) mindegy most nézzük h bekéréssel :


write('A bekért szám: ');

readln(h);

2015. szept. 15. 19:14
Hasznos számodra ez a válasz?
 7/45 tabaki ***** válasza:

Nincs ciklusváltozó + csak kiírod a kérést, de nem kéred be a hatványt + nem íratod ki a végeredményt.

A ciklusváltozó az, ami a megadott határok között változni fog, különben mit számolna a program? Például így:

for C := 1 to h

2015. szept. 15. 19:18
Hasznos számodra ez a válasz?
 8/45 tabaki ***** válasza:

+ bocs:

for C := 1 to h do

(amúgy meg megint jól lekéstem)

2015. szept. 15. 19:19
Hasznos számodra ez a válasz?
 9/45 A kérdező kommentje:

Nem mindet tudom elmondani. De megpróbálom:


1. sor "program..." a program neve

2. sor "uses crt" erre nem emlékszem (azt tudom hogy ezt mindig ki kell írni)

3. sor "var..." a változók megadásához szükséges (nem csak integer lehet, van real és még sok más)

4. "begin" (ha jól emlékszem) hogy elinduljon a program

5. sor "clrscr" ez a clearscreen, a képernyőt "letörli"

6. sor a szöveg (ezt adja ki a kész program és ide kérünk be egy számot) a "readln(a);" megjegyzi (vagy hasonló) azt a számot és innentől azzal dolgozik ha "a" karaktert lát (pl.) egy egyenletben.

A write('A hatvány: '); alatt még ott a "readln(h);" is csak ez lemaradt

i:=1; ezt nem tudom

for 1 to h do itt ciklusonként bekéri 1-től a "h" értékéig a számokat és elvégzi a műveletet "i:=i*a;" (lehet hogy itt lenne a hiba?)

readkey; nem egyből jelenjen meg a program, csak egy billentyűkombináció megnyomására (parancsgomb a fordítás, elvileg)

end. a program vége.

2015. szept. 15. 19:21
 10/45 A kérdező kommentje:

úgy csináltam ahogy mondtad.

"exited with exitcode: 1"


az "a" lenne a szám

a "h" lenne amennyivel hatványozni szeretném

az "i" az ami a forciklussal foglalkozik


igen van olyan hogy "readln(h);" azt véletlenül nem írtam ide, kimaradt itt

2015. szept. 15. 19:24
1 2 3 4 5

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!