Standardní knihovní funkce: matematika a datum a čas

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

Standardní knihovní funkce pro práci s textovými řetězci
Programování v C jazyku - SEMINÁŘ
Počítače a programování 1 Přednáška 13 Jiří Šebesta.
Vlastní skript může být umístěn: v hlavičce stránky v těle stránky
Tabulkové procesory (MS Excel)
(Matrix Laboratory) MATLAB® (Matrix Laboratory)
Programování funkcí v Excelu
Timer časovač potřebuji provádět příkazy opakovaně po uplynutí určitého časového intervalu vlastnost Interval nastavuji v milisekundách (1000  1s) určuje.
MS Excel - funkce Břetislav Regner PROJEKT financovaný
Datum a čas Pro práci s datem a časem se používají dvě hlavní funkce.
Racionální čísla, operátory, výrazy, knihovní funkce
Základní pojmy v jazyce C
A1PRG - Programování - seminář Ing. Michal Organizační informace 0 Verze
Algoritmy I Cvičení č. 2. Cíl hodiny Datové typy a přetypování (int, float, double, bool, char, long, short) Konstanty – Celočíselné Desítkové – 15, 0,
Programování v Pascalu Přednáška 8
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í.
Algoritmizace a programování
Skriptový jazyk, který se používá při tvorbě stránek.
Vektorové a maticové operace, soustava lineárních rovnic
Operátory (1. část) 3 A1PRG - Programování – Seminář
Datové typy 6 A1PRG - Programování – Seminář
Práce se soubory. * soubory patří k základním datovým prvkům v počítači * převážná většina programovacích jazyků má podporu určité formy práce se soubory.
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
Střední škola Oselce Škola: SŠ Oselce, Oselce 1, Nepomuk, Projekt: Registrační číslo: CZ.1.07/1.5.00/ Název: Modernizace.
Náhoda, generátory náhodných čísel
MATLAB LEKCE 1.
Prezentace produktu Microsoft Excel. ČAS Vrátí číslo, které představuje určitý čas. Toto číslo vrácené funkcí ČAS je desetinné číslo v rozmezí od 0 do.
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
Kreslič grafů Program vykresluje grafy funkcí, zadaných analyticky.
Návrh a tvorba WWW Přednáška 7 Pokročilá práce s PHP.
Seminář C cvičení Obsluha výjimek Ing. Jan Mikulka.
Příklady v jazyku C – část 6
Návrh a tvorba WWW Přednáška 11
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
MS Excel Funkce 1. Příklad logické funkce: KDYŽ 2. MATEMATICKÉ FUNKCE 3. LOGICKÉ FUNKCE 4. TEXTOVÉ FUNKCE 5. STATISTICKÉ FUNKCE.
Střední škola Oselce Škola: SŠ Oselce, Oselce 1, Nepomuk, Projekt: Registrační číslo: CZ.1.07/1.5.00/ Název: Modernizace.
Informatika I 4. přednáška
Cvičení.
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í.
Datové typy a struktury
Příklady v jazyku C – část 3
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro vstup a výstup 12 Verze
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.
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.
A1PRG - Programování – Seminář Ing. Michal Řízení běhu programu 5 Verze
C – jak na procedury Mgr. Lenka Švancarová. C – procedury #include int main() { printf("Ahoj\n"); return(0); } #include void pozdrav(void) { printf("Ahoj\n");
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.
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.
C – procedury Mgr. Lenka Švancarová.
Fce VB - matematické Abs( výraz ) Fix( výraz ) Int( výraz) Sgn(výraz )
Hotelová škola, Obchodní akademie a Střední průmyslová škola Teplice, Benešovo náměstí 1, p.o. Tematický celek: Microsoft Excel Kód a název materiálu:
Funkce Přednáška č. 5. Funkce (functions)  posloupnost příkazů uvedená hlavičkou  využití – opakovaně volaná sekvence – strukturování programu – ošetření.
Než začneme programovat Co lze v MALATBu dělat, aniž musíme napsat program. © Leonard Walletzký, ESF MU, 2000.
Algoritmizace a programování Aritmetické, Relační a Logické operátory, Knihovny.
Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY.
Programování OPERÁTOR SIZEOF, FUNKCE, POLE JAKO PARAMETRY FUNKCÍ ERIK KRÁL.
Algoritmizace a programování
Vzorové řešení zápočtového testu
Programovací jazyk C Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Funkce výstupu (2) Funkce printf: deklarována v: stdio.h
Řetězce (24) Funkce strchr: deklarována v: string.h
Řetězce (1) Řetězec (string) je posloupnost znaků (hod-not typu char)
PŘEVODY JEDNOTEK ČASU 60 minut 60 sekund 1 hodina 1 minuta 1 h 1 min
Transkript prezentace:

