1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Дан двумерный квадратный массив. Найти номера строк, все элементы которых равны нулю. Использовать подпрограммы для решения каждой частной задачи. Я так понимаю, что пользователь сам вводит элементы массива с клавиатуры, причем удобнее по строкам. Например, так:
Uses crt; const n=5; var arr:array[1..n,1..n] of integer; i,j:integer;
procedure fill; var i,j:integer; begin for i:=1 to n do begin write('vvedite ',i,'-yu stroku massiva: '); for j:=1 to n do read(arr[i,j]); readln end; end;
procedure find; var i,j:integer; begin for i:=1 to n do for j:=1 to n do begin if arr[i,j]=0 then writeln('0 v stroke: ',i); end; end;
begin clrscr; fill; find; readln; end.
Поправьте, плиз, цикл вывода на экран номеров строк, заполненных нулями... А то выводятся по несколько раз подряд... И, может, еще где ошиПки есть, покажите
Сообщение отредактировано: Jaxx -
--------------------
- Дорогие девушки! У вас сухая кожа? Редкие волосы? Проблемы с фигурой? Приходите к нам! У нас темно и мы пьяные.
Поправил немного, ибо решение не соответствовало условию. Данная программа искала и выводила строки, где был хотя бы один 0. А по условию нужно вывести номера строк, где все элементы равны нулю. Вроде нормальный вариант, но перепроверьте:
Uses crt; const n=5; var arr:array[1..n,1..n] of integer; i,j:integer;
procedure fill; var i,j:integer; begin for i:=1 to n do begin write('vvedite ',i,'-yu stroku massiva: '); for j:=1 to n do read(arr[i,j]); readln end; end;
procedure find; var i,j, stroka,stroka2:integer; begin stroka2:=0; for i:=1 to n do begin stroka:=0; for j:=1 to n do begin if arr[i,j]=0 then begin stroka:=stroka+1; if stroka=n then begin stroka2:=1; writeln('0 v stroke: ',i); end; end; end; end; if stroka2=0 then writeln('v massive net takih strok'); end;
begin clrscr; fill; find; readln; end.
--------------------
- Дорогие девушки! У вас сухая кожа? Редкие волосы? Проблемы с фигурой? Приходите к нам! У нас темно и мы пьяные.
Если б ты отформатировал код, как положено - сам увидел бы, что надо сначала пробежать по всей строке, а уж потом сравнивать значение переменной Stroka с N и предпринимать какие-то действия при равенстве...