|
|
1. sor: |
1. sor: |
− | = Elmélet = | + | = Gyakorlás = |
| | | |
− | == Ismétlés ==
| + | '''1.''' Minden PRINT-et tartalmazó sornál határozzuk meg a kimenet értékét! |
| | | |
− | * Dinamikus memória kezelés::
| |
| <c> | | <c> |
− | #include<stdlib.h> | + | #include <stdio.h> |
− | ...
| + | #define PRINT(int) printf("%d\n",int) |
− | int i; // ciklusváltozónak | + | |
− | int m; // ebbe olvassuk be a tömb méretét
| + | int main(void) { |
− | scanf("%d",&m);
| + | int i, j, k=5; |
− | int *vec = (int *)malloc(m * sizeof(int)); // itt foglaljuk le a memóriát a tömbnek | + | i = 17 - 17/k*k; PRINT(i); |
− | ...
| + | k += j = i *= 3; |
− | for(i=0; i<M; i++){
| + | k -= i == j; PRINT(k); |
− | vec[i]=i*i; // majd feltöltjük a tömböt az indexek négyzetével
| + | i=2; j=3; k=5; |
| + | PRINT( i & j | k ); |
| + | PRINT( !i || j && k); |
| + | i=4; j = 3; i <<= j; PRINT( i ); |
| + | k = i<32 ? ++i : --i; PRINT( k ); |
| + | return 0; |
| } | | } |
− | ...
| |
| </c> | | </c> |
| | | |
− | == File I/O, argumentumok ==
| + | '''2.''' Az alábbi kódrészletet töltsük ki úgy, hogy a ’b’ tömbbe az ’a’ mátrix transzponáltja kerüljön! |
− | * Előadásjegyzet: [http://wiki.math.bme.hu/view/Informatika2-2013/Eloadas#File_I.2FO File I/O ]
| + | |
− | * fopen-el nyitunk meg file-t, fclose-al zárjuk be, FILE* segítségével dolgozunk rajta.
| + | |
− | * Ugyanúgy írhatunk file-ba mintha printf-el tennénk csak fprintf-el kell és meg kell adni a file pointerét.
| + | |
− | * Ugyanúgy olvashatunk file-ból mintha a terminálból, a felhasználótól olvasnánk be, csak fscanf-el és meg kell adni a file pointerét.
| + | |
− | * Karakter tömbökbe olvashatunk a %s-el, ekkor az fscanf az elsõ whitespace karakterig olvas (space, újsor, tab...)
| + | |
− | * Egy további példa:
| + | |
| <c> | | <c> |
− | #include<stdio.h>
| + | int i,j,a[3][2]={{1,2},{2,0},{3,3}}, b[2][3]; |
| + | for( i=0; i<3; i++ ) { |
| | | |
− | int main(void){
| |
− | int i;
| |
− | int z;
| |
− | char s[100];
| |
− | FILE* fp; // Letrehozzuk a file pointerunket
| |
− | fp = fopen("test.txt", "w"); // Megnyitjuk a test.txt-t irasra
| |
| | | |
− | for(i = 0; i < 10; i++){
| |
− | fprintf(fp, "%d\n", i * i); // Negyzetszamokat irunk a file-ba
| |
− | }
| |
− | fprintf(fp, "Most irunk a file-ba.\n");
| |
− | // Csak ugy irtunk valami szoveget a file-ba
| |
− | fclose(fp); // Bezarjuk a file-t
| |
| | | |
− | fp = fopen("test.txt", "r"); // Ujra megnyitjuk, de olvasasra
| |
− |
| |
− | for(i = 0; i < 10; i++){
| |
− | fscanf(fp, "%d", &z); // Kiolvasunk a file-bol egy int-et
| |
− | printf("%d, ", z); // Kiirjuk a kepernyore amit kiolvastunk
| |
− | }
| |
− | fscanf(fp, "%s", s); // Kiolvasunk egy szot a file-bol
| |
− | printf("%s", s); // Majd ezt ki is irjuk
| |
− | fclose(fp); // Bezarjuk a file-t
| |
− |
| |
− | return 0;
| |
| } | | } |
| </c> | | </c> |
− | * Argumentumokról: [http://wiki.math.bme.hu/view/Informatika2-2013/Eloadas#Param.C3.A9terek.2C_argumentumok előadásjegyzet]
| |
− |
| |
− | = Feladatok =
| |
− | == Mátrixok, 2 dimenziós tömbök ==
| |
− | * Írj függvényt, mely dinamikusan lefoglal egy mátrixnak megfelelő helyet a memóriában.
| |
− | * Írj függvényt, mely kiírja egy 2 dimenziós, dinamikusan lefoglalt mátrix elemeit a képernyőre.
| |
− | * Dinamikus memóriafoglalással számold ki egy mátrix transzponáltját és négyzetét is.
| |
− | * Írj függvényt, mely összead / kivon egymásból / összeszoroz 2 mátrixot.
| |
− | * Megoldásaidat példákkal szemléltesd.
| |
− |
| |
− | == File I/O==
| |
− | === Mátrixok ===
| |
− | * Írj függvényt, mely file-ból beolvas a fenti függvényekkel használható mátrixot.
| |
− | * Írj függvényt, mely file-ba ír egy megadott mártixot, használd az előző feladat kódjait.
| |
− | === Gyakoriság, hisztogram ===
| |
− | * Írj függvényt, mely megszámolja egy egész számokból álló dinamikus tömb elemeinek a gyakoriságát.
| |
− | * A függvény paraméterként kapja meg a vizsgált tömböt. Feltételezzük, hogy a tömbben N=20-nál kisebb, vagy egyenlő értékek szerepelnek (miért van erre szükség?)
| |
− | * Oldjuk meg a feladatot tetszőleges N-re.
| |
− | * Írj függvényt, mely az adatokat file-ból olvassa be.
| |