Презентація "мова програмування "паскаль". текстовий редактор мови.". Основи програмування на паскалі Презентація на тему паскаль

Але думати, що Паскаль - мова виключно для навчання, було б неправильно. Ось що говорив звідси М. Вірт (1984 р.): « Стверджувалося, що Паскаль розробили як мови на навчання. Хоча це твердження є справедливим, але його використання при навчанні не було єдиною метою. Насправді я не вірю в успішність застосування під час навчання таких інструментів та методик, які не можна використовувати при вирішенні якихось практичних завдань». * *


Мова програмування Pascal З того часу Паскаль ставав дедалі більш популярним, причому як, як мову на навчання принципам програмування, а й як створення досить складного програмного забезпечення. У своєму первісному вигляді Паскаль мав досить обмежені можливості, але розширений варіант цієї мови Turbo Pascal є потужною мовою програмування.


Чому PASCAL? Мова програмування Pascal була названа на честь французького вченого Блеза Паскаля, який ще 1642 р. винайшов першу механічну лічильну машину. Вона була системою взаємодіючих зубчастих коліс, кожне з яких відповідало одному розряду десяткового числа і містило цифри від 0 до 9. Коли коліщатко здійснювало повний оборот, наступне зрушувалося на одну цифру. Машина Паскаля була сумирною машиною.


Основні відомості про мови програмування Мова – система символів. Мова ЕОМ (машинна мова) – двійкова знакова система. Тому, щоб комп'ютер міг зрозуміти написану програму, вона має бути перекладена мовою, зрозумілою комп'ютеру. Цей процес перекладу називається трансляцією.




Інтегроване середовище Turbo Pascal-7.0 Велику роль у поширенні Паскаля відіграла компанія Borland International. Вона зуміла створити знамените Turbo - середовище розробки. Це був величезний крок уперед у полегшенні процесу програмування. Чому Turbo? Turbo у перекладі з англійської сленгу означає прискорення. Компілятор, що входить до складу Turbo Pascal, дуже швидко переводить програму з мови програмування в машинні коди.




Основні засоби мови Символи мови - це елементарні знаки, які використовуються під час складання текстів. Алфавіту мови - набір таких символів. Алфавіт мови Turbo Pascal 7.0 включає: всі латинські великі та малі літери арабські цифри (0 – 9) символи + - * / =,. ; : _ () ( ) та ін. службові (зарезервовані) слова


Для запису команд, імен функцій, що пояснюють терміни Turbo Pascal 7.0, існує набір строго певних слів, які називаються службовими або зарезервованими (це англійські мнемонічні скорочення). Службові слова поділяються на три групи: оператори (READ, WRITELN та ін.) імена функцій (SIN, COS та ін.) ключові слова (VAR, BEGIN, END та ін.) Основні засоби мови


Іменем величини називається її позначення, це слово з літер, цифр та знаків підкреслення, що починається з літери. Числа: цілі, речові: з фіксованою точкою (-1.23; 654.2), з плаваючою точкою (2, 437,). Шість операцій: + додавання, - віднімання, / поділ, * множення, mod знаходження залишку, div поділ націло.


Арифметичний вираз конструюється з імен, чисел, символів арифметичних процесів, математичних функцій. Для вказівки порядку дій використовуються лише круглі дужки. Для зведення квадрат використовується позначення sqr(х). Для отримання квадратного кореня використовується позначення sqrt(х). Модуль позначається abs (x).


Оператор надання Ім'я змінної: = арифметичний вираз. х:= 3.24 або х:= х+4. Тип змінної 1.Якщо змінна зліва речовинного типу, то арифметичне вираз може бути як цілого, так і речовинного типу. 2.Якщо змінна ліворуч цілого типу, то арифметичне вираз тільки цілочисленне.


Структура програми у Паскалі 1 частина – опис даних та операторів. 2 частина – програмний блок. Загальний вид програми: Program (ім'я програми) label (список міток) const (список постійних значень) type (опис складних типів даних) var (опис даних програми) begin (початок програмного блоку) (алгоритм) end. (кінець програми)


Ім'я програми: не більше 8 знаків, що починається з літери. end з точкою. Описова частина складається з 4 розділів: міток, констант, імен та типів змінних. var ім'я та тип змінної: integer (цілий), real (речовий). Наприклад: var i, j: integer; x: real; Опис кожного типу закінчується крапкою з комою. Програмний блок містить оператори, що описують алгоритм розв'язання задачі.


Оператори введення та виведення: read (список імен) – зупиняє роботу програми та чекає, поки користувач набере на клавіатурі числа (через пропуск) і натисне ENTER. Наприклад: read(i, j); Після роботи цього оператора курсор розташовується за останнім числом, але не перекладається на новий рядок. Для переведення курсору на новий рядок після введення даних треба використовувати оператор readln (список імен). write (список виводу) – відображає дані на екрані. Список виводу - перелічені через кому імена результатів обчислення та пояснювальні тексти в апострофах. Наприклад: write (x =, x); На екрані надрукується число з фіксованою точкою. Наприклад: write(х=, х:6:2); на екрані буде видано число із 6 знаків з них два після коми, (х =). Переведення курсору на новий рядок здійснюється оператором порожнього виводу writeln. Оператор порожнього введення readln






Робота в системі Турбо Паскаль Alt + F10 - меню File - New - створити новий файл Enter - слід поставити в кінці кожного рядка Сtrl + Y - видалити рядок Enter - вставити рядок Для виконання програми треба в меню вибрати Run Транслятор - перекладає програму з мови Паскаль машинною мовою і шукає синтаксичні помилки. 1.Якщо помилки знайдені, то відбудеться повернення редактор, курсор вкаже на помилку. 2.Якщо помилки не знайдені, програма виконується










Іноді після слів THEN та ELSE треба виконати не один, а кілька операторів. Тоді ці оператори полягають у операторні дужки. Відкриваюча дужка - слово BEGIN, дужка, що закриває, - слово END. Перед словом ELSE крапка з комою не встановлюється. Рекомендується кожну пару BEGIN – END записувати в одному стовпчику. IF умова THEN begin оператор 1; оператор 2; оператор N end ELSE begin оператор 1; оператор 2; оператор M end;




Program E3; var a, b: integer; begin write (введіть два цілих числа через пробіл, потім натисніть); readln (a, b); if a mod 2 = 0 then writeln (а – парне) else writeln (а – непарне); if b mod 2 = 0 then writeln (b – парне) else writeln (b – непарне); readln end.


3 якщо a>0 6, якщо a 0 6, якщо a 0 6, якщо a 0 6, якщо a0 6, якщо a title="3, якщо a>0 6, якщо a


Program E31; var a,y: real; begin write (введіть число, потім натисніть); readln (a); if a >0 then y:=3 else y:=6; write (y=,y); readln end. 0 then y:=3 else y:=6; write (y=,y); readln end."> 0 then y:=3 else y:=6; write (y=,y); readln end."> 0 then y:=3 else y:=6; write (y=,y); readln end." title="Program E31; var a,y: real; begin write (введіть число, потім натисніть); readln (a); if a >0 then y:=3 else y:=6; write (y=,y); readln end."> title="Program E31; var a,y: real; begin write (введіть число, потім натисніть); readln (a); if a >0 then y:=3 else y:=6; write (y=,y); readln end."> !}


A+b, якщо a>b a*b, якщо a b a*b, якщо a b a*b, якщо a b a*b, якщо ab a*b, якщо a title="a+b, якщо a>b a* b, якщо a


Program E32; var a, b, x: real; begin write (введіть два числа через пропуск потім натисніть); readln (a); if a >b then x:=a+b else x:=a*b; write (x =, x); readln end. b then x:=a+b else x:=a*b; write (x =, x); readln end."> b then x:=a+b else x:=a*b; write (x=,x); readln end."> b then x:=a+b else x:=a*b; write (x=,x); readln end." title="Program E32; var a, b, x: real; begin write (введіть два числа через пропуск потім натисніть); readln (a); if a >b then x:=a+b else x:=a*b; write (x =, x); readln end."> title="Program E32; var a, b, x: real; begin write (введіть два числа через пропуск потім натисніть); readln (a); if a >b then x:=a+b else x:=a*b; write (x =, x); readln end."> !}




Організація циклів Повторювані дії у програмуванні називаються циклом Оператор безумовного переходу goto n, n - ціле число (не більше 4-х символів), мітка. Мітка повторюється 3 рази: 1. У розділі Label; 2.В операторі goto; 3. Перед оператором на який здійснюється безумовний перехід.


Організація циклів за допомогою операторів умовного та безумовного переходів. Завдання. Знайти суму перших двадцяти чисел. (1+2+3….+20). а ……………20 S ………….


Алгоритм Евкліда: зменшуватимемо щоразу більше з чисел на величину меншого доти, доки обидва числа не стануть рівними. Наприклад: Вихідні 1 крок 2 крок 3 крок а = 25 b = НОД (а, b) = 5


Program E5; var а, b: integer; begin write (НД =, а); readln; end. write (Введіть два натуральні числа через пробіл); readln (a, b); while ab do if a>b then a:=a-b else b:=b-a; b then a:=a-b else b:=b-a;"> b then a:=a-b else b:=b-a;"> b then a:=a-b else b:=b-a;" title="Program E5 var а, b: integer, begin write (НОД=,а); else b:=b-a;"> title="Program E5; var а, b: integer; begin write (НД =, а); readln; end. write (Введіть два натуральні числа через пробіл); readln (a, b); while ab do if a>b then a:=a-b else b:=b-a;"> !}




B then a:=a-b; if b>a then b:=b-a write (Введіть два натуральні числа через пробіл); readln (a,b);" title="Program E6; var а, b: integer; begin write (НОD=,а); readln; :=a-b; if b>a then b:=b-a write (Введіть два натуральні числа через пробіл);readln(a,b);" class="link_thumb"> 40 !} Program E6; var а, b: integer; begin write (НОD=,а); readln; end. repeat until a=b; if a>b then a:=a-b; if b>a then b:=b-a write (Введіть два натуральні числа через пробіл); readln (a, b); b then a:=a-b; if b>a then b:=b-a write (Введіть два натуральні числа через пробіл); readln (a,b);"> b then a:=a-b; if b>a then b:=b-a write (Введіть два натуральні числа через пробіл); readln (a,b);"> b then a:=a-b ; if b>a then b:=b-a write (Введіть два натуральні числа через пробіл); readln (a,b);" title="Program E6; var а, b: integer; begin write (НОD=,а); readln; :=a-b; if b>a then b:=b-a write (Введіть два натуральні числа через пробіл);readln(a,b);"> title="Program E6; var а, b: integer; begin write (НОD=,а); readln; end. repeat until a=b; if a>b then a:=a-b; if b>a then b:=b-a write (Введіть два натуральні числа через пробіл); readln (a, b);"> !}




Тема уроку: «Цикли (повтор) у програмах»

1)Повторити і закріпити знання складання лінійних, розгалужуваних програм; 2) Навчитися складати програми, використовуючи циклічний оператор - FOR i: = 1 TO n DO Begin оператори (тіло циклу) end; 3) Застосовувати оператори у вирішенні типових завдань. Мета уроку:

Вставте пропущене: Program Sql; Var A, B, C, D, XI, Х2: ??? ; Begin Writeln ("Введіть коефіцієнти квадратного рівняння '); Readln (???); D:=B*B-4*A*C; If D

Питання групі: 1)У чому відмінність програм із розгалуженням від лінійних? 2) За допомогою яких операторів здійснюється вибір у програмах? 3) begin….end – Що це? Які правила використання у програмі?

1) Оператори Введення/виводу; 2) Оператори вибору; 3) а:=а+3 – що станеться? 4) Перерахувати типи даних; 5) Прибрати зайве AND, OR, END, NOT, IF; 6); - що означає? 7) Як позначається кінець програми? 8) Перелічити арифметичні операції. 9) Чому дорівнює 120 mod 65 =? 10) Оператори циклу.

Розставте відповідно: 1. Read 2. End 3. Begin 4. Integer 5. ; 6. If .. Then 7. := 8. Введення 9. Кінець 10. Цілі 11. Присвоити 12. Наступна дія 13.Початок 14.Якщо..то

Чи дійсно результат менший за 3? a:= 7 b:= - 10 a:=a*(- 7) b:=159 a:=b+a

Знайдіть 5 помилок у програмі: Program krug ; VAR Pi, r, S: real; Pi:=3.14, WRITELN('vvedite radiuc r='), READ(r); S = Pi * r * r; WRITELN('Ploshad kruga S= ', S) end

Program krug; VAR Pi, r, S: real; begin Pi:=3.14 , WRITELN('vvedite radiuc r=') , READ(r); S: = Pi * r * r; WRITELN ( 'Ploshad kruga S = ', S) end .

Завдання №1 Дано ціле N , визначити чи є воно парним чи непарним. 2, 4, 6, …- парні, т.к. діляться на 2(N mod 2 =0) 1, 3, 7, ... - непарні, т.к. діляться на 2 із залишком 1(N mod 2 =1)

Алгоритм Алгоритм Chislo; перем N: цілі; початок Висновок('vvedite chislo'); Введення (N); Якщо N mod 2 = 0 Т O Висновок (N, '- chetnoe'); ЯКЩО N mod 2 = 1 Т O Висновок (N, '- nechetnoe'); кінець.

Завдання № 2 Дано ціле двозначне число N (DE), де D – кількість десятків, Е – одиниць. Чи визначити сума цифр цього числа дорівнює 10. Приклад: у 28-ми сума S =2+8=10 – буде, а у 27-ми S=2+7=9 не будемо вважати десятки: D= N div 10 , А одиниці: E = N mod 10

Алгоритм Алгоритм Chislo; перем N,E,D,S: цілі; початок Висновок('vvedite chislo'); Введення (N); E:=N mod 10; D:=N div 10; S:=E+D; ЯКЩО S = 10 Т O Висновок('summa= 10') Інакше ('summa10'); кінець.

Визначення: Програми у яких багаторазово повторюються однотипні дії – циклічні програми (з повтором).

Завдання: Дано 100 натуральних чисел від 1 до 100 (1,2,3, … 99,100) Порахувати їхню суму та вивести у змінну S.

Алгоритм сума; Перем i, S: цілі; Початок S: = 0; Для i:=1 до 100 повторювати Початок S:= S + i тіло Кінець; циклу Висновок (S) Кінець.

Program summa; VAR i, S: integer; Begin S:=0; FOR i:=1 TO 100 DO begin S:=S+i тіло end; циклу WRITE(S) end.

Program summa; VAR i, S: integer; Begin S:=0; FOR i:=1 TO 100 DO begin S:=S+i; тіло WRITE('S', i, '=', s) циклу end; end.

Тіло циклу – ті дії, які потрібно багаторазово повторювати. Тіло циклу укладаємо в операторні дужки begin….. end;

ALT + F9 – виправлення помилок CTRL + F9 – запуск програми ALT + F5 – перегляд результату

Завдання: 1) Вивести стовпець таблиці множення будь-якого цілого числа N на числа від 1 до 10. Приклад: N =5, то стовпець буде такий - 1*5=5 2*5=10 3*5=15 i * N = P , де i змінюється від …….. 1…10 10*5=50

Домашнє завдання: прокоментувати програму завдання «Про стовпець таблиці множення»

