Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

FilePos (f2)




Var

Var

Repeat

Begin

Repeat

Repeat

Begin

Begin

Begin

Begin

Case J of

Case J of

1,2: C:=A+B;

3,4,6: C:=A-B;

7..13: C:=A*B;

end;

 

Якщо для значення змінної вибору необхідно виконати більше одного оператора, то використовуються операторні дужки begin..end, наприклад,

 

C:=A+B;

D:=(A-B)/2;

end;

3: C:=A-B;

7: C:=A*B;

else C:=A/B;

end;

2. ЗАВДАННЯ НА РОБОТУ

 

Розробити та запустити у роботу програму на мові програмування “Паскаль”, яка вирішує задачу відповідно до заданого нижче варіанта. При цьому детально вивчити та практично застосувати пункт меню Edit інтегрованого середовища мови.

2.1. Визначити, в якому квадранті (четверті), на осі чи в початку координат знаходиться точка з уведеними з клавіатури координатами (х,у).

2.2. Увести з клавіатури ПІБ студента, оцінку з математики, хімії, фізики. Підрахувати середній бал та визначити право студента на отримання базової та підвищеної стипендії, якщо середній бал не менше "4' та "5" відповідно.

2.3. Увести з клавіатури ПІБ студента, кількість "3", кількість "4", кількість "5", оцінку за дипломний проект. Визначити право студента на отримання диплома з відзнакою, якщо відсутні "3", "4" не більше 25 %, а за дипломний проект оцінка "5".

2.4. Увести з клавіатури марку автомобіля, пройдений шлях, ціну, об'єм двигуна. Рекомендувати автомобіль до придбання, якщо його ціна нижча заданої, а об'єм двигуна більший заданого.

2.5. Увести з клавіатури ПІБ продавця, обсяг продажу товару, стаж роботи. Визначити розмір премії, як відсоток від обсягу продажу (відсоток дорівнює стажу роботи), та право на подарунок, якщо стаж роботи й обсяг продажу більші заданих.

2.6. Увести з клавіатури ПІБ студента, стать, кількість "3", кількість "4", кількість "5" у заліковій книжці. Рекомендувати студентів чоловічої статі до навчання на військовій кафедрі, якщо середній бал не нижче 3,9.

2.7. Увести з клавіатури ПІБ студента, оцінку за контрольну роботу, оцінку за розрахункову роботу, оцінку за лабораторні роботи. Рекомендувати студента на отримання заліку з дисципліни, якщо вказані оцінки не нижче "4".

2.8. Увести з клавіатури ПІБ, кількість "3", "4", "5" у заліковій книжці, назву іноземної мови для трьох студентів. Визначити студента з найвищим середнім балом для навчання за додатковою програмою, якщо іноземною є німецька мова.

2.9. Увести з клавіатури ПІБ студента, стать, оцінку з іноземної мови та обчислювальної техніки. Визначити студентів жіночої статі для участі в міжнародній олімпіаді, якщо оцінка з обчислювальної техніки "5", а з іноземної мови не нижче "4'.

2.10. Знайти корні квадратного рівняння ax2+bx+c=0. Значення коефіцієнтів рівняння увести з клавіатури.

 

3. КОНТРОЛЬНІ ЗАПИТАННЯ

 

3.1. Які оператори застосовуються для реалізації розгалужень програми.

3.2. Яка специфікація оператора умовного переходу.

3.3. Як реалізується складна умова умовного оператора.

3.4. Як виконати більше одного оператора у гілках оператора умовного переходу.

3.5. Яка специфікація оператора вибору.

3.6. Який тип даних може мати змінна вибору оператора вибору.


Комп'ютерний практикум № 3

ЦИКЛИ НА МОВІ "ПАСКАЛЬ"

Мета практикуму – розробка програмного забезпечення на мові програмування "Паскаль" з реалізації циклічних структур алгоритмів, а також детальне вивчення та практичне застосування пунктів меню Search, Help інтегрованого середовища мови.

1. ТЕОРЕТИЧНІ ВІДОМОСТІ

