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.

Slides:



Advertisements
Podobné prezentace
Programování v C jazyku - SEMINÁŘ
Advertisements

Počítače a programování 1 Přednáška 13 Jiří Šebesta.
Přednáška 11 Jiří Šebesta
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.
Třetí cvičení Podmíněné příkazy Cykly Break a Continue Switch Return
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í.
C# pro začátečníky Mgr. Jaromír Osčádal
If-else, do-while, switch, operátory
Algoritmizace a programování
MATLAB® ( část 3 - scripty).
Větvení cykly J a v a Začínáme programovat Lucie Žoltá.
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
Second Conditional – tvar a použití
Příklady v jazyku C – část 6
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
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í.
OSNOVA: a) Úvod do OOPb) Třídy bez metod c) Třídy s metodamid) Konstruktory a destruktory e) Metody constf) Knihovní třídy g) Třídy ve tříděh) Přetížení.
Příklady v jazyku C – část 4
Příklady v jazyku C – část 3
PŘEDNÁŠKA 5 Jiří Šebesta MRAR – Radiolokační a radionavigační systémy
OSNOVA: a) Přetížení členských funkcí b) Dědičnost tříd Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 2 pro obor EST BPC2E.
Příklady v jazyku C – část 2
OSNOVA: a) Preprocesor b) ANSI-C knihovny c) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 1 pro obor EST BPC1E.
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) Úvod a klasifikace b) Funkce main() s argumenty c) Souborový vstup a výstup d) Programování WAV Jiří Šebesta Ústav radioelektroniky, FEKT VUT.
Aplikační počítačové prostředky X15APP MATLAB Katedra elektroenergetiky, Fakulta elektrotechniky ČVUT, Technická 2, Praha 6 Ing. Zbyněk Brettschneider.
OSNOVA: a) Příkazy pro cykly II. b) Příkazy pro řízení přenosu c) Příkazy – příklad d) Řetězce v C e) Funkce “stdio.h“ pro řetězce f) Funkce “string.h“
OSNOVA: a)Funkce – úvod b) Hlavičky funkcí c) Rekurze funkcí d)Knihovny funkcí e)Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
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:
A1PRG - Programování – Seminář Ing. Michal Řízení běhu programu 5 Verze
Začínáme vážně programovat Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů.
PROGRAMOVÁNÍ V PHP PERSONAL HOME PAGES CYKLY V PHP.
C – jak na procedury Mgr. Lenka Švancarová. C – procedury #include int main() { printf("Ahoj\n"); return(0); } #include void pozdrav(void) { printf("Ahoj\n");
OSNOVA: a) Algoritmy třídění b) Třídění dynamických záznamů Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 1 pro obor EST.
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ří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.
OSNOVA: a) Ukazatel b) Pole a ukazatel c) Pole ukazatelů d) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 1 pro.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Příkazy cyklů. Co je to cyklus Jako cyklus označujeme opakované vykonávání určitého bloku příkazů Jako cyklus označujeme opakované vykonávání určitého.
ZÁKLADNÍ POJMY. ZDROJOVÝ TEXT PROGRAMU Tvoří: klíčová slova komentáře identifikátory.
Aplikační počítačové prostředky X15APP MATLAB cvičení 4
Příklady v jazyku C – část 2
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
Příklady v jazyku C – část 2
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část I.
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á.
Young CYBER Lions 2015 INTEGRATED SOCIAL MEDIA CAMPAIGN TEMPLATE of your submission (Do not include this slide into your presentation. Start straight with.
Tutorial: Obchodní akademie Topic: Logical Functions Prepared by: Mgr. Zdeněk Hrdina Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/ je.
Funkce Přednáška č. 5. Funkce (functions)  posloupnost příkazů uvedená hlavičkou  využití – opakovaně volaná sekvence – strukturování programu – ošetření.
Počítače a programování 1 pro obor EST KPC1E TUTORIÁL 2
Výpočet plochy obrazců
Číslo projektuCZ.1.07/1.5.00/ Číslo materiáluVY_32_INOVACE_166 Název školyGymnázium, Tachov, Pionýrská 1370 AutorMgr. Eleonora Klasová PředmětAnglický.
Gymnázium, Brno, Elgartova 3 GE - Vyšší kvalita výuky CZ.1.07/1.5.00/ III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Téma: English Grammar.
Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Datové typy a operátory Základní programové.
Počítače a programování 2
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
Jiří Šafr jiri.safr(AT)seznam.cz Poslední aktualizace 25/6/2014
Programování v jazyce C++
Kurz algoritmizace a programování v jazyce C
Lineární kongruentní generátor
Opakování ze 3. cvičení deklarace proměnných výpis na monitor (výstup)
private var hodnota:number
Lineární kongruentní generátor
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Transkript prezentace:

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 a programování 1 pro obor EST BPC1E PŘEDNÁŠKA 4

Příkazy pro větvení (1/7) if(test) statement; if(test) statement_this; else statement_that; char day = '1'; if(day 57) printf("Not a number\n"); else if(day>48 && day<56) // 1,2,3,…7 printf("Now is the %cth day\n", day); else printf("An invalid day number\n"); Podmíněný příkaz: podmínka - pravdivá - nepravdivá příkaz

Větvení typu if Příkazy pro větvení (2/7)

Větvení typu if - else Příkazy pro větvení (3/7)

Kombinované větvení if – else if – else Příkazy pro větvení (4/7)

Test ? Statement_this : Statement_that; Podmínkový operátor ?: podmínka příkaz pro pravdivost příkaz pro nepravdivost Výběr z větší hodnoty: Příklad: BPC1E_Ex19.c int a, b, c; a = 3; b = 9; c = (a > b) ? a : b; // c = 9 // if (a>b) c = a; // else c = b; Příkazy pro větvení (5/7)

Přepínač swich-case : pro případy, kdy vybíráme z více než dvou možností výraz s výsledkem celočíselné hodnoty switch(value) { case 1 : statement_1; break; case 2 : statement_2; break; case 3 : statement_3; break; case 4 : statement_4; break; default: statement_other; } vystoupení z přepínače - není povinné příkaz vykonaný v případě jakékoli jiné hodnoty value Příkazy pro větvení (6/7)

printf("Which girl should go to the cinema with me?\n"); srand(time(NULL)); switch(rand()%9)// random number from 0 to 8 { case 0: printf("Jana"); break; //if rand()%9 is 0 case 1: printf("Eva"); break; //if rand()%9 is 1 case 2: printf("Klara"); break; //if rand()%9 is 2 case 3: printf("Milena"); break; //if rand()%9 is 3 case 4: printf("Dominika"); break; //if rand()%9 is 4 case 5: printf("Erika"); break; //if rand()%9 is 5 case 6: printf("Petra"); break; //if rand()%9 is 6 case 7: printf("Zuzana"); break; //if rand()%9 is 7 default: printf("alone"); //if rand()%9 is not from 0 to 7, i.e. 8 } Přepínač – příklad Příklad: BPC1E_Ex20.c Příkazy pro větvení (7/7)

Příkazy pro cykly (1/9) Ani jeden parametr není povinný: for( ; ; ) je nekonečná smyčka for(init; test; update) statement; char text[] = "Vjku\"oguucig\"ku\"ugetgv#"; unsigned int n; for(n=0; text[n]!='\0'; n++) // loop for all chars if(text[n]!=' ') // excluding space text[n] -= 2; // character code shift printf("%s\n", text); Cyklus for Příklad: BPC1E_Ex21.c

for Příkazy pro cykly (2/9)

Lichoběžníková aproximace: obsah pro jeden úsek: Příklad - numerická integrace Obecně: Integrál: je součet všech dílčích ploch pro jednotlivé úseky Příkazy pro cykly (3/9)

Výpočet: Příklad - numerická integrace sin(x) pro interval 0 až π Program: #include #define pi int main(void) { double a[101], f[101]; //a = angle, f = func. value int n, i; double sum = 0, step; //step = lenght of interval int start = 3, stop = 100; // max. is 100 Příkazy pro cykly (4/9)

Příklad: BPC1E_Ex22.c for(n=start; n<=stop; n++) { sum = 0; for(i=0; i<=n; i++) { a[i] = 180.0*i/(n*1.0); f[i] = sin(a[i]*pi/180.0); } step = pi/(1.0*n); for(i=0; i<n; i++) sum += f[i]*step + (f[i+1]-f[i])*step/2.0; printf("\nFor %d intervals is integral %10.8f.", n, sum); } return 0; } Příkazy pro cykly (5/9)

