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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2009, 22:24   #1
Sanyco-007
Новичок
Джуниор
 
Регистрация: 08.12.2009
Сообщений: 2
Стрелка Turbo Pascal 7.0 - модуль пользователя

Вообщем нужно мне написать свой модуль *.tpu, в котором нужно использовать минимум 3 подпрограммы. В основной программе сделать показ возможностей модуля. Возникла следущая проблема: не могу передать масив для обработки с основной программы в подпрограмму модуля. Ниже текст модуля и основной программы, буду благодарен, если кто скажет что я делаю неправильно.

Модуль:
unit my_unit;
interface
uses crt;
type mas=array[1..100] of real;
procedure write_mas(var x:mas; var n:byte);
procedure sort_up(var x:mas; var n:byte);
procedure sort_down(var x:mas; var n:byte);
procedure vect(var x:mas; var n:byte; s:real);
function log(a,v:real):real;


implementation
procedure write_mas;
var i:byte;
begin
readln(n);
for i:=1 to n do begin
write('Vvedit element X[',i,']: ');
readln(x[i]);
end;
end;

procedure sort_up;
var i:byte; flag:boolean; p:real;
begin
clrscr;
repeat
flag:=true;
for i:=1 to n-2 do
if x[i]>x[i+1] then begin
p:=x[i]; x[i]:=x[i+1]; x[i+1]:=p; flag:=false;
end;
until flag;
end;

procedure sort_down;
var i:byte; flag:boolean; p:real;
begin
clrscr;
repeat
flag:=true;
for i:=1 to n-2 do
if x[i]<x[i+1] then begin
p:=x[i]; x[i]:=x[i+1]; x[i+1]:=p; flag:=false;
end;
until flag;
end;

procedure vect;
var i:byte;
begin
clrscr;
s:=0;
for i:=1 to n do s:=s+sqr(x[i]);
s:=sqrt(s);
end;

function log;
begin
log:=ln(v)/ln(a);
end;
end.


Основная программа:
program lib;
uses crt, my_unit;
type mas=array[1..100] of real;
var x:mas; a,v,l,s:real; i,n,k:byte;
begin
clrscr;
writeln('Vuberit potribny diu:');
writeln('1 - vidsortyvatu masuv za zrostanjam;');
writeln('2 - vidsortyvatu masuv za spadanjam;');
writeln('3 - znajtu dovguny vectora;');
writeln('4 - obchuslutu logarufm;');
writeln('5 - vuhid;');
write('Vvedit chuslo potribnoi dii: '); readln(k);
case k of
1:begin
write('Vvedit kilkist elementiv masuvy: ');
readln(n);
write_mas(x,n);
sort_up(x,n);
writeln('Novuy masuv:');
for i:=1 to n do write(x[i]:5:2);
readkey;
end;

2:begin
write('Vvedit kilkist elementiv masuvy: ');
readln(n);
write_mas(x,n);
sort_down(x,n);
writeln('Novuy masuv:');
for i:=1 to n do write(x[i]:5:2);
readkey;
end;

3:begin
write('Vvedit kilkist elementiv vectora: ');
readln(n);
write_mas(x,n);
vect(x,n,s);
writeln('Dovguna vectora = ',s:8:3);
readkey;
end;

4:begin
write('Vvedit a: '); readln(a);
write('Vvedit v: '); readln(v);
write('Vidpovid:',log(a,v):6:2);
readkey;
end;

5:exit;

end;
end.
Сейчас учу Turbo Pascal 7.0
Sanyco-007 вне форума Ответить с цитированием
Старый 09.12.2009, 20:14   #2
Sanyco-007
Новичок
Джуниор
 
Регистрация: 08.12.2009
Сообщений: 2
По умолчанию

Все разобрался, нужно с главной проги убрать type mas=array[1..100] of real;
Сейчас учу Turbo Pascal 7.0
Sanyco-007 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal. Модуль Graph NitriNKa Помощь студентам 1 07.11.2009 12:16
а free pascal не читает задачи которые написаны на turbo pascal? demonara Паскаль, Turbo Pascal, PascalABC.NET 3 25.05.2009 16:28
Модуль для работы с множествами [Pascal] iFool Помощь студентам 2 20.10.2008 22:04
Помогите плс.Pascal-->модуль graph Бедный студент Помощь студентам 0 31.05.2008 01:49