Kódolási feladatok!

A következő algoritmusokat  a tanult programnyelvre kellene kódolni és működő programot létrehozni!
1. feladat
2. feladat
3. feladat
4. feladat
5. feladat
6. feladat
7. feladat
8. feladat
9. feladat
10. feladat
11. feladat
12. feladat
13. feladat




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.