1.1. Цикл – це послідовність операторів, яка може виконуватися більше одного разу.

Для реалізації циклів із заданим числом повторень найчастіше застосовується оператор повторення for. Якщо параметр циклу змінюється з кроком відмінним від одиниці, то може використовуватися оператор циклу з передумовою while чи з постумовою repeat.

1.2. Оператор циклу for застосовується, якщо крок зміни параметра циклу дорівнює 1 чи -1. При кроці, рівному одиниці, цей оператор має наступну специфікацію

 

for <параметр> := <поч.зн.> to <кінц.зн.> do <оператор>;

Параметр циклу <параметр> та його початкове <поч.зн.> і кінцеве <кінц.зн.> значення можуть мати будь-який простий (скалярний) тип даних, крім дійсного. При повторі значення параметра збільшується на одиницю, тому кінцеве значення не повинно бути менше за початкове. Якщо ж вони рівні, то <оператор> виконується один раз. Після завершення виконання циклу параметр циклу залишається рівним кінцевому значенню. В тілі циклу програміст не може змінити значення параметра.

Для цілочислового типу параметра, позначеного ідентифікатором І, цикл може мати такий вигляд

 

for I:=3 to 21 do Writeln (I);

 

Якщо у циклі необхідно виконати більше одного оператора, то використовуються операторні дужки begin..end, наприклад,

 

for I:=3 to 21 do

C:=A+B;

D:=A-B;

Writeln (I,C,D);

end;

При від’ємному кроці -1 (мінус один) оператор for має таку специфікацію

 

for <параметр> := <поч.зн.> downto <кінц.зн.> do <оператор>;

 

При повторенні значення параметра зменшується на одиницю, тому кінцеве значення не повинно бути більше за початкове, наприклад,

 

for I:=23 downto 11 do

C:=A+B;

D:=A-B;

Writeln (I,C,D);

end;

 

Приклад 1. Знайти добуток елементів дійсного масиву А12.

 

Program Dobutok_Array;

Uses Crt;

Const

n=12;

Var

A: array [1..n] of real;

I: byte;

Dobutok: real;

Begin

TextBackGround (lightgray);

ClrScr;

TextColor (yellow);

GotoXY (17,2);

Writeln ('ВИЗНАЧЕННЯ ДОБУТКУ ЕЛЕМЕНТIВ МАТРИЦI');

GotoXY (25,4);

Write ('Введiть елемент матрицi ');

TextColor (black);

for I:= 1 to n do

begin

GotoXY (49,4);

Write ('a[',i,']= ');

Read (A[i]);

GotoXY (49,4);

ClrEol;

end;

Dobutok:= 1;

for I:= 1 to n do Dobutok:=Dobutok* A[i];

TextColor (red);

GotoXY (21,7);

Writeln ('Добуток елементiв дорiвнює: ', Dobutok:9);

Repeat Until KeyPressed;

End.

 

1.3. Цикл із перед- та постумовою можна застосувати для вирішення задач, у яких параметр циклу змінюється з кроком, відмінним від одиниці. Для цього перед початком циклу задається початкове значення параметра циклу, а в тілі циклу – закон його зміни.

У циклі з передумовою

 

while <умова> do <оператор>;

 

<оператор> виконується, поки <умова> має значення True, тобто “істина”, наприклад,

 

while A>B do C:=A+B;

 

Якщо в циклі необхідно виконати більше одного оператора, то використовуються операторні дужки begin..end. Для запобігання зациклювання програміст повинен забезпечити умову виходу з циклу, наприклад, цілочислова змінна А змінюється від 10 до 4 із від’ємним кроком -2

 

А:=10;

while A>=4 do

C:=A+D;

write (C);

A:=A-2;

end;

 

1.4. Оператори у циклі з постумовою

 

<оператор 1>;

<оператор 2>;

<оператор N>;

until <умова>;

 

виконуються, поки <умова> має значення False, тобто “неістина”, наприклад, для вищенаведеної змінної А цикл має такий вигляд

 

А:=10;

C:=A+D;

write (C);

A:=A-2;

until A<4;

