Základy algoritmizace a programování



Podobné dokumenty
Základy algoritmizace a programování

Úvod do programování. Lekce 1

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Rekapitulace Funkce Pole. Funkce a Pole. Základy algoritmizace a programování. Přednáška 12. října 2011 ZAPG

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr)

Algoritmizace a programování

Řešení sady 1. Úvod do programování 1 Tomáš Kühr

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

Lekce 01 Úvod do algoritmizace

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

Algoritmizace a programování

Sada 1 - Základy programování

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Číslo hodiny. Označení materiálu. 1. Mnohočleny. 25. Zlomky. 26. Opakování učiva 7. ročníku. 27. Druhá mocnina, odmocnina, Pythagorova věta

2 Datové typy v jazyce C

CHARAKTERISTIKA. VZDĚLÁVACÍ OBLAST VYUČOVACÍ PŘEDMĚT ZODPOVÍDÁ VOLITELNÉ PŘEDMĚTY Seminář z matematiky Mgr. Dana Rauchová

MATEMATIKA 5. TŘÍDA. C) Tabulky, grafy, diagramy 1 - Tabulky, doplnění řady čísel podle závislosti 2 - Grafy, jízní řády 3 - Magické čtverce

Algoritmizace prostorových úloh

volitelný předmět ročník zodpovídá PŘÍPRAVA NA PŘIJÍMACÍ ZKOUŠKY Z MATEMATIKY 9. MACASOVÁ

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Základy jazyka C. Základy programování 1 Tomáš Kühr

Racionální čísla, operátory, výrazy, knihovní funkce

Úvod do programování. Lekce 3

Zápis programu v jazyce C#

Matematika - 6. ročník Očekávané výstupy z RVP Učivo Přesahy a vazby desetinná čísla. - zobrazení na číselné ose

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Racionální čísla, operátory, výrazy, knihovní funkce

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Operační systémy. Cvičení 4: Programování v C pod Unixem

Inovace bakalářského studijního oboru Aplikovaná chemie

Úvod do programovacích jazyků (Java)

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

Algoritmizace prostorových úloh

TEMATICKÝ PLÁN. září říjen

MATURITNÍ TÉMATA Z MATEMATIKY

Matematika. 8. ročník. Číslo a proměnná druhá mocnina a odmocnina (využití LEGO EV3) mocniny s přirozeným mocnitelem. výrazy s proměnnou

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Vyučovací předmět: CVIČENÍ Z MATEMATIKY. A. Charakteristika vyučovacího předmětu.

- čte a zapisuje desetinná čísla MDV kritické čtení a - zaokrouhluje, porovnává. - aritmetický průměr

Operační systémy. Cvičení 3: Programování v C pod Unixem

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Pro čísla platí: 2*2

Projekt OPVK - CZ.1.07/1.1.00/ Matematika pro všechny. Univerzita Palackého v Olomouci

osobnostní rozvoj cvičení pozornosti,vnímaní a soustředění při řešení příkladů,, řešení problémů

- jak udělat konstantu long int: L long velka = 78L;

Vyučovací předmět: Matematika Ročník: 7.

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Matematika Název Ročník Autor

IUJCE 07/08 Přednáška č. 1

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

vzdělávací oblast vyučovací předmět ročník zodpovídá MATEMATIKA A JEJÍ APLIKACE MATEMATIKA 8. MARKUP Druhá mocnina a odmocnina FY Tabulky, kalkulátor

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Jednoduché příkazy jazyka Pascal

Programovací jazyk Pascal

Formátové specifikace formátovací řetězce

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

ZŠ ÚnO, Bratří Čapků 1332

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Předmět: MATEMATIKA Ročník: 6.

GEODETICKÉ VÝPOČTY I.

ZŠ ÚnO, Bratří Čapků 1332

Základní škola Náchod Plhov: ŠVP Klíče k životu

Základní škola Blansko, Erbenova 13 IČO

Algoritmizace a programování

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Matematika. ochrana životního prostředí analytická chemie chemická technologie Forma vzdělávání:

NPRG030 Programování I, 2018/19 1 / :25:37

