• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите объединить три программы в модули, Pascal

  • Автор темы Автор темы ALSe61
  • Дата начала Дата начала

ALSe61

Ученик
Регистрация
28 Май 2012
Сообщения
2
Реакции
0
Баллы
0
Помогите объединить три программы в модули, 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.
 
Эх, давно ни на Pascal'e, ни в Delphi не писал, когда- то делал модули. Ничего ложного в нем нет. Тут Ссылка удалена Глава 7. Модули Borland Pascal[/url] вполне все понятно написано.
Удачи!
 
Пробовать то я пробовал, но не получается. Некоторые процедуры почему-то не определяются.
 
Чтобы процедур виделись из других модулей или из главной программы, надо, чтобы они были объявлены в interficeной части. У Паскаля такой подход - внутри одного модуля процедуры объявлять не нужно (за исключением одного случая) ну, а вот если нужно, чтобы эти процедуры могли вызываться извне этого модуля, то их надо обязательно объявлять в интерфейсной части.
Все сделано для экономии кода. Нет объявленной процедуры - не будет ее и в заголовке скомпилированного кода.
P.S. На самом деле Паскаль очень красивый язык.
 
Да и еще, в основной программе ну и в самих модулях (если из них идет вызов други процедур) необходимо перечислять в директиве USES те модули в которых нужно искать процедуры.
 
Назад
Сверху