KoCmiK11
24.07.2020 01:46

Добрый день, не могли бы вы мне написать два кода, они описаны в домашнем задании в нижней части скриншота заранее!


Добрый день, не могли бы вы мне написать два кода, они описаны в домашнем задании в нижней части скр

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Katzkotareva
07.04.2023 04:59
PascalABC.NET 3.3.5, сборка 1660 от 20.04.2018
Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
  var b:=ArrRandom(ReadInteger('n='),-50,50); b.Println;
  var sp:=b.Where(t->t>0).Sum;
  var im:=a.IndexMax;
  if im>0 then begin a:=ArrFill(im,sp)+a[im:]; a.Println end
  else Writeln('Максимальный элемент стоит первым')
end.

Пример
n= 15
-34 -10 30 16 -36 35 10 39 21 50 29 -41 4 25 -28
n= 13
-36 -6 -3 5 -34 -19 -35 -23 2 49 -8 24 -3
80 80 80 80 80 80 80 80 80 50 29 -41 4 25 -28
0,0(0 оценок)
Ответ:
fty354y4
06.03.2021 16:44
Могу в предложить в данном случае использовать goto и метки. Ну, если вы имеете какой то признак неправильных данных, например, это отрицательные значения (предположим, что это неправильные данные) То на этапе, когда вы вводите эти значения, вы должны поставить условный оператор. Т.е.
if a<0 tnen
begin
Writeln('Вы ввели неверные данные');
goto 1
else
goto 2;
Метку 1 вы ставите в начало алгоритма, т.е. туда, откуда вы хотите начать повторное выполнение программы, а метку 2 поставить в продолжение алгоритма, т.е. на тот случай, если данные были введены верно
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота