Prezentácia sa nahráva. Prosím počkajte

Prezentácia sa nahráva. Prosím počkajte

Úvod do jazyka C Algoritmizácia úloh.

Podobné prezentácie


Prezentácia na tému: "Úvod do jazyka C Algoritmizácia úloh."— Prepis prezentácie:

1 Úvod do jazyka C Algoritmizácia úloh

2 Pole Pole je dátová štruktúra zložená z rovnakých prvkov. Je možné si ju predstaviť ako tabuľku s jedným riadkom. Každé políčko má svoj index a je v ňom zapísaná hodnota premennej. index 1 2 n-2 n-1 7 19 3 8 21 hodnota

3 typ meno_pola [početprvkov];
Definícia poľa Hodnota premennej (prvku poľa) má typ, ktorý je definovaný pre pole ako celok. typ meno_pola [početprvkov]; Príklady: int x[10]; pole s názvom x s 10 prvkami float gula[24]; pole s názvom gula s 24 prvkami

4 Pravidlá pre prácu s poľom
Pole vždy začína od nuly 0. Prvým prvkom poľa je prvok s indexom 0. Keď je n prvkov poľa, potom posledný index je n-1 (nie n - častá chyba!!!). Jazyk C nekontroluje medze polí! (ani dolnú ani hornú) ! Pri výpočte nehlási chybu a pre výpočet sa zoberie náhodná hodnota, ktorá je zapísaná v pamäti.

5 Definícia poľa - príklad
int MAX= 8; #define MAX 8 int x[MAX]; int x[MAX*2]; int x[MAX+1]; Definícia poľa s 8 prvkami a indexmi od 0 do 7 Definícia poľa s 16 prvkami a indexmi od 0 do 15 Definícia poľa s 9 prvkami a indexmi od 0 do 8 Tretia definícia umožňuje vyhnúť sa niektorým problémom s indexáciou, ktoré vznikajú tým, že index poľa začína nulou a končí „n“.

6 Pravidlá pre prácu s poľom
Prístup k jednotlivým prvkom poľa je pomocou názvu poľa a jeho indexu v hranatých zátvorkách. Zápis a prístup k hodnotám do poľa: int x[10]; x[2] = 4; x[7] = 6; i = x[2]; Definícia poľa s 10 prvkami Zápis hodnoty 4 do 3-tieho prvku poľa Priradenie hodnoty 3-tieho prvku poľa premennej i

7 Príklad 1 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int i,j, MAX=10; int cislo[MAX]; for (i = 0; i < MAX; i++) cislo[i] = rand()%10; printf("\n Pc. Nahodne cislo \n"); for (i = 0; i < MAX; i++) printf(“\n\r %d %d", i, cislo[i]); } return 0; Vygenerovať náhodné čísla od 0 do 10, uložiť ich do poľa a pole zobraziť vo forme tabuľky.

8 Hľadanie maxima #include <stdio.h> #include <stdlib.h>
#include <time.h> #define N 10 main() { int a[N],i,max; srand(time(NULL)); for(i=0; i<N; i++) a[i]=rand() % 50; for(i=0; i<N; i++) printf("\n\r %d. %d",i,a[i]); max = a[0]; for(i=0; i<N; i++) if (max < a[i]) max = a[i]; } printf("\n\r Maximum je: %d ",max);

9 Viacrozmerné pole Jazyk C umožňuje použitie viacrozmerných polí.
Najčastejšie sa používajú dvojrozmerné polia (tabuľky). Troj a viacrozmerné polia sú možné ale menej časté. 1 2 3 1 2 3 2 5 7 9 6 4 8 1 3 Indexy poľa Hodnoty poľa

10 Definícia poľa Základná definícia int cisla[3][5];
Každý identifikátor poľa vždy začína od nuly 0 Priradenie hodnoty cisla[0][0] = 123; cisla[0][1] = 23; ... cisla[2][4] = 15

11 Použitie viacrozmerných polí
Spôsob uloženia prvkov poľa v pamäti: int a[2][3] je uložené v pamäti za sebou v poradí a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] Definícia a priradenie v 3-rozmerných poliach double meranie[5][7][5]; meranie[4][6][4] = 12.5;

