Kódolási
feladatok!
A következő algoritmusokat a
tanult programnyelvre kellene kódolni és működő programot létrehozni!
1. feladat (vissza
a menühöz)
Kódolja az alábbiakban megadott
algoritmust Pascal (C, JAVA, BASIC vagy egyéb által tanult) nyelven!
A
KI(X) eljárás az X szöveges kifejezés értékét írja a szabványos
kimenetre (általában a képernyőre), az aktuális karakter-pozícióba.
A
KI(új_sor) eljáráshívás egy „új sor” karaktert ír a kimenetre. A NEM(V)
logikai függvény a paramétere tagadását adja eredményül.
Amennyiben
a
használt programozási nyelv nem tartalmaz logikai típust, használjon
helyette egész típusú változót, ahol a 0 reprezentálja a hamis, az 1
pedig az igaz értéket!
A „:=” operátor az értékadást jelöli,
mely az
operátor bal oldalán megadott helyen (a változóban) tárolja a jobb
oldalán megadott kifejezés értékét.
Beadandó az algoritmust az
adott forrásnyelven kódolva tartalmazó fájl!
Változók:
V:logikai
I:egész
J:egész
Program
eleje
V := igaz
Ciklus i:=1-től 8-ig 1-esével
Ha i páratlan szám
akkor V:=
igaz
különben V:= hamis
elágazás
vége
Ciklus j:=1-től 8–ig 1–esével
Ha V
akkor KI(„A”)
különben KI(„B”)
elágazás
vége
V :=
NEM(V)
Ciklus vége
KI(új_sor)
Ciklus vége
Program vége
2.
feladat.
(vissza a menühöz)
Kódolja az alábbiakban
megadott algoritmust Pascal (C, JAVA, BASIC vagy egyéb által tanult)
nyelven!
A
KI(X) eljárás az X szöveges kifejezés értékét írja a szabványos
kimenetre (általában a képernyőre), az aktuális karakterpozícióba!
A
KI(új_sor) eljáráshívás egy „új sor” karaktert ír a kimenetre.A NEM(V)
logikai függvény a paramétere tagadását adja eredményül.
Amennyiben
az ön által használt programozási nyelv nem tartalmaz logikai típust,
használjon helyette egész típusú változót, ahol 0 reprezentálja a
hamis, az 1 pedig az igaz értéket!
A „:=” operátor az
értékadást
jelöli mely az operátor bal oldalán megadott helyen (változóban)
tárolja a jobb oldalán megadott kifejezés értékét!
Beadandó az
algoritmust az adott forrásnyelven kódolva tartalmazó fájl.
Változók:
I:egész
J:egész
Program
eleje
I := 10
Ciklus amíg I > 0
Ciklus J := I-től 1-ig –1-esével
KI(„[”)
KI(„I”)
KI(„]”)
Ciklus vége
Ha J páratlan szám
Akkor KI(J)
KI(”:”)
Különben
KI(I)
KI(„;”)
Elágazás vége
I := I – J
KI(új_sor)
Ciklus vége
Program
vége
3.
feladat (vissza
a menühöz)
Kódolja az alábbiakban megadott
algoritmust Pascal (C, Java, Basic vagy az ön által tanult) nyelven!
Ki(x:y)
eljárás X szöveges, ill. szám kifejezés értékét írja ki a szabványos
kimenetre (általában a képernyőre) az aktuális karakterpozíciótól! Az
aktuális karakterpozíció a legutoljára kiírt érték mögötti hely. A :y
arra vonatkozik, hogy egy-egy érték kiíratása hány karakteren történjen.
A
Nem(L) az L logikai érték tagadása. Amennyiben az alkalmazott nyelv nem
rendelkezik Logikai típussal, használjon helyette egész típusú
változót, ahol 0-Hamis, 1-Igaz!
A ’:=’ művelet (legyen
egyenlő) az értékadás, ahol a bal oldali változó felveszi a jobb
oldalon lévő kifejezés értékét.
Beadandó a forrásnyelvű fájl,
amely megoldja az alábbi algoritmust.
Konstans n=400
Változók:
b:VEKTOR(1..n):Logikai
i,j:Egész
Szám
Program eleje
Ciklus i:=1 től n-ig 1-esével
b(i):=Hamis
Ciklus Vége
Ciklus i:=1 től n-ig 1-esével
j:=0
Ciklus amíg j+i<=n
j:=j+i
b(j):=Nem(b(j))
Ciklus Vége
Ciklus Vége
Ciklus i:=1 től n-ig 1-esével
Ha b(i) akkor KI(i:4)
Ciklus Vége
Program Vége
4.
feladat (vissza
a menühöz)
Kódolja az alábbiakban megadott
algoritmust Pascal (vagy C, vagy JAVA, vagy BASIC) nyelven!
Beadandó
az algoritmust az adott forrásnyelven kódolva tartalmazó fájl.
Kiegészítő
kérdés! Hol van a második ciklus vége?
Változók
A:
tömb [1..10] pozitív egész típus
I: pozitív egész típus
Min:
pozitív egész típus
Max: pozitív egész típus
P:
pozitív egész típus
Program eleje
Ciklus
I := 1-től 10-ig
A[I] :=
Véletlen(100)
KI(A[I])
Ciklus
vége
KI(új_sor)
KI(„Kérem a számot:”)
BE(P)
Min
:= 100
Max := 0
Ciklus i: = 1-től 10-ig
Ha A[I] > P akkor
Ha A[I] < Min akkor
Min :=
A[I]
Elágazás vége
különben
Ha A[I] > Max akkor
Max :=
A[I]
Elágazás vége
Elágazás vége
KI(„P szám:”)
KI(P)
KI(„A legkisebb:”)
KI(Min)
KI(„A legnagyobb”)
KI(Max)
Program vége
5.
feladat (vissza
a menühöz)
Kódolja az alábbi algoritmust
az alábbi programozási nyelvek egyikén: Pascal, Java, BASIC, C, C++
vagy C# !
Konstans
N=50
M=50
Változók
I,J:egész
A[0..N,
0..M] : egész elemekből álló mátrix
Program eleje
Ciklus
I:=1-től N-ig
Ciklus J:=1-től
M-ig
A[I,J]:= -2 és 2 közé eső véletlen szám
Ciklus vége
Ciklus vége
I := 0
J := 0
Ciklus
amíg ((J<=0) és (J<=N) és (I<=0) és (I<=N)
és
(A[I,J]<>0))
I := I+A[I,J]
J := J+A[I,J]
Ciklus
vége
Ha (A[I,J]=0) akkor KI(„Végállomás”)
Különben KI(„Indexhatár átlépés”)
Elágazás vége
Program
vége
6.
feladat (vissza
a menühöz)
Kódolja az alábbi algoritmust
az alábbi programozási nyelvek egyikén: Pascal, Java, BASIC, C, C++
vagy C# !
Változók:
I,
J, K egész típusú változók
Program ARMSTRONG
KI(„A
háromjegyű Armstrong-számok a következők: ”)
Ciklus I := 1-től
9-ig
Ciklus J:= 0-tól 9-ig
Ciklus K:= 0-tól 9-ig
Ha I*I*I
+ J*J*J + K*K*K = I*100 + J* 10+ K
Akkor KI(I*100+J*10+K,”,”)
Elágazás
vége
Ciklus vége
Ciklus vége
Ciklus vége
Program vége.
7.
feladat (vissza
a menühöz)
Kódolja az alábbi
algoritmust az alábbi programozási nyelvek egyikén: Pascal, Java,
BASIC, C, C++ vagy C# !
A
Véletlenegész függvény a megadott határok közötti véletlen egész számot
generál. Ha a függvény nem létezik a használt nyelvben, akkor
alkalmazzon megfelelő képletet, amely a megadott intervallumba eső
véletlenszámot generál!
Konstans
N=20
M=30
Változó
I,J,L:egész
A[1..N],B[1..M],C[1..N]:egész
elemű tömb
Program
Ciklus I:=1-től
N-ig
A[I]:=Véletlenegész(-20,30) // -20 és 30 közötti vél. egész szám
Ki: A[I]
Ciklus vége
Ciklus I:=1-től M-ig
B[I]:=Véletlenegész(-10,40) // -10 és 40 közötti vél. egész szám
Ki: B[I]
Ciklus vége
L:=0
Ciklus I:=1-től
N-ig
J:=1
Ciklus amíg J<=M és A[I]<>B[J]
J:=J+1
Ciklus vége
Ha
J<=M akkor
L:=L+1
C[L]:=A[I]
Elágazás vége
Ciklus vége
Ciklus I:=1-től L-ig
KI: C[I]
Ciklus vége
Program vége.
8. feladat
(vissza a
menühöz)
Kódolja az alábbi
algoritmust az alábbi programozási nyelvek egyikén:Pascal, Java, BASIC,
C, C++ vagy C# !
A
feladatban szereplő KI(…) eljárás paramétereit a standard kimenetre
írja! A BE(…) eljárás a standard bemenetről olvas a paraméterben
megadott változóba, ha van ilyen, kivéve, ha az első paraméter egy
inputfájl. Utóbbi esetben az olvasást a fájlból kíséreli meg.
Amennyiben a BE ( ) eljárásnak nincs paramétere, akkor az
„>>ENTER<<” lenyomására vár. A Megnyit()
eljárás a fájl
változóhoz rendeli, és megnyitja olvasásra az állományt. A konstans
szövegeket idézőjelek között adtuk meg. A „:=” az értékadó, az „=”
pedig az ekvivalencia vizsgáló operátort jelöli.
A
maradék(x,y) függvény az x y-nal való maradékos osztásánál képződő
maradékot adja vissza.
Az eljárás fejlécében található VAR
kulcsszó cím szerinti paraméterátadást jelent.
Adatok:
Tnev:szöveg a szöveges állomány neve
T:inputfájl szöveges
állomány
Tudjuk, hogy létezik Tnev, T
Elvárjuk,
hogy a program sorszámozva kiírja a T állomány sorait 20 soronként
lapozhatóan.
Algoritmus lista
i:=0
be(Tnev)
Megnyit(T,Tnev)
beolv(T,
sor, sikerült)
ciklus amíg sikerült
i:=i+1
Ha maradék(i , 20)=0
Akkor BE()
KI( i,’. ’, sor)
beolv (T, sor, sikerült)
ciklus vége
Algoritmus vége
Eljárás
beolv (VAR T: inputfájl, VAR S: szöveg, VAR Sikerült:Logikai)
Sikerült:=Nem fájl_vége(T)
Ha
Sikerült akkor BE(T,S)
Eljárás vége
9.
feladat (vissza
a menühöz)
Kódolja az alábbi
algoritmust a tanult programozási nyelvek egyikén!
A
feladatban szereplő KI( ) eljárás paramétereit a standard kimenetre
írja! A KI(SOREMELÉS) eljáráshívás egy következő sor elejére állítja a
kurzort. A KI():n hívás hatására a KI eljárás paraméterét egy n
hosszúságú területre írja ki, amennyiben a kifejezés n-nél rövidebb, a
fennmaradó helyeket szóközzel tölti fel. A konstans szövegeket
idézőjelek között adtuk meg. A := az értékadó, az = pedig az
ekvivalencia vizsgáló operátort jelöli.
Változók:
I,
J egész típusú változók
Program SZORZOTABLA
KI(„SZORZÓTÁBLA:”)
KI(SOREMELÉS)
Ciklus
I := 1-től 10-ig
Ciklus J:=
1-től 10-ig
KI(I*J):4
Ha J<>10
Akkor
KI(„,”)
Elágazás vége
Ciklus vége
KI(SOREMELÉS)
Ciklus
vége
Program vége.
10. feladat (vissza a menühöz)
Az
alábbi algoritmus olyan 20 elemű, véletlen egész számokból álló
sorozatot állít elő, amelyben pontosan 5 db prím van. Kódolja
az
alábbi algoritmust a tanult programozási nyelvek egyikén!
Konstans
N=20
Változó A[1..N]:egész elemű tömb
Függvény
Prim(Szam:egész):logikai
Változó I:egész
L:logikai
L:=Hamis
I:=1
Ciklus
amíg (I*I<Szam) és Nem(L)
I:=I+1
L:=Szam Mod I=0
Ciklus
vége
Prim:=Nem(L)
Függvény vége
Eljárás Generalas:
Változó
I,Db:egész
Ciklus
Db:=0
Ciklus I:=1-től N-ig
A[I]:=Véletlenegész(2,100)
Ha Prim(A[I])
akkor
Db:=Db+1
Elágazás vége
Ciklus vége
amíg (Db<>5)
Eljárás vége
Eljárás Kiiras:
Változó
I:egész
Ciklus I:=1-től N-ig
Ha Prim(A[I])
Akkor Ki: A[I],' (prim)'
Különben Ki: A[I],' (nem prim)'
Elágazás
vége
Ciklus vége
Eljárás vége
Program Szamok
Generalas
Kiiras
Program
vége.
11.
feladat (vissza
a menühöz)
Kódolja az alábbi
algoritmust!Beadandó a feladatot megoldó program forráskódja!
A
feladat megoldásaként teljes, fordítható és futtatható kódot kérünk,
mely az adatokat a képernyőre (standard output) írja ki. Vizuális
fejlesztőeszköz használata esetén a megoldást konzol (szöveges ablakban
futó) alkalmazásként kérjük elkészíteni!
Az algoritmusban
használt
Véletlenegész függvény a megadott határok közötti véletlen egész számot
generál, a határokat is beleértve. Ha ilyen függvény nem létezik a
használt nyelvben,
akkor alkalmazzon olyan képletet, amely a
megadott intervallumba eső véletlen számot generál!
Konstans
N=30
Változó A[0..N-1]:egész elemű tömb
Eljárás
Generalas:
Változó I:egész
Ciklus I:=0-től N-1-ig
A[I]:=Véletlenegész(-50,50)
Ciklus
vége
Eljárás vége
Eljárás Kiir:
Változó
I:egész
Ciklus
I:=0-től N-1-ig
Ki:
A[I]
Ciklus vége
Eljárás vége
Eljárás
BeillesztRendez:
Változó I,J,X:egész
Ciklus I:=1-től N-1-ig
J:=I-1
X:=A[I]
Ciklus amíg (J > -1) és (X
< A[J])
A[J+1]:=A[J]
J:=J-1
Ciklus
vége
A[J+1]:=X
Ciklus
vége
Eljárás vége
Program Rendezo:
Generalas
Kiir
BeillesztRendez
Kiir
Program
vége.
12.
feladat (vissza
a menühöz)
Kódolja az alábbi algoritmust a
választott programozási nyelven! Beadandó a feladatot megoldó program
forráskódja!
A
feladat megoldásaként teljes, fordítható és futtatható kódot kérünk,
amely az adatokat a képernyőre (standard output) írja ki. Vizuális
fejlesztőeszköz használata esetén a megoldást konzol (szöveges ablakban
futó) alkalmazásként kérjük elkészíteni.
Konstans
Max=30
Változó
A[0..Max-1]:egész elemű tömb
N:egész
Eljárás Beolvas:
Változó Kovetkezo,I,J:egész
I:=0;
Be: Kovetkezo
Ciklus amíg (Kovetkezo > 0) és (i < max)
j = i – 1
Ciklus amíg (j > -1) és
(Kovetkezo < a[j])
a[j + 1]
= a[j]
j:=j-1
Ciklus vége
a[j + 1] = kovetkezo;
i:=i+1
Ha (i<Max)
Be:Kovetkezo
Elágazás vége
Ciklus vége
N:=i;
Eljárás
vége
Eljárás Kiir:
Változó I:egész
Ciklus I:=0-től
N-1-ig
Ki: A[I]
Ha (A[I] mod 2=0)
Akkor
Ki:” (páros)”
Különben
Ki:” (páratlan)”
Elágazás vége
Ciklus vége
Eljárás vége
Program:
Beolvas
Kiir
Program
vége.
13.
feladat (vissza
a menühöz)
Kódolja az alábbi algoritmust a választott programozási nyelven! Beadandó a feladatot megoldó program
forráskódja!
Az
algoritmus a bekért számokat orgonasípszerűen rendezi, amely után a
legnagyobb értékek középre kerülnek, a szélek felé haladva pedig egyre
kisebbek következnek.
Konstans N=10
Változó A[0..N-1]:egész elemű tömb
Eljárás TombBeker:
Változó I:egész
Ciklus I:=0-től N-1-ig
Be: A[I]
Ciklus vége
Eljárás vége
Eljárás OrgonaRendez:
Változó I,J,K,L,Ind,S:egész
J:=0
K:=N-1
Ciklus I:=0-től N-1-ig
Ind:=J
Ciklus L:=J+1-től K-ig
Ha (A[L]<A[Ind])
Akkor
Ind:=L
Elágazás vége
Ciklus vége
S:=A[Ind]
Ha (I mod 2=0)
Akkor
A[Ind]:=A[J]
A[J]:=S
J:=J+1;
Különben
A[Ind]:=A[K]
A[K]:=S
K:=K-1
Elágazás vége
Ciklus vége
Eljárás vége
Eljárás TombKiir:
Változó I:egész
Ciklus I:=0-től N-1-ig
Ki: A[I]
Ciklus vége
Eljárás vége
Program:
TombBeker
OrgonaRendez
TombKiir
Program vége.