ДЯКУЄМО ЗА УВАГУ!

  1. 1. Pascal
  2. 2. Pascal Паскаль було розроблено швейцарським ученим Ніклаусом Віртом. Паскаль вважається найважливішим інструментом для навчання методам структурного програмування та з 1983 р. введений у навчальні курси у школах для учнів, що спеціалізуються у галузі інформатики. Надалі мова Паскаль удосконалювався і набув нових властивостей, відмінних від авторського варіанту.
  3. 3. Мова Паскаль відносно проста у вивченні, досить зрозуміла і логічна і, будучи першою мовою програмування, що вивчається, привчає до хорошого стилю.
  4. 4. Як і природні мови, кожна мова програмування має свій стиль та свої правила. Синтаксис мови програмування – це набір правил, які визначають способи побудови правильних програм із символів алфавіту.
  5. 5. Алфавіт мови Паскаль 26 латинських рядкових і 26 латинських великих літер: 8 9 знаки операцій: + - * / =<> < > <= >= := @ обмежувачі (розділювачі): . , " () (. .) ( ) (* *) .. : ; специфікатори: ^ # $
  6. 6. Структура програми (1. заголовок програми) program Ім'я_Програми; (2. розділ вказівки використовуваних модулів) uses Список_Використовуваних_Модулів; (3. Розділ описів) label Описи_міток; const Опис_Констант; type Описи_Типів; var Описи_Змінних; procedure Описи_Процедур_і_функцій; function exports Описи_Імен; (4. Розділ операторів) begin Оператори end.
  7. 7. Спрощена структура програми (1. заголовок програми) program Ім'я_Програми; (2. розділ вказівки використовуваних модулів) uses Список_Використовуваних_Модулів; (3. Розділ описів) const Опис_Констант; var Описи_Змінних; (4. Розділ операторів) begin Оператори програми end.
  8. 8. Команди мови програмування називаються операторами Розділювачем операторів у Паскалі є; (крапка з комою)
  9. 9. Коментар є фрагментом тексту програми, обмежений символами ( ). Коментарі у програмі виконують інформаційну функцію. (Моя перша програма) program first; begin writeln('Hello, World!') end.
  10. 10. Приклад: периметр прямокутника program perimetr; (Заголовок програми) uses crt; (crt – необхідний очищення экрана) var a,b:integer; (Оголошення змінних) P:integer; Begin (початок програми) clrscr; (очищення екрану) a: = 12; (Привласнюємо змінною а значення 12) b: = 7; (Привласнюємо змінною b значення 7) P:=2*(a+b); (значення виразу присвоюємо P) write("P = ",P); (Виводимо на екран значення P) end. (кінець програми)
  11. 11. Програма у своїй роботі має справу з даними. Деякі дані встановлюються ще до того, як програма почне виконуватися, а після її запуску зберігають свої значення незмінними протягом роботи програми. Це константи. Інші дані можуть змінюватись під час виконання програми. Вони називаються змінними.
  12. 12. Різниця між змінною та константою досить очевидна: під час виконання програми значення змінної може бути змінено, а значення константи немає. змінні змінні константи дані дані
  13. 13. Під змінною ми розумітимемо комірку («коробку»), куди комп'ютер може записувати («складати») дані. Під осередком ми насправді маємо на увазі «шматочок пам'яті», в якому зберігається інформація. Щоб скористатися інформацією, що зберігається в осередку, потрібно, щоб кожен осередок мав своє ім'я або, як часто кажуть, ідентифікатор. a b sum 5 3 8
  14. 14. Ідентифікатори. Іменами (ідентифікаторами) називають елементи мови - константи, мітки, типи, змінні, процедури, функції, модулі, об'єкти. Ідентифікатором є послідовність літер, цифр та знаків підкреслення, що починається з літери або символу підкреслення та не містить прогалин.
  15. 15. Ім'я може містити довільну кількість символів, але значущими є 63 символи. Не дозволяється в мові ПАСКАЛЬ використовувати як імена службові слова та стандартні імена, якими названі стандартні константи, типи, процедури, функції та файли. Приклади імен мови ПАСКАЛЬ: A b12 r1m SIGMA gamma I80_86
  16. 16. У Паскалі різниця між малими та великими літерами ігнорується, тому імена NaMe та name однакові.
  17. 17. Службове слово – це слово, яке у мові ПАСКАЛЬ має певне смислове значення, яке може бути змінено. Іноді його називають ключовим словом.
  18. 18. Службові (зарезервовані) слова: ABSOLUTE EXPORTS LIBRARY SET ASSEMBLER EXTERNAL MOD SHL AND FAR NAME SHR ARRAY FILE NIL STRING ASM FOR NEAR MENTATION PACKED USES DESTRUCTOR IN PRIVATE VAR DIV INDEX PROCEDURE VIRTUAL DO INHERITED PROGRAM WHILE DOWNTO INLINE PUBLIC WITH ELSE INTERFACE RECORD XOR END INTERRUPT REPEAT EXPORT LABEL RESIDENT
  19. 19. Пробіли не можна використовувати всередині здвоєних символів та зарезервованих слів. Існують імена, які називаються стандартними. sin cos real true На відміну від службових слів зміст стандартних імен може бути перевизначений програмістом.
  20. 20. Це вказівку компілятору, скільки пам'яті необхідно зарезервувати для змінних нашої програми. У відкомпільованій програмі для всіх змінних відведено місце в пам'яті, і всім змінним надано нульові значення. Усі змінні, що використовуються у програмі, необхідно оголосити в розділі опису змінних після зарезервованого слова var. Оголошення змінних
  21. 21. Дані бувають різних типів...
  22. 22. Типи даних Імена стандартних типів є визначеними ідентифікаторами та діють у будь-якій точці програми. Вони описані в стандартному модулі System, який за замовчуванням підключається до списку модулів, що використовуються. Типи користувача - це додаткові типи (прості і структуровані) описані користувачем.
  23. 23. Стандартні типи даних 1. група цілих типів (Shortint, Integer, Longint, Byte, Word); 2. група дійсних типів (Single, Real, Double, Extended, Comp); 3. логічні (булевські типи) (Boolean, ByteBool, WordBool, LongBool); 4. символьний (Char); 5. рядковий (String); 6. вказівний (Pointer); 7. Текстовий тип (Text).
  24. 24. Група цілих типів Назва типу Тип діапазон значень необхідна пам'ять Коротке ціле зі знаком Shortint -128.. та Коротке ціле без знака Byte 0 .. 255 1 байт Ціле без знаку Word 0 .. 65535 2 байти
  25. 25. Var b: byte; summa, count: integer; Оголошення змінних цілого типу summa: = -365; Використання
  26. 26. Числа у мові ПАСКАЛЬ зазвичай записуються у десятковій системі числення. Позитивний знак числа може бути опущений. Цілі числа записуються у формі без десяткової точки, наприклад: 217 -45 8954 +483
  27. 27. Група речових типів визначає дані, які реалізуються підмножиною дійсних чисел. Var A: real; begin... A:=0.65; … End.
  28. 28. Назва типу Тип Діапазон значень Кількість цифр мантиси Розмір (байт) Речова кількість одинарної точності Real 2.9e-39 .. 1.7e+38 11 6 Речовина Single 1.5e-45 .. 3.4e+38 7 4 Речовина Double 5.0e-324 ...
  29. 29. Дійсні числа записуються у формі з десятковою точкою або у формі з використанням десяткового порядку, що зображується буквою Е: 28.6 0.65 -0.018 4.0 5Е12 -1.72Е9 73.1Е-16
  30. 30. Булевського типу даних відповідає ідентифікатор Boolean. Змінні булевського типу мають розмір 1 байт та можуть містити значення TRUE або FALSE. Значення FALSE відповідає 0, будь-яке число відмінне від нуля вважається TRUE. Var knopka, flag: boolean; Begin knopka:=true;
  31. 31. Символьний тип відповідає стандартний ідентифікатор Char. Змінні та константи символьного типу можуть набувати значень з безлічі символів коду ASCII. Var simvol, bukva, z: char; Оголошення символьних змінних
  32. 32. Строковому типу відповідає стандартний ідентифікатор String. Var S: String; (Рядок від 0 до 255 символів) S2: String; (Стоку з 5-ти символів)
  33. 33. Рядок символів являє собою послідовність символів набору символів коду ASCII, укладену в одиночні лапки. Рядки в мові Паскаль - це послідовність символів, записана між апострофами. Якщо в рядку як змістовний символ необхідно вжити сам апостроф, слід записати два апострофи. Приклади рядків: "РЯДОК" "STRING" "АД""ЮТАНТ"
  34. Символьний тип, а також цілі та булевські типи відносять до так званих порядкових типів.  Безліч допустимих значень будь-якого порядкового типу є впорядкованою послідовністю, кожен елемент якої має свій порядковий номер (починаючи з 0).
  35. 35. Функція Ord повертає порядковий номер цього значення описі типу. Ord(2)=2, Ord('0')=48 Writeln(ord('e')); Writeln(ord('9'));
  36. 36. Таблиця кодування ASCII ASCII (American Standard Code for Information Interchange; вимовляється «аскі») -комп'ютерне кодування для представлення латинського алфавіту, арабських цифр, деяких знаків пунктуації та символів, що управляють. Її запровадив американський інститут стандартизації ANSI.

