Opakování ze 4. cvičení int a; printf("Zadej číslo: ");

Slides:



Advertisements
Podobné prezentace
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
Advertisements

Inf Tabulkový procesor - funkce. Výukový materiál Číslo projektu: CZ.1.07/1.5.00/ Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT.
ZAL – 5. cvičení Martin Tomášek Pole - opakování Základní datový typ. V poli držíme více elementů (jednoho typu) S elementy v poli můžeme manipulovat.
Práce se spojnicovým diagramem Gymnázium a Jazyková škola s právem státní jazykové zkoušky Zlín Tematická oblastMATEMATIKA - Finanční matematika a statistika.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiáluVY_32_INOVACE_30-03 Název školy Střední průmyslová škola stavební, České Budějovice, Resslova 2 AutorRNDr.
Řetězce v jazyce C ● řetězec je posloupnost znaků ● řetězcové konstanty se v C vkládají mezi uvozovky, např. "Ahoj Hugo!" ● v paměti je řetězec uložen.
Výukový materiál zpracovaný v rámci projektu Číslo projektuCZ.1.07/1.4.00/ Šablona klíčové aktivityIII/2 SadaMatematika 6 NázevDesetinná čísla_8.
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 6: Proměnné, jejich typy a práce s nimi Bc. Radek Libovický.
Výukový materiál zpracován v rámci projektu
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
Celá čísla VY_32_INOVACE_2.14.M.7 Ročník: 7. Vzdělávací oblast:
Batové dávky Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Vojtěch Mrózek. Dostupné z Metodického portálu ISSN: ,
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o, Orlová Lutyně
Způsoby zápisu algoritmů
Databázové systémy a SQL
Výukový materiál zpracován v rámci projektu
Přetěžování Datové typy.
Kurz algoritmizace a programování v jazyce C
Programování v jazyce C++
Programování v jazyce C++
Algoritmizace a programování
Struktury.
Výukový materiál zpracován v rámci projektu
Matematika Parametrické vyjádření přímky
Algoritmizace a programování
Databáze MS ACCESS 2010.
Uložení dat v PC -Binární (dvojkový) systém-
Algoritmizace a programování
C# konzole – Program emoce
Datové typy v jazyce C Datové typy void skalární aritmetické
C# konzole – Součet dvou čísel
Lexikální atomy jazyka C
Příkazy IF a SELECT CASE
C# konzole – Program pro výpočet výrazu
4.1 – 4.3 Lineární nerovnice i jednoduchý podílový tvar
Výukový materiál zpracován v rámci projektu
Jak brouček sekal souček
Překladače 6. Sémantická analýza
SÁRA ŠPAČKOVÁ MARKÉTA KOČÍBOVÁ MARCELA CHROMČÁKOVÁ LUKÁŠ BARTOŠ B3E1
Číslo projektu CZ.1.07/1.5.00/ Číslo materiálu
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Financováno z ESF a státního rozpočtu ČR.
Programování (14PRG) 1. cvičení.
Stavební fakulta ČVUT, B407
CYKLUS S PODMÍNKOU NA KONCI (s výstupní podmínkou)
Výukový materiál zpracován v rámci projektu
Optimální pořadí násobení matic
Základy algoritmizace 3/13 příkaz cyklus, proměnná typu pole
MU002 Informatika II Základy algoritmizace 1/13
Dotazovací jazyk SQL I.
Opakování ze 3. cvičení deklarace proměnných výpis na monitor (výstup)
A5M33IZS – Informační a znalostní systémy
Algoritmizace a datové struktury (14ASD)
Datové typy v jazyce C Datové typy void skalární aritmetické
Přednáška 10 Uložené procedury.
Název projektu: Moderní výuka s využitím ICT
Rovnice s neznámou ve jmenovateli
Matematika + opakování a upevňování učiva
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Lineární funkce a její vlastnosti
Informatika – Základní operace s buňkami
18 VÝRAZY S PROMĚNNÝMI.
Funkce v jazyce C = „množina“ operací, která provádí nějakou činnost s různými vstupy odstranění vícenásobného psaní či vkládání téhož kódu a lepší přehlednost.
Grafy kvadratických funkcí
20 MNOHOČLENY.
VÝRAZY Centrum pro virtuální a moderní metody a formy vzdělávání na
Algoritmizace a datové struktury (14ASD)
MU002 Informatika II Základy algoritmizace 1/13
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Transkript prezentace:

Opakování ze 4. cvičení int a; printf("Zadej číslo: "); deklarace proměnných výpis na monitor (výstup) čtení z klávesnice (vstup) specifikátor význam %d celé číslo %f float %c char %lf double %s řetězec int a; printf("Zadej číslo: "); scanf("%d",&a); printf("Zadali jste: %d ",a);

Opakování z 5. cvičení if (a!=b) { printf("A se nerovna B"); a=b; } aritmetické operátory +, -, *, /, % unární operátor ++, -- rozhodování if if (a!=b) { printf("A se nerovna B"); a=b; } else { printf("A se rovna B"); }

Opakování ze 6. cvičení char znak; printf("Zadej operator: "); scanf("%c",&znak); switch(znak) { case '+': printf("Chcete scitat\n"); break; case '-': printf("Chcete odcitat\n"); break; case '*': printf("Chcete nasobit\n"); break; case '/': printf("Chcete delit\n"); break; default: printf("Nevim, co chcete delat - Vy to vite?\n"); }

Opakování ze 7. cvičení Cyklus s podmínkou na začátku while (podmínka) { příkaz1; příkaz2; … } ANO NE

Opakování ze 7. cvičení Cyklus s podmínkou na konci do { příkaz1; příkaz2; … } while (podmínka); ANO NE

Opakování z 8. cvičení for(výraz1;výraz2;výraz3) { příkaz1; příkaz2; … }

Cyklus FOR for(výraz1;výraz2;výraz3) příkaz; chování cyklu FOR je ekvivaletní cyklu s WHILE výraz1; while(výraz2) { příkaz; výraz3; }

Cyklus FOR - inkrementace pokud proměnná cyklu zvyšuje nebo snižuje svoji hodnotu o jedničku, odpovídá to cyklu s pevným počtem opakování, jak bylo probíráno v předmětu 14ASD for(i=0;i<=n;i++) { tělo cyklu } for(i=0;i<=n;i=i+1) {

Cyklus FOR - dekrementace pokud proměnná cyklu zvyšuje nebo snižuje svoji hodnotu o jedničku, odpovídá to cyklu s pevným počtem opakování, jak bylo probíráno v předmětu 14ASD for(i=0;i<=n;i--) { tělo cyklu } for(i=0;i<=n;i=i-1) {

na příští cvičení vytvořte vývojové diagramy pro úlohy 9.4 a 9.5

Pole (vektor) Označuje datovou strukturu, která uchovává konečný počet prvků (čísel, textových řetězců, … ) stejného datového typu. K jednotlivým prvkům pole se přistupuje pomocí jejich indexu (celého čísla, označujícího pořadí prvku). 1 5 6 10 3 2 7 8 a i= 1 2 3 4 5 6 7 8

Pole v jazyce C index začíná od 0, poslední prvek má index N-1

Načtení pole zjednodušení v předmětu 14ASD v praxi však nutno načítat hodnoty prvků jednotlivě zjednodušení v předmětu 14ASD 0..m-1

Od standardu C99 je možnost určit velikost pole až při běhu programu int velikost; printf("Zadej velikost pole: "); scanf("%d", &velikost); int pole[velikost];

Pro dřívější standard bylo možné použít symbolickou konstantu #define MAXPOCET 10 int main() { int A[MAXPOCET]; A[3] = 0; ... }

nebo přímo číslo int main() { int A[10]; A[3] = 0; ... }

Po deklaraci pole nevíme, jaké jsou hodnoty jeho prvků!!!

Co dělá tento program? 1.část … #define MAXPOCET 20 /* maximální velikost pole */ int main(int argc, char **argv) { int A[MAXPOCET]; int i,n; printf("Zadej pocet zpracovavanych cisel: "); scanf("%d",&n); if (n>MAXPOCET) { printf("Deklarovane pole ma velikost pouze %d prvku.\n",MAXPOCET); system("PAUSE"); // musí být #include <stdlib.h> return -1; }

Co dělá tento program? 2. část … for(i=0;i<n;i++) { printf("Zadej %d. cislo: ",i+1); scanf("%d",&A[i]); } for(i=n-1;i>=0;i--) printf("%d\t",A[i]); printf("\n"); system("PAUSE"); return 0; jak by vypadalo indexování prvků při výpisu v opačném pořadí, pokud bychom použili stejný cyklus jako při načítání, tj. for(i=0;i<n;i++)

Odpověď for(i=0;i<n;i++) printf("%d\t",A[n-1-i])

Práce s prvkem pole v podstatě jako s proměnnou A[1]=A[8]*4 - A[2]; index může být určen hodnotou proměnné for(i=0;i<n;i++) printf("%d\t",A[n-1-i])

Jazyk C umožňuje pracovat s prvkem mimo pole!!! int pole[20]; pole[-1]=0; pole[50]=0;

Úloha 9.1 Napište program, který vypočítá skalární součin dvou vektorů o stejné dimenzi. Nejprve načte z klávesnice počet prvků vektoru (dimenzi), pak prvky prvního vektoru a následně prvky druhého vektoru, každý vektor do samostatného pole. Pole deklarujte staticky o velikosti např. 50 prvků. Pokud zadaná velikost vektoru překročí staticky deklarovanou velikost pole, program se ukončí s chybovým hlášením

Generování náhodného čísla #include <stdio.h> #include <stdlib.h> #include <time.h> #define random(num) (rand()%(num)) void randomize(void) { srand((unsigned) time(NULL));} int main() { int nahodne_cislo; ... randomize(); // volani funkce randomize – pouze jednou, vícekrát netřeba nahodne_cislo=random(10); // generování čísla 0 až 9 printf("%d",nahodne_cislo); }

Úloha 9.3 Napište program, který otestuje generátor náhodných čísel od 0 do 9. Program vygeneruje n-krát náhodné číslo z rozsahu 0 až 9 (n je zadáno z klávesnice) a uloží si do pole absolutní četnosti jednotlivých generovaných čísel. Na obrazovku vypíše tabulku s absolutními a relativními četnostmi.

Co dělá tento program? int main() { int nahodne_cislo, pocet=0; randomize(); do { nahodne_cislo=random(10); } while (nahodne_cislo==0 || nahodne_cislo==9); pocet++; printf("%d. cislo: %d\n",pocet, nahodne_cislo); } while(pocet<99); }