Násobení pomocí sčítání

Podobné dokumenty
Poznámka: Násobení je možné vyložit jako zkrácený zápis pro součet více sčítanců. Například:

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2

Basic256 - úvod do programování Příklady. ing. petr polách

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

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Už známe datové typy pro representaci celých čísel i typy pro representaci

1.2.3 Racionální čísla I

C# konzole Podíl dvou čísel, podmínka IF

Rozšiřování = vynásobení čitatele i jmenovatele stejným číslem různým od nuly

1.8.5 Dělení mnohočlenů

1.2.3 Racionální čísla I

Variace. Číselné výrazy

Algoritmizace prostorových úloh

DIGITÁLNÍ ARCHIV VZDĚLÁVACÍCH MATERIÁLŮ

7 = 3 = = Učivo Vysvětlení Př. + pozn. Zlomek = vyjádření části celku 3 část snědla jsem 3 kousky

Větvení a cykly. Úvod do programování 1 Tomáš Kühr

Každé dítě bude mít 4 kuličky. Zkouška: (např. sečtením kuliček každého z dětí) = 20.

ARITMETICKÉ OPERACE V BINÁRNÍ SOUSTAVĚ

( 2 ) ( 8) Nerovnice, úpravy nerovnic. Předpoklady: 2114, Nerovnice například 2x

OPAKOVACÍ TEST: NÁSOBENÍ A DĚLENÍ V OBORU NÁSOBILKY, PÍSEMNÉ SČÍTÁNÍ A ODČÍTÁNÍ DVOJCIFERNÝCH ČÍSEL

Algoritmizace. 1. Úvod. Algoritmus

Dělení. INP 2008 FIT VUT v Brně

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

2. Mocniny 2.1 Mocniny a odmocniny

II. kolo kategorie Z9

Klíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů.

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

Micro:bit lekce 4. Cyklus s určeným počtem opakování cyklus Repeat. Cyklus s počtem opakování daným řídicí proměnnou cyklus For from to

3. Celistvé výrazy a jejich úprava 3.1. Číselné výrazy

Dělení. MI-AAK(Aritmetika a kódy)

Kreslení elipsy Andrej Podzimek 22. prosince 2005

Makro. PDF vytvořeno zkušební verzí pdffactory Pro

= - rovnost dvou výrazů, za x můžeme dosazovat různá čísla, tím měníme

Příklady k prvnímu testu - Matlab

1. Základní pojmy a číselné soustavy

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1

M - Příprava na pololetní písemku č. 1

Instrukce: Jednotlivé části nejdou přesně po sobě, jak jsme se učili, je to shrnutí.

ZLOMKY A RACIONÁLNÍ ČÍSLA. Pojem zlomku. Zlomek zápis části celku. a b. a je část, b je celek, zlomková čára

Úvod do lineární algebry

Poslední nenulová číslice faktoriálu

( ) ( ) Lineární nerovnice II. Předpoklady: Jak je to s problémem z minulé hodiny? Získali jsme dvě řešení nerovnice x < 3 :

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus

Iterační výpočty Projekt č. 2

Sčítání a odčítání Jsou-li oba sčítanci kladní, znaménko výsledku je = + 444

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

Základy PERLu snadno a rychle

PRACOVNÍ LIST ŘÍMSKÉ ČÍSLICE

Kaţdé číslo, které lze vyjádřit jako podíl dvou celých čísel, je číslo racionální.

C2110 Operační systém UNIX a základy programování

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Algoritmy a datové struktury

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...

Variace. Mocniny a odmocniny

Středoškolská technika 2017 PROGRAM NA GENEROVÁNÍ PRVOČÍSEL

PHP tutoriál (základy PHP snadno a rychle)

Aritmetické operace a obvody pro jejich realizaci

Stručný návod k programu Octave

VY_32_INOVACE_CTE_2.MA_04_Aritmetické operace v binární soustavě Střední odborná škola a Střední odborné učiliště, Dubno Ing.

Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců.

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

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

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Časová a prostorová složitost algoritmů

Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

DIGITÁLNÍ UČEBNÍ MATERIÁL. Název školy SOUpotravinářské, Jílové u Prahy, Šenflukova 220. Název materiálu VY_32_INOVACE / Matematika / 03/01 / 17

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

