![]() |
|
Модераторы: Poseidon |
![]()
|
|
| doda |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 9.3.2010 Репутация: нет Всего: нет |
В матрице удалить столбцы, в которых все числа меньше нуля.
вот код: uses crt; type mas=array[1..50,1..50]of integer; var n,m,i,j:byte; a: mas; procedure inp( n: integer; m: integer; var a: mas); var i, j: integer; begin randomize; for i:=1 to n do for j:=1 to m do a[i,j]:=random(50)-2; end; procedure print( n: integer; m: integer; var a: mas); var i, j: integer; begin for i:=1 to n do begin for j:=1 to m do write(a[i,j]:6); writeln; end; end; procedure del (var a:mas); var i, j: integer; begin for i:=1 to n do begin for j:=1 to m do if a[i,j]<0 then for i:=1 to n do for j:=1 to m-1 do a[i,j]:=a[i,j-1]; end; end; begin clrscr; write('Kolichestvo strok n=');readln(n); write('Kolichestvo stolbcov m=');readln(m); writeln(' Ishodnaya matrica '); inp(n,m,a); print(n,m,A); end. что неправильно? |
|||
|
||||
| ФедосеевПавел |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 7.2.2009 Репутация: 2 Всего: 10 |
Надеюсь, что ты сам уже разобрался...
Но тем не менее добавлю от себя. 1. В основной программе есть ввод исходной матрицы, вывод результата, но нет обработки (удаления столбца). 2. Процедура обработки del выглядит ужасно. Внутри циклов повторно используются переменные цикла (i и j). 3. Т.к. задание то предлагаю организовать алгоритм так: п.1. Просматриваем первую строку (т.е. a[1,j]). Если a[1,j]<0, то просматриваем j-й столбец на предмет выполнения условия a[i,j]<0. п.2. Если для всего j-того столбца условие выполнилось, то удалить j-й столбец. п.3. Если столбец удалялся, то j остаётся без изменения и переход на п.1. Если удаления не было, то Inc(j) и опять на п.1. Из-за п.3 цикл по j не может быть for, а только while. Удаление столбца можно вынести в отдельную процедуру или не жалеть индексных переменных, при помощи которых и организовать сдвиг. Кроме того, организовав матрицу по другому (изменив определение типа) можно возложить часть работы со "своих рук" на "голову компилятора". Посмотри здесь про обмен столбцов. На базе этого и удаление сам составишь... Я верю в тебя... Да что - я? Весь форум замер в ожидании решения... |
|||
|
||||
| doda |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 9.3.2010 Репутация: нет Всего: нет |
ну вообщето я разобрался с этой задачей, но есть ещё одна посмотрите?
Найти столбец с минимальным средним арифметическим чётных чисел. вот код: uses crt; type mas=array[1..n, 1..m]of integer; mas2= array[1..n]of integer; var a: mas; b:mas2; var i,j,n,m:integer; suma:real; arifm:real; procedure vvod (var a:mas; var n,m: integer); var i,j: integer; begin writeln('Vvedite kolichestvo strok '); readln(n); writeln('Vvedite kolichestvo stolbcov '); readln(m); randomize; for i:=1 to n do begin for j:=1 to m do a[i,j]:=random(20); end; end; procedure vivod(a:mas); begin for i:=1 to n do begin for j:=1 to m do write(a[i,j]:6); writeln; end; end; procedure arifm (var a:mas; var b: mas2; var s:real; n,m: integer); var i,j: integer; begin for i:=1 to m do begin s:=0; for j:=1 to n do begin s:=a[j,i]+s; end; b[i]:=s/n; end; end; procedure vivodB; begin for i:=1 to m do write(' ',b[i]:2:1); end; begin clrscr; vvod; vivod; arifm; writeln; write('A)'); vivodB; writeln; readln; end. ну? |
|||
|
||||
| ФедосеевПавел |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 7.2.2009 Репутация: 2 Всего: 10 |
И? Я так понимаю цитируемая фраза переводится как "как найти кнопку "КОД" на форме ввода?" Да, совершенно верно, она в правом верхнем углу формы ввода. И ею (кнопкой) можно, НУЖНО пользоваться, чтобы откликнувшиеся на призыв не тратили время на переформатирование чужого кода. |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |