Тема організація введення, виведення даних

Тема: ОРГАНІЗАЦІЯ ВВЕДЕННЯ, ВИСНОВКУ ДАНИХ
ПОРОЖНІЙ І СКЛАДНОЇ ОПЕРАТОРИ
У програмі може застосовуватися порожній оператор, який не виконує жодної дії. Він є крапкою з комою.
Цей оператор, строго кажучи, оператором не є. Справа в тому, що також як арифметичні дії іноді буває необхідно укладати в дужки, послідовності команд (операторів) також іноді вимагають об'єднання. Це дозволяють зробити так звані операторні дужки.
Іноді, дії (послідовність операторів) буває необхідно укласти в операторні дужки. Формат складеного оператора такий:
Можливо, така структура нагадує вам основну структуру програми. Справді, відмінність лише тому, що післяEndнаприкінці складеного оператора ставиться крапка з комою, а кінці програми - точка. За своєю суттю вся програма являє собою великий складовий оператор.
Зверніть увагу на те, що точка з комою передEndможе не ставитися.
Складовий оператор надає можливість виконати довільну кількість команд там, де мається на увазі використання лише одного оператора.Як ви дізнаєтеся потім, така необхідність трапляється досить часто.
4.1. Процедура виводу Write
Оператор виведенняWrite займається тим, що наказує комп'ютеру зобразити на екрані монітора ту чи іншу інформацію, що складається із символів. Те, що потрібно зобразити, належить укладати у круглі дужки. Англійською словоWrite означає"пиши". Текст, на відміну від чисел і виразів, потрібно брати в одинарні лапки (апострофи).
А тепер подивимосяна приклади.
Як пишемо звернення Що бачимо в результаті.
Write('Я вивчаю Паскаль') Я вивчаю Паскаль
Це не 58, а два числа 5 і 8. Зауважимо, що вони розташовані впритул один до одного. Трохи нижче вам стане зрозуміло, як подолати цей "недолік" оператора Write.
Як бачите, один операторWrite може виводити відразу кілька елементів.Елементи потрібно відокремлювати один від одного комами. У цьому прикладі 3 елементи: 1) Текст 'Це'; 2) вираз 4+4; 3) текст 'кішок'.
Write('Це',4+4,' котів') Це8 котів
Write('Це ',4+4;' кішок') Це 8 кішок
Тут два елементи: текст '16+16=' та вираз 16+16. Незважаючи на те, що текст дуже схожий на вираз, комп'ютер дізнається його по лапках і не обчислює, а просто відтворює, як записано: 16+16=Будь-який елемент, укладений у лапки, Паскаль вважає текстом.
Тут 3 елементи. Другий елемент - текст, що складається з двох прогалин - ''. У тексті можна використовувати будь-які символи на клавіатурі.
Зобразіть на аркуші паперу клітинку (один символ - одна клітинка), що надрукує оператор
4.4. Процедура виведенняWriteLn.
ОператорWriteLnчитається як"раїт'лаїн",перекладається як"пиширядок".Правила його запису та виконання ті ж, що й уWrite, з одним винятком.
Так от, різниця між процедурами Write і WriteLn в тому, що після виконанняWrite курсор залишається в тому ж рядку, а після виконанняWriteLn курсор стрибає на початок наступного рядка, і усі наступні символи будуть виводитися в наступному рядку.
ОператорWriteLn можна використовувати просто для переведення курсору на початок наступного рядка. Для цьогодостатньо написати одне словоWriteLn, без дужок
Визначте без комп'ютера та зобразіть на аркуші паперу в клітинку (один символ - одна клітинка), що надрукує програма:
WriteLn('Ми починаємо!');
WriteLn('Шість шість', 6*6, 'Арифметика', (6+4)*3);
Пояснення,Значок * позначає множення
Виконавши завдання на папері, виконайте програму на комп'ютері та звірте результати. Чи збігається кількість прогалин між символами? Якщо не збігається, прочитайте ще раз матеріал, щоб зрозуміти чому. Змініть кількість пробілів у різних місцях останнього WriteLn. Як змінилася картинка на екрані? Чому? Додайте поряд з порожнім WriteLn ще один. Що змінилося? Чому?
4.5. Змінні величини. Оператор присвоєння
Поняття змінної величини вам відоме зі шкільної математики.Нехай кілька років тому ваше зростання дорівнювало 130см. Позначимо цей факт так:r = 130. Тепер він дорівнює 140см, тобто r=140. Виходить, що величинаrзмінилася. Тому вона називається змінною величиною. Числа130 і140 називаються значеннями змінної величиниr.
алгебра без змінної величини перетворилася б на арифметику.
Програмуючина Паскалі, ми можемо задавати комп'ютеру значення тієї чи іншої змінної величини. Це робиться за допомогою оператора, який називається оператором присвоєння. Так, якщо ми хочемо сказати, що зміннаа має значення 6, то маємо записатиа:=6. Як бачите, замість значка = вживаєтьсязнак:= називається знаком присвоювання,сама запис а:=6 називається оператором присвоювання.Кажуть, що величині а присвоюється значення 6 .З моменту виконання оператора а:=6 комп'ютер пам'ятатиме, що адорівнює шести.
Дело від значка:=в операторі присвоєння можна писати не тільки числа, а й змінні величини, і вирази. Вираз поки розумітимемо так, як його розуміє шкільна математика.Наприклад, після виконання наступного фрагмента програми:
комп'ютер знатиме, щоа дорівнює10,b дорівнює10,у рівно>21. Ще кілька прикладів:
Фрагмент програми Що запам'ятає комп'ютер
v:=-2+10; h:= 10*v; s:=v+h v=8 h=80 s=88
t:=0; n:=2*t+40; z:=-n t=0 n=40 z=-40
Необхідно пам'ятати, що комп'ютер виконує оператор присвоєння "в розумі", тобто результат його виконання, не відображається на екрані. Якщо хочемо бачити результат виконання оператора присвоювання, використовуємоWriteLn. Приклади:
Фрагмент програмиЩо бачимо
v:=-2+10; h:=10*v; s:=v+h; WriteLn(s) 88
v:=-2+10; h:=10*v; s:=v+h; WriteLn('s') s
v:=-2+10; h:=10*v; WriteLn(v+h) 88
Потрібно мати на увазі, що ліворуч від знака: може стояти тільки змінна величина, але не число і не вираз. Можна писати з:=34, але не можна писати 34:=с , Можна писати z:=f-v+990, але не можна писати f-v+990:=z. Оператор присвоєння влаштований так, що спочатку він дивиться або обчислює, яке значення маєправачастина, а потім, присвоює це значення змінної, що стоїть в лівій частині. Немає сенсу привласнювати значення чи виразу.
Зверніть увагу на один важливий момент. Коли школяр бачить вираз (наприклад, d+2d), він обов'язково його обчислює. Він може його перетворити чи, скажімо, спростити (отримавши 3d). Комп'ютер, бачачи вираз, спочатку його, можливо, і спростить, але потім обов'язково обчислить. А для цього вінповинен знати чисельні значення входять до нього величин (у разі це величина d). Таким чином,обчислюючи праву частину оператора присвоєння (наприклад,у:=а+b+1), комп'ютер повинен обов'язково заздалегідь знати, чому рівні змінні, у тому числі ця права частина складається (у разі цеа іb).Відповідальність за це знання лежить повністю на програмісті. Нехай забудькуватий програміст записав такий фрагмент: . а:=10; у:=а+b, ніде у програмі не надавши b жодного значення. Природно, при обчисленні виразу a+b+1 комп'ютер нічого очікувати знати, чому дорівнює b. У такій ситуації різні мови програмування надходять по-різному: Деякі просто відмовляються обчислювати висловлювання, деякі підставляють разом b нуль, Паскаль іноді може вчинити, досить шкідливо: замість b він підставить випадкове значення і отримає невірний результат.
Підіб'ємо попередні підсумки обговорення дуже важливого оператора присвоєння:
Оператор присвоювання складається із знака присвоювання:= зліва від якого пишеться змінна, а праворуч - число, змінна або вираз. При виконанні оператора привласнення комп'ютер "розуміється" (тобто нічого не показуючи на моніторі) обчислює праву частину і присвоює обчислене значення змінної, що стоїть у лівій частині,
Яке значення буде надано змінній t після виконання фрагмента k:=1+2; s:=2*k; t:=6-s?
Опис змінних (VAR)
VAR a, b: Integer;
Очевидно,ця програма надрукує число 120. У програміновиною для нас є лише перший рядок. Називається вона описом змінних величина іb.Поки не викладатимемо правила складання описів змінних. Скажемо лише, щоопис починається зі службового словаVAR(читається - "вар", це скорочення від англійськоїvariable- "змінна"). Після нього записуються імена всіх змінних, що зустрічаються у програмі із зазначенням через двокрапку типу значень, які кожна змінна має право набувати. У нашому випадку записані імена змінних а іb, оскільки вони зустрічаються міжBEGIN іEND. СловоInteger (читається - "інтеджер", перекладається як "цілий") вказує, що а іb мають право бути цілими числами, а не дробовими.Сенс подібного обмеження в тому, щоПаскаль по-різному працює з цілими і дробовими числами, а оскільки він мова строга, то вимагає, щоб програміст точно вказав, до якого з цих двох типів відносяться числа. Навіщо потрібен опис? Для цього спочатку треба згадати; навіщо потрібна комп'ютеру пам'ять як і вона влаштована (див. розділ 3.2), і навіть порядок роботи людини на комп'ютері (див. розділ 2.7).
Після того, як програміст ввів програму в пам'ять, він наказує комп'ютеру її виконати. Але комп'ютер при цьому не відразу приймається виконувати програму, а спочатку здійснює компіляцію, тобто переклад програми з Паскаля власною машинною мовою. (Часто замість терміна "компіляція" вживають загальніший термін "трансляція"). Під час компіляції комп'ютер робить деякі підготовчі дії, одним з яких є відведення в пам'яті місця під змінні величини, згадані в програмі. у програмі згадана змінна величина, отже, вона в кожний момент часу матиме якесь значення, яке треба пам'ятати.програму".Зватимемо місце, відведене в пам'яті під дану змінну, осередком.
Тепер нам зрозуміло, навіщо в паскалівській програмі потрібен опис – щоб перерахувати комп'ютеру змінні, під який він має відвести осередки до пам'яті. Якщо ми забудемо згадати в описі якусь змінну, то під неї в пам'яті не буде відведено комірку і комп'ютер не зможе її запам'ятати, а значить і взагалі не зможе з нею працювати. Паскаль суворий до програміста, він змушує його самого перераховувати в описі всі змінні, що зустрічаються у програмі. Бейсик добріший - якщо програміст полінувався написати опис, Бейсік сам переглядає програму і шукає змінні величини, щоб відвести їм місце.
Отже, при розв'язанні задачі пам'яті комп'ютера знаходиться програма розв'язання задачі, а в іншому місці пам'яті - значення змінних, описаних у програмі. До речі, ви можете дізнатися скільки байтів у пам'яті займе текст програми, якщо порахуєте скільки в ній літер та інших символів (включаючи пробіли).
4.7. Що робить оператор присвоєння з пам'яттю
Розглянемо приклад програми;
VAR a, b, y: Integer;
У програмі міжBEGIN таEND зустрічаються три змінні, тому всі вони перераховані в описіVARa,b,y:Integer. Комп'ютер відведе для них у пам'яті три двобайтові осередки.
Ось як працюватиме оператор присвоєння:
Таким чином, коли ми говоримо "Комп'ютер запам'ятав, що однаково 2", ми маємо на увазі "Комп'ютер записав в комірку пам'яті, призначену дляaчисло 2".
А тепер розглянемо, як будуть заповнюватися інформацією осередку а,b, в процесі виконання нашої програми. На самому початку виконанняПаскалівська програма в них знаходиться невідомо що. Першим виконується оператор:=10. Згідно з щойно наведеним визначенням оператора присвоювання в коміркуaбуде записано число 10. Потім виконується операторb:= 6 і в комірціb з'являється шістка. Потім виконується оператор у:=a+b+1. Комп'ютер дивиться, що знаходиться в комірках а і b, бачить там 10 і 6, підставляє їх у вираз а + b +1, отримує 17 і записує в комірку у. Нарешті, виконується операторWriteLn (+200). Комп'ютер заглядає в комірку, бачить там17,обчислює 17+200 і виводить 217 на екран.
Схематично цей процес можна зобразити так:
Що знаходиться в осередках пам'яті