Выведите фамилию, имя и отчество троих кандидатов, получивших наибольшее число голосов на выборах - Turbo Pascal

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

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

Проводились выборы президента школы. В первой строке подаётся целое число N-количество проголосовавших. Каждая из последующих N строк содержит фамилию фамилию, имя и отчество кандидата, за которого проголосовал тот или иной избиратель. Известно, что в выборах принимало участие не более 10 и не менее 3 кандидатов. Выведите фамилию, имя и отчество троих кандидатов, получивших наибольшее число голосов на выборах. Выводить следует в порядке от высшего к низшему. Напишите эффективную, в том числе и по используемой памяти, программу на языке Pascal.

Решение задачи: «Выведите фамилию, имя и отчество троих кандидатов, получивших наибольшее число голосов на выборах»

textual
Листинг программы
  1. var
  2.     n, i, j, p, k :longint;
  3.     s :string;
  4.     a :array[1 .. 10] of string;
  5.     d :array[1 .. 10] of longint;
  6. begin
  7.     readln(n);
  8.  
  9.     for i := 1 to n do begin
  10.         readln(s);
  11.         p := 0;
  12.         for j := 1 to k do
  13.             if (a[j] = s) then p := j;
  14.  
  15.         if (p = 0) then begin
  16.             inc(k);
  17.             a[k] := s;
  18.         end
  19.         else
  20.             d[p] := d[p] + 1;
  21.     end;
  22.  
  23.     for i := 1 to k do
  24.         for j := 1 to k - 1 do
  25.             if (d[j] < d[j + 1]) then begin
  26.                 s := a[j];
  27.                 a[j] := a[j + 1];
  28.                 a[j + 1] := s;
  29.                 p := d[j];
  30.                 d[j] := d[j + 1];
  31.                 d[j + 1] := p;
  32.             end;
  33.  
  34.     for i := 1 to 3 do
  35.         writeln(a[i]);
  36. end.

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

Данный код написан на языке Turbo Pascal и выполняет следующие действия:

  1. Объявляет переменные: n, i, j, p, k, s, a и d.
    • n - переменная для хранения числа кандидатов (в данном случае 3).
    • i, j, p, k - переменные для цикла.
    • s - переменная для хранения имени кандидата.
    • a и d - двумерные массивы для хранения фамилий и числа голосов соответственно.
  2. Считывает имя кандидата и его число голосов.
    • В цикле for i := 1 до n do считывается имя кандидата и его число голосов.
    • Переменная p инициализируется значением 0.
    • В цикле for j := 1 до k do происходит сравнение имени кандидата с именами в массиве a.
    • Если имя кандидата совпадает с именем в массиве a, то значение переменной p увеличивается на 1.
    • Если значение переменной p равно 0, то имя кандидата записывается в массив d.
    • Если значение переменной p больше 0, то число голосов кандидата увеличивается на 1 и записывается в массив d.
  3. Выводит имена трех кандидатов с наибольшим числом голосов.
    • В цикле for i := 1 до 3 do выводится имя кандидата из массива d. Таким образом, данный код позволяет вывести фамилию, имя и отчество троих кандидатов, получивших наибольшее число голосов на выборах.

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


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

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

13   голосов , оценка 3.846 из 5

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

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

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