Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2009, 19:56   #1
Sirega
Пользователь
 
Регистрация: 23.11.2008
Сообщений: 30
По умолчанию Модули

Найти все значения мтарицы C(n,m), которые больше числа R и из этих значений сформировать вектор B. Вот я пытался что-то сделать но оно не работает(( Заранее спасибо)
unit lmn;

interface

var
С:array[1..10,1..10] of integer;
B:array[1..10] of integer;
Procedure vvodmas(var l,k : integer);
Procedure vuvodmas(var l:integer);

implementation

Procedure vvodmas(var l,k : integer);
var n,m:integer;
Begin
for n:=1 to l do
for m:=1 to k do
read (C[n,m]);
end;
Procedure vuvodmas(var l:integer);
var n:integer;
Begin
for n:=1 to l do
read (B[n]);
end;
var m,n,r,c,k,l:integer;
begin
c:=0;
write('r');
readln (r);
writeln ('l,k');
readln (l,k);


for n:=1 to l do
for m:=1 to k do begin
If C[n,m]>r then
Begin
c:=c+1;
B[c]:=C[n,m];
end;
end;
writeln;

readln;
end.




program lmn;
uses crt,lmn;
begin
ClrScr;
vvodmas(l,k,С);
vuvodmas(l,B);

readln;
end.


Заранее спасибо)
Sirega вне форума Ответить с цитированием
Старый 03.02.2009, 20:27   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Sirega Ошибок слишком много, чтобы их перечислять. Исправил по своему усмотрению:

Исходник программы:
Код:
uses crt,lmn;
var
C : array[1..10,1..10] of integer;  { правильнее - C : carr;}
B : array[1..10] of integer;          { B : barr; }
l,k,cnt : integer;
begin
ClrScr;
writeln ('l,k');
readln (l,k);

vvodmas(l,k,C);
cnt := go(k,l,C,B);
vuvodmas(cnt,B);

readln;
end.
Исходник модуля:
Код:
unit lmn;
interface
type carr = array[1..10,1..10] of integer;
barr = array[1..10] of integer;

Procedure vvodmas(var l,k : integer; var C : carr);
Procedure vuvodmas(var l:integer; var B : barr);
function go(k,l : integer; var C : carr; var B : barr) : integer;

implementation

Procedure vvodmas(var l,k : integer; var C : carr);
var n,m:integer;
Begin
for n:=1 to l do
 for m:=1 to k do
  begin
  write('C[',n,',',m,']= ');
  readln (C[n,m]);
  end;
end;

Procedure vuvodmas(var l:integer; var B : barr);
var n:integer;
Begin
for n:=1 to l do
 writeln(B[n]);
end;

function go(k,l : integer; var C : carr; var B : barr) : integer;
var m,n,r,ch : integer;
begin
ch:=0;
write('r= ');
readln (r);
{
writeln ('l,k');
readln (l,k);}


for n:=1 to l do
 for m:=1 to k do
 begin
 If C[n,m]>r then
  Begin
  ch:=ch+1;
  B[ch]:=C[n,m];
  end;
 end;
writeln;
readln;
go := ch;
end;
end.
Пример ввода:
Код:
l,k
3
3
C[1,1]= 1
C[1,2]= 2
C[1,3]= 3
C[2,1]= 4
C[2,2]= 5
C[2,3]= 6
C[3,1]= 7
C[3,2]= 8
C[3,3]= 9
r= 5


6
7
8
9
------
upd Все-таки назову парочку ошибок:
Совпадают имена массива и переменной (C).
В одном месте вообще была написана русская буква "С".
Неправильный вызов процедур
Неправильный подход к реализации модуля. Модуль - не программа. Он нужен для хранения функций и процедур. У вас он как будто переделан из программы.
....
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 03.02.2009 в 21:05. Причина: добавил кое-что незначительное
Sazary вне форума Ответить с цитированием
Старый 03.02.2009, 20:57   #3
Sirega
Пользователь
 
Регистрация: 23.11.2008
Сообщений: 30
По умолчанию

Большое спасибо)))
Sirega вне форума Ответить с цитированием
Старый 03.02.2009, 21:07   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Sirega Еще стоит заметить, что в программе было бы правильнее написать вместо
Код:
var
C : array[1..10,1..10] of integer;
B : array[1..10] of integer;
вот это
Код:
var
C : carr;
B : barr;
Не критично, но, раз используются типы из модуля, то лучше так. Добавил в листинг.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.02.2009, 22:24   #5
Sirega
Пользователь
 
Регистрация: 23.11.2008
Сообщений: 30
По умолчанию

Извините, но можно вам задать еще 2 вопроса:
1.vvodmas(l,k,C);Пишет Type mismatch указатель на массиве
2.Можно ли было обойтись без фунцции и как.
Еще раз спосибо
Sirega вне форума Ответить с цитированием
Старый 03.02.2009, 22:35   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
1.vvodmas(l,k,C);Пишет Type mismatch указатель на массиве
Что за компилятор? Проверил в TP7 и Free pascal - все работает.
Цитата:
2.Можно ли было обойтись без фунцции и как.
Можно. Хотя и менее удобно.
В модуле замените функцию на
Код:
procedure go(k,l : integer; var C : carr; var B : barr; var ret : integer);
И в конце замените
Код:
go := ch;
на
Код:
ret := ch;
В самой программе замените
Код:
cnt := go(k,l,C,B);
на
Код:
go(k,l,C,B,cnt);
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Модули Claster Помощь студентам 1 16.10.2008 20:26
Модули vitekbest Помощь студентам 2 02.06.2008 09:55
Модули Михаил Юрьевич Общие вопросы Delphi 3 16.02.2008 20:59
Модули Altera Общие вопросы Delphi 4 04.02.2008 19:12
Модули aln123 Помощь студентам 3 21.10.2007 08:34