User Tools

Site Tools


tanszek:oktatas:muszaki_informatika:matrixok_kezelese

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tanszek:oktatas:muszaki_informatika:matrixok_kezelese [2025/02/12 09:55] kneheztanszek:oktatas:muszaki_informatika:matrixok_kezelese [2025/03/13 22:32] (current) – [Ellenőrző kérdések] knehez
Line 243: Line 243:
             for (int i = 0; i < MAX_OSZLOP; i++)             for (int i = 0; i < MAX_OSZLOP; i++)
             {             {
-                sum += (*(*(sor) + i)) * (*(*(i) + oszlop));+                sum += A[sor][i* B[i][oszlop];
             }             }
-            *(*(sor) + oszlop= sum;+            C[sor][oszlop= sum;
         }         }
     }     }
Line 262: Line 262:
 </sxh> </sxh>
  
-**8. feladat:** Írja át az előző példában a sum += (*(*A + sor .... -t az egyszerűbb indexes A[i][j]- alakra! +**8. feladat: ** Oldjuk meg nem négyzetes mátrixokkal is a mátrix összeadós feladatot, valamint dinamikus memória kezeléssel:
-<sxh c> +
-sum += A[sor][i] * B[i][oszlop]; +
-</sxh> +
- +
-**9. feladat: ** Oldjuk meg nem négyzetes mátrixokkal is a feladatot, valamint dinamikus memória kezeléssel:+
  
 <sxh c> <sxh c>
Line 357: Line 352:
  
 ** 9. feladat **: vizsgáljuk meg a llama chat model c implementációját: https://github.com/karpathy/llama2.c/blob/master/run.c a 217.es sortól kezdődő függvényt. ** 9. feladat **: vizsgáljuk meg a llama chat model c implementációját: https://github.com/karpathy/llama2.c/blob/master/run.c a 217.es sortól kezdődő függvényt.
 +
 +===== Ellenőrző kérdések =====
 +
 +**Mi a helyes deklaráció egy 3×3-as egész mátrix létrehozására C-ben?**
 +
 +  A) int matrix[3][3];
 +  B) int matrix[9];
 +  C) int matrix[3,3];
 +  D) matrix int[3][3];
 +
 +Megoldás: A
 +
 +----
 +**Mi lesz a következő kódrészlet eredménye?**
 +
 +<sxh c>
 +int matrix[2][2] = {{1,2}, {3,4}};
 +printf("%d", matrix[1][0]);
 +</sxh>
 +
 +  A) 1
 +  B) 2
 +  C) 3
 +  D) 4
 +
 +Megoldás: C (az első sor nulladik eleme, ami a 3, hiszen a sorok is 0-tól indulnak.
 +
 +----
 +**Milyen ciklusszerkezet alkalmas egy kétdimenziós mátrix minden elemének bejárására?**
 +
 +  A) Egyetlen for-ciklus
 +  B) Egymásba ágyazott for-ciklusok
 +  C) while ciklus, egyetlen feltétellel
 +  D) Nincs szükség ciklusra
 +
 +Megoldás: B
 +
 +----
 +**Mi lesz a kód eredménye?**
 +<sxh c>
 +int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
 +printf("%d", arr[1][2]);
 +</sxh>
 +
 +  A) 2
 +  B) 4
 +  C) 6
 +  D) 8
 +
 +Megoldás: C  --> 2. sor 3. eleme, ami a 6-os.
 +
 +----
 +**Melyik állítás igaz az alábbiak közül?**
 +
 +  A) A C-ben a mátrix sorainak száma opcionális deklarációkor.
 +  B) Mátrixokat nem lehet paraméterként átadni függvényeknek.
 +  C) Mátrix elemei mindig ugyanazt a típust tárolják.
 +
 +Megoldás: C
 +
 +----
 +**Hogyan adunk át egy mátrixot paraméterként egy függvénynek C-ben helyesen?**
 +
 +  A) void fuggveny(int matrix[][])
 +  B) void fuggveny(int **matrix)
 +  C) void fuggveny(int matrix[][3])
 +  D) void fuggveny(matrix int[3][3])
 +
 +Megoldás: C  --> második dimenzió méretét kötelező megadni
 +
 +----
 +**Hogyan érhető el az alábbi mátrix legutolsó eleme (9) az alábbi deklarációból?**
 +
 +<sxh c>
 +int mat[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
 +</sxh>
 +
 +  A) mat[9]
 +  B) mat[3][3]
 +  C) mat[2][2]
 +  D) mat[3][2]
 +
 +Megoldás: C  --> mivel az indexelés 0-tól indul
 +
 +----
 +**Mit csinál az alábbi kód?**
 +
 +<sxh c>
 +int mat[3][3] = {0};
 +</sxh>
 +
 +  A) Lefoglal egy 3x3-as mátrixot véletlenszerű értékekkel.
 +  B) Lefoglal egy 3x3-as mátrixot nullákkal feltöltve.
 +  C) Csak a mátrix első elemét inicializálja 0-ra.
 +  D) Csak a mátrix első sorát tölti fel nullával.
 +
 +Megoldás: B  -> a modern c-ben ezzel a szintaktikával lehet nullákkal feltölteni egy mátrixot.
 +
 +----
 +** Hogyan lehet helyesen dinamikusan lefoglalni egy 5×5-ös mátrixot? **
 +
 +  A) int mat[5][5] = malloc(25 * sizeof(int));
 +  B) 
 +<sxh c>
 +int **mat = malloc(5 * sizeof(int *));
 +for(int i = 0; i < 5; i++)
 +    mat[i] = malloc(5 * sizeof(int));
 +</sxh>
 +  C) int *mat[5] = malloc(sizeof(int) * 25);
 +  D) int mat[][] = malloc(5*5*sizeof(int));
 +
 +Megoldás: B
 +
 +----
 +**Hogyan kell helyesen felszabadítani a memóriát egy dinamikusan foglalt kétdimenziós mátrix esetén?**
 +
 +  A) free(mat);
 +  B)
 +<sxh c>
 +for (int i = 0; i < sorok; i++)
 +    free(mat[i]);
 +free(mat);
 +</sxh>
 +  C) free(mat[][]);
 +  D) free(mat);
 +  
 +Megoldás: B
 +
 +----
 +
 +
 +
  
tanszek/oktatas/muszaki_informatika/matrixok_kezelese.1739354104.txt.gz · Last modified: 2025/02/12 09:55 by knehez