Var ar:array of array of integer; n1,k,i,n2,j:integer; b:boolean; begin; readln(n1); readln(n2); inc(n1); inc(n2); k:=1; setlength(ar,n1+1); while k<>n1 do begin; setlength(ar[k],n2+1); inc(k); end; b:=false; k:=0; i:=1; j:=1; writeln('Matrix:'); while i<>n1 do begin; writeln; while j<>n2 do begin; ar[i,j]:=random(100)-50; write(ar[i,j]:4); inc(j); end; j:=1; inc(i); end; i:=1; j:=1; while i<>n1 do begin; while j<>n2 do begin; if ar[i,j]<0 then b:=true; inc(j); end; if b=false then begin; writeln; writeln(i); exit; end; b:=false; inc(i); j:=1; end; writeln; writeln('Все'); end.
Цикл - это многократно повторяющиеся действия с разными значениями исходных данных. Составляющими элементами любого цикла являются: Подготовка цикла - ПЦ, Тело цикла - ТЦ, Подготовка данных - ПД, Проверка условия - ПУ. Выполнение любого цикла начинается с ПЦ. Последовательность выполнения ТЦ, ПД, ПУ зависит от структуры цикла. В связи с этим различают следующие типовые структуры цикла: 1. Цикл с предусловием - ЦИКЛ ПОКА (WHILE … WEND). 2. Цикл с постусловием - ЦИКЛ ДО (DO … LOOP). 3. Цикл с параметром - ЦИКЛ со СЧЕТЧИКОМ (FOR … NEXT).Цикл с предусловием / ПОКА
Перед выполнением операторов тела цикла осуществляется проверка условия на продолжение цикла. Если условие справедливо (ветвь «Да»), то цикл повторяется, иначе происходит выход из цикла. Особенности данной структуры цикла: а) число повторений цикла заранее неизвестно; б) если при первой же проверке условия получается "Нет", то цикл не выполняется ни разу; в) возможен «бесконечный цикл», когда проверка условия не дает выхода на ветвь «Нет». Цикл с постусловием - ДО
В блоке "Проверка условия" осуществляется проверка условия на прекращение цикла. Если условие справедливо (ветвь «Да»), то происходит выход из цикла, в противном случае цикл повторяется при новых значениях исходных данных. Особенности данной структуры цикла: а) число повторений цикла заранее неизвестно; б) так как условие проверяется в конце цикла, то тело цикла выполняется как минимум один раз; в) возможен «бесконечный цикл», когда проверка условия не дает выхода на ветвь «Да». Цикл с параметром
Параметр цикла определяет число повторений цикла. Для параметра цикла указывается его начальное значение, конечное значение и шаг изменения. Тело цикла выполняется при каждом значении параметра цикла. Особенность данной структуры цикла заключается в том, что уже перед началом выполнения цикла известно количество его повторений. Пример. Вычислить значения функции вида y = f(x) при изменении x от начального значения xn до конечного значения xk с постоянным шагом h. Эта задача решается с цикла с заданным количеством повторений. Число повторений определяется по формуле: n = (xk - xn) / h + 1.
На рисунках (см. ниже) представлены блок-схемы решения задачи: - с использованием цикла ПОКА; - с использованием цикла с ПАРАМЕТРОМ. ЦИКЛ - ПОКА ЦИКЛ С ПАРАМЕТРОМ
Блок 3 – подготовка цикла Блок 3 выполняет те же функции, Блок 4 – проверка условия что и блоки 3,4,7 в схеме слева. окончания цикла Блок 5,6 – тело цикла Блок 7 – подготовка информации для нового цикла Операторы цикла
Цикл с ПАРАМЕТРОМ реализуется в Бейсике с оператора цикла FOR … NEXT. Формат записи оператора: FOR I = IN TO IK [STEP H] < операторы тела цикла > NEXT I Пояснения: - FOR (для), TO (до), STEP (шаг), NEXT (следующий) – служебные слова; - I – имя переменной, являющейся параметром цикла; - IN, IK, H – выражения, определяющие начальное значение IN параметра цикла, конечное значение IK параметра цикла и шаг изменения H параметра цикла. По умолчанию H=1. Значение выражений IN, IK, H должны удовлетворять следующим условиям: при H > 0 (шаг положительный) IN < IK; при H < 0 (шаг отрицательный) IN < IK.
Например: 1) FOR X=10 TO 100 STEP 2 LET Y=SQR (X) PRINT X,Y NEXT X 2) FOR X=10 TO 1 STEP – 1 LET Y=X - 2 PRINT X,Y NEXT X
Важно запомнить следующее: 1.Вход в цикл минуя строку начала цикла FOR - запрещен. 2.Открыли цикл – не забудьте его закрыть. 3.До выход из цикла осуществляется с оператора EXIT FOR 4.В структуре вложенных циклов цикл, открытый первым, закрывается последним.
n1,k,i,n2,j:integer;
b:boolean;
begin;
readln(n1);
readln(n2);
inc(n1);
inc(n2);
k:=1;
setlength(ar,n1+1);
while k<>n1 do
begin;
setlength(ar[k],n2+1);
inc(k);
end;
b:=false;
k:=0;
i:=1;
j:=1;
writeln('Matrix:');
while i<>n1 do
begin;
writeln;
while j<>n2 do
begin;
ar[i,j]:=random(100)-50;
write(ar[i,j]:4);
inc(j);
end;
j:=1;
inc(i);
end;
i:=1;
j:=1;
while i<>n1 do
begin;
while j<>n2 do
begin;
if ar[i,j]<0 then b:=true;
inc(j);
end;
if b=false then
begin;
writeln;
writeln(i);
exit;
end;
b:=false;
inc(i);
j:=1;
end;
writeln;
writeln('Все');
end.
Цикл - это многократно повторяющиеся действия с разными значениями исходных данных.
Составляющими элементами любого цикла являются:
Подготовка цикла - ПЦ,
Тело цикла - ТЦ,
Подготовка данных - ПД,
Проверка условия - ПУ.
Выполнение любого цикла начинается с ПЦ. Последовательность выполнения ТЦ, ПД, ПУ зависит от структуры цикла. В связи с этим различают следующие типовые структуры цикла:
1. Цикл с предусловием - ЦИКЛ ПОКА (WHILE … WEND).
2. Цикл с постусловием - ЦИКЛ ДО (DO … LOOP).
3. Цикл с параметром - ЦИКЛ со СЧЕТЧИКОМ (FOR … NEXT).Цикл с предусловием / ПОКА
Перед выполнением операторов тела цикла осуществляется проверка условия на продолжение цикла. Если условие справедливо (ветвь «Да»), то цикл повторяется, иначе происходит выход из цикла.
Особенности данной структуры цикла:
а) число повторений цикла заранее неизвестно;
б) если при первой же проверке условия получается "Нет", то цикл не выполняется ни разу;
в) возможен «бесконечный цикл», когда проверка условия не дает выхода на ветвь «Нет».
Цикл с постусловием - ДО
В блоке "Проверка условия" осуществляется проверка условия на прекращение цикла. Если условие справедливо (ветвь «Да»), то происходит выход из цикла, в противном случае цикл повторяется при новых значениях исходных данных.
Особенности данной структуры цикла:
а) число повторений цикла заранее неизвестно;
б) так как условие проверяется в конце цикла, то тело цикла выполняется как минимум один раз;
в) возможен «бесконечный цикл», когда проверка условия не дает выхода на ветвь «Да».
Цикл с параметром
Параметр цикла определяет число повторений цикла. Для параметра цикла указывается его начальное значение, конечное значение и шаг изменения. Тело цикла выполняется при каждом значении параметра цикла.
Особенность данной структуры цикла заключается в том, что уже перед началом выполнения цикла известно количество его повторений.
Пример. Вычислить значения функции вида y = f(x) при изменении x от начального значения xn до конечного значения xk с постоянным шагом h.
Эта задача решается с цикла с заданным количеством повторений. Число повторений определяется по формуле:
n = (xk - xn) / h + 1.
На рисунках (см. ниже) представлены блок-схемы решения задачи:
- с использованием цикла ПОКА;
- с использованием цикла с ПАРАМЕТРОМ.
ЦИКЛ - ПОКА ЦИКЛ С ПАРАМЕТРОМ
Блок 3 – подготовка цикла Блок 3 выполняет те же функции,
Блок 4 – проверка условия что и блоки 3,4,7 в схеме слева.
окончания цикла
Блок 5,6 – тело цикла
Блок 7 – подготовка информации
для нового цикла
Операторы цикла
Цикл с ПАРАМЕТРОМ реализуется в Бейсике с оператора цикла FOR … NEXT. Формат записи оператора:
FOR I = IN TO IK [STEP H]
< операторы тела цикла >
NEXT I
Пояснения:
- FOR (для), TO (до), STEP (шаг), NEXT (следующий) – служебные слова;
- I – имя переменной, являющейся параметром цикла;
- IN, IK, H – выражения, определяющие начальное значение IN параметра цикла, конечное значение IK параметра цикла и шаг изменения H параметра цикла. По умолчанию H=1. Значение выражений IN, IK, H должны удовлетворять следующим условиям:
при H > 0 (шаг положительный) IN < IK;
при H < 0 (шаг отрицательный) IN < IK.
Например:
1) FOR X=10 TO 100 STEP 2
LET Y=SQR (X)
PRINT X,Y
NEXT X
2) FOR X=10 TO 1 STEP – 1
LET Y=X - 2
PRINT X,Y
NEXT X
Важно запомнить следующее:
1.Вход в цикл минуя строку начала цикла FOR - запрещен.
2.Открыли цикл – не забудьте его закрыть.
3.До выход из цикла осуществляется с оператора EXIT FOR
4.В структуре вложенных циклов цикл, открытый первым, закрывается последним.