1.5. Цикл із невідомим числом повторень виконується поки не досягається умова виходу, наприклад, досягнення заданої точності обчислень тощо. Забезпеченню умови виходу необхідно приділити особливу увагу, інакше програма безнадійно зациклиться. Для реалізації циклу застосовується оператор із передумовою while чи постумовою repeat.

1.6. Оператори тіла циклу з передумовою, які обмежені операторними дужками begin..end, виконуються, поки <умова> має значення True, тобто “істина”

 

while <умова> do

<оператор 1>;

<оператор 2>;

<оператор N>;

end;

 

1.7. Оператори тіла циклу з постумовою обмежені словами repeat.. until й виконуються на відміну від попереднього циклу, поки <умова> має значення False, тобто “неістина”

 

<оператор 1>;

<оператор 2>;

<оператор N>;

until <умова>;

 

Приклад 2. Знайти найменше натуральне число k, при якому функція y=xk/k стає меншою за задане додатне число а, де х – задане додатне число менше одиниці.

 

Program Minimum_K;

Uses Crt;

Var

a, x, y:real;

k:word;

Begin

TextBackground (lightgray);

ClrScr;

TextColor (blue);

Writeln ('ЗНАХОДЖЕННЯ ЗНАЧЕННЯ "к", ПРИ ЯКОМУ

ФУНКЦIЯ y=x^k/k < a');

Writeln;

TextColor (red);

Write (' ':9,'Ввeдiть значення "a" та "x": ');

TextColor (black);

Readln (a, x);

k:=0;

 

repeat

k:= k+1;

y:= Exp(k*Ln(x))/k;

until y < a;

 

TextColor (yellow);

Writeln;

Writeln (' ':9,'Функцiя y < a при к= ',k);

Readln;

End.

 

1.8. Цикл, що містить у своєму тілі один чи декілька інших циклів називається вкладеним. Правила організації зовнішнього та внутрішніх циклів такі як і для звичайного циклу, проте цикли не повинні перехрещуватися. При цьому за одну зміну параметра зовнішнього циклу, параметр внутрішнього циклу кожен раз перебігає всі свої значення від початкового до кінцевого. Вкладені цикли реалізуються за допомогою операторів for, while чи repeat.

1.9. Оператор for застосовується для циклів із заданим числом повторень, наприклад, при роботі з масивами.

Приклад 3. Знайти суму елементів кожного рядка дійсної матриці А 3х5.

 

Program Summa_String;

Uses Crt;

Const

N=3;

M=5;

Var

A:array [1..N,1..M] of real;

I,J:integer;

Suma:real;

Begin

TextBackGround (lightgray);

ClrScr;

TextColor (blue);

GotoXY (7,2);

Writeln ('ПРОГРАМА ВИЗНАЧЕННЯ СУМИ ',

'ЕЛЕМЕНТIВ РЯДКIВ МАТРИЦI A(',N,'x',M,')');

Window (1,3,80,25);

 

{початок зовнiшнього циклу по рядкам матрицi}

for I:= 1 to N do

{початок внутрiшнього циклу по стовпцям матрицi}

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;

{кiнець внутрiшнього циклу}

{кiнець зовнiшнього циклу}

 

GotoXY (30,2);

Writeln ('Рядок');

GotoXY (39,2);

Writeln ('Сума');

TextColor (yellow);

 

{початок зовнiшнього циклу по рядкам матрицi}

for I:= 1 to N do

begin

Suma:= 0;

{початок внутрiшнього циклу по стовпцям матрицi}

for J:= 1 to M do

Suma:= Suma+ a[i,j];

{кiнець внутрiшнього циклу}

GotoXY (30,3+I);

Writeln (I:3);

GotoXY (35,3+I);

Writeln (Suma:9:2);

end;

{кiнець зовнiшнього циклу}

 

Repeat Until KeyPressed;

End.

 

1.10. Оператор циклу з передумовою while та оператор із постумовою repeat доцільно використовувати, якщо крок зміни параметра циклу відрізняється від одиниці чи кількість повторень циклу наперед невідомо.

Приклад 4. Обчислити значення функції y=Asin(x) при зміні аргументу х на проміжку від p/2 до p з кроком h=(p-p/2)/20 для трьох значень коефіцієнта А, рівних, 3, 5 та 7.

 

Program Function_ASinx;

Uses Crt;

Var

A:integer;

y,x,h:real;

Begin

TextBackGround (lightgray);

ClrScr;

TextColor (blue);

GotoXY (6,1);

Writeln ('ПРОГРАМА ОБЧИСЛЕННЯ ФУНКЦIЇ "y=Asinx"');

TextColor (red);

Writeln (' ':13,'A',' ':4,'x',' ':6,'y');

TextColor (black);

Window (1,4,80,25);

 

A:=3;

h:=(pi-pi/2)/20;

 

 

{початок зовнiшнього циклу по коефіцієнту „А”}

while A <=7 do

begin

x:=pi/2;

{початок внутрішнього циклу по аргументу „х”}

while x<=pi do

begin

y:=A*sin(x);

Writeln (' ':11,A:3,x:7:2,y:7:2);

x:=x+h;

end;

{кінець внутрішнього циклу}

A:=A+2;

Readln;

ClrScr;

end;

{кінець зовнiшнього циклу}

End.

2. ЗАВДАННЯ НА РОБОТУ

 

Розробити та запустити у роботу дві програми на мові програмування “Паскаль”, які вирішують задачі відповідно до заданого нижче варіанта. При цьому детально вивчити та практично застосувати пункти меню Search,Help інтегрованого середовища мови.

2.1. Обчислити значення функції y=10e-tcos(4t) при збільшенні аргументу t від нуля із заданим кроком, поки функція e-t не досягне за значення 0,1. Знайти найбільшу суму елементів рядків цілочислової матриці А3х5.

2.2. Обчислити значення функції y=23(1-e-3t) при збільшенні аргументу t від нуля із заданим кроком, поки функція y не досягне значення 22,5. Знайти добуток найменших елементів стовпців дійсної матриці В3х5.

2.3. Обчислити значення функції y=17e-t при збільшенні аргументу t від нуля із заданим кроком, поки функція y не досягне значення 1,3. Знайти найменший добуток елементів стовпців цілочислової матриці С3х5.

2.4. Обчислити значення функції y=0,5t2-4t+6 при збільшенні аргументу t від нуля із заданим кроком, поки функція y не досягне значення 0,2. Знайти суму найбільших елементів рядків дійсної матриці D3х5.

2.5. Обчислити значення функції y=5t при збільшенні аргументу t від нуля із заданим кроком, поки функція y не досягне значення 99,9. Знайти найменшу суму елементів стовпців цілочислової матриці Е3х5.

2.6. Обчислити значення функції y=19ln(t) при збільшенні аргументу t від нуля із заданим кроком, поки функція y не досягне значення 45,3. Знайти добуток найбільших елементів рядків дійсної матриці F3х5.

2.7. Обчислити значення функції y=14tg(t) при збільшенні аргументу t від нуля із заданим кроком, поки функція y не досягне значення 345,3. Знайти найбільший добуток елементів рядків цілочислової матриці Н3х5.

2.8. Обчислити значення функції y=33sin(3t) при збільшенні аргументу t від нуля із заданим кроком, поки функція y не досягне значення 30,3. Знайти суму найменших елементів стовпців дійсної матриці R3х5.

2.9. Обчислити значення функції y=13-10e-t при збільшенні аргументу t від нуля із заданим кроком, поки функція y не досягне значення 5,5. Знайти найбільшу суму елементів стовпців цілочислової матриці Q3х5.

2.10. Обчислити значення функції y=6arctg(t) при збільшенні аргументу t від нуля із заданим кроком, поки функція y не досягне значення 7,4. Знайти добуток найменших елементів рядків дійсної матриці Z3х5.

 

3. КОНТРОЛЬНІ ЗАПИТАННЯ

 

3.1. Що таке цикл.

3.2. Що таке параметр циклу.

3.3. Які оператори застосовуються для організації циклів.

3.4. Який крок зміни параметра циклу у оператора for.

3.5. Як організується цикл із заданим числом повторень за допомогою оператора з перед- та постумовою.

3.6. Чому цикл називається з невідомим числом повторень.

3.7. Які оператори керування використовуються для реалізації циклу з невідомим числом повторень.

3.8. Коли завершується цикл із невідомим числом повторень.

3.9. При якій умові виконується цикл із передумовою.

3.10. При якій умові виконується цикл із постумовою.

3.11. Що називається вкладеним циклом.

3.12. Які правила організації вкладеного циклу.

3.13. Як змінюється параметр зовнішнього та внутрішнього циклу.

 


Комп'ютерний практикум № 4

ПІДПРОГРАМИ НА МОВІ "ПАСКАЛЬ"

Мета практикуму – розробка програмного забезпечення на мові програмування "Паскаль" з використанням методів структурного програмування та багатовіконного інтерфейсу, а також детальне вивчення та практичне застосування пунктів меню Windows, Debug інтегрованого середовища мови.

 

1. ТЕОРЕТИЧНІ ВІДОМОСТІ

 

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. За згодою встановлено білий колір символів на чорному фоні.

 

 

Колір символу або фону Колір тільки символу
Значення Назва Значення Назва
  Black (чорний)   DarckGray (темносірий)
  Blue (синій)   LightBlue (світлосиній)
  Green (зелений)   LightGreen (світлозелений)
  Cian (бірюзовий)   LightCian (світлобірюзовий)
  Red (червоний)   LightRed (світлочервоний)
  Magenta (малиновий)   LightMagenta (світло малиновий)
  Brown (коричневий)   Yellow (жовтий)
  LightGray (світлосірий)   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.

 

2. ЗАВДАННЯ НА РОБОТУ

 

Розробити та запустити у роботу програму на мові програмування "Паскаль", яка вирішує задачу відповідно до заданого нижче варіанта. При цьому детально вивчити та практично застосувати пункти меню Windows, Debug інтегрованого середовища мови.

2.1. Знайти добуток найбільших елементів рядків матриці С7х3. Знаходження найбільших елементів оформити у вигляді процедури з параметрами, в яку передається матриця, а повертається вектор найбільших елементів. Програму реалізувати за допомогою меню з чотирма пунктами: увід даних, обчислення, результат, вихід.

2.2. Знайти найбільшу суму елементів рядків матриці А5х3. Знаходження сум оформити у вигляді процедури з параметрами, в яку передається матриця, а повертається вектор сум. Програму реалізувати за допомогою меню з чотирма пунктами: увід даних, обчислення, результат, вихід.

2.3. Знайти добуток найменших елементів стовпців матриці В3х5. Знаходження найменших елементів оформити у вигляді процедури з параметрами, в яку передається матриця, а повертається вектор найменших елементів. Програму реалізувати за допомогою меню з чотирма пунктами: увід даних, обчислення, результат, вихід.

2.4. Знайти найменший добуток елементів стовпців матриці С3х7. Знаходження добутків елементів оформити у вигляді процедури з параметрами, в яку передається матриця, а повертається вектор добутків елементів. Програму реалізувати за допомогою меню з чотирма пунктами: увід даних, обчислення, результат, вихід.

2.5. Знайти суму найбільших елементів рядків матриці А4х4. Знаходження найбільших елементів оформити у вигляді процедури з параметрами, в яку передається матриця, а повертається вектор найбільших елементів. Програму реалізувати за допомогою меню з чотирма пунктами: увід даних, обчислення, результат, вихід.

2.6. Знайти найменшу суму елементів стовпців матриці В4х5. Знаходження сум оформити у вигляді процедури з параметрами, в яку передається матриця, а повертається вектор сум. Програму реалізувати за допомогою меню з чотирма пунктами: увід даних, обчислення, результат, вихід.

2.7. Знайти добуток найбільших елементів рядків матриці С5х3. Знаходження найбільших елементів оформити у вигляді процедури з параметрами, в яку передається матриця, а повертається вектор найбільших елементів. Програму реалізувати за допомогою меню з чотирма пунктами: увід даних, обчислення, результат, вихід.

2.8. Знайти найбільший добуток елементів рядків матриці А6х3. Знаходження добутків елементів оформити у вигляді процедури з параметрами, в яку передається матриця, а повертається вектор добутків. Програму реалізувати за допомогою меню з чотирма пунктами: увід даних, обчислення, результат, вихід.

2.9. Знайти суму найменших елементів стовпців матриці В3х7. Знаходження найменших елементів оформити у вигляді процедури з параметрами, в яку передається матриця, а повертається вектор найменших елементів. Програму реалізувати за допомогою меню з чотирма пунктами: увід даних, обчислення, результат, вихід.

2.10. Знайти найбільшу суму елементів рядків матриці С5х4. Знаходження сум оформити у вигляді процедури з параметрами, в яку передається матриця, а повертається вектор сум. Програму реалізувати за допомогою меню з чотирма пунктами: увід даних, обчислення, результат, вихід.

 

 

3. КОНТРОЛЬНІ ЗАПИТАННЯ

 

3.1. Що таке підпрограма.

3.2. Які види підпрограм реалізує мова “Паскаль”.

3.3. Що таке формальні та фактичні параметри підпрограм.

3.4. В чому відмінність між підпрограмою-функцією та процедурою.

3.5. Як позначаються параметри-змінні у процедурі.

3.6. Як викликаються підпрограми у основній програмі.

3.7. Яка вимога до імені підпрограми-функції.

3.8. Для чого призначено текстовий режим роботи екрана.

3.9. Чому найчастіше дорівнює роздільність екрана в текстовому режимі.

3.10. Як відкрити текстове вікно.

3.11. Відносно якої координати вікна здійснюються команди виводу інформації.

3.12. Як відновити повний розмір екрана.

3.13. Як змінити колір символу та фону.

 


Комп'ютерний практикум № 5

ТЕКСТОВІ ТА ТИПІЗОВАНІ ФАЙЛИ МОВИ "ПАСКАЛЬ"

Мета практикуму – розробка програмного забезпечення на мові програмування "Паскаль" з використанням засобів запису та читання інформації з файлів різного типу, а також детальне вивчення та практичне застосування пункту меню Options інтегрованого середовища мови.

 

1. ТЕОРЕТИЧНІ ВІДОМОСТІ

 

1.1. За допомогою команд мови "Паскаль" інформацію з файлів можна вводити у програму, а результати роботи програми записувати у файли. У файлi є невидимий вказiвник файлу, як курсор на екранi, який при вiдкриттi файлу встановлюється на початок файлу. При виконаннi операцiй читання та запису вказiвник перемiщується праворуч в рядку та з рядка на рядок. В кiнцi кожного рядка є невидимий маркер кiнця рядка, а в кiнцi файлу - маркер кiнця файлу.

В Паскалі визначено три класи файлiв: текстовi, типізовані та нетипізованi.

1.2. Робота з текстовими та типізованими файлами виконується в наступній послiдовності:

1) В роздiлi Var описуються файлові змiнні, за допомогою яких буде здiйснюватися доступ до файлiв;

