- •2.1. Теоретичні відомості 20
- •Передмова
- •Лабораторна робота № 1
- •1.1. Теоретичні відомості
- •1.1.1. Система вiкон середовища
- •1.1.1.1. Вікна редагування
- •1.1.1.2. Вікна діалогу
- •1.1.1.3. Інформаційні вікна
- •1.1.1.4. Вікна меню
- •1.1.1.5. Робота з меню
- •1.1.1.5.1. Меню роботи з файлами (File)
- •1.1.1.5.2. Меню редагування (Edit)
- •1.1.1.5.3. Меню пошуку інформації (Search)
- •1.1.1.5.4. Меню виконання програми (Run)
- •1.1.1.5.5. Меню компіляції (Compile)
- •1.1.1.5.6. Меню відлагодження (Debug)
- •1.1.1.5.7. Меню вiкон (Window).
- •1.1.1.5.8. Меню інформаційної допомоги (Help)
- •1.1.1.5.9. Локальне меню.
- •1.1.2. Основні прийоми роботи в середовищі
- •1.2. Завдання
- •1.3. Контрольні запитання з теми
- •Лабораторна робота № 2
- •2.1. Теоретичні відомості
- •2.1.1. Загальна структура Pascal-програми
- •2.1.1.1. Заголовок програми
- •2.1.1.2. Описова частина Pascal-програми
- •2.1.1.2.1. Розділ позначок (міток)
- •2.1.1.2.2. Розділ констант
- •2.1.1.2.3. Розділ типів
- •2.1.1.2.3.1. Цілочисельний тип
- •2.1.1.2.3.2. Дійсний тип
- •2.1.1.2.4. Розділ опису змінних
- •2.1.2. Арифметичнi вирази та операцiї
- •2.1.2.1. Арифметичні функції
- •2.1.2.2. Скалярні функції
- •2.1.2.3. Арифметичні операції мови Pascal
- •2.1.2.4. Правила запису арифметичного виразу
- •2.1.3. Простi оператори
- •2.1.3.1. Оператор присвоєння
- •2.1.3.2. Пустий оператор
- •2.1.4. Введення та виведення в Pascal
- •2.1.4.1. Процедури введення
- •2.1.4.2. Процедури виведення
- •2.4.3. Формати оператора виведення
- •2.2. Завдання
- •2.3. Контрольні запитання з теми
- •3.1.3. Перелічувальний тип
- •3.1.4. Вирази та операцiї вiдношення
- •3.1.5. Логiчнi вирази та операції
- •3.1.6. Структуровані оператори
- •3.1.6.1. Складений оператор
- •3.1.6.2. Умовні оператори
- •3.2. Завдання
- •3.3. Контрольні запитання з теми
- •Лабораторна робота № 4
- •4.1. Теоретичні відомості
- •4.1.1. Iнтервальний тип
- •4.1.2. Масив (регулярний тип)
- •4.1.3. Оператори повтору
- •4.1.4. Використання стандартний процедур Break і Continue в операторах циклів repeat, while та for
- •4.2. Завдання
- •4.3. Контрольні запитання з теми
- •Лабораторна робота № 5
- •5.1. Теоретичні відомості
- •5.1.1. Стрінговий тип (тип літерний рядок)
- •5.1.2. Стрінгові вирази
- •5.2. Завдання
- •5.3. Контрольні запитання з теми
- •Лабораторна робота № 6
- •6.1. Теоретичні відомості
- •6.1.1. Операції з даними перелічувального типу
- •6.1.2. Завдання
- •6.2.1. Множини
- •6.2.1.1. Операції з множинами
- •6.2.2. Завдання
- •6.2. Контрольні запитання з теми
- •Лабораторна робота № 7
- •7.1. Теоретичні відомості
- •7.1.1. Записи з варiантами
- •7.2. Завдання
- •7.3. Контрольні запитання з теми
- •Лабораторна робота № 8
- •8.1. Теоретичні відомості
- •8.1.1. Ініціалізація графічного режиму
- •8.1.2. Системи координат
- •8.1.3. Вибір кольорів в графічному режимі
- •8.1.4. Завдання стилів ліній та заливки контурів
- •8.1.5. Виведення тексту в графічному режимі
- •8.1. 6. Процедури для рисування фігур
- •8.2. Завдання
- •8.3. Контрольні запитання з теми
- •Лабораторна робота № 9
- •9.1. Теоретичні відомості
- •9.1.1. Процедури користувача
- •9.1.2. Функцii користувача
- •9.1.3. Параметри
- •9.1.4. Рекурсивні підпрограми
- •9.1.5. Область дії ідентифікаторів
- •9.2. Завдання
- •9.3. Контрольні запитання з теми
- •Лабораторна робота № 10
- •10.1. Теоретичні відомості
- •10.1.1. Стандартні процедури для текстових файлів
- •10.1.2. Функції для роботи з текстовими файлами
- •10.1.3. Приклад обробки інформації в текстових файлах
- •10.2. Завдання
- •10.3. Контрольні запитання з теми
- •Лабораторна робота № 11
- •11.1. Теоретичні відомості
- •11.1.1. Стандартні процедури обробки файлів з типом
- •11.1.2. Стандартні функції обробки файлів з типом
- •11.1.3. Приклад обробки інформації в файлах з типом
- •11.2. Завдання
- •11.3. Контрольні запитання з теми
- •Додаток 1 Повідомлення про помилки Повідомлення про помилки періоду компіляції
- •Повідомлення про помилки, що виникають під час виконання програми
- •Помилки, що виявляються dos
- •Помилки введення - виведення
- •Критичні помилки
- •Фатальні помилки
- •Додаток 2 Методичні вказівки до виконання лабораторних робіт та написання звітів
- •Додаток 3 Зразок виконання звіту до лабораторної роботи Лабораторна робота № 7.
- •Література
9.1.5. Область дії ідентифікаторів
Pascal - програма має модульну структуру і може складатися з ряду вкладених блоків. Основна програма – самий великий блок, що не входить в інші. Об'єкти описані в цьому блоці є глобальними і можуть використовуватися в усіх локальних блоках. Локальні блоки – це процедури і функції користувача. Описані в них об'єкти є локальними і недоступні в зовнішніх блоках.
Правила користування ідентифікаторами Pascal-програми:
Кожний ідентифікатор повинен описуватися перед використанням.
Областю дії ідентифікатора є блок, в якому він описаний.
Всі ідентифікатори в блоці повинні бути унікальними, тобто не повторюватися.
Один і той же ідентифікатор може по різному бути визначеним в кожному окремому блоку.
Якщо ідентифікатор підпрограми користувача співпадає з іменем стандартної процедури або функції, то вони ігноруються а виконується підпрограма користувача.
Однією з поширених помилок програміста є випадкове використання глобальних змінних в процедурах і функціях, де вони змінюють своє значення. Це може призвести до прикрих несподіванок.
Приклад:
Дано дійсні p, q.
Обчислити
де
Текст програми 1
program fun;
var z,p,q:real;
function k(x,y:real):real;
begin
k:=x/(1+sqr(sin(y)))+y/(1+sqr(x));
end;
begin
readln(p);
readln(q);
z:=(k(1+p*q,sqr(q))+sqr(k(p,sqr(p))))/(1+k(p*q+sqr(q),p));
writeln('z=',z);
readln;
end.
Результат виконання програми
3
2
z=1.5259865321E+00
Текст програми 2
program pros;
var y,y1,z1,y2,z,p,q:real;
procedure k(x,y:real;var z1:real);
begin
z1:=x/(1+sqr(sin(y)))+y/(1+sqr(x));
end;
begin
readln(p);
readln(q);
k(1+(p*q),sqr(q),y);
k(p,sqr(p),y1);
k(p*q+sqr(q),p,y2);
z:=(y+sqr(y1))/(1+y2);
writeln('z=',z);
readln;
end.
Результат виконання програми
3
2
z=1.5259865321E+00
9.2. Завдання
Скласти програми обчислення заданих виразів з використанням функцій користувача та процедур:
Варіант 1
Дано дійсні p, q.
Обчислити
де
Дано дійсні p, q.
Обчислити
де
Дано дійсні p, q.
Обчислити
де
Дано дійсні p, q.
Обчислити
де
Дано дійсні s, t.
Обчислити
де
Дано дійсні s, t.
Обчислити
де
Дано дійсні s, t.
Обчислити
де
Дано дійсні s, t.
Обчислити
де
Дано дійсні s, t.
Обчислити
де
Дано дійсні s, t.
Обчислити
де
Дано дійсні s, t.
Обчислити
де
Дано дійсні s, t.
Обчислити
де
Дано дійсні s, t.
Обчислити
де
Дано дійсні s, t.
Обчислити
де
Дано дійсні s, t.
Обчислити
де
Дано дійсні s, t.
Обчислити
де
Дано дійсні a, b.
Обчислити
де
Дано дійсні r,s.
Обчислити
де
Дано дійсні g, s.
Обчислити
де
Дано дійсні p,q.
Обчислити
де
Дано дійсні x, y.
Обчислити
де
Дано дійсні r,s.
Обчислити
де
Дано дійсні s, t.
Обчислити
де
Дано дійсні x, y.
Обчислити
де
Дано дійсні a, b.
Обчислити
де
Дано дійсні s, t.
Обчислити
де
Дано дійсні x, y.
Обчислити
де
Дано дійсне x.
Обчислити
де
Дано дійсне s.
Обчислити
де
Дано дійсне z.
Обчислити
де
Дано дійсне s.
Обчислити
де
Дано дійсне y.
Обчислити
де
Дано дійсне s.
Обчислити
де
Дано дійсне x.
Обчислити
де
Дано дійсне x.
Обчислити
де
Дано дійсні s,g.
Обчислити
де
Дано дійсне y.
Обчислити
де
Дано дійсне y.
Обчислити
де
Дано дійсне z.
Обчислити
де
Дано дійсне r.
Обчислити
де
Дано дійсне y.
Обчислити
де
Дано дійсне y.
Обчислити
де
Дано дійсні s.
Обчислити
де
Дано дійснi x, y.
Обчислити
де
Дано дійснi u, v.
Обчислити
де
Дано дійснi u, v.
Обчислити
де
Дано дійсні s,t.
Обчислити
де
Дано дійсні s,t.
Обчислити
де
Дано дійсні a,b.
Обчислити
де
Дано дійсні a, b.
Обчислити
де
Варіант 2
Дано дійсне t. Обчислити
Дано дійсне g. Обчислити
Дано дійсне t. Обчислити
Дано дійсне z. Обчислити
Дано дійсне k. Обчислити
Дано дійсне z. Обчислити
Дано дійсне t. Обчислити
Дано дійсне r. Обчислити
Дано дійсне t. Обчислити
Дано дійсне k. Обчислити
Дано дійсне f. Обчислити
Дано дійсне p. Обчислити
Дано дійсне z. Обчислити
Дано дійсне s. Обчислити
Дано дійсне p. Обчислити
Дано дійсне p. Обчислити
Дано дійсне f. Обчислити
Дано дійсне h. Обчислити
Дано дійсне g. Обчислити
Дано дійсне q. Обчислити
Дано дійсне q. Обчислити
Дано дійсне y. Обчислити
Дано дійсне r. Обчислити
Дано дійсне r. Обчислити
Дано дійсне k. Обчислити
Варіант 3
Описати процедуру, яка в лінійному однонапрямленому списку L (без елемента-заголовка) із кожної групи підряд розташованих однакових елементів залишає тільки один.
(„одинакові” елементи –це такі, інформаційні поля яких співпадають).
Описати процедуру, яка в лінійному однонапрямленому списку L (з елементом-заголовком) із кожної групи підряд розташованих однакових елементів залишає тільки один.
(„одинакові” елементи –це такі, інформаційні поля яких співпадають).
Описати процедуру, яка вилучає із лінійного однонапрямленого списку L (без елемента-заголовка) наступний після кожного входження Е елемент, якщо такий є.
(Е –значення інформаційного поля типу Tinfo).
Описати процедуру, яка вилучає із лінійного однонапрямленого списку L (з елементом-заголовком) всі від‘ємні елементи.
( інформаційне поле типу real).
Описати рекурсивну процедуру, яка вилучає із кільцевого однонапрямленого списку L всі входження елемента Е.
(Е –значення інформаційного поля типу Tinfo).
Описати процедуру, яка вилучає із кільцевого однонапрямленого списку L перший від‘ємний елемент, якщо такий є.
( інформаційне поле типу integer).
Описати рекурсивну процедуру, яка вилучає із кільцевого однонапрямленого списку L перше входження елемента Е, якщо такий елемент існує.
(Е –значення інформаційного поля типу Tinfo).
Описати процедуру, яка вилучає із лінійного однонапрямленого списку L без елемента-заголовка всі входження елемента Е.
(Е –значення інформаційного поля типу Tinfo).
Описати рекурсивну процедуру чи функцію, яка обчислює середнє арифметичне всіх елементів непорожнього кільцевого однонапрямленого списку L.
( інформаційне поле типу real).
Описати рекурсивну процедуру, яка друкує в зворотньому порядку елементи кільцевого однонапрямленого списку L.
( інформаційне поле типу char).
Описати рекурсивну процедуру чи функцію, яка обчислює середнє арифметичне всіх елементів непорожнього лінійного однонапрямленого списку L без елемента-заголовка.
( інформаційне поле типу real).
Описати рекурсивну функцію, яка обчислює кількість входжень елемента Е в лінійний однонапрямлений список L без елемента-заголовка.
(Е –значення інформаційного поля типу Tinfo).
Описати рекурсивну функцію, яка обчислює кількість входжень елемента Е в кільцевий однонапрямлений список L.
(Е –значення інформаційного поля типу Tinfo).
Описати рекурсивну функцію, яка знаходить максимальний елемент непорожнього лінійного однонапрямленого списоку L без елемента-заголовка.
( інформаційне поле типу real).
Описати рекурсивну функцію, яка визначає, чи входить елемент Е в лінійний однонапрямлений список L без елемента-заголовка.
(Е –значення інформаційного поля типу Tinfo).
Описати функцію, яка обчислює середнє арифметичне елементів непорожнього кільцевого однонапрямленого списку L.
( інформаційне поле типу real).
Описати функцію, яка обчислює кількість елементів лінійного однонапрямленого списку L (без елемента-заголовка).
Описати функцію, яка обчислює кількість елементів кільцевого однонапрямленого списку L.
Описати функцію, яка визначає, чи кільцевий однонапрямлений списк –порожній.
Описати процедуру, яка вилучає другий елемент(якщо такий є) із непорожнього кільцевого однонапрямленого списку L.
Описати рекурсивну процедуру, яка замінює в кільцевому однонапрямленому списоку L всі входження Е1 на Е2.
(Е1,Е2 –значення інформаційного поля типу Tinfo).
Описати рекурсивну процедуру, яка подвоює кожне входження елемента Е в кільцевий однонапрямлений список L.
(Е–значення інформаційного поля типу Tinfo).
Описати рекурсивну процедуру, яка замінює в лінійному однонапрямленому списоку L без елемента-заголовка всі входження Е1 на Е2.
(Е1,Е2 –значення інформаційного поля типу Tinfo).
Описати процедуру, яка вилучає перший елемент із непорожнього кільцевого однонапрямленого списку L.
Описати процедуру, яка міняє місцями перший і останній елементи непорожнього лінійного однонапрямленого списку L (з елементом– заголовком).
Описати процедуру, яка вставляє в кінець кільцевого однонапрямленого списку L новий елемент із значенням Е інформаційного поля типу Tinfo.
Описати рекурсивну процедуру, яка будує L1–копію кільцевого однонапрямленого списку L.
Описати процедуру, яка переносить на початок непорожнього лінійного однонапрямленого списку L(без елемента–заголовка) його останній елемент.
Описати функцію, яка перевіряє на рівність лінійні однонапрямлені списки L1 та L2(без елементів–заголовків).
Описати процедуру, яка замінює в кільцевому однонапрямленому списоку L всі входження V1 на V2.
(V1,V2 –значення інформаційного поля типу Tinfo).
Описати процедуру, яка вставляє в кільцевий однонапрямлений список L новий елемент Е1після кожного входження елемента Е.
(Е1,Е –значення інформаційного поля типу Tinfo).
Описати процедуру, яка вставляє на початок кільцевого однонапрямленого списку L новий елемент із значенням Е інформаційного поля типу Tinfo.
Описати процедуру, яка вставляє в непорожній кільцевий однонапрямлений список L,елементи якого впорядковані по незростанню, новий елемент Е так, щоб збереглася впорядкованість.
(Е –значення інформаційного поля типу real).
Описати процедуру, яка вилучає другий елемент(якщо такий є) із непорожнього лінійного однонапрямленого списку L(без елемента-заголовка).
Описати функцію, яка обчислює середнє арифметичне елементів непорожнього лінійного однонапрямленого списку L(без елемента-заголовка).
Інформаційне поле типу real.
Описати процедуру, яка вставляє в непорожній лінійний однонапрямлений список L(з елементом–заголовком),елементи якого впорядковані по незростанню, новий елемент Е так, щоб збереглася впорядкованість.
(Е –значення інформаційного поля типу real).
Описати процедуру, яка вставляє в лінійний однонапрямлений список L(з елементом– заголовком) новий елемент Е1 після кожного входження елемента Е.
(Е1, Е –значення інформаційного поля типу Tinfo).
Описати процедуру, яка вставляє в непорожній кільцевий однонапрямлений список L пару нових елементів Е1 та Е2 перед його останнім елементом.
(Е1, Е2 –значення інформаційного поля типу Tinfo).
Описати процедуру, яка вставляє в непорожній лінійний однонапрямлений список L(з елементом–заголовком) пару нових елементів Е1 та Е2 перед його останнім елементом.
(Е1, Е2 –значення інформаційного поля типу Tinfo).
Описати функцію, яка перевіряє на рівність кільцеві однонапрямлені списки L1 та L2.
Описати процедуру, яка вилучає останній елемент із непорожнього кільцевого однонапрямленого списку L.
Описати функцію, яка перевіряє чи є в кільцевому однонапрямленому списку L хоча би два „однакових” елемента,– такі, інформаційні поля яких співпадають.
Описати функцію, яка перевіряє чи є в лінійному однонапрямленому списку L (без елемента-заголовка) хоча би два „однакових” елемента,– такі, інформаційні поля яких співпадають.
Описати функцію, яка перевіряє на рівність лінійні однонапрямлені списки L1 та L2 (з елементами–заголовками).
Описати процедуру, яка міняє місцями перший і останній елементи непорожнього кільцевого однонапрямленого списку L.
Описати процедуру, яка міняє місцями перший і останній елементи непорожнього лінійного однонапрямленого списку L(без елемента-заголовка).
Описати процедуру, яка вилучає перший елемент із непорожнього лінійного однонапрямленого списку L(з елементом–заголовком).
Описати функцію, яка перевіряє, чи впорядковані елементи лінійного однонапрямленого списку L(без елемента-заголовка) по алфавіту. Інформаційне поле типу „А”..”Z”.
Описати функцію, яка перевіряє, чи впорядковані елементи лінійного однонапрямленого списку L(з елементом–заголовком).по алфавіту. Інформаційне поле типу „А”..”Z”.
Описати функцію, яка обчислює суму останнього і передостаннього елементів лінійного однонапрямленого списку L(без елемента-заголовка),що містить не менше двох елементів.
Інформаційне поле типу integer.
