
- •“Київський політехнічний інститут” обчислювальна техніка та програмування - 1
- •Обчислювальна техніка та програмування - 1
- •Символи кодової таблиці ascii
- •Теоретичні відомості
- •Завдання на роботу
- •Контрольні запитання
- •Умовні переходи на мові "паскаль"
- •Теоретичні відомості
- •Завдання на роботу
- •Контрольні запитання
- •Цикли на мові "паскаль"
- •Теоретичні відомості
- •Завдання на роботу
- •Контрольні запитання
- •Підпрограми на мові "паскаль"
- •Теоретичні відомості
- •Завдання на роботу
- •Контрольні запитання
- •Текстові та типізовані файли мови "паскаль"
- •Теоретичні відомості
- •Завдання на роботу
- •Контрольні запитання
- •Побудова графіків функцій на мові "паскаль"
- •Теоретичні відомості
- •OutText (’Текст для виводу’);
- •OutTextXy (200,100,’Текст для виводу’);
- •Завдання на роботу
- •Контрольні запитання
- •Бібліотечний модуль на мові "паскаль"
- •Теоретичні відомості
- •Завдання на роботу
- •Контрольні запитання
- •Динамічні змінні мови "паскаль"
- •Теоретичні відомості
- •Завдання на роботу
- •Контрольні запитання
- •Об’єктно-орієнтоване програмування на мові "паскаль"
- •Теоретичні відомості
- •Завдання на роботу
- •Контрольні запитання
- •Форматований ввід та вивід даних на мові “cі”
- •Основні теоретичні відомості
- •Printf(“керуючий рядок”,аргумент1,аргумент2, ...);
- •Scanf(“керуючий рядок”,аргумент1,аргумент2,...);
- •Завдання на роботу
- •Контрольні запитання
- •Оператори організації переходів на мові "сі"
- •Теоретичні відомості
- •1.2. Для організації умовного переходу по одному із багатьох варіантів доцільно використовувати оператор switch. Він має наступний формат:
- •Завдання на роботу
- •Контрольні запитання
- •Організація циклів на мові "сі"
- •Теоретичні відомості
- •Завдання на роботу
- •Контрольні запитання
- •Одновимірні та двовимірні масиви на мові "сі"
- •Теоретичні відомості
- •Завдання на роботу
- •Контрольні запитання
- •Записи, вкладені записи, масиви записів на мові "сі"
- •Теоретичні відомості
- •Завдання на роботу
- •Контрольні запитання
- •Робота із бінарними та текстовими файлами
- •Теоретичні відомості
- •Int fgetc(вказівник_на_файл);
- •Int fputc(вказівник_на_файл);
- •Int fread (вказівник_на_масив, розмір_об’єкта, кількість_об’єктів , вказівник_на_файл);
- •Int fwrite(вказівник_на_масив, розмір_об’єкта, кількіст_об’єктів , вказівник_на_файл);
- •Int fseek(вказівник_файла, зміщення, поч. Значення);
- •Завдання на роботу
- •3. Контрольні запитання
- •Робота з функціями на мові “сі”
- •Теоретичні відомості
- •Тип_функції назва_функції(тип1 параметр1, ..., тип_n параметр_n);
- •Завдання на роботу
- •Контрольні запитання
- •3.1. Який синтаксис функцій у мові “сі”.
- •Комп’ютерний практикум № 17 графічний режим екрану на мові “ci”
- •Основні теоретичні відомості
- •Void *malloc(об'єм_пам’яті_в_байтах);
- •Putimage(x1, y1, вказівник, вид_вставки);
- •Завдання на роботу
- •Контрольні запитання
- •Вирішення диференційних рівнянь методом ейлера
- •Теоретичні відомості
- •Завдання на роботу
- •Контрольні запитання
- •Основи роботи в середовищі “turbo pascal 7.0” та “turbo c 3.0”
- •Комп’ютерний практикум № 17. Графічний режим екрану
Підпрограми на мові "паскаль"
Мета практикуму – розробка програмного забезпечення на мові програмування "Паскаль" з використанням методів структурного програмування та багатовіконного інтерфейсу, а також детальне вивчення та практичне застосування пунктів меню Windows, Debug інтегрованого середовища мови.
Теоретичні відомості
1.1. Підпрограма – це логічно завершена група операторів, що має ім'я та яку можна викликати будь-яку кількість разів із різних місць програми. Для реалізації підпрограм на мові “Паскаль” використовується функція та процедура.
Структурно підпрограма складається із заголовка, описуючої та виконавчої частини. Останні дві мають такий само вигляд, як і у звичайної програми, проте всі елементи, що об'явлені в описуючій частині діють тільки у межах підпрограми. Спроба їх використання за межами підпрограми призводить до помилки.
1.2. Підпрограма-функція обчислює та повертає тільки одну змінну, причому ця змінна та підпрограма-функція мають однакове ім'я. Специфікація заголовка підпрограми-функції має наступний вид
Function <ім’я> (<формальні параметри>):<тип даних>;
Список <формальні параметри> забезпечує механізм обчислення значення функції для різних значень вхідних даних у вигляді фактичних параметрів, які передаються з основної програми. Між формальним та фактичним списком параметрів установлюється однозначний зв'язок при перелічуванні їх зліва направо. Формальні параметри записуються через символ крапка з комою “;” з указуванням через двокрапку типу даних. Змінні одного типу можна записувати через кому. Наприклад,
Function Alfha(a,b:real; c:byte):real;
У загальному випадку список формальних параметрів функції є необов'язковим. В залежності від умов задачі він може бути відсутнім, наприклад,
Function Beta:integer;
Виклик підпрограми-функції в основній програмі здійснюється у виразах за іменем функції та вказуванням у круглих дужках через кому списку фактичних параметрів, причому останні повинні співпадати за типом даних із формальними параметрами, наприклад,
x:=2.5;
y:=3.9;
z:=7;
t:=2*Alfha(x,y,z);
Приклад 1. Обчислити значення виразу z=xy+(2y)3x. Уведення в степінь оформити у вигляді підпрограми-функції за формулою ab=e(b*ln(a)).
Program Function_Program;
Uses Crt;
Var
x,y,z :real;
Function Stepin (a,b:real):real;
Begin
Stepin:=Exp(b*Ln(a));
End;
Begin
TextBackGround (lightgray);
ClrScr;
TextColor (blue);
GotoXY (6,2);
Writeln ('ПРОГРАМА ОБЧИСЛЕННЯ ЗНАЧЕННЯ ВИРАЗУ');
TextColor (red);
GotoXY (9,4);
Write ('Введiть значення Х та Y: ');
TextColor (black);
Readln (x,y);
z:=Stepin(x,y)+Stepin(2*y,3*x);
TextColor (yellow);
GotoXY (9,7);
Writeln ('z= ',z:9:2);
Readln;
End.
1.3. Підпрограма-процедура дозволяє обчислювати значення будь-якої кількості змінних. Специфікація заголовка процедури має наступний вид
Procedure <ім’я> (<формальні параметри>);
Список <формальні параметри> забезпечує, як і у підпрограмі-функції, механізм обчислення значень змінних для різних значень вхідних даних. Правила запису формальних параметрів такі ж, як для функції, проте у процедурі вони складаються з параметрів-значень та параметрів-змінних. Параметри-значення – це вхідні дані, які передаються з основної програми для проведення обчислень. Параметри-змінні – це результати роботи процедури, які повертаються у основну програму після обчислень. Для позначення параметрів-змінних перед ними записується слово Var, наприклад,
Procedure Sorter (a,b:real; c:byte; Var x,y:real);
У загальному випадку список формальних параметрів процедури є необов'язковим. В залежності від умов задачі параметри-значення, параметри-змінні чи увесь список може бути відсутнім, наприклад,
Procedure Beep;
Виклик процедури в основній програмі здійснюється за іменем процедури та вказуванням у круглих дужках через кому списку фактичних параметрів, причому останні повинні співпадати за типом даних із формальними параметрами, наприклад,
t:=2.5;
h:=3.9;
z:=7;
Sorter(t,h,z,Alfha,Beta);
Приклад 2. Знайти максимальний елемент дійсної матриці А3х5. Знаходження максимуму оформити у вигляді процедури.
Program Max_Array;
Uses Crt;
Const
n=3; m=5;
Type
Masiv=array [1..n,1..m] of real;
Var
A :Masiv;
Amax :real;
I,J :byte;
Procedure Max (X:Masiv; Var Xmax:real);
Var
k,p:byte;
Begin
Xmax:=x[1,1];
for k:=1 to n do
for p:=1 to m do
if x[k,p]>Xmax then Xmax:=x[k,p];
End;
Begin
TextColor (blue);
TextBackground (lightgray);
ClrScr;
GotoXY (21,2);
Writeln ('ПОШУК МАКСИМУМУ МАТРИЦI');
Window (1,3,80,25);
for I:= 1 to n do
for J:= 1 to m do
begin
GotoXY (21,2);
TextColor (red);
Write ('Введiть елемент матрицi А[',i,',',j,']= ');
TextColor (black);
Read (a[i,j]);
ClrScr;
end;
Max (A,Amax);
GotoXY (21,2);
TextColor (red);
Write ('Максимум= ',Amax:9:2);
Repeat Until KeyPressed;
End.
1.4. Текстовий режим екрана включено за згодою. Він призначений для виводу символів кодової таблиці ASCII. Найчастіше екран умовно розбивається на 25 рядків та 80 стовпців із координатою верхнього лівого кута (1,1) та нижнього правого (80,25)
1.5. За допомогою текстових вікон здійснюється вивід інформації не на весь екран, а тільки в область вікна. Для роботи з текстовими вікнами необхідно підключити бібліотеку CRT командою
Uses CRT;
За допомогою оператора
Window (x1,y1,x2,y2);
відкривається текстове вікно з координатою верхнього лівого кута x1,y1 та нижнього правого x2,y2, наприклад,
Window (10,5,45,15);
Після відкриття вікна його контур є невидимим, а фон співпадає з фоном екрана. Може бути відкрито декілька вікон, проте тільки останнє вікно є поточне і відносно його верхнього лівого кута працюють всі команди роботи з екраном: вивід інформації, очистка, зміна кольору символів і фону тощо.
Для відновлення повного екрану потрібно задати вікно на весь екран
Window (1,1,80,25);
1.6. При роботі в текстовому режимі кожен символ на екрані може мати 16 кольорів, а фон під ним – 8. Колір змінюється тільки після виконання у програмі команд виводу Write, Writeln.
Колір символу задається командою бібліотеки CRT
TextColor (<колір символу>);
а колір фону – командою
TextBackGround (<колір фону>);
Кольори можна задавати цифрами або відповідними англомовними словами згідно табл. 1.1. За згодою встановлено білий колір символів на чорному фоні.
Колір символу або фону |
Колір тільки символу |
||
Значення |
Назва |
Значення |
Назва |
0 |
Black (чорний) |
8 |
DarckGray (темносірий) |
1 |
Blue (синій) |
9 |
LightBlue (світлосиній) |
2 |
Green (зелений) |
10 |
LightGreen (світлозелений) |
3 |
Cian (бірюзовий) |
11 |
LightCian (світлобірюзовий) |
4 |
Red (червоний) |
12 |
LightRed (світлочервоний) |
5 |
Magenta (малиновий) |
13 |
LightMagenta (світло малиновий) |
6 |
Brown (коричневий) |
14 |
Yellow (жовтий) |
7 |
LightGray (світлосірий) |
15 |
White (білий) |
Наприклад, жовтий колір символів задається командою
TextColor (yellow);
або
TextColor (14);
Для зміни фону всього екрану, а не фону символу, задається колір фону, а потім здійснюється очистка екрану. Наприклад, встановлення синього фону екрану реалізується наступними командами
TextBackGround (blue);
ClrScr;
Мерехтіння символів задається за допомогою константи blink, що має значення 128, шляхом додавання до кольору символу, наприклад
TextColor (red+blink);
Write ('Mерехтіння червоних символів');
Мерехтіння відбувається до тих пір, поки не буде задано новий колір символів без мерехтіння.
Приклад 3. Створити меню програми, яке виводиться в окреме вікно з тінню. Меню вміщує три пункти, в тому числі для виходу з програми.
Program Menu;
Uses Crt;
Const
K= 3;
NameRegime: array[1..K] of string[50]=
(' 1 – Перша програма меню ',
' 2 – Друга програма меню ',
' 3 - Вихід ');
Var
J :integer;
I :Char;
Procedure Windows (X1, Y1, X2, Y2:integer);
Begin
TextBackGround (blue);
ClrSCr;
Window (X1+2, Y1+1, X2+2, Y2+1);
TextBackGround (black);
ClrScr;
Window (X1, Y1, X2, Y2);
TextBackGround (red);
ClrScr;
end;
Procedure Menu1;
Begin
Window (1,1,80,25);
ClrScr;
GotoXY (25, 13);
writeln ('Це - перша програма меню');
repeat until KeyPressed;
End;
Procedure Menu2;
Begin
Window (1,1,80,25);
ClrScr;
GotoXY (25, 13);
writeln ('Це - друга програма меню');
repeat until KeyPressed;
End;
BEGIN
while True do
begin
Windows (20, 7, 60, 17);
GotoXY (15, 3);
Write ('ГОЛОВНЕ МЕНЮ');
for J:= 1 to K do
begin
GotoXY (9,4+J);
write (NameRegime[J])
end;
repeat
I:= ReadKey;
until ((I='1')or(I='2')or(I='3'));
Case I of
'1': Menu1;
'2': Menu2;
'3': begin
ClrScr;
TextMode (LastMode);
Halt
end;
end;
end;
END.