Как работать с текстовым файлом? - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Подскажите пожалуйста: Дан текстовый файл, в котором хранятся данные об учениках нескольких школ: фамилия, имя, отчество, адрес (улица, дом, квартира), школа и класс. Вывести на экран фамилию, имя и адрес тех учеников, кто учится в данной школе в старших классах (номер школы вводить с клавиатуры). Программа есть,помогите разобраться с текстовым файлом Не могу как его составить, в каком формате и как вставить его в код

Решение задачи: «Как работать с текстовым файлом?»

textual
Листинг программы
Program B;
Type
pupil = Record
fio:String;
adr:String;
cl:integer;
shkola:integer;
End;
mas=Array[1..500] of pupil;
Var
a:mas;
i,m,n:integer;
f:text;
s:string;
Begin
n:=0;
assign(f,'shkola.txt');reset(f);
while not Eof(f) do
    begin
    inc(n);
    readln(f,s);
    s:=trim(s);
    a[n].fio:=copy(s,1,pos('ул.',s)-1);
    delete(s,1,pos('ул.',s)-1);
    a[n].adr:=copy(s,1,pos('ш.',s)-1);
    delete(s,1,pos('ш.',s)+1);
    s:=trimleft(s);
    a[n].shkola:=StrToInt(copy(s,1,pos(' ',s)-1));
    delete(s,1,pos('л',s));
    s:=trimleft(s);
    a[n].cl:=StrToInt(copy(s,1,length(s)));
    end;
close(f);
for i:=1 to n do writeln(a[i].fio:30,a[i].adr:30,a[i].cl:7,a[i].shkola:7);
writeln;
writeln('Введите номер школы, учащиеся которой Вас интересуют');
readln(m);
writeln('Вывести на экран фамилию, имя и адрес тех учеников, кто учится в данной школе в старших классах');
for i:=1 to n do
begin
if (a[i].shkola=m) and (a[i].cl>9) then writeln(a[i].fio:30,a[i].adr:30);
end;
readln;
end.

Объяснение кода листинга программы

  1. Создается тип данных pupil с полями fio, adr, cl и shkola.
  2. Создается массив mas типа pupil на 500 элементов.
  3. Объявляются переменные a, i, m, n и f для работы с массивом.
  4. Задается имя файла для чтения и записи - shkola.txt.
  5. В цикле while считывается информация из файла до конца файла.
  6. Каждая строка обрабатывается следующим образом:
    • С помощью функции trim удаляются лишние пробелы в начале и конце строки.
    • Поле fio выделяется из строки.
    • Поле adr выделяется из строки.
    • Поле cl выделяется из строки.
    • Поле shkola выделяется из строки.
    • Строка с номером школы записывается в соответствующее поле ученика.
    • Строка с адресом школы записывается в соответствующее поле ученика.
    • Номер класса ученика записывается в соответствующее поле ученика.
    • Номер школы ученика записывается в соответствующее поле ученика.
  7. После окончания чтения файла закрывается файл.
  8. Выводится запрос на ввод номера школы, после чего выводится запрос на ввод номера класса старшего класса интересующей школы.
  9. В цикле for перебираются элементы массива mas от 1 до n.
  10. Если номер школы равен введенному номеру и класс старше 9, то выводится фамилия, имя и адрес ученика.
  11. Программа завершается с помощью функции readln.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы