Контрольна робота
з дисципліни "Основи програмування"
на тему
Алгоритмічні мови: обробка масивів
Завдання 1. Символьні типи даних. Робота з рядками
Короткі теоретичні відомості.
Символьний тип (char) являє собою тип даних, призначених для зберігання одного символу (літери, знака чи коду).
Функції над символьними змінними:
chr (x) - визначення символу з набору символів за порядковим номером;
ord (x) - визначення порядкового номера символу в наборі символів;
upcase (x) - перетворення малих літер у прописні;
pred (x) - визначення попереднього елемента;
succ (x) - визначення подальшого елемента.
Тип даних string (рядок) спеціально призначений для обробки рядків (ланцюжків символів). Змінна типу string складається з елементів типу char. Змінні типу string можуть бути оголошені наступним чином:
var Імя_переменной1: string;
Імя_переменной2: string [n];
Змінна типу string оголошується, як правило, шляхом зазначення імені змінної, зарезервованого слова string і вказівки (у квадратних дужках) максимального розміру (довжини) рядки, яка може зберігатися в цій змінній. Якщо максимальний розмір рядка не вказаний, то він автоматично приймається рівним 255 - максимально можлива довжина рядка.
Стандартні процедури та функції для рядків:
функція Length - визначення фактичної довжини текстового рядка, що зберігається в зазначеній змінної;
функція UpCase - перетворення символу будь літери з рядкового в прописної;
функція Copy - копіювання фрагмента деякою рядки з однієї змінної в іншу;
функція Pos - здійснення в деякій рядку пошуку певного фрагменту;
функція Concut - з'єднання рядків;
процедури Insert і Delete - вставка фрагмента з одного рядка в іншу, видалення фрагмента з рядка [1-8].
Постановка завдання.
Дана послідовність слів; між сусідніми словами - кома, за останнім словом - крапка. Надрукувати цю ж послідовність слів, але видаливши з неї повторні входження слів. Скласти блок схему алгоритму і програму.
Лістинг програми
uses crt;
var str: array [1 .. 10] of string; - масив для слів
Slovo, st: string; - рядок пропозиції
i, j, n, k: integer; - допоміжні змінні
begin
ClrScr;
Writeln ('Programma ydalyaet povtornoe vhojdenie slov');
Writeln;
Writeln ('Vvedite posledovatelnost slov v formate: <>,<>,<>.'); - формат введення слів у програмі
Write ('Vashi slova:');
Readln (Slovo);
if Length (Slovo) <1 then - перевірка на введення слів
begin
Writeln ('Nujno vvesti slovo!');
Halt;
end;
j: = 0; i: = 1; k: = 1; n: = 1; - н.у. для змінних
while i <= Length (Slovo) do - цикл в якій слова з пропозиції заносяться в масив begin рядків
n: = i;
while (Slovo [i ]<>',') and (Slovo [i ]<>'.') do begin inc (i); inc (j); end;
str [k]: = Copy (Slovo, n, j); - занесення в масив слова
j: = 0;
inc (k);
inc (i);
end;
str [k ]:='.';
for i: = 1 to k-1 do - цикл в якому відбувається порівняння і видалення
for j: = (i +1) to k-1 do begin однакових слів у реченні
if str [i] = str [j] then begin
str [j ]:='';
end;
end;
st :='';
for j: = 1 to k-1 do begin - формування пропозиції з неповторюваних слів
if (str [j ]<>'') then st: = st + str [j ]+',';
end;
delete (st, Length (st), 1);
st: = st +'.';
writeln;
writeln ('Posledovatelnost');
write ('bez povtoreniy:', st); - висновок результату
readln;
end.
Блок-схема алгоритму програми.
Рис.1 Блок-сема програми завдання 1.
Результати роботи програми.
Завдання 2. Організація програм з використанням процедур і функцій
Короткі теоретичні відомості.
У випадку, коли одна і та ж послідовність дій повинна виконуватися на різних етапах обробки інформації, можна використовувати процедури і функції. У загальному вигляді заголовок процедури має вигляд:
procedure Імя_процедури (Список параметрів);
Список параметрів - перелік імен для позначення вихідних даних і результатів роботи процедури із зазначенням їхніх типів. Параметри, перераховані в списку, називаються формальними. Константа, змінні, типи, описані в блоці program, називаються глобальними. Допускається опис процедури, що не містить параметри. Виклик процедури має вигляд:
Імя_процедури (Список параметрів);
Параметри, що містяться в Списку параметрів при виклику процедури, називаються фактичними.
Функції - це процедури особливого характеру, результатом роботи яких є деяке значення, подібне змінної. Результат роботи функції присвоюється імені функції. Загальна структура функції збігається зі структурою процедури, за винятком заголовка. Заголовок функції має наступний вигляд:
Function Імя_функціі (Список параметрів): Тіп_результата;
Процедури і функції заносяться у головній програмі після розділу var і перед bеgіn основного блоку програми [1-8].
Постановка завдання.
За речовинним числа а> 0 обчислити величину
Скласти блок схему алгоритму і програму.
Лістинг програми.
uses crt;
var t: real; - допоміжні змінні
st1, st2, st3: real; - допоміжні змінні
a, a2, a3: real; - проміжні змінні
t1, t2, t3: real; - допоміжні змінні
Function pow1 (x, v: real): real; - функція для піднесення числа x у ступінь v
Begin
if (v = 0.0) then - перевірка умови v> 0
pow1: = 1
else
if (x = 0.0) then - - перевірка умови x <> 0
pow1: = 0
else
if (x> 0.0) then
pow1: = exp (v * ln (x)) - обчислення числа в заданій ступеня
else
if (odd (trunc (v))) then
pow1: =-exp (int (v) * ln (-x))
else
pow1: = exp (int (v) * ln (-x));
End;
BEGIN
clrscr;
st1: = 1 / 3;
st2: = 1 / 6;
st3: = 1 / 7;
writeln ('Format vvoda chisla: *.*');
write ('Vvedite vewestvennoe chislo "a ":');
readln (a);
a2: = a * a +1; - проміжні обчислення
a3: = 3 + a; - проміжні обчислення
t1: = pow1 (a, st1);
t2: = pow1 (a2, st2);
t3: = (1 + pow1 (a3, st3));
t: = (t1-t2) / t3; - обчислення заданої формули
writeln;
write ('Otvet: t =', t); - висновок результату
readln;
END.
Блок-схема алгоритму програми.
Рис.2 Блок-сема програми завдання 2.
Результати роботи програми.
Завдання 3. Робота з файлами
Короткі теоретичні відомості.
Файл - це послідовність компонент, що є об'єктами одного і того ж типу. Кількість компонент у файлі заздалегідь не обмовляється, компоненти файлу не мають індексів. У Паскалі можливе використання трьох файлових типів: текстові файли, компонентні файли, безтипових файли.
Процедури і функції, що використовуються при обробці файлів будь-яких типів:
• процедура Assign (Var_file, Road) пов'язує змінну Var_file з деяким ім'ям файлу, яке зберігається у змінній Road;
• процедура Reset (f) відкриває файл з ім'ям f для читання;
• процедура Rewrite (f) створює новий файл f і відкриває його для запису;
• процедура Erase (f) стирає існуючий файл з диска;
• функція EOF (f) перевіряє досягнення кінця файлу;
• функція Close (f) закриває файл f.
Типізований, або компонентний файл - це файл з оголошеним типом його компонент. Оголошення такого типу має структуру:
var Імя_переменной_файла: file of Тіп_елементов_файла;
Текстові файли організовуються по рядках і оголошуються наступним чином:
var file: text;
Крім загальних для всіх файлів процедур і функцій, визначені ще кілька, що працюють тільки з текстовими файлами:
• процедура Append (file), що відкриває текстовий файл file для дозапису в кінець файлу;
• функція EOLn (file), що перевіряє досягнення кінця рядка [1-8].
Постановка завдання.
Скопіювати з файлу F1 в файл F2 рядка, починаючи з N до K. Скласти блок схему алгоритму і програму.
Результати роботи програми.
Файл F2.txt
sasa
ss
fedg
dfhdfh
Лістинг програми.
uses crt;
var f, g: text; - логічні імена файлів
s: string; - допоміжні змінні
i, n, m: integer; - допоміжні змінні
BEGIN
clrscr;
assign (f, 'D: \ FF \ F1.txt'); - відкриття файлу F1.txt з D: \ FF \ F1.txt
reset (f);
assign (g, 'D: \ FF \ F2.txt'); - відкриття файлу F2.txt з D: \ FF \ F2.txt
rewrite (g);
writeln ('Kopirovat stroki'); - запит на копіювання рядків
write ('s:');
readln (n);
write ('po:');
readln (m);
i: = 1;
while not EOF (f) do begin - цикл в якому відбувається копіювання
з позиції n до позиції m
readln (f, s);
if (i> = n) and (i <= m) then
begin
writeln (g, s);
end;
inc (i);
end;
writeln ('Gotovo!'); - результати виконання програми у файлі F2.txt
close (g);
close (f);
readln;
end.
Блок-схема алгоритму програми.
Рис.3 Блок-сема програми завдання 3.
Список використаних джерел
1. Абрамов С.О., Зима О.В. Почала інформатики. -М.: Наука, 1990.
2. Грогоно П. Програмування на мові Паскаль. - М.: Світ, 1982.
3. Йенсен К., Вірт H. Паскаль. Керівництво для користувача і опис мови. -М.: Фінанси і статистики, 1982.
4. Пермінов О.М. Програмування на мові Паскаль. - М.: Радіо і зв'язок, 1988.
5. Пильщиків В.М. Збірник вправ з мови Паскаль. - М.: Наука, 1989.
6. Прайс Д. Програмування на мові Паскаль. Практичне керівництво. -М.: Світ, 1987.
7. Турбо Паскаль 7.0. - К.: Торгово-видавниче бюро BHV, 1996.
8. Фаронов В.В. Турбо Паскаль 7.0. Початковий курс. Навчальний посібник.-М.: «Нолидж», 1997.