
- •“Розробка програмного забезпечення”
- •Організація програм
- •Інтегроване середовище turbo pascal
- •File (файл) – дії з файлами, вихід з системи
- •Save as - Використовується для збереження тексту програми в іншому місці або з іншим ім’ям.
- •Compile - компілює програму або модуль ;
- •Breakpoints - дозволяє передивитись всі контрольні точки та вилучити всі чи потрібну;
- •Title - розміщення вікон так, щоб вони мали однакові розміри;
- •Елементи мови програмування pascal
- •Елементи мови
- •Оператори реалізації розгалужених алгоритмів
- •1. Опис свого типу даних.
- •2. Використання безтипових змінних.
- •3. Масиви і рядки невизначеної довжини.
- •Дії, які можна виконувати над файлами всіх типів:
- •Процедури та функції для текстових файлів
- •Процедури та функції для прямого доступу:
- •Елементи мови
Оператори реалізації розгалужених алгоритмів
Умовний оператор.
Використовується для вибору дій в залежності від якоїсь умови.
Формат:
If <умова> then <оператор 1> [ else <оператор 2> ];
<умова> - логічний вираз
<оператор 1, 2> - може бути простим і складним
Якщо результат умови є істина, то виконується <оператор 1> , а потім управління передається оператору, що стоїть за умовним, інакше управління передається оператору, що стоїть за словом Else, якщо воно є, а потім оператору, що стоїть за умовним; якщо його нема, то зразу ж оператору, що стоїть за умовним.
<оператор 1> в свою чергу може бути умовним оператором. Такий оператор називається вкладеним. Фраза Else завжди відноситься до останнього умовного оператора. Тому, якщо внутрішній умовний оператор не має фрази Else, то <оператор 1> потрібно обмежувати операторними дужками (приклад 2).
Оператор вибору.
Використовується в тому разі, коли кількість варіантів вибору при розгалуженні більше двох.
Формат:
Case <перемикач> of
<набір значень 1>: <оператор 1>;
<набір значень 2>: <оператор 2>;
.
.
<набір значень n>: <оператор n>
[ else <альтернативний оператор>];
end;
<перемикач> - вираз переліченого типу
<набір значень n> - допустимі значення, які може приймати перемикач. Елементи набору відділяються комами. Значення повинні бути того ж типу, що і перемикач. Можна використовувати діапазони, наприклад ‘a’ .. ‘m’.
<набір значень n> - оператор, що виконується для даного набору значень. Може бути простим і складним.
Алгоритм виконання: обчислюється значення перемикача, серед наборів значень розшукується обчислене значення. Якщо воно знайдене – виконується оператор, що відповідає цьому набору і управління передається оператору, що слідує за оператором вибору. Якщо значення перемикача не знайдено ні в одному з наборів даних, то виконується <альтернативний оператор>, якщо він заданий, а потім управління передається оператору, що слідує за оператором вибору. Якщо такий оператор не задано - управління передається оператору, що слідує за оператором вибору.
Розробка програм реалізації розгалужених алгоритмів
Приклад 1. Розробити програму визначення, чи належить задане число проміжку [2,10].
program
Diapazon; {Визначення
належності Х[2,10]} var
X:real; begin
write
('Введіть значення числа ');
readln(X); if
(X>=2) and (X<=10) then
writeln
(‘Число
‘,X,’
належить
проміжку [2,10]‘)
else
writeln (‘Число
‘,X,’
не
належить
проміжку [2,10]‘);
readln; end.
Приклад 2. Розробити програму, яка виконує наступні дії: Задані два числа a,b. Якщо a не менше b (тобто a>=b), то, якщо b негативне необхідно b збільшити в 10 раз. Якщо a менше b (тобто a<b), то знайти модуль а. В інших випадках значення a,b не змінювати.
program
Rachet; {Визначення
значень a, b} var
a,b:real; begin
write
('Введіть два числа ');
readln(a,b); if
a<=b then
begin
if
b<0 then b:=10*b; end else
a:=abs(a);
writeln
(‘a=‘,a:8:2,’
b=‘,b:8:2);
readln; end.
Приклад 3. Розробити програму, яка виконує наступні дії: для введеного символу видати відповідне сповіщення: при введенні „П” вивести своє прізвище, при введенні „І” – ім’я, при введенні іншого символу видати сповіщення „Символ не оброблюється”.
program
Simbol; {Визначеннясимволів} var
С:char; begin
write
('Введіть cимвол
');
readln(С); case
C of
‘П’,’п’;
writeln
(‘Іванов‘);
‘І’,’і’;
writeln (‘Сергій‘) else
writeln
(‘Символ не обробляється’); end;
readln;
end.
Завдання для самоперевірки.
Який з операторів реалізації розгалужень краще використати, якщо необхідно визначити одне з трьох значень змінної?
Чи необхідно ставити символ пунктуації пере фразою else в умовному операторі .
Чому оператор case називається оператором вибору.
В операторі case перемикач повинен бути якого типу?
В операторі case яким символом відділяються набір значень перемикача від оператора?
Розробити програму, яка визначає, чи задане число кратне числам 7,6.
Розробити програму, яка вводить два числа і символ дії (+,- , *, /). Для введеного символу дії необхідно виконати саму дію над числами.
Розробити програму: Для двох заданих чисел x,y зробити так, щоб в х було завжди більше число.
Розробити програму, яка визначає чи є два заданих числа однієї парності.
Розробити програму, яка визначає чи є два заданих числа взаємно протилежні, тобто є однаковими по значенню і різними за знаками..
Розробити програму, яка в залежності від введеного часу (від 8 до 17 годин) сповіщає яка зараз пара, перерва або нема занять.
Оператори повторів
Бувають трьох типів:
Оператор циклу з параметром
Оператор циклу з передумовою
Оператор циклу з післямовою
Оператор циклу з параметром.
Використовується в тому разі, коли кількість повторів оговорюється попередньо.
Формат:
For <параметр циклу>:= <початкове значення> to | downto <кінцеве значення> do <оператор>;
<параметр циклу> - змінна переліченого типу, може змінюватись на крок, що дорівнює 1 або –1. В першому випадку використовується ключове слово to, в іншому – downto.
<початкове значення> , <кінцеве значення> - вирази того ж типу, що і параметр циклу. Визначають граничні значення параметру циклу. Тип повинен співпадати з типом параметру циклу.. <оператор> - тіло циклу. Може бути простим або складним оператором.
Алгоритм виконання:
Визначається значення <початкове значення> , <кінцеве значення>.
Значення <параметр циклу> зрівнюється з значенням <початкове значення>. Якщо значення <параметр циклу> не більше <початкове значення> (в разі використання фрази to) , або не більше > (в разі використання фрази downto) <кінцеве значення>, то виконується <оператор>. В протилежному випадку цикл завершується.
Після виконання <оператор> до <параметр циклу> додається 1 або -1, в залежності від фрази > to | downto.
Дії повторюються з кроку 2).
Оператор циклу з передумовою
Використовується в випадку неозначеності кількості повторів. Умова закінчення циклу перевіряється перед виконанням циклу.
Формат:
While <умова> do <оператор>;
<умова> - логічний вираз
<оператор> - тіло циклу. Може бути простим або складним оператором.
Алгоритм виконання:
Визначається значення <умова>.
Якщо результат істина, то виконується <оператор>. В протилежному випадку цикл завершується.
Після виконання <оператор> дії повторюються з кроку 1).
Таким чином, цикл повторюється до тих пір, поки значення <умова> буде істина.
Щоб оператор працював вірно, необхідно щоб в тілі циклу змінювались елементи, що входять до виразу <умова>.
Оператор циклу з післямовою
Використовується в випадку неозначеності кількості повторів. Умова закінчення циклу перевіряється після виконання циклу. Тому тіло циклу виконується хоча б один раз.
Формат:
Repeat
<оператор 1>;
.
.
<оператор n>
until <умова>;
<умова> -логічний вираз
<оператор1> . . <оператор n> - тіло циклу.
Алгоритм виконання:
Виконуються оператори тіла циклу.
Визначається значення <умова>.
Якщо результат не істина, то перехід до дії 1). В протилежному випадку цикл завершується.
Таким чином, цикл повторюється до тих пір, поки значення <умова> буде не істина.
Розробка програм реалізації циклічних алгоритмів.
Приклад 1. Вивести послідовно числа від 150 до вказаного меншого числа в зворотному порядку.
PROGRAM
chisla;
var
x,i:byte; {x
- значення, що вводиться i
- змінна циклу}
begin
write
('введи ціле число, менше 150');
readln(x);
for
i:=150 downto x
do
write
(i:5);
end.
Приклад 2. Знайти суму десяти введених значень.
PROGRAM
suma;
var
x,s:real;
i:byte; {x
- значення, що вводиться s
- сума введених значень i
- змінна циклу}
begin
s:=0;
for
i:=1 to 10 do
begin
write
('введи наступне значення');
readln(x);
s:=s+x;
end;
writeln
('Сума введених значень = ',s:10:2);
end.
Приклад 3. Вводиться послідовність символів. При введенні символу ´П´ - вивести своє прізвище, при введенні символу ´І´ - ім´я, при введенні символу ´к´ - завершити роботу.
PROGRAM
Dann;
var
c:char;
{c
- символ, що вводиться}
begin
repeat
write
(‘Введи
символ (для заверш.роботи
символ
к)’);
readln
c;
case
c of
’П’,’п’:
writeln (’Iванов’);
’I’,’i’:
writeln (’Іван ’);
end;
until
c=’к’;
end.
Приклад 4. Знайти найбільше значення функції Y=2sin(X+3)+2X на проміжку [10,100] в точках з кроком 10.
PROGRAM
Funk; var
X,Y:
max:real;
begin
X:=10;
Max:=2*sin(X+3)+2*X;
While
X<= 100 do
Begin
Y:=
2*sin(X+3)+2*X;
If
Y>max then
Max:=Y;
X:=X+10;
End;
Writeln
(‘Максимальне
значення функції
‘,max:7:2);
end.
Приклад 5. Знайти кількість цифр в заданому числі.
Program
chislo; {Сума
цифр заданого числа} var x,S:integer; begin
write
('Введи
чисдо');
readln
(x);
S:=0;
while
x<>0 do
begin
S:=S+x
mod 10;
x:=x
div 10;
end;
writeln
('Сума
цифр заданого числа =
',S:5);
readln; end.
Приклад 6. Вивести всі трьохзначні числа у яких крайні цифри однакові.
Program
chislo; var k,m,n:integer; begin for
k:=1 to 9 do
for
m:=0 to 9 do
for
n:=0 to 9 do
if
k=n then
writeln
(k*100+m*10+n:5);
readln; end.
Завдання для самоперевірки.
Який з операторів реалізації циклічних процесів краще використати, якщо відома кількість повторів.
Який з операторів реалізації циклічних процесів краще використати, якщо відомо, що повтори потрібно завершити при натисканні деякої клавіші.
Який з операторів реалізації циклічних процесів краще використати, якщо відома, що повтори потрібно завершити коли змінна набуде деякого значення.
В операторі for параметр циклу повинен бути якого типу?
Що являється умовою завершення циклу в операторі repeat ?
Скільки разів буде виконано цикл For i:=1 to 1 do writeln (‘День добрий!’);
Визначити Y. Y:=1; For i:=1 to 5 do if i<4 then inc(y);
Що являється умовою завершення циклу в операторі while ?
Скільки разів буде виконано цикл While true do writeln (‘День добрий!’);
Що являється умовою завершення циклу в операторі for ?
Розробити програму, яка визначає кількість позитивних, негативних і нульових значень в послідовності 15 заданих чисел.
Розробити програму, яка визначає факторіал заданого числа.
Розробити програму, яка визначає мінімальне введене значенні при вводі послідовності цілих чисел. Введення завершується при вводі числа -77.
Розробити програму, яка визначає всі натуральні дільники заданого числа.
Розробити програму, яка визначає чи є задане ціле число простим.
Розробити програму, яка знаходить кількість цифр заданого натурального числа.
Розробити програму, яка виводить всі трьохзначні натуральні числа у яких середня цифра є нуль.
Розробити програму, яка знаходить суму членів ряду
. N = 20.
Розробити програму, яка знаходить суму перших десяти членів ряду
.
Розробити програму, яка знаходить суму
для заданого n.
Процедурно-орієнтоване програмування .Допоміжні алгоритми
Загальна характеристика допоміжних алгоритмів.
Глобальні та локальні описи.
Упереджуючий опис підпрограм.
Функції.
Процедури.
Передача в підпрограму структурованих типів даних.
Допоміжні алгоритми - це алгоритми, які описані окремо і можуть бути використані не одноразово. Їх використання дає змогу запобігти повторних записів однакових серій операторів.
В мові Pascal допоміжними алгоритмами (підпрограми) можуть бути процедури та функції. У програмі процедури і функції задаються описами, які розміщуються в описовій частині.
Структура підпрограми така ж як і програми: вони складаються з заголовку і блоку.
Підпрограма повинна мати засіб для обміну даними між нею і програмою, що її викликає. Таким засобом є формальні параметри, які описуються в заголовку. За допомогою формальних параметрів можна передавати в підпрограму дані і отримувати їх нові значення. Параметрами можуть бути параметри-значення, параметри-змінні (перед ними повинно стояти слово VAR), параметри-процедури (перед ними ставиться слово PRОCEDURE), параметри-функції ( перед ними ставиться слово FUNCTIЇN).
Для кожного формального параметра вказується:
ключове слово (VAR, PRОCEDURE, FUNCTIОN), якщо воно потрібно,
ім´я параметра,
символ ":" та його тип.
Описи параметрів відділяються між собою символом ";".
Якщо програма, що викликає, повинна отримати результат, який визначається в підпрограмі, то такий параметр повинен бути описаний як параметр-змінна.
Виклик підпрограми має формат:
< ім’я підпрограми > [ (< список фактичних параметрів >) ];
Елементи списку відокремлюються символом ",". Між формальними та фактичними параметрами повинна бути взаємна відповідність: кількість їх повинна бути однакова, однаковий порядок слідування, тип кожного фактичного параметру повинен співпадати з типом відповідного формального параметру.
Глобальні та локальні описи
Глобальні константи, типи, змінні - це ті, що оголошені в програмі зовні процедур та функцій до їх означення. Глобальні елементи доступні всім процедурам і функціям.
Локальні - існують тільки в тілі процедури або функції, де вони визначені. Формальні параметри також є локальними.
Якщо ім´я локального опису співпадає з ім´ям глобального опису, то така змінна розглядається як локальна.
Упереджуючий опис підпрограм
При описі процедур і функцій необхідно слідкувати, щоб опис підпрограми, що викликається, був раніше виклику. Щоб не слідкувати за послідовністю записів підпрограм можна попередньо описати заголовки всіх підпрограм з словом FОRWARD, а потім в довільному порядку записати опис всіх підпрограм.
Формат попереднього опису заголовку:
<заголовок підпрограми >; FОRWARD;
Функції
Функції використовуються в тому разі, коли підпрограма повертає в якості результату одне значення простого типу.
Формат заголовку функції:
FUNCTIОN <ім´я функції> [(<список формальних параметрів>)]:
<тип результату>;
Результат функції повертається в програму, що її викликає, тільки через ім´я функції. Тому в розділі операторів функції обов´язково повинен бути оператор присвоєння імені функції значення результату або оператор присвоєння системній змінній RESULT значення результату.
Звертання до функції використовується в виразах.
Процедури
Процедури використовуються в тому разі, коли підпрограма повертає в якості результату значення структурованого типу або кілька значень, або значень не повертає..
Формат заголовку процедури:
PRОCEDURE <ім´я процедури> [(<список формальних параметрів>)];
Результат функції повертається в програму, що викликала дану, за допомогою параметрів, які обов´язково повинні бути описані як параметри-змінні.
Передача в підпрограму структурованих типів даних
Всі формальні структуровані параметри повинні бути описані як параметри-змінні.
Передачу в підпрограму структурованих типів даних можна здійснити декількома способами: