usmanovayanq2626
?>

Составить программу с подпрограммой процедурой (на 13 строк) без параметров для вывода на экран следующего изображения (в первой и последней линии 55 элементов в линии

Информатика

Ответы

skononova01

const n=20; vara: array [1..n] of integer; i,s,k: integer; begins: =0; k: =0; randomize; for i: =1 to n do begin   a[i]: =random(50);   write(a[i],' '); end; for i: =1 to n do if (a[i] mod 2 =0) then s: =s+a[i]                                                                        else k: =k+a[i]; writeln; writeln('сумма четных элементов: ',s); writeln('сумма нечетных элементов: ',k); end.

deshkina82

Самый взаимно менять значения переменных — использование swap(a, b) или же аналогичного стандартного метода. Тем не менее, важно понимать как работает операция по обмену значений двух переменных, что мы покажем на нескольких примерах.

Для начала продемонстрируем неправильную реализацию и выясним, что в ней не так.

Ошибочная реализация

a = b;  

b = a;

Если вы попытаетесь выполнить обмен значений этим то увидите, что теперь в обеих переменных хранится значение переменной b. Происходит это ввиду построчного выполнения кода. Первая операция присваивания сохраняет значение переменной b в переменную a. Затем вторая — новое значение a в b, иными словами значение b в b. Таким образом, мы полностью теряем содержание контейнера a.

Теперь обратимся к правильной реализации.

С использованием буфера

Буфером в данном случае называется дополнительная используемая память. Давайте разберёмся зачем она здесь нужна. Если помните, в неправильной реализации мы потеряли значение переменной a после первой операции присваивания, в связи с чем в обеих доступных переменных осталось значение b. Чтобы этого избежать нам понадобится ещё одна переменная — c. В таком случае правильный алгоритм будет выглядеть так:

c = a;

a = b;

b = c;

Для наглядности разберём его пошагово:

Присваиваем переменной c значение переменной a. Сейчас в a записана a, в b — b, а в c — a.

Присваиваем переменной a значение переменной b. Теперь в a хранится b, в b — также b и в c — a.

Присваиваем переменной b значение переменной c. Сейчас в a находится старое значение b, в b — a, ну и в c остаётся a.

Как вы видите, переменная c после выполнения алгоритма не нужна, поэтому далee в программе её можно не использовать и даже вовсе удалить из памяти.

Сразу стоит заметить, что это самое краткое и экономное решение задачи, но можно использовать и больше переменных, не так ли?

Нам повезло, что сейчас во экономии оперативной памяти не стоит так остро, как 20-30 лет назад. Тем не менее, в те времена swap был востребован не меньше, поэтому умные люди нашли заменить значения двух переменных без ввода третьей.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Составить программу с подпрограммой процедурой (на 13 строк) без параметров для вывода на экран следующего изображения (в первой и последней линии 55 элементов в линии
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

hvostna23
purbuevat56524
info9
many858
k-alexey9
Postnikova-StreltsovaKyulbyakova
misterdre9991
akopovarch
tomogradandrey
sveta1864
Бочкова_Елена203
Нескажу25
vladimir72tatarkov1317
irnik65
edvlwork15