Главная /
Основы программирования - обучения основам /
Следующий фрагмент программы вычисляет сумму четырех последних элементов последовательности p: вещ последовательность p; вещ x, y, z, t; . . . x := 0.0; y := 0.0; z := 0.0; t := 0.0; встать в начало последовательности p; цикл пока есть непрочитанные элеме
Следующий фрагмент программы вычисляет сумму четырех
последних элементов последовательности p:
вещ последовательность p;
вещ x, y, z, t;
. . .
x := 0.0; y := 0.0; z := 0.0; t := 0.0;
встать в начало последовательности p;
цикл пока есть непрочитанные элементы в посл-ти p
| x := y; y := z; z := t;
| прочесть очередной элемент посл-ти p в (вых: t);
конец цикла
ответ := x + y + z + t;
В нем используются четыре вспомогательные переменные
x
, y
, z
, t
. Можно ли упростить
программу, использовав меньшее количество вспомогательных
переменных? (Последовательность разрешается читать только один раз.)
вопрос
Правильный ответ:
Можно.
Нельзя.
Сложность вопроса
74
Сложность курса: Основы программирования - обучения основам
50
Оценить вопрос
Комментарии:
Аноним
Если бы не эти ответы - я бы не смог решить c этими тестами intuit.
08 июн 2018
Аноним
Если бы не данные ответы - я бы не решил c этими тестами интуит.
20 мар 2017
Другие ответы на вопросы из темы программирование интуит.
- # Чему равно значение целочисленной переменной x в результате выполнения приведенного ниже фрагмента программы? x := 64; цикл пока x*x > 100 | x := -(x / 2); конец цикла
- # Рассмотрим следующий фрагмент программы: утверждение: A(x) цикл пока B(x) | инвариант: A(x) | x := T(x) конец цикла Здесь через A(x) и B(x) обозначены условия, зависящие от переменной x. Какое условие выполняется по окончании цикла?
- # Пусть f(x) — целочисленная функция от целочисленного аргумента. Определить, содержит ли следующий фрагмент программы ошибку (т.е. действительно ли тело цикла сохраняет инвариант): // Программа корень функции цел a, b, c; . . . утверждение: a < b и f(a) * f(b) <= 0; // Значения функции на концах отрезка [a,b] разных знаков цикл пока b - a > 1 | инвариант: f(a) * f(b) <= 0 | // Делим отрезок [a, b] пополам | c := (a + b) / 2; // c -- целая часть (a+b)/2 | если f(a) * f(c) < 0 | | то b := c; // выбираем левую половину отрезка | | иначе a := c; // выбираем правую половину отрезка | конец если конец цикла утверждение: a == b - 1 и f(a) * f(b) <= 0;
- # Что содержит регистр флагов?
- # Где располагаются элементы аппаратного стека?