IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Uint - cannot run..... ((
Resager
сообщение 20.11.2007 20:39
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Мужской
Реальное имя: Resager

Репутация: -  0  +


ТЕкст модуля, пишет, что не может выполнить, (но компилит, и файл создаёт!!!)
unit R10_UNIT;
interface
type masiv=array[1..50,1..50] of integer;
procedure maso(n:integer; m:masiv; var m1:masiv);
implementation
procedure maso;
var y,i:integer;
begin
for i:=1 to n do
for y:=1 to n do
if m[i,y]<0 then m[i,y]:=0;
for i:=1 to n do
for y:=1 to n do
m[i,y]:=m1[i,y];
end;
end.


А вот прога, где я этот модуль использую: (в месте обращения к процедуре пишет несоответствие типов)
uses R10_UNIT;
type masiv=array[1..100,1..100] of integer;
var nn:integer; mm1,mm:masiv; {array[1..100,1..100] of integer;}
ii,yy:integer; {nn:integer;} {mm:array[1..100,1..100] of integer; }
begin
writeln('введите размерность квадратной матрицы(одно число): ');
readln(nn);
{********************************************************}
writeln('вводите элементы матрицы: ');
{ввод элементов в память}
for ii:=1 to nn do
for yy:=1 to nn do
readln(mm[ii,yy]);
{конец - ввод элементов в память}

{вывод шапки с n столбцами}
write(#201);
for ii:=1 to nn do begin
write(#205,#205,#205,#205,#205);
if ii<>nn then write(#203);
end;
writeln(#187);
{конец - вывод шапки с n столбцами}

{вывод середины матрмцы}
for ii:=1 to nn do begin
for yy:=1 to nn do begin
write(#186,mm[ii,yy]:5);

end;
writeln(#186);
if ii<>nn then write(#204);
{if (ii<>nn) then begin}
if ii<>nn then
for yy:=1 to nn do begin
write(#205,#205,#205,#205,#205);
if yy=nn then writeln(#185) else write(#206)
end;
{end;}
{if ii=nn then writeln(#185) else writeln;}
end;
{конец - вывод середины матрмцы}

{вывод шапки(снизу) с n столбцами}
write(#200);
for ii:=1 to nn do begin
write(#205,#205,#205,#205,#205);
if ii<>nn then write(#202);
end;
writeln(#188);
{конец - вывод шапки(снизу) с n столбцами}
maso(nn,mm,mm1); {***************ЗДЕСЬ ВЫВОДИТ ОШИБКУ*******************}
readln;
end.
ПОДСКАЖИТЕ В ЧЁМ ОШИБКА И КАК ЕЁ ИСПРАВИТЬ?
З.Ы. В проге много лишнего, вырезаного (ненужное), но алгоритм цел.

М
Используй не цитатные теги, а паскалевские (в меню CODE). Лопарь

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 20.11.2007 20:54
Сообщение #2


Гость






Цитата
В ЧЁМ ОШИБКА И КАК ЕЁ ИСПРАВИТЬ?

У тебя описан masiv в модуле - это матрица 50*50, и masiv в программе - это матрица 100*100. Переменные имеют тип 100*100, хотя модуль ждет другого размера. Убери описание
type masiv=array[1..100,1..100] of integer;
из основной программы, и пользуйся тем, что есть в модуле...

Добавлено через 1 мин.
Ну, или
mm1,mm:r10_unit.masiv;
, если хочется поизвращаться...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 9:31
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"