Тема 6. Алгоритмы – определение результата
6.02 Анализ простейших программ (старое)
Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела алгоритмы – определение результата
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#5949

В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 4; 5; 1; 6; 3; -1; 0; -2; 7; 2 соответственно, т.е. A[0] = 4; A[1] = 5 и т.д. Определите значение переменной c после выполнения следующего фрагмента программы, записанного ниже на разных языках программирования.

|--------------------------|--------------------|---------------------|
|C++-----------------------|-Python-------------|Pascal---------------|
|c = 0;                    | c = 0              |c :=  0;              |
|for(i = 0; i < 10; i + + ) { for i in range (10 ):|for i = 0 to 9 do    |
|  if (A [i] < A [0]) {      |   if A [i] < A[0] :  |  if A [i] < A [0 ] then
|                          |                    |                     |
|    c + +;                |     c = c + 1      |     begin            |
|    t = A [i];             |     t = A[i]       |       c := c + 1;   |
|    A [i] = A [0];          |     A [i] = A[0]    |       t := A [i];    |
|    A [0] = t;}           |     A [0] = t       |       A[i] := A [0]; |
|  }                       |                    |       A[0] := t;    |
|                          |                    |                     |
------------------------------------------------------end;-------------
Показать ответ и решение

Решение аналитически

Цикл сравнивает каждый элемент массива, начиная с A[1]. Если A[i] меньше, чем A[0], то A[0] заменяется на A[i], A[i] заменяется A[0], а значение переменной c  увеличивается на 1. Пошагово распишем работу программы: 5 > 4  , значит, не увеличиваем   и не меняем элементы местами: A  = {4;5;1;6; 3;− 1; 0;− 2; 7;2} ; c = 0

1 < 4  , значит, увеличиваем   и меняем элементы местами: A  = {1;5;4; 6;3;− 1;0;− 2;7;2} ; c = 1

6 > 1  , значит, не увеличиваем   и не меняем элементы местами: A =  {1;5;4;6;3;− 1;0;− 2;7;2 } ; c = 1

Следующий элемент, меньше A[0] — A[6]. Значит, когда цикл проверит элемент A[6], значение c  увеличится и элементы поменяются местами: A  = {− 1;5;4;6;3;1; 0;− 2; 7;2} ; c = 2  .

Дальше проверяем A[8], т.к. (− 2) < (− 1)  : A  = {− 2;5;4;6; 3;1;0;− 1;7;2} ; c = 3  .

Заметим, что дальше нет элементов меньших, чем A[0], значит, c = 3  .

Решение программой

c = 0
a = [4, 5, 1, 6, 3, -1, 0, -2, 7, 2]
for i in range(10):
    if a[i] < a[0]:
        c += 1
        t = a[i]
        a[i] = a[0]
        a[0] = t
print(c)

Ответ: 3

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное обучение
в Школково

Для детей ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Брянской областей, а также школьникам, находящимся в пунктах временного размещения Крыма обучение на платформе бесплатное.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ или олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!