1 слайд

«ЗНАЙОМСТВО З МОВОЮ ПАСКАЛЬ» УРОК НА ТЕМУ: Вчитель математики та інформатики МБО ЗОШ № 2 м. Калача-на-Дону Волгоградської області Анісімової Н.А.

2 слайд

МЕТА УРОКУ: з'ясувати структуру програми, оператори, правила оформлення та пунктуацію мови Turbo Pascal.

3 слайд

Система програмування Turbo Pascal. Паскаль – це універсальна мова програмування, що дозволяє вирішувати найрізноманітніші завдання обробки інформації.

4 слайд

1)мова програмування Тurbo Pascal; 2) інтегроване середовище програмування (компілятор: переводить програму в машинний код та інтерпретатор: виконує команди) СКЛАД СИСТЕМИ ПРОГРАМУВАННЯ ТР:

5 слайд

1) латинські літери – великі та малі; 2)літери російського алфавіту - великі та малі; 3) цифри - від 0 до 9; 4)знаки операцій - +, -, /, *, =, =; 5) розділові знаки – () ( ); . , ' _% & # і т. д. Алфавіт мови програмування TURBO PASCAL

6 слайд

7 слайд

Заголовок програми Розділ опису змінних Розділ операторів (основна частина)

8 слайд

Розділ опису змінних починається зі слова Var, за яким іде список імен однотипних змінних через кому. У мові Паскаль існує два числові типи величин: речовий (Real) і цілий (Integer). Імена змінних складаються з латинських літер та цифр, причому першим символом – літера. VAR список однотипних змінних: INTEGER; список однотипних змінних: REAL;

9 слайд

Розділ операторів – основна частина програми. Початок і кінець розділу відзначаються службовими словами BEGIN і END, які є операторними дужками. Між цими словами поміщаються всі команди алгоритму, записані мовою Паскаль (оператори). Розділювачем операторів є точка з комою. Наприкінці програми ставиться крапка. BEGIN READ(список введення); READLN(список введення); змінна: = арифметичний вираз; WRITE (список виводу); WRITELN (список виводу); END.

10 слайд

Введення вихідних даних з клавіатури відбувається за оператором READ або READLN (читати). Оператор READLN відрізняється від READ тільки тим, що після введення даних курсор переміщається на початок нового рядка. змінна: = арифметичний вираз; WRITE (список виводу); WRITELN(список виводу); END. READ(список введення); READLN(список введення);

11 слайд

змінна: = арифметичний вираз; Арифметичний оператор присвоювання: зліва-змінна, праворуч - арифметичний вираз, який має бути обчислений. Складовий символ: = читається як "привласнити". Спочатку обчислюється арифметичний вираз, потім отримане значення присвоюється змінною.

12 слайд

mod div / * - + SIN (x) COS (x) SQR (x) SQRT (x) ABS (x) Sin x Cos x x 2 | x додавання віднімання множення поділ поділ націло Залишок від поділу

13 слайд

Правила запису арифметичних виразів Арифметичний вираз записується в рядок Не можна ставити поспіль два знаки арифметичних операцій Не можна опускати знак множення між співмножниками Використовуються лише круглі дужки Послідовність виконання операцій визначається за їх пріоритетами () F(x) * / + - div mod

14 слайд

Виведення результатів відбувається за WRITE чи WRITELN (писати). Результати виводяться в порядку їх перерахування у списку. Різниця у виконанні операторів WRITE та WRITELN полягає в тому, що після виконання операції виведення по оператору WRITELN курсор переміщається на початок нового рядка. WRITE (список виводу); WRITELN (список виводу);

15 слайд

Завдання 1: AXby 6) TU154 2) R&B 3) 4Wheel 4) Вася 5) "PesBarbos" 7) 8) _ABBA 9) A+B

16 слайд

program zadacha1; var a, b: integer; x, y: real; begin a:= 5; 10: = x; y:= 7,8; b: = 2.5; x:= 2*(a + y); a: = b + x; end. Ім'я змінної має бути ліворуч від знака:= ціла та дробова частина відокремлюються комою та невідповідність типів Невідповідність типів ЗАВДАННЯ 2: Знайдіть помилки в записі програми.

