B3 Ответы и решения
B3.1 ( ege.yandex.ru-1)
Определите, что будет напечатано в результате выполнения программы (записанной ниже на разных языках программирования):
Бейсик | Паскаль |
DIM N, S AS INTEGER N = 1 : S = 0 WHILE N <= 101 S = S + 7 N = N + 1 WEND PRINT S | var n, s: integer; begin n := 1; s := 0; while n <= 101 do begin s := s + 7; n := n + 1; end; write(s); end. |
Си | Алгоритмический |
#include<stdio.h> void main(){ int n, s; n = 1; s = 0; while (n <= 101) { s = s + 7; n = n + 1; } printf("%d", s); } | алг нач цел n, s n := 1; s := 0 нц пока n <= 101 s := s + 7 n := n + 1 кц вывод s кон |
Решение. При решении этой задачи не требуется непосредственно выполнять алгоритм. Обозначим ST значение переменной s после выполнения T-й итерации цикла. В начале T-й итерации значение переменной n равно T (в начале 1-й итерации выполнено: n=1; в начале 2-й итерации выполнено: n=2 и т.д.). В конце T-й итерации значение переменной s равно 7T (в конце 1-й итерации выполнено: s=7; в конце 2-й итерации выполнено: s=14 и т.д.). Цикл будет выполнен 101 раз. Значит, итоге s = 7*101=707.
Ответ: 707
B3.2 ( ege.yandex.ru-2)
Определите, что будет напечатано в результате выполнения программы (записанной ниже на разных языках программирования):
Бейсик | Паскаль |
DIM N, S AS INTEGER N = 4 : S = 0 WHILE N <= 8 S = S + 15 N = N + 1 WEND PRINT S | var n, s: integer; begin n := 4;s := 0; while n <= 8 do begin s := s + 15; n := n + 1; end; write(s); end. |
Си | Алгоритмический |
#include<stdio.h> void main(){ int n, s; n = 4; s = 0; while (n <= 8 ){ s = s + 15; n = n + 1; } printf("%d", s); } | алг нач цел n, s n := 4; s := 0 нц пока n <= 8 s := s + 15 n := n + 1 кц вывод s кон |
Решение (набросок). При решении этой задачи не требуется непосредственно выполнять алгоритм. В конце T-й итерации значение переменной s равно 15T (в конце 1-й итерации выполнено: s=15; в конце 2-й итерации выполнено: s=30 и т.д.). Цикл будет выполнен 8-4+1=5 раз. Значит, в итоге s = 15*5=75.
Ответ: 75
B3.3 ( ege.yandex.ru-3)
Определите, что будет напечатано в результате выполнения программы (записанной ниже на разных языках программирования):
Бейсик | Паскаль |
DIM N, S AS INTEGER N = 0 : S = 512 WHILE S >= 0 S = S - 20 N = N + 1 WEND PRINT N | var n, s: integer; begin n := 0; s := 512; while s >= 0 do begin s := s - 20; n := n + 1; end; write(n); end. |
Си | Алгоритмический |
#include<stdio.h> void main(){ int n, s; n = 0; s = 512; while (s >= 0){ s = s - 20; n = n + 1; } printf("%d", n); } | алг нач цел n, s n := 0; s := 512 нц пока s >= 0 s := s - 20 n := n + 1 кц вывод n кон |
Решение (набросок). Значение переменной n – количество выполнений цикла. Это количество равно div(512, 20)+1 = 26.
Ответ: 26
B3.4 ( ege.yandex.ru-4)
Определите, что будет напечатано в результате выполнения программы (записанной ниже на разных языках программирования):
Бейсик | Паскаль |
DIM N, S AS INTEGER N = 14 : S = 0 WHILE N <= 18 S = S + 25 N = N + 1 WEND PRINT S | var n, s: integer; begin n := 14; s := 0; while n <= 18 do begin s := s + 25; n := n + 1; end; write(s); end. |
Си | Алгоритмический |
#include<stdio.h> void main(){ int n, s; n = 14; s = 0; while (n <= 18){ s = s + 25; n = n + 1; } printf("%d", s); } | алг нач цел n, s n := 14; s := 0 нц пока n <= 18 s := s + 25 n := n + 1 кц вывод s кон |
Решение: При каждом выполнении цикла значение переменной s увеличивается на 25. Цикл будет выполнен 18-14+1 = 5 раз. Итоговое значение s равно 5*25 = 125.
Ответ: 125
B3.5 ( ege.yandex.ru-5)
Определите, что будет напечатано в результате выполнения программы (записанной ниже на разных языках программирования):
Бейсик | Паскаль |
DIM N, S AS INTEGER N = 24 : S = 0 WHILE N <= 28 S = S + 20 N = N + 2 WEND PRINT S | var n, s: integer; begin n := 24; s := 0; while n <= 28 do begin s := s + 20; n := n + 2; end; write(s); end. |
Си | Алгоритмический |
#include<stdio.h> void main(){ int n, s; n = 24; s = 0; while (n <= 28){ s = s + 20; n = n + 2; } printf("%d", s); } | алг нач цел n, s n := 24; s := 0 нц пока n <= 28 s := s + 20 n := n + 2 кц вывод s кон |
Решение (набросок). Цикл выполняется с шагом 2. Поэтому он будет выполнен 3 раза (при n=24. 26, 28). На каждой итерации значение s увеличивается на 20.
Ответ: 60
9 комментариев
http://getcashyear.gdn
В задании В3 в ответе mod(512, 20)+1 =26.
Это ведь деление с остатком,может правильнее будет написать div?
Уvфф... Конечно, div. Исправил. Спасибо!
почему-то в этих заданиях в записи на паскале никогда не встречается ; после последнего вывода, в глаза бросается)
Спасибо, исправили. Один раз не написали, а потом - копипаст 🙂
Почему в задании В3.1 вы 7 умножили на 101? Цикл будет выполнен не 101, а 100 раз, т.к. начальное n=1, а нам по условию надо (n<=101), т.е. когда цикл будет выполняться 100ый раз n будет равно 101. Или я что-то путаю?
Тут все путаются:) Смотри. При 1-м выполнении цикла n=1. При последнем выполнении цикла n=101. Вопрос: сколько раз выполнялся цикл? Ответ: не 100-1 = 100 раз, а 101-1+1 = 101 раз! Ты забыл прибавить 1. Чтобы проверить себя проще всего взять два небольших числа и посчитать, загибая пальцы.
Например, от n=3 до n=6 цикл выполнится не 6-3 раз, а {три, четыре, пять, щесть} - 4 раза. Удачи!
Не могли разъяснить почему мы должны прибавлять один?
Извини, ничего лучше, чем написал Андрею http://ege-go.ru/zadania/grb/b3/b3-answ-2/comment-page-1/#comment-328
в нолову не приходит. Попробуй задать вопрос более конкретно