Röviden eltudná magyarázni valaki a "Szóbeli" programozást? Bővebben lent.
Itt egy példa, mit is értek szóbeliként:
Az N értéke: 1
Valami(N):
A:=(0,…,0); M:=0
Ciklus i=1-től N-ig
j:=0
Ciklus amíg A(j)=1
A(j):=0; j:=j+1
Ciklus vége
A(j):=1
Ha j>M akkor M:=j
Ciklus j=M-től 0-ig -1-esével
Ki: A(j)
Ciklus vége
Ciklus vége
Eljárás vége.
Sajnos az egész egy kicsit érthetetlen számomra.
Pl.: Mit jelent ez a sor: "Ciklus i=1-től N-ig"?
Válaszaitokat előre is köszönöm!
Ez az úgynevezett Pszeudo-kód, vagy nyelvfüggetlen kód (nak egy változata). Az indentálás (indentálás = behúzások, szóköz/tab) hiánya miatt nehezebb értelmezni.
Valami(N): - ez egy függvény. Valaminek hívják, és kap egy N változót paraméterként.
A:=(0,…,0); M:=0 - A egy tömb, nullákkal feltöltve, M egy nulla kezdőértékű változó
Ciklus i=1-től N-ig - Ez egy számlálós ciklus 1-től N-ig megy. (A népszerűbb programozási nyelvekben ez a for ciklus)
j:=0 - J változó nullával
Ciklus amíg A(j)=1 - előltesztelős ciklus. (While)
A(j):=0; j:=j+1
Ciklus vége - A legutóbbi ciklus itt ér véget (ez esetben ez a while-unk, két sorral feljebb)
A(j):=1
Ha j>M akkor M:=j
Ciklus j=M-től 0-ig -1-esével - for ciklus, csökkenő ciklusváltozóval
Ki: A(j)
Ciklus vége - az utóbbi for ciklus itt ér véget
Ciklus vége - a legelső (3. sorban) lévő ciklus itt ér véget
Eljárás vége. - az algoritmus itt ér véget.
Köszönöm szépen a válaszod! :)
Annyi lenne még a kérdésem, hogy ha van egy ciklus:
(Ciklus i=1-től N-ig)
Ez azt jelenti, hogy a tömb 1. és az N sorszámú változóján futtassa végig a ciklust?
Ez az egy dolog amit nem értek. (Tudom kezdő vagyok)
Köszi előre is!
# 2/2 Időpont ma 10:16
"Ez azt jelenti, hogy a tömb 1. és az N sorszámú változóján futtassa végig a ciklust?"
Nem. Azt jelenti, hogy az elsőtől az N. számúig mindegyikre.
Arra viszont figyelj oda, hogy pszeudo-kódban szokás 1-től indexelni, programkódban viszont általánosságban 0-tól indexelünk.
Azaz ami pszeudo-kódban az első elem, az programkódban a nulladik.
Ezt a sort pedig kihagytam:
Ha j>M akkor M:=j - ez egy egyszerű IF/HA feltételvizsgálat. Ha j > M, akkor M értéke legyen j.
(:= értékadás. De nyelvenként változhat, hogy ott hogy megy. Delphiben :=, C++ nyelvben = az értékadás például)
Rendben, akkor így már mindent értek.
Köszönöm szépen a segítségedet!
>> Valami(N):
Eljárás, függvény (későbbiekben csak fgv), metódus (ahogy tetszik) eleje, aminek a neve: Valami és egy N változót kap paraméterként. Ez az N egy érték, amit fgv. híváskor kell megadni. Az alábbi kódsor a fgv. definíció, azaz, hogy a Valami fgv. mit csinál.
>> A:=(0,…,0); M:=0
A változó jelen esetben egy 1 dimenziójú tömb, sor, vektor (ahogy tetszik).
M meg egy változó, ami jelen esetben 0-s értéket vesz fel.
>> Kipontoztam, hogy lehessen látni.
Ciklus i=1-től N-ig
... j:=0
... Ciklus amíg A(j)=1
... ... A(j):=0; j:=j+1
... Ciklus vége
... A(j):=1
... Ha j>M akkor M:=j
....Ciklus j=M-től 0-ig -1-esével
... ... Ki: A(j)
... Ciklus vége
Ciklus vége
>>> Ciklus i=1-től N-ig
Ciklus mint ismétlés. Azaz ha "Ciklus i=1-től 5-ig" szerepelne, akkor 5x fut le a kód, ami alatta van egészen a "Ciklus vége"-ig. Minden futás után, miután elérte a "Ciklus vége" részt úgy "i" értékén növel 1-el és kezdi elölről.
1. fután: i=1
2. fután: i=2
3. fután: i=3
4. fután: i=4
5. fután: i=5
6. futás nincs, mert túllépnénk az N értékén. Ha N-ek 5-t adnánk, fgv. híváskor. Így az N lehetne 200 is, csak akkor 200x futna le.
Megj.: Természetesen "j:=0" minden alkalommal felülírja az aktuális értékét!
>>> Ciklus amíg A(j)=1
Amíg az A tömb "j"-edik (A j-edik indexén lévő) értékre igaz az, hogy az 1-es, úgy futtassa le az alatta lévő kódot. (jelen esetben csak 2 utasítást tartalmaz)
Mivel az "A(j):=0"-t írunk, így a feltétel ami a ciklusban szerepel legközelebb hamis lesz, így a ciklus nem folytatódik. (Ha ezt nem írtuk volna oda, akkor végtelen ciklusról beszélünk, ami soha se ér véget.)
Majd az j értéken növelünk 1-et.
>> Ha j>M akkor M:=j
Érték összehasonlító. "j"-nek és "M"-nek is van saját értéke. Ha "j" nagyobb "M"-nél, akkor vegye fel az "M" változó "j" értékét.
>>>
Ciklus j=M-től 0-ig -1-esével
... Ki: A(j)
Ciklus vége
>>>
A tömböt olvassuk visszafele. Majd a "Ki: A(J)" gondolom a kiíratás akar lenni. (Azért a "Ki:" most, sok mindent lefed. :D terminálra/console-ra, papírra, fájlba, hálózaton ki... stb. Mondjuk nem is volt definiálva, hogy hova.)
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!