Příklady v jazyku C – část 8. Napište program, který inicializuje 2-rozměrné pole uživatele (5 řádků, 2 sloupce) a naplní ho hodnotami (první sloupec.

Slides:



Advertisements
Podobné prezentace
Standardní knihovní funkce pro práci s textovými řetězci
Advertisements

Tabulkové procesory (MS Excel)
Programování v C jazyku - SEMINÁŘ
Funkce Připomeňme si program pro výpočet faktoriálu:
Přednáška 11 Jiří Šebesta
Základní pojmy v jazyce C
Programování 2 Cvičení 5.
C++ Přednáška 1 Neobjektové rozšíření jazyka Základy vstupu a výstupu Ing. Jiří Kulhánek, kat. 352, VŠB TU Ostrava 2004.
Příkazy Přednáška č. 4. Příkazy (statements)  Příkaz – dílčí krok programu (část kódu – zpravidla jeden řádek)  Program – posloupnost příkazů  Příkazy.
Pole, ukazatele a odkazy
Algoritmy I Cvičení č. 5.
Preprocess Úvod do tvorby funkcí Princip preprocesoringu Direktivy preprocesoru Podmíněný překlad Základy tvorby funkcí Zjednodušený popis principu předávaní.
Cvičení 2 Proměnné(jednoduché a složené) a konstanty První program Zápis výrazů.
Programování v C++ Cvičení.
MS EXCEL Funkce =svyhledat.
Příklady z Matlabu (5) Jednoduché scripty.
Větvení cykly J a v a Začínáme programovat Lucie Žoltá.
Struktury, qsort, mergesort BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií.
Kontingenční tabulky a grafy
Seminář C++ 9. cvičení Šablony Ing. Jan Mikulka. Šablony ► template – vzory, podle kterých může překladač tvořit skupiny podobných tříd nebo funkcí, které.
OSNOVA: a) Řetězce v C b) Funkce stdio.h pro řetězce c) Funkce string.h pro řetězce d) Příklad Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
C – strukturované příkazy
Příklady v jazyku C – část 6
Vypracoval: Ondřej Dvorský Třída: VIII.A
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Alg91 Textové soubory Na rozdíl od jiných typů souborů jsou textové soubory určené pro gramotné lidské oko. Textový soubor je posloupnost znaků členěná.
Vstupy a výstupy znaků a) Terminálový vstup a výstup ( getchar(), putchar() ) Přečtěte znak pomocí systémové funkce getchar() a vypište ho pomocí putchar().
OSNOVA: a)Programování se soubory b)Záloha databáze v souboru c) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování.
Příklady v jazyku C – část 4
Příklady v jazyku C – část 3
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro vstup a výstup 12 Verze
C# - předávání parametrů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B16 Autor Ing. Jiří Kalousek Období vytvoření březen.
Příklady v jazyku C – část 2
C – cyklus while Mgr. Lenka Švancarová.
Napište program v C pro výpočet plochy obdélníka se stranami A=3 a B=2. Výsledek vytiskněte s patřičným komentářem na obrazovku formátovým příkazem printf.
OSNOVA: a) Příkazy pro větvení b) Příkazy pro cykly c) Příkazy pro řízení přenosu d) Příklad Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
Databázové systémy 2 Zkouška – 12:00. Příklad I - Funkce Vytvořte funkci ZK_TRP_TREND(P_ID_TRPASLIKA IN NUMBER, P_DATUM_OD IN VARCHAR2, P_DATUM_DO.
Realloc a qsort examples BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
C – switch Mgr. Lenka Švancarová. switch syntaxe switch (výraz) { case hodnota_1: příkaz(y)_ve_větvi_1; case hodnota_2: příkaz(y)_ve_větvi_2; … default:
Pole Arrays.
Databázové systémy 2 Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
POSLOUPNOST úkol 1_41. ZADÁNÍ Sestavte program, který doplní tabulku nepřímé úměrnosti pro hodnoty proměnné x = 1, …, n. Nepřímá úměrnost je zadána uživatelem.
STRING A UKAZATELE. Co to je řetězec? Řetězec v Javě je samostatný objekt. Je konstantní, co znamená, že jednou vytvořený řetězec nelze změnit. Chceme-li.
C – jak na procedury Mgr. Lenka Švancarová. C – procedury #include int main() { printf("Ahoj\n"); return(0); } #include void pozdrav(void) { printf("Ahoj\n");
DATABÁZOVÉ SYSTÉMY Ing. Roman Danel, Ph.D.
Příklady v jazyku C – část 1. Výstupy pomocí printf. printf(" Tisk textu \n v apostrofech \n ") ; p=10; printf("%d\n", p) ; /* tisk konstanty */ printf("Tisk.
PŘÍKAZ while úkol 1_42.
Databázové systémy 2 Zkouška – 8:00. Příklad I - Funkce Vytvořte funkci ZK_DIFF_MIN_MAX (P_ZAM_ID NUMBER) RETURN VARCHAR2. Funkce může vracet.
Vazby dynamických proměnných,databázové systémy Přednáška č. 10.
Ukazatele, řetězce Přednáška č. 3. Ukazatele  Ukazatel (pointer) – typ o velikosti 4 bajty (v 32bit. systémech) pro uložení adresy objektu na který ukazuje.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Příklady v jazyku C – část 2
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
Příklady v jazyku C – část 2
C – procedury Mgr. Lenka Švancarová.
C – if Mgr. Lenka Švancarová. if vývojový diagram Podmínka Příkaz(y) Podmínka Příkaz(y) Úplné větveníNeúplné větvení ++--
C – cyklus do-while Mgr. Lenka Švancarová.
Základní škola a mateřská škola Bzenec Číslo projektu: CZ.1.07/1.4.00/ Číslo a název šablony klíčové aktivity: III/2: využívání ICT – inovace Vypracoval/a:
Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY.
Vysoká škola ekonomická v Praze :: Jména a příjmení Datum vyhotovení: Bakalářská práce.
Adresování. Proč adresovat Při změně dat Excel přepočítá všechny výpočty, kde se změněné buňky objevily Kopírování vzorců – Usnadnění výpočtů kde se vzorec.
Programování OPERÁTOR SIZEOF, FUNKCE, POLE JAKO PARAMETRY FUNKCÍ ERIK KRÁL.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Algoritmizace a programování
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Otázky a úkoly VY_32_INOVACE_4_3_15_20 Vložení III.   Najdi záložku „vložení“. Vlož tabulku – 3 sloupce, 4 řádky. První řádek označ modrou barvou. Vlož.
Typový příklad 3 – zadání 1
Opakování ze 3. cvičení deklarace proměnných výpis na monitor (výstup)
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Transkript prezentace:

Příklady v jazyku C – část 8

Napište program, který inicializuje 2-rozměrné pole uživatele (5 řádků, 2 sloupce) a naplní ho hodnotami (první sloupec znamená číslo serveru a druhý sloupec počet uživatelů tohoto serveru). Program umožňuje zadat číslo serveru, vyhledá tento server ve výše uvedené tabulce a pak vypíše počet jeho uživatelů: #include int main(void) { int ServerUsers[5][2] = { 1, 14, 2, 28, 3, 19, 4, 8, 5, 15 }; int server; int i; printf("Vloz cislo serveru: "); scanf("%d", &server); /* vyhledej server v tabulce */ for(i=0; i<5; i++) if(server == ServerUsers[i][0]) { printf("Na serveru %d je %d uzivatelu.\n", server,ServerUsers[i][1]); break; } /* pokud server nenalezen v tabulce */ if(i==5) printf("Server nenalezen.\n"); while(!kbhit()); return 0; }

Napište program, který do pole o max. 50 řádkách a 4 sloupcich zapisuje do sloupců 2D-pole údaje: úhel [ o ], sin(úhel [rad]), cos(úhel [rad]), log(úhel [ o ]). Potom pomocí sprintf přepíše 4 údaje do řetězce, vymění v něm tečky za čárky, otevře soubor “export.csv” a přepíše do tohoto souboru. [Převod na radiány=180/PI*úhel realizujte pomocí podprogramu]. Úhel se pohybuje od 90 o do 180 o s krokem 10 o. Současně se zápisem do souboru vypisujte 4 sloupečky čísel na obrazovku : #include #define PI double prevod(double st) { return(PI / * st); } int main() { FILE *soubor; int radky, sloupce, i, j; double pole[50][4], uhel; char retezec[255]; radky = (180-90)/5; sloupce = 4;

suborn = fopen("export.csv", "w"); if (soubor == NULL) { printf("\nNepodarilo se vytvorit soubor..."); return(1); } uhel = 90.0; for (i = 0; i < radky; i++) { pole[ i ][ 0 ] = uhel; pole[ i ][ 1 ] = sin(prevod(uhel)); pole[ i ][ 2 ] = cos(prevod(uhel)); pole[ i ][ 3 ] = log(uhel); /* tisk radky do retezce a vymena tecky za carku */ sprintf( retezec, "%f;%f;%f;%f\n", pole[ i ][ 0 ], pole[ i ][ 1 ], pole[ i ][ 2 ], pole[ i ][ 3 ] ); j = 0; while(retezec[j] != '\n') { if(retezec[j] == '.') retezec[j] = ','; j++; } fprintf(soubor, "%s", retezec); printf( "%f\t%f\t%f\t%f\n", pole[ i ][ 0 ], pole[ i ][ 1 ], pole[ i ][ 2 ], pole[ i ][ 3 ] ); uhel += 5; } if (fclose(soubor) == EOF) { printf("\nNepodarilo se uzavrit soubor..."); return(1); } printf("\nPro ukonceni programu stisknete klavesu..."); while(!kbhit()); return 0; }

Napište program, který inicializuje 2-rozměrné pole velikosti (10 řádků, 3 sloupce) tak, že první prvek každého řádku obsahuje číslo, druhý prvek obsahuje jeho druhou mocninu a třetí prvek obsahuje jeho třetí mocninu: #include int main(void) { int pole[10][3], i; for(i=0; i<10; i++) { pole[ i ][ 1 ] = i ; pole[ i ][ 2 ] = i*i ; pole[ i ][ 1 ] = i*i*i ; } for(i=0; i<10; i++) printf(" %d\t%d \t%d\n“, pole[ i ][ 1 ], pole[ i ][ 2 ], pole[ i ][ 3 ] ); while(!kbhit()); return 0; }

Napište program, který přečte 10 řetězců, které uloží do pole řetězců. Každý řetězec může mít max. 80 znaků. Pole řetězců definujte jako char text[10][80]. Nejprve řetězce načte do pole. Potom v cyklu přečte číslo řetězce (1 až 10) a tento řetězec zobrazí. Přečte-li záporné číslo, pak cyklus ukončí a program je skončen : #include int main(void) { char text[10][80]; int i; for(i=0; i<10; i++) { printf("%d: ", i+1); gets(text[i]); } do { printf("Vloz cislo retezce (1-10) : "); scanf("%d", &i); i--; /* uprav hodnotu, aby odpovidala indexu pole */ if(i>=0 && i<10) printf("%s\n", text[i]); } while(i>=0); return 0; }

Napište program, který realizuje překladač z angličtiny do češtiny : #include char words[][2][40] = { "dog", "Hund", "no", "nein", "year", "Jahr", "child", "Kind", "I", "Ich", "drive", "fahren", "house", "Haus", "to", "zu", "","" }; int main(void) {char english[80]; int i; printf("Vloz anglicke slovo: "); gets(english); /* hledej toto slovo ve slovniku */ i = 0; /* hledej, dokud nanaleznes prazdny retez */ while(strcmp(words[i][0], "")) { if(!strcmp(english, words[i][0])) { printf("Nemecky preklad: %s", words[i][1]); break; } i++; } if(!strcmp(words[i][0], "")) printf("Neni ve slovniku\n"); while(!kbhit()); return 0; }

Napište program, který vypíše řetězcový ekvivalent výčtové konstanty enum transport {auto,vlak,letadlo,autobus} pomocí příkazu switch (výčtové konstanty nejsou řetězce, ale celá čísla). Pro volbu dopravního prostředku se užívá generátor náhodných čísel. #include enum transport { auto1, vlak, letadlo, autobus } tp; int main(void) {printf("Stiskni klavesu pro vyber dopravniho prostredku: "); /* vytvoreni nahodneho cisla pri kazdem spusteni programu */ while(!kbhit()) rand(); getch(); /* precteni a odlozeni znaku */ tp = rand() % 4; printf("%d\n",tp); switch(tp) { case auto1: printf("auto"); break; case vlak: printf("vlak"); break; case letadlo: printf("letadlo"); break; case autobus: printf("autobus"); } while(!kbhit()); return 0; }

Napište program, který vytiskne 1., 2. a 3. prvek desetiprvkoveho 1D-pole jednak přes indexy, jednak přes pointerovou aritmetiku. int main() { int a[10]={10,20,30,40,50,60,70,80,90,100}; int *p_a; int i; p_a = a;/* přiřadí p_a adresu začátku pole a */ printf("Pole a[10]: \n\n"); for (i=0;i<10;i++) printf("a[%d]=%d ",i, a[i]); printf("\n\n"); /* vytiskne adresu pole A */ printf("Adresa pointeru na zacatek pole A (p_a = a) je : %p \n\n",p_a); /* vytiskne prvek přes indexy pole */ printf("a[0]=%d a[1]= %d a[2]= %d \n\n",a[0],a[1],a[2]); /* vytiskne prvek přes pointery */ printf("p_a (p_a+1) (p_a+2) \n"); printf("%p %p %p\n",p_a, (p_a+1), (p_a+2)); printf(" \n\n"); printf("*p_a=%d *(p_a+1)=%d *(p_a+2)=%d \n\n",*p_a, *(p_a+1), *(p_a+2)); while(!kbhit()); return 0; }

Napište program, který pracuje s 2D-maticí jako s 1D (řádky jsou umístěné za sebou), naplní ji hodnotou indexu a poté ji jako dvoudimenzionální vytiskne. #include #define POCET_RADKU 10 #define POCET_SLOUPCU 5 int main() { /* prace s vicedimenzionalnim polem, jako s jednodimenzionalnim */ int i,j, cit=0; int A[ POCET_RADKU ][ POCET_SLOUPCU ], *p_radek; p_radek = A; /* ziskani adresy zacatku pole tj.prvku [0,0] */ /* p_radek = (int *) A; */ /* (pozor na potrebu explicitniho pretypovani u nekterych prekladacu) */ /* p_radek = &A[0][0]; ziskani adresy vektoru adres radku */ /* Adresa zacatku pole: /* ! ! ! ! Pozor A bez indexů = adresa začátku pole A (tj. prvního prvku pole A) */ /* &A[0][0] = adresa 1.prvku pole A (tj. zacatku pole A) */ /* Hodnota 1.prvku pole: */ /* A[0][0] = hodnota 1.prvku pole A */ /* Naplneni 2D pole, (pracujeme s nim ale jako s 1D polem) hodnotou prubezneho indexu */ for ( i=0 ; i < POCET_RADKU*POCET_SLOUPCU ; i++ ) *( p_radek + i ) = i+1;

/* vytisteni 2D pole, indexovaneho jako 2D pole - tj. 2-ma indexy [i,j] */ for ( i=0 ; i < POCET_RADKU ; i++ ) { for ( j=0 ; j < POCET_SLOUPCU ; j++ ) printf("%4d ", A[ i ][ j ]); printf("\n"); } printf("\n \n\n"); /* Naplneni 2D pole, (pracujeme s nim ale jako s 2D polem se 2-ma indexy) */ /* hodnotou prubezneho indexu: */ for ( i = 0 ; i < POCET_RADKU ; i++ ) for ( j = 0 ; j < POCET_SLOUPCU ; j++ ) { /* ADRESACE prvku 2-D pole: /* a) pres pointer na zacatek 2D-pole */ *( p_radek + i*POCET_SLOUPCU + j ) = i; /* b) pres indexy [i,j] tohoto pole */ /* nebo A[ i ][ j ] = i */ /* ladici tisk: */ printf("i = %d\t j = %d\t i * ( POCET_SLOUPCU ) + %d = %2d\t%2d \n", i, j, j, i*POCET_SLOUPCU+j, i ); } printf("\n"); for ( i=0 ; i < POCET_RADKU ; i++ ) { for ( j=0 ; j < POCET_SLOUPCU ; j++ ) printf("%4d ", A[ i ][ j ] ); printf("\n"); } printf("\n"); while(!kbhit()); return 0; }