while(test) statement; Cyklus while float temp[31]={-1.1,-0.3,-7.6,-2.7,-1.2,-2.6,-3.3, … … 2.4 };//day temperatures in January unsigned int day = 1; while(temp[day–1]<=0) // pass the loop while temp<=0 day++; printf("%d. January temperature ovecomes 0, it was %3.1f deg. C!\n", day, temp[day-1]); return 0; Princip totožný s for (inicializace a inkrementace mimo hlavičku) Příklad: BPC1E_Ex23.c Příkazy pro cykly (6/9)

while Příkazy pro cykly (7/9)

do statement; while(test); int code;// number for password do {printf("Insert access code:\n"); scanf("%d", &code); //number from stdin to variable code } while(code != 12345); // test of proper password printf("\n\nAccess allowed"); printf("\n\nInsert +ENTER for exit"); do//exit after insertion c=getchar(); while (c!=' '); return 0; Cyklus do - while Příklad: BPC1E_Ex24.c Příkazy pro cykly (8/9)

do - while Příkazy pro cykly (9/9)

Příkazy pro přenos řízení (1/3) Použití: – těla cyklů ( for, do, while ) – tělo přepínače ( switch ). Přerušení vykonávaného iteračního cyklu: – break : vystoupení z celého cyklu – continue : pokračování další iterací Příkazy continue a break for/do/while/switch-case {…; if(…) break; if(…) continue; …; }