2) У виконавчому блоцi за допомогою команди Assign встановлюється зв'язок мiж конкретною файловою змiнною та конкретним файлом. Це означає, що звернення до файлу буде здійснюється не за його іменем, а за іменем файлової змінної;

3) За допомогою команди Reset чи Rewrite зв'язаний файл відкривається для читання чи запису. Одночасно в програмi може бути вiдкрито декiлька файлiв;

4) Здiйснюється запис або читання інформації командами Write чи Read;

5) Після завершення роботи з файлом він обов'язково закривається командою Close, інакше данi у файлi можуть бути втраченi.

1.3. Текстовi файли є найбiльш унiверсальними. Iнформацiя у них представляється у виглядi символiв кодової таблицi ASCII, тому файл може вмiщувати дані будь-якого типу. Проте дані різного типу мають і різний розмір у байтах й одже текстовий файл дозволяє тільки послiдовний доступ до них.

Файлова змiнна, ім'я якої вільно вибирає програміст, має тип text. Наприклад, файлова зміна з іменем f1 описується наступним чином

 

f1: text;

 

Команда встановлення зв'язку, наприклад, між файловою змінною f1 та файлом Data.pas, має наступний формат

 

Assign (f1, ’E:\EP21\Data.pas’);

 

Iм'я файлу має рядковий тип, тому записується в апострофах. Воно може бути повним, тобто із вказуванням диску та шляху, як у наведеному прикладі, або скороченим – тільки безпосередньо iм'я, наприклад

 

