- Что нужно знать
- Как это бывает на экзамене
- Разбор примера
- Типичные ошибки
- Проверь себя
- Ещё 4 раздела — в подписке
Что нужно знать
Cele trei instrucțiuni repetitive
| Ce face | Pascal | C++ |
|---|---|---|
| repetare cu contor | for i := 1 to n do | for (i = 1; i <= n; i++) |
| repetare cât timp | while cond do | while (cond) |
| repetare până când | repeat ... until cond; | do { ... } while (cond); |
Instrucțiunea for are contorul, valoarea inițială și cea finală scrise în antet, iar numărul de repetări este cunoscut dinainte: de la la se execută ori. while verifică înainte de fiecare repetare, deci poate să nu se execute niciodată. repeat verifică la sfârșit, deci corpul lui se execută cel puțin o dată; atenție că until oprește când condiția devine adevărată, iar while continuă cât timp este adevărată.
Corpul ciclului
Dacă repeți mai mult de o instrucțiune, ai nevoie de begin ... end; în Pascal și de acolade în C++. Fără ele se repetă doar prima instrucțiune, iar restul se execută o singură dată, după ciclu.
Transformarea unui for în while
Aceasta este cerința care apare în teste și baremul o punctează pe elemente:
- 1)atribuirea valorii inițiale a contorului, înainte de ciclu
- 2)condiția din
while, cu aceeași limită ca înfor - 3)instrucțiunea compusă, cu toate instrucțiunile din corp
- 4)incrementarea contorului, în interiorul corpului
Dacă lipsește incrementarea, ciclul nu se mai oprește; dacă lipsește atribuirea inițială, contorul pornește de la o valoare nedefinită.
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;Tabelul de urmărire
Când se cere ce afișează programul, scrie un tabel cu o coloană pentru fiecare variabilă și un rând pentru fiecare repetare. Notează și ce se afișează, în ordine. Este singura metodă care nu te lasă să pierzi o iterație.
Tipare care revin în teste
- suma sau numărarea:
s := s + x,k := k + 1 - cifrele unui număr:
n mod 10dă ultima cifră,n div 10taie ultima cifră, iar ciclul mergewhile n > 0; pentru ciclul nu se execută deloc, de aceea numărul de cifre se tratează separat - puterile succesive:
p := 1și apoip := p * acât timpp <= Q - înaintare și alunecare (melcul din fântână): în fiecare zi
dist := dist + x, iar noaptea, dacă nu a ieșit,dist := dist - y - afișarea pe coloane:
write(i:5)aliniază la cinci poziții,writelntrece la rând nou
Ce afișează, exactwrite lasă cursorul pe același rând, writeln trece la rândul următor. Dacă programul scrie write('s=', s), răspunsul cerut cuprinde și prefixul s=, nu doar valoarea; formatul face parte din răspuns.
Остальное в уроке — в подписке
Настоящие задания ANCE по этой теме, разбор примера шаг за шагом, типичные ошибки и 7 вопросов для самопроверки — в подписке. «Что нужно знать» остаётся бесплатным.
Диагностика на настоящих заданиях ANCE остаётся бесплатной: 20 минут — где теряешь баллы, ещё 10–15 минут — ориентировочная оценка по каждому экзамену. Нужен только аккаунт, без карты.
Целый месяц — 299 лей: ≈ 10 лей за вечер занятий. Без автопродления.
BAC · реальный профиль · тренировочный тест № 1 · 2026Nota10
Structuri repetitive · 1 б.
În coloana din stânga este dat un program (Pascal, respectiv C++) care conține o instrucțiune repetitivă for:
Limbajul Pascal
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.Limbajul C++
// 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) Scrieți ce va afișa programul pr2 dacă de la tastatură se va introduce secvența de numere: 5 24 -7 12 -11 25 100.