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

Ответы 6

  • Спасибо огромное, я понял, как сделать еще проще!!!
  • Прдразумевалось, что поля в разных строках в текстовом файле
    • Автор:

      redfiwf
    • 5 лет назад
    • 0
  • Из условия задачи это не видно. Тогда решение существенно упрощается. Не надо в строке искать разделители, а считываете каждую третью строку из файла и она будет содержать номер школы.
    • Автор:

      amitm2q
    • 5 лет назад
    • 0
  • Да
  • Список учеников в файле data.txt(см. вложение)//Pascaltype  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.
    answer img
    • Автор:

      emmasmith
    • 5 лет назад
    • 0
  • Считаем, что поля записи в текстовом файле разделены символом ";", тогда задачу можно решить так:

    type

      Person = record

        fname: string;//Фамилия ученика

        lname: string;//Имя

        school: integer;//Номер щколы

      end;

     

    var student: Person;

    n,s,p:integer;

    tmp:string;

    fin:text;//Файловая переменная

    begin

      assign(fin, 'students.txt');

      reset(fin);

      readln(n);//Получаем номер школы

      while not (eof(fin)) do 

      begin

        readln(fin, tmp);//Читаем строку из файла

        p:= Pos(';', tmp); 

        Delete(tmp, 1, p);//удаляем все до первого разделителя

        p:= Pos(';', tmp); 

        Delete(tmp, 1, p);//удаляем все до второго разделителя

        // в tmp остался номер школы

        student.school:=strtoint(tmp);

        if student.school=n then s+=1; 

      end;

      writeln(s);

    end.

    answer img
    • Автор:

      jazmie
    • 5 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years