Polia

Jednorozmerné pole

jednorozmerné pole v C môže byť definované ako metóda spájajúca viacero premenných rovnakého typu (int, char, float, double... ale aj vlastných dátových štruktúr) do skupín. Prvky skupiny (poľa) sú uložené v skupine (poli) z ľavá do pravá a každý prvok má svoje poradové číslo v skupine, toto číslo sa nazýva index. Index prvého prvku v poli má hodnotu 0 (pozor! nie 1) a teda index posledného prvku v poli ma hodnotu rovnú veľkosti poľa -1 (index posledného prvku poľa s 10 prvkami ma hodnotu 9)


syntax:        

typ_datovej_premennej meno_pola[velkost_pola];

Ako sme si vyššie zadefinovali, pole sa v programovaní využíva na uchovávanie viacerých hodnôt rovnakého dátového typu pod jedným názvom, názvom poľa, a rozlíšene sú iba indexom.

Predstavme si, že chceme uchovávať zoznam skóre žiakov v triede z opravnej písomky z informatiky. Poslednú písomku z informatiky pokazilo iba 5 žiakov, očíslujme si ich teda od 0  po  4. Môžeme vytvoriť pole s názvom "skore" a do tohto poľa môžeme uložiť skóre každého žiaka, kde číslo ktoré sme každému priradili bude jeho index v poli.

V tomto príklade sme vytvorili pole skore s kapacitou na 5 hodnôt a inicializovali sme ho na nulové hodnoty. To zabezpečí, že všetky prvky poľa majú hodnotu 0, ak nebudú explicitne nastavené inak. Tým sa predchádza problémom s nepredvídateľnými hodnotami.

#include <stdio.h>

int main()

{    

 

  // Deklarácia poľa na uchovávanie skóre žiakov pre 5 žiakov a    inicializácia na nulové hodnoty  

 

  int skore[5] = {0};    

 

  // Priradenie hodnôt do poľa   

 

  skore[0] = 90;  

  skore[1] = 85;  

  skore[2] = 88;   

  skore[3] = 92;   

  skore[4] = 78;    

 

  // Výpis hodnôt z poľa   

 

  printf("Skore žiakov:\n");  

  printf("Žiak 1: %d\n", skore[0]);

  printf("Žiak 2: %d\n", skore[1]);

  printf("Žiak 3: %d\n", skore[2]);   

  printf("Žiak 4: %d\n", skore[3]);    

  printf("Žiak 5: %d\n", skore[4]);     

 

  return 0;

}

Očakávaný výsledok 

Dôležité je si uvedomiť, že indexy v poliach v jazyku C začínajú od 0, takže prvý prvok má index 0, druhý má index 1 a tak ďalej. Preto sme na zaciatku studentom pridelovali cisla od 0 po 4.

Týmto spôsobom môžeme uchovávať a manipulovať s viacerými hodnotami rovnakého typu v nasich programoch. Existuje aj dynamické alokovanie pamäti, ktoré umožňuje meniť veľkosť poľa počas behu programu, ale to je pokročilejší koncept, ktorý by sme mohli skúmať neskôr. Teraz sa sústredíme na statické pole ako na základný koncept, ktorý pomôže pri našom programátorskom začiatku. 

Úloha číslo 1: Napíšte program ktorý obsahuje pole s 5 prvkami od 1 po 5 a následne vypíše jednotlivé hodnoty týchto prvkov pomocou cyklu for 

#include<stdio.h>

int main()

{

int pole[5] = {1,2,3,4,5};


for (int i = 0; i < 5; i++)

{

printf("%d ", pole[i]);

}


return 0;

}

úloha 1
úloha 1

Úloha číslo 2: Napíšte program ktorý obsahuje pole s 5 prvkami od 1 po 5 a následne vypíše ich súčet použi pri tom cyklus for

#include<stdio.h>

int main()

{

int pole[5] = {1,2,3,4,5};

int suma = 0;


for (int i = 0; i < 5; i++)

{

suma += pole[i];

}

printf("Súčet prvkov poľa: %d\n", suma);

return 0;

}


úloha 2
úloha 2

Úloha číslo 3: Napíšte program ktorý obsahuje pole s 5 prvkami a následne vypíše najväčší prvok poľa použi pri tom cyklus for

#include<stdio.h>

int main()

{

int pole[5] = {12, 45, 67, 89, 34};

int max = 0;


for (int i = 0; i < 5; i++)

 {

if (pole[i] > max) 

{

max = pole[i];

}

}


printf("Najväčší prvok poľa: %d\n", max);


return 0;

}

úloha 3
úloha 3

Úloha číslo 4: Napíšte program ktorý obsahuje pole s 4 prvkami s hodnotami od 2 po 5 a následne vypíše ich súčin použi pri tom cyklus for

#include<stdio.h>

int main() 

{

int pole[4] = {2, 3, 4, 5};

int vysledok = 1;

for (int i = 0; i < 4; i++) 

{

vysledok *= pole[i];

}

printf("Súčin prvkov poľa: %d\n", vysledok);

return 0;

}

úloha 4
úloha 4

Úloha číslo 5: Napíšte program na výpočet fibonačiho postupnosti s pomocou poľa

#include <stdio.h>

