Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 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
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Решение вашего вопроса можно попытаться найти в аналогичных темах

Помогите решить задачу
Помогите решить задачу)
Помогите решить задачу
Помогите решить задачу
Помогите решить задачу в Pascal
Помогите решить задачу.

Старый 17.03.2009, 21:53   #2 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,853
Сказал(а) спасибо: 317
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 101510
По умолчанию

Цитата:
Сообщение от Гринч Посмотреть сообщение
Помоги пожалуйсто с решением задач на Паскале...

3. Дан двумерный массив A[10*15] . Определить, есть ли в данном массиве строка, в которой ровно 2 отрицательных элементов. Вывести номер строки на экран.
4. В матрице A[12*12] в каждом третьем столбце найти максимальное число, записать в результирующий массив.

и если можно, блок схемы тоже..........
заранее спасибо..........
VAR
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 Причина: Благодаря Маше, найдена и исправлена ошибка в первой программе
Vladimir_S вне форума   Ответить с цитированием
Старый 17.03.2009, 22:25   #3 (permalink)
ummasha
Member
 
Аватар для ummasha
 
Регистрация: 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
ummasha вне форума   Ответить с цитированием
Старый 17.03.2009, 22:44   #4 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,853
Сказал(а) спасибо: 317
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 101510
По умолчанию

Маша, спасибо за замечания. Вот классический пример того, как ПОСТУПАТЬ НЕ НУЖНО, а именно, желая помочь ближнему, и в то же время воспринимая задачу, как шаблонную, рутинную и нудную, наспех, не проверив, выкладывать решение.
Теперь по сути. Вы правы, в первой поправке ВНУТРЕННИЙ цикл нужно обязательно взять в операторные скобки (begin, end) внешний - тоже можно, но не обязательно. А вот вторая ошибка, извините, Ваша - Вы зачем-то предпоследний END; переместили в другое место.
Vladimir_S вне форума   Ответить с цитированием
Старый 17.03.2009, 22:52   #5 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,853
Сказал(а) спасибо: 317
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 101510
По умолчанию

Исправил текст первой программы. Еще раз спасибо, Маша.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 17.03.2009, 22:54   #6 (permalink)
ummasha
Member
 
Аватар для ummasha
 
Регистрация: 24.12.2008
Сообщений: 419
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1311
По умолчанию

Но Паскаль пишет, что после последнего END ожидалась точка с запятой, а не точка. Или я что-то путаю?
ummasha вне форума   Ответить с цитированием
Старый 17.03.2009, 22:59   #7 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,853
Сказал(а) спасибо: 317
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 101510
По умолчанию

Цитата:
Сообщение от ummasha Посмотреть сообщение
Но Паскаль пишет, что после последнего END ожидалась точка с запятой, а не точка. Или я что-то путаю?
Нет, положительно сегодня меня надо пристрелить. Из гуманности. Короче говоря, еще один END пропустил. Над 4-й снизу строкой. Исправил.

Да, и в начале второй программы тоже пропущенные begin end вставил.

Последний раз редактировалось Vladimir_S; 17.03.2009 в 23:06
Vladimir_S вне форума   Ответить с цитированием
Старый 17.03.2009, 23:03   #8 (permalink)
ummasha
Member
 
Аватар для ummasha
 
Регистрация: 24.12.2008
Сообщений: 419
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1311
По умолчанию

Vladimir_S, теперь программа работает
ummasha вне форума   Ответить с цитированием
Старый 17.03.2009, 23:09   #9 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,853
Сказал(а) спасибо: 317
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 101510
По умолчанию

Цитата:
Сообщение от ummasha Посмотреть сообщение
Vladimir_S, теперь программа работает
Уф!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 00:45.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.