Категория C2 • задача №4

 
 
 

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

Дано:
целочисленный массив из 30 элементов. Элементы массива могут принимать произвольные значения. С клавиатуры водится целое число Х. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

 

Реализовать:
опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит наименьший номер элемента массива, равного Х, или сообщение, что такого элемента нет.

 

Решение

I этап: выбор основного языка программирования

Среди четырех представленных языков (Pascal, Basic, чистый C, Естественный язык), лично мне, максимально импонирует язык программирования высокого уровня - Pascal.

Опишу основные преимущества (на мой субъективный взгляд) языка программирования Pascal перед остальными языками, представленными в данном задании:

  1. понятная лексика, то есть все ключевые слова, использующиеся в языке программирования, являются понятными;

  2. хорошо продуманная внутренняя структура программы (группировка по разделам: раздел подключения модулей, раздел декларации констант, раздел декларации переменных, раздел описания пользовательских типов данных);

  3. поддержка большого количества стандартных типов данных (например, в отличие от всех представленных в данном задании языков, язык Pascal имеет штатную поддержку такого типа данных как "Множество").

 

II этап: алгоритмизация поставленной задачи

Поставленная задача подразумевает следующую обработку: для примера рассмотрим одномерный вещественный массив, состоящий из десяти элементов, являющихся целыми случайными числами:

1246-91429-71414-12063значение
12345678910индекс

Допустим, пользователь ввел для поиска значение равное 14. Необходимо начать сканирование всех элементов массива, начиная с первого элемента. Если текущее значение элемента массива будет равно 14, то дальнейший поиск станет нецелесообразным и его нужно прекратить. Если в результате сканирования были просмотрены все элементы и, не было найдено совпадения, то следует делать вывод о том, что искомый элемент физически отсутствует в заданном массиве.

Для данного массива, поиск прекратится на первом встретившемся элементе, имеющем значение равное 14:

1246-91429-71414-12063значение
12345678910индекс

В условии было сказано, что нужно детерминировать номер элемента, следовательно, ответом в данном случае является число равное четыре (так как именно четвертый элемент имеет искомое значение равное 14).

 

III этап: реализация программы

Реализуем программу на языке программирования высокого уровня Pascal 7.0 с подробными комментариями.

{раздел декларации константных величин}
const
{нетипизированная константа, отвечающая за количество элементов исходного массива}
    N = 30;
{раздел объявления переменных}
var
{одномерный массив из 30 элементов целочисленного типа}
    a : array[1..N] of integer;
{счетчик циклов}    
    i : integer;
{отвечает за минимальный номер элемента, имеющего значение, совпадающее с искомым}  
    j : integer;
{искомое значение}    
    x : integer;
{начало главного блока программы}    
begin
{заполнение массива пользовательскими целыми числами вводом с клавиатуры}
    for i := 1 to N do
        readln(a[i]);
{диалог пользователю о предстоящем вводе целого числа для поиска}        
    write('Введите значение х для поиска: ');
{считывание искомого значения с клавиатуры}    
    readln(x);
{вставка пустой строки для повышения читабельности}    
    writeln;
{так как поиск еще не начинался, то можно занулить переменную, отвечающую за минимальный номер искомого элемента в массиве}    
    j := 0;
{отвечает за номер текущего элемента в массиве}    
    i := 1;
{пока не просмотрены все элементы массива и одновременно с этим не найден элемент, имеющий значение равное искомому, начинаем поиск элемента}    
    while((i <= N) and (j = 0)) do
    begin
{если значение текущего элемента массива равно искомому значению, то}    
        if(a[i] = x) then
{запоминаем номер текущего элемента}        
            j := i;
{переход к следующему элементу массива}            
        i := i + 1;
    end;
{означает, что элемент, имеющий значение, совпадающее с искомым значением, не обнаружен}    
    if(j = 0) then
        writeln('Элемента равного х не обнаружено!')
    else
{выпечатывается на дисплей наименьший номер элемента массива, равный Х}    
        writeln(j);
{финализирующий оператор программы}        
end.

 
 
Рейтинг:
 
Проголосовало: 0
Количество просмотров: 1540
 
 
 

Категория C2 • задача №4

 

Комментарии

Для комментирования или зарегистрируйтесь
 

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

 
Условие задачи
(наведите курсор мыши на ссылку)
Аудиовизуальное
решение
Мультимедийная
видеопрезентация
Решение в формате
слайд-шоу
Текстовое
решение
 
© 2011-2024 ООО "СтадиМен". Все права сохранены.
Перепечатка и использование материалов с данного сайта, разрешена только по согласию с владельцем.
Владелец оставляет за собой право воспользоваться 146 статьей УК РФ при нарушении авторских и смежных прав.
 
 
 
 
Авторизация на сайте
 
 
 
Обнаружили
ошибку на сайте?