TROJÚHELNÍK 180. Definice. C neleží v přímce. Potom trojúhelníkem ABC nazveme průnik polorovin ABC, BCA, Nechť body. Viz příloha: obecny_trojuhelnik

Matematika - 6. ročník Vzdělávací obsah

Témata absolventského klání z matematiky :

Paměť počítače. alg2 1

Operátory. Základy programování 1 Tomáš Kühr

Učební plán 4. letého studia předmětu matematiky. Učební plán 6. letého studia předmětu matematiky

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr)

CVIČNÝ TEST 10. OBSAH I. Cvičný test 2. Mgr. Renáta Koubková. II. Autorské řešení 6 III. Klíč 17 IV. Záznamový list 19

Mgr. Ladislav Zemánek Maturitní okruhy Matematika Obor reálných čísel

Učivo obsah. Druhá mocnina a odmocnina Druhá mocnina a odmocnina Třetí mocnina a odmocnina Kružnice a kruh

Programovací jazyk C++ Hodina 1

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

Práce s kalkulátorem

Cvičné texty ke státní maturitě z matematiky

- vyučuje se: v 6. a 8. ročníku 4 hodiny týdně v 7. a 9. ročníku 5 hodin týdně - je realizována v rámci vzdělávací oblasti Matematika a její aplikace

1.1.3 Práce s kalkulátorem

v z t sin ψ = Po úpravě dostaneme: sin ψ = v z v p v p v p 0 sin ϕ 1, 0 < v z sin ϕ < 1.

Úvod Petr Kropík viz:

KTE / PPEL Počítačová podpora v elektrotechnice

Svobodná chebská škola, základní škola a gymnázium s.r.o. Trojúhelník III. konstrukce trojúhelníku. Astaloš Dušan. frontální, fixační

M - 2. stupeň. Matematika a její aplikace Školní výstupy Žák by měl

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Jazyk C++, některá rozšíření oproti C

volitelný předmět ročník zodpovídá CVIČENÍ Z MATEMATIKY 8. MACASOVÁ Učivo obsah

c) nelze-li rovnici upravit na stejný základ, logaritmujeme obě strany rovnice

INTERNETOVÉ ZKOUŠKY NANEČISTO - VŠE: UKÁZKOVÁ PRÁCE

Matematika - 6. ročník

M - Pythagorova věta, Eukleidovy věty

Objektově orientované programování

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

SBÍRKA ÚLOH I. Základní poznatky Teorie množin. Kniha Kapitola Podkapitola Opakování ze ZŠ Co se hodí si zapamatovat. Přírozená čísla.

Transkript:

Základy algoritmizace a programování Přednáška 1 Olga Majlingová Katedra matematiky, ČVUT v Praze 19. září 2011

Obsah Úvodní informace 1 Úvodní informace 2 3 4

Doporučená literatura web: http://marian.fsik.cvut.cz/zapg Resumé přednášek, informace k předmětu, aktuální informace... Herout, P.:Učebnice jazyka C Kernighan, B.W., Ritchie, D.M. Programovací jazyk C web: http://olga.majling.eu tyto prezentace, příklady a jiné

Cíle předmětu být schopen číst a psát jednoduché programy v C rozumět základním konstrukcím jayzka C a umět je použít

Klasifikovaný zápočet Podmínky udělení zápočtu: Bodované odevzdané příklady : maximální zisk Z bodů, student získal Q bodů. hodnocení E : 50% Z Q < 60 % Z hodnocení D : 60% Z Q < 70 % Z hodnocení C : 70% Z Q < 80 % Z hodnocení B : 80% Z Q < 90 % Z hodnocení A : 90% Z Q < 100 % Z

Organizace předmětu 1. 3. Základní konstrukce C 4. Numerické algoritmy 5. 6. Zápočtové příklady.

Algoritmus Úvodní informace Úloha Algoritmus chápeme jako přesný postup, kterým lze vyřešit daný typ úlohy.

Algoritmus Úvodní informace Vstupní data Úloha Výsledek Algoritmus chápeme jako přesný postup, kterým lze vyřešit daný typ úlohy.

Algoritmus Úvodní informace Vstupní data Úloha Výsledek Algoritmus chápeme jako přesný postup, kterým lze vyřešit daný typ úlohy. jednoznačnost

