Циклы. Возможные ошибки: различия между версиями
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Mikst (обсуждение | вклад) |
Mikst (обсуждение | вклад) |
||
Строка 38: | Строка 38: | ||
=== Неинициализированная переменная=== | === Неинициализированная переменная=== | ||
<source lang="Delphi">var | |||
i: integer; | |||
p: real; | |||
begin | |||
// Забыли инициализировать p := 1 | |||
for i := 1 to 10 do | |||
p := p * 2; | |||
write(p); | |||
end.</source> | |||
=== Зацикливание=== | === Зацикливание=== | ||
=== Переполнение=== | === Переполнение=== |
Версия от 12:59, 19 ноября 2009
Неверный тип переменной цикла
var x: real;
begin
for x := 1 to 10 do // переменная - параметр цикла не может иметь вещественный тип
write(x);
end.
Изменение переменной цикла в теле цикла
Пример 1.
var i: integer;
begin
for i := 1 to 10 do
begin
write(i);
i := i + 2; // Нельзя изменять значение переменной цикла внутри цикла
end;
end.
Пример 2.
var i: integer;
begin
for i := 1 to 10 do
begin
read(i); // Нельзя изменять значение переменной цикла внутри цикла
write(i);
end;
end.
Использование одинаковой переменной цикла в заголовках вложенных циклов
var i,j: integer;
begin
for i := 1 to 10 do
for i := 1 to 10 do // ошибка: во вложенном цикле нельзя использовать параметр цикла с тем же именем
begin
write(i);
end;
end.
Неинициализированная переменная
var
i: integer;
p: real;
begin
// Забыли инициализировать p := 1
for i := 1 to 10 do
p := p * 2;
write(p);
end.