INFORMATIKA tétel 2018

Hasonló dokumentumok
INFORMATIKA tétel 2019

INFORMATIKA tétel 2017

INFORMATIKA javítókulcs 2016

Felvételi tematika INFORMATIKA

1. Alapok. Programozás II

Programozás II. 2. Dr. Iványi Péter

1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket.

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

Bevezetés a programozásba I.

Programozás alapjai 9.Gy: Struktúra 2.

Bevezetés a programozásba I.

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

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

BME MOGI Gépészeti informatika 5.

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

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

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

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE

10. gyakorlat Tömb, mint függvény argumentum

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

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

Maximum kiválasztás tömbben

Programozás C és C++ -ban

Programozás C++ -ban 2007/1

Pénzügyi algoritmusok

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

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

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

Programozás 5. Dr. Iványi Péter

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

Körkörös listák. fej. utolsó. utolsó. fej

7/8. gyakorlat Karaktertömbök és sztringkezelés

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

Bevezetés Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1

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

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

Bevezetés a C++ programozásba

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

Programozás alapjai 5. gyakorlat Vezérlési szerkezetek egymásba ágyazása

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)

Megoldott programozási feladatok standard C-ben

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

/* 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 ) ;

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

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

Bevezetés a programozásba I.

Megoldott programozási feladatok standard C-ben

Programozás alapjai 8.Gy: Program struktúra

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

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

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

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.

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.

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés

Példák tematikus csoportosításban

Programozás 6. Dr. Iványi Péter

Programozás C++ -ban

Programozás I gyakorlat. 10. Stringek, mutatók

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 31. Széchenyi István Egyetem, Gy r

Programozas 1. Strukturak, mutatok

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Tartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa!

Programozás II. 4. Dr. Iványi Péter

BABEŞ-BOLYAI TUDOMÁNYEGYETEM MATEMATIKA-INFORMATIKA KAR Felvételi verseny - minta Informatika írásbeli

Programozási alapismeretek 2009/2010

Struktúrák (struct) A struktúra szerkezetét meghatározó deklaráció általános formája:

Programozás C++ -ban

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

10. gyakorlat. Pointerek Tárolási osztályok

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

C++ programok fordítása

Függvények int, long 1. Adott a mellékelt f alprogram.

int tokeletes(int szam) { int i,oszto=0; for(i=1; i<szam; i++) { if(szam %i == 0) { oszto+=i; }

Programozás I. 5. Előadás: Függvények

Bevezetés a programozásba. 6. Előadás: C++ bevezető

Minimum feladat: Teljes feladat: Minimum feladat: Teljes feladat: Minimum feladat:

Programozás C és C++ -ban

A feladat lényege egy felhasználói típusnak a zsák típusnak a megvalósítása.

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

main int main(int argc, char* argv[]) { return 0; } main return 0; (int argc, char* argv[]) main int int int main main main

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE cím: Név: Kurzuskód:

2018, Funkcionális programozás

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)

3. Osztályok II. Programozás II

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

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

117. AA Megoldó Alfréd AA 117.

Pénzügyi algoritmusok

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

5. Gyakorlat. struct diak {

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

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

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás

Bevezetés a programozásba I 8. gyakorlat. C++: szövegfolyamok, intelligens tömbök

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

A rész (30 pont) A.1. Vajon mit csinál? (5 pont) A generál(n) algoritmus egy n természetes számot dolgoz fel (0 < n < 100).

B I T M A N B I v: T M A N

Átírás:

INFORMATIKA tétel 2018 ELIGAZÍTÁS: 1 pont hivatalból; Az 1-4 feladatokban (a pszeudokód programrészletekben): (1) a kiír \n utasítás újsorba ugratja a képernyőn a kurzort; (2) a minden i = n,1,-1 végezd programsor jelentése, hogy minden i = n,n-1,n-2,,1 értékre Az 5-9 feladatok esetében használj alprogramot, valahányszor célszerűnek találod. Törekedj hatékony megoldásra az algoritmusok időigénye tekintetében. Lásd el beszédes kommentekkel programjaidat. A bemeneti adatok helyesnek tekinthetők. FELADATOK: 1. Legyen az alábbi pszeudokód programrészlet: x[1] = 1 minden i = 2,n végezd x[i] = x[i-1] + 2 * i - 1 kiír x[i],,,i*i, \n Mit ír ki a fenti programrészlet, ha n=7? [1 pont] 4,4 9,9 16,16 25,25 36,36 49,49 2. Legyen az alábbi pszeudokód programrészlet: minden i = 1,n végezd minden j = 1,i végezd minden k = 1,i végezd x[i][j][k] = i kiír x[n][n][n] Mit ír ki a fenti programrészlet, ha n=4? [1 pont] 4 3. Legyen az alábbi pszeudokód programrészlet: minden i = 1,n végezd minden j = 1,i végezd minden k = 1,i végezd ha j>k akkor kiír j különben kiír k

kiír \n Mit ír ki a fenti programrészlet, ha n=4? [1 pont] 1 12 22 123 223 333 1234 2234 3334 4444 4. Legyen az alábbi pszeudokód programrészlet: x[0] = 1 y = 1 minden i = 1,n végezd y = y * 11 x[i] = 1 minden j = i-1,1,-1 végezd x[j] = x[j] + x[j-1] kiír y,, minden j = 0,i végezd kiír x[j] kiír \n Mit ír ki a fenti programrészlet, ha n=4? [1 pont] 11,11 121,121 1331,1331 14641,14641 5. Legyen egy n érték (0 n 10), valamint egy n+1 elemű valós számsorozat, amelynek elemei egy n-ed fokú polinom együtthatóit jelentik. Írj Pascal vagy C/C++ programot, amely billentyűzetről beolvassa az n értéket, az n+1 elemű számsorozatot, majd kiírja a képernyőre, hogy hány tagú a polinom (hány együtthatója nem nulla). [1 pont] #include <iostream> int main() int n; std::cout << "Enter n: "; std::cin >> n; std::cout << "Enter coefficients: "; int count = 0; int coeff = 0; for(int i = 0; i < n+1; i++)

std::cin >> coeff; if (coeff!= 0) count++; std::cout << "Non-zero coefficient count: " << count << std::endl; 6. Legyen egy n érték (0 n 10), valamint egy n+1 elemű valós számsorozat, amelynek elemei egy n-ed fokú polinom együtthatóit jelentik. Az együtthatók a tagok fokszámának növekvő sorrendjében vannak megadva. Írj Pascal vagy C/C++ függvényt, amely paraméterként megkapja az n értéket, az n+1 elemű számsorozatot, illetve egy további x valós értéket. A függvény térítse vissza a polinom helyettesítési értékét az x helyen. [1 pont] #include <stdio.h> #include <stdlib.h> float szamol(int n, float t[], float x) float p = 1,e = 0; int i; for ( i = 0 ; i <= n ; i++ ) if ( t[i]!= 0 ) e += t[i]*p; p *= x; return e; int main() int n,i; float t[11],x; printf("n="); scanf("%i", &n); printf("x="); scanf("%f", &x); for( i = 0 ; i <= n ; i++ ) printf("f[%i]=", i); scanf("%f", &t[i]); printf("%0.2f", szamol(n,t,x)); 7. Írj Pascal vagy C/C++ programot, amely a matrix.txt állományból beolvassa az n értéket (3 n 51), valamint egy nxn méretű mátrixot, majd kiír egy üzenetet aszerint, hogy a mátrix bűvös négyzet-e. (Egy nxn méretű bűvös négyzetet úgy definiálunk, mint amelynek (1) elemei a 1,2,3,,n 2 számsorozat elemei, (2) elemei páronként különböznek, (3) minden sora, oszlopa, valamint a fő- és mellék-átlója mentén ugyanannyi az összeg) [1 pont] #include <cstdlib> #include <iostream> #include <fstream> #define N 51 using namespace std; int n; int matrix [ N ][ N ]; // elofordulasok ellenorzesere

bool exist[ N*N + 1]false; void readmatrix(const char * filename); bool ismagicsquare(); int main() readmatrix("matrix.txt"); if (ismagicsquare()) cout << "Magic square" << endl; else cout << "Not magic square" << endl; void readmatrix(const char * filename) ifstream ifs(filename); if (!ifs) cout << "File megnyitasi hiba" << endl; exit(1); ifs >> n; if (n < 3 n > 51) cout << "n erteke nem megfelelo " << n << endl; exit(1); for (int i = 0; i < n; ++i) for (int j = 0; j < n; ++j) ifs >> matrix[ i ][ j ]; bool ismagicsquare () long sumrow[ n ]0; long sumcol[ n ]0; long summaindiag = 0; long sumseconddiag = 0; long total = (n * (n * n + 1)) / 2; for (int i = 0; i < n; ++i) for (int j = 0; j < n; ++j) // ha nem megfelelo szam if (matrix[ i ][ j ] < 1 matrix[ i ][ j ] > n * n) // ha mar elofordult if (exist[ matrix[ i ][ j ] ] == true) exist[ matrix[ i ][ j ] ] = true; sumrow[ i ] += matrix[ i ][ j ]; sumcol[ j ] += matrix[ i ][ j ]; if (i == j) summaindiag += matrix[ i ][ j ]; if ( i + j == n - 1) sumseconddiag += matrix[ i ][ j ]; for( int i=0; i<n; ++i) if( sumrow[ i ]!= total )

if( sumcol[ i ]!= total ) if( summaindiag!= total sumseconddiag!= total ) return true; 8. Ahogy az előző feladatból is megtudhattuk, egy bűvös négyzet egy olyan négyzetes mátrix, amelynek minden sora, oszlopa és mindkét átlója mentén ugyanannyi az összeg. Írj Pascal vagy C/C++ programot, amely beolvas a billentyűzetről egy p értéket (1 p 25), majd generál (és kiírja állományba) egy (2p+1)x(2p+1) méretű bűvös négyzetet a Loubère-algoritmus szerint. E módszer a következőképpen tölti fel a mátrixot az 1,2,3,,(2p+1) 2 számsorozattal: az első sor közepére 1-est teszünk, majd átlósan jobbra-fel irányba haladunk; a mátrixot körkörösnek tekintjük, azaz úgy, mint amelyben a legfelső sort, felfele irányba, a legalsó követ, és a legjobboldaliabb oszlopot, jobbra irányba, a legbaloldaliabb követ; ha az a pozíció, amely átlósan jobbra-fel irányba következne, már foglalt, akkor a kurrens pozíció alatti cellával folytatjuk a kitöltést. (Lásd a példát p=2-re) [1 pont] #include <stdio.h> #include <stdlib.h> 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 int main() int p; printf("p = "); scanf("%d",&p); ///beolvasas int n=2*p+1, limit = n*n; /// inicializalas int x=0, y=n/2, a, b; /// kezdopozicio es ellenorzopontok ///helyfoglalas - statikusan vagy dinamikusan - nullaval feltoltott tomb ///int a[51][51]=0 ///vagy int **t = (int*)calloc(n,sizeof(int*)); for (int i = 0; i < n; ++i) t[i] = (int*)calloc(n,sizeof(int)); /// A lepesszam ismert, a korkorosseget a modulo muvelet biztositja for (int counter = 1; counter <= limit; ++counter) t[x][y] = counter; a = (x - 1 + n) % n; ///hozzaadunk n-et, hogy nehogy negativ szam legyen b = (y + 1) % n; if (t[a][b]) /// ha mar foglalt a jobbra fel hely, akkor lefele lep x = (x + 1) % n; else ///egyebkent jobbra fel x = a; y = b; ///kiirjuk az eredmenyeket if(!freopen("ki.txt","wt",stdout))

printf("bemeneti hiba!"); for (int i = 0; i < n; ++i) for (int j = 0; j < n; ++j) printf("%4d", t[i][j]); printf("\n"); for (int i = 0; i < n; ++i) free(t[i]); free(t); freopen("con","wt",stdout); 9. N személy evezős csónakkal (nem működik távirányítóval) szeretne átkelni egy folyón. Írj Pascal vagy C/C++ programot, amely állományból beolvassa (az adatok szóközzel vannak elválasztva), hogy mekkora tömeget bír el a csónak (1 G 200), a személyek számát (1 n 2000000000), és ezek tömegértékeit (1 g i 200, i=1,n), majd kiír a képernyőre egy IGEN vagy NEM üzenetet aszerint, hogy van, vagy nincs lehetőség az átkelésre. [1 pont] #include <stdio.h> #include <stdlib.h> int main() if(!freopen("be.txt","rt",stdin)) printf("bemeneti hiba!"); int csonak_max, n, min1, min2, seged, x; min1 = min2 = 201; /// inicializalunk a (max(tomeg) + 1)-el scanf("%d%d", &csonak_max, &n); /// Akkor tudnak atkelni a folyon, ha /// csak egy ember van, es az befer a csonakba, /// vagy /// ( van legalabb ket ember, aki egyutt tud csonakazni / min1, min2 /// es /// a legsulyosabb ember is at tud kelni a csonakkal) for (int i=0;i<n;++i) scanf("%d", &x); if (x > csonak_max) printf("nem"); /// Ha tul sulyos az ember, nem tud atmenni /// a csonakkal, akkor nincs megoldas /// manualis beszuro rendezes, a ket legkonnyebb embert nyilvantartom if (x < min2) min2 = x; if (min2 < min1) seged = min1; min1 = min2; min2 = seged; fclose(stdin);

if (n == 1 min1 + min2 <= csonak_max) printf("igen"); /// csak egy ember van, /// vagy a ket legkonnyebb ember at tud menni egyutt else printf("nem"); /// egyebkent nincs megoldas