
Bezhapaba
4 год назад
Pascal ABC Тема Записи С клавиатуры вводится номер школы. Файл содержит сведения: фамилию, имя ученика, номер школы. Определить кол-во учеников в школе с заданным номером с клавиатуры
ОТВЕТЫ

Arsenij
Oct 24, 2020
Список учеников в файле data.txt(см. вложение)
//Pascal
type
TPupils = record
firstname, surname: string;
schoolNumber: integer;
end;
var
f: text;
s, buf: string;
i, j, tmp: byte;
num, countPupils: integer;
A: array [1..200] of TPupils;
begin
assign(f, 'data.txt');
reset(f);
j := 1;
while not eof(f) do
begin
readln(f, buf);
buf := buf + ' ';
tmp := 1;
for i := 1 to length(buf) do
begin
if pos(buf[i], ' ') = 0 then s := s + buf[i]
else
begin
if length(s) > 0 then
begin
case tmp of
1: begin A[j].firstname := s; Inc(tmp); end;
2: begin A[j].surname := s; Inc(tmp); end;
3:
begin
Val(s, num, num);
A[j].schoolNumber := num;
end;
end;
//writeln(s);
s := '';
end;
end;
end;
Inc(j);
end;
close(f);
write('Введите № школы: ');
readln(num);
for i := 1 to 200 do
begin
if A[i].schoolNumber = num then
//writeln(A[i].firstname, ' ', A[i].surname, ' ',
// A[i].schoolNumber);
Inc(countPupils);
end;
writeln('Количество учеников в данной школе = ',
countPupils);
end.
//Pascal
type
TPupils = record
firstname, surname: string;
schoolNumber: integer;
end;
var
f: text;
s, buf: string;
i, j, tmp: byte;
num, countPupils: integer;
A: array [1..200] of TPupils;
begin
assign(f, 'data.txt');
reset(f);
j := 1;
while not eof(f) do
begin
readln(f, buf);
buf := buf + ' ';
tmp := 1;
for i := 1 to length(buf) do
begin
if pos(buf[i], ' ') = 0 then s := s + buf[i]
else
begin
if length(s) > 0 then
begin
case tmp of
1: begin A[j].firstname := s; Inc(tmp); end;
2: begin A[j].surname := s; Inc(tmp); end;
3:
begin
Val(s, num, num);
A[j].schoolNumber := num;
end;
end;
//writeln(s);
s := '';
end;
end;
end;
Inc(j);
end;
close(f);
write('Введите № школы: ');
readln(num);
for i := 1 to 200 do
begin
if A[i].schoolNumber = num then
//writeln(A[i].firstname, ' ', A[i].surname, ' ',
// A[i].schoolNumber);
Inc(countPupils);
end;
writeln('Количество учеников в данной школе = ',
countPupils);
end.
- Спасибо огромное, я понял, как сделать еще проще!!!
584
Смежные вопросы: