Лабораторна робота №9
Тема:
Робота з файлами.
Мета:
Навчитися працювати із файлами і використовувати їх для розв‘язування подальших задач.
Інформація про масив садових ділянок задана таблицею
| Інв. номер |
Прізвище
Бєдениж {
|
Тип ґрунту |
Площаар |
ГОЗ за 1 aр |
Вартість |
001
|
Беденюк |
дп |
6 |
1798.5 |
10791 |
| 002 |
Головачук |
чз |
7 |
2289 |
16023 |
| 003 |
Боровець |
чп |
10 |
2616 |
26160 |
| 004 |
Вітрук |
дп |
8 |
1798.5 |
14388 |
| 005 |
Клочко |
п |
12 |
1308 |
15696 |
| 006 |
Загура |
чз |
6 |
2289 |
13734 |
| 007 |
Паріпа |
чз |
9 |
2289 |
20601 |
| 008 |
Ліщук |
дп |
8 |
1798.5 |
14388 |
| 009 |
Шалимов { |
чп |
11 |
2616 |
28776 |
| 010 |
Зінчик |
чз |
6 |
2289 |
13234 |
| 011 |
Пасько |
п |
10 |
981 |
9810 |
| 012 |
Дитина |
п |
12 |
1308 |
15696 |
| 013 |
Хайлова |
чп |
9 |
2616 |
23544 |
| 014 |
ПозняковськаПозняковська | |
дп |
8 |
1798.5 |
14388 |
| 015 |
Чуб'як |
чп |
10 |
2616 |
26160 |
Використовуючи записи, згідно моделі п. IVпровести розрахунок ГОЗ для кожного садівника. Визначити вартість його ділянки (вид угідь = ‘сади‘), вивести повну таблицю на екран, а також виконати наступне завдання:
1) Відсортувати список в алфавітному порядку і вивести на екран потковий та відсортований список.
2) Відсортувати список по спаданню значення площі і вивести на екран початковий та відсортований списки.
3) Відсортувати список по спаданню вартості і вивести на екран початковий та відсортований списки.
4) Вивести на екран початковий список і окремо інформацію про записи, що містять прізвище з початковою літерою "Б".
5) Вивести на екран початковий список і окремо Інформацію про ділянки, площа яких перевищує 9 арів,
6) Вивести на екран початковий список і окремо Інформацію про ділянки, грошова оцінка вартості яких перевищує 12 млн. крб.
7) Вивести на екран початковий список і окремо інформацію про ділянки з типом ґрунту 1л
Дарново-підзолисті".
8) Вивести на екран початковий список і значення площі всього садового масиву.
9) Вивести на екран початковий список і значення ГС вартості всього садового масиву.
10) Ю. Вивести на екран початковий список і середнє значення площі однієї садової ділянки.
11) Вивести на екран початковий список і середнє значення ціни за 1 ар.
12) Вивести на екран початковий список і середнє значення ГОЗ садової ділянки.
13) Вивести на екран початковий список і окремо інформацію про ділянки, ГОЗ яких нижче середньої.
14) Вивести на екран початковий список і окремо інформацію про ділянки з типом ґрунту - «чорноземи звичайні» і вартістю нижче середньої.
15) Вивести на екран початковий список і окремо інформацію про ділянки, площа яких більше від середньої, а ГОЗ нижча середньої.
ВИКОРИСТАННЯ ФАЙЛІВ ДЛЯ ЗБЕРІГАННЯ І ОБРОБКИ ІНФОРМАЦІЇ,
Записати у типізований файл Z1 дані таблиці п. V. Прочитати дані з файлу в оперативну пам'ять, використати завдання п.V (згідно варіанту п.VII) і новоутворені дані записати у файл Z2.
Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок.
— Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта.
— Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы).
— SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание.
SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз,
а первые результаты появляются уже в течение первых 7 дней.
Зарегистрироваться и Начать продвижение
Розглянемо наприклад використання файлів даних для зберігання та обробки інформації про масив дачних ділянок (умова прикладу 7). Початковий список запишемо у файл A: dacha, відсортований - у файл й А: dachasort.
Приклад 9.
Program DachFil;
Const N=15;
Type Dacha=Record
Num: Integer;
Pr: String [15];
G:String [2];
S, Oz, V: Real;
Zр. Bal:Integer;
End;
Var f, g: file of Dacha; {файлові змінні типу « запис Dacha»}
Dil :array [1..n] of Dacha; {масив записів –зміннихтипу Dacha}
Dil1: Dacha;
І. J: Integer;
begin
Assign (f, ' A:\dacha' );
Rewrite (f);
Writeln (' Запис розпочато' );
for i: = l to N do
with Dil [i] do begin
<Введення даних >
Write (‘ Номер’); readln (Num);
Write (‘Прізвеще’); readln (Pr);
Write (‘Тип ґрунту’); readln (G);
Write (‘Площа’); readln (S);
Write (‘ставка зем. податку); readln (Zp);
Wrlte (‘ Бал ґрунту ’); readln (Bal);
Oz: = 0. 3*Zp*Bal;V: Oz*S;
Write (f, Dil[i]); {Запис у файл}
Еnd;Writeln;
Writeln (‘Запис завершено ‘); readln;
{Вивід на екран }
Writeln (‘Масив землевласників ‘);
Fori: =l to Ndo WithDil [i] do
Writeln (Num: 4, Pr:l5, G: 4,S:6:2, Оz:8:2, V:9:2’);
Readln;
{Сортування}
for i:=l to N do
for j:=i+1 to N do
if Dil[J]. Pr<Dil [i]. Pr then begin
Dil1:=Dil [j]; Dil [j]:= Dil [i];
Dil[i]:= Dil1; end;
Writeln (‘впорядкований масив ‘);
for i: = i to N do with Dil[i] do
writeln (Hum: 4. Pr: 15, G: 4, S: 6: 2, Оz
:8: 2, V: 9: 2) ;
readln;
Assign (g, ' A: dachasort');
Rewrite (g);
For i: =l to N do Write (g, Dil [i]); {Запис у файл}
Writeln ('Запис завершено’); readln;
Close (f); close(g);
end.
виведення матриці змінних робиться так.
fori:=lto 5 dobegin
forj: = і to 5 do
write(Oz
[i, j]:8:2); writeln; end;
Розглянемо приклад використання матриці для зберігання числових значень грошової оцінки землі.
Приклад 6. 1.
Для грошової оцінки землі (ГОЗ) сільськогосподарського призначення використовується спрощена модель, згідно якої оцінка землі залежить від виду угіддя.
| Угіддя |
Ліс |
Пасовища |
Сади |
Сіножаті |
Рілля |
| Ставки земельного податку (ум. од.) |
55
|
67
|
109
|
67
|
109
|
Та типу ґрунту
Ґрунти
|
Сірі лісові
(СЛ)
|
Лучно–
болотисті
(ЛВ)
|
Чорноземи
звичайні
(ЧЗ)
|
Дерново–
підзолисті
(ДП)
|
Чорноземи типові (ЧТ) |
| Умовний бал |
40
|
30
|
70
|
55
|
80
|
Грошова оцінка і га землі розраховується за формулою
ГОЗ = 0.3*СЗП*Вал (млн. крб. /га),
де коефіцієнт 0,3 враховує індекс інфляції на рівні 1985 року. Обрахувати і занести в пам'ять ЕОМ таблицю ГОЗ у вигляді матриці 5x5. вивести матрицю на екран, а також виконати наступне завдання: визначити середнє значення ГОЗ для всіх типів грунту і видів угідь.
Program GOZ?
Сервис онлайн-записи на собственном Telegram-боте
Попробуйте сервис онлайн-записи VisitTime на основе вашего собственного Telegram-бота:
— Разгрузит мастера, специалиста или компанию;
— Позволит гибко управлять расписанием и загрузкой;
— Разошлет оповещения о новых услугах или акциях;
— Позволит принять оплату на карту/кошелек/счет;
— Позволит записываться на групповые и персональные посещения;
— Поможет получить от клиента отзывы о визите к вам;
— Включает в себя сервис чаевых.
Для новых пользователей первый месяц бесплатно.
Зарегистрироваться в сервисе
Const U: array [0..5]of string[10] =
(' Угіддя', ' Ліс', ' Пасовища', ' Рілля , ' Сади' , ' Сіножаті');
Zp
: array [1..5]of integer = (55, 87, 109, 67, 108)?
G: array [1.. 5]ofstring[15]=
(‘сірі лісові ‘,' Лучно–болотисті’,' чорноз. звичайні',
‘ дерново-підзолисті ‘ .' чорноз. типові '); Bal:array[1.. 5] ofinteger= (
40,30, 70, 55, 80)? VarOz: array [1..5, і..5] ofReal; {Масив значень оцінки землі} I,j: Integer; {індекси: і - номер рядка, j - номер стовпця}
IOz:Real;
Індивідуальне завдання:
Вивести на екран початковий список і окремо Інформацію про ділянки, площа яких перевищує 9 арів, а такожпровести розрахунок ГОЗ для кожного садівника і визначити вартість його ділянки.
program Grunt;
const n=15;
type dacha = record
Num: integer;
Pr: string [15];
g: string [2];
S, Oz, V: real;
Zp,Bal: integer;
end;
var f: file of Dacha;
Dil: array [1..n] of dacha;
i: integer;
begin
Assign (f, 'd:\tree'); rewrite (f);
for i:=1 to n do
with dil[i] do begin
Write ('Nomer= ');
readln (num);
Write ('Prizveche ');
readln (Pr);
Write ('Tup grunty ');
readln (G);
Write ('Plosha ');
readln (S);
Write ('Stavca zem. podatcy ');
readln (Zp);
Write ('Bal grunty ');
readln (Bal);
Oz:=0.3*Zp*Bal; V:=Oz*s;
writeln ('Oz=' ,Oz:4:2, 'V=', V:4:2);
readln;
Write (f,dil[i]);
end;
close (f); reset (f); read (f,dil[i]);
for i:=1 to n do with dil[i] do begin
if S > 9 then write (pr);
readln; end; end.
Висновок:
На цій лабораторній роботі я навчився працювати із файлами.
|