Assign (f1, ’Data.pas’);

 

В останньому випадку програма шукатиме файл Data.pas в поточному каталозi.

За допомогою команди

 

Reset (f1);

 

вiдкривається iснуючий файл, в даному випадку Data.pas, для читання.

Команда

Rewrite (f1);

 

створює новий файл Data.pas й відкриває його для запису. Якщо файл із ім’ям Data.pas вже iснує, то його вмiст знищується.

Інколи необхідно дописати інформацію в кінець існуючого файлу, наприклад, файлу Data.pas. В цьому випадку файл відкривається не командами Reset чи Rewrite, а командою

 

Append (f1);

 

Читання інформації з файлів здійснюється тими ж командами, що і для клавіатури Read чи Readln, проте перед списком даних вказується файлова змінна, тобто вказується з якого файлу читати дані. Наприклад, значення змінних А та В читаються з файлу Data.pas наступним чином

 

Read (f1, А,В);

 

Для запису iнформацiї в файл використовуються тіж самі команди, що і для виводу інформації на екран Write чи Writeln, проте перед даними вказується файлова змінна. Наприклад, у файл Data.pas записуються значення змінних С та D

 

Write (f1, C,D);

 

Аналогічно до екрана вільний рядок у файлі створюється командою

 

Writeln (f1);

 

Закриття файлу здійснюється командою

 

Close (f1);

 

1.4. Типізованi файли вміщують дані тільки одного типу, наприклад, тільки дійсні числа, тому всі елементи мають однаковий розмір у байтах. Це дозволяє, крім послідовного доступу, як у текстових файлах, організувати ще і прямий доступ до конкретного елементу.

Файлова змiнна, ім'я якої вільно вибирає програміст, описується із вказуванням типу даних елементів файлу. Наприклад, опис файлової змінної з іменем f2 для файлуз цілочисленими елементами типу integer має наступний вигляд

 

f2: file of integer;

 

Команда встановлення зв'язку, наприклад, між файловою змінною f2 та файлом Inputa.out записується як і для текстового файлу

 

Assign (f2, ’E:\EP22\Inputa.out’);

 

За допомогою команди

 

Reset (f2);

 

вiдкривається iснуючий файл, в даному випадку Inputa.out, як для читання так і для запису, що є відміністю в порівнянні з текстовим файлом.

Команда

 

Rewrite (f2);

 

створює новий файл Inputa.out й відкриває його як для запису так і для читання. Якщо файл із ім’ям Inputa.out вже iснує, то його вмiст знищується.

Команди читання Read, Readln та запису Write,Writeln інформації у файл, а також закриття файлу Close використовуються аналогічно як і для розглянутих вище текстових файлів.

Всі елементи типізованого файлу пронумеровані, починаючи з нуля. Для прямого доступу до будь-якого елементу файлу, тобто для читання чи запису конкретного елементу, потрібно попередньо встановити вказівник файлу на потрібну позицію за допомогою команди

 

Seek (f2, 7);

 

В даному випадку вказівник встановлено у сьому позицію, тобто на восьмий елемент файлу.

Для визначення кількості елементів у типізованому файлі служить функція цілочисленого типу longint

FileSize (f2),

 

а для визначення поточної позиції вказівника файла – функція того ж типу

 

 

1.5. При вирішенні деяких задач потрібно зчитати всі елементи у текстовому чи типізованому файлі або в окремому рядку, проте кількість елементів невідома. Для цього корисно використовувати функції логічного типу

 




Поделиться с друзьями:


Дата добавления: 2014-12-25; Просмотров: 542; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.489 сек.