Відділ освіти Дубенської міської ради Дубенська гімназія №2
Алгоритмізація та програмування.
Мова Паскаль
(опорні конспекти)
З досвіду роботи
вчителя інформатики
Колошкіної
Тетяни Віталіївни
Дубно - 2006
Алгоритмізація та програмування.
Мова Паскаль
“… мова, якою учня навчають висловлювати
свої думки, здійснює глибокий вплив на його
навички мислення та винахідницькі здібності…”
Ніколаус Вірт
Схвалено методичною радою Дубенської гімназії №2 (протокол №4 від 27.02.2006)
У пропонованому посібнику узагальнено досвід роботи вчителя інформатики Дубенської гімназії №2 Колошкіної Т.В. з питань вивчення курсу “Алгоритмізація та програмування” за опорними конспектами. Матеріал подано в обсязі, визначеному Програмою неперервного курсу інформатики 5-11 кл . До кожного опорного конспекту подано коментар, а також запитання для самоконтролю.
Посібник призначений для вчителів інформатики, учнів шкіл, гімназій.
Мета його – допомогти школярам швидко, цілісно і на високому рівні засвоїти програмовий матеріал.
Етапи розв’язування задач з використанням комп’ютера
1. Постановка задачі.
2. Побудова моделі.
3. Складання алгоритму.
4. Вибір програмного засобу.
5. Тестування програмного засобу.
6. Виконання програми та аналіз результатів.
5
6
10
19
Постановка задачі
Формулювання умови задачі.
Конкретизація даних, невідомих.
Визначення правильних результатів.
Точність постановки задачі
Можливість забезпечити однакове розуміння
задач різними людьми.
4
Моделювання
Модель – це спрощене уявлення про реальний об’єкт, процес чи явище.
Географія
Хімія
Фізика
Біологія
Головне призначення моделі
Демонстрація лише суттєвих властивостей об’єктів, процесів і явищ.
Інформаційна модель – це сукупність інформації, яка харак-теризує властивості та стан об’єкта, процесу чи явища, а та-кож їх взаємодію із зовнішнім світом.
Інформаційна модель
вербальна
знакова
За формою представлення:
геометричні
словесні
математичні
структурні
логічні
спеціальні
комп’ютерні
некомп’ютерні
4
Запитання для самоконтролю
З яких етапів складається розв’язання задачі на комп’ютері?
Які етапи виконує людина?
На яких етапах використовується комп’ютер?
Що таке модель? Яке призначення моделі?
Що називається моделюванням?
На яких двох методах дослідження базується моделювання?
За якими основними ознаками класифікують моделі?
Які існують типи моделей?
Що таке інформаційна модель?
Наведіть власні приклади побудови інформаційної моделі.
Алгоритми
Алгоритм – це зрозумілий, точний та повний опис послідовності простих дій для розв’язування конкретної задачі.
IX століття. Узбецький математик Мухаммед ібн Муса аль_Хорезмі
(латинь: Algorithm). Трактат про правила виконання арифметичних дій.
Алгоритм
числовий
нечисловий
Виконавець алгоритму
людина
машина
Властивості алгоритму
зрозумілість
однозначність (визначеність)
дискретність (покроковість)
універсальність (масовість)
правильність (результативність)
Помилки в алгоритмі
синтаксичні
логічні
Що ми називаємо алгоритмом? Як виник термін “алгоритм”?
Запитання для самоконтролю:
Що ми називаємо алгоритмом? Як виник термін “алгоритм”?
Які бувають алгоритми?
Назвіть основні властивості алгоритмів.
Що називається системою команд виконавця?
Хто може бути виконавцем алгоритму?
Які помилки можуть бути в алгоритмі?
Які помилки називаються синтаксичними?
Які помилки називаються логічними? Хто їх знаходить і виправляє?
Способи опису алгоритмів
Словесний
Графічний
Мовою програмування
Словесний запис алгоритму
Виконавець:людина
Правила запису:
алгоритм складається з послідов-ності дій, записаних словами;
дії можуть мати різні скорочення, позначення, формули;
дії повинні бути точно визна-ченими і посильними для вико-нання;
усі дії алгоритму повинні бути пронумеровані
Задача: Обчислити значення функції y=3a2 - 5a..
а помножити на а, результат позначити R1.
R1 помножити на 3, результат позначити R2.
5 помножити на а, результат позначити R3.
R2 відняти R3, результат позначити y
Арифметичний – це звичайна формула, операндами якої можуть бути числа, змінні, функції. (b2-4ac)
Типи виразів
Арифметичний – це звичайна формула, операндами якої можуть бути числа, змінні, функції. (b2-4ac)
Умовний – це вислів про значення операндів, який може бути істинним або хибним.
Результат: “так” або “ні”; “істина” або “хибність”; “true” або “false”
Логічний – складений вислів про значення декількох умовних виразів.
Логічні операції: і (and), або (or), ні (not)
Графічний запис алгоритму
Графічний запис алгоритму складається із визначених зображень дій за допомогою геометричних фігур:
початок
кінець
введенняданих
виведення результату
обчислення
умова
Блок-схема
Геометричні фігу-ри з’єднуються лініями зі стріл-ками
Лінійний
Базові структури алгоритмів
Лінійний
Послідовність дій
Циклічний
Визначена кількість повто-рень однієї або декількох дій згідно сформульованої умови
Розгалужений
Вибір з двох можливих дій в за-лежності від сформульованої умови
Яких правил потрібно дотримуватись у словесному записі алгоритму?
Чому словесний спосіб запису алгоритму вважається найпростішим?
В чому особливості графічного запису алгоритму?
Які існують типи виразів?
Які базові структури може мати алгоритм?
З яких типів вказівок складається будь-який алгоритм?
Які існують типи алгоритмів?
Які загальні принципи запису вказівок?
Які алгоритми називаються лінійними?
Які алгоритми називаються розгалуженими?
Які алгоритми називаються циклічними?
Мови програмування
Низького рівня
(40-і роки XX ст.)
Високого рівня
(50-і роки ХХ ст)
Асемблер
Паскаль
Бейсик
Пролог
Delphi
Транслятор
Інтерпретатор Компілятор
GW-Basic Qbasic TurboBasic TbPascal BPascal
Середовище програмування:
редактор текстів програм;
довідково-інформаційна система;
бібліотека процедур та функцій;
компілятор чи інтерпретатор;
засоби виконання усієї програми
Запитання для самоконтролю:
Що називається мовою програмування?
Чим викликана значна кількість різних мов програмування?
На які класи традиційно поділяються мови програмування?
Яку функцію виконують транслятори?
Поясніть різницю між інтерпретатором та компілятором?
Що входить до складу середовища програмування?
Основні поняття мови Паскаль
Алфавіт
латинські символи
символи кирилиці
цифри від 0 до 9
математичні символи:
+ - * / = < >
розділові знаки:
( ) [ ] { } , . : ; ‘
Команди
введення – виведення;
присвоєння;
складена;
розгалуження;
циклу
Слова
службові
ідентифікатори
стандартні імена
Рік створення: 1960
Автор: професор Ніколаус Вірт зі Швейцарії
Призначення: навчання студентів програмуванню
Використання: розв’язування різноманітних задач
Історична довідка
Службові слова
Призначені для написання команд.
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 – функція
Ідентифікатори, або імена користувача
Правила утворення імен користувача:
Ім’я може складатися лише з латинських літер, цифр і символа “_”;
Ім’я не може бути службовим словом;
Першим символом є буква;
Літери можуть бути великими або малими;
Імена повинні бути короткими і відповідати суті об’єкта;
Пропуски в іменах не допускаються;
Два різні об’єкти не можуть мати одне ім’я.
Приклади правильно утворених
імен
a, b, x, a1, a2, alpha, cat, My_name,
Z_1
Стандартні імена
Типи даних
Стандартні сталі (константи)
Стандартні функції
Команди
Структура Паскаль-програми
Програма складається з двох частин:
описової виконуваної
заголовок розділ описів розділ команд
та оголошень
Program <назва програми>;
<Розділ описів та оголошень>;
Begin
<Розділ команд>;
End.
Команди
Введення присвоєння виведення
Read
readln
Write
writeln
<ім’я змінної>:= <вираз>
Складена команда:
begin
<Команда 1>; …
<Команда n>;
end;
Запитання для самоконтролю:
Хто створив мову і яке призначення мови Паскаль?
Яка відмінність між алфавітом алгоритмічної та української мов?
Для чого потрібні службові слова?
Розкажіть про правила утворення імен.
З яких частин складається програма?
Як відокремлюються команди у програмі?
Назвіть імена, які користувач утворив правильно:
а) a, a1, 2a, a+1;
б) aa, aa+aa, for, begin;
в) Myname, my_number, do.
Якого значення набуде змінна А після обчислення виразів:
а) A:= 8 + 4 * 2 – 3;
б) A:= 3 * 6 + 3 * 5 + 3 * 4?
Величини
Величини бувають: константи і змінні.
КонстантиЗмінні
не міняють свого значення під час виконання програми.
Опис здійснюється у розділі констант:
Const <ідентифікатор>=<значення>;
Наприклад: Const Pi=3.14
призначені для зберігання конкретних
значень в оперативній пам’яті під час
виконання програми.
Опис здійснюється в розділі змінних:
Var
<список імен змінних>:<тип>;
Типи даних
Це множина значень однакової природи разом із набором операцій, які над ними виконуються.
ЦілийДійснийЛітерний
integer real char
(-32768…32767) (29Е-39…1.7Е38) (кодова таблиця)
Операції: Операції:
+, -, *, /, div, mod +, -, *, /
БулевийРядковий
boolean string
(true, false) (0 – 255 байт)
Вирази
Правила утворення
та обчислення виразів:
Правило пріоритетів.
Правило дужок.
Правило лінійного запису.
Правило коректних імен.
Стандартні функції:
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)
Запитання для самоконтролю:
Як ви розумієте поняття “величина”?
Що називається константою? Наведіть приклади.
Яка величина називається змінною?
Які стандартні типи величин використовуються у Паскалі?
Яке призначення виразів?
Сформулюйте правило дужок.
Які операції визначені над цілими даними?
Яких значень набудуть такі функції та вирази:
abs(-5); sqrt(49); 8div3; 11mod4.
Лінійні (прості) програми
Команди: введення; присвоєння; виведення.
Задача: Задано два цілі числа. Знайти їх суму, добуток, різницю.
Дано: 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.
Програми з розгалуженням
Скорочений запис:
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.
Програми з розгалуженням (продовження)
Дано: 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.
Запитання для самоконтролю:
Які службові слова використовуються для запису лінійних програм?
Яка стандартна команда забезпечує введення інформації у Паскалі?
Яка команда призначена для виведення інформації?
Як діє скорочена команда розгалуження? Яке її призначення?
Який загальний вигляд має скорочена команда If?
Який загальний вигляд має команда повного розгалуження?
Чи можна ставити символ “;” перед словом else?
Циклічні програми
Цикл з передумовою призначений для організації багатократного виконання групи команд (тіло циклу) до тих пір, поки залишається істинною умова виконання циклу.
Опис: 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.
Складена команда
Циклічні програми
Цикл “для” призначений для організації багатократного виконання тіла циклу для значень параметра циклу з деякої впорядкованої дискретної множини.
Опис: 1) for < параметр i>:=a to b do <тіло циклу>; (a
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.
Запитання для самоконтролю:
Опишіть дію команди while.
Опишіть правило обчислення добутку.
Як буде обчислюватись сума, кількість?
Що таке цикл з параметром?
Що таке параметр циклу?
Чим відрізняється команда for-to від команди for-downto?
Чому цикл “доки” є більш універсальним, ніж цикл “для”?
Табличні величини
Масив – це скінченна послідовність змінних одного типу, імена яких складаються з імені масиву та покажчика, що визначає положення змінної у масиві.
Масиви
Одновимірні Двовимірні
Властивості масиву:
Тип елементів масиву повинен бути конкретно описаний. До кожного елемента масиву існує прямий доступ.
2. Число елементів масиву визначається під час його опису і надалі не змінюється.
Опис масиву:
Var <ідентифікатор масиву>: ARRAY [m..n] of <тип елементів масиву>;
У 2-х ч. – Ч.1 Алгоритмізація і програмування. 4-те вид.- Львів: Деол, СПД Глинський, 2004. – 256 с.
Глинський Я.М., Анохін В.Є., Ряжська В.А. Паскаль. 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 с.