Podmíněný operátor? Zápis programového kódu pomocí procedur Je výsledkem provedení příkazu.

Domov / Nezapne se

Operátor je prvek jazyka, který specifikuje úplný popis akce, která má být provedena. Každý operátor je kompletní frází programovacího jazyka a definuje nějakou kompletně dokončenou fázi zpracování dat. Operátory mohou zahrnovat funkční slova, data, výrazy a další operátory. V angličtina Tento pojem se označuje slovem „prohlášení“, které také znamená „návrh“.

Každý operátor v jakémkoli programovacím jazyce má své specifikum syntax A sémantika. Pod syntax operátor je chápán jako systém pravidel (gramatiky), který určuje jeho záznam pomocí prvků abecedy tohoto jazyka, který spolu s různými symboly zahrnuje například funkční slova. Pod sémantika operátor rozumí jeho významu, tzn. ty akce, které odpovídají záznamu konkrétního operátora. Například záznam i:= i + 1 je příkladem syntakticky správného zápisu operátor přiřazení PROTI jazyk Pascal, jehož sémantika je v tomto případě je následující: extrahujte hodnotu paměťové buňky odpovídající proměnné i, sečtěte ji s jedničkou, zapište výsledek do stejné paměťové buňky.

Ve většině procedurálních programovacích jazyků je sada operátorů téměř stejná a skládá se z operátoru přiřazení, operátorů výběru, operátorů smyček, operátorů volání procedur a operátorů skoků. Někdy se také rozlišují prázdné (žádná akce) a složené operátory. Mnoho operátorů představuje způsob reprezentace určitých algoritmických konstrukcí (viz „ Algoritmické návrhy“) v programovacím jazyce. Podívejme se na skupiny operátorů podrobněji pomocí syntaxe jazyka Pascal.

Operátor přiřazení

Přiřazení je počítačová akce, jejímž výsledkem je proměnná hodnota vypočítaného výrazu (umístí se do paměťové buňky odpovídající proměnné). Pro popis takové akce v programovacích jazycích existuje operátor přiřazení.

Obecně se operátor přiřazení zapisuje takto:

<переменная> <знак присваивания> <выражение>

Například v Pascalu se jako přiřazovací znak používá kombinace symbolů: =. V řadě dalších jazyků je to rovnítko.

Výsledkem provedení operátoru přiřazení je změna stavu dat: všechny proměnné kromě variabilní, umístěné na levé straně operátoru přiřazení, nemění jejich význam, ale zadaný variabilní dostane hodnotu výrazy, který se objeví na pravé straně operátoru přiřazení. Ve většině případů je vyžadováno, aby typ výrazy odpovídalo typu variabilní. Pokud tomu tak není, je operátor buď považován za syntakticky nesprávný, nebo je typ výrazu převeden na typ proměnné (viz „ Typy dat” ).

Operátoři výběru

Tito operátoři se nazývají různě podmíněné příkazy. Podmíněné příkazy se používají k programování algoritmů, které obsahují konstrukci větveného algoritmu.

Existuje několik typů programovacích jazyků podmíněné příkazy. Úplný podmíněný příkaz odpovídá algoritmické struktuře úplného větvení:

V programovacím jazyce má odpovídající podmíněný operátor tvar:

pokud B pak S1 jiný S2

Pokud výraz B, který se počítá na začátku provádění podmíněného příkazu, má hodnotu „true“, pak se příkaz provede S1, V jinak- operátor S2. Operátoři S1 A S2 může být složený.

Algoritmická struktura neúplného větvení je implementována pomocí neúplného podmíněného operátoru, který má tvar:

pokud B pak S

Zde B je logický výraz a S- libovolný operátor. Operátor S bude proveden, pokud je výraz B pravdivý.

Pokud podmíněný operátor implementuje pouze dvě větve výběru („ano“ a „ne“), pak použijte variantní operátor (věc-operátor) můžete naprogramovat vícevětevnou strukturu. Operátor varianty vypadá takto:

případ E z

Tento operátor se provádí takto: hodnota výrazu E vyhledával mezi hodnotami uvedenými v záznamu operátora V1, V2, …, Vn, a pokud je taková hodnota nalezena, provede se odpovídající operátor S1, S2, …, Sn.

V různé jazyky programování, syntaxe a dokonce i sémantika uvedených operátorů se mohou lišit, ale možnosti, které programátorovi takové konstrukce poskytují, jsou přibližně stejné.

Příklad 1. V článku „ Algoritmické návrhy“2 byl uveden příklad zápisu algoritmu pro řešení zobecněné kvadratické rovnice pomocí větvících konstrukcí. Zde je fragment programu v Pascalu, který implementuje stejný algoritmus:

-li a = 0 pak

-li b = 0 pak

pokud c = 0 pak writeln("x - libovolný")

jiný writeln("bez kořenů")

jiný writeln(-c/b)

jinak začít

D:= b*b - 4*a*c;

-li D< 0 pak writeln("bez kořenů")

jinak začít

x1:= -b + sqrt(D);

x2:= -b - sqrt(D);

writeln(x1:0:2,""", x2:0:2)

Příkazy smyčky

Operátoři smyčky implementují cyklické algoritmické struktury, používají se pro akce, které se mnohokrát opakují. V mnoha programovacích jazycích existují tři typy operátorů smyček: „s předběžnou podmínkou“, „s dodatečnou podmínkou“, „s parametrem“.

Nezbytnou a postačující algoritmickou strukturou pro programování smyček je smyčka „s předpokladem“, lze ji tedy nazvat hlavním typem smyčky. Operátor smyčky s předběžnou podmínkou vypadá takto:

zatímco B dělat S

Operátor S, pro který je vytvořena smyčka pro opakované provádění se nazývá tělo smyčky. Provádění operátoru smyčky je redukováno na opakované provádění těla smyčky až do hodnoty logického výrazu B pravda (dokud se nestane nepravdivou). Ve skutečnosti podobné příkazy cyklu implementují opakované provádění podmíněných příkazů -li B pak S, přičemž podmínka je pravdivá B.

Příklad 2. Zvažte použití takového operátoru smyčky k výpočtu součtu číslic přirozeného čísla N:

zatímco N>0 začněte

S:=S+N mod 10;

N:= N div 10

Ve smyčce s postpodmínkou tělo smyčky předchází podmínce B. Na rozdíl od smyčky s předběžnou podmínkou je zde B podmínkou pro ukončení smyčky. Operátor smyčky s postcondition v Pascalu má tvar:

opakovat S B

S touto organizací cyklu, tělo cyklu S musí být provedeno alespoň jednou.

Téměř ve všech procedurálních jazycích existuje smyčkový operátor s parametrem. Schematicky to lze znázornit takto:

pro< variabilní > E1 na E2 krok E3 dělat S

Tady je význam variabilní(parametr cyklu) se mění z hodnoty výrazu E1 na E2 v krocích E3. Pro každou takovou hodnotu parametru smyčky se provede operátor S. V jazyce Pascal pojem krok v popisu tohoto operátoru chybí a samotný krok pro parametr celočíselné smyčky se může rovnat buď 1, nebo. –1. Operátor „smyčka s parametrem“ se používá k programování smyček se zadaným počtem opakování. Není vhodný pro programování iteračních smyček (jejichž počet opakování není předem znám).

Operátor volání procedury

V článku „ Podprogramy” podrobně popisuje tento typ podprogramu, jako jsou procedury. Standardní rutiny programovacího jazyka, které jsou součástí jedné z knihoven rutin, stejně jako uživatelské rutiny popsané v tomto bloku, se volají pomocí operátoru volání procedury:

<имя процедуры>(E1,E2,…,En)

Zde E1,E2,…,En jsou proměnné nebo výrazy, které reprezentují skutečné parametry přístup k postupu. Nejčastěji používané standardní postupy jsou procedury vstupu a výstupu dat (čtení a zápis v Pascalu).

Volání procedury je sémanticky ekvivalentní provedení bloku popsaného jako tělo procedury poté, co do něj předáte počáteční hodnoty některých proměnných (hodnotové parametry) nebo nahradíte názvy některých proměnných (parametry proměnných) názvy proměnných. skutečné proměnné zadané při volání procedury.

Příklad 3 Pojďme si popsat postup abc:

procedura abc(a,b:integer; var c: celé číslo);

Volání této procedury abc(2,3,x) je ekvivalentní akčnímu bloku:

Operátoři skoků

Nejznámějším operátorem v této skupině operátorů je operátor nepodmíněného skoku goto. Pokud přidáte do všech nebo některých stávajících programových prohlášení značky, pak v programu bude možné použít operátor přechodu formuláře:

goto<метка>

Návěští v tomto případě odpovídá začátku příkazu, od kterého má pokračovat provádění programu. Tento operátor vám umožňuje psát algoritmy v programovacím jazyce, které mají libovolně složitou strukturu. Ale často je použití nepodmíněného přechodu neopodstatněné, protože vede k matoucímu, špatnému čitelný program. Téměř jediné smysluplné využití operátora goto je výstup z několika vnořených smyček najednou, například při zpracování dvourozměrných polí.

Příklad 4. Předpokládejme, že potřebujeme určit, zda dvourozměrné pole a obsahuje prvek rovný 0:

pro i:= 1 na N dělat

pro j:= 1 na N dělat

pokud a = 0 pak začněte

1: -li b pak napsat("je") jiný napsat("ne");

Program vyvinutý podle pravidel strukturovaného programování by neměl obsahovat operátory nepodmíněných skoků. Výše uvedený program bez použití operátora goto lze přepsat takto:

zatímco ne b a(i< N) začněte

zatímco ne b a(j< N) začněte

-li a = 0 pak b:= true;

-li b pak napsat("je") jiný napsat("ne");

V tomto případě je strukturovaný program méně vizuální než program s ním goto.

Jiné skokové operátory mohou být definovány v programovacích jazycích. Například v Pascalu: přerušení(předčasné přerušení cyklu, přechod na příkaz, který by měl být proveden po skončení cyklu), pokračovat(předčasné dokončení iterace aktuální smyčky a přechod na další), výstup(předčasné přerušení podprogramu, výstup z něj), zastavit(předčasné přerušení programu, přechod na jeho konec). Podobné operátory existují v jazycích C, C++ a Java.

Složený operátor

Složený příkaz je skupina příkazů uzavřená v závorkách operátora (v Pascalu - začítkonec; v C, C++ - (…)).

Složený operátor byl zaveden do programovacích jazyků pro usnadnění popisu jazykových konstrukcí. Například v Pascalu je spustitelnou částí každého bloku (program, procedura, funkce) jeden složený příkaz. Úplně stejným způsobem se tělo jakéhokoli operátoru smyčky skládá pouze z jednoho operátoru, možná složeného. Alternativou ke složenému operátoru může být funkční slovo označující konec konkrétního operátoru, např. KONEC POKUD v základním jazyce.

Téma „Operátoři programovacího jazyka“ se obvykle studuje pouze v kontextu konkrétního programovacího jazyka. Při zvažování je důležité ukázat souvislost mezi základními algoritmickými konstrukcemi a operátory: algoritmické konstrukce jsou psány v programovacím jazyce pomocí odpovídajících operátorů. Výjimkou je v jistém smyslu sekvenční návrh, který určuje lineární pořadí akcí. Akce v přísných lineární program jsou implementovány pouze operátory přiřazení a operátory volání procedur.

V počáteční fázi učení programování se školáci setkávají s mnoha problémy. První psychologická bariéra, kterou musí překonat, je při učení operátora zadání. Jedním z hlavních úkolů, které musíte společně se svými studenty vyřešit, je prohození hodnot dvou proměnných. Můžete požádat školáky, aby v duchu vyřešili problém, jak prohodit obsah dvou zásuvek, například psacího stolu. V této fázi diskuse si studenti obvykle uvědomí, že k vyřešení problému je potřeba třetí pole (proměnná). Při psaní tohoto algoritmu si však často pletou, ve které části operátoru přiřazení (vlevo nebo vpravo) by se měla konkrétní proměnná objevit.

Chyby v psaní aritmetiky a logické výrazy vznikají kvůli neznalosti přednosti operací, které jsou ve výrazu použity. Operace přitom znamenají nejen aritmetické, ale i porovnávací operace a logické spojky a v jazyce C také pro školáky velmi nezvyklá přiřazovací operace. Situaci komplikuje skutečnost, že v různých programovacích jazycích mají stejné operace různé relativní priority. Měli byste také věnovat pozornost korespondenci mezi typy proměnné a výrazem na levé a pravé straně operátoru přiřazení (viz „ Typy dat”).

Při zvládnutí výběrových operátorů je užitečné nechat studenty naprogramovat algoritmus obsahující vícevětvovou strukturu, a to jak pomocí kombinace podmíněných příkazů, tak pomocí výběrového operátoru.

Příklad. Na celočíselnou proměnnou N Zadejte věk osoby v letech. Zadejte frázi „ Je mi K let“, nahrazující slovo let na rok nebo rok v závislosti na počtu K. Zde jsou dvě řešení tohoto problému:

-li(k mod 100) v

pak writeln("Jsem ",k," let)

věc k mod 10 z

0,5..9:writeln("Jsem ",k," let");

1:writeln("Jsem ",k," rok starý");

2..4:writeln("Je mi ",k," let");

var k, n: celé číslo;

readln(k); n:= k mod 10;

-li(k mod 100) v

pak writeln("Jsem ",k," let) jiný

-li n=1 pak writeln("Jsem ",k," rok starý")

-li(n>=) a(n<= 4)

pak writeln("Je mi ",k," let)

jiný writeln("Jsem ",k," let)

Při zvažování operátorů smyčky je užitečné navrhnout programování stejné úlohy třemi různými způsoby pomocí tří operátorů smyčky a naopak se na základě podmínek problému naučit určit, který operátor smyčky je v konkrétním případě nejvhodnější.

Operátor volání procedury je na první pohled jednoduchý. Zde je důležité vysvětlit pravidla pro předávání parametrů procedurám a funkcím, rozdíl mezi parametry proměnných a hodnotovými parametry (v druhém případě můžeme předat nejen název proměnné, ale i konstantu nebo dokonce výraz odpovídající typ). Formální a skutečné parametry musí odpovídat typu, nikoli však názvu, což není studentům zdaleka zřejmé.

Studium podmíněného a zejména složeného příkazu je dobrou příležitostí promluvit si se studenty o stylu psaní programu. Existuje několik běžných způsobů, jak psát strukturované programy v Pascalu, ale všechny obsahují odsazení pro přizpůsobení vnořených struktur. Důležité pro nahrávání pořadů a komentářů.

"Tiskárna pro tisk plastových karet" - Možnost umístit dvakrát více informací na jednu plastovou kartu. Cena. Tiskárna pro tisk plastových karet. ZEBRA P110i/ P120i. Recenze modelové řady. Ekonomické plnobarevné tiskárny pro tisk plastových karet. Vysoký výkon Široký výběr přídavných kódovacích zařízení.

„PC periferie“ - periferní zařízení. Tiskárny. Záznam. Digitální fotoaparáty. Hierarchie spojovacích nástrojů. Video adaptéry. Klasifikace PU. Univerzální sériová sběrnice. CD-R. Možnosti výběru. Vestavěný blesk. Pionýři. Příroda. Modem. Video terminál. Skenery. PC periferie. Klasifikace tvaru myši.

„Prostředky pro vstup a výstup informací“ - Skener. Plotter. CRT. Tiskárny. Klávesnice. Digitální fotoaparáty a fotoaparáty. Funkce. Univerzální vstupní zařízení. Informační vstupní a výstupní zařízení. Grafický tablet. Myš.

„Zařízení pro výstup informací“ – Počítačové zařízení. Čím vyšší je rozlišení monitoru, tím vyšší je kvalita obrazu. Nevýhody inkoustových tiskáren: Vysoká spotřeba inkoustu; Vysoké náklady na doplňování. Ploché monitory z tekutých krystalů (LCD) jsou kompaktní a bez emisí. Zařízení pro výstup informací. Monitor je univerzální zařízení pro výstup informací.

"Tiskárny" - Místní. Termoblok, sporák, fixační jednotka - jednotka, ve které se toner zapéká do papíru. Laser. Matrice (ve tvaru jehly). Postupem času ztrácejí své vlastnosti a musí být pravidelně vyměňovány odborníkem. Proud. Síť. Změněno uživatelem. Vlastnosti tiskárny. Vývojka, nosič, vývojka – nejmenší kovové částice, které přenášejí toner na fotorole.

"I/O subsystém" - Bod zlomu. Tabulky. Průběžné umístění. Atribut. Oprávnění k souboru. Propojený seznam indexů. Data. Fyzická organizace. Přímý přístup do paměti. Indexovaný sekvenční soubor. Montáž. I/O řízené přerušením. Přístupová oprávnění k adresáři. Organizace paralelní práce.

V tématu je celkem 27 prezentací

Programový kód je znázorněn na obr. 4.3-9.

Option Strict On Option Explicit On Imports System.Math Public Class Form1 "Funkce pro zadání souřadnic bodu do textového pole Funkce vvod(ByVal T As TextBox) As Single Return CSng(Val(T.Text)) End Function "Procedure for výstup výsledku do TextBox Sub vivod (ByVal Z As Single, ByVal T As TextBox) T.Text = CStr(Z) End Sub "Funkce pro výpočet délky segmentu ze souřadnic dvou bodů Public Function Segment Length(ByVal x1 Jako Single, _ ByVal y1 As Single, ByVal x2 As Single, _ ByVal y2 As Single) As Single Return CSng(Sqrt((x2 - x1) ^ 2 + (y2 - y1) ^ 2)) End Function "Postup pro výpočet obvodu a plochy trojúhelníku Sub PS(ByVal x1 Jako Single, ByVal y1 As Single, _ ByVal x2 As Single, ByVal y2 As Single, _ ByVal x3 As Single, ByVal y3 As Single, _ ByRef P As Single , ByRef S As Single) Dim A, B, C, Pp As Single A = Délka segmentu(x1 , y1, x2, y2)"Volání funkce pro výpočet délky záporu. B = Délka segmentu (x2, y2, x3, y3) C = Délka segmentu (x3, y3, x1, y1) P = (A + B + C) : Pp = P / 2 S = CSng(Sqrt(Pp * (Pp - A) * (Pp - B) * (Pp - C))) End Sub "Postup pro zpracování události kliknutí na tlačítko Button1 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim x1 jako jeden, x2 jako jeden, x3 jako jeden Dim y1 jako jeden, y2 jako jeden, y3 jako jeden dim na jako jeden, Plo jako jeden x1 = vvod(TextBox1) : x2 = vvod(TextBox2) : x3 = vvod(TextBox3 ) y1 = vvod(TextBox6) : y2 = vvod(TextBox7) : y3 = vvod(TextBox8) PS(x1, y1, x2, y2, x3, y3, Per, Plo) vivod(Plo, TextBox4) : vivod(Plo, TextBox5) End Sub Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click End End Sub End Class

Spuštění aplikace a získání výsledků

Výsledek je znázorněn na Obr. 4.3-10.

Důkaz správnosti výsledku

A=
= 2,82843 B =
= 2

C = = 2 P = A + B + C = 6,828427; Рр = Р/2 = 3,414213 S = = 2


Bezpečnostní otázky k tématu

„Struktura programů, modulů a procedur VB.

Programovací nástroje pro algoritmy lineární struktury"

1. Co je to matematický model?

2. Jaké jsou hlavní fáze řešení problémů na počítači?

3. Jaké fáze řešení počítačových problémů se provádějí bez účasti počítače?

4. Co se nazývá matematický model předmětu nebo jevu?

5. Jaké jsou následné kroky v procesu vývoje programu?

6. Co je to algoritmus?

7. Jaké základní vlastnosti by měl mít algoritmus?

8. Jaké existují způsoby, jak popsat algoritmy?

9. Jaké grafické symboly jsou obvykle znázorněny v diagramech algoritmů?

10. Jak funguje tlumočník?

11. Jak funguje kompilátor?

12. Který algoritmus se nazývá lineární?

13. Který algoritmus se nazývá cyklický?

14. Který algoritmus se nazývá větvení?

15. Jaký je rozdíl mezi předáváním výsledků funkcí a procedur?

16. Dokazuje získání věrohodného výsledku, že program je správný?

17. Jaké chyby mohou zůstat neodhaleny, pokud program nezkontrolujete (nezobrazíte, neposouváte)?

18. Jak se liší testování programu od jeho ladění?

19. Je možné prokázat správnost programu pomocí testování?

20. V jaké fázi programu se počítají výsledky referenčních testů?

21. Uveďte hlavní fáze procesu testování.

22. Jaký je rozdíl mezi syntaktickými chybami a sémantickými chybami?

23. Co znamená, že stroj nemá zprávy o chybě syntaxe?

24. Jaké typy chyb překladatel nedokáže odhalit?

25. jaký je program?

26. V jaké fázi probíhá hledání a odstraňování chyb v programu?

27. Co je programovací systém?

28. Jaký je postup?

29. Jaké jsou výhody programu, který má postupy?

30. Jaké procedurální programovací nástroje jsou k dispozici ve VB?

31. Jak probíhá výměna dat mezi jednotlivými procedurami programu?

32. Jaké jsou skutečné a formální parametry?

33. Jak předat jako parametr: konstantu, proměnnou, výraz?

34. Jak se používají globální proměnné?

35. Jak se používají lokální proměnné?

36. Jaké jsou formální parametry?

37. Jaké jsou skutečné parametry?

38. Co se stane, když je zavolána procedura?

39. Jak lze parametry předat proceduře?

40. Jaké parametry předává hodnota?

41. Jaké parametry se předávají na adresu?

42. Co jsou to procedurální programovací nástroje?

43. Jaký je výsledek provedení funkce?

44. Jak by měly být deklarovány jednotlivé proměnné, aby byly v rámci funkce lokální?

45. Který příkaz se používá k předčasnému ukončení funkce?

46. Co se řídí při volání funkcí a procedur?

47. Jak by měly být deklarovány formální parametry, aby se proměnný parametr předával hodnotou?

48. Jak by měly být deklarovány formální parametry, aby bylo možné předat variabilní parametr na adresu?

49. Jak se volá funkční procedura z volajícího programu?

50. Co by mohlo být výsledkem postupu?

51. Který příkaz se používá k předčasnému ukončení procedury?

52. Kde lze nalézt popisy funkcí a postupů?

53. Kde bude dostupná proměnná deklarovaná pomocí veřejného operátora?

54. Kde se může nacházet soukromý operátor?

55. Co je to komentář a pravidla pro jeho psaní?

56. Jaké jsou hodnoty proměnných na začátku programu?

57. Proč jsou popsány (definovány) procedury a funkce?

58. Jak se procedury nazývají?

59. Jak se nazývají funkce?


Související informace.


První operand - "výraz1" - může být jakýkoli výraz, jehož výsledkem je hodnota typu bool . Pokud je výsledek věrný , pak se provede operátor určený druhým operandem, tedy "výraz2".

Pokud je první operand roven falešný , pak se provede třetí operand - „výraz3“. Druhý a třetí operand, tedy „výraz2“ a „výraz3“, musí vracet hodnoty stejného typu a nesmí být typu void . Výsledkem provedení podmíněného příkazu je výsledek "výraz2" nebo výsledek "výraz3", v závislosti na výsledku "výraz1".

Omezení použití operátora

Operátor založený na hodnotě "výraz1" musí vrátit jednu ze dvou hodnot - buď "výraz2" nebo "výraz3". Pro tyto výrazy existuje řada omezení:

  1. Uživatelsky definovaný typ nelze kombinovat s jednoduchým typem nebo výčtem. Pro ukazatel je přijatelné použít hodnotu NULL.
  2. Pokud jsou typy hodnot jednoduché, pak typ operátoru bude maximální typ (viz Typ nátlaku).
  3. Pokud je jedna z hodnot typ výčtu a druhá je číselný typ, pak je výčet nahrazen int a platí druhé pravidlo.
  4. Pokud jsou obě hodnoty hodnotami výčtu, pak jejich typy musí být stejné a typem operátoru bude výčet.

Omezení pro vlastní typy (třídy nebo struktury):

  1. typy musí být stejné nebo jeden musí dědit od druhého.
  2. pokud typy nejsou stejné (dědičnost), potom je potomek implicitně přetypován na rodiče, to znamená, že typem operátoru bude typ rodiče.
  3. Objekt a ukazatel nelze kombinovat – oba výrazy jsou objekty nebo ukazatele. Pro ukazatel je přijatelné použít hodnotu NULL.

Poznámka

Při použití podmíněného operátoru jako argumentu přetížené funkce buďte opatrní, protože typ výsledku podmíněného operátoru je určen v době kompilace programu. A tento typ je definován jako větší typ z typů "výraz2" a "výraz3".

Příklad:

void func(double d) (Tisk ("dvojitý argument: " ,d); )
void func(string s) ( Tisk ("string argument: " ,s); )

bool Výraz1=true;
dvojitý výraz2=M_PI;
řetězec Výraz3= "3.1415926" ;

void OnStart()
{
func(Výraz2);
func(Výraz3);

func(Výraz1?Výraz2:Výraz3);
func(!Výraz1?Výraz2:Výraz3);// získat upozornění kompilátoru na explicitní přetypování na typ řetězce
}

// Výsledek:
// dvojitý argument: 3,141592653589793

// argument řetězce: 3.141592653589793
// argument řetězce: 3.1415926

V předchozím odstavci jsme se seznámili se strukturou programu v Pascalu, naučili se popisovat data a podívali se na operátor přiřazení. To stačí k napsání programu pro konverzi dat. Ale výsledek těchto transformací pro nás nebude viditelný.

Pro výstup dat z paměti RAM na obrazovku monitoru použijte operátor výstupu zápisu:

Zde je v závorkách umístěn výstupní seznam - seznam výrazů, jejichž hodnoty jsou vytištěny. Mohou to být číselné, symbolické a logické výrazy, včetně proměnných a konstant.

Libovolná sada znaků uzavřená v apostrofech je považována za řetězcovou konstantu. Řetězcová konstanta může obsahovat libovolné znaky napsané na klávesnici.

Příklad. Příkaz write ("s=" , s) se provede takto:

  1. Na obrazovce se zobrazí symboly uzavřené v apostrofech: s=
  2. Na obrazovce se zobrazí hodnota proměnné uložené v buňce RAM s názvem s.

Pokud je hodnota proměnné s 15 a jedná se o celočíselný typ, pak se na obrazovce zobrazí: s=15.

Pokud je hodnota proměnné s 15, ale jedná se o reálný typ, pak se na obrazovce objeví: s=l.5E+01.

Po provedení výstupního příkazu se všechny prvky výstupního seznamu vytisknou bezprostředně po sobě. V důsledku operátoru write (1, 20, 300) se tedy na obrazovce zobrazí posloupnost čísel 120300, která budeme vnímat jako číslo 120300, nikoli jako tři samostatné číselné konstanty. Výstupní data můžete zpřístupnit vnímání různými způsoby:

Výstupní formát je celé číslo uvedené za dvojtečkou, které určuje, kolik pozic na obrazovce má zobrazená hodnota zabírat. Pokud je v čísle méně číslic, než je pro něj vyhrazených pozic na obrazovce, pak se volné pozice doplní o mezery vlevo od čísla. Pokud je číslo uvedené ve výstupním formátu za dvojtečkou menší, než je nutné, bude automaticky zvýšeno na požadované minimum.

Pro výstup reálného čísla ve formátu s pevnou řádovou čárkou jsou ve výstupním seznamu pro každý výraz určeny dva parametry:

  1. celkový počet pozic přidělených danému číslu;
  2. počet pozic ve zlomkové části čísla.

Když je proveden nový příkaz write, výstup pokračuje na stejném řádku. Chcete-li přejít na nový řádek, použijte operátor writeln. Mezi příkazy write a writeln nejsou žádné další rozdíly.

4.2.2. První program v jazyce Pascal

Pomocí výše uvedených operátorů vytvoříme program, který vypočítá obvod a plochu kruhu o poloměru 5,4 cm.

Výchozím údajem v tomto problému je poloměr: r - 5,4 cm Výsledkem programu by měly být hodnoty C - obvod a S - plocha kruhu. C, S a r jsou veličiny reálného typu.

Počáteční data a výsledky jsou spojeny vztahy známými z kurzu matematiky: C = 2πr, S = πr +. Program, který implementuje výpočty pomocí těchto vzorců, bude vypadat takto:

Tento program je správný a řeší problém. Když jej spustíte, získáte následující výsledek:

Program, který jsme zkompilovali, má však významnou nevýhodu: najde obvod a plochu kruhu pro jednu hodnotu poloměru (5,4 cm).

Chcete-li vypočítat obvod a plochu kruhu pro jinou hodnotu poloměru, budete muset provést změny přímo v textu programu, konkrétně změnit operátor přiřazení. Provádění změn v existujícím programu není přinejmenším vždy pohodlné (například když je program velký a existuje mnoho operátorů přiřazení). Níže se seznámíte s operátorem, který umožňuje zadávat počáteční údaje za běhu programu beze změny textu programu.

4.2.3. Vstup z klávesnice

Chcete-li zadat hodnoty proměnných do paměti RAM, použijte operátor vstupu čtení:

Po provedení příkazu čtení přejde počítač do režimu čekání na data: uživatel musí zadat data z klávesnice a stisknout klávesu Enter. Pro proměnné číselného typu lze zadat více hodnot oddělených mezerami nebo čárkami. Při zadávání znakových proměnných jsou mezery a čárky považovány za znaky, takže je nelze zadávat.

První hodnota proměnné zadaná uživatelem je umístěna na paměťové místo, jehož jméno je umístěno jako první v seznamu vstupů atd. Typy vstupních hodnot (vstupní tok) proto musí odpovídat typům proměnných uvedeným v proměnné popis sekce.

Příklad. Nechat

var i, j: celé číslo; x: skutečný; a:char;

Přiřaďme proměnné i, j, x a hodnoty 1, 0, 2,5 a "A". K tomu použijeme operátor čtení (i, j, x, a) a uspořádáme vstupní proud jedním z následujících způsobů:

Zde jsme nejen použili různé oddělovače (mezera, čárka), ale také reprezentovali vstupní proud jako jeden, dva a čtyři řádky.

Pro zadávání dat z klávesnice můžete použít i operátor readln, který se od operátoru read liší pouze tím, že po jeho provedení se kurzor přesune na nový řádek.

Pojďme vylepšit program n_1 organizováním zadávání dat v něm pomocí operátoru čtení. A aby uživatel věděl, k čemu je program určen, a přesně pochopil, jakou akci od něj počítač očekává, zobrazíme odpovídající textové zprávy pomocí operátoru writeln:

Výsledek vylepšeného programu:

Nyní náš program dokáže vypočítat obvod a plochu kruhu pro jakoukoli hodnotu r. Jinými slovy, neřeší jediný problém, ale celou třídu problémů. Kromě toho program přehledně a pohodlně organizuje zadávání počátečních dat a výstup získaných výsledků. To zajišťuje přátelské uživatelské rozhraní.

Nejdůležitější

Pro zadávání hodnot proměnných do RAM se používají vstupní operátory read a readln.

Pro výstup dat z RAM na obrazovku monitoru se používají výstupní operátory write a writeln.

Vstup počátečních údajů a výstup výsledků by měly být organizovány jasně a pohodlně; to zajišťuje přátelské uživatelské rozhraní.

Otázky a úkoly

  1. Napište příkaz, který vám umožní zadat hodnotu proměnné summa za běhu programu.
  2. Celočíselným proměnným i, y, k je třeba přiřadit hodnoty 10, 20 a 30, v tomto pořadí, zapište vstupní příkaz odpovídající vstupnímu toku:
      a) 20 10 30
      b) 30 20 10
      c) 10 30 20
  3. Popište proměnné potřebné k výpočtu plochy trojúhelníku na základě jeho tří stran a napište prohlášení, které poskytuje požadovaná vstupní data.
  4. Jaký je výsledek provedení příkazu?
      a) napsat (a)
      b) napište (1 a)
      c) napište (1 a=1, a)
  5. Jaký typ je proměnná f, když se po provedení příkazu write (f) na obrazovce zobrazilo následující číslo?
      a) 125
      b) 1,25E+2
  6. Jak mohu zobrazit skutečné číslo ve formátu s pevnou čárkou?
  7. Zapište si operátory pro zadání dvou čísel a jejich výstup v opačném pořadí.
  8. Zde je fragment programu:

    číst(a); read(b); c:=a+b; napsat(a, b); napsat (c)

    Zjednodušte to snížením počtu vstupních a výstupních příkazů.

  9. Zde je fragment programu:

    a:=10; b:=a+l: a:=b-a; napsat (a, b)

    Jaká čísla se zobrazí na obrazovce počítače?

  10. Napište program, který vypočítá plochu a obvod obdélníku na základě jeho dvou stran.

© 2024 ermake.ru -- O opravě PC - Informační portál