Раздел C • Категория C4 (демонстрационный вариант-2012)

 
 
 

Условие задачи

Пояснение к задаче

Здравствуйте!

В данном интерактивном обучающем видеоролике мы детально разберем решение задачи из категории С4 демонстрационного варианта 2012 года.

Необходимо уметь:

  • создавать собственные программы, высотой 30 – 70 строк кода с командами, для решения задач среднего и повышенного уровня сложности;

  • реализовывать сложные алгоритмы;

  • программировать несколькими способами различного плана сортировку данных;

  • описывать фундаментальные элементы современных языков программирования, такие как циклические конструкции, условные выражения, процедуры и функции.

С уважением, Александр Георгиевич, ведущий эксперт в области подготовки к ГИА и ЕГЭ по информатике и ИКТ

 
 

Решение

 
 
  1. {заголовок программы}
  2. program demo;
  3. {раздел подключения сторонних модулей и расширений}
  4. uses
  5. {подключаем модуль crt - Console Run Time. Данный модуль содержит
  6.  специализированные подпрограммы для
  7.  обработки текста, звука, клавиатурных событий}
  8.     crt;
  9. {раздел декларации констант}
  10. const
  11. {нетипизированная целочисленная константа, отвечающая
  12.  за максимальное количество различных типов задач}
  13.     MAX = 11;
  14. {раздел декларации типов}
  15. type
  16. {тип данных "Запись", состоящий из двух полей}
  17.     Tdata = record
  18. {отвечает за название задачи}
  19.         nameTask  : string;
  20. {отвечает за количество задач заданного типа}
  21.         countTask : integer;
  22.     end;
  23. {раздел декларации переменных}
  24. var
  25. {количество пришедших запросов}
  26.     n                   : integer;
  27. {количество рассмотренных задач разного типа}
  28.     numberDifferentTask : integer;
  29. {название текущей задачи}
  30.     currentNameTask     : string;
  31. {массив, хранящий названия всех пришедших типов задач
  32.  и, также их частотность}
  33.     data                : array[1..MAX] of Tdata;
  34. {временная переменная для обмена двух значений}
  35.     tmp                 : Tdata;
  36. {счетчики циклов}
  37.     i, j                : integer;
  38. {начало главного блока программы}
  39. begin
  40. {очистка экрана от прошлых выводов}
  41.     clrscr;
  42. {предварительная инициализация данных}
  43.     for i := 1 to MAX do
  44.     begin
  45.         data[i].nameTask  := '';
  46.         data[i].countTask := 0;
  47.     end;
  48. {количество разных типов задач равна 0, т к данные еще не поступили}
  49.     numberDifferentTask := 0;
  50. {диалог пользователю о предстоящем вводе целого положительного числа}
  51.     write('Введите количество запросов: ');
  52. {считываем количество запросов, введенных пользователем}
  53.     readln(n);
  54. {цикл со счетчиком, в котором происходит запрос информации от пользователя и,
  55.  сразу же происходит обработка и анализ полученной информации}
  56.     for i := 1 to n do
  57.     begin
  58. {считываем название текущей задачи}
  59.         readln(currentNameTask);
  60. {начинается поиск задачи такого типа в массиве с первого элемента}
  61.         j := 1;
  62. {пробегаем по массиву задач и сравниваем название текущей задачи
  63.  с названиями всех задач, которые были введены пользователем ранее}
  64.         while((j <= numberDifferentTask) and (currentNameTask <> data[j].nameTask)) do
  65.             j := j + 1;
  66. {задача подобного типа была введена ранее, поэтому увеличиваем
  67.  ее частотность на единицу}
  68.         if(j <= numberDifferentTask) then
  69.             data[j].countTask := data[j].countTask + 1
  70.         else
  71. {задача подобного типа не была введена ранее}
  72.         begin
  73. {записываем ее название в последний незанятый элемент массива}
  74.             data[j].nameTask  := currentNameTask;
  75. {поскольку эта задача встретилась впервые, то ее частотность равна 1}
  76.             data[j].countTask := 1;
  77. {увеличиваем счетчик количества различного типа задач на единицу}
  78.             inc(numberDifferentTask, 1);
  79.         end;
  80.     end;
  81. {начинаем сортировать методом обмена названия типов задач
  82.  по количеству встречаемости, то есть по частотности, по убыванию}
  83.     for i := numberDifferentTask downto 2 do
  84.         for j := 2 to i do
  85. {если частотность текущей задачи оказывается больше частотности предыдущей
  86.  задачи, то меняем их местами, т к сортируем по убыванию частотности задач}
  87.             if(data[j - 1].countTask < data[j].countTask) then
  88.             begin
  89.                 tmp         := data[j];
  90.                 data[j]     := data[j - 1];
  91.                 data[j - 1] := tmp;
  92.             end;
  93. {вставка пустой строки для повышения читабельности}
  94.     writeln;
  95. {если количество различных задач меньше ТРЕХ, то выводим информацию
  96.  об имеющихся задачах}
  97.     if(numberDifferentTask < 3) then
  98.         for i := 1 to numberDifferentTask do
  99. {выводим название задачи и количество пришедших подобных задач}
  100.             writeln(data[i].nameTask, ' ', data[i].countTask)
  101. {иначе существует не меньше трех различных задач}
  102.     else
  103.     begin
  104. {выпечатываем информацию о первых трех наиболее популярных задачах
  105.  независимо от их количества}
  106.         writeln(data[1].nameTask, ' ', data[1].countTask);
  107.         writeln(data[2].nameTask, ' ', data[2].countTask);
  108.         writeln(data[3].nameTask, ' ', data[3].countTask);
  109. {позиционируемся на задачу, идующую в списке под номером четыре}
  110.         i := 4;
  111. {ВАЖНО!! выводим на экран информацию по задачам, имеющим такую же
  112.  частотность как и третья по частоте встречаемости задача}
  113.         while(i <= numberDifferentTask) and (data[i].countTask = data[3].countTask) do
  114.         begin
  115.             writeln(data[i].nameTask, ' ', data[i].countTask);
  116.             i := i + 1;
  117.         end;
  118.     end;
  119. {имитация задержки программы. Программа будет закрыта после нажатия
  120.  произвольной клавиши на клавиатуре}
  121.     readkey;
  122. {финализирующий оператор программы}
  123. end.
 
 
 
 
 

