Другие языки программирования и технологии
очень срочно....маленький вопрос по паскалю
program N56864882; var a:array[1..100,1..100] of integer; n,m,i,j,k:integer; begin write('Введите кол-во строк: '); readln(n); write('Введите кол-во столбцов: '); readln(m); for i := 1 to n do for j := 1 to m do begin write('Введите А[',i,',',j,']: '); readln(a[ i,j]); end; writeln('Строки только с положительными элементами:'); for i := 1 to n do begin k := i; j := 1; while (k > 0) and (j <= m) do begin if a[ i,j] <= 0 then k := 0; inc(j); {или j := j + 1;} end; if k > 0 then writeln(k); end; readln end. для чего нужна переменная к ? для чего она служит что делает?*
Всё правильно, основная роль k - это флажок, показывающий, что в строке только положительные элементы. По совместительству это и номер текущей строки.
Почему-то вы выбрали самый неинтересный вариант из трёх предложенных. В двух других, где k булева переменная, явно видно, что это всего-навсего флаг.
program N58736265;
var a:array[1..100,1..100] of integer;
n,m,i,j:integer;
k:boolean;
begin
write('Введите кол-во строк: ');
readln(n);
write('Введите кол-во столбцов: ');
readln(m);
for i := 1 to n do
for j := 1 to m do
begin
write('Введите А [',i,',',j,']: ');
readln(a[ i, j ]);
end;
writeln('Строки только с положительными элементами: ');
for i := 1 to n do
begin
k := true;
j := 1;
while k and (j <= m) do
begin
k := a[ i, j ] > 0;
j := j + 1; {или inc(j);}
end;
if k then
writeln(i);
end;
readln
end.
Или вообще дикий вариант по-чайниковски с холостыми циклами FOR:
program N58736265_for;
var a:array[1..100,1..100] of integer;
n,m,i,j:integer;
k:boolean;
begin
write('Введите кол-во строк: ');
readln(n);
write('Введите кол-во столбцов: ');
readln(m);
for i := 1 to n do
for j := 1 to m do
begin
write('Введите А [',i,',',j,']: ');
readln(a[ i, j ]);
end;
writeln('Строки только с положительными элементами: ');
for i := 1 to n do
begin
k := true;
for j := 1 to m do
k := k and (a[ i, j ] > 0);
if k then
writeln(i);
end;
readln
end.
Можно преждевременно выйти из цикла с помощью break, как только в строке встретится первый неположительный элемент.
Но я преднамеренно не использую в выдаваемых на ответах программах операторы break, continue, exit, halt и goto, так как преподаватели чаще всего накладывают запрет на их использование в учебных программах.
Если так хочется писать программы с противоестественным ходом выполнения программы, то добро пожаловать в ассемблер или старый-престарый бейсик, где вы до тошноты напрыгаетесь с помощью jmp и goto :D)
Почему-то вы выбрали самый неинтересный вариант из трёх предложенных. В двух других, где k булева переменная, явно видно, что это всего-навсего флаг.
program N58736265;
var a:array[1..100,1..100] of integer;
n,m,i,j:integer;
k:boolean;
begin
write('Введите кол-во строк: ');
readln(n);
write('Введите кол-во столбцов: ');
readln(m);
for i := 1 to n do
for j := 1 to m do
begin
write('Введите А [',i,',',j,']: ');
readln(a[ i, j ]);
end;
writeln('Строки только с положительными элементами: ');
for i := 1 to n do
begin
k := true;
j := 1;
while k and (j <= m) do
begin
k := a[ i, j ] > 0;
j := j + 1; {или inc(j);}
end;
if k then
writeln(i);
end;
readln
end.
Или вообще дикий вариант по-чайниковски с холостыми циклами FOR:
program N58736265_for;
var a:array[1..100,1..100] of integer;
n,m,i,j:integer;
k:boolean;
begin
write('Введите кол-во строк: ');
readln(n);
write('Введите кол-во столбцов: ');
readln(m);
for i := 1 to n do
for j := 1 to m do
begin
write('Введите А [',i,',',j,']: ');
readln(a[ i, j ]);
end;
writeln('Строки только с положительными элементами: ');
for i := 1 to n do
begin
k := true;
for j := 1 to m do
k := k and (a[ i, j ] > 0);
if k then
writeln(i);
end;
readln
end.
Можно преждевременно выйти из цикла с помощью break, как только в строке встретится первый неположительный элемент.
Но я преднамеренно не использую в выдаваемых на ответах программах операторы break, continue, exit, halt и goto, так как преподаватели чаще всего накладывают запрет на их использование в учебных программах.
Если так хочется писать программы с противоестественным ходом выполнения программы, то добро пожаловать в ассемблер или старый-престарый бейсик, где вы до тошноты напрыгаетесь с помощью jmp и goto :D)
Это k номер текущей строки и метка что ещё нет неположительных в строке
обнуляется при первом попавшемся неположительном и идёт переход к другой строке
кривовато, но - на беглый взгляд - должно сработать
обнуляется при первом попавшемся неположительном и идёт переход к другой строке
кривовато, но - на беглый взгляд - должно сработать
ей присваевается значение переменной i
очевидно переменная где хранится ответ на вопрос задачи, проще спросить у того у кого прогу скопировали :)
ответ очевиден ей присваивается номер строки где содержатся только положительные элементы
Похожие вопросы
- очень срочно нужна помощь по паскалю сижу на экзамене. дома буду обязательно отблагодарю и скину деньги если что
- СРОЧНО ! Напишите прогу на Паскале
- Народ! Помогите решить задачи на языке паскаль. Очень срочно надо! Буду рада решению хотя бы одной из списка=)
- Задача на МАССИВЫ Паскаль ОЧЕНЬ СРОЧНО!!!!
- как в Паскале лучше объявить массив, если количество элементов заранее неизвестно? пожалуйста, очень срочно надо!!
- Подскажите с паскалем. Очень срочно
- Помогите пожалуйста, с составлением программы в паскале, очень срочно! Только пожалуйста, вставьте данные, которые ниже
- Задача в паскале. помогите пожалуйста... очень срочно нужно!
- ПОМОГИТЕ ОЧЕНЬ СРОЧНО!! ИНФОРМАТИКА!!!ПАСКАЛЬ
- Вопрос по паскалю!!! Срочно надо, плиз!!!