Запись и вывод данных в/из типизированного файла - Pascal ABC
Формулировка задачи:
Доброго времени суток!
Необходима помощь: нужно организовать ввод данных в типизированный файл (.dat ) с возможность вывода их ( данных ) в виде таблицы через оный.
Код:
Листинг программы
- type vuzi = record
- nazv_v:string[20];
- chislo_s:1..500;
- kol_f:1..50;
- kol_kaf:1..50;
- end;
- const n=5;
- var i:byte; v:array[1..n] of vuzi;
- a:string;
- begin
- for i:=1 to n do
- begin
- writeln('Задайте название');readln(v[i].nazv_v);
- writeln('Задайте число студентов');readln(v[i].chislo_s);
- writeln('Задайте кол-во факультетов');readln(v[i].kol_f);
- writeln('Задайте кол-во кафедр');readln(v[i].kol_kaf);
- end;
- ///Вот эти данные
- writeln('Название вуза',' Кол-во студентов',' Кол-во факультетов',' Кол-во кафедр');
- writeln;
- for i:=1 to n do
- with v[i] do
- writeln(nazv_v:4,' ',chislo_s:4,' ',kol_f:2,' ',kol_kaf:2);
- ///
- writeln('Поиск по названию вуза: задайте название:');readln(a);
- for i:=1 to n do
- with v[i] do
- begin
- if(a=nazv_v) then
- begin
- writeln('***');
- writeln('Название вуза: ', nazv_v);
- writeln('Общее число студентов: ', chislo_s);
- writeln('***');
- end;
- writeln
- end;end.
Решение задачи: «Запись и вывод данных в/из типизированного файла»
textual
Листинг программы
- type vuzi = record
- nazv_v:string[20];
- chislo_s:1..500;
- kol_f:1..50;
- kol_kaf:1..50;
- end;
- const n=5;
- var f:file of vuzi;
- v:vuzi;
- i,k:byte;
- a:string;
- begin
- assign(f,'cuzy.dat');
- rewrite(f);
- writeln('Введите данные о ',n,' ВУЗах');
- for i:=1 to n do
- begin
- writeln('ВУЗ ',i);
- with v do
- begin
- write('Задайте название: ');readln(nazv_v);
- write('Задайте число студентов: ');readln(chislo_s);
- write('Задайте кол-во факультетов: ');readln(kol_f);
- write('Задайте кол-во кафедр: ');readln(kol_kaf);
- write(f,v);
- end;
- end;
- writeln('Содержание файла');
- reset(f);
- writeln('Название вуза',' Кол-во студентов',' Кол-во факультетов',' Кол-во кафедр');
- writeln;
- while not eof(f) do
- begin
- read(f,v);
- with v do
- writeln(nazv_v:4,' ',chislo_s:4,' ',kol_f:2,' ',kol_kaf:2);
- end;
- ///
- writeln('Поиск по названию вуза: задайте название:');readln(a);
- k:=0;
- reset(f);
- while not eof(f) do
- begin
- read(f,v);
- with v do
- if(a=nazv_v) then
- begin
- k:=1;
- writeln('***');
- writeln('Название вуза: ', nazv_v);
- writeln('Общее число студентов: ', chislo_s);
- writeln('***');
- end;
- end;
- close(f);
- if k=0 then write('Такого ВУЗа нет')
- end.
Объяснение кода листинга программы
- Создание типа данных
vuzi
с полямиnazv_v
,chislo_s
,kol_f
,kol_kaf
. - Объявление переменных: n, f, v, i, k, a.
- Открытие файла 'cuzy.dat' для записи.
- Вывод сообщения
Введите данные о ... ВУЗах
. - Цикл for для ввода данных о каждом из n ВУЗов.
- Внутри цикла: чтение названия ВУЗа, числа студентов, числа факультетов и числа кафедр.
- Запись данных в файл.
- Вывод сообщения
Содержание файла
. - Чтение данных из файла до конца файла.
- Цикл while для поиска данных по названию ВУЗа.
- Чтение данных из файла.
- Проверка совпадения названия ВУЗа с введенным пользователем.
- Если совпадение найдено, вывод данных о ВУЗе.
- Установка переменной k в 1, если совпадение найдено.
- Вывод сообщения
***
. - Вывод названия ВУЗа и числа студентов.
- Вывод сообщения
***
. - Закрытие файла.
- Проверка значения переменной k.
- Вывод сообщения
Такого ВУЗа нет
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д