17.03.2009, 21:03 | #1 (permalink) |
Новичок
Регистрация: 17.03.2009
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите решить задачу
3. Дан двумерный массив A[10*15] . Определить, есть ли в данном массиве строка, в которой ровно 2 отрицательных элементов. Вывести номер строки на экран. 4. В матрице A[12*12] в каждом третьем столбце найти максимальное число, записать в результирующий массив. и если можно, блок схемы тоже.......... заранее спасибо.......... |
17.03.2009, 21:03 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Решение вашего вопроса можно попытаться найти в аналогичных темах Помогите решить задачу Помогите решить задачу) Помогите решить задачу Помогите решить задачу Помогите решить задачу в Pascal Помогите решить задачу. |
17.03.2009, 21:53 | #2 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
A:ARRAY[1..10,1..15] of REAL; i,j,p,Q:INTEGER; BEGIN FOR i:=1 TO 10 DO FOR j:=1 TO 15 DO BEGIN Write('A[',i:2,',',j:2,'] = '); RealLn(A[i,j]); END; Q:=0; FOR i:=1 TO 10 DO BEGIN p:=0; FOR j:=1 TO 15 DO IF A[i,j]<0 THEN p:=p+1; IF p=2 THEN BEGIN Write(i:3); Q:=Q+1; END; END; WriteLn; IF Q=0 THEN WriteLn('Array contains no strings with 2 negative elements'); ReadLn; END. VAR A:ARRAY[1..12,1..12] of INTEGER; B:ARRAY[1..4] of INTEGER; i,j,MAX:INTEGER; BEGIN FOR i:=1 TO 12 DO FOR j:=1 TO 12 DO BEGIN Write('A[',i:2,',',j:2,'] = '); RealLn(A[i,j]); END; FOR j:=1 TO 4 DO BEGIN MAX:=-32000; FOR i:=1 TO 12 DO IF A[i,3*j]>MAX THEN MAX:=A[i,3*j]; B[j]:=MAX; END; FOR j:=1 TO 4 DO Write(B[j]:7); WriteLn; ReadLn; END. А насчет блок-схем - извините, помочь не могу: никогда вычерченными по стандарту блок-схемами не пользовался и даже не учился их чертить. Последний раз редактировалось Vladimir_S; 17.03.2009 в 23:13 Причина: Благодаря Маше, найдена и исправлена ошибка в первой программе |
|
17.03.2009, 22:25 | #3 (permalink) |
Member
Регистрация: 24.12.2008
Сообщений: 419
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1311
|
Пара вопросов насчет первой задачи:
VAR A:ARRAY[1..5,1..6] of REAL; i,j,p,Q:INTEGER; BEGIN FOR i:=1 TO 5 DO BEGIN FOR j:=1 TO 6 DO BEGIN Write('A[',i:2,',',j:2,'] = '); ReadLn(A[i,j]); END; END; Q:=0; FOR i:=1 TO 5 DO BEGIN p:=0; FOR j:=1 TO 6 DO IF A[i,j]<0 THEN p:=p+1; IF p=2 THEN BEGIN Write(i); Q:=Q+1; END; WriteLn; IF Q=0 THEN WriteLn('Array contains no strings with 2 negative elements'); END; END. Я добавила это, иначе программа выводила A[ 1, 1] = A[ 1, 2] = A[ 1, 3] = A[ 1, 4] = A[ 1, 5] ... И что-то не ладится с этим. Т.е. если 2 отрицательных элемента находатся в первой строке, то все нормально: программа выдает 1. Но если во второй строке - Array contains no strings with 2 negative elements 2 В третьей строке - Array contains no strings with 2 negative elements Array contains no strings with 2 negative elements 3 |
17.03.2009, 22:44 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Маша, спасибо за замечания. Вот классический пример того, как ПОСТУПАТЬ НЕ НУЖНО, а именно, желая помочь ближнему, и в то же время воспринимая задачу, как шаблонную, рутинную и нудную, наспех, не проверив, выкладывать решение.
Теперь по сути. Вы правы, в первой поправке ВНУТРЕННИЙ цикл нужно обязательно взять в операторные скобки (begin, end) внешний - тоже можно, но не обязательно. А вот вторая ошибка, извините, Ваша - Вы зачем-то предпоследний END; переместили в другое место. |
17.03.2009, 22:52 | #5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Исправил текст первой программы. Еще раз спасибо, Маша.
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
17.03.2009, 22:59 | #7 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Да, и в начале второй программы тоже пропущенные begin end вставил. Последний раз редактировалось Vladimir_S; 17.03.2009 в 23:06 |
|
17.03.2009, 23:09 | #9 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|