int main() {

int pocetPrvkov;

printf("Zadajte počet prvkov Fibonacciho postupnosti: ");

scanf("%d", &pocetPrvkov);

if (pocetPrvkov <= 0) {

printf("Neplatný vstup. Počet prvkov musí byť kladné číslo.\n");

return 1;

}

int fib[pocetPrvkov];

fib[0] = 0;

fib[1] = 1;

for (int i = 2; i < pocetPrvkov; i++) {

fib[i] = fib[i - 1] + fib[i - 2];

}

printf("Fibonacciho postupnost pre %d prvkov:\n", pocetPrvkov);

for (int i = 0; i < pocetPrvkov; i++) {

printf("%d ", fib[i]);

}

printf("\n");

return 0;

}

úloha 5
úloha 5

Dvojrozmerné pole

Dvojrozmerné pole v jazyku C je štruktúra dát, ktorá organizuje hodnoty do tabuľky s dvoma rozmermi. Každý prvok v dvojrozmernom poli má dva indexy: jeden pre riadky a druhý pre stĺpce. 


syntax:        

typ_datovej_premennej meno_pola[riadky][stlpce];

Vzorový príklad:

Napíšte program ktorý vypíše teploty 3 rôznych miest v jednom týždni pritom použite dvojrozmerné pole a cyklus for

#include <stdio.h>

int main() {

    // Definícia dvojrozmerného poľa pre teplotu

    float teploty[3][7] = {

        {28.5, 29.0, 27.5, 30.2, 26.8, 29.5, 31.0},   // Mesto 1

        {30.0, 31.2, 28.8, 32.5, 29.6, 31.0, 33.5},   // Mesto 2

        {26.0, 27.5, 25.8, 28.0, 25.5, 27.0, 28.5}    // Mesto 3

    };

    // Výpis teplôt pre každé mesto

    for (int mesto = 0; mesto < 3; mesto++) {

        printf("Teploty pre Mesto %d:\n", mesto + 1);

        for (int den = 0; den < 7; den++) {

            printf("Deň %d: %.1f°C\n", den + 1, teploty[mesto][den]);

        }

        printf("\n"); // Oddelenie jednotlivých miest

    }

    return 0;

}


očakávaný výsledok 

Úloha číslo 1: Napíšte program ktorý obsahuje dvojrozmerné pole s 3 riadkami a 4 stĺpcami s prvkami od 1 po 12 a následne vypíše jednotlivé hodnoty týchto prvkov pomocou cyklu for

#include <stdio.h>

int main() 

{

int dvojrozmerne_pole[3][4] = { {1, 2, 3, 4},

                                               {5, 6, 7, 8},

                                               {9, 10, 11, 12} };

for (int i = 0; i < 3; i++) 

{

for (int j = 0; j < 4; j++) 

{

printf("%d ", dvojrozmerne_pole[i][j]);

}

printf("\n");

}

return 0;

}


úloha 1
úloha 1

Úloha číslo 2: Napíšte program ktorý obsahuje dvojrozmerné pole s 3 riadkami a 3 stĺpcami s prvkami od 1 do 9 a následne vypíše ich súčet použi pri tom cyklus for

#include <stdio.h>

int main() 

{

int dvojrozmerne_pole[3][3] = { {1, 2, 3},

                                                           {4, 5, 6},

                                                           {7, 8, 9} };

int suma = 0;

for (int i = 0; i < 3; i++) 

{

for (int j = 0; j < 3; j++) 

{

suma += dvojrozmerne_pole[i][j];

}

}

printf("Súčet prvkov dvojrozmerného poľa: %d\n", suma);

return 0;

}

úloha 2
úloha 2

Úloha číslo 3: Napíšte program ktorý obsahuje dvojrozmerné pole s 3 riadkami a 3 stĺpcami s vami vybranými prvkami a následne vypíše najväčší prvok poľa použi pri tom cyklus for

#include <stdio.h>

int main() 

{

int dvojrozmerne_pole[3][3];

printf("Zadajte hodnoty do matice:\n");

for (int i = 0; i < 3; i++) {

for (int j = 0; j < 3; j++) {

printf("Zadajte hodnotu pre dvojrozmerne_pole[%d][%d]: ", i, j);

scanf("%d", &dvojrozmerne_pole[i][j]);

}

}


int max = dvojrozmerne_pole[0][0];

for (int i = 0; i < 3; i++) 

{

for (int j = 0; j < 3; j++) 

{

if (dvojrozmerne_pole[i][j] > max)

 {

max = dvojrozmerne_pole[i][j];

}

}

}

printf("Najväčší prvok v dvojrozmernom poli: %d\n", max);

return 0;

}

úloha 3
úloha 3

Úloha číslo 4: Napíšte program ktorý obsahuje dvojrozmerné pole s 2 riadkami a 3 stĺpcami s prvkami s hodnotami od 1 do 6 načítanými používateľom a následne vypíše ich súčin použi pri tom cyklus for

#include <stdio.h>

int main() 

{

int dvojrozmerne_pole[2][3];


printf("Zadajte hodnoty do matice:\n");

for (int i = 0; i < 2; i++) {

for (int j = 0; j < 3; j++) {

printf("Zadajte hodnotu pre dvojrozmerne_pole[%d][%d]: ", i, j);

scanf("%d", &dvojrozmerne_pole[i][j]);

}

}

int vysledok = 1;

for (int i = 0; i < 2; i++) 

{

for (int j = 0; j < 3; j++) 

{

vysledok *= dvojrozmerne_pole[i][j];

}

}

printf("Súčin prvkov dvojrozmerného poľa: %d\n", vysledok);

return 0;

}

úloha 4
úloha 4
Vytvorte si webové stránky zdarma! Táto stránka bola vytvorená pomocou služby Webnode. Vytvorte si vlastný web zdarma ešte dnes! Vytvoriť stránky