Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
C# konzole – Program pro výpočet výrazu
Tematická oblast Internetové technologie, programování Datum vytvoření 2013 Ročník 3 Stručný obsah Program pro výpočet výrazu (a + b) / (c / d) dle zadaných hodnot a, b, c, d. Způsob využití Studenti napíší program pro výpočet zadaného výrazu. Autor Mgr. Michal Mikláš Kód VY_32_INOVACE_35_IMIK19 Gymnázium a Jazyková škola s právem státní jazykové zkoušky Zlín
2
Zadání Napište program, který vypočte pro uživatelem zadaná celá čísla a, b, c, d hodnotu výrazu (a + b) / (c / d) resp. zapsáno jinak: (a+b) 𝑐 𝑑
3
Postup řešení Postupně načteme uživatelem zadané celočíselné hodnoty proměnných a, b, c, d. Než budeme výraz řešit, tak si musíme uvědomit, za jakých podmínek má výraz smysl. Ve výrazu dochází k dělení, a tak musíme ošetřit, aby nenastalo nedefinované dělení nulou. Je tedy třeba zajistit, aby při zadání hodnot, které by způsobily dělení nulou, program reagoval textovou informací, že výraz nemá pro zadaná čísla smysl.
4
Postup řešení Za jakých okolností nemá výraz smysl?
Víme, že nelze dělit nulou. To by mohlo nastat ve dvou případech: Kdyby byl zlomek c/d roven nule. Kdyby bylo d rovno nule. Jakou podmínku tedy do programu musíme napsat, aby na tento případ algoritmus správně reagoval? Je tedy zřejmé, že d nesmí být nula - za jakých okolností je výraz c/d, kde d<>0, roven nule?
5
Postup řešení Za jakých okolností je výraz c/d roven nule (za předpokladu, že d<>0)? Tento výraz by byl roven 0, pokud by c=0. Z předchozího nám tedy plyne, že pro náš algoritmus jsou smysluplné vstupní hodnoty v případě, že čísla c a d jsou různá od nuly. V programu lze tedy napsat podmínku s použitím logické spojky and: If ((c<>0) and (d<>0)){ Výraz má smysl a vypočteme jej. }else{ Výraz není pro dané vstupní hodnoty definován. }
6
Postup řešení Uvědomme si ale, že výpočet pro nás ztrácí smysl už v případě, že víme, že zadaná hodnota c je nula. Budeme tedy ihned po zadání hodnoty c reagovat. Program bude vyžadovat zadání hodnoty d jen v případě, že hodnota c je nenulová. V opačném případě poskytne informaci o tom, že výraz nemá smysl a skončí.
7
Postup řešení if (c == 0){ Console.WriteLine("Dělení nulou nelze provést. Výraz nemá smysl."); }else{ Console.WriteLine("Zadej d:"); d = int.Parse(Console.ReadLine()); if (d == 0){ } else{ Console.WriteLine("Vysledek: "); vysledek = (double)(a + b) / (c / d); Console.WriteLine(vysledek); }
8
Výpis kompletního zdrojového kódu konzolové aplikace
namespace ConsoleApplication11 else { class Program Console.WriteLine("Zadej d:"); d = int.Parse(Console.ReadLine()); static void Main(string[] args) if (d == 0) int a, b, c, d; double vysledek; Console.WriteLine("Zadej a:"); a = int.Parse(Console.ReadLine()); Console.WriteLine("Vysledek: "); Console.WriteLine("Zadej b:"); vysledek = (double)(a + b) / (c / d); b = int.Parse(Console.ReadLine()); Console.WriteLine(vysledek); Console.WriteLine("Zadej c:"); c = int.Parse(Console.ReadLine()); Console.ReadKey(); if (c == 0) Console.WriteLine("Dělení nulou nelze provést. Výraz nemá smysl."); }
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.