PASCAL ВСТУП У МОВУ ПРОГРАМУВАННЯ 2006 СТРУКТУРА КУРСУ інтерфейс та основні визначення; структура програми; виведення на екран текстової інформації; введення даних із клавіатури; підключення та використання системних модулів; робота з основними типами даних (цілий, речовий, рядковий, масив, файловий) робота з графікою; використання підпрограм (процедури та функції); Використання модулів. 2 ІНТЕРФЕЙС СЕРЕДОВИЩА PASCAL Мова програмування Turbo Pascal 7.0 укладена в інструментальну оболонку. Вона включає: багатовіконний текстовий редактор; компонувальник програм; налагоджувач програм; систему допомоги; компілятор. 3 ІНТЕРФЕЙС СЕРЕДОВИЩА PASCAL 4 Список відкритих файлів: Alt + 0 Швидкий доступ до відкритих файлів: Alt +<№ окна> ОСНОВНІ ВИЗНАЧЕННЯ Зарезервоване слово – це спеціальне слово, яке використовується мовою програмування для відокремлення логічних областей програми. Оператор – це команда мови, яка виконує будь-яку дію (перевірка умови, організація циклу та ін.). Ідентифікатор – це ім'я, що вільно обирається програмістом для елементів програми. Тип даних – це характеристика ідентифікатора, що визначає безліч значень, які він може набувати (цілі чи дробові числа, рядки символів, логічні вирази тощо). 5 ЗАГАЛЬНА СТРУКТУРА ПРОГРАМИ Program Ім'я_програми; Uses розділ модулів, що підключаються; Label розділ опису міток; Const розділ опису констант; Type розділ опису власних типів даних; Var розділ опису змінних; Begin Основне тіло програми; End. Мінімальний код: 6 ВИСНОВОК НА ЕКРАН Для виведення інформації на екран, використовуються оператори: Write або Writeln. F9 – Компіляція + перевірка Ctrl+F9 – Запуск F9 → Ctrl+F9 – уникнення помилок Відображення результатів виконання програми 7 ВИСНОВОК НА ЕКРАН Результат застосування операторів: WRITE «Порожній» оператор WRITELN додає порожній рядок WRITELN 8 ВПРАВИ Виведіть інформацію на екран так, як нижче Hello! Nice to see you! Call me computer. Використовуваний матеріал: Оператори виведення: Write, WriteLn "Порожній" оператор WriteLn; вставляє порожній рядок. 9 ПІДКЛЮЧЕННЯ ДОДАТКОВИХ МОДУЛІВ Додаткові модулі розширюють можливості ваших програм шляхом введення додаткових операторів. Модулі підключаються до розділу Uses. Program My; Uses Модуль1, Модуль2; ________________________ ________________________ ________________________ ________________________ МОДУЛЬ 1 Набір ресурсів 1 … МОДУЛЬ N Модулі: Системні Власні Набір ресурсів N Очищення текстового екрана Очікування натискання на клавішу Під'єднаний модуль з ім'ям CRT 10 ВИХІД Y ВИХІД де X, Y – координати знайомства на екрані. X може набувати значень від 1 до 80, а Y від 1 до 25. Наприклад: Program My_program; (Підключення модуля) Uses Crt; Begin (Очищення екрану) ClrScr; (Виведення даних) GotoXY(1, 1); write("▒"); GotoXY(80, 1); write("▒"); GotoXY(1, 25); write("▒"); GotoXY(80, 25); write("▒"); (Затримка екрана) ReadKey; End. Програма виводить на кутах екрана символ “▒” (код 177). 11 ВИСНОВОК У КВІТІ TextColor (Color); Визначає колір символів. TextBackground (Color); Визначає колір знайомства. Program MyProgram; Uses Crt; Begin TextColor(Red); TextBackGround(Blue); Write("На дворі"); TextColor(White); Write("трава,"); TextColor(Green); TextBackGround(Yellow); Write("на траві"); TextBackGround(Magenta); Write("дрова. »); End. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 бузковий – коричневий – світло-сірий – темно-сірий – блакитний – світло-зелений – світло-ціановий – рожевий – світло-бузковий – жовтий – білий РОБОТА З ДАНИМИ РОБОТА З ДАНИМИ ОБ'ЯВЛЕННЯ даними ЗАВДАННЯ ЗНАЧЕНЬ Операції з даними ІДЕНТИФІКАТОРИ Термін ідентифікатор застосовується до константів, змінних, функцій, процедур, компонентів та інших об'єктів, що визначаються користувачем. не можуть складатися з кількох слів, не можуть збігатися з будь-яким із ключових слів В ідентифікаторах не враховується регістр символів. Помильні ідентифікатори: Дані My name 2Array Var ( ( ( ( Використовуються російські символи ) Є пробіл ) Починається з цифри ) Збігається з ключовим словом ) 15 ТИПИ ДАНИХ Тип даних – це характеристика ідентифікатора, що визначає безліч значень, які він може приймати (ціл. числа, рядки символів, логічно вирази та ін.). 16 ЦІЛИЙ ТИП ДАНИХ 17 Кінцевий набір можливих значень тип byte shortint word integer longint діапазон 0..255 -128..127 0..65535 -32768..32767 -2147483648..2147 4 Вихід за межі діапазону призводить до помилки! Розм ОГОЛОШЕННЯ ЗМІННИХ Змінна – це ідентифікатор, здатний зберігати будь-яке значення (число, рядок тощо) та змінювати його в процесі роботи програми. Синтаксис: Var<имя переменной> : <тип переменной>; Program Ім'я_програми; Uses розділ модулів, що підключаються; Var розділ опису змінних; Begin Основне тіло програми; End. Зарезервовано місце в пам'яті комп'ютера під 3-х змінних 18 ЗАВДАННЯ ЗНАЧЕНЬ ЗМІНИМ Для завдання значення змінної, необхідно скористатися оператором присвоєння:= Синтаксис запису:<Переменная> := <Значение>; У змінну (цілочисленну) з ім'ям А заноситься значення 3 19 ОПЕРАЦІЇ З ЦІЛИМИ ЗМІННИМИ 20 Арифметичні операції: + - * / Стандартні операції: div | mod | sqr Не можна використовувати з цілими типами У змінну з ім'ям S заноситься сума значень, які зберігаються в змінних X і Y Значення, що зберігається в змінній з ім'ям S виводиться на екран ВПРАВА 21 1. Напишіть програму, яка виводить на екран результат множення чисел 15 і 2 2. Напишіть програму, яка виводить на екран значення функції f 2 x 3 y , при x=11, y=3 Використовуваний матеріал: Змінні оголошуються в розділі Var Цілий тип називається Integer Синтаксис присвоєння змінної значення:<Переменная> := <Значение> ; Після кожного оператора ставиться знак; (крім begin та останнього end) РЕЧОВИННИЙ ТИП ДАНИХ Безліч значень √ √ Порядковий тип Речовий тип Одностороння сумісність: Речовий Цілий Цілий Речовинний! Вихід за межі діапазону та недотримання правил сумісності призводить до помилки! 22 ОПЕРАЦІЇ З РЕЧОВИНИМИ ЗМІННИМИ 23 Стандартні операції: pi | Sqrt | Sin | Cos | Abs | Exp | Ln Round | Trunc (речовий → цілий) Наприклад (X, S – тип Real): X:= pi/3; S:= Sin(X) * 100; Write (Round(S)); У змінну з ім'ям S заноситься відношення значень, які зберігаються в змінних X і Y Позиція числа та число символів у частині дробу E – позначає ступінь числа. 5.6E-5 = 5.6·10-5 РЯДКОВИЙ ТИП ДАНИХ 24 Рядки – впорядкований набір символів. Рядки укладені в апострофи. Рядки не сумісні з цілими та речовими типами. Тип Діапазон String 255 символів (Основні оператори для рядків) + (конкатенація) Length (S); ( Довжина рядка ) Наприклад: X: = 'Вася'; Write('У вашому імені', Length(X), 'літер.'); S: = X; X: = S; ВПРАВА Напишіть програму, яка виводить на екран результат поділу чисел 12.89 і 0.22 з відображенням лише трьох значущих цифр після коми в наступному форматі: перше число поділити на друге число = результат Write (X:1:3, 'razdelit na', y:1 :3, ' = ' z:1:3) Використовуваний матеріал: Строковий тип називається String Рядки полягають в опострафи Конкатенація рядків відбувається через знак + В операторі виведення на екран, різні типи відокремлюються комою 25 ВВЕДЕННЯ ДАНИХ З КЛАВІАТУРИ 26 Для того, щоб ввести інформацію з клавіатури необхідно скористатися оператором введення: Read або ReadLn. Синтаксис: Read (N1, N2, … Nn); Де N1, N2, … Nn – змінні (цілі, речові, рядкові) У змінну Х, заноситься значення, введене з клавіатури Після введення значення, необхідно натиснути клавішу Enter Якщо змінних в операторі вказано кілька, то вони вводяться через пробіл, або через натискання клавіші Enter ВПРАВА 27 1. Напишіть програму міні-калькулятор, яка обчислює суму двох чисел, введених з клавіатури. 2. Напишіть програму, яка запитує, як Вас звуть, а після того як Ви напишіть своє ім'я виводить вітання. Наприклад, якщо Ви ввели ім'я Ваня, то програма виведе фразу: Привіт, Ваня! Використовуваний матеріал: Оператори введення: Read, ReadLn ОПЕРАТОРИ УМОВНИЙ ОПЕРАТОР 29 Умовний оператор реалізує «розгалуження», тобто змінює порядок виконання операторів залежно від істинності чи хибності певної умови. Перевірка умови НІ Дія 1 Піду на пляж Іде дощ ТАК Дія 2 Візьму парасольку Дія 3 Піду в кіно ПЕРЕВІРКА УМОВ Операції порівняння: > - більше< - меньше = - равно >= - більше чи одно<= - меньше или равно <>- не дорівнює 30 Логічні операції: Not And Or - Не -І - Або Наприклад: Якщо Мій зріст > Зростання Петі, То я вище Петі Якщо (іде дощ) Або (йде сніг), То я залишусь вдома Якщо Не ((йде дощ) ) І (вітер)), То я піду гуляти При використанні логічних операцій, умови полягають у дужках СИНТАКСИС ЗАПИСУ УМОВНОГО ОПЕРАТОРА Коротка форма: If<условие>then<оператор>; Наприклад, якщо в змінній Х значення менше ніж 0, тоді в цю змінну записується значення 1: If X<0 Then X:= 1; Полная форма: If <условие>then<оператор_1>else<оператор_2>; Наприклад: If X>5 Then X: = X - 1 Else X: = X + 1; Після слів Then та Else можна використовувати лише один оператор Перед словом Else, знак; відсутня 31 ВПРАВА 32 1. Напишіть програму, яка отримує на вхід суму в доларах та суму в євро, а потім виводить на екран у якій валюті сума більша (1 долар=28 руб., 1 євро=35 руб.) 2. Напишіть програму , що отримує на вхід три числа, а потім виводить на екран максимальне з них. Матеріал, що використовується: Форми запису умовного оператора: If<условие>Then<оператор>; If<условие>Then<оператор_1>Else<оператор_2>; Перед Else знак; не ставиться Операції порівняння: >< = <> >= <= Логические операции: Not Or And ОПЕРАТОРНЫЕ СКОБКИ Если после слов Then или Else необходимо записать несколько операторов, то их заключают в операторные скобки (составной оператор). Операторные скобки начинаются словом Begin, а заканчиваются словом End; Например: If Z >0 Then Begin X: = 1; Y:=-1; WriteLn('Інформацію прийнято'); End Else WriteLn('Помилка'); 33 ОПЕРАТОР ВИБОРУ CASE Оператор вибору використовується для заміни конструкцій із вкладених умовних операторів. Синтаксис запису Case<порядковая_переменная>of<значение_1> : <оператор_1> ; <значение_2> : <оператор_2> ; ……… <значение_N> : <оператор_N>Else<оператор_N+1>; End; В операторі вибору можна використовувати операторні дужки Не обов'язковий рядок 34 ОПЕРАТОР ВИБОРУ CASE Case Зростання учня of 16..30: Ви учень початкових класів; 31,32,33: Ви навчаєтесь у класі 5-6; 34..50: Ви старшокласник Для перерахування значень використовується кома, для вибору діапазону – двокрапка Else Ви явно не учень; End; Case x of -128..-1: writeln('Негативні'); 0: writeln('Нудь'); 1..127: writeln('Позитивні') Else WriteLn('Вихід з діапазону'); End; 35 ВПРАВА Напишіть програму, яка отримавши число, виводить на екран відповідний день тижня. Наприклад, ввели число 2, програма має вивести вівторок. Якщо число виходить за межі 1.7, то має бути виведене повідомлення, що такого дня немає. Використовуваний матеріал: Оператор вибору: Case<порядковая_переменная>of<значение_1> : <оператор_1> ; ……… <значение_N> : <оператор_N>; Else<оператор_N+1>; End; 36 ЦИКЛИ 37 Циклічними називаються алгоритми, у яких виконання деяких операторів здійснюється багаторазово з тими самими модифікованими даними (наприклад, процедура множення чисел через їх багаторазове складання). У мові Паскаль є три оператори циклу: For (цикл із параметром чи задане число повторень) While (цикл ПОКИ) Repeat (цикл ДО) Якщо число повторень відомо, краще скористатися оператором циклу з параметром. ЦИКЛ З ПАРАМЕТРОМ 38 Цикл на задану кількість повторень із зростаючим або спадним значенням параметра For (парам) := (поч_зн) To (кон_зн) Do (оператор) ; Тіло циклу Примітки Параметр – цілий тип; У циклі можна використовувати операторні дужки; У тілі циклу не можна змінювати параметр циклу; Параметр циклу зростає на одиницю; Початкове значення > кінцевого, інакше тіло циклу ігнорується; Для зменшення параметра за місце To використовувати DownTo. ЦИКЛ З ПАРАМЕТРОМ 39 Написати програму, яка запитує цілі числа (a, b), причому a := <нач_зн>To<кон_зн>Do<оператор>; Параметр - цілий тип (зазвичай, Integer); У циклі можна використовувати операторні дужки; Параметр циклу збільшується на одиницю 40 ЦИКЛ WHILE («ПОКИ») Цикл While спочатку перевіряє умову, і тільки якщо вона справді виконує тіло циклу. While (умова) do (оператор); У тілі коду, написаному нижче цикл, не виконатися жодного разу: x:=1; While x>1 do x:=x-1; Можна одержати нескінченний цикл. Наприклад: x:=1 While x>0 do х:=х+1; 41 ЦИКЛ WHILE («ПОКИ») Програма виведення на екран суми чисел від a до b. While not keypressed do begin Delay(2000); End; Цикл працює, поки змінна змінна f не стане більше значення b 42 ВПРАВА 43 1. Космонавти вирішили на місяці садити берези, причому щороку збільшувати кількість берез у два рази, в перший рік посадили 3 берези. Виведіть на екран через скільки років число берез перевищить 10 000. 2. Напишіть програму, яка визначає максимальне з введених чисел з клавіатури (введення чисел закінчується числом 0). Нижче наведено рекомендований вигляд екрана: Введіть числа. Для завершення введення введіть 0. 89 15 0 Максимальне число 89. Використовуваний матеріал: Оператор циклу While: While<условие>do<оператор>; Цикл While спочатку перевіряє умову, і лише якщо вона справді виконує основне тіло циклу. ЦИКЛ REPEAT («ДО ТИХ ПІР») 44 Цикл Repeat спочатку виконує тіло циклу, а лише потім перевіряє умову Repeat (тіло_циклу) Until (умова); Немає потреби у циклі Repeat використовувати складовий оператор, т.к. Ця конструкція передбачає виконання не одного, а кількох операторів, укладених між словами Repeat та Until. ЦИКЛ REPEAT («ДО ТИХ ПІР») Програма виведення на екран суми чисел від a до b. Цикл працює, доки змінна змінна f не стане більше значення b 45 ПОРІВНЯННЯ ЦИКЛІВ For While Repeat 46 Вибір моделі циклу залежить лише від зручності його використання в конкретній ситуації. Ми практично завжди можемо замість одного-го виду циклу скористатися іншим. Використовуваний матеріал: Оператор циклу Repeat: Repeat<тело_цикла>Until<условие>Цикл Repeat спочатку виконує тіло циклу, а лише потім перевіряє умову 47 ПЕРИВАННЯ ЦИКЛІВ 48 Для гнучкого управління циклічними операторами використовуються процедури: Break - вихід із циклу; Continue – завершення чергового проходу циклу; Приклади: Знайти мінімальне число i, для якого сума чисел від 1 до i більше 100. Як тільки s (сума чисел від 1 до i) стає більше 100 спрацьовує оператор break і відбувається вихід із циклу. s:=0; for I:= 1 to 100 do begin if s>100 then break; s: = s + i; end; Writeln ( 'мінімальне число i, таке, що (1+2+..+i)>100 дорівнює ',i); З клавіатури вводяться 10 чисел і циклі вважається сума лише позитивних. Якщо число негативне, то виконується оператор continue, який розпочинає наступний прохід циклу. s:=0; for I:= 1 to 10 do begin Readln (k); if k<0 then Сontinue; s:= s + k; end; Writeln (‘Сумма положительных чисел равна ’,s); МАССИВЫ МАССИВЫ 50 Простые типы: одна переменная – одно значение Структурированные типы: одна переменная – несколько значений Массив – это фиксированное количество значений одного типа. Доступ к конкретному значению осуществляется через индекс. Переменная массива Структура массива: A= Доступ к массиву: 0 1 2 3 Индекс 9 7 0 0 Значения <Имя массива> [ <Индекс>] A: = 7; МАСИВИ Масив оголошується в розділі Var: (Ім'я) : Array [ (поч_зн) .. (кон_зн) ] of (тип) ; Приклади оголошення масивів: Var A: Array of String; B: Array of Real; З: Array of Integer; Приклади заповнення масивів значеннями: A: = 'Вася'; A:=«Петя»; A:='Маша'; A:='Олеся'; Write (A); For f:=1 to 10 do C[f]:= f*2; For f:=1 to 10 do WriteLn (C[f]); 51 ВПРАВА 52 Напишіть програму, яка запитує у користувача 7 цілих чисел і заносить їх до масиву. У масиві знаходиться максимальний елемент та відображається на екрані. Наприклад: Введіть 1 число: 4 Введіть 2 число: 8 Введіть 3 число: 9 Введіть 4 число: 2 Введіть 5 число: 4 Введіть 6 число: 5 Введіть 7 число: 0 Максимальне число: 9 Використовуваний матеріал: Оголошення масиву:<Имя>: Array [<нач_зн> … <кон_зн>] of<тип>; Доступ до масиву:<Имя массива> [ <Индекс>] ГЕНЕРАТОР ВИПАДКОВИХ ЧИСЕЛ (ГСЧ) Для генерації у програмі випадкових чисел використовують наступні оператори: Randomize – ініціалізація ГСЧ. Оголошується лише на початку програми; Random – генерує випадкове число від 0 до 1 (речовий тип); Random (N) – генерує довільне число від 0 до N-1 (цілий тип); 53 БАГАТОМІРНІ МАСИВИ 54 Список інтервалів для кожної розмірності масиву (Ім'я) : Array [ (поч_зн) .. (кон_зн) , (поч_зн) .. (кон_зн) , (і т.д.) ] of (тип) ; Приклад оголошення двомірного масиву (матриці, таблиці) на 4 рядки та 6 стовпців: Var A: Array of Integer; Приклад заповнення масиву: For i:=1 to 4 do For j:=1 to 6 do A := i+j; Ai , j 2 3 4 5 3 4 5 6 4 5 6 7 5 6 7 8 6 7 8 9 7 8 9 10 ВПРАВА Напишіть програму, яка заповнює двовимірний масив випадковими числами від -10 до 20 і виводить суми елементів . Використовуваний матеріал: Ініціалізація ДСЛ: Randomize Випадкове число від 0 до N-1: Random (N) 55 РОБОТА З ФАЙЛАМИ РОБОТА З ФАЙЛАМИ 57 Файл: Початок файлу Покажчик [email protected]$ku⌂|"Hd9v*9(L*M=BYGRMxduВ █ 8e*ВOtCDrTVzHGJ1aBD>@Б\(r8sE) █ :wcJvAmRa"v/.Wai;$`SWI=y2]suB █ ?Hq>vF(LmBc .6b]o(QkВ8 █ cu<6`8Z":M^1;:8ANwak;,b2-4…u5 █ 2]suB?Hq>vF(LmBcAdz4wcP]o(QkВ █ 8c8df]e"v,su>+),VAEFБjFV,W$Q- █ y0G1GjN$-eБ|sqZ0`QnВ%\БD%y █ █ █ - ознака кінця рядка █ - ознака кінця файлу Змінна Створення, читання, запис, закриття РОБОТА З ФАЙЛАМИ Послідовність дій при роботі з файлами: 1. Оголошення файлової змінної (ФП), 2. Асоціація ФП з файлом, 3. Відкриття файлу для читання/запису, 4. Операції з файлом, 5. Закриття файлу (так само розривається зв'язок між файлом і ФП), 1. Оголошення ФП<Имя>: File of<тип> ; <Имя>: Text; Var f: Text; h: File of Integer; 2. Асоціація ФП із файлом Assign (<ФП>, <имя файла>); Assign (f, 'c:\my\Data.ghm') 58 РОБОТА З ФАЙЛАМИ 3. Відкриття файлу для читання/запису Reset (<ФП>); - Відкриває файл для читання Rewrite (<ФП>); - відкриває файл для запису 4. Операції із файлом Read (<ФП>, <П1> , <П2>, …); - зчитує у змінні<П1>, <П2>і т.д. по одному елементу з позиції покажчика. Write (<ФП> , <П1> , <П2>, …); - записує у файл значення змінних<П1>, <П2>і т.д. по одному елементу з позиції покажчика. EoLn (<ФП>); - повертає True, якщо досягнуто кінця рядка. EoF (<ФП>); - повертає True, якщо досягнуто кінець файлу. 5. Закриття файлу Close (<ФП>); 59 РОБОТА З ФАЙЛАМИ Спростіть програму, якщо відомо, що матриця розміром 5x5 (використовуйте цикл For) 60 ВПРАВА 61 Напишіть програму «ДОМ-3». У першому файлі містяться імена учасників у називному відмінку. У другому, ті самі імена, але в знахідному. У третьому – список вираження почуттів чи якась дія (любить, не любить, цілує, хоче вкусити, обожнює, поважає, ненавидить, хоче бачити, обіймає). Програма повинна випадково брати інформацію з цих файлів та створювати новий за таким принципом:<имя в им. пад> <чувство/действие> <имя в вин. пад> Ольга любить Сергій Олег хоче бачити Романа Катя поважає Настю І т.д. Матеріал, що використовується: Назва операторів: Assign, Rewrite, Reset, Write, Read, Close. ГРАФІКА ГРАФІКА Для роботи з графікою Pascal необхідні два файли – модуль graph.tpu і драйвер графічного адаптера egavga.bgi. Перший знаходиться в каталозі \UNITS, а другий - \BGI. ! Драйвер egavga.bgi. Необхідний під час роботи exe файла! Щоб малювати, треба: 1. підключити модуль GRAPH (у розділі Uses); 2. ініціалізувати графіку (InitGraph); 3. щось намалювати; 4. закрити графічний режим (CloseGraph) 63 ГРАФІКА Ініціалізація графічного режиму Малювання лінії. Перо переходить із точки (0,0) у точку (639, 479). PROGRAM Primer_1; Uses Graph, crt; Var Gd, Gm: Integer; BEGIN Gd: = 0; InitGraph (Gd,Gm,'d:\BP\bgi"); Line (0,0,639,479); ReadKey; CloseGraph; END. 639 пікс. Система координат 479 пікс. трикутник 2. Зобразити в центрі екрану прямокутник зі сторонами в двоє меншими, ніж відповідні сторони екрана Використовуваний матеріал: Графічний модуль: Graph Ініціалізація графіки: InitGraph Закриття графічного режиму: CloseGraph; word;Повертає колір пера SetBkColor(color: word);Встановлює колір фону GetBkColor:word Повертає колір фону. – червоний – бузковий – коричневий – світло-сірий – темно-сірий – блакитний – світло-зелений – світло-ціановий – рожевий – світло-бузковий – жовтий – білий ГРАФІЧНІ ПРИМІТИВИ Line (x, y); координат (x, y). MoveTo (x, y); Встановлює перо координати (x,y). PutPixel (x, y, Color); Малює точку з координатами (x, y) кольором Color. GetPixel (x, y): слово; Повертає колір точки координат (x,y). Rectangle (x1, y1, x2, y2); Будує контур прямокутника. Circle (x, y, r); Малює коло з центром (x, y) і радіусом r. SetLineStyle (Ln, 0, T) Змінює параметри контурів. Ln – стиль лінії (0..3): 67 x1, y1 T – товщина лінії: 1 = нормальна; 3 = товста. FillEllipse (x, y, Xr, Yr); Малює зафарбований еліпс з центром (x, y) і радіусами Xr та Yr. SetFillStyle (Type, Color); Встановлює тип (0..11) та колір штрихування замкнутих фігур ClearDevice; Очищає графічний екран зафарбовуючи його в поточний колір тла x2, y2 ГРАФІЧНІ ПРИМІТИВИ 68 ВПРАВА 69 1. Напишіть програму, що малює на екрані монітора будиночок; 2. Напишіть програму, яка на екрані монітора малює зоряне небо з зірками випадкового радіусу (від 1 до 5 пікс.) та випадковим розташуванням. Колір теж випадковий (білий, світло-сірий, темно-сірий); Матеріал, що використовується: SetColor (Color: word); - встановлює колір малювання SetBkColor (color: word); - Встановлює поточний колір тла. Line (x, y); - Чортить лінію від поточної координати пера до координат (x, y). MoveTo (x, y); - Встановлює перо координати (x,y). PutPixel (x, y, Color); - Малює точку з координатами (x, y) кольором Color. Rectangle (x1, y1, x2, y2); - Будує контур прямокутника із ліній поточного кольору. Circle (x, y, r); - Малює коло з центром (x, y) і радіусом r. FillEllipse (x, y, Xr, Yr); - Малює зафарбований еліпс з центром (x,y) і радіусами Xr і Yr. ГРАФІКА + АНІМАЦІЯ Пауза у мСек. 70 ПІДПРОГРАМИ ПІДПРОГРАМИ Підпрограми дозволяють виділяти повторювану частину коду в окремі фрагменти і вставляти в потрібні місця програми. Функція, на відміну від процедури, повертає результат виклику. Процедури Функції Підпрограми: пишуться між ключовими словами Begin End; ідентифікуються за іменами, що пишуться за правилами завдання ідентифікаторів; можуть мати вхідні та вихідні параметри; Повністю повторюють структуру основної програми. 72 Program My; Підпрограма 1 [Код підпрог-ми 1] Підпрограма 2 [Код підпрог-ми 2] Begin Підпрограма 2 Підпрограма 1 Приклад системних підпрограм: Write(“Ок”); ClrScr; Length (S); Random; // // // // процедура з одним параметром процедура без параметрів функція з одним параметром функція без параметрів Підпрограма 2 End. ПІДПРОГРАМИ (ППР) Вкладеність підпрограм Програма Підпрограма 1 Підпрограма 3 Підпрограма 4 Підпрограма 2 73 Область доступності змінних Змінні, описані в деякій ППР, відомі в межах її тіла, ВКЛЮЧАЮЧА і всі вкладені ППР (змінна описана в ППР1 . Імена змінних, описаних у ППР, можуть збігатися з іменами змінних з інших ППР (у кожній із ППР може бути оголошена однакова змінна). Ім'я змінної, описане в ППР, екранує однойменні змінні з ППР, що охоплюють даний (якщо ППР1 і ППР3 оголошені однакові змінні, то кожної ППР ці змінні будуть унікальні). Змінні програми називаються глобальні, а змінні підпрограм – локальні. ПРОЦЕДУРИ БЕЗ ПАРАМЕТРІВ Синтаксис запису: Procedure (ім'я процедури); (розділ змінних, констант, типів, міток, модулів) Begin (Тіло процедури); End; Приклад використання процедури без параметрів: 74 ПРОЦЕДУРИ БЕЗ ПАРАМЕТРІВ Приклад екранування однойменних змінних: Program My_program; Uses Crt; Var A:String; // Опис процедури Procedure My_Procedure; Var A:String; Begin A:= "Підпрограма"; Writeln(A); End; Begin A:= "Тіло"; Writeln(A); My_Procedure; Writeln(A); End. // Виклик процедури 75 ПРОЦЕДУРИ З ПАРАМЕТРАМИ 76 Для того, щоб підпрограми були більш універсальними, застосовуються спеціальні механізми обміну даними між програмою та її підпрограмами. Системні процедури із параметрами: SetColor (Red); ( Процедура з Rectangle (0, 0, 639, 479); ( Процедура з InitGraph (Gd,Gm,'d:\BP\bgi"); ( Процедура з ( параметрами одним параметром ) кількома параметрами ) декількома різнотипними ) ) Синтаксис запису процедури з параметрами Procedure (Ім'я) ((Область вхідних змінних) Var (Область вихідних змінних (для кожної змінної свій Var)));Структура областей: Змінна_1, Змінна_2, … : Тип; ............. Змінна_N-1, Змінна_N, … : Тип, Будь-яка з областей може бути відсутнім ПРОЦЕДУРИ З ПАРАМЕТРАМИ Використання вхідних параметрів Процедура малювання прямокутника, що облямовує екран, заданого кольору Без параметрів З параметрами Procedure Cir; SetColor (i); SetBkColor (b); Rectangle (0, 0, 639, 479); End; Procedure Cir (i, b:Integer); 639, 479), End, Виклик процедури в програмі: Виклик процедури в програмі: i:=6;b:=12;Cir;Cir(6, 12);77 радіальну. PROGRAM EX_26_3; VAR x,a: real; PROCEDURE Rad(alfa: real; var betta: real); (Вихідна змінна) BEGIN Betta: = pi * alfa / 180; END; BEGIN Write("Введіть кут у градусах: "); Readln(x); Rad(x, a); (Виклик процедури) Writeln("Йому дорівнює кут у радіанах = ",a:6:4); END. 78 ВПРАВА 79 1. Напишіть процедуру, яка малює трикутник, у такому форматі: Triangle (x1, y1, x2, y2, x3, y3, Color) 2. Напишіть процедуру обчислення площі прямокутника у такому форматі: SRect (a, b, S) де S – вихідний параметр процедури. Використовуваний матеріал: Procedure (Ім'я) ((Область вхідних змінних) Var (Область вихідних змінних)); Структура областей: Змінна_1, Змінна_2, … : Тип; ........................ Змінна_N-1, Змінна_N, … : Тип; ФУНКЦІЇ 80 Синтаксис запису функції Function ((Область вхідних змінних) Var (Область вихідних змінних)): (Тип) ; Оформлення процедури Оформлення функції Procedure S (a, b: real; var s: real); Begin s:= a+b; End; Function Sum (a, b: real): real; Begin Sum:= a+b; End; Виклик процедури Виклик функції S(10, 20, A); Write (A); A:= S(10, 20); WriteLN (A); WriteLN (S(20, 30)); Оформляти деяку підпрограму як функцію доцільно лише тому випадку, якщо очікується певний результат роботи. Якщо підпрограма орієнтована лише виконання певної послідовності дій (висновок на екран, малювання тощо.), краще оформити її як процедуру. ВПРАВА Напишіть функцію обчислення площі прямокутника у наступному форматі: SRect (a, b) Використовуваний матеріал: Function (Ім'я) ((Область вхідних змінних) Var (Область вихідних змінних)): (Тип) ; Структура областей: Змінна_1, Змінна_2, … : Тип; ........................ Змінна_N-1, Змінна_N, … : Тип; 81 МОДУЛІ 83 Модуль (UNIT) - самостійна програмна одиниця, ресурси (процедури та функції) якої можуть бути використані іншими програмами. Program My1; Uses Модуль1, Модуль2; __________________________ __________________________ __________________________ __________________ МОДУЛЬ 1 Набір ресурсів 1 … Program My2; Uses Модуль1, Модуль2; __________________________ __________________________ __________________________ __________________ МОДУЛЬ N Набір ресурсів N Модулі підключаються до програми через розділ USES МОДУЛІ. СТРУКТУРА 84 Модуль складається з наступних частин: 1. Заголовок модуля. 2. Інтерфейсна частина. (Опис видимих ​​об'єктів) 3. Реалізаційна частина. (Описи прихованих об'єктів) 4. Ініціалізаційна частина (не обов'язкова). Unit (Ім'я модуля); Interface ( Розділ глобальних змінних, констант, типів) ( модулів ) ( Список заголовків процедур та функцій ) Implementation ( Розділ локальних змінних, констант, типів) ( Реалізація процедур та функцій ) Begin ( Частина ініціалізації ) End. ! Ім'я заголовка модуля повинне співпадати з ім'ям файлу модуля! Модулі Приклад модуля: Unit My_Unit; Interface Var ms: Array of Real; (Глобальний масив) Function Cub(x:integer):Integer; (Функція Cub = x^3) Function ext4(x:integer):Integer; ( Функція ext4 = x^4 ) Implementation Function Cub(x:integer):Integer; (Реалізація функції Cub) Begin Cub: = x * x * x; End; Function Ext4(x:integer):Integer; (Реалізація функції ext4) Begin Ext4: = x * x * x * x; End; End. 85 ВПРАВА 86 Напишіть модуль однією функцією та однією процедурою: ( Функція обчислення X1=1/x ) X1(a:real):real; ( Процедура друку на екрані слова S, у позиції X, Y WriteXY(S:String; X,Y:Iteger); Використовуваний матеріал (структура модуля): Unit (Ім'я модуля); Interface (Розділ глобальних змінних, констант, типів) ( модулів ) ( Список заголовків процедур та функцій ) Implementation ( Розділ локальних змінних, констант, типів) ( Реалізація процедур та функцій ) Begin (Частина ініціалізації ) End.