Programovani v Maplu Procedura

Příklady: (y + (sin(2*x) + 1)*2)/ /2 * 5 = 8.5 (1+3)/2 * 5 = /(2 * 5) = 1.3. Pavel Töpfer, 2017 Programování 1-3 1

ALGORITMIZACE PROGRAMOVÁNÍ VT3/VT4

Mikroprocesorová technika (BMPT)

Základy algoritmizace a programování

Programovací jazyk Pascal

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

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Celostátní kolo soutěže Mladý programátor 2015, kategorie C

1. Implementace funkce počet vrcholů. Předmět: Algoritmizace praktické aplikace (3ALGA)

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

Úvod do programování

Programování I. Martin Pergel, 10. října Martin Pergel, Programování I

{ 4} Krácení a rozšiřování zlomků. Předpoklady: Zlomky 1 2 ; 2 4 ; 3 6 ; 4 8 ; 5. představují stejné číslo.

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

PPEL_4_cviceni_MATLAB.txt. % 4. cvičení z předmětu PPEL - MATLAB. % Lenka Šroubová, ZČU, FEL, KTE %

Martin Hejtmánek hejtmmar

while cyklus s podmínkou na začátku cyklus bez udání počtu opakování while podmínka příkazy; příkazy; příkazy; end; % další pokračování programu

cyklus s daným počtem opakování cyklus s podmínkou na začátku (cyklus bez udání počtu opakování)

5. kapitola Spouštění aplikací Visual Basic.Net, spustitelné soubory

Matematika. Vlastnosti početních operací s přirozenými čísly. Sčítání a odčítání dvojciferných čísel do 1 000, zpaměti i písemně.

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace

Lekce 01 Úvod do algoritmizace

Digitální učební materiál

Algoritmizace prostorových úloh

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

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události

Struktura a architektura počítačů (BI-SAP) 5

Programování I. Martin Pergel,

Celá čísla. Celá čísla jsou množinou čísel, kterou tvoří všechna čísla přirozená, čísla k nim opačná a číslo nula.

Transkript:

Neznalost zákonů neomlouvá Násobení pomocí sčítání Zadání problému: Vymyslete algoritmus, jak násobit dvě čísla, když operaci násobení neznáme. Upřesnění zadání: Známe čísla, známe operaci sčítání, odčítání. Známe podmínku, cyklus s pevným opakováním a cyklus s podmínkou na začátku nebo na konci. Jak na to: Řešení s konkrétními čísly: 7 * 5 mohu řešit tak, že budu přičítat 7 + 7 + 7 + 7 +7 První pokus o zobecnění zadám číslo 1. sčítance, zadám číslo 2. sčítance. Teď musím 1. sčítance celkem 2. sčítanec krát přičíst. a+a v součtu je a krát b Problémy 1) kde je součet? (každý výpočet by měl být uložen do nějaké proměnné) 2) vyzkoušet s čísly! Druhý pokus o zobecnění s mezikrokem součet = a+a Vyzkoušíme dosazením jiných čísel, zase nenáročných, třeba 4 krát 16: a = 4 b = 16 16 krát opakuj (aha, lepší bude to prohodit a opakovat menším počtem) je-li a<b prohoď a s b součet = a+a a= 4 b = 16 je-li a<b prohoď a s b a = 16, b = 4

