Сколько операций сложения будет произведено ..? Pascal

Компьютеры программирование pascal

Сколько операций сложения будет произведено при выполнении этого цикла, если k = 10?

for i:= k to k+10 do a:= a+2

11
12
23
34

Примечание:
PetSerAl (Сергей Петров)
От 21 до 23 в зависимости о неуказанных здесь условий.
ты прав 23, но по какой логике ты решал, я вот сидел и понять не мог.
вроде получается
for i:=10 to 20 do a:=a+2
или я что то не так делаю
Ответы:
12, т.к. сложение k+10 производится только один раз перед циклом.
2 fenik17
По Вашему i будет увеличиваться само по себе без сложения?
1) k+10 — вычисляется 1 или 0 (если k константа времени компиляции, то k+10 будет вычислятся во время компиляции, а не во время исполнения) раз.
2) Цикл for следует развернуть, если Вы хотите подсчитать количество сложений правильно. Так как согласно стандарту по окончании цикла значение переменной i не определенно, то есть реализация цикла for определяется компилятором, то разворачиватся он может как минимум двумя различными способами:
Первый:
i:=k;
ENDi:=k+10;
while i<=ENDi do begin
   a:=a+2;
   i:=i+1;
end;
Второй:
i:=k;
ENDi:=k+10;
if i<=ENDi then begin
   while true do begin
       a:=a+2;
       if i=ENDi then break;
       i:=i+1;
   end;
end;
Первый вариант даёт 11 сложений для a и 11 для i, второй вариант даёт 11 сложений для a и 10 для i.


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.