char c; int code, test, n=3; // n is the number of trials do { printf("Insert access code:\n"); scanf("%d", &code); //number from stdin to variable code n--; //decrementation of the number of trials test=(code == 12345); // test of proper password ”12345” if((test==0)&&(n==0))break; // if no proper // code and 3 trials done - acces denied } while(!test); // in test is info about access, // 0 means denied, 1 means allowed break – př. test vstupního hesla s omezeným počtem testů Příklad: BPC1E_Ex25.c Příkazy pro přenos řízení (2/3)

int num; //input number int test, n, m=0; printf("Input number:"); scanf("%d", &num); //number from stdin to variable num for(n=2; n<=100; n++) //loop for n from 2 to 100 { test = (num%n==0); //test if n is divider if(!test) continue; //if not, next n printf("\n%d", n); //if yes, print n m++; //number of dividers – incr. } printf("Number of dividers: %d\n", m); continue – př. hledání dělitelů Příklad: BPC1E_Ex26.c Příkazy pro přenos řízení (3/3)

Sestavte program pro simulaci dopravní situace. Ze simulované světelné křižovatky (jeden příjezd) odjede každou minutu rcars automobilů, v proměnné wcars je počáteční stav čekajících aut, v poli ncars je uveden počet aut, které každou minutu přijedou ke křižovatce a v proměnné mcars je maximální počet aut čekajících před křižovatkou, aniž by došlo ke kolapsu (auta by zůstali stát v předcházející křižovatce). V proměnných hours a mins je aktuální čas počátku simulace. Simulátor nechť zobrazuje graficky i číselně stav aut stojících před křižovatkou a současně určuje, zda nedošlo ke kolapsu a nebo kdy došlo ke kolapsu. Příklad (1/4) int main() { int rcars = 10; int wcars = 5; int ncars[30] = {7, 8, 8, 9, … 5, 6};

Příklad (2/4) int mcars=95; int hours=7; //start at 7:50 int mins=50; int inc=30; int i, j; for(i=0; i<inc; i++) { wcars+=ncars[i]-rcars; if(wcars<0) wcars=0; mins++; if(mins==60) { mins=0; hours++; if(hours==24) hours=0; }

Příklad (3/4) if(mins>=10) printf("%d:%d ", hours, mins); else printf("%d:0%d ", hours, mins); for(j=0; j<wcars; j++) printf("%c", 219); printf(" %d\n", wcars); if(wcars>mcars) { printf("Traffic breakdown arises at %d:%d.\n", hours, mins); break; } if(wcars<=mcars) printf("Traffic breakdown will not arise.\n"); return 0; }

Příklad (4/4) Výstup dopravní simulace: Příklad: BPC1E_Ex27.c

Téma následující přednášky DĚKUJI ZA POZORNOST – Řetězce – Funkce stdio.h pro řetězce – Funkce string.h pro řetězce – Příklady