Ответ:
Алгоритм:
a := 1; s := 0; // Начало цикла while a <= 500 do begin s := s + a; a := a * 2; end; // Конец цикла
Выполнение цикла:
- Итерация 1: a=1, s=0. Условие a <= 500 истинно. s = 0 + 1 = 1. a = 1 * 2 = 2.
- Итерация 2: a=2, s=1. Условие a <= 500 истинно. s = 1 + 2 = 3. a = 2 * 2 = 4.
- Итерация 3: a=4, s=3. Условие a <= 500 истинно. s = 3 + 4 = 7. a = 4 * 2 = 8.
- Итерация 4: a=8, s=7. Условие a <= 500 истинно. s = 7 + 8 = 15. a = 8 * 2 = 16.
- Итерация 5: a=16, s=15. Условие a <= 500 истинно. s = 15 + 16 = 31. a = 16 * 2 = 32.
- Итерация 6: a=32, s=31. Условие a <= 500 истинно. s = 31 + 32 = 63. a = 32 * 2 = 64.
- Итерация 7: a=64, s=63. Условие a <= 500 истинно. s = 63 + 64 = 127. a = 64 * 2 = 128.
- Итерация 8: a=128, s=127. Условие a <= 500 истинно. s = 127 + 128 = 255. a = 128 * 2 = 256.
- Итерация 9: a=256, s=255. Условие a <= 500 истинно. s = 255 + 256 = 511. a = 256 * 2 = 512.
- Итерация 10: a=512, s=511. Условие a <= 500 ложно. Цикл завершается.
Ответ: s = 511.
