
- •Лабораторна робота №1
- •Завдання підвищеної складності
- •Складемо схему алгоритму
- •Контрольні питання
- •Завдання
- •Завдання підвищених труднощів
- •Лабораторна робота №3 Програмування циклічних алгоритмів
- •Загальні відомості
- •Приклади
- •Контрольні питання
- •Завдання
- •Задачки на кмітливість
- •Завдання підвищеної складності
- •Контрольні питання
- •Завдання підвищеної складності
- •Лабораторна робота 5
- •Загальні відомості
- •Приклади
- •Контрольні питання
- •Завдання
- •Завдання підвищеної складності
- •Лабораторна робота 6 Програмування з використанням безлічей
- •Загальні відомості
- •Приклад
- •Контрольні питання
- •Завдання
- •Завдання підвищеної складності
- •Лабораторна робота 7 Програмування з використанням типу запис
- •Загальні відомості
- •Приклад
- •Контрольні питання
- •Завдання
- •Завдання підвищеної складності
- •Лабораторна робота 8 Програмування з використанням процедур і функцій
- •Загальні відомості
- •Контрольні питання
- •Приклад
- •Завдання
- •Завдання підвищеної складності
- •Лабораторна робота 9 Робота з файлами
- •Загальні відомості
- •Приклад
- •Контрольні питання
- •Завдання
- •Завдання підвищеної складності
- •Завдання:
- •Завдання підвищеної складності
Завдання підвищеної складності
Розглянемо довільне натуральне число й знайдемо суму його цифр, потім суму цифр отриманого числа й так далі, поки не одержимо однозначне число. Назвемо це число цифровим коренем. Потрібно написати програму, що для заданого N (N<10100) знаходить його цифровий корінь.
Задано N натуральних чисел a1,a2,...,a (1Ј N Ј 20), кожне з яких перебуває в інтервалі від 1 до 10000. Необхідно визначити кількість натуральних дільників добутку a1*a2*...*a.
Написати функцію пошуку корінь полінома ступеня n. Вихідними параметрами будуть числа a1, a2,...,an. Комплексних корінь ураховувати.
Потрібно написати програму, що виводить у порядку зростання всі правильні нескоротні дроби, знаменники яких не перевершують N (2<=N<=500).
На екрані комп'ютера, що працює в операційній системі Windows, було відкрито N (N <= 20) вікон, положення кожного з яких однозначно визначається четвіркою натуральних чисел - X1 Y1 X2 Y2 - координатами лівого верхнього й правого нижнього кута вікна. Очевидно, що вікна, відкриті пізніше, можуть частково або повністю перекривати відкриті раніше. Вікно вважається видимим, якщо видно хоча б один утворюючий його пиксел.
Лабораторна робота 9 Робота з файлами
Теоретический материал |
Справочник по процедурам и функциям |
Ціль роботи: познайомити з поняттям файлового типу даних (типізовані, текстові й нетипізовані файли); виробити навички роботи з файловим типом даних у мові програмування Pascal. навчитися зчитувати інформацію з файлів, записувати інформацію у файл; навчиться вирішувати завдання з використанням файлів
Загальні відомості
Файл являє собою структурований тип даних, що містить послідовність компонентів одного типу й однієї довжини. Число елементів у файлі (довжина файлу) не фіксовано. Це є основною відмінністю файлу від масиву.
Файл можна представити як стрічку, у якої є початок, а кінець не фіксований. Елементи файлу записуються на цю стрічку послідовно, один за одним за допомогою деякого пристрою - покажчика файлу. При читанні або записі цей покажчик переміщається до наступного елемента й робить його доступним для обробки. У кожний момент доступний для читання або запису тільки той елемент файлу, на який установлений покажчик.
Приклад
Приклад1. Переписати з текстового файлу f у файл g рядка в переверненому виді, порядок рядків буд.б. зворотним. Етапи рішення завдання:
Будемо зчитувати файл f построчно й перевертаючи рядка будемо записувати їх у масив, далі створимо файл і заповнимо його рядками з масиву міняючи порядок рядків на зворотний.
Складемо блок -схему програми.
Уміст самих блоків не повинне викликати більших утруднень у значеннєвому розумінні, головне тут це - технічна реалізації мовою Паскаль, тому запишемо реалізації кожного блоку на Паскале.
а) "Зчитуємо рядка з файлу F"
assign(f,'input.dat');
reset(f);
while not eof(f) do
begin readln(f,st);
end;
б) "Перевертаємо рядка й записуємо їх у масив"
st1:='';
for i:= 1 to length(st) do
st1:= st[i]+st1;
m[k]:=st1;
k:=k+1;
в) "Записуємо у файл g"
assign(g,'output.dat');
rewrite(g);
for i:= 1tokdowriteln(g,m[i]);
3.Програма цілком
program example;
var
f,g:text;
m:array[1..100] of string;
k,i:integer;
begin
assign(f,'input.dat');
reset(f);
k:=0;
while not eof(f) do
begin readln(f,st);
k:=k+1;
st1:='';
for i:= 1 to length(st) do st1:= st[i]+st1;
m[k]:=st1;
end;
assign(g,'output.dat');
rewrite(g);
for i:= 1tokdowriteln(g,m[i]);
end.