дангалах
23.03.2022 21:26

ДележЯблок 3 школьников делят к яблок "поровну", то
есть так, чтобы количество яблок,
доставшихся любым двум школьникам,
отличалось не более, чем на 1.
Входные данные
Программа получает на вход числа пиk.
Выходные данные
Программа должна вывести количество
школьников, которым достанется яблок -
меньше, чем некоторым из их товарищей.
Примечание
При решении этой задачи нельзя
пользоваться условной инструкцией if и
циклами.
Пример 1
Ввод:
7
30
Вывод:
Y
5
О
о​


ДележЯблок 3 школьников делят к яблок поровну, тоесть так, чтобы количество яблок,доставшихся любы

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Kosty12541
03.06.2023 05:04
На алгоритмическом.

a=массив(10..50);
max:=a[1]'
min:=a[1];
n_min:=0;
n_max:=0;
k:=0;
i:=10;

пока i<=50  делай
нц
  если a[i]>max то
    нц
     max:=a[i];
     n_max:=i;
    кц
  если a[i]<min то
   нц
    min:=a[i];
    n_min:=i;
   кц
 если (i mod 2)==0 то
   sum:=sum+a[i]; 
   k:=k+1;
кц

srednee_znachenie:=sum/k;

//

var
a:array(10..50) of integer;
max,min,n_min,n_max,k,i,sum:integer;
sr:float;

begin
 max:=a[1];
 min:=a[1];

 for i:=10 to 50 do
  begin
   if a[i]>max then
    begin
     max:=a[i];
     n_max:=i;
    end;
   if a[i]<min then
    begin
     min:=a[i]
     n_min:=i;
    end;
   if ((i mod 2)=0) then
    begin
     k:=k+1;
     sum:=a[i]+sum;
    end;
  end;
end;

sr:=sum/k;
end.
0,0(0 оценок)
Ответ:
alicegluskin
28.02.2020 22:22

ответ: 110.

Объяснение:

Максимально подробно.

В начале программы переменная s равна 0, n - 10.

Далее идет цикл "for" от 0 до n, то есть от 0 до 10.

Цикл "for" - последовательность команд, которые программа будет выполнять какое-то количество раз (в данном случае 11 раз:

для "i" равного 0,1,2,3,4,5,6,7,8,9 и 10).

Последовательность команд описывается между словами begin и end:

if і = n-i then s:=s+A[i]+A[i+1];

Рассмотрим подробнее эту строчку. В ней проверяется равенство:

i = n-i

Если это равенство верно, то программа переходит к инструкции, описанной после слова then: s:=s+A[i]+A[i+1];

Если же неверно - программа переходит к следующему значению i.

n - число постоянное и нигде не меняется, оно равно 10, то есть условие выглядит так:

i = 10-i

Когда такое возможно? "i" у нас меняется от 0 до 10 включительно. Посмотрим. Для этого мысленно продумаем весь ход работы программы. В начале i равно 0. Смотрим условие:

0 = 10 - 0

Неверно. 0 не равно 10. Далее программа переходит к следующему i, то есть единице.

i=1: 1 = 10 - 1

Тоже неверно. 1 не равно 9.

i=2: 2 = 10 - 2 Неверно. 2 не равно 8.

i=3: 3 = 10 - 3 Неверно. 3 не равно 7.

i=4: 4 = 10 - 4 Неверно. 4 не равно 6.

i=5: 5 = 10 - 5

Верно. Если это равенство верно, то программа переходит к инструкции, описанной после слова then: s:=s+A[i]+A[i+1];

Здесь к переменной "s", которая изначально равна нулю, прибавляется сама s, то есть 0, и значение элементов массива "A" под индексами i и i+1.

i у нас равно 5.

Следовательно: s=0+A[5]+A[5+1]

Или s=0+A[5]+A[6].

Посмотрим на массив:

(0,10,20,30,40,50,60,70,80,90,100)

A[0]=0, A[1]=10.

Значит пятый элемент равен 50, а шестой - 60.

Следовательно наше выражение:

s=0+A[5]+A[6] = 0 + 50 + 60 = 110.

Но на этом работа программы не закончена.

Цикл будет выполняться до тех пор, пока "i" не станет равно 10.

Идем дальше.

i=6: 6 = 10 - 6 Неверно. 6 не равно 4.

i=7: 7 = 10 - 7 Неверно. 7 не равно 3.

i=8: 8 = 10 - 8 Неверно. 8 не равно 2.

i=9: 9 = 10 - 9 Неверно. 9 не равно 1.

i=10: 10 = 10 - 10 Неверно. 10 не равно 0.

Теперь "i" равно 10, цикл больше выполняться не будет.

ответ: 110.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота