2. Алгоритмізація та програмування.
Мова Паскаль
“… мова, якою учня навчають висловлювати
свої думки, здійснює глибокий вплив на його
навички мислення та винахідницькі здібності…”
Ніколаус Вірт
3. Етапи розв’язування задач
з використанням комп’ютера
1. Постановка задачі.
2. Побудова моделі.
3. Складання алгоритму.
4. Вибір програмного засобу.
5. Тестування програмного засобу.
6. Виконання програми та аналіз
результатів.
5
6
10
19
4. Постановка задачі
1. Формулювання умови задачі.
2. Конкретизація даних, невідомих.
3. Визначення правильних результатів.
Точність постановки задачі
Можливість забезпечити однакове розуміння
задач різними людьми.
4
5. Моделювання
Модель – це спрощене уявлення про
реальний об’єкт, процес чи явище.
Географія Хімія Фізика Біологія
Головне призначення
моделі
Демонстрація лише суттєвих
властивостей об’єктів, процесів і
явищ.
4
6. Класифікація моделей
За галузями використання: Методи дослідження
навчальні
ігрові
дослідні
науково-технічні
імітаційні
За способом представлення:
матеріальні
інформаційні
За ознакою фактора часу:
динамічні
статичні
експериментальний теоретичний
4
8
6
7. Інформаційні моделі
Інформаційна модель – це сукупність інформації, яка харак-
теризує властивості та стан об’єкта, процесу чи явища, а та-
кож їх взаємодію із зовнішнім світом.
Інформаційна модель
вербальна знакова
За формою представлення:
геометричні
словесні
математичні
структурні
логічні
спеціальні
комп’ютерні
некомп’ютерні
4
8. Запитання для самоконтролю
1. З яких етапів складається розв’язання задачі на комп’ютері?
2. Які етапи виконує людина?
3. На яких етапах використовується комп’ютер?
4. Що таке модель? Яке призначення моделі?
5. Що називається моделюванням?
6. На яких двох методах дослідження базується моделювання?
7. За якими основними ознаками класифікують моделі?
8. Які існують типи моделей?
9. Що таке інформаційна модель?
10. Наведіть власні приклади побудови інформаційної моделі.
9. Алгоритми
Алгоритм – це зрозумілий, точний та повний опис послідовності
простих дій для розв’язування конкретної задачі.
IX століття. Узбецький математик Мухаммед ібн Муса аль_Хорезмі
(латинь: Algorithm). Трактат про правила виконання арифметичних
дій.
Алгоритм
числовий нечисловий
Виконавець алгоритму
людина машина
11. Запитання для самоконтролю:
1. Що ми називаємо алгоритмом? Як виник термін “алгоритм”?
2. Які бувають алгоритми?
3. Назвіть основні властивості алгоритмів.
4. Що називається системою команд виконавця?
5. Хто може бути виконавцем алгоритму?
6. Які помилки можуть бути в алгоритмі?
7. Які помилки називаються синтаксичними?
8. Які помилки називаються логічними? Хто їх знаходить і
виправляє?
13. Словесний запис алгоритму
Виконавець: людина
Правила запису:
• алгоритм складається з послідов-
ності дій, записаних словами;
• дії можуть мати різні
скорочення, позначення,
формули;
• дії повинні бути точно визна-
ченими і посильними для вико-
нання;
• усі дії алгоритму повинні бути
пронумеровані
Задача: Обчислити значення
функції y=3a2 - 5a..
1. а помножити на а,
результат позначити R1.
2. R1 помножити на 3,
результат позначити R2.
3. 5 помножити на а,
результат позначити R3.
4. R2 відняти R3, результат
позначити y
14. Типи виразів
Арифметичний – це звичайна формула, операндами
якої можуть бути числа, змінні, функції. (b2-4ac)
Умовний – це вислів про значення операндів, який
може бути істинним або хибним.
Результат: “так” або “ні”; “істина” або “хибність”; “true” або “false”
Логічний – складений вислів про значення декількох
умовних виразів.
Логічні операції: і (and), або (or), ні (not)
15. Графічний запис алгоритму
Графічний запис алгоритму складається із визначених
зображень дій за допомогою геометричних фігур:
початок
кінець
введення даних
виведення результату
обчислення
умова
Блок-схема
Геометричні фігу-
ри з’єднуються
лініями зі стріл-
ками
16. Базові структури алгоритмів
Лінійний
Послідовність дій
Циклічний
Визначена кількість повто-
рень однієї або декількох дій
згідно сформульованої умови
Розгалужений
Вибір з двох можливих дій в за-
лежності від сформульованої
умовипочаток
введення
даних
обчислення
виведення
результату
кінець
умова
дія 1
умова
дія 1 дія 2
умова
дія
ні
так
дія
умова
ні
так
17. Запитання для самоконтролю:
1. Які ви знаєте способи запису алгоритмів?
2. Яких правил потрібно дотримуватись у словесному записі алгоритму?
3. Чому словесний спосіб запису алгоритму вважається найпростішим?
4. В чому особливості графічного запису алгоритму?
5. Які існують типи виразів?
6. Які базові структури може мати алгоритм?
7. З яких типів вказівок складається будь-який алгоритм?
8. Які існують типи алгоритмів?
9. Які загальні принципи запису вказівок?
10. Які алгоритми називаються лінійними?
11. Які алгоритми називаються розгалуженими?
12. Які алгоритми називаються циклічними?
18. Мови програмування
Низького рівня
(40-і роки XX ст.)
Високого рівня
(50-і роки ХХ ст)
Асемблер Паскаль
Бейсик Пролог
Delphi
Транслятор
Інтерпретатор Компілятор
GW-Basic Qbasic TurboBasic TbPascal BPascal
Середовище програмування:
редактор текстів програм;
довідково-інформаційна система;
бібліотека процедур та функцій;
компілятор чи інтерпретатор;
засоби виконання усієї програми
19. Запитання для самоконтролю:
1. Що називається мовою програмування?
2. Чим викликана значна кількість різних мов програмування?
3. На які класи традиційно поділяються мови програмування?
4. Яку функцію виконують транслятори?
5. Поясніть різницю між інтерпретатором та компілятором?
6. Що входить до складу середовища програмування?
20. Основні поняття мови Паскаль
Алфавіт
латинські символи
символи кирилиці
цифри від 0 до 9
математичні символи:
+ - * / = < >
розділові знаки:
( ) [ ] { } , . : ; ‘
Команди
введення – виведення;
присвоєння;
складена;
розгалуження;
циклу
Слова
службові
ідентифікатори
стандартні імена
Рік створення: 1960
Автор: професор Ніколаус Вірт зі Швейцарії
Призначення: навчання студентів програмуванню
Використання: розв’язування різноманітних задач
Історична
довідка
21. Службові слова
Призначені для написання команд.
Goto – перейти до
If – якщо
Label – позначка (мітка)
Mod – остача від ділення
Not – не
Of – з
Or – або
Procedure – процедура
Program – програма
Record – запис
Repeat – повторювати
Then – то
While – поки (доки)
And – і
Array – масив
Begin – початок
Case – вибір
Const – сталі (константи)
Div – ділення без остачі
Do – виконати
Downto –униз до
Else – інакше
End – кінець
File – файл
For – для
Function – функція
22. Ідентифікатори, або імена
користувача
Правила утворення імен користувача:
1. Ім’я може складатися лише з латинських літер, цифр і символа “_”;
2. Ім’я не може бути службовим словом;
3. Першим символом є буква;
4. Літери можуть бути великими або малими;
5. Імена повинні бути короткими і відповідати суті об’єкта;
6. Пропуски в іменах не допускаються;
7. Два різні об’єкти не можуть мати одне ім’я.
Приклади правильно
утворених
імен
a, b, x, a1, a2, alpha, cat, My_name,
Z_1
24. Структура Паскаль-програми
Програма складається з двох частин:
описової виконуваної
заголовок розділ описів розділ команд
та оголошень
Program <назва програми>;
<Розділ описів та оголошень>;
Begin
<Розділ команд>;
End.
Команди
Введення присвоєння виведення
Read
readln
Write
writeln
<ім’я змінної>:= <вираз>
Складена команда:
begin
<Команда 1>; …
<Команда n>;
end;
25. Запитання для самоконтролю:
1. Хто створив мову і яке призначення мови Паскаль?
2. Яка відмінність між алфавітом алгоритмічної та української мов?
3. Для чого потрібні службові слова?
4. Розкажіть про правила утворення імен.
5. З яких частин складається програма?
6. Як відокремлюються команди у програмі?
7. Назвіть імена, які користувач утворив правильно:
а) a, a1, 2a, a+1;
б) aa, aa+aa, for, begin;
в) Myname, my_number, do.
8. Якого значення набуде змінна А після обчислення виразів:
а) A:= 8 + 4 * 2 – 3;
б) A:= 3 * 6 + 3 * 5 + 3 * 4?
26. Величини
Величини бувають: константи і змінні.
Константи Змінні
не міняють свого значення під час
виконання програми.
Опис здійснюється у розділі
констант:
Const
<ідентифікатор>=<значення>;
Наприклад: Const Pi=3.14
призначені для зберігання конкретних
значень в оперативній пам’яті під час
виконання програми.
Опис здійснюється в розділі змінних:
Var
<список імен змінних>:<тип>;
27. Типи даних
Це множина значень однакової природи разом із набором
операцій, які над ними виконуються.
Цілий Дійсний Літерний
integer real char
(-32768…32767) (29Е-39…1.7Е38) (кодова таблиця)
Операції: Операції:
+, -, *, /, div, mod +, -, *, /
Булевий Рядковий
boolean string
(true, false) (0 – 255 байт)
28. Вирази
Правила утворення
та обчислення виразів:
1. Правило пріоритетів.
2. Правило дужок.
3. Правило лінійного запису.
4. Правило коректних імен.
x
Стандартні функції:
Abs(x) - |x| - модуль числа x
Arctan (x) – arctg x – арктангенс
числа х
Cos(x) – cos x) – косинус числа х
Exp(x) – ex – експонента
Ln(x) – lnx – натуральний логарифм
числа х
Sin(x) – sin x – синус числа х
Sqr(x) – x2 – піднесення до квадрату
Sqrt(x) - - корынь квадратний з
числа х
Записати вираз на мові Паскаль: (sqr(x)*sqr(x)+2*y)/(sin(2*y)-1)1)2sin(
24
y
yx
29. Запитання для самоконтролю:
1. Як ви розумієте поняття “величина”?
2. Що називається константою? Наведіть приклади.
3. Яка величина називається змінною?
4. Які стандартні типи величин використовуються у Паскалі?
5. Яке призначення виразів?
6. Сформулюйте правило дужок.
7. Які операції визначені над цілими даними?
8. Яких значень набудуть такі функції та вирази:
abs(-5); sqrt(49); 8div3; 11mod4.
30. Лінійні (прості) програми
Команди: введення; присвоєння; виведення.
Задача: Задано два цілі числа. Знайти їх суму, добуток, різницю.
Дано: a,b.
Знайти: s,d,r.
Обчислення:
s=a+b
d=a*b
r=a-b
Виведення
результатів
S,d,r
початок
Введення
даних a,b
S:=a+b
D:=a*b
R:=a-b
кінець
Program z1;
Var a,b,s,d,r : integer;
Begin
read (a,b);
s:=a+b;
d:=a*b;
r:=a-b;
writeln(‘s=‘,s);
writeln (‘d=‘,d);
writeln (эк=эбк);
End.
31. Програми з розгалуженням
Скорочений запис:
If <логічний вираз> then <команда>;
Задача: Ввести два числа. Третьому присвоїти їх суму, якщо перше більше за друге, і добуток,
якщо друге більше за перше.
Дано: a,b.
Знайти: c.
Обчислення:
Якщо a>b, то c=a+b
Якщо b>a, то с=a-b
Виведення
результату с
початок
Введення даних
a,b
a>b
c:=a+b b>a
c:=a*b
кінець
Program z2;
Var a,b,c : integer;
begin
read (a,b);
if a>b then c:=a+b;
if b>a then c:=a*b;
writeln (‘c=‘,c);
end.
32. Програми з розгалуженням
(продовження)
Дано: a,b.
Знайти: c.
Обчислення:
Якщо a>b, то c=a+b
iнакше с=a*b
Задача: Ввести два числа. Третьому присвоїти їх суму, якщо перше більше за друге, і
добуток, якщо друге більше за перше.
If <логічний вираз> then <команда> else <команда 2>;
початок
Введення даних
a,b
a>b
c:=a+b c:=a*b
Виведення
результату с кінець
Program z2;
Var a,b,c : integer;
begin
read (a,b);
if a>b then c:=a+b else c:=a*b;
writeln (‘c=‘,c);
end.
33. Запитання для самоконтролю:
1. Які службові слова використовуються для запису лінійних
програм?
2. Яка стандартна команда забезпечує введення інформації у
Паскалі?
3. Яка команда призначена для виведення інформації?
4. Як діє скорочена команда розгалуження? Яке її призначення?
5. Який загальний вигляд має скорочена команда If?
6. Який загальний вигляд має команда повного розгалуження?
7. Чи можна ставити символ “;” перед словом else?
34. Циклічні програми
Цикл з передумовою призначений для організації багатократного
виконання групи команд (тіло циклу) до тих пір, поки залишається
істинною умова виконання циклу.
Опис: While<логічний вираз> do <тіло циклу>;
Задача: Обчислити добуток перших 25 натуральних чисел.
початок
D:=1;n:=1
N<=25
D:=D*n;
N:=N+1
Виведення
результату d
кінець
так
ні
Program z3;
Var d,n:integer;
Begin
d:=1; n:=1;
while n<=25 do
begin
d:=d*n;
n:=n+1;
end;
writeln (‘d=‘,d);
End.
Складена команда
35. Циклічні програми
Цикл “для” призначений для організації багатократного виконання тіла
циклу для значень параметра циклу з деякої впорядкованої дискретної
множини.
Опис: 1) for < параметр i>:=a to b do <тіло циклу>; (a<b)
2) for <параметр i>:=a downto b do <тіло циклу>; (a>b).
Задача: Обчислити добуток перших 25 натуральних чисел.
початок
D:=1
i:=1, 25
D:=d*i
Виведення
результату d
кінець
так
ні
Program z4;
Var i,d:integer;
begin
d:=1;
for i:=1 to 25 do
d:=d*I;
writeln (‘d=‘,d);
end.
36. Запитання для самоконтролю:
1. Опишіть дію команди while.
2. Опишіть правило обчислення добутку.
3. Як буде обчислюватись сума, кількість?
4. Що таке цикл з параметром?
5. Що таке параметр циклу?
6. Чим відрізняється команда for-to від команди for-downto?
7. Чому цикл “доки” є більш універсальним, ніж цикл “для”?
37. Табличні величини
Масив – це скінченна послідовність змінних одного типу, імена яких
складаються з імені масиву та покажчика, що визначає положення
змінної у масиві.
Масиви
Одновимірні Двовимірні
Властивості масиву:
1. Тип елементів масиву повинен бути конкретно описаний. До кожного елемента
масиву існує прямий доступ.
2. Число елементів масиву визначається під час його опису і надалі не змінюється.
Опис масиву:
Var <ідентифікатор масиву>: ARRAY [m..n] of <тип елементів масиву>;
Наприклад: Var A:ARRAY [1..5] of real;
B: ARRAY [1..100,1..100] of integer;
38. Алгоритми і програми роботи з
таблицями
Алгоритми:
Знаходження суми й добутку
елементів таблиць;
Пошук елементів з деякою
властивістю;
Пошук мінімального
(максимального) елемента;
Впорядкування табличних
величин:
1. метод мінімальних
елементів;
2. метод вставки.
Задача: Обчислити суму всіх елементів
масиву A [1..25].
Program z5;
Var A:ARRAY [1..25] of real;
i: integer; s: real;
begin
for i:=1 to 25 do
begin
writeln (‘введіть елемент масиву
a[i]’);
read (a[i]);
end;
for i:=1 to 25 do S:=S+A[i];
writeln (‘S=‘,S);
end.
39. Рядкові величини
Рядок – це послідовність символів кодової таблиці комп’ютера.
Опис:
Var <ідентифікатор>: string [максим довжина рядка];
Операції: з’єднання (+), присвоєння (:=), порівняння, введення-виведення.
Функції Процедури
1. Length (A) – довжина рядка 1. Insert (A,B,p) – вставка рядка А у
рядок В, починаючи з позиції номером р
2. Copy (R,Poz, N) –копіює фрагмент 2. Delete (B,p,m) – вилучає m символів з
довжиною N рядка R з позиції Poz рядка В, починаючи від позиції р
3. Pos (A,B) –дає номер символу, з якого 3. Str (C,B) – переводить числове дане
починається входження рядка А у рядок В С у дане В типу рядок
4. Concat (A,B,…) – з’єднує рядки в один 4. Val (A,C,D) – засилає у числову змінну С
рядок числовий образ рядка А
40. Запитання для самоконтролю:
1. Для чого призначені масиви?
2. Чи може масив складатись з даних різних типів?
3. Як вводяться дані у масив?
4. Назвіть методи впорядкування даних у масиві?
5. Для чого використовують текстові дані?
6. Які дії визначені над текстовими даними?
41. Процедури і функції
Підпрограма – це засіб скорочення тексту програми та підвищення її
структурованості.
Процедура Функція
Procedure <ім’я процедури> function <ім’я процедури>
(<список формальних параметрів>); (<список формальних параметрів>):
Begin <тип результату>;
<тіло процедури> Begin
End; <тіло функції>
End;Змінні
1. Локальні – описуються в підпрограмі.
2. Глобальні – описуються в основній програмі.
3. Формальні – описуються в заголовку підпрограми.
4. Фактичні – описуються у команді підпрограми при її виклику.
42. Література
1. Глинський Я.М. Інформатика: 8-11 класи: Навч. посіб. Для загальноосвіт. навч. закл.:
У 2-х ч. – Ч.1 Алгоритмізація і програмування. 4-те вид.- Львів: Деол, СПД Глинський, 2004.
– 256 с.
2. Глинський Я.М., Анохін В.Є., Ряжська В.А. Паскаль. Turbo Pascal I Delphi. 3-тє вид. – Львів:
“Деол”, 2002. – 144 с.
3. Караванова Т.П. Інформатика. Базовий курс. Основи алгоритмізації та програму-
вання/Караванова Т.П. – Шепетівка: “Аспект”, 2005. - 192 с.
4. Милов А.В. Основы программирования в задачах и примерах: Учебный курс/Худож.-
оформитель А.С.Юхтман.- Харьков: Фолио, 2002.- 397 с.
5. Сальнікова І.І., Шестопалов Є.А. Інформатика. Короткий курс. Навчальний посібник у 2-х
частинах. Частина 2. 2005.- 208 с.
6. Сердюченко В.Я. Розробка алгоритмів та програмування на мові Turbo Pascal: Навчальний
посібник для техн. вузів / Укр.мовою – Х.: ВКП “Парытет” ЛТД, 1995.- 352 с.
7. Фролков Ю.А. Основы информатики. Алгоритмический язык// Учеб. пособие для 10 кл. –
Донецк: Центр подготовки абитуриентов, 1999.- 112 с.
8. Шестопалов Э.А. Алгоритми та програми. Основи інформатики та обчислювальної техніки.
Книга 2.- Тернопіль: Підручники і посібники, 2000.- 112 с.
9. Шост Д.М. Основи інформатики та обчислювальної техніки. Turbo Pascal. 10-11 класи.
Тернопіль: “Навчальна книга – Богдан”, 1997. – 192 с.