12 Príklad 3 Vytvoriť dvojrozmerné pole, do prvkov vložiť hodnoty malej násobilky a vypísať na obrazovku.

13 Riešenie príkladu 3.1 #include <stdio.h> int main() {
int i, j, mat[10][10]; for(i=0; i<10; i++) for(j=0; j<10; j++) mat [i][j] = i * j; } // tu bude vypis

14 Riešenie príkladu 3.2 for(i=0; i<10; i++) { for(j=0; j<10; j++)
printf(“%d ”,mat[i][j]); } printf(“\n\r”);

15 Spočítanie nulových prvkov
pocet=0; for (i = 0; i < 10; i++) { for(j=0; j<10; j++) if (mat [i][j]==0) pocet++; }

16 Vytvorenie jednotkovej matice
for (i = 0; i < 5; i++) { for(j=0; j<10; j++) if(i==j) mat[i] [j]=1; else mat [i][j]=0; }

17 Príklad Vytvoriť program, ktorý umožní zadať 3 merania dvoch rôznych alternatívnych zapojení. Program vyhodnotí merania, vypočíta priemernú hodnotu pre každé zapojenie.

18 #include <stdio.h>
#define ZAPOJ 2 #define POC_MER 3 int main() { int i,j; float sucet; float hodnota[ZAPOJ][POC_MER]; float priemer[ZAPOJ] for (i = 0; i < ZAPOJ; i++) for (j = 0; j < POC_MER; j++) printf(“\n\r Zadaj hodnotu z %d zapojenia, %d merania”,i,j); scanf("%f",&hodnota[i][j]); }

19 for (i = 0; i < ZAPOJ; i++)
{ sucet=0; for (j = 0; j < POC_MER; j++) sucet=sucet+hodnota [i] [j]; } priemer[i]=sucet / POC_MER; printf(“\n\r Priemer pre %d zapojenie: %2.f”,i, priemer[i]);

20 Program, ktorý naplní maticu 10x10 náhodnými číslami od 0 do 100, maticu vytlačí a podľa zadaného riadku a stĺpca vypíše hodnotu tohto prvku. #include <stdio.h> #include <stdlib.h> #define MAX 10 int main() { int i,j; int cislo[MAX][MAX]; for (i = 0; i < MAX; i++) for (j = 0; j < MAX; j++) cislo[i][j] = rand()%100; printf("\n Vypis cisel z matice 10x10 \n"); for (i = 0; i < MAX; i++){ printf(" %3d", cislo[i][j]); printf("\n");}; printf("\nZadej index riadku "); scanf("%d",&i); printf("\nZadej index stlpca "); scanf("%d",&j); printf("Bol vybrany stlpec %d a riadok %d, ktory obsahuje hodnotu %d", i, j, cislo[i][j]); R eturn 0; } #include <stdio.h> #include <stdlib.h> #define MAX 10 int main() { int i,j; int cislo[MAX][MAX]; for (i = 0; i < MAX; i++) for (j = 0; j < MAX; j++) cislo[i][j] = rand()%100; printf("\n Vypis nahodnych cisel v matici 10x10 \n"); for (i = 0; i < MAX; i++){ printf(" %3d", cislo[i][j]); printf("\n");}; printf("\nZadej poradove cislo stlpca "); scanf("%d",&i); printf("\nZadej poradove cislo riadku "); scanf("%d",&j); printf("Bol vybran stlpec %d a riadok %d, ktory \ obshuje hodnotu %d", i, j, cislo[i][j]); while (getchar() !='\n'); getchar(); return 0; }

21

22 Definícia nových typov a premenných typu pole
int meranie [4][7]; Definícia dátového typu: typedef int ZAKLAD[4][7]; Definícia premennej: ZAKLAD meranie;

23 Definícia nových typov a premenných typu pole
typedef int MERANIE[5]; typedef float PRIEMER[3]; typedef int VYSLEDOK[11]; Definícia nových premenných MERANIE zaz; PRIEMER vyp; VYSLEDOK zaver; Priradenie hodnoty zaz[2] = 23; Vznikla premenná zaz typu poľa o 5-tich prvkoch, v ktorých sú uložené premenné typu int


Stiahnuť ppt "Úvod do jazyka C Algoritmizácia úloh."

Podobné prezentácie


Reklamy od Google