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

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

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

> написание своего модуля
сообщение
Сообщение #1


Новичок
*

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

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


Забыл как описывать свои модули, помню, что вроде надо так

Код

user <назв модуля>;


а дальше то как ? напишите пожалуйста, в faq, статьях и уроках вроде нету если пропустил ткните носом
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Смотри, что происходит:
1. Ты определил реализацию функций и процедур в модуле, но не описАл их как внешние, то есть вызывающая программа о них не знает...

2. Процедура sort описана после завершающей точки - это запрещено. Компилятор просто не знает о ее существовании... ( плюс к этому в sort была небольшая ошибка - не описана переменная i )

3. Более опасное:
в модуле у тебя определен тип
Type
TElem = integer;
mass = array[1..n] of TElem;
{ и затем : }
procedure inputmas (a:mass);

ты попытался описАть переменную такого же типа в основной программе и передать ее как параметр в процедуру... Нет !!! Нельзя этого делать. По правилу совместимости типов эти 2 типа будут считаться разными, и естественно вылетит ошибка. Нужно использовать ранее определенный в модуле тип...

Вот правильный вариант 2-х файлов (работоспособность не проверял, но компиляцию проходят smile.gif )

obrmasiv.pas
unit obrmasiv;
interface
const
n=5;

type
TElem = integer;
mass = array[1..n] of TElem;

procedure inputmas (a:mass);
procedure outputmas (a:mass);
function yp(a:mass): boolean;
procedure sort(a:mass);

implementation
uses crt,Graph;

procedure inputmas (a:mass);
var i:integer;
begin
for i:=1 to n do begin
write('a[',i,']= ');
read(a[i]);
end;
end;

procedure outputmas (a:mass);
var i:integer;
begin
for i:=1 to n do begin
write(a[i],' ')
end;
end;

function yp(a:mass): boolean;
var
i:integer;
p:boolean; p1:boolean;
begin
p:=true;
p1:=true;
for i:=1 to n-1 do begin
p:=p and (a[i] > a[i+1]);
p1:=p1 and (a[i] < a[i+1]);
end;
yp:=p or p1;
end;

procedure sort(a:mass);
var
c:integer;
i:integer;
begin
for i:=2 to n do begin
c:=a[i-1];a[i-1]:=a[i];a[i]:=c;
end
end;

end.


Файл main.pas
uses obrmasiv;
var
a: mass;
i:integer;
begin
inputmas(a);
if yp(a) then writeln('yp') else writeln('neyp');
sort(a);
outputmas(a);
end.


Кстати, зачем тебе Graph, он же нигде не используется? Или ты хочешь перенести это в графику? Я бы не советовал, смысл какой? Разными цветами можно и в текстовом режиме вывести... rolleyes.gif
 К началу страницы 
+ Ответить 

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


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

 





- Текстовая версия 9.09.2025 5:49
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name