Вход   →
Задание 25

Алгоритмы обработки массивов

За правильное выполненное задание получишь 2 балла. На решение отводится примерно 30 минут.

Задачи для тренировки

  1.     Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит количество элементов массива, больших 100 и при этом кратных 5, а затем заменяет каждый такой элемент на число, равное найденному количеству. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести измененный массив, каждый элемент массива выводится с новой строчки.
      Например, для массива из шести элементов: 4 115 7 195 25 106 программа должна вывести числа 4 2 7 2 25 106
     
     Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.

    Бейсик

    Python

    CONST N AS INTEGER = 30

    DIM A (1 TO N) AS LONG

    DIM I AS LONG,

        J AS LONG,

        K AS LONG

     

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    ...

    END

    # допускается также

    # использовать две

    # целочисленные переменные j и k

    a = [ ]

    n = 30

    for i in range(0, n):

        a.append(int(input()))

    ...

    Паскаль

    Алгоритмический язык

    const

    N = 30;

    var

    a: array [1..N] of longint;

    i, j, k: longint;

    begin

        for i := 1 to N do

            readln(a[i]);

        ...

    end.

    алг

    нач

        цел N = 30

        цел таб a[1:N]

        цел i, j, k

        нц для i от 1 до N

            ввод a[i]

        кц

        ...

     

    кон

    С++

     

    #include <iostream>

    using namespace std;

    const int N = 30;

    int main() {

    long a[N];

    long i, j, k;

        for (i = 0; i<N; i++)

        cin >> a[i];

        ...

        return 0;

    }

     

     

      В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на Алгоритмическом языке).

    Ответ
    Проверить

    Решение
    Авторизуйтесь, чтобы увидеть решение.
  2.     Дан мас­сив состоящий из 100 целых чисел. Напишите на одном из язы­ков про­грам­ми­ро­ва­ния ал­го­ритм, поз­во­ля­ю­щий найти и вы­ве­сти про­из­ве­де­ние эле­мен­тов мас­си­ва, ко­то­рые имеют нечётное зна­че­ние и де­лят­ся на 3. Га­ран­ти­ру­ет­ся, что в ис­ход­ном мас­си­ве есть хотя бы один эле­мент, зна­че­ние ко­то­ро­го нечётно и крат­но 3.

       Ис­ход­ные дан­ные объ­яв­ле­ны так, как по­ка­за­но ниже. За­пре­ща­ет­ся ис­поль­зо­вать пе­ре­мен­ные, не опи­сан­ные ниже, но раз­ре­ша­ет­ся не ис­поль­зо­вать часть из них. Ис­ход­ные дан­ные все­гда по­до­бра­ны так, что ре­зуль­тат про­из­ве­де­ния не вы­хо­дит за пре­де­лы объ­яв­лен­ных типов дан­ных

     Бей­сик  Пас­каль

    N=100

    DIM A(N) AS LONG

    DIM I, J, P AS LONG

    FOR I = 1 TO N

    INPUT A(I)

    NEXT I

    END

    const

    N=100;

    var

    a: array [1..N] of longint;

    i, j, p: longint;

    begin

    for i := 1 to N do

    readln(a[i]);

    end.

     С++  Ал­го­рит­ми­че­ский язык

    #include <iostream>

    using namespace std;

    const int N =  100;

    void main(void){

    long a[N];

    long i, j, p;

    for (i=0; i<N; i++)

    cin >>a[i];

    }

    алг

    нач

    цел N=100

    цел­таб a[1:N]

    цел i, j, p

    нц для i от 1 до N

    ввод a[i]

    кц

    ...

    кон

      В ка­че­стве от­ве­та Вам не­об­хо­ди­мо при­ве­сти фраг­мент про­грам­мы (или опи­са­ние ал­го­рит­ма на есте­ствен­ном языке), ко­то­рый дол­жен на­хо­дить­ся на месте мно­го­то­чия. Вы мо­же­те за­пи­сать ре­ше­ние также на дру­гом языке про­грам­ми­ро­ва­ния (ука­жи­те на­зва­ние и ис­поль­зу­е­мую вер­сию языка про­грам­ми­ро­ва­ния, на­при­мер Free Pascal 2.4) или в виде блок-схемы. В этом слу­чае Вы долж­ны ис­поль­зо­вать те же самые ис­ход­ные дан­ные и пе­ре­мен­ные, какие были пред­ло­же­ны в усло­вии (на­при­мер, в об­раз­це, за­пи­сан­ном на есте­ствен­ном языке).

    Ответ
    Проверить

    Решение
    Авторизуйтесь, чтобы увидеть решение.
  3.         Дан массив, состоящий из 90 целых чисел. Допишите на есте­ствен­ном языке или на одном из язы­ков про­грам­ми­ро­ва­ния программу, позволяющую найти и вывести ко­ли­че­ство эле­мен­тов мас­си­ва, в ко­то­рых за­пись числа окан­чи­ва­ет­ся на 13. Под парой предполагается два под­ряд иду­щих эле­мен­та мас­си­ва.
        На­при­мер, для мас­си­ва из пяти эле­мен­тов: 13 233 1113 135 36 – ответ: 2.
       Ис­ход­ные дан­ные объ­яв­ле­ны так, как по­ка­за­но ниже на при­ме­рах для не­ко­то­рых язы­ков про­грам­ми­ро­ва­ния и есте­ствен­но­го языка. За­пре­ща­ет­ся ис­поль­зо­вать пе­ре­мен­ные, не опи­сан­ные ниже, но раз­ре­ша­ет­ся не ис­поль­зо­вать не­ко­то­рые из опи­сан­ных пе­ре­мен­ных.

     Бей­сик  Пас­каль

    CONST N = 90

    DIM A (1 TO N) AS INTEGER

    DIM I, J, K, AS INTEGER

     

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    ...

    END

    const

        N = 90;

    var

        a: array [1..N] of integer;

        i, j, k: integer;

    begin

        for i := 1 to N do

            readln(a[i]);

        ...

    end.

     С++  Ал­го­рит­ми­че­ский язык

    #include <iostream>

    using namespace std;

     

    const int N=90;

    int main() {

        int a[N];

        int i, j, k;

        for (i = 0; i < N; i++)

           cin >>a[i];

        ...

        return 0;

    }

    алг

    нач

        цел N = 90

        цел­таб a[1:N]

        цел i, j, k

        нц для i от 1 до N

            ввод a[i]

        кц

        ...

     

    кон

    В ка­че­стве от­ве­та Вам не­об­хо­ди­мо при­ве­сти фраг­мент про­грам­мы (или опи­са­ние ал­го­рит­ма на есте­ствен­ном языке), ко­то­рый дол­жен на­хо­дить­ся на месте мно­го­то­чия. Вы мо­же­те за­пи­сать ре­ше­ние также на дру­гом языке про­грам­ми­ро­ва­ния (ука­жи­те на­зва­ние и ис­поль­зу­е­мую вер­сию языка про­грам­ми­ро­ва­ния, на­при­мер, Free Pascal 2.6) или в виде блок-схемы. В этом слу­чае Вы долж­ны ис­поль­зо­вать те же самые ис­ход­ные дан­ные и пе­ре­мен­ные, какие были пред­ло­же­ны в усло­вии (на­при­мер, в об­раз­це, за­пи­сан­ном на есте­ствен­ном языке).

    Ответ
    Проверить

    Решение
    Авторизуйтесь, чтобы увидеть решение.
  4.  Дан массив, состоящий из 90 целых чисел. Допишите на есте­ствен­ном языке или на одном из язы­ков про­грам­ми­ро­ва­ния программу, позволяющую найти и вывести сумму максимального и минимального эле­мен­тов мас­си­ва. 
      На­при­мер, для мас­си­ва из пяти эле­мен­тов: 7 23 303 10 9 – ответ: 310.
      Ис­ход­ные дан­ные объ­яв­ле­ны так, как по­ка­за­но ниже на при­ме­рах для не­ко­то­рых язы­ков про­грам­ми­ро­ва­ния и есте­ствен­но­го языка. За­пре­ща­ет­ся ис­поль­зо­вать пе­ре­мен­ные, не опи­сан­ные ниже, но раз­ре­ша­ет­ся не ис­поль­зо­вать не­ко­то­рые из опи­сан­ных пе­ре­мен­ных.

     Бей­сик  Пас­каль

    CONST N = 90

    DIM A (1 TO N) AS INTEGER

    DIM I, J, MAX, MIN AS INTEGER

     

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    ...

    END

    const

        N = 90;

    var

        a: array [1..N] of integer;

        i, j, max, min: integer;

    begin

        for i := 1 to N do

            readln(a[i]);

        ...

    end.

     С++  Ал­го­рит­ми­че­ский язык

    #include <iostream>

    using namespace std;

    const int N=90;

    int main() {

        int a[N];

        int i, j, max, min;

        for (i = 0; i < N; i++)

           cin >>a[i];

        ...

        return 0;

    }

    алг

    нач

        цел N = 90

        цел­таб a[1:N]

        цел i, j, max, min

        нц для i от 1 до N

            ввод a[i]

        кц

        ...

     

    кон

      В ка­че­стве от­ве­та Вам не­об­хо­ди­мо при­ве­сти фраг­мент про­грам­мы (или опи­са­ние ал­го­рит­ма на есте­ствен­ном языке), ко­то­рый дол­жен на­хо­дить­ся на месте мно­го­то­чия. Вы мо­же­те за­пи­сать ре­ше­ние также на дру­гом языке про­грам­ми­ро­ва­ния (ука­жи­те на­зва­ние и ис­поль­зу­е­мую вер­сию языка про­грам­ми­ро­ва­ния, на­при­мер, Free Pascal 2.6) или в виде блок-схемы. В этом слу­чае Вы долж­ны ис­поль­зо­вать те же самые ис­ход­ные дан­ные и пе­ре­мен­ные, какие были пред­ло­же­ны в усло­вии (на­при­мер, в об­раз­це, за­пи­сан­ном на есте­ствен­ном языке).

    Ответ
    Проверить

    Решение
    Авторизуйтесь, чтобы увидеть решение.
  5.   Дан массив, состоящий из 100 целых чисел. Допишите на есте­ствен­ном языке или на одном из язы­ков про­грам­ми­ро­ва­ния программу, позволяющую найти и вывести номер последнего элемента  массива равного максимальному.
        На­при­мер, для мас­си­ва из пяти эле­мен­тов: 140 3 55 140 26 – ответ: 3.
       Ис­ход­ные дан­ные объ­яв­ле­ны так, как по­ка­за­но ниже на при­ме­рах для не­ко­то­рых язы­ков про­грам­ми­ро­ва­ния и есте­ствен­но­го языка. За­пре­ща­ет­ся ис­поль­зо­вать пе­ре­мен­ные, не опи­сан­ные ниже, но раз­ре­ша­ет­ся не ис­поль­зо­вать не­ко­то­рые из опи­сан­ных пе­ре­мен­ных.

     Бей­сик  Пас­каль

    CONST N = 100

    DIM A (1 TO N) AS INTEGER

    DIM I, MAX, K, AS INTEGER

     

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    ...

    END

    const

        N = 100;

    var

        a: array [1..N] of integer;

        i, max, k: integer;

    begin

        for i := 1 to N do

            readln(a[i]);

        ...

    end.

     С++  Ал­го­рит­ми­че­ский язык

    #include <iostream>

    using namespace std;

     

    const int N=100;

    int main() {

        int a[N];

        int i, max, k;

        for (i = 0; i < N; i++)

           cin >>a[i];

        ...

        return 0;

    }

    алг

    нач

        цел N = 100

        цел­таб a[1:N]

        цел i, max, k

        нц для i от 1 до N

            ввод a[i]

        кц

        ...

     

    кон

      В ка­че­стве от­ве­та Вам не­об­хо­ди­мо при­ве­сти фраг­мент про­грам­мы (или опи­са­ние ал­го­рит­ма на есте­ствен­ном языке), ко­то­рый дол­жен на­хо­дить­ся на месте мно­го­то­чия. Вы мо­же­те за­пи­сать ре­ше­ние также на дру­гом языке про­грам­ми­ро­ва­ния (ука­жи­те на­зва­ние и ис­поль­зу­е­мую вер­сию языка про­грам­ми­ро­ва­ния, на­при­мер, Free Pascal 2.6) или в виде блок-схемы. В этом слу­чае Вы долж­ны ис­поль­зо­вать те же самые ис­ход­ные дан­ные и пе­ре­мен­ные, какие были пред­ло­же­ны в усло­вии (на­при­мер, в об­раз­це, за­пи­сан­ном на есте­ствен­ном языке).

    Ответ
    Проверить

    Решение
    Авторизуйтесь, чтобы увидеть решение.
  6. Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит минимум среди элементов массива, не делящихся нацело на 6, а затем заменяет каждый элемент, не делящийся нацело на 6, на число, равное найденному минимуму. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести изменённый массив, каждый элемент выводится с новой строчки.

    Например, для исходного массива из шести элементов:

    14

    6

    11

    18

    9

    24

    программа должна вывести следующий массив:

    9

    6

    9

    18

    9

    24

     

    Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.

     

     

    Бейсик Python

    CONST N AS INTEGER = 30

    DIM A (1 TO N) AS LONG

    DIM I AS LONG,

        J AS LONG,

        K AS LONG

     

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    ...

    END

     

    # допускается также

    # использовать две

    # целочисленные переменные j и k

    a = []

    n = 30

    for i in range(0, n):

        a.append(int(input()))

    ...

     

     

    Паскаль Алгоритмический язык

    const

    N = 30;

    var

    a: array [1..N] of longint;

    i, j, k: longint;

    begin

        for i := 1 to N do

            readln(a[i]);

        ...

    end.

     

    алг

    нач

        цел N = 30

        цел таб a[1:N]

        цел i, j, k

        нц для i от 1 до N

            ввод a[i]

        кц

        ...

     

    кон

     

    Си++

    #include <iostream>

    using namespace std;

    const int N = 30;

    int main() {

    long a[N];

    long i, j, k;

        for (i = 0; i<N; i++)

        cin >> a[i];

        ...

        return 0;

    }

     

     

    В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на Алгоритмическом языке).

    Ответ
    Проверить

    Решение
    Авторизуйтесь, чтобы увидеть решение.
Пройти тест
Задание 1. Системы счисления и операции над числами в разных системах счисления Задание 2. Построение и анализ таблиц истинности логических выражений Задание 3. Анализ информационных моделей (таблицы, диаграммы, графики) Задание 4. Поиск информации в базах данных. Файловая система Задание 5. Кодирование и декодирование информации Задание 6. Выполнение, анализ и поиск алгоритмов Задание 7. Электронные таблицы, диаграммы и графики Задание 8. Анализ программ Задание 9. Кодирование и декодирование информации. Передача информации Задание 10. Перебор слов и системы счисления Задание 11. Рекурсивные алгоритмы Задание 12. Компьютерные сети. Адресация в Интернете Задание 13. Вычисление количества информации Задание 14. Выполнение алгоритмов для исполнителя Задание 15. Графы. Поиск количества путей Задание 16. Кодирование чисел. Системы счисления Задание 17. Составление запросов для поисковых систем с использованием логических выражений Задание 18. Преобразование логических выражений Задание 19. Работа с массивами и матрицами в языке программирования Задание 20. Анализ программы, содержащей циклы и ветвления Задание 21. Анализ программы с подпрограммами Задание 22. Оператор присваивания и ветвления. Перебор вариантов Задание 23. Логические уравнения Задание 24. Поиск и исправление ошибок в программе Задание 25. Алгоритмы обработки массивов Задание 26. Выигрышная стратегия Задание 27. Обработка символьных строк, массивов и последовательностей

Еще нет аккаунта?

Пользователям Бингоскул доступна бесплатная подготовка к ЕГЭ по всем видам ФИПИ, просмотр решений и отслеживание статистики
Регистрация

Уже зарегистрированы?

Авторизуйтесь в своей учетной записи, чтобы получить доступ к расширенным возможностям функционала сайта
Вход

Вход в систему

Регистрация

Регистрируясь, я подтверждаю своё согласие с условиями пользовательского соглашения

Активация аккаунта

Спасибо за регистрацию
Мы отправили письмо на указанный электронный адрес.
Чтобы завершить регистрацию, проверьте почтовый ящик и перейдите по ссылке в письме.