
- •Базовий курс програмування у середовищі Turbo Pascal Методичні вказівки
- •Базовий курс програмування у середовищі Turbo Pascal Методичні вказівки
- •Практична робота №1
- •Організація вводу та виводу даних
- •Мета роботи: ознайомитись з конструкціями мови Turbo Pascal, структурою програм, стандартними типами даних і процедурами вводу та виводу.
- •Теоретичні відомості
- •1 Особливості мови Turbo Pascal
- •1.1 Спеціальні символи
- •1.2 Зарезервовані (ключові) слова
- •1.3 Ідентифікатори
- •1.5 Числа
- •1.6Рядки
- •1.7 Коментарі
- •2 Структура програми
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №2
- •Логічні та циклічні структури
- •Теоретичні відомості
- •1 Логічні структури
- •1.1 Команда розгалуження if (умовна команда)
- •1.2 Команда goto
- •1.3 Команда вибору (сase)
- •2 Циклічні структури
- •2.1 Команда циклу з параметром (for)
- •2.2 Команда циклу з передумовою (while)
- •2.3 Команда циклу з постумовою (repeat)
- •2.4 Порівняння роботи команд циклу while, repeat та for
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №3
- •Одновимірні масиви. Сортування
- •Мета роботи: ознайомитись з поняттям одновимірних масивів та діями над ними, навчитися застосовувати різні методи сортування для розв’язку математичних і технічних задач.
- •Теоретичні відомості
- •1 Одновимірні масиви
- •1.1 Додавання елементів масиву
- •1.2 Лічильник
- •1.3 Екстремуми
- •2 Методи сортування
- •2.1 Метод лінійного сортування
- •2.2 Сортування методом «бульбашки»
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №4
- •Багатовимірні масиви
- •Мета роботи: вивчити технологію роботи з багатовимірними масивами.
- •Теоретичні відомості
- •1 Опис багатовимірних масивів
- •2 Доступ до елементів масивів
- •3 Масиви ідентичного типу
- •4 Головна та побічна діагоналі
- •6 Ввід матриці
- •7 Виведення матриці
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №5
- •Підпрограми
- •Мета роботи: ознайомитись з правилами використання підпрограм, вивчити відмінності між процедурами та функціями.
- •Теоретичні відомості
- •1 Процедури та функції
- •1.1 Опис процедури
- •1.2 Опис функції
- •1.3 Формальні та фактичні параметри
- •1.3.1 Передача параметрів у підпрограмах
- •1.3.2 Виклик підпрограм
- •1.4 Глобальні та локальні змінні
- •1.5 Основні відмінності між функціями і процедурами
- •2 Рекурсивні функції
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №6
- •Символьні та рядкові змінні
- •Мета роботи: ознайомитись з прийомами роботи із символьними та рядковими змінними.
- •Теоретичні відомості
- •1 Символьні змінні
- •2 Множини
- •3 Рядкові змінні
- •3.1 Оголошення рядкових змінних
- •3.2 Доступ до окремих елементів рядка
- •3.3 Зміна поточної довжини рядка
- •3.4 Злиття рядків
- •3.5 Порівняння рядків
- •3.6 Порожній рядок
- •3.7 Рядки і символи
- •3.8 Масиви символів і рядка
- •3.9 Стандартні підпрограми для обробки рядків.
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №7
- •Записи. Записи з варіантами
- •Мета роботи: навчитись створювати прості бази даних за допомогою записів та записів з варіантами.
- •Теоретичні відомості
- •1 Записи
- •2 Записи з варіантами.
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №8
- •Файли: текстові, типізовані, нетипізовані
- •Мета роботи: ознайомитись з випадками використання файлів, типами файлів та методами обробки елементів файлів.
- •Теоретичні відомості
- •1 Текстові файли
- •2 Типізовані файли. Мітки
- •3 Нетипізовані файли
- •Приклад 4:
- •Приклад 5:
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №9
- •Мета роботи: вивчити структуру та особливості роботи з модулями в Turbo Pascal.
- •Теоретичні відомості
- •1 Структура модуля
- •1.1 Заголовок модуля
- •1.2 Інтерфейс модуля
- •1.3 Виконавча частина модуля
- •1.4 Розділ ініціалізації.
- •2 Етапи розробки модуля
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №10
- •Графіка
- •Мета роботи: ознайомитись з принципами побудови графіків функцій та інших графічних об’єктів за допомогою засобів TurboPascal.
- •Теоретичні відомості
- •1 Основні процедури і функції модуля Graph
- •2 Робота із зображеннями.
- •3 Побудова і масштабування графіків
- •Індивідуальні завдання
- •Контрольні питання
- •1 Дані динамічної структури
- •2 Вказівник
- •3 Списки
- •4 Стек. Черга
- •4.1 Алгоритм побудови стека
- •4.2 Алгоритм побудови черги
- •Індивідуальні завдання
- •Контрольні питання
- •Практична робота №12
- •Об’єктно-орієнтоване програмування
- •Мета роботи: засвоїти матеріал щодо можливостей TurboPascal при створенні об’єктів.
- •Теоретичні відомості
- •1 Поняття «об'єкт»
- •2 Спадкування
- •Індивідуальні завдання
- •Контрольні питання
- •Список літератури
- •Зразок оформлення результатів виконання практичного завдання
Приклад 4:
Типізовані файли і мітки. При введенні чисел від 1 до 10 виводити значення їх квадратів.
program Tip_File;
uses
crt;
{розділ опису мітки}
label
М; {будь-який правильний ідентифікатор або
числа в діапазоні 0-9999}
const
L_Min=l;
L_Max=10;
type
Int_N=L_Min..L_Max;
var
N:Int_N; {число, що вводиться}
R:real; {для зберігання квадратів чисел}
File_kvadr:file of real; {файл для зберігання квадратів чисел}
procedure N_Kvadr; {створює файл, що містить квадрати 10 чисел
типа real}
begin
rewrite(File_kvadr); {створює новий порожній файл і готує його
до запису}
for N:=L_Min to L_Max do
begin
R:=Sqr(N);
Write(File_kvadr,R);{записує числа у файл в двійковому коді}
end; {for}
close(File_kvadr);
end; {N_Kvadr}
procedure Sluga; {зчитує з екрану числа в діапазоні
L_Min - L_Maхі видає їх квадрати на екран
дисплея}
begin
clrscr;
writeln('Введіть число від ',L_Min,' до ', L_Max);
readln(N);
if (N>= L_Min) and (N<= L_Max)
then
begin
{Поточна позиція файлу пересувається в задану позицію}
seek(File_kvadr,N-1 {позиція числа R (N*N) оскільки відлік починається з нуля});
read(File_kvadr,R);
writeln('Квадрат ',N,' рівний ',R:4:0);
end {then}
else
writeln('Введене число знаходиться поза діапазоном');
end; {Sluga}
begin
assign(File_kvadr,'D:\Mas_Kvadr');
N_Kvadr;
reset(File_kvadr);
M: {мітка}
Sluga;
writeln('Для продовження роботи програми натисніть клавішу ''Enter' ' ');
write ('Для виходу з вічного циклу слід натиснути Ctrl_Break');
writeln('або ввести літеру');
readln; {для затримки результату на екрані дисплея}
goto M;
close(File_kvadr);
end. {Tip_File}
Приклад 5:
Нетипізовані файли. Програма копіює дисковий файл A:\Isx_File з максимально можливою швидкістю в файл B:\Rez_File. При цьому дані передаються порціями по одному кластеру, який складається з двох секторів, що відповідає копіюванню файлової дискети. В програмі індикація фактичного числа зчитаних порцій Rezultat не реалізована, оскільки дані передаються і приймаються по одній порції. Ця змінна використовується лише для ілюстрації можливостей процедури blockread.
program N_T_File;
const
Rozmir=1024;
Isx_File=’A:\Isx_File’; {ім’я вихідного файлу}
Rez_File=’B:\Rez_File’; {ім’я вхідного файлу}
var
Isx, Rez:file;
Bufer:array[1..Rozmir] of byte;
Rezultat:word;
begin
assign(Isx,Isx_File);
reset(Isx,Rozmir); {відкрили файл для зчитування}
assign(Rez,Rez_File);
rewrite(Rez,Rozmir); {відкрили файл для запису}
while not eof(Isx) do
begin
blockread(Isx,Bufer,1,rezultat); {зчитуємо з файлу Isx порцію
інформації в буфер}
blockwrite(Rez,Bufer,1); {записуємо в файл Rez порцію
інформації з буферу}
end; {while}
close(Isx);
close(Rez);
end. {N_T_File}
Індивідуальні завдання
Варіанти.
Скласти програму, яка формує поля запису n (рядок з 6 символів, коротке ціле число, дійсне число) та в циклі послідовно переписує їх на диск. Потім цей же файл відкривається та його вміст зчитується в зворотному напрямі.
Скласти програму, яка виконує в циклі вивід 10-ти порцій даних, які заготовлені в масиві buf (розмір кожної порції – 15 байт).
Скласти програму, яка відкриває текстовий файл для дозапису і формує в ньому список, який містить прізвище абонента та його телефонний номер.
Написати програму, яка витягує з командного рядка ім’я файлу і створює в тому ж каталозі резервну копію файлу з розширенням bak.
Скласти програму перекодування текстового файлу, який підготовлено редактором MS-DOS, в кодову сторінку 1251 для Windows. Слід спробувати зберегти вигляд таблиць, сформованих за допомогою символів псевдографіки.
Скласти програму, яка витягує з поточного каталогу імена файлів з наданим розширенням (наприклад, *.pas) та виводить їх на екран подібно директиві MS-DOS (dir *.pas), додаючи кількість та довжину виявлених файлів.
Скласти програму зсуву вмісту кожного рядка текстового файлу на задане число позицій вправо.
Записати в текстовий файл baza.pas відомості про автомобілі: номер; тип машини; прізвище, ім’я, та адресу власника. Програма в файл rezultat.pas повинна вивести відомості про авто, номера яких співпадають з трьома заданими цифрами в довільному порядку.
Результати сесії групи студентів запишіть в файл baza.pas. Програма в файл rezultat.pas повинна включити вміст вихідного файлу і список студентів за ознаками: «студенти, які отримали оцінку відмінно», «студенти, які отримали оцінку добре», «невстигаючі», з відповідними коментарями.
В файл baza.pas занести відомості про співробітників підприємства: прізвище; ім’я; по-батькові; дата народження; посада; кількість місяців, у які за попередній рік не сплачувалася заробітна платня. Програма у файл rezultat.pas повинна занести список співробітників-пенсіонерів, у яких кількість несплачених місяців роботи за попередній рік не перевищує 4 місяці.
Створити текстовий файл кожного рядка, який містить різні слова. Знайти слова максимальної довжини в кожному рядку файлу, переписати їх у новий текстовий файл, записати кількість слів у файлі.
Записати у файл введенні рядки. У кожному непарному рядку визначити послідовність цифрових символів і записати довжину цієї послідовності. Перетворити ці послідовності в числа.
Створити текстовий файл, що містить декілька рядків тексту. Визначити в кожному рядку кількість слів і максимальну довжину слова. Дописати значення кількості слів у початок кожного рядка, довжину – у кінець рядка. Вивести новостворені рядки у файл результату.
Створити текстовий файл рядка, який містить цифри й символи. У кожному рядку визначити максимальну послідовність цифр. Довжини цих послідовностей вписати спочатку рядків нового текстового файлу.
Створити текстовий файл за допомогою введення із клавіатури його рядків. Визначити в рядку слово максимальної довжини й записати його наприкінці попереднього рядка нового текстового файлу.
Створити файл простих чисел, які вводяться із клавіатури. Створити новий файл. Записати числа в другий файл із першого файлу у двійковій системі числення.
Створити файл простих чисел, які вводяться із клавіатури. Створити новий файл. Записати числа в другий файл із першого файлу у вісімковій системі числення.
Створити файл простих чисел, які вводяться із клавіатури. Створити новий файл. Записати числа в другий файл із першого файлу у шістнадцятковій системі числення.
Написати програму, яка відкриває текстовий файл для зчитування і в циклі виводить на екран код зчитаного символу.
Написати програму, яка підраховує кількість порожніх рядків у текстовому файлі.
Написати програму, яка зчитує інформацію з текстового файлу Text.txt і у відповідності до алфавітного порядку виводить на екран дзвінкі приголосні, які входять до кожного непарного слова та не входять до парних слів.
Виписати з текстового файлу Text.txt всі дзвінкі приголосні букви у алфавітному порядку.
Написати програму, яка визначає кількість слів і чисел у текстовому файлі Example.txt та виводить цю інформацію на екран.
Написати програму, яка виконувала б наступні операції з текстовими файлами: створення файлу, редагування файлу, перегляд файлу, пошук даних у файлі.
Написати програму, яка виконувала б наступні операції з текстовими файлами: зчитування з файлу, перегляд даних файлу, запис даних у файл, додавання та видалення запису, пошук запису, сортування даних за зростанням.
У файлі Р1 набрати текст. Повідомити скільки разів зустрічаються в тексті кожна латинська буква і кожен знак арифметичної операції. Вивести у файл Р2 всі символи, що зустрічаються в тексті, і всі символи, що зустрічаються в першому і останньому рядку.
Задано файл, що містить довільний текст. З'ясувати, чого в ньому більше: латинських букв або цифр.
Задано файл, що містить текст англійською мовою. Визначити, скільки разів зустрічається в ньому найдовше слово.
Задано два текстових файли f1 і f2. Файл f1 містить довільний текст. Слова в тексті розділені пробілами та розділовими знаками. Файл f2 містить не більше 30 слів, які розділені комами. Ці слова утворюють пари: кожне друге є синонімом першого. Замінити у файлі f1 ті слова, які можна, їх синонімами. Результат помістити в новий файл.
Заповнити файл послідовного доступу f цілими числами, отриманими за допомогою генератора випадкових чисел. Отримати в файлі g ті компоненти файлу f, які є парними.
Записати в файл f послідовного доступу N натуральних чисел. Отримати в іншому файлі послідовного доступу всі компоненти файлу f, крім тих, які кратні K. Вивести отриманий файл на друк.
Задано файл Bibl, що містить відомості про книги. Відомості про кожну з книг – це прізвище автора, назва і рік видання. Знайти назви книг даного автора, що видані починаючи з 1960 р.
Задано файл, що містить різні дати. Кожна дата – це число, місяць і рік. Знайти усі весняні дати.
Записати в файл послідовного доступу N дійсні числа. Знайти різницю першого і останнього компонентів файлу.
Записати в файл прямого доступу N дійсні числа. Знайти найбільше зі значень модулів компонентів із непарними номерами.