Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Помогите объединить три программы в модули, Pascal (http://www.tehnari.ru/f41/t74090/)

ALSe61 28.05.2012 20:17

Помогите объединить три программы в модули, Pascal
 
Помогите пожалуйста объединить 3 эти готовые задачки в модули
1)
Код:

type mas = array[1..200,1..2]of integer;
procedure write_ans(p,max:integer; a: mas);
var i: integer;
begin
for i := 1 to p do
if a[i, 2] = max then write( a[i, 1], ' ' );
end;
procedure search;
var k,i,j,max,p,m,n:integer;
a: mas;
begin
readln(m,n);
p:=0;
max := 0;
for i := m to n do
begin
k := 0;
for j := 1 to i do
if i mod j = 0 then inc( k );
if k > max then max := k;
inc( p );
a[p, 1] := i;
a[p, 2] := k;
end;
write_ans(p,max,a);
end;
begin
search();
end.

2)
Код:

const
n = 10;
type mass = array[1..n,1..n]of integer;
procedure ans_proc(k,c:integer; a:mass);
var i,j:integer;
b: array[1..n*n]of integer;
begin
for i := 1 to n do
for j := 1 to n do
begin
if a[i, j] mod 10 = k then begin b[c] := a[i, j]; inc(C); end; end;
for i := 1 to c - 1 do Write(b[i], ' ');
end;
procedure write_mas(a:mass);
var i,j:integer;
begin
for i := 1 to n do
begin
for j := 1 to n do
Write(a[i, j]:4);
Writeln;
end;
end;
procedure rand_mas;
var i,j,c,k:integer;
a: mass;
begin
Writeln('Введите k');
Readln(k);
c := 1;
randomize;
for i := 1 to n do
for j := 1 to n do
a[i, j] := random(100);
write_mas(a);
ans_proc(k,c,a);
end;
begin
rand_mas;
end.

3)
Код:

procedure Main_Proc;
var n, i, j: byte;
G, x, pow_r: real;
function pow(a,p: real; b: integer): real;
begin
p := p * a;
if b > 1 then pow:=pow(a,p,b-1)
else pow:=p;
end;
begin
Readln(n, x);
G := 0;
j := 1;
for i := n downto 0 do
begin
G := G + pow(sin(j * x),1,n);
inc(j);
end;
Writeln('G = ', g:4:3);
end;

begin
Main_Proc;
end.


I L Y A 28.05.2012 23:53

Эх, давно ни на Pascal'e, ни в Delphi не писал, когда- то делал модули. Ничего ложного в нем нет. Тут Ссылка удалена Глава 7. Модули Borland Pascal[/url] вполне все понятно написано.
Удачи!

ALSe61 29.05.2012 07:15

Пробовать то я пробовал, но не получается. Некоторые процедуры почему-то не определяются.

I L Y A 30.05.2012 22:13

Чтобы процедур виделись из других модулей или из главной программы, надо, чтобы они были объявлены в interficeной части. У Паскаля такой подход - внутри одного модуля процедуры объявлять не нужно (за исключением одного случая) ну, а вот если нужно, чтобы эти процедуры могли вызываться извне этого модуля, то их надо обязательно объявлять в интерфейсной части.
Все сделано для экономии кода. Нет объявленной процедуры - не будет ее и в заголовке скомпилированного кода.
P.S. На самом деле Паскаль очень красивый язык.

I L Y A 30.05.2012 22:16

Да и еще, в основной программе ну и в самих модулях (если из них идет вызов други процедур) необходимо перечислять в директиве USES те модули в которых нужно искать процедуры.


Часовой пояс GMT +4, время: 14:28.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.