opakuj 4 (teď poprvé) součet = a+a součet = a + a = 16 + 16 = 32 opakuj 4 (teď podruhé) součet = a+a součet = a + a = 16 + 16 = 32 opakuj 4 (teď potřetí) součet = a+a součet = a + a = 16 + 16 = 32 opakuj 4 (teď počtvrté) součet = a+a součet = a + a = 16 + 16 = 32 součet = 32 Problémy Místo 64 vyšlo 32. Sčítal jsem jenom dvakrát a. Jak tam dostat už existující součet? O co vlastně jde? Opakuji ne sčítání, ale přičítání a! Takže proměnná součet tam je jako ten začátek a konec. Aha! Třetí pokus o zobecnění s mezikrokem je-li a<b prohoď a s b součet = součet+a a= 4 b = 16 je-li a<b prohoď a s b a = 16, b = 4 součet = součet+a opakuj 4 (teď poprvé) součet = 0 je-li a<b prohoď a s b součet = a+a Zadej prvního sčítance a a= 4 Zadej druhého sčítance b b = 16 součet = 0 součet = 0 je-li a<b prohoď a s b a = 16, b = 4 součet = součet + a (No jó, ale kolik je součet na začátku? Já ho tam potřebuji a přitom na začátku tam být nemusí. Jak z toho ven? buď bude na začátku a (a pak se to opakuje méně krát) nebo 0! opakuj 4 (teď poprvé) součet = součet+a součet = součet + a = 0 + 16 = 16

opakuj 4 (teď podruhé) součet = součet+a součet = součet + a = 16 + 16 = 32 opakuj 4 (teď potřetí) součet = součet+a součet = součet + a = 32 + 16 = 48 opakuj 4 (teď počtvrté) součet = součet+a součet = součet + a = 48 + 16 = 64 součet = 64 Výsledek: součet = 0 je-li a<b prohoď a s b součet = a+a zadej a zadej b + a>b prohoď a s b součet = 0 opakuj b součet = součet + a

Dělení pomocí odčítání Zadání problému: Vymyslete algoritmus, jak dělit dvě čísla, když operaci dělení neznáme. Upřesnění zadání: Známe čísla, známe operaci sčítání, odčítání. Známe podmínku, cyklus s pevným opakováním a cyklus s podmínkou na začátku nebo na konci. Jak na to: Řešení s konkrétními čísly: 35 : 5 mohu řešit tak, že budu odčítat 5 od 35, tedy 35-5=30-5=25-5=20-5=15-5=10-5=5-5=0 (nejde o matematický zápis, = nemá význam rovná se v rovnicích!!!) První pokus o zobecnění zadám číslo dělence, zadám číslo dělitele. Teď musím od dělence odečítat dělitele. opakuj krát dělenec-dělitel Problémy 1) Kolikrát mám opakovat odečítání? 2) Do čeho budu ukládat ten rozdíl? Odečítání nevím, kolikrát se bude opakovat a rozdíl mohu ukládat třeba do proměnné podíl. Znovu: A co to opakování odečítání? Kolikrát? Nevím. Takže znovu číselně: 38 : 13, 38 13 = 25, mohu odečítat dál, 25 13 = 12, a teď už nemohu. Takže kontroluji, zda ten rozdíl není menší než dělitel. Druhý pokus o zobecnění s mezikrokem zadám číslo dělence, zadám číslo dělitele. Teď musím od dělence odečítat dělitele. opakuj, dokud je b menší než podíl podíl = a - b A než budu zkoušet, kolik je podíl na začátku? To je mi jedno, takže ho dám třeba dělenec. A budu zkoušet třeba pro 38 a 5: a = 38 b = 5 podíl = a podíl = 38 opakuj, dokud je b menší než podíl?b<podíl,?5<38, ano, takže dál podíl = a b podíl = a b = 38 5 = 33 opakuj, dokud je b větší než podíl?b<podíl,?5<33, ano, takže dál podíl = a b podíl = a b = 38 5 = 33

Ale to už bylo u násobení. Kdo se není schopen poučit z vlastních chyb, tak tomu není pomoci. Takže: podíl = a opakuj, dokud je b menší než podíl podíl = podíl - b a = 38 b = 5 podíl = a podíl = 38 opakuj, dokud je b menší než podíl?b<podíl,?5<38, ano, takže dál podíl = podíl b podíl = a b = 38 5 = 33 opakuj, dokud je b větší než podíl?b<podíl,?5<33, ano, takže dál podíl = podíl b podíl = a b = 33 5 = 28 opakuj, dokud je b menší než podíl?b<podíl,?5<28, ano, takže dál podíl = podíl b podíl = a b = 28 5 = 23 opakuj, dokud je b větší než podíl?b<podíl,?5<33, ano, takže dál podíl = podíl - b podíl = a b = 23 5 = 18 opakuj, dokud je b menší než podíl?b<podíl,?5<18, ano, takže dál podíl = podíl - b podíl = a b = 18 5 = 13 opakuj, dokud je b větší než podíl?b<podíl,?5<33, ano, takže dál podíl = podíl - b podíl = a b = 13 5 = 8 opakuj, dokud je b menší než podíl?b<podíl,?5<28, ano, takže dál podíl = podíl - b podíl = a b = 8 5 = 3 opakuj, dokud je b větší než podíl?b<podíl,?5<3, ne, cyklus končí podíl = 3 Program/algoritmus skončil. Výsledek je 3. Problémy 38:5 není 3. Proč vyšlo 3? Jaký význam má 3 při dělení 38 pěti? Tak znovu s čísly: 38:5 = 38 5 = 33 5 = 28 5 = 23 5 = 18 5 = 13 5 = 8 5 = 3 Je to jasné? Je to vidět? 3 je zbytek! Program počítá zbytek, ne podíl! Oprava: zbytek = a opakuj, dokud je b menší než zbytek zbytek = zbytek - a vypiš zbytek Tak a co s tím podílem? Znovu: 35-5=30-5=25-5=20-5=15-5=10-5=5-5=0 podíl je 7 38 : 13, 38 13 = 25, 25 13 = 12 podíl je 2 38:5 = 38 5 = 33 5 = 28 5 = 23 5 = 18 5 = 13 5 = 8 5 = 3 podíl je 7