Algoritmus Úvodní informace Vstupní data Úloha Výsledek Algoritmus chápeme jako přesný postup, kterým lze vyřešit daný typ úlohy. jednoznačnost konečnost

Algoritmizace a programování Přípravu programu obvykle dělíme na dvě etapy: Algoritmizace V průběhu analýzy úlohy nebo po jejím ukončení sestavíme algoritmus řešení, který můžeme znázornit např. graficky, např. ve formě vývojového diagramu. Programování Podle zápisu algoritmu sestavíme program v programovacím jazyku.

algoritmus

algoritmus editor

algoritmus editor překladač

algoritmus editor překladač gramatika

algoritmus editor překladač linker gramatika

algoritmus editor překladač linker gramatika funkce

algoritmus editor překladač linker OS gramatika funkce

algoritmus myšlenka editor překladač linker OS gramatika funkce

Úvodní informace Zápis programu: prostý textový soubor (ASCII)

Úvodní informace Zápis programu: prostý textový soubor (ASCII) mezery, tabulátory,... překladač ignoruje mezery a tabulátory slouží ke zvýšení čitelnosti nešetřit mezerami!

Úvodní informace Zápis programu: prostý textový soubor (ASCII) mezery, tabulátory,... překladač ignoruje mezery a tabulátory slouží ke zvýšení čitelnosti nešetřit mezerami! příkazy se ukončují středníkem

Úvodní informace Zápis programu: prostý textový soubor (ASCII) mezery, tabulátory,... překladač ignoruje mezery a tabulátory slouží ke zvýšení čitelnosti nešetřit mezerami! příkazy se ukončují středníkem IDENTIFIKÁTORY (jména) : pouze aa..zz, _, číslice 0..9 nesmí začínat číslicí

Úvodní informace Zápis programu: prostý textový soubor (ASCII) mezery, tabulátory,... překladač ignoruje mezery a tabulátory slouží ke zvýšení čitelnosti nešetřit mezerami! příkazy se ukončují středníkem IDENTIFIKÁTORY (jména) : pouze aa..zz, _, číslice 0..9 nesmí začínat číslicí rozlišují se velká a malá písmena!!! (id, Id, ID jsou 3 různé identifikátory)

Úvodní informace Zápis programu: prostý textový soubor (ASCII) mezery, tabulátory,... překladač ignoruje mezery a tabulátory slouží ke zvýšení čitelnosti nešetřit mezerami! příkazy se ukončují středníkem IDENTIFIKÁTORY (jména) : pouze aa..zz, _, číslice 0..9 nesmí začínat číslicí rozlišují se velká a malá písmena!!! (id, Id, ID jsou 3 různé identifikátory) všechna klíčová slova a názvy funkcí ze standardní knihovny jsou malými písmeny

Nejjednodušší program main() {}

Nejjednodušší program main() {} o trochu větší: int main() { return 0 ;}

Program, který umí psát #include<stdio.h> main() { printf("hello world!"); }

Program, který umí psát #include<stdio.h> main() { printf("hello world!"); } knihovna funkcí

Program, který umí psát #include<stdio.h> knihovna funkcí main() hlavička funkce main { začátek funkce main printf("hello world!"); } konec funkce main

Program, který umí psát #include<stdio.h> knihovna funkcí main() hlavička funkce main { začátek funkce main printf("hello world!"); tisk } konec funkce main

Program, který umí psát #include<stdio.h> knihovna funkcí main() hlavička funkce main { začátek funkce main printf("hello world!"); tisk } konec funkce main #include<stdio.h> main() { fprintf(stdout, "Hello world!"); }

Program, který umí psát #include<stdio.h> knihovna funkcí main() hlavička funkce main { začátek funkce main printf("hello world!"); tisk } konec funkce main #include<stdio.h> main() { fprintf(stdout, "Hello world!"); } tisk

Data: konstanty Konstanty: hodnoty, které se v průběhu výpočtu nemění. Např. čísla... 1, 1.2, 2.718281828 nebo pojmenované konstanty (π)

