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

 
 
 

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

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

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

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

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

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

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

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

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

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

 
 

Решение

 
 
{заголовок программы}
program demo;
{раздел подключения сторонних модулей и расширений}
uses
{подключаем модуль crt - Console Run Time. Данный модуль содержит
 специализированные подпрограммы для
 обработки текста, звука, клавиатурных событий}

    crt;
{раздел декларации констант}
const
{нетипизированная целочисленная константа, отвечающая
 за максимальное количество различных типов задач}

    MAX = 11;
{раздел декларации типов}
type
{тип данных "Запись", состоящий из двух полей}
    Tdata = record
{отвечает за название задачи}
        nameTask  : string;
{отвечает за количество задач заданного типа}
        countTask : integer;
    end;
{раздел декларации переменных}
var
{количество пришедших запросов}
    n                   : integer;
{количество рассмотренных задач разного типа}
    numberDifferentTask : integer;
{название текущей задачи}
    currentNameTask     : string;
{массив, хранящий названия всех пришедших типов задач
 и, также их частотность}

    data                : array[1..MAX] of Tdata;
{временная переменная для обмена двух значений}
    tmp                 : Tdata;
{счетчики циклов}
    i, j                : integer;
{начало главного блока программы}
begin
{очистка экрана от прошлых выводов}
    clrscr;
{предварительная инициализация данных}
    for i := 1 to MAX do
    begin
        data[i].nameTask  := '';
        data[i].countTask := 0;
    end;
{количество разных типов задач равна 0, т к данные еще не поступили}
    numberDifferentTask := 0;
{диалог пользователю о предстоящем вводе целого положительного числа}
    write('Введите количество запросов: ');
{считываем количество запросов, введенных пользователем}
    readln(n);
{цикл со счетчиком, в котором происходит запрос информации от пользователя и,
 сразу же происходит обработка и анализ полученной информации}

    for i := 1 to n do
    begin
{считываем название текущей задачи}
        readln(currentNameTask);
{начинается поиск задачи такого типа в массиве с первого элемента}
        j := 1;
{пробегаем по массиву задач и сравниваем название текущей задачи
 с названиями всех задач, которые были введены пользователем ранее}

        while((j <= numberDifferentTask) and (currentNameTask <> data[j].nameTask)) do
            j := j + 1;
{задача подобного типа была введена ранее, поэтому увеличиваем
 ее частотность на единицу}

        if(j <= numberDifferentTask) then
            data[j].countTask := data[j].countTask + 1
        else
{задача подобного типа не была введена ранее}
        begin
{записываем ее название в последний незанятый элемент массива}
            data[j].nameTask  := currentNameTask;
{поскольку эта задача встретилась впервые, то ее частотность равна 1}
            data[j].countTask := 1;
{увеличиваем счетчик количества различного типа задач на единицу}
            inc(numberDifferentTask, 1);
        end;
    end;
{начинаем сортировать методом обмена названия типов задач
 по количеству встречаемости, то есть по частотности, по убыванию}

    for i := numberDifferentTask downto 2 do
        for j := 2 to i do
{если частотность текущей задачи оказывается больше частотности предыдущей
 задачи, то меняем их местами, т к сортируем по убыванию частотности задач}

            if(data[j - 1].countTask < data[j].countTask) then
            begin
                tmp         := data[j];
                data[j]     := data[j - 1];
                data[j - 1] := tmp;
            end;
{вставка пустой строки для повышения читабельности}
    writeln;
{если количество различных задач меньше ТРЕХ, то выводим информацию
 об имеющихся задачах}

    if(numberDifferentTask < 3) then
        for i := 1 to numberDifferentTask do
{выводим название задачи и количество пришедших подобных задач}
            writeln(data[i].nameTask, ' ', data[i].countTask)
{иначе существует не меньше трех различных задач}
    else
    begin
{выпечатываем информацию о первых трех наиболее популярных задачах
 независимо от их количества}

        writeln(data[1].nameTask, ' ', data[1].countTask);
        writeln(data[2].nameTask, ' ', data[2].countTask);
        writeln(data[3].nameTask, ' ', data[3].countTask);
{позиционируемся на задачу, идующую в списке под номером четыре}
        i := 4;
{ВАЖНО!! выводим на экран информацию по задачам, имеющим такую же
 частотность как и третья по частоте встречаемости задача}

        while(i <= numberDifferentTask) and (data[i].countTask = data[3].countTask) do
        begin
            writeln(data[i].nameTask, ' ', data[i].countTask);
            i := i + 1;
        end;
    end;
{имитация задержки программы. Программа будет закрыта после нажатия
 произвольной клавиши на клавиатуре}

    readkey;
{финализирующий оператор программы}
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-2020 ООО "СтадиМен". Все права сохранены.
Перепечатка и использование материалов с данного сайта, разрешена только по согласию с владельцем.
Владелец оставляет за собой право воспользоваться 146 статьей УК РФ при нарушении авторских и смежных прав.
 
 
 
 
Авторизация на сайте
 
 
 
Обнаружили
ошибку на сайте?