Выяснить, в каких классах насчитывается 35 учащихся - PascalABC.NET

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

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

3)Сведения об ученике состоят из его имени и фамилии и наименование класса (года обучения и буквы), в котором он учится. Дан файл f, содержащий сведения об учениках школы: выяснить, в каких классах насчитывается 35 учащихся

Решение задачи: «Выяснить, в каких классах насчитывается 35 учащихся»

textual
Листинг программы
  1. type TKlass=record
  2.             nm:integer; {номер класса}
  3.             bk:char; {буква класса}
  4.             kl:integer;{количество учеников}
  5.             end;
  6. var f:text;
  7.     k:array of TKlass;
  8.     n,i,j:integer;
  9.     s:string;
  10.     s1,s2:string[20];
  11. begin
  12. assign(f,'f.txt'); //файл f.txt в папке с программой
  13. reset(f);
  14. n:=0;
  15. while not seekeof(f) do
  16.  begin
  17.   readln(f,s);
  18.   while pos(' ',s)>0 do
  19.   delete(s,1,pos(' ',s));
  20.   s1:='';
  21.   while s[1] in ['0'..'9'] do
  22.    begin
  23.     s1:=s1+s[1];
  24.     delete(s,1,1);
  25.    end;
  26.   if n=0 then
  27.    begin
  28.     inc(n);
  29.     setlength(k,n);
  30.     k[n-1].nm:=strtoint(s1);
  31.     k[n-1].bk:=s[1];
  32.     k[n-1].kl:=1;
  33.    end
  34.   else
  35.    begin
  36.     j:=-1;
  37.     i:=1;
  38.     while(i<n)and(j=-1)do
  39.     if(strtoint(s1)=k[i].nm)and(s[1]=k[i].bk)then j:=i
  40.     else inc(i);
  41.     if j>-1 then inc(k[j].kl)
  42.     else
  43.      begin
  44.       inc(n);
  45.       setlength(k,n);
  46.       k[n-1].nm:=strtoint(s1);
  47.       k[n-1].bk:=s[1];
  48.       k[n-1].kl:=1;
  49.      end;
  50.     end;
  51.  end;
  52. close(f);
  53. writeln('Классы в которых 35 учащихся');
  54. j:=0;
  55. for i:=0 to n-1 do
  56. if k[i].kl=35 then
  57.  begin
  58.   writeln(k[i].nm,k[i].bk);
  59.   j:=1;
  60.  end;
  61. if j=0 then write('Таких классов нет');
  62. end.

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

  1. Объявление переменных и массива:
    • f: текстовый файл для чтения данных;
    • k: массив объектов типа TKlass для хранения информации о классах;
    • n, i, j: целочисленные переменные для подсчёта количества классов и обработки данных;
    • s: строковая переменная для хранения прочитанной строки;
    • s1, s2: строки типа string[20] для обработки строк.
  2. Открытие файла f.txt для чтения.
  3. Инициализация первого класса:
    • Если n=0, то увеличивается счётчик классов n;
    • Массив k выделяется памятью под новый элемент;
    • k[n-1].nm присваивается значение strtoint(s1) - номер класса;
    • k[n-1].bk присваивается значение s[1] - буква класса;
    • k[n-1].kl присваивается значение 1 - количество учеников в классе.
  4. Обработка всех строк в файле:
    • Если n>0, то для каждого нового класса проверяется наличие учеников с помощью функции seekeof.
    • Для каждого класса проверяется соответствие номера класса и буквы класса.
    • Если соответствие найдено, то к количеству учеников в классе добавляется единица.
    • Если класс пуст, то создается новый класс с номером n и одним учеником.
  5. Закрытие файла f.txt.
  6. Вывод на экран классов, в которых 35 учеников.
    • Если таких классов нет, то выводится сообщение Таких классов нет.

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


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

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

10   голосов , оценка 3.9 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы