I. Egydimenziós tömb elemeinek rendezése

Hasonló dokumentumok
1. numere.txt n (1 n 10000) n növekvő kilenc a) Pascal/C++ Például: NUMERE.TXT

<... < s n. Írjuk le a megoldási módszert, és adjunk meg egy megjegyzésekkel ellátott Pascal-programot. A bemeneti adatokat helyesnek tekintjük.

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Rendezések. A föltöltés nemcsak az r-re vonatkozik, hanem az s-re is. Ez használható föl a további rendezések

Megoldott feladatok. Informatika

INFORMATIKA javítókulcs 2016

INFORMATIKA tétel 2019

Közismereti informatika 2.zh T-M szakirány

Felvételi tematika INFORMATIKA

I. ALAPALGORITMUSOK. I. Pszeudokódban beolvas n prim igaz minden i 2,gyök(n) végezd el ha n % i = 0 akkor prim hamis

Tartalomjegyzék Algoritmusok - pszeudókód

Programozás alapjai. 5. előadás

Algoritmusok - pszeudókód... 1

Egyszerű programok készítése Kifejezések Bitszintű műveletek Relációs műveletek... 58

6. A Pascal nyelv utasításai

Bakalárska práca Bakalár munka

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is

Neumann János Tehetséggondozó Program Gráfalgoritmusok II.

INFORMATIKA tétel 2017

PASzSz. Dr. Kotsis Domokos

14. Mediánok és rendezett minták

7. Strukturált típusok

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás I gyakorlat. 5. Struktúrák

INFORMATIKAI ALAPISMERETEK

BME MOGI Gépészeti informatika 5.

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Adatbázis rendszerek Gy: Algoritmusok C-ben

/* Az iter függvény meghívása és a visszatérő érték átadása a gyok változóba */ gyok = iter( n, a, e ) ;

INFORMATIKA tétel 2018

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

Programozás I. zárthelyi dolgozat

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

2.6. Utasítások használata

Szerző Lővei Péter LOPSAAI.ELTE IP-08PAEG/25 Daiki Tennó

Algoritmizálás + kódolás C++ nyelven és Pascalban

2018, Funkcionális programozás

Delphi programozás III.

PROGRAMOZÁSI TÉTELEK

1. Írjunk programot mely beolvas két számot és ellenőrzi hogy mindkét szám zérus-e:

Adatbázis és szoftverfejlesztés elmélet. Programozási tételek

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

Gráfelméleti feladatok. c f

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

BABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli. A versenyzők figyelmébe:

Rekurzió(k) - iteráció(k) Gyakorlati összefoglaló Tartalom... 2 Alap rekurzív példák... 3 Tételek rekurzív és iteratív megoldásai...

Programozás C nyelven (9. ELŐADÁS) Sapientia EMTE

AAO 3. Csink László 2007

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

Eljárások, függvények

A feladat. A főprogram

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

PROGRAMOZÁS ALAPFELADATOK

Informatika feladatmegoldó verseny. Kiss Elemér Szakkollégium február 19. Dr. Kovács Lehel István

RENDEZÉSEK, TOVÁBBI PROGRAMOZÁSI TÉTELEK

Algoritmuselmélet 2. előadás

Országzászlók (2015. május 27., Sz14)

Programozási segédlet

VB C++ C# JScript J# Common Language Specification. ADO.NET and XML. Base Class Library. Common Language Runtime. Operating System

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

Érdekes informatika feladatok

1 A pascal program szerkezete

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Példák tematikus csoportosításban

Programozás alapjai. 8. előadás

Számjegyes vagy radix rendezés

Dinamikus mátrixok. Dinamikus többdimenziós tömbök

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

1. feladat Készítse el szövegszerkesztővel, majd mentse osztály.txt néven a következő tartalmú szöveges fájlt:

2. Milyen értéket határoz meg az alábbi algoritmus, ha A egy vektor?. (2 pont)

Rekurzió. Tartalomjegyzék. Készítette: Gál Tamás

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék

84)Adott a következőképpen értelmezett f alprogram. Milyen értéket térit vissza f(1)? És f(100)? function f(x:integer):integer; begin

A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny második forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

Demográfiai modellek (folytatás)

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

Algoritmusok bonyolultsága

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

Alkalmazott modul: Programozás. Programozási tételek, rendezések Giachetta Roberto

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

BASH script programozás II. Vezérlési szerkezetek

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

A félév során előkerülő témakörök

angolul: greedy algorithms, románul: algoritmi greedy

Programozás C nyelven 5. ELŐADÁS. Sapientia EMTE

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

Struktúra nélküli adatszerkezetek

0.1. Mi az a standard be- és kimenet? A két mintafeladat leírása

1. feladat: A decimális kódokat az ASCII kódtábla alapján kódold vissza karakterekké és megkapod a megoldást! Kitől van az idézet?

1. Alapok. Programozás II

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.

Átírás:

I. Egydimenziós tömb elemeinek rendezése 1. Adott egy egész számokból álló sorozat. Rendezzük növekvő sorrendbe az elemeit! Buborékrendezés. A tömb elejétől a vége felé haladva összehasonlítjuk a szomszédos elemeket. Amennyiben nem a kért sorrendben helyezkednek el, felcseréljük őket. A bejárás végén a legnagyobb elem a helyére, az- az a tömb végére kerül. A bejárást mindaddig ismételjük, míg egy végigfutás alkalmával egyetlen cserére sem kerül sor. Minden bejáráskor egy lépéssel hamarabb leállunk, mivel a rendezendő elemek száma bejárásonként eggyel kevesebb lesz. # include<iostream> int main() int a[20],x; unsigned short i, n, v; bool csere; cout<<"n="; cin>>n; cout<<i<<". elem:"; cin>>a[i]; v=n- 1; csere=true; while (csere) csere=false; for (i=0; i<v; i++) if (a[i]>a[i+1]) x=a[i]; a[i]=a[i+1]; a[i+1]=x; csere=true; v- - ; for (i=0; i<n; i++) cout<<a[i]<<" "; var a: array[1..20] of integer; x:integer; i,n,v:byte; csere:boolean; write(i,'. elem'); readln(a[i]); v:=n- 1;csere:=true; while csere do csere:=false; for i:=1 to v do if a[i]>a[i+1] then x:=a[i]; a[i]:=a[i+1]; a[i+1]:=x; csere:=true; dec(v); write(a[i],' ');

2. Olvassunk be két egész számokból álló számsorozatot! Hozzunk létre a két sorozat elemeiből egy növekvő sorrendbe rendezett számsort! Összefésülés. Összehasonlítjuk az első tömb első elemét a második tömb első elemével. A kisebb értékű elemet átmásoljuk az új tömbbe. Továbblépünk abban a tömbben, amelyből átmásoltuk az elemet, majd ezt az elemet hasonlítjuk, a másik tömb változatlan elemével. Mindezt addig folytatjuk, amíg az egyik tömb elemei el nem fogynak. Ezután a másik tömb elemeit sorban átmásoljuk a harmadik tömbbe. # include<iostream> void beolvas(int a[], unsigned short int& n) unsigned short int i; cout<<"elemek szama="; cin>>n; cout<<i<<". elem:"; cin>>a[i]; int main() int a[20], b[20], c[20]; unsigned short int n, m; beolvas(a, n); beolvas(b, m); unsigned short int i=0, j=0, l=0, p; while (i<n && j<m) if (a[i]<b[j]) c[l]=a[i]; i++; c[l]=b[j]; j++; type tomb=array[1..20] of integer; var a,b,c: tomb; n,m,i,j,l,p:byte; procedure beolvas(var a:tomb; var n:byte); var i:byte; write('elemek szama=');readln(n); write(i,'. elem:');readln(a[i]); beolvas(a,n); beolvas(b,m); i:=1; j:=1; l:=0; while (i<=n) and (j<=m) do if a[i]<b[j] then c[l]:=a[i]; inc(i); end c[l]:=b[j]; inc(j);

for (p=j; p<m; p++) c[l]=b[p]; for (p=i; p<n; p++) c[l]=a[p]; for (i=0; i<l; i++) cout<<c[i]<<" "; for p:=j to m do c[l]:=b[p]; for p:=i to n do c[l]:=a[p]; for i:=1 to l do write(c[i],' '); II. Kétdimenziós tömbök megoldott feladatok 1. Írjatok Pascal/C++ programot, amely beolvas a billentyűzetről egy n (2 n 20) természetes számot, majd létrehoz egy n sorból és n oszlopból álló kétdimenziós tömböt, melynek elemeit a következőképpen adjuk meg: a főátlón lévő elemek értéke 0 az első oszlopban lévő elemek értéke, kivéve a főátlón találhatót, n lesz a második oszlopban lévő elemek értéke, kivéve a főátlón találhatót, n- 1 lesz... az utolsó oszlopban lévő elemek értéke, kivéve a főátlón találhatót, 1 lesz A program írja ki a kétdimenziós tömb elemeit a képernyőre, a tömb minden sorát a képernyő külön sorába, egy sor elemeit szóközzel elválasztva egymástól. Például: ha n=4 a képernyőn megjelenő kétdimenziós tömb: 0 3 2 1 4 0 2 1 4 3 0 1 4 3 2 0 Azoknál a feladatoknál, melyeknél a kétdimenziós tömböt nekünk kell feltöltenünk a sorok, illetve az oszlopok ismeretében, és a feladat szövegéből kiderül, hogy az elemek értéke függ az oszlop, vagy sorindextől, ajánlatos felírni egy példát és meghatározni egy összefüggést az elem értéke, a sor és oszlopindex között. Pl. (C++) 0 1 2 3 0 0 3 2 1 1 4 0 2 1 2 4 3 0 1 3 4 3 2 0 a[0][0]=0;a[1][0]=n;a[2][0]=n;..,a[n- 1][0]=n a[0][1]=n- 1;a[1][1]=0;a[2][1]=n- 1;..,a[n- 1][1]=n- 1. Pl. (Pascal) 1 2 3 4 1 0 3 2 1 2 4 0 2 1 3 4 3 0 1 4 4 3 2 0 a[1,1]=0;a[2,1]=n;a[3,1]=n;..,a[n,1]=n a[1,2]=n- 1;a[2,2]=0;a[3,2]=n- 1;..,a[n,2]=n- 1.

a[0][n- 1]=1;a[1][n- 1]=1;a[2][n- 1]=1;..,a[n- 1][n- 1]=0 a[i][j]=0; ha i=j; a[i][j]=n- j, ha i!=j; i=0,n- 1; j=0,n- 1 a[1,n]=1;a[2,n]=1;a[3,n]=1;..,a[n,n]=0 a[i,j]=0; ha i=j; a[i,j]=n- j+1, ha i<>j; i=1,n; j=1,n # include <iostream> int main () unsigned short int a[20][20],i,j,n; cout<<"n=";cin>>n; for (j=0;j<n;j++) if (i==j) a[i][j]=0; a[i][j]=n- j; for (j=0;j<n;j++) cout<<a[i][j]<<" "; cout<<endl; var a: array[1..20,1..20] of integer; i,j,n:byte; for j:=1 to n do if i=j then a[i,j]:=0 a[i,j]:=n- j+1; for j:=1 to n do write(a[i,j],' '); writeln; 2. Adott egy n soros és m oszlopos (1 n 50, 1 m 50), legfennebb kétjegyű egész számokat tartalmazó kétdimenziós tömb. Írjál Pascal/C++ programot, amely beolvassa a billentyűzetről az n és m értékeket, majd a tömb elemeit, és megfordítja minden oszlopban az elemek sorrendjét, mint a példában. A program írja a képernyőre n sorba az így kapott kétdimenziós tömb elemeit, az egy soron levő elemeket egy- egy szóközzel elválasztva. Példa: ha az n=4, m=3 értékeket és az alábbi kétdimenziós tömböt olvassuk be: 1 7 3 4 5 6 7 8 9 3 4 5 a képernyőre kiírt kétdimenziós tömböt: 3 4 5 7 8 9 4 5 6 1 7 3 Felcseréljük az első sor elemeit az utolsó sor elemeivel, a második sor elemeit az utolsó előtti sor elemeivel. Ezt addig ismételjük, amíg elérünk a középső sorig. # include <iostream> var a: array[1..50,1..50] of integer; i,j,n,m,x:byte;

int main () unsigned short int a[50][50], i, j, n, x; cout<<"n=";cin>>n; cout<<"m=";cin>>m; for (i=0; i<n; i++) cout<<"a["<<i<<","<<j<<"]="; cin>>a[i][j]; for (i=0; i<n/2; i++) x=a[i][j]; a[i][j]=a[n- i- 1][j]; a[n- i- 1][j]=x; cout<<a[i][j]<<" "; cout<<endl; write('m=');readln(m); for j:=1 to m do write('a[',i,',',j,']='); readln(a[i,j]); for i:=1 to n div 2 do for j:=1 to m do x:=a[i,j]; a[i,j]:=a[n- i+1,j]; a[n- i+1,j]:=x; for j:=1 to m do write(a[i,j],' '); writeln;