Раздел C • Категория C4 (демонстрационный вариант-2012)

 

Остальные решения демоварианта для подготовки к ЕГЭ по информатике 2012

 
Условие задачи
(наведите курсор мыши на ссылку)
Аудиовизуальное
решение
Мультимедийная
видеопрезентация
Решение в формате
слайд-шоу
Текстовое
решение
Категория A1
/sites/default/files/slides/inf/802/inf_A1_00_01_4Ez.png
Перейти Перейти Перейти Перейти
Категория A2
/sites/default/files/slides/inf/803/inf_A2_00_01_zfJ.png
Перейти Перейти Перейти Перейти
Категория A3
/sites/default/files/slides/inf/858/inf_A3_00_01_phpNEMRyt.jpg
Перейти Перейти Перейти Перейти
Категория A4
/sites/default/files/slides/inf/1029/inf_A4_00_01_U4q.jpg
Перейти Перейти Перейти Перейти
Категория A5
/sites/default/files/slides/inf/1030/inf_A5_00_01_cFJ.jpg
Перейти Перейти Перейти Перейти
Категория A6
/sites/default/files/slides/inf/1016/inf_A6_00_01_f3K.jpg
Перейти Перейти Перейти Перейти
Категория A7
/sites/default/files/slides/inf/1061/inf_A7_00_01_5F7.jpg
Перейти Перейти Перейти Перейти
Категория A8
/sites/default/files/slides/inf/1062/inf_A8_00_01_fot.jpg
Перейти Перейти Перейти Перейти
Категория A9
/sites/default/files/slides/inf/1095/inf_A9_00_01_CY2.jpg
Перейти Перейти Перейти Перейти
Категория A10
/sites/default/files/slides/inf/1096/inf_A10_00_01_nHs.jpg
Перейти Перейти Перейти Перейти
Категория A11
/sites/default/files/slides/inf/1120/inf_A11_00_01_6df.jpg
Перейти Перейти Перейти Перейти
Категория A12
/sites/default/files/slides/inf/1121/inf_A12_00_01_2cX.jpg
Перейти Перейти Перейти Перейти
Категория A13
/sites/default/files/slides/inf/1253/inf_A13_00_01_qhD.jpg
Перейти Перейти Перейти Перейти
Категория B1
/sites/default/files/slides/inf/1122/inf_B1_00_01_RKs.jpg
Перейти Перейти Перейти Перейти
Категория B2
/sites/default/files/slides/inf/1123/inf_B2_00_01_zC4.jpg
Перейти Перейти Перейти Перейти
Категория B3
/sites/default/files/slides/inf/1124/inf_B3_00_01_54S.jpg
Перейти Перейти Перейти Перейти
Категория B4
/sites/default/files/slides/inf/1125/inf_B4_00_01_jo4.jpg
Перейти Перейти Перейти Перейти
Категория B5
/sites/default/files/slides/inf/1126/inf_B5_00_01_AHf.jpg
Перейти Перейти Перейти Перейти
Категория B6
/sites/default/files/slides/inf/1127/inf_B6_00_01_uXi.jpg
Перейти Перейти Перейти Перейти
Категория B7
/sites/default/files/slides/inf/1237/inf_B7_00_01_7cD.jpg
Перейти Перейти Перейти Перейти
Категория B8
/sites/default/files/slides/inf/1375/inf_B8_00_01_76T.jpg
Перейти Перейти Перейти Перейти
Категория B9
/sites/default/files/slides/inf/1388/inf_B9_00_01_scV.jpg
Перейти Перейти Перейти Перейти
Категория B10
/sites/default/files/slides/inf/1405/inf_B10_00_01_f4n.jpg
Перейти Перейти Перейти Перейти
Категория B11
/sites/default/files/slides/inf/1415/inf_B11_00_01_xyq.jpg
Перейти Перейти Перейти Перейти
Категория B12
/sites/default/files/slides/inf/1453/inf_B12_00_01_DRs.jpg
Перейти Перейти Перейти Перейти
Категория B13
/sites/default/files/slides/inf/1471/inf_B13_00_01_Qwa.jpg
Перейти Перейти Перейти Перейти
Категория B14
/sites/default/files/slides/inf/1483/inf_B14_00_01_VQV.jpg
Перейти Перейти Перейти Перейти
Категория B15
/sites/default/files/slides/inf/1505/inf_B15_00_01_Ruy.jpg
Перейти Перейти Перейти Перейти
Категория C1
/sites/default/files/slides/inf/1545/inf_C1_00_01_UCV.jpg
Перейти Перейти Перейти Перейти
Категория C2
/sites/default/files/slides/inf/1566/inf_C2_00_01_qCz.jpg
Перейти Перейти Перейти Перейти
Категория C3
/sites/default/files/slides/inf/1589/inf_C3_00_01_WP3.jpg
Перейти Перейти Перейти Перейти
 
© 2011-2019 ООО "СтадиМен". Все права сохранены.
Перепечатка и использование материалов с данного сайта, разрешена только по согласию с владельцем.
Владелец оставляет за собой право воспользоваться 146 статьей УК РФ при нарушении авторских и смежных прав.
 
 
 
 
Авторизация на сайте
 
 
 
Обнаружили
ошибку на сайте?