A kde je schovaný ten podíl? 7, 2, 7? V procesu odečítání, v tom, kolikrát odečítám! Jak bych to řešil na papíře? Dělal bych si čárky! A v algoritmu? Budu si někam (třeba do proměnné podíl) přičítat jedničku. A snad už nemusím dodávat, že by na začátku měl být podíl 0. Třetí pokus o zobecnění zbytek = a podíl = 0 opakuj, dokud je b menší než zbytek zbytek = zbytek a podíl = podíl + 1 vypiš zbytek a = 38 b = 13 zbytek = a zbytek = 38 podíl = 0 podíl = 0 opakuj, dokud je b větší než zbytek?b<podíl,?13<38, ano, takže dál zbytek = zbytek b zbytek = zbytek b = 38 13 = 25 podíl = podíl + 1 podíl = podíl + 1 = 0 + 1 = 1 opakuj, dokud je b větší než zbytek?b<podíl,?13<25, ano, takže dál zbytek = zbytek b zbytek = zbytek b = 25 13 = 12 podíl = podíl + 1 podíl = podíl + 1 = 1 + 1 = 2 opakuj, dokud je b větší než zbytek?b<podíl,?13<12, ne, cyklus končí vypiš zbytek zbytek = 12 podíl = 2 Výsledek: zbytek = a podíl = 0 opakuj, dokud je b menší než zbytek zbytek = zbytek a podíl = podíl + 1 vypiš zbytek

zadej a zadej b zbytek = a podíl = 0 + b < zbytek zbytek = zbytek - b podíl = podíl + 1 vypiš zbytek Podmínka Podmínka se kládá ze tří částí - samotné podmínky, příkazů v případě jejího splnění a příkazů v případě jejího nesplnění (tato část už ale být nemusí). Jednopříkazová podmínka se dá zapsat: If podmínka Then příkaz Vícepříkazová podmínka: If podmínka Then příkaz 1 příkaz 2... End If činnost, v případě splnění podmínky + podmínka činnost, v případě nesplnění podmínky

Podmínka s oběma větvemi: If Podmínka 1 Then příkazy v případě splnění Else příkazy v případě nesplnění End If Cyklus s pevným opakováním Občas potřebujeme provádět nějakou činnost vícekrát, s možností volit opakování. K tomu slouží tento typ cyklu. i je řídící proměnná cyklu (může se jmenovat i jinak), pravidelně se zvyšuje, před započetím cyklu se kontroluje, zda už nepřekročila počet opakování, daný proměnnou N (také se může jmenovat jinak). V cyklu se dá s i počítat, popřípadě měnit, ale opatrně. For i =1 to N příkazy prováděné v cyklu Next i řídící proměnná i, její první hodnota 1, její poslední hodnota N opakové příkazy Cyklus s podmínkou na začátku Někdy je třeba opakování cyklu kontrolovat podmínkou. k tomu slouží tento typ cyklu s podmínkou na začátku, který proběhne jen v případě jejího plnění. Existují i cykly s podmínkou na konci. While podmínka příkazy prováděné v cyklu Wend + činnost, opakující se v případě splnění podmínky podmínka