
- •Методичний посібник для самостійної роботи
- •5.05010201 «Обслуговування комп’ютерних систем і мереж»
- •5.05010201 «Обслуговування комп’ютерних систем і мереж»
- •Затверджено методичною радою коледжу
- •Мета та задачі предмету. Історія створення та розвитку мови Pascal. Етапи розробки програми. Інтегроване середовище Turbo Pascal 7.0. Основні розділи теми.
- •Помилки. Компілятор. Синтаксис і семантика
- •Типи помилок
- •Інтегроване середовище Turbo Pascal 7.0.
- •Рядок меню.
- •Меню Compile
- •Питання для самоконтролю.
- •Алфавіт мови. Структура програми. Типи даних. Основні розділи теми.
- •Алфавіт мови
- •Типи даних
- •Стандартні типи даних.
- •Цілі типи
- •Дійсні типи
- •Нестандартні прості типи.
- •Наприклад
- •Завдання 1:
- •Типізовані константи.
- •Структура програми.
- •Перша програма.
- •Питання для самоконтролю.
- •Лінійні програми. Команди присвоювання. Команди введення та виведення даних. Форматоване виведення даних. Основні розділи теми.
- •Лінійні програми.
- •Команда присвоювання.
- •Основні операції, стандартні функції і процедури. Основні операції
- •Основні стандартні функції і процедури
- •Правила запису арифметичних виразів.
- •Правила запису стандартних функцій.
- •Команди введення даних (read, readln).
- •Команди виведення даних (write, writeln).
- •Форматоване виведення даних.
- •Х.ХхххххххххЕзнакхх
- •Питання для самоконтролю.
- •Завдання 2:
- •Розгалуження: складена команда, логічний вираз, команда розгалуження if. Команда case. Основні розділи теми.
- •Розгалуження
- •Складений оператор.
- •Логічний вираз
- •Умовний оператор if.
- •Задача2:
- •Задача 3.
- •Оператор goto.
- •Вкладений if
- •Слід знати:
- •Задача 4.
- •Задача 5.
- •Оператор вибору case.
- •Задача 6.
- •Питання для самоконтролю.
- •Завдання 3. Написати і відладити наступні програми.
- •Цикли. Команда циклу з параметром (for), команда циклу з передумовою (while), команда циклу з після умовою (repeat). Основні розділи теми.
- •Оператор циклу з параметром (for).
- •Ця команда діє, як і попередня, але крок зміни лічильника рівний -1.
- •Задача 7.
- •Задача 8.
- •Задача 9.
- •Команда циклу з передумовою (while).
- •Задача 10.
- •Команда циклу з післяумовою (repeat).
- •Задача 11.
- •Задача 12.
- •Задача 13.
- •Завдання 4:
- •Завдання 5:
- •Завдання 6:
- •Завдання 7.
- •Дайте відповідь на питання, скільки разів ця цифра зустрічається в числі Задача 17:
- •Завдання 8
- •Вкадені цикли.
- •Задача 18
- •Завдання 9
- •Питання для самоконтролю.
- •Масиви. Опис масивів. Дії над масивами. Масиви. Основні розділи теми.
- •Опис масивів.
- •Опис меж
- •Дії над масивами.
- •Заповнення масиву даними
- •Виведення масиву.
- •Обробка масиву
- •Дії з одновимірними масивами
- •Завдання 10:
- •Питання для самоконтролю.
- •Завдання для самоконтролю.
- •Сортування масивів. Двовимірні масиви. Сортування масиву Основні розділи теми.
- •Лінійне сортування (сортування відбором)
- •Програма лінійного сортування по не зростанню
- •Бульбашковий метод.
- •Підсумовування елементів кожного рядка.
- •Програма транспонування матриці.
- •Завдання 12:
- •Питання для самоконтролю.
- •Підпрограми. Процедури, функції. Рекурсивні функції. Основні розділи теми.
- •Процедури (procedure) і функції (function).
- •Виклик процедур і функцій.
- •Оператор виклику працює так:
- •Область дії параметрів:
- •Завдання 13:
- •Рекурсивні функції.
- •Завдання 14:
- •Задачі, з постановки якиїх можна витягнути рекурсію.
- •Задачі, які можна розв’язати як окремий випадок узагальненої.
- •Задачі, в яких можна використати характеристику або властивість функції.
- •Відкриті масиви.
- •Завдання 15:
- •Питання для самоконтролю.
- •Дані рядкового типу string. Основні розділи теми.
- •Тип даних char.
- •Рядковий тип
- •Задача 28.
- •Операції над рядками
- •Задача 29.
- •Операції відношення
- •Рядкові процедури і функції
- •Задача 30.
- •Задача 31.
- •Питання для самоконтролю.
- •Завдання 16:
- •Модулі. Модулі користувача. Стандартні модулі. Основні розділи теми.
- •Поняття модуля
- •Структура модуля
- •Компіляція модулів
- •Стандартні модулі Короткий опис модулів.
- •Графіка
- •Запитання
- •Оператор with
- •Питання для самоконтролю.
- •Завдання 18:
- •Файли і робота з ними. Основні розділи теми.
- •Текстові файли
- •Типізовані файли.
- •Процедури і функції для типізованих файлів:
- •Питання для самоконтролю.
- •Завдання 19:
- •Інтегроване середовище розробки Delphi 7. Мова програмування Delphi. Структура програми Delphi: структура проекту, структура модуля, елементи програми. Основні розділи теми.
- •Інтегроване середовище розробки.
- •Головне вікно
- •Інструментальні кнопки
- •Палітра компонентів
- •Вікно форми
- •Вікно дерева об'єктів
- •Вікно інспектора об'єктів
- •Вікно коду програми
- •Зміна властивостей форми
- •Оброблювач події OnClick
- •Структура програм Delphi
- •Структура проекту
- •Структура модуля
- •Питання для самоконтролю.
- •Класи. Складові класу. Методи та властивості. Питання для самоконтролю.
- •Методи.
- •Властивості.
- •Оголошення класу.
- •Питання для самоконтролю.
- •Форми. Різновид форм. Створення і використання форм. Основні розділи теми.
- •Різновиди форм.
- •Методи форми
- •Події форми.
- •Робота з формою.
- •Питання для самоконтролю.
- •Компоненти. Властивості компонентів. Основні розділи теми.
- •Знайомство з компонентами.
- •Вкладка Standard
- •Вкладка Additional
- •Вкладка Win32
- •Вкладка System
- •Вкладка Dialogs
- •Вкладка Win31
- •Вкладка Samples
- •Вкладка ActiveX
- •Робота з об’єктами.
- •Питання для самоконтролю.
- •Delphi 7. Файли. Доступ до файлу. Текстові файли. Основні розділи теми.
- •Теоретичні відомості.
- •Хід роботи
- •Практична робота № 2.
- •Тема: Створення гри «Спіймай кнопку».
- •Мета: Вивчення особливостей компонента Timer.
- •Короткі теоретичні відомості.
- •Хід роботи.
- •Практична робота № 3
- •Тема: Створення логічної гри.
- •Мета: Вивчення можливостей використання властивості Tag і об'єкта Sender.
- •Короткі теоретичні відомості.
- •Хід роботи.
- •Практична робота № 4.
- •Тема: Генератор функцій.
- •Мета: Вивчення компонента PaintBox і методів малювання на канві. Компонент TrackBar.
- •Короткі теоретичні відомості.
- •Хід роботи.
- •Практична робота № 5
- •Тема: Створення елементів інтерфейсу найпростішого графічного редактора.
- •Мета: Вивчення компонентів ColorGrid, SpinEdit, RadioGroup, ListBox, ColorDialog.
- •Короткі теоретичні відомості.
- •Хід роботи. Частина 1
- •Частина 2.
- •Література
Виклик процедур і функцій.
Процедуру можна викликати з розділу операторів основної програми або іншої підпрограми за допомогою оператора виклику:
< ім'я > (<список фактичних параметрів>);
Виклик функції не оформляється у вигляді окремого оператора. Звернення до функції осущесвляєтся шляхом використання імені функції у виразі:
< вираз >:=< ім'я > (<список фактичних параметрів>);
Параметри, які задають в операторові виклику процедури або функції, називаються фактичними.
Фактичними параметрами-аргументами можуть бути константи, змінні, вирази
Фактичними параметрами-результатами можуть бути змінні.
Типи даних в операторові виклику не указують.
Відповідність між фактичними і формальними параметрами :
Між фактичними і формальними параметрами повинна бути відповідність по кількості і типам.
Порядок проходження формальних і фактичних параметрів повинен співпадати.
Імена відповідних пар фактичних і формальних параметрів можуть не співпадати.
Оператор виклику працює так:
значення фактичних параметрів привласнюються відповідним формальним параметрам процедури або функції
виконується процедура або функція
визначаються параметри-результати, значення яких привласнюються (повертаються) відповідним фактичним параметрам оператора виклику.
Область дії параметрів:
Змінні, описані в розділі var основної програми, називаються глобальними. Вони діють у всіх підпрограмах даної програми. Пам'ять під глобальні змінні виділяється при компіляції програми в сегменті даних.
Змінні, описані в розділі описи конкретної процедури, називаються локальними. Вони створюються при вході в процедуру і знищуються при виході. Пам'ять під них виділяється в програмному стеку.
Процедури можуть одержувати і повертати значення не тільки за допомогою параметрів-результатів, але і через глобальні змінні. Тому списків параметрів в процедурі може і не бути. Проте використання локальних змінних дозволяє оптимізувати програму, уникати помилок.
У TurboPascal допускається будь-який рівень вкладеності процедур і функцій.
Задача 24:
Використовуючи процедуру для обчислення ступені числа, знайти значення виразу: y=a4x4 + a3x3 + a2x2 + a1x + a0.
Розв'язання:
program ex2;
var a: array[0..4] of integer;
i, x: integer;
y,s: longint;
Procedure Degree(xx,n : integer; var st : longint);
var i : integer;
begin
st:=1;
for i:=1 to n do st:=st*xx;
end;
{ початок основної програми}
begin
write(‘введіть значення змінной х ‘); readln(x);
writeln(‘введіть масив коеффіцієнтів’);
for i:=0 to 4 do begin write(‘a[‘,i,’]=’); readln(a[i]); end;
y:=a[0];
for i:=1 to 4 do
begin
Degree(x,i,s); y:=y+a[i]*s;
end;
writeln(‘y=’,y);
end.
Задача 25:
Підсумувати різні частини масиву.
Розв'язання:
Program sumir;
var a: array [1..100] of integer; sa1, sa2,sa3 : integer;
n,l,t : integer;
procedure summa(a:array [1..100] of integer; k,m :integer; var s:integer);
var
i:integer;
begin
s:=0;
for i:=k to m do s:=s+a[i];
end;
BEGIN
for t:=1 to 100 do
begin
write(‘введіть черговий елемент масиву ‘); readln(a[i]);
end;
summa(a,10,20,sa1);
summa(a, n , l , sa2);
summa(a, n,n+3,sa3);
end.
Задача 26:
Скласти програму, яка обчислює число
сполучень без повтореннь із n елементів
по k. Число сполучнь без повтореннь
обчислюється за формулою
Позначимо через n і k змінні для зберігання введених чисел; С - змінну для зберігання результата. Викорисаємо функцію для обчислення факторіала числа n. (n!=1*2*..*n)
Розв'язання:
program sochet;
var n,k : integer;
a1,a2,a3,c : longint;
Function factorial(n:integer):longint;
var i: integer;
rez : longint;
begin
rez:=1;
for i:=1 to n do rez:=rez*i;
factorial:=rez;
end;
begin
writeln(‘ введення n і k :’); readln(n,k);
a1:=factorial(n); { обчислення n!}
a2:=factorial(k); { обчислення k!}
a3:=factorial(n-k); { обчислення (n-k)!}
c:=a1 div (a2*a3); { результат}
writeln(‘результат=’,c) ;
end.
Перший рядок в описі функції - це її заголовок. Службове слово Function (функція) вказує на те, що ім'ям factorial названа функція. У дужках записаний список формальних параметрів функції, що складається з однієї змінної цілого типу. Далі в заголовку вказаний тип значення функції. У цьому прикладі результат функції factorial - довге ціле число. За заголовком функції йде описова частина функції, яка, як і у програмі, може складатися з розділів опису змінних, констант, типів.
У цьому прикладі є змінні i (лічильник циклу) rez(для накопичення значення факторіалу). Далі йде розділ операторів(тіло функції). У тексті програми описи функцій завжди йдуть за розділом опису змінних і до початку основної частини, як і опису процедур. Нехай n=5, k=3. Коли в програмі зустрічається оператор a1 :=factorial(n), виконуються наступні дії:
виділяється пам'ять для змінних, описаних у функції factorial;
формальному параметру присвоюється значення фактичного: n:=n(n=5);
виконується функція, яка обчислює факторіал числа 5;
значення функції передається в місце звернення до цієї функції, тобто присвоюється змінній a1;
у операторах a2 :=factorial(k) a3:=factorial(n - k) ще двічі викликається функція factorial з параметрами k=3 n - k=2.
Функція - це самостійна частина програми, що має власні змінні, яким відводиться окреме місце в пам'яті ЕОМ. Цим пояснюється той факт, що змінні з однаковими іменами, використовувані у функції і в основній програмі, є різними(змінна n основної програми і параметр n функції). При виконанні програми машина "не плутає" імена цих змінних, так як зони їх дії не співпадають.
Задача 27:
Написати функцію, що підраховує кількість цифр натурального числа. Використовуючи її, визначити, в якому з двох цих чисел більше цифр.
Розв'язання:
Program chisla;
Var n1, n2 : longint;
k1, k2 : byte;
Function kol(x : longint): byte;
var k: byte;
begin
k:=0;
While x<>0 do Begin Inc(k); x:=x div 10; end;
kol:=k;
end;
BEGIN
writeln(‘Введіть два числа’); readln(n1, n2);
k1:=kol(n1); k2:=kol(n2);
if k1=k2 Then writeln(‘однакова кількість цифр’)
else if k1>k2 Then Writeln(‘у першому числі цифр більше’)
else writeln(‘у другому числі цифр більше ’)
END.