Standardní knihovní funkce: matematika a datum a čas Verze 2009.01 Standardní knihovní funkce: matematika a datum a čas 14 A1PRG - Programování – Seminář Ing. Michal Heczko heczko@fai.utb.cz

Agenda Matematické funkce Datum a čas Generátor náhodných čísel

Matematické funkce Hlavičkový soubor math.h Parametry funkci typu double

Goniometrické funkce Nutno použít velikost úhlu v radiánech ! sin(x) Popis sin(x) Sinus x cos(x) Kosinus x tan(x) Tangens x asin(x) Arkussinus x acos(x) Arkuskosinus x atan(x) Arkustangens x atan2(x,y) Arkustangens x/y sinh(x) Hyperbolický sinus x cosh(x) Hyperbolický kosinus x tanh(x) Hyperbolický tangens x

Zaokrouhlování ceil(x) floor(x) Funkce Popis Zaokrouhlení na celé číslo nahoru floor(x) Zaokrouhlení na celé číslo dolů

Zaokrouhlování Omezení: Nutnost zaokrouhlení pouze na jednotky Př.: Zaokrouhlení na 3 desetinná místa x = floor(y*1000)/1000; Zaokrouhlení pouze nahoru nebo pouze dolů => nemožnost zaokrouhlit podle matematických pravidel Př.: Zaokrouhlení dle matematických pravidel x = floor(y+0.5);

Exponenciální funkce, logaritmus, mocniny Pozn.: Třetí a vyšší odmocnina: např. pow(x,1.0/3.0); Funkce Popis exp(x) ex log(x) ln x log10(x) log x pow(x,y) xy sqrt(x) Druhá odmocnina z x

Další matematické funkce Popis fabs(x) Absolutní hodnota ldexp(x,n) x*2n frexp(x,exp) Rozdělí číslo na mantisu a mocninu 2 Pozn. exp … adresa proměnné, do které má být uložen exponent mocniny modf(x,n) Rozdělí číslo na celou a desetinnou část Pozn. N … adresa proměnné, do které má být uložena celá část fmod(x,y) Reálný zbytek po dělení x/y

Další matematické funkce Příklad použití funkce modf(): double g, f; f = modf(-3.14, &g); printf(″%f | %f″, f, g); // vypíše: -3.000000 | -0.140000

Generování náhodných čísel Knihovna stdlib.h Možno generovat celá náhodná čísla s rovnoměrným rozdělením Pseudonáhodný generátor – bez inicializace generuje stejnou posloupnost po každém spuštění Funkce: void srand(unsigned int seed) - inicializace int rand() - generování

Generování náhodných čísel Příklad: int cislo; srand((unsigned int) time(NULL)); cislo = (rand() % MAX); printf("Nahodne cislo:\t%d", cislo);

Datum a čas Hlavičkový soubor time.h Důležité datové typy a konstanty (1. část): CLK_TCK … konstanta … počet procesorových tiků za sekundu, v dnešní době se již nepoužívá clock_t … čtyřbytové celé znaménkové číslo (long) sloužící pro funkci clock()

Datum a čas Hlavičkový soubor time.h Důležité datové typy a konstanty (2. část): time_t … čtyřbytové celé znaménkové číslo (long) sloužící pro ostatní funkce z time.h tm … struktura pro uložení jednotlivých složek času

Datum a čas Položky struktury tm: int tm_sec … sekundy po minutě (0 – 59) int tm_min … minuty po hodině int tm_hour … hodiny od půlnoci (0 – 23) int tm_isdst … příznak letního času (0 – normální čas, >0 – letní čas, <0 – nelze určit)

Datum a čas Položky struktury tm: int tm_mday … den v měsíci (1 – 31) int tm_mon … měsíc od ledna (0 – 11) int tm_year … rok od 1900 (1900 – 2038) int tm_wday … den od neděle (0 - 6) int tm_yday … počet dnů od 1. ledna (0 - 366)

Datum a čas Funkce clock() clock_t clock ( void ); Návratová hodnota: počet tiků procesoru Syntaxe: clock_t clock ( void ); Využití: Zjištění doby trvání programu – dnes se však nepoužívá kvůli nepřesnosti

Datum a čas Příklad použití funkce clock(): #include <stdio.h> #include <time.h> void wait ( int seconds ) { clock_t endwait; endwait = clock () + seconds * CLOCKS_PER_SEC ; while (clock() < endwait) {} } int main () { int n; printf ("Starting countdown...\n"); for (n=10; n>0; n--) { printf ("%d\n",n); wait (1); return 0;

Datum a čas Funkce time() time_t time ( time_t * timer ); Návratová hodnota: počet sekund od 1. 1. 1970 Syntaxe: time_t time ( time_t * timer ); Parametr: Ukazatel na objekt typu time_t, do kterého je uložena hodnota času. Možno použít NULL a hodnota času bude pouze v návratové hodnotě

Datum a čas #include <stdio.h> #include <time.h> int main () { time_t seconds; seconds = time (NULL); printf ("%ld hodin od 1. 1. 1970", seconds/3600); return 0; }

Datum a čas Funkce difftime() Návratová hodnota: Rozdíl dvou časových údajů v sekundách Syntaxe: double difftime ( time_t time2, time_t time1 ); Parametry 2 časové údaje datového typu time_t Využití: Přibližné měření času

Datum a čas Funkce localtime() Na základě hodnoty typu time_m vytvoří strukturu tm pro místní časovou zónu Návratová hodnota: Ukazatel na strukturu tm Syntaxe: struct tm * localtime ( const time_t * timer );

Datum a čas Funkce gmtime() Na základě hodnoty typu time_m vytvoří strukturu tm pro časovou zónu UTC Návratová hodnota: Ukazatel na strukturu tm Syntaxe: struct tm * gmtime( const time_t * timer );

Datum a čas Funkce asctime() Na základě hodnoty typu tm vytvoří řetězec ve formátu Sat May 20 15:21:51 2000 Návratová hodnota: Ukazatel na řetězec Syntaxe: char * asctime ( const struct tm * timeptr );

Datum a čas Funkce ctime() char * ctime ( const time_t * timer ); Na základě hodnoty typu time_m vytvoří řetězec ve formátu Sat May 20 15:21:51 2000 Návratová hodnota: Ukazatel na řetězec Syntaxe: char * ctime ( const time_t * timer );

Datum a čas Funkce mktime() time_t mktime ( struct tm * timeptr ); Funkce provede konverzi ze struktury tm na datový typ time_t Syntaxe: time_t mktime ( struct tm * timeptr ); Vstupní hodnota: Ukazatel na strukturu tm Návratová hodnota: Hodnota typu time_t

Datum a čas Funkce strftime() Převod data ze struktury tm na formátovaný řetězec Syntaxe: size_t strftime ( char * ptr, size_t maxsize, const char * format, const struct tm * timeptr );

Datum a čas Funkce strftime() Vstupní hodnoty: Návratová hodnota: char * ptr … ukazatel na cílový řetězec size_t maxsize … maximální délka řetězce const char * format … formát generovaného řetězce struct tm * timeptr ... Zdrojová struktura tm Návratová hodnota: Počet zapsaných znaků do cílového řetězce. Pokud došlo k chybě, tak NULL

Datum a čas Funkce strftime() Formátovací řetězec – řídící znaky %a %A Popis Příklad %a Zkratka dne v týdnu Thu %A Plný název dne v týdnu Thursday %b Zkratka měsíce Aug %B Plný název měsíce August %c Standardní formát data a času Thu Aug 23 14:55:02 2001 %d Den v měsíci (01 – 31) 23 %H Hodiny ve 24-hodinovém formátu (00 – 23) 14 %I Hodiny ve 12-hodinovém formátu (00 – 12) 02

Datum a čas Funkce strftime() Formátovací řetězec – řídící znaky %j %m Popis Příklad %j Den v roce (0 – 366) 235 %m Pořadové číslo měsíce (00 – 12) 08 %M Minuty (00 – 59) 55 %p AM / PM PM %S Sekundy (00 – 59) 02 %U Číslo týdne (00 – 53) – týden začíná nedělí 33 %w Číslo dne v týdnu (0 – 0) – týden začíná nedělí, neděle == 0 4 %W Číslo týdne (00 – 53) – týden začíná pondělím 34

Datum a čas Funkce strftime() Formátovací řetězec – řídící znaky %x %X Popis Příklad %x Datum 08/23/01 %X Čas 14:55:02 %y Rok (dvouciferný) 01 %Y Rok (čtyřciferný) 2001 %Z Časová zóna CDT %% Znak „%“ %

Datum a čas #include <stdio.h> #include <time.h> int main () { time_t rawtime; struct tm * timeinfo; char buffer [80]; time ( &rawtime ); timeinfo = localtime ( &rawtime ); strftime (buffer,80, "Práve je %I:%M%p.",timeinfo); puts (buffer); // Prave je 03:21PM. return 0; }

Závěrem  Šest zákonů o programování: V každém programu je alespoň jedna chyba Každý program lze zkrátit alespoň o jeden řádek Nejjednodušší chyby se nejhůře hledají Každou opravou se do programu zanese nová chyba Když už se zdá, že je program v pořádku, určitě jsme něco přehlédli Programátor dělá, co umí. Počítač si dělá, co chce.

A1PRG-s 14. Datum a čas, … Děkuji za pozornost Ing. Michal Heczko heczko@fai.utb.cz 218/U3 Prezentace k dispozici na http://vyuka.fai.utb.cz