Data: konstanty Konstanty: hodnoty, které se v průběhu výpočtu nemění. Např. čísla... 1, 1.2, 2.718281828 nebo pojmenované konstanty (π) v programu : pojmenované konstanty: na začátku: #define jméno hodnota #define mojepi 3.14159256

Data: konstanty Konstanty: hodnoty, které se v průběhu výpočtu nemění. Např. čísla... 1, 1.2, 2.718281828 nebo pojmenované konstanty (π) v programu : pojmenované konstanty: na začátku: #define jméno hodnota #define mojepi 3.14159256 čísla : celá (BEZ desetinné části): 10, -21,... reálná (s desetinnou tečkou): 3.12, 2E-1, -0.45,...

Data: proměnné Proměnné:pamět ová místa, označená jménem proměnné (identifikátorem)

Data: proměnné Proměnné:pamět ová místa, označená jménem proměnné (identifikátorem) jednoduché: kam se vejde jedna hodnota. v:

Data: proměnné Proměnné:pamět ová místa, označená jménem proměnné (identifikátorem) jednoduché: kam se vejde jedna hodnota. v: složené: kam se vejde několik hodnot. p:

Data: proměnné Proměnné:pamět ová místa, označená jménem proměnné (identifikátorem) jednoduché: kam se vejde jedna hodnota. v: složené: kam se vejde několik hodnot. p: V programu proměnné musíme deklarovat: TYP jméno1, jméno2; TYP proměnné určuje množinu přípustných hodnot a operací. typy jednoduchých proměnných (např).: int, float, double, char int a, b; float c;

Data: proměnné Proměnné:pamět ová místa, označená jménem proměnné (identifikátorem) jednoduché: kam se vejde jedna hodnota. v: složené: kam se vejde několik hodnot. p: V programu proměnné musíme deklarovat: TYP jméno1, jméno2; TYP proměnné určuje množinu přípustných hodnot a operací. typy jednoduchých proměnných (např).: int, float, double, char int a, b; float c; složené: (např. pole): TYP jméno [počet] int a[2]; float c [10];

Zápis aritmetických výrazů Aritmetické výrazy: sčítání + odčítání - násobení dělení / POZOR: celočíselné nebo reálné zbytek po dělení % POZOR: pouze pro celočíselné umocňování... NENÍ! ZLKY! a/b*c nebo a/(b*c)! a=5*3-12%4; b = 1/3*3; c=1/3*3;

Použtí matematických funkcí ve výrazech MATEMATICKÁ KNIHOVNA: #include<math.h> mocnina: odmocnina: goniometrické: inverzní: logaritmy: e x : pow(co, na_ kolikátou); sqrt(x); sin(x); cos(x); tan(x); asin(x); acos(x); atan(x); log(x); log10(x); exp(x);

Přiřazení Úvodní informace PRĚNNÁ = VÝRAZ ; Do proměnné se uloží hodnota výrazu. Předcházející hodnota se novou hodnotou přepíše. int a, b, c; a = 5; b = 2; c = 3; a = a + b ; b = a - b ; a = a - b ; c = c + 1; a = c ; a = b ; c = a ; b = c ; c = a ;

Načítání a výpis hodnot ČTENÍ: scanf("formáty", kam); fscanf(stdin, "formát", kam); VÝPIS: printf("formáty", co); fprintf(stdout, "formát", co); formáty: int: %d, float: %f, double: %lf, char: %c ČTENÍ: kam: & jméno VÝPIS: kam: jméno

Program, který umí číst a psát # include<stdio.h> main() { }

Program, který umí číst a psát # include<stdio.h> main() { int a; float x; }

Program, který umí číst a psát # include<stdio.h> main() { int a; float x; printf("zadejte celé číslo!"); scanf("%d",&a); }

Program, který umí číst a psát # include<stdio.h> main() { int a; float x; printf("zadejte celé číslo!"); scanf("%d",&a); printf("zadejte reálné číslo!"); scanf("%f",&x); }

Program, který umí číst a psát # include<stdio.h> main() { int a; float x; printf("zadejte celé číslo!"); scanf("%d",&a); printf("zadejte reálné číslo!"); scanf("%f",&x); printf("zadali jste %d a %f", a, f); }

Program, který umí číst a psát # include<stdio.h> main() { int a; float x; printf("zadejte celé číslo!"); scanf("%d",&a); printf("zadejte reálné číslo!"); scanf("%f",&x); printf("zadali jste %d a %f", a, f); printf("zadejte 1 celé a 1 reálné číslo!"); scanf("%d%f",&a,&x); printf("zadali jste %d a %5.3f", a, f); }

Prográmek pro výpočet obsahů a obvodů # include<stdio.h> # include<math.h> main() { float a,b,o_c,s, o; printf("zadejte stranu ctverce"); scanf("%f",&a); o_c = 4 a; S=pow(a,2); printf("ctverec:o=%5.3f, S=%6.4f",o_c,S); printf("zadejte strany obdelnika"); scanf("%f%f",&a,&b); o = (a+b) 2 ; printf("obdelnik o=%6.4f,s=%5.3f" o,a b); }

Úloha trojúhelník Jsou dána 3 čísla, která mají význam: délek 3 stran trojúhelníka (sss) délek 2 stran a velikosti úhlu jimi sevřeného (sus) délky strany a velikosti přilehlých 2 úhlů (usu) Napište program, ve kterém budou určeny zbývající strany a úhly, výšky, obvod, obsah, poloměr kružnice opsané a poloměr kružnice vepsané.

Potřebujeme vzorečky Vzorce pro obecný trojúhelník obvod o = a + b + c obsah S = a va 2 S = 1 2ab sin γ o S = 2 ( o 2 a)( o 2 b)( o 2 c) poloměr kružnice opsané r = abc 4S r = a 2 sin α poloměr kružnice vepsané ρ = 2S o kosinová věta a 2 = b 2 + c 2 2bc cos α a sinová věta sin α = b sin β = c sin γ = 2r Převod stupňů na radiány a naopak:(π radiánů = 180 stupňů) a stupňů = a 180 π radiánů b radiánů = x π 180 stupňů.

Etapy řešení: Úvodní informace 1 Program pracuje pouze s údaji, ze kterých lze trojúhelník sestrojit. 2 Program provádí kontrolu vstupních dat. 3 Program nabízí výběr úlohy. 4 Program opakovaně nabízí výběr úlohy.

Etapy řešení: Úvodní informace 1 Program pracuje pouze s údaji, ze kterých lze trojúhelník sestrojit. Postup řešení: Deklarujeme proměnné (a,b,c,alpha, beta, gamma, v_a,v_b,v_c, S,o,r, rho) Zadáme vstupní data Vypočteme Vytiskneme výsledky 2 Program provádí kontrolu vstupních dat. 3 Program nabízí výběr úlohy. 4 Program opakovaně nabízí výběr úlohy.

Etapa 1: Výpočet podle vzorců sss 1 přečteme hodnoty a,b,c 2 z kosinové věty vyjádříme úhly ( b 2 + c 2 a 2 ) ( a 2 + c 2 b 2 ) α = arccos β = arccos 2bc 2ac ( a 2 + b 2 c 2 ) γ = arccos 2ab 3 vypočteme obvod o = a + b + c a obsah o S = 2 ( o 2 a)( o 2 b)( o 2 c) 4 vypočteme výšky v a = 2S a, v b = 2S b, v c = 2S c 5 vypočteme polomě ry kružnic : opsané: r = abc 4S a vepsané: ρ = 2S o

sus 1 přečteme hodnoty a,b,gamma 2 z kosinové věty vyjádříme stranu c a úhly α, β. usu c = a 2 + b 2 2ab cos γ ( b 2 + c 2 a 2 ) ( a 2 + c 2 b 2 ) α = arccos β = arccos 2bc 2ac 3 Ostatní vypočteme stejně jako pro úlohu sss. 1 přečteme hodnoty a,beta,gamma 2 dopočítáme úhel α = π β γ 3 ze sinové věty vyjádříme strany b a c. b = a sin β sin α c = a sin γ sin α 4 Ostatní vypočteme stejně jako pro úlohu sss.

Dále... Úvodní informace Na příští přednášce: Logické výrazy Větvení (příkazy if - else, switch) Cykly