Algoritmizace a programování
|
|
- Aneta Sedláková
- před 6 lety
- Počet zobrazení:
Transkript
1 Algoritmizace a programování Strukturované proměnné Pole (array), ukazatele (pointer) Jazyk C České vysoké učení technické Fakulta elektrotechnická Ver.1.10 J. Zděnek 2015 Pole (array) (1) Pole je množina prvků (proměnných) stejného typu K prvkům pole se přistupuje pomocí pořadového čísla prvku (indexu) Index musí být celéčíslo (konstanta, proměnná, výraz) Index prvního prvku je vždy roven 0 Prvky pole mohou být proměnné libovolného typu (i strukturované) Pole může být jednorozměrné i vícerozměrné (prvky pole jsou opět pole) A8B14ADP Jazyk C - Strukturované proměnné 2 J. Zděnek
2 Pole (array) (2) Definice pole určuje: - jméno pole - typ prvku pole - počet prvků pole Prvky pole je možné inicializovat Počet prvků statického pole musí být znám v době překladu Prvky pole zabírají v paměti souvislou oblast Velikost pole (byte) = počet prvků pole * sizeof (prvek pole) C - nemá proměnnou typu String, nahrazuje se jednorozměrným polem z prvků typu char. Poslední prvek takového pole je vždy \0 (null char) C - nekontroluje za běhu programu, zda vypočítaný index je platný A8B14ADP Jazyk C - Strukturované proměnné 3 Pole (array) (3) Deklarace pole (array): př: char polea [10]; int poleb[3][3]; // jednorozmerne pole z prvku char // dvourozmerne pole z prvku int Uložení v paměti poleb[0][0],[0][1],[0][2],[1][0],[1][1],[1][2],[2][0],[2][1],[2][2], A8B14ADP Jazyk C - Strukturované proměnné 4 J. Zděnek
3 Pole (array) (4) Inicializace pole: př: double x[3]={0.1,0.5,1.3; char s[]= abc ; char s1[]={ a, b, c, \0 ; // totez jako abc int ai[3][3]={{1,2,3{4,5,6{7,8,9; char cmd[][10]={ Load, Save, Exit ;//Druhy rozmer nutny Přístup k prvkům pole: př: ai[1][3]=15*2; A8B14ADP Jazyk C - Strukturované proměnné 5 Ukazatel (pointer) Ukazatel (pointer): Ukazatel je proměnná obsahující adresu jiné proměnné (nepřímá adresa) Ukazatel má též typ proměnné na kterou může ukazovat ukazatel na char ukazatel na int atd. Ukazatel může být též bez typu (void), pak může obsahovat adresu libovolné proměnné. Její velikost pak nelze z vlastností ukazatele určit Neplatná adresa v ukazateli má hodnotu konstanty NULL Za běhu programu se nekontroluje zda adresa v ukazateli je platná A8B14ADP Jazyk C - Strukturované proměnné 6 J. Zděnek
4 Ukazatel (pointer) Adresa proměnné se zjistí adresovým operátorem & K proměnné, na kterou ukazatel ukazuje se přistoupí operátorem nepřímé adresy * (hvězdička) Ukazatel může obsahovat též adresu funkce (ukazatel na funkci) Pomocí ukazatele na funkci lze funkci volat, včetně předání parametrů Pomocí ukazatele lze předávat parametry funkci odkazem (call by reference) (standardní metoda v C pro ostatní případy je volání hodnotou (call by value)) A8B14ADP Jazyk C - Strukturované proměnné 7 Ukazatel (pointer) Ukazatel (pointer): př: adresa hodnota adresa hodnota int x,y; px NULL x int *px,*py; px=null; px x px=&x; x=3; y=*px; px x py=px; *py=10; px x 3 px y 3 py x 3 py x 10 A8B14ADP Jazyk C - Strukturované proměnné 8 J. Zděnek
5 Ukazatel (pointer) Ukazatel (pointer): př: adresa hodnota adresa hodnota int x; int *px int **ppx; x=1; px=null; ppx=null; px=&x; ppx=&px; **ppx=6; px pp pxx px NULL NULL x x x x *px=10; ppx x 1 ppx x 6 px x 10 A8B14ADP Jazyk C - Strukturované proměnné 9 Ukazatel (pointer) Ukazatel (pointer) - aritmetické operace: Povolené aritmetické operace s ukazateli: pointer + integer pointer - integer pointer1 - pointer2 (musí být stejného typu) A8B14ADP Jazyk C - Strukturované proměnné 10 J. Zděnek
6 Ukazatel (pointer) Ukazatel na pole (pointer to array): Aritmetické operace jsou užitečné když ukazatel ukazuje na pole Jméno pole je konstantní ukazatel na počátek pole (na prvek a[0]) Aritmetické operace s ukazatelem na pole zajistí správný výpočet, z typu ukazatele se zjistí velikost prvku pole a ukazatel se posune o (pocet_prvku*velikost_prvku) př: int a[10],y; // a[] pole typu int int *px; // px ukazatel na int px=a; // Adresa a[0] do px px++; // px ukazuje na a[1] y=*(px+5); // do y hodnotu y a[5] px=&a[3]; // px ukazuje na a[3] A8B14ADP Jazyk C - Strukturované proměnné 11 Ukazatel (pointer) Ukazatel na pole (pointer to array) pokrač: V složitějších deklaracích ukazatelů mohou být nezbytné závorky př: double a[10]; //Pole z prvku double double (*pa)[10]; //Ukazatel na pole z 10-ti prvku double double *pa[10]; //Pole 10-ti ukazatelu na double A8B14ADP Jazyk C - Strukturované proměnné 12 J. Zděnek
7 Ukazatel na char a práce s řetězci: Ukazatel (pointer) př: // Ukazatel na string char *s; //Ukazatel na char s= Ja jsem string ;//s ukazuje na prvni znak retezce A8B14ADP Jazyk C - Strukturované proměnné 13 Ukazatel na funkci: Ukazatel (pointer) př: void funkce1(int x); // Prototyp funkce void (*pfnc)(int x); // Ukazatel na funkci s parametrem int max=200; pfnc=funkce1; // Adresa funkce1 do ukazatele pfnc (*pfnc)(max); // Volani funkce1 pomoci ukazatele A8B14ADP Jazyk C - Strukturované proměnné 14 J. Zděnek
8 Čtení celého čísla int nextint(int *cislo){ // === Bezpecne pro libovolny zadany pocet znaku === // Navratova hodnota: // TRUE - zadano cele cislo // FALSE - neplatny vstup enum boolean {FALSE,TRUE; const int BUF_SIZE = 80; char vstup[buf_size],smeti[buf_size]; fgets(vstup,sizeof(vstup),stdin); if(sscanf(vstup,"%i%[^\n]",cislo,smeti)!= 1) return(false); // Input error return(true); // nextint() END A8B14ADP Jazyk C - Strukturované proměnné 15 #define MAX_DELKA 20 int pole[max_delka]; Otoč pole /př.06a.c/ printf("\n Zadejte cela cisla (kazde ukoncit ENTER)\n\n"); for (i = 0; i < n; i++) { if (!nextint(&pole[i])) { printf("chyba - Zadany udaj neni cislo\n\n"); exit(exit_failure); printf("\n Vypis cisel v obracenem poradi \n\n"); for (i = n - 1; i >= 0; i--) { printf("pole[%d] = %d \n", i, pole[i]); printf(" \n"); A8B14ADP Jazyk C - Strukturované proměnné 16 J. Zděnek
9 Tabulka četnosti /06c.c/ int tabulka(int t[], int min, int max) { const int TRUE = 1; const int FALSE = 0; int i, cislo; for (i = 0; i <= (max - min); i++){ t[i] = 0; printf(" Zadejte radu celych cisel zakoncenou nulou \n\n"); printf(" Povoleny rozsah cisel je <%d, %d> \n\n", min, max); do { if (!nextint(&cislo)) { printf("\n Chyba - Zadany udaj neni cele cislo\n"); return (FALSE); // FALSE -> chyba if ((cislo < MIN cislo > MAX) && cislo!= 0) { printf("\n Chyba - Zadane cislo je mimo rozsah\n"); return (FALSE); // FALSE -> chyba if (cislo == 0)break; t[cislo - MIN]++; while (TRUE); return (TRUE); // Zadani bez chyby // tabulka() END A8B14ADP Jazyk C - Strukturované proměnné 17 Tabulka četnosti void vypis (int t[], int min, int max){ int i; printf("\n"); for(i=0; i<=(max-min); i++){ if(t[i]!= 0){ printf(" Cetnost cisla %3d je %3d\n", (i+min),t[i]); printf("\n"); // vypis() END A8B14ADP Jazyk C - Strukturované proměnné 18 J. Zděnek
10 Tabulka četnosti #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { #define MIN 1 #define MAX 100 int tab[max - MIN + 1]; // Pozor, lokalni promenna neni inicializovana printf(" === C06c.c ===\n\n"); printf(" Cetnost cisel - pomoci funkci \n\n"); if (!tabulka(tab, MIN, MAX)) { printf(" Chyba v zadani udaju\n\n"); return(exit_failure); vypis(tab, MIN, MAX); return (EXIT_SUCCESS); // main() END A8B14ADP Jazyk C - Strukturované proměnné 19 Součet prvků matice /C06e.c/ int soucetprvkumatice (int mat[][max_j], int m, int n){ int suma = 0; int i,j; for(i=0; i<m; i++){ for(j=0; j<n; j++){ suma = suma + mat[i][j]; return(suma); //soucetprvkumatice() END A8B14ADP Jazyk C - Strukturované proměnné 20 J. Zděnek
11 Součet prvků matice void vypismatice (int mat[][max_j], int m, int n){ int i, j; printf("\n"); for(i=0; i<m; i++){ for(j=0; j<n; j++){ printf(" m[%d,%d] =%3d ",i,j,mat[i][j]); printf("\n"); printf("\n"); // vypismatice() END A8B14ADP Jazyk C - Strukturované proměnné 21 #include <stdio.h> #include <stdlib.h> Součet prvků matice #define MAX_J 3 int main(int argc, char** argv) { int matice[][max_j]={{1, 2, 3, {3, 4, 5, {6, 7, 8, {9,10,11; printf(" === C06e.c ===\n\n"); printf(" Soucet prvku matice \n\n"); printf(" Matice \n"); vypismatice(matice,3,3); printf(" Ma soucet prvku = %d \n\n",soucetprvkumatice(matice,3,3)); return (EXIT_SUCCESS); // main() END A8B14ADP Jazyk C - Strukturované proměnné 22 J. Zděnek
12 Součet matic /C06f.c/ void soucetmatic (int mata[][max_j], int matb[][max_j], int soucetab[][max_j],int m){ int i,j; for(i=0; i<m; i++){ for(j=0; j<m; j++){ soucetab[i][j] = mata[i][j]+matb[i][j]; //soucetmatic() END A8B14ADP Jazyk C - Strukturované proměnné 23 Součet matic void vypismatice (int mat[][max_j], int m, int n){ int i, j; printf("\n"); for(i=0; i<m; i++){ for(j=0; j<n; j++){ printf(" m[%d,%d] =%3d ",i,j,mat[i][j]); printf("\n"); printf("\n"); // vypismatice() END A8B14ADP Jazyk C - Strukturované proměnné 24 J. Zděnek
13 Součet matic #include <stdio.h> #include <stdlib.h> #define MAX_J 3 int main(int argc, char** argv) { int maticea[][max_j]={{1, 2, 3, {3, 4, 5, {6, 7, 8; int maticeb[][max_j]={{1, 1, 1, {2, 2, 2, {3, 3, 3; int soucetab[max_j][max_j]; printf(" === C06f.c ===\n\n"); printf(" Soucet matic \n\n"); printf(" Matice \n"); vypismatice(maticea,2,3); printf(" a Matice \n"); vypismatice(maticeb,2,3); printf(" ma soucet \n"); soucetmatic(maticea,maticeb,soucetab,3); vypismatice(soucetab,2,3); return (EXIT_SUCCESS); // main() END A8B14ADP Jazyk C - Strukturované proměnné 25 Palindrom string /C06.g/ int jepalindrom(char str[]) { const int TRUE = 1; const int FALSE = 0; int i = 0, j = strlen(str) - 1; while (i < j) { while (str[i] == ' ')i++; while (str[j] == ' ')j--; if (toupper(str[i])!= toupper(str[j])) return (FALSE); i++; j--; return (TRUE); //printf("velikost = %d \n\n",velikost); // jepalindrom() END A8B14ADP Jazyk C - Strukturované proměnné 26 J. Zděnek
14 Palindrom string #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> int main(int argc, char** argv) { char string[]="kobyla ma maly bok"; printf(" === C06g.c ===\n\n"); printf(" Test palindromu \n\n"); if(jepalindrom(string)){ printf(" String <%s> je palindrom \n\n",string); else{ printf(" String <%s> neni palindrom \n\n",string); return (EXIT_SUCCESS); A8B14ADP Jazyk C - Strukturované proměnné 27 copyarray /C06j/ Pointers and arrays - ekvivalence syntaxe: void copyarray1(char dst[], const char src[]){ // const char src[] -> prvky pole src[] nelze ve funkci menit int i=0; while(src[i]!= '\0'){ dst[i] = src[i++]; dst[i] = '\0'; // copyarray1() END A8B14ADP Jazyk C - Strukturované proměnné 28 J. Zděnek
15 copyarray Pointers and arrays - ekvivalence syntaxe: void copyarray2(char *dst, const char *src){ // const char src[] -> prvky pole src[] nelze ve funkci menit while(*src!= '\0'){ *dst++ = *src++; *dst = '\0'; // copyarray2() END A8B14ADP Jazyk C - Strukturované proměnné 29 copyarray Pointers and arrays - ekvivalence syntaxe: void copyarray3(char *dst, const const char *src){ // const char src[] -> prvky pole src[] nelze ve funkci menit int i=0; while(src[i]!= '\0'){ *dst++ = src[i++]; // Wow, ok too *dst = '\0'; // copyarray2() END A8B14ADP Jazyk C - Strukturované proměnné 30 J. Zděnek
16 copyarray Pointers and arrays - ekvivalence syntaxe: void copyarray4(char dst[], const char src[]){ // const char src[] -> prvky pole src[] nelze ve funkci menit int i=0; while(*src!= '\0'){ *dst++ = *src++; *dst = '\0'; // copyarray1() END A8B14ADP Jazyk C - Strukturované proměnné 31 copyarray Pointers and arrays - ekvivalence syntaxe: #include <stdio.h> #include <stdlib.h> // Prototypes void copyarray1(char dst[], const char src[]); void copyarray2(char *dst, const char *src); void copyarray3(char *dst, const char *src); void copyarray4(char dst[], const char src[]); A8B14ADP Jazyk C - Strukturované proměnné 32 J. Zděnek
17 copyarray Pointers and arrays - ekvivalence syntaxe: int main(int argc, char** argv) { char a1[] = " Test 1"; char a2[] = " Test 2"; char a3[] = " Test 3"; char a4[] = " Test 4"; char b[80]; printf(" === C06j.c ===\n\n"); printf(" Pole a ukazatele \n\n"); printf(" Syntaxe pole a[i] je ekvivaletni syntaxi ukazatelu *(a_ptr+i) \n\n"); printf("%s \n\n", a1); copyarray1(b,a1); printf("%s \n\n",b); printf("%s \n\n", a2); copyarray2(b,a2); printf("%s \n\n",b); printf("%s \n\n", a3); copyarray3(b,a3); printf("%s \n\n",b); printf("%s \n\n", a4); copyarray4(b,a4); printf("%s \n\n",b); return (EXIT_SUCCESS); // main() END A8B14ADP Jazyk C - Strukturované proměnné 33 Dynamická alokace paměti /C06k.c/ #include <stdio.h> #include <stdlib.h> // Pointers and arrays - dynamicka alokace pameti, malloc(), free() // Otoc pole // Function prototypes int* ctipole1 (int *delka, int max_delka); void obratpole (int p[], int delka_pole); void vypispole (int p[], int delka_pole); int* vratpole(int *p_pole); int nextint(int *cislo); A8B14ADP Jazyk C - Strukturované proměnné 34 J. Zděnek
18 Dynamická alokace paměti int main(int argc, char** argv) { #define MAX_DELKA 20 int *p_pole, n; printf(" === C06k.c ===\n\n"); printf(" Obrat pole - pomoci funkci \n"); printf(" Dynamicke prideleni (alokace) pameti \n\n"); p_pole = ctipole1(&n, MAX_DELKA); obratpole(p_pole, n); vypispole(p_pole, n); p_pole = vratpole(p_pole); return (EXIT_SUCCESS); // main() END A8B14ADP Jazyk C - Strukturované proměnné 35 Dynamická alokace paměti int* ctipole1 (int *delka, int max_delka){ // Pole p[] je prideleno (alokovano dynamick - malloc() // Navratovou hodnotou funkce ctipole() je ukazatel na pridelene pole // Pocet prvku pole se predava z funkce odkazem *delka int i, *p; printf(" Zadejte pocet cisel = "); if (!nextint(delka)) { printf("\n Chyba - Zadany udaj neni cele cislo\n\n"); exit(exit_failure); if(*delka <1 *delka > max_delka){ printf("\n Chyba - pocet cisel = <1,%d> \n\n",max_delka); exit(exit_failure); // Alokace pameti (prideleni pameti z "heapu") if((p=(int*)malloc((*delka)*sizeof(int))) == NULL){ printf("\n Chyba - neni dostatek volne pameti \n\n"); exit(exit_failure); printf("\n Zadejte cela cisla (kazde ukoncit ENTER)\n\n"); for (i = 0; i < *delka; i++) { if (!nextint(p+i)) { printf("\n Chyba - Zadany udaj neni cele cislo\n\n"); exit(exit_failure); return(p); // p - ukazatel na pridelene a naplnene pole // ctipole1() END A8B14ADP Jazyk C - Strukturované proměnné 36 J. Zděnek
19 Dynamická alokace paměti void obratpole (int p[], int delka_pole){ // Pole p[] se predava odkazem (call by reference) int i, x, n_pul; n_pul= delka_pole/2; for(i=0; i<n_pul; i++ ){ x = p[i]; p[i] = p[delka_pole-i-1]; p[delka_pole-i-1] = x; // obratpole() END A8B14ADP Jazyk C - Strukturované proměnné 37 Dynamická alokace paměti void vypispole (int p[], int delka_pole){ // Pole p[] se predava odkazem (call by reference) int i; printf("\n Vypis cisel v obracenem poradi \n\n"); for(i=0; i<delka_pole; i++){ printf("pole[%d] = %d \n", i, p[i]); printf(" \n"); // vypispole() END A8B14ADP Jazyk C - Strukturované proměnné 38 J. Zděnek
20 Dynamická alokace paměti int* vratpole(int *p_pole){ free(p_pole); // Dealokace pameti (vraceni pridelene pameti) p_pole = NULL; // Bezpecnostni opatreni return(p_pole); // vratpole() END A8B14ADP Jazyk C - Strukturované proměnné 39 Dynamická alokace paměti int nextint(int *cislo){ // Stav: odladeno // === Bezpecne pro libovolny zadany pocet znaku === // Navratova hodnota: // TRUE - zadano cele cislo // FALSE - neplatny vstup enum boolean {FALSE,TRUE; const int BUF_SIZE = 80; char vstup[buf_size],smeti[buf_size]; fgets(vstup,sizeof(vstup),stdin); if(sscanf(vstup,"%i%[^\n]",cislo,smeti)!= 1) return(false); // Input error return(true); // nextint() END A8B14ADP Jazyk C - Strukturované proměnné 40 J. Zděnek
21 Dynamická alokace paměti (2) /C06l.c/ #include <stdio.h> #include <stdlib.h> // Pointers and arrays - dynamicka alokace pameti, malloc(), free() // Otoc pole // Function prototypes void ctipole2 (int **p_pole, int *delka, int max_delka); void obratpole (int p[], int delka_pole); void vypispole (int p[], int delka_pole); void vratpole1(int **p_pole); int nextint(int *cislo); A8B14ADP Jazyk C - Strukturované proměnné 41 Dynamická alokace paměti (2) int main(int argc, char** argv) { #define MAX_DELKA 20 int *p_pole, n; printf(" === C06l.c ===\n\n"); printf(" Obrat pole - pomoci funkci \n"); printf(" Dynamicke prideleni (alokace) pameti \n"); printf(" Predani ukazatele odkazem (ukazatel na ukazatel) \n\n"); ctipole2(&p_pole, &n, MAX_DELKA); obratpole(p_pole, n); vypispole(p_pole, n); vratpole1(&p_pole); return (EXIT_SUCCESS); // main() END A8B14ADP Jazyk C - Strukturované proměnné 42 J. Zděnek
22 Dynamická alokace paměti (2) void ctipole2 (int **pp_pole, int *delka, int max_delka){ // Pole je prideleno (alokovano dynamicky - malloc() // Ukazatel se bezne predava hodnotou, proto kdyz je treba // predat ukazatel odkazem (call by reference) pouzijeme // ukazatel na ukazatel (tj. **p_pole). Adresa pole // pridelena funkci malloc() je pak dostupna i po // ukonceni funkce ctipole2() // Pocet prvku pole se predava z funkce odkazem *delka...viz dále A8B14ADP Jazyk C - Strukturované proměnné 43 Dynamická alokace paměti (2) void ctipole2 (int **pp_pole, int *delka, int max_delka){ int i; printf(" Zadejte pocet cisel = "); if (!nextint(delka)) { printf("\n Chyba - Zadany udaj neni cele cislo\n\n"); exit(exit_failure); if(*delka <1 *delka > max_delka){ printf("\n Chyba - pocet cisel = <1,%d> \n\n",max_delka); exit(exit_failure); // Alokace pameti (prideleni pameti z "heapu") if((*pp_pole=(int*)malloc((*delka)*sizeof(int))) == NULL){ printf("\n Chyba - neni dostatek volne pameti \n\n"); exit(exit_failure); printf("\n Zadejte cela cisla (kazde ukoncit ENTER)\n\n"); for (i = 0; i < *delka; i++) { if (!nextint((*pp_pole)+i)) { printf("\n Chyba - Zadany udaj neni cele cislo\n\n"); exit(exit_failure); // ctipole() END A8B14ADP Jazyk C - Strukturované proměnné 44 J. Zděnek
23 Dynamická alokace paměti (2) void obratpole (int p[], int delka_pole){ // Pole p[] se predava odkazem (call by reference) int i, x, n_pul; n_pul= delka_pole/2; for(i=0; i<n_pul; i++ ){ x = p[i]; p[i] = p[delka_pole-i-1]; p[delka_pole-i-1] = x; // obratpole() END A8B14ADP Jazyk C - Strukturované proměnné 45 Dynamická alokace paměti (2) void vypispole (int p[], int delka_pole){ // Pole p[] se predava odkazem (call by reference) int i; printf("\n Vypis cisel v obracenem poradi \n\n"); for(i=0; i<delka_pole; i++){ printf("pole[%d] = %d \n", i, p[i]); printf(" \n"); // vypispole() END A8B14ADP Jazyk C - Strukturované proměnné 46 J. Zděnek
24 Dynamická alokace paměti (2) void vratpole1(int **p_pole){ // **p_pole je ukazatel na ukazatel, do metody predana // adresa ukazatele je pouzita k nastaveni vlastniho // ukazatele na NULL. To pozdeji v programu umozni // testovat zda je ukazatel platny nebo neplatny. free(*p_pole); // Dealokace pameti (vraceni pridelene pameti) *p_pole = NULL; // Bezpecnostni opatreni // vratpole() END A8B14ADP Jazyk C - Strukturované proměnné 47 Dynamická alokace paměti (2) int nextint(int *cislo){ // Stav: odladeno // === Bezpecne pro libovolny zadany pocet znaku === // Navratova hodnota: // TRUE - zadano cele cislo // FALSE - neplatny vstup enum boolean {FALSE,TRUE; const int BUF_SIZE = 80; char vstup[buf_size],smeti[buf_size]; fgets(vstup,sizeof(vstup),stdin); if(sscanf(vstup,"%i%[^\n]",cislo,smeti)!= 1) return(false); // Input error return(true); // nextint() END A8B14ADP Jazyk C - Strukturované proměnné 48 J. Zděnek
25 Algoritmizace a programování Strukturované proměnné Pole (array), ukazatele (pointer) KONEC České vysoké učení technické Fakulta elektrotechnická J. Zděnek
IUJCE 07/08 Přednáška č. 4. v paměti neexistuje. v paměti existuje
Konstanty I možnosti: přednostně v paměti neexistuje žádný ; o preprocesor (deklarace) #define KONSTANTA 10 o konstantní proměnná (definice) const int KONSTANTA = 10; příklad #include v paměti
Operační systémy. Cvičení 4: Programování v C pod Unixem
Operační systémy Cvičení 4: Programování v C pod Unixem 1 Obsah cvičení Řídící struktury Funkce Dynamická alokace paměti Ladění programu Kde najít další informace Poznámka: uvedené příklady jsou dostupné
Př. další použití pointerů
Př. další použití pointerů char *p_ch; int *p_i; p_ch = (char *) p_i; // konverze int * na char * 8 int i = 5; int *p_i; p_i = &i; POZOR!!!! scanf("%d", p_i); printf("%d", *p_i); Obecný pointer na cokoliv:
Základy programování (IZP)
Základy programování (IZP) Páté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 5. týden
for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }
5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu
int t1, t2, t3, t4, t5, t6, t7, prumer; t1=sys.readint();... t7=sys.readint(); prume pru r = r = ( 1+t 1+t t3+ t3+ t4 t5+ t5+ +t7 +t7 )/ ;
Pole Příklad: přečíst teploty naměřené v jednotlivých dnech týdnu, vypočítat průměrnou teplotu a pro každý den vypsat odchylku od průměrné teploty Řešení s proměnnými typu int: int t1, t2, t3, t4, t5,
Algoritmizace a programování
Algoritmizace a programování Strukturované proměnné Struktura, union Jazyk C České vysoké učení technické Fakulta elektrotechnická A8B14ADP Jazyk C - Strukturované proměnné Ver.1.10 J. Zděnek 20151 Struktura
IUJCE 07/08 Přednáška č. 6
Správa paměti Motivace a úvod v C (skoro vždy) ručně statické proměnné o datový typ, počet znám v době překladu o zabírají paměť po celou dobu běhu programu problém velikosti definovaných proměnných jak
Pointery II. Jan Hnilica Počítačové modelování 17
Pointery II 1 Pointery a pole Dosavadní způsob práce s poli zahrnoval: definici pole jakožto kolekce proměnných (prvků) jednoho typu, umístěných v paměti za sebou int pole[10]; práci s jednotlivými prvky
Algoritmizace a programování
Algoritmizace a programování Jazyk C řízení běhu programu České vysoké učení technické Fakulta elektrotechnická Ver.1.10 J. Zděnek 2015 Šest zákonů programování 1. V každém programu je alespoň jedna chyba
Algoritmizace a programování
Algoritmizace a programování Jazyk C funkce České vysoké učení technické Fakulta elektrotechnická A8B14ADP Algoritmizace a programovaní -Jazyk C -Ver.1.00 funkce J. Zděnek 20151 Funkce Funkce - černá (programová)
Algoritmizace a programování
Algoritmizace a programování Jazyk C řízení běhu programu České vysoké učení technické Fakulta elektrotechnická Ver.1.10 J. Zděnek 2015 Šest zákonů programování 1. V každém programu je alespoň jedna chyba
Např.: // v hlavičkovém souboru nebo na začátku // programu (pod include): typedef struct { char jmeno[20]; char prijmeni[20]; int rok_nar; } CLOVEK;
Struktury - složený datový typ. - datový typ jehož položky jsou jiné proměnné: - používá obvykle dohromady s příkazem typedef nechci vypisovat opakovaně složitou deklaraci pomocí typedef udělám nový datový
Ukazatele, dynamická alokace
Ukazatele, dynamická alokace Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Přednášky byly připraveny s pomocí materiálů, které vyrobili Ladislav Vágner, Pavel Strnad, Martin Mazanec Karel Richta,
6. lekce Úvod do jazyka C knihovny datové typy, definice proměnných základní struktura programu a jeho editace Miroslav Jílek
6. lekce Úvod do jazyka C knihovny datové typy, definice proměnných základní struktura programu a jeho editace Miroslav Jílek 1/73 https://en.cppreference.com internetová stránka s referencemi https://gedit.en.softonic.com/download
Základy programování (IZP)
Základy programování (IZP) Šesté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 6. týden
Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15
Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové
BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky
Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Ukazatele BI-PA1
Správné vytvoření a otevření textového souboru pro čtení a zápis představuje
f1(&pole[4]); funkci f1 předáváme hodnotu 4. prvku adresu 4. prvku adresu 5. prvku hodnotu 5. prvku symbolická konstanta pro konec souboru je eof EOF FEOF feof Správné vytvoření a otevření textového souboru
Pole a Funkce. Úvod do programování 1 Tomáš Kühr
Pole a Funkce Úvod do programování 1 Tomáš Kühr (Jednorozměrné) pole u Datová struktura u Lineární u Homogenní = prvky stejného datového typu u Statická = předem určený počet prvků u Pole umožňuje pohodlně
Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný
Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný typem proměnné - ukazatel je tedy adresa společně s
11a Dynamické dvourozměrné pole (obdobně vícerozměrné)
11a Dynamické dvourozměrné pole (obdobně vícerozměrné) počet hvězdiček == počet rozměrů (dimenze pole) int **p_2d; int radku, sloupcu; printf("zadejte pocet radku a sloupcu pole:"); scanf("%d,%d", &radku,
Strukturované typy a ukazatele. Úvod do programování 1 Tomáš Kühr
Strukturované typy a ukazatele Úvod do programování 1 Tomáš Kühr Motivace Se základními datovými typy si sice vystačíme Někdy to ale může být nepříjemně nepřehledné Příklady: long double soucet(const long
Množina čísel int stl-set-int.cpp
Řetězce, pole a STL V C++ je výhodné pro práci s řetězci použít třídu string, funkce C jsou stále k dispozici cstring, ukazatele a pole lze stále používat stejně, jako v C, použití iterátorů a dalších
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace
Programování v jazyce C a C# část I. Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Předmět: Algoritmizace a programování Téma: Programování Vyučující: Ing. Milan Káža
Jazyk C++, některá rozšíření oproti C
Karel Müller, Josef Vogel (ČVUT FIT) Jazyk C++, některá rozšíření oproti C BI-PA2, 2011, Přednáška 1 1/22 Jazyk C++, některá rozšíření oproti C Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra
Vícerozměrná pole. Úvod do programování 2 Tomáš Kühr
Vícerozměrná pole Úvod do programování 2 Tomáš Kühr Organizační záležitosti Konzultace Pracovna 5.043 Úterý 9.40 11.20 (oficiální) Pátek 8.30 9.40, dle potřeby Emailem tomas.kuhr@upol.cz Web předmětu:
Mělká a hluboká kopie
Karel Müller, Josef Vogel (ČVUT FIT) Mělká a hluboká kopie BI-PA2, 2011, Přednáška 5 1/28 Mělká a hluboká kopie Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra teoretické informatiky, Fakulta
8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek
8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy
9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek
9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek 1/24 Editační prostření Kód programu lze editovat v jakémkoli textovém editoru. 2/24 Editační prostření Kód
Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií
1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední
IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);
Pole (array) Motivace Častá úloha práce s větším množstvím dat stejného typu o Př.: průměrná teplota za týden a odchylka od průměru v jednotlivých dnech Console.Write("Zadej T pro.den: "); double t = Double.Parse(Console.ReadLine());
IUJCE Přednáška č. 11. další prvky globální proměnné, řízení viditelnosti proměnných, funkcí
Velké projekty v C velký = 100ky a více řádek udržovatelnost, bezpečnost, přehlednost kódu rozdělení programu do více souborů další prvky globální proměnné, řízení viditelnosti proměnných, funkcí Globální
Úvod do programování. Lekce 5
I N V E S T I C E D O R O Z V O J E V Z D Ě L Á V Á N Í Inovace a zvýšení atraktivity studia optiky reg. č.: CZ.1.07/2.2.00/07.0289 Úvod do programování Lekce 5 Tento projekt je spolufinancován Evropským
Zápis programu v jazyce C#
Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač
Programovanie v jazyku C - to chce dynamiku
CVIČENIE 8/13 (S7) Programovanie v jazyku C - to chce dynamiku About rozdiel medzi statickou a dynamickou alokaciou pamate pre c objekty, spojkove zoznamy Basic knowledge kazda premenna musi mat pocas
- dělají se také pomocí #define - podobné (použitím) funkcím - předpřipravená jsou např. v ctype.h. - jak na vlastní makro:
21.4.2009 Makra - dělají se také pomocí #define - podobné (použitím) funkcím - předpřipravená jsou např. v ctype.h - jak na vlastní makro: #define je_velke(c) ((c) >= 'A' && (c)
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Předmět: Vývoj aplikací Téma: Pole Vyučující: Ing. Milan Káža Třída: EK3 Hodina: 14 Číslo: V/5 Programování v jazyce
2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.
Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv copyright To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího (aby
Programovací jazyk C++ Hodina 1
Programovací jazyk C++ Hodina 1 Používané překladače Bloodshed Dev C++ http://www.bloodshed.net/devcpp.html CodeBlocks http://www.codeblocks.org pokud nemáte již nainstalovaný překladač, stáhněte si instalátor
Základy C++ I. Jan Hnilica Počítačové modelování 18
Základy C++ I 1 Přechod z C na C++ jazyk C++ je nadmnožinou jazyka C z hlediska syntaxe se jedná o velmi podobné jazyky, spolu s dalšími jazyky "céčkovské" rodiny, jako je např. C# každý platný program
Funkce, intuitivní chápání složitosti
Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Funkce, intuitivní
Struktura programu v době běhu
Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů
Strukturu lze funkci předat: (pole[i])+j. switch(výraz) velikost ukazatele
Strukturu lze funkci předat: hodnotou i pomocí ukazatele pouze pomocí ukazatele (reference na strukturu) pouze hodnotou (kopie struktury) (pole[i])+j adresa prvku na souřadnicích i, j adresa i-tého řádku
2 Datové typy v jazyce C
1 Procedurální programování a strukturované programování Charakteristické pro procedurální programování je organizace programu, který řeší daný problém, do bloků (procedur, funkcí, subrutin). Původně jednolitý,
2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
Práce s polem a pamětí
3 Práce s polem a pamětí Inicializace jednorozměrného pole Jednorozměrné pole lze inicializovat přímo v deklaraci. int array[length] = {1, 5, 8, 9; array1d Prvky pole umístíte do složených závorek a oddělíte
Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016
ZPRO cvičení 2 Martin Flusser Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague October 17, 2016 Outline I 1 Outline 2 Proměnné 3 Proměnné - cvičení 4 Funkce 5 Funkce
Dynamická vícerozměrná pole. Základy programování 2 Tomáš Kühr
Dynamická vícerozměrná pole Základy programování 2 Tomáš Kühr Statická pole připomenutí Příklad definice: int polea[2][3]; Nejjednodušší způsob vytvoření pole Pole je statické oba rozměry se zadávají konstantou
Operační systémy. Cvičení 3: Programování v C pod Unixem
Operační systémy Cvičení 3: Programování v C pod Unixem 1 Obsah cvičení Editace zdrojového kódu Překlad zdrojového kódu Základní datové typy, struktura, ukazatel, pole Načtení vstupních dat Poznámka: uvedené
BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky
Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Ukazatele BI-PA1
Programovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
Programování v C++, 2. cvičení
Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule
EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI
EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!
type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;
Vícerozměrné pole type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; M[2,3] := 3145; - počet indexů není omezen (v praxi obvykle nejvýše tři) - více indexů pomalejší přístup k prvku (počítá
ZPRO v "C" Ing. Vít Hanousek. verze 0.3
verze 0.3 Hello World Nejjednoduší program ukazující vypsání textu. #include using namespace std; int main(void) { cout
Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole
Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Příkaz switch Příkaz switch provede příslušnou skupinu příkazů na základě hodnoty proměnné (celočíselné
Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7
Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí
Odvozené a strukturované typy dat
Odvozené a strukturované typy dat Petr Šaloun katedra informatiky FEI VŠB-TU Ostrava 14. listopadu 2011 Petr Šaloun (katedra informatiky FEI VŠB-TU Ostrava) Odvozené a strukturované typy dat 14. listopadu
Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. December 7, 2016
ZPRO cvičení 8 Martin Flusser Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague December 7, 2016 Outline I 1 Outline 2 Dynamické alokování paměti 3 Dynamická alokace
Lekce 19 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C
Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Anotace Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace
4. Typ ukazatel, strukturované datové typy
Učební cíle a kompetence Anotace kapitoly Časová náročnost 4. Typ ukazatel, strukturované datové typy Po prostudování této kapitoly studující pochopí datový typ ukazatel, speciální ukazatelové operátory,
Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016
Preprocesor Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016 Programování v C++, A7B36PJC 4/2016, Lekce 9b https://cw.fel.cvut.cz/wiki/courses/a7b36pjc/start
8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
Základy programování (IZP)
Základy programování (IZP) Osmé počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 20.11.2017,
Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
Úvod do programování - Java. Cvičení č.4
Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení
Jazyk C stručný přehled
Jazyk C stručný přehled J. Zděnek, 2004 Literatura: Herout,P.: Učebnice jazyka C. 3.vyd., Kopp, 2003 Herout,P.: Učebnice jazyka C. 2.díl, Kopp, 2002 Prinz,U.-Prinz,P.: C Pocket Reference. O Reilly, 2002
Pole stručný úvod do začátku, podrobně později - zatím statická pole (ne dynamicky) - číslují se od 0
Pole stručný úvod do začátku, podrobně později - zatím statická pole (ne dynamicky) - číslují se od 0 int policko[100]; // tj. pole je od 0 do 99!!! policko[5] = 7; // pozor je to 6. prvek s indexem 5
PB071 Programování v jazyce C Jaro 2015
Programování v jazyce C Jaro 2015 Argumenty main(), Typový systém, Dynamická alokace Organizační Polosemestrální test Úterý 7. dubna v 10:00 a 11:00 v D1 20 bodů rozdíl mezi E a C Zdroj: http://www.bugemos.com/?node=342
int ii char [16] double dd název adresa / proměnná N = nevyužito xxx xxx xxx N xxx xxx N xxx N
Struktura (union) - struktura a union jsou složené typy, které "v sobě" mohou obsahovat více proměnných - struktura obsahuje v každém okamžiku všechny své proměnné, union obsahuje (=je "aktivní") pouze
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Ukazatele, paměťové třídy, volání funkcí
Ukazatele, paměťové třídy, volání funkcí Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 06 B0B36PRP Procedurální programování Jan Faigl, 2018 B0B36PRP
Řídicí struktury. alg3 1
Řídicí struktury Řídicí struktura je programová konstrukce, která se skládá z dílčích příkazů a předepisuje pro ně způsob provedení Tři druhy řídicích struktur: posloupnost, předepisující postupné provedení
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
Ukazatele a pole. Chceme-li vyplnit celé pole nulami, použijeme prázdný inicializátor: 207 Čárka na konci seznamu inicializátorů
Ukazatele a pole 204 Deklarace jednorozměrného pole s inicializací Chceme-li pole v deklaraci inicializovat, zapíšeme seznam inicializátorů jednotlivých prvků do složených závorek: #define N 5 int A[N]
Bitové operátory a bitová pole. Úvod do programování 2 Tomáš Kühr
Bitové operátory a bitová pole Úvod do programování 2 Tomáš Kühr Bitové operátory Provádějí danou operaci s jednotlivými bity svých operandů Operandy bitových operátorů mohou být pouze celočíselné Vyhodnocení
Více o konstruktorech a destruktorech
Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení
Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky
Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové
Práce s pamětí a předávání parametrů. Úvod do programování 1
Práce s pamětí a předávání parametrů Úvod do programování 1 Motivace Zatím jsme se setkali s následjícími problémy : Proměnná existje / je dostpná jen v blok, kde vznikla Pole existje v blok, kde bylo
PREPROCESOR POKRAČOVÁNÍ
PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,
Programovanie v jazyku C - pole treba poorat...
CVIČENIE 3/13 (SW2) Programovanie v jazyku C - pole treba poorat... PrednaskaB: Operátory, pravidla vyhodnocování PrednaskaZ: Číselné typy, operátory, typové konstrukce, pole a struktury About zadefinovanie
Programovanie v jazyku C - funkcie a makra
CVIČENIE 4/13 (S7) Programovanie v jazyku C - funkcie a makra About co je to funkcia a procedura, rekurzivne funkcie, co je to makro TODO: ŘETĚZCE řetězec je pole znaků zakončené 0 ( \0 má ASCI-kód 0,
Jazyk C++ I. Polymorfismus
Jazyk C++ I Polymorfismus AR 2013/2014 Jazyk C++ I Operátory Co to vůbec jsou operátory? Na co je používáme? AR 2013/2014 Jazyk C++ I 2 Operátory Můžeme si upravit operátory pro vlastní objektové typy?
IUJCE 07/08 Přednáška č. 1
Úvod do předmětu Literatura Záznamy přednášek a vaše poznámky Harbison, S. P., Steele, G. L.: Referenční příručka jazyka C Herout, P.: Učebnice jazyka C Kernighan, B. W., Ritchie, D. M.: The C Programming
3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti
Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti 3. přednáška nalezení největšího prvku, druhého nejvyššího prvku, algoritmus shozeného praporku. Algoritmizace
Objektově orientované programování
10. října 2011 Pragmatické informace Volitelný předmět, zápočet: zápočtový program(s dokumentací), aktivní účast na cvičení(body v CodExu), praktický test, zkouška: zkoušková písemka na objektový návrh
Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář
Vazba (binding) Tabulka symbolů Miroslav Beneš Dušan Kolář vazba = spojení mezi entitou a vlastností okamžik vazby (binding time) při návrhu jazyka při implementaci jazyka během překladu/spojování/zavádění
Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy
Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou
Výrazy, operace, příkazy
Výrazy, operace, příkazy Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Přednášky byly připraveny s pomocí materiálů, které vyrobili Ladislav Vágner, Pavel Strnad Karel Richta, Martin Hořeňovský,
Základy programování (IZP)
Základy programování (IZP) Jedenácté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Gabriela Nečasová, inecasova@fit.vutbr.cz
Základy programování (IZP)
Základy programování (IZP) Deváté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 27.11.2017,
Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory
Jazyk C Program v jazyku C má následující strukturu: Direktivy procesoru Globální definice (platné a známé v celém programu) Funkce Hlavička funkce Tělo funkce je uzavřeno mezi složené závorky { Lokální
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Předmět: Vývoj aplikací Téma: Datové typy Vyučující: Ing. Milan Káža Třída: EK3 Hodina: 5 Číslo: V/5 Programování v jazyce
POČÍTAČE A PROGRAMOVÁNÍ
POČÍTAČE A PROGRAMOVÁNÍ Vícerozměrná statická a dynamická pole, Pole polí Miroslav Vavroušek PPI 08 V1.1 Opakovaní z minulé přednášky Datová pole Jednorozměrná statická datová pole Dynamická datová pole
Ukazatele #2, dynamická alokace paměti
Ukazatele #2, dynamická alokace paměti BI-PA1 Programování a Algoritmizace 1 Miroslav Baĺık, Ladislav Vagner a Josef Vogel Katedra teoretické informatiky a Katedra softwarového inženýrství Fakulta informačních
Dílčí příklady použití jazykových konstrukcí v projektu. Jazyk C Příklady. Pravidla překladu v gmake. Zadání
Dílčí příklady použití jazykových konstrukcí v projektu Jazyk C Příklady Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 10 A0B36PR2 Programování 2 Program
Řídící struktury, if, while, switch
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Řídící struktury, if, while, switch BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky Miroslav Balík Fakulta informačních
int => unsigned int => long => unsigned long => float => double => long double - tj. bude-li:
13.4.2010 Typová konverze - změna jednoho datového typu na jiný - známe dva základní implicitní ("sama od sebe") a explicitní (výslovně vyžádána programátorem) - C je málo přísné na typové kontroly = dokáže
Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) 28. prosince Fakulta elektrotechniky a informatiky Katedra softwarových technologií
9 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 28. prosince 2009 Struktury Struktury heterogenní struktura položky mohou být různých datových typů vystupuje jako jediný objekt