- What you must know
- How it appears at the exam
- Solved example
- Typical mistakes
- Check yourself
- 4 more sections — in the subscription
What you must know
Три циклических оператора
| Что делает | Паскаль | C++ |
|---|---|---|
| повторение со счетчиком | for i := 1 to n do | for (i = 1; i <= n; i++) |
| повторение пока | while cond do | while (cond) |
| повторение до | repeat ... until cond; | do { ... } while (cond); |
У оператора for счетчик, начальное и конечное значения записаны в заголовке, а число повторений известно заранее: от до тело выполняется раз. while проверяет условие перед каждым повторением, поэтому может не выполниться ни разу. repeat проверяет в конце, поэтому его тело выполняется хотя бы один раз; учти, что until останавливает цикл, когда условие становится истинным, а while продолжает, пока оно истинно.
Тело цикла
Если повторяешь больше одной инструкции, нужен begin ... end; в Паскале и фигурные скобки в C++. Без них повторяется только первая инструкция, а остальные выполняются один раз, после цикла.
Замена for на while
Именно это требуют тесты, и барем оценивает замену по элементам:
- 1)присваивание начального значения счетчику, до цикла
- 2)условие в
while, с той же границей, что была вfor - 3)составной оператор со всеми инструкциями тела
- 4)увеличение счетчика внутри тела
Без увеличения цикл не остановится, а без начального присваивания счетчик стартует с неопределенного значения.
for i := 1 to 5 do
begin
read(x);
s := s + x;
end;i := 1;
while i <= 5 do
begin
read(x);
s := s + x;
i := i + 1;
end;Таблица трассировки
Когда спрашивают, что выведет программа, составь таблицу: по столбцу на каждую переменную и по строке на каждое повторение. Записывай и то, что выводится, по порядку. Это единственный способ не потерять итерацию.
Приемы, которые повторяются в тестах
- сумма и подсчет:
s := s + x,k := k + 1 - цифры числа:
n mod 10дает последнюю цифру,n div 10отбрасывает ее, цикл идетwhile n > 0; при цикл не выполняется ни разу, поэтому этот случай разбирают отдельно - последовательные степени:
p := 1, затемp := p * a, покаp <= Q - продвижение с откатом (улитка в колодце): днем
dist := dist + x, ночью, если не вышла,dist := dist - y - вывод по столбцам:
write(i:5)выравнивает по пяти позициям,writelnпереводит строку
Что именно выводитсяwrite оставляет курсор на той же строке, writeln переводит его на следующую. Если программа пишет write('s=', s), то в ответ входит и префикс s=, а не только значение: формат — часть ответа.
The rest of the lesson is in the subscription
The real ANCE items where the topic appears, the step-by-step solved example, the typical mistakes and the 7 check questions open with the subscription. “What you must know” stays free.
The diagnostic on real ANCE items stays free: 20 minutes — where you lose points, 10–15 more minutes — an estimated grade for each exam. All it takes is an account, no card.
A whole month is 299 lei: ≈ 10 lei per evening of work. No automatic renewal.
BAC · real profile · practice test no. 1 · 2026Nota10
Циклические структуры · 1 pts
Язык Паскаль
В левом столбце следующей таблицы дана программа на Паскале, которая содержит циклический оператор for.
Program pr2;
var i, x, s : integer;
begin
s := 0;
for i := 1 to 5 do
begin
read (x);
s := s + x mod 4;
end;
write('s=', s);
end.Язык C++
В левом столбце следующей таблицы дана программа на C++, которая содержит циклический оператор for.
// program pr2
#include <iostream>
using namespace std;
int main(){
int i, x, s = 0;
for(i = 1; i <= 5; i++)
{
cin >> x;
s = s + x % 4;
}
cout << "s=" << s;
}a) Напишите в отведенное для ответа пространство что выведет данная программа на Паскале (на C++), если с клавиатуры будет введена последовательность чисел:
5 24 -7 12 -11 25 100
Ответ: ____