|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.12.2008, 20:13 | #1 |
Пользователь
Регистрация: 26.12.2008
Сообщений: 30
|
pascal массив
даны натуральное число m, целые числа a1,...,am и целочисленная квадратная матрица Amxn. строку с номером i матрицы назовем отмеченной, если ai>0, и неотмеченной в противном случае. посчитать число отрицательных элементов матрицы в отмеченных строках.
я написала прогу, но она почему то не работает, проверте пожалуйста)))))))) program massiv; var i, j, m, n, s:integer; a:array[1..30, 1..30] of real; begin readln(m); s:=0; for i:=1 to m do for j:=1 to m do begin writeln('a[',i,',j,']='); read(a[i,j]); end; for i:=1 to n do begin for j:=1 to n do if (a[i,1]>0) and (a[i,j]<0) then s:=s+1; writeln('s=',s); end. Последний раз редактировалось Fornarina; 26.12.2008 в 21:42. |
26.12.2008, 20:37 | #2 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Fornarina Я думаю, что в задании подразумевается немного другое:
даны натуральное число m есть m целые числа a1,...,am m целых чисел. Не матрица! Числа! и целочисленная квадратная матрица строку с номером i матрицы назовем отмеченной, если ai>0 Строку матрицы назовем отмеченой, если ai>0 Исходя из этого, вот что написал: Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
26.12.2008, 21:44 | #3 | |
Пользователь
Регистрация: 26.12.2008
Сообщений: 30
|
Цитата:
заранее спасибо))))) |
|
26.12.2008, 21:59 | #4 | ||
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Цитата:
Просто в задании сказано, что есть массив чисел (a1,a2...am) и есть квадратная матрица A размером mxm. Насколько я понимаю, вот это: Цитата:
В вашем варианте вы за числа (a1,a2...am) принимаете элементы первого столбца каждой строки матрицы. Я думаю, что это неправильно и в задании имелось в виду именно то, что я сделал.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
||
26.12.2008, 22:01 | #5 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 321
|
Вы оба немного неправы.
Это расшифровывается так: const m=30; var a: array [1..m] of integer;//целые числа явно даны, иначе в таких случаях если это не противоречит заданию всегда принимается real b: array [1..m,1..m] of integer;// и матрица В данном коде подразумевается, что константу при необходимости легко поменять. Второе: что будет у Sazary если я введу m>30? Думаю уже поняли? Хотя комбинация: write('a[',i,']= '); readln(a[i]); т.е. перевод строки происходит после ввода - более правильна. при выполнении кода: for i:=1 to m do begin if a[i]>0 then for j:=1 to m do if matr[i,j]<0 then s:=s+1; end; writeln('s=',s); readln; тоже есть ошибки: 1. При подсчёте кол-ва отрицательных элементов s является прогрессирующим, т. е. при проверке каждо строки при условии if a[i]>0 then его надо обнулять. 2. s:=s+1 правильно но немножко не грамотно, в таких случаях более грамотно писать inc(s); 3. writeln('s=',s); надо писать в цикле: for i:=1 to m do begin if a[i]>0 then begin s:=0; for j:=1 to m do if matr[i,j]<0 then s:=s+1; writeln('s=',s); end; Простите, что более подробно проверить не могу ... пятница, тяжело и т.д. Последний раз редактировалось Трофимов Александр; 26.12.2008 в 22:13. |
26.12.2008, 22:03 | #6 |
Пользователь
Регистрация: 26.12.2008
Сообщений: 30
|
вот смотрите полностью саму задачу))))
|
26.12.2008, 22:05 | #7 |
Пользователь
Регистрация: 26.12.2008
Сообщений: 30
|
посмотрите полностью задачу, она прикреплена
|
26.12.2008, 22:12 | #8 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 321
|
тогда зря исправил... щас опять поменяю.
|
26.12.2008, 22:17 | #9 | |||||
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Трофимов Александр Отвечаю )
Цитата:
Кстати, если это сделать здесь, то теряется возможность менять размер матрицы. А мне кажется, что это нужно. Цитата:
Тут уж по-любому можно ввести значение, которое вызовет ошибку. Не делать же массив динамическим? Цитата:
Цитата:
Цитата:
Вот )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|||||
26.12.2008, 22:17 | #10 |
Пользователь
Регистрация: 26.12.2008
Сообщений: 30
|
спасиб за помощь
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Pascal. На подсчет слов и на массив | Lot | Помощь студентам | 2 | 24.12.2008 18:35 |
задача про 2х мерный массив (Turbo Pascal) | masil | Помощь студентам | 4 | 30.11.2008 15:34 |
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. | TheVenny | Помощь студентам | 3 | 26.11.2008 15:06 |
Задача Pascal на массив (нужна помощь) | STIG_E70 | Помощь студентам | 4 | 18.06.2008 20:19 |
Массив (Turbo Pascal) | Wizzard | Помощь студентам | 2 | 20.01.2008 09:59 |