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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2010, 20:00   #1
stud3nt
Пользователь
 
Регистрация: 26.06.2010
Сообщений: 17
По умолчанию Модули

Провести вычисления. Необходимые для вычислений функции (факториал, возведение в степень и т.д.) описать в модуле.

На 5 задачу есть модуль:
Код:
Unit MyUnit3;
 interface
 const n=10;
 const m=10;
 function maxx(v:array of integer):integer;
 function minn(v:array of integer):integer;
 implementation
 function maxx(v:array of integer):integer;
Var i,max:integer;
begin
 max:=v[low(v)];
  for i:=low(v) to high(v)  do
  if v[i]>max then max:=v[i];
 maxx:=max;
end;
 function minn(v:array of integer):integer;
Var i,min:integer;
begin
 min:=v[low(v)];
  for i:=low(v) to high(v) do
  if v[i]<min then min:=v[i];
 minn:=min;
 end;
end.
нужна еще программа.. не понимаю смысл чего из модуля нужно кидать в программу(
мне нужно получить в итоге файл *.exe
Изображения
Тип файла: jpg _________1.jpg (132.3 Кб, 141 просмотров)

Последний раз редактировалось stud3nt; 02.07.2010 в 22:46.
stud3nt вне форума Ответить с цитированием
Старый 02.07.2010, 20:10   #2
MadReason
Ищу работу
Форумчанин
 
Аватар для MadReason
 
Регистрация: 16.02.2007
Сообщений: 269
По умолчанию

подключаешь в основную программу модуль
Код:
Uses MyUnit3;
и просто используешь его функции макс и мин.
Пишу на Delphi все что угодно, недорого, красиво, с комментариями
###icq 107335###
MadReason вне форума Ответить с цитированием
Старый 02.07.2010, 22:48   #3
stud3nt
Пользователь
 
Регистрация: 26.06.2010
Сообщений: 17
По умолчанию

Цитата:
Сообщение от MadReason Посмотреть сообщение
подключаешь в основную программу модуль
Код:
Uses MyUnit3;
и просто используешь его функции макс и мин.
так, тоесть я создаю новый проект.
и пишу там:
Код:
Uses MyUnit3;
Var i,max:integer;
begin
   max:=v[low(v)];
    for i:=low(v) to high(v)  do
    if v[i]>max then max:=v[i];
   maxx:=max;
end;
   function minn(v:array of integer):integer;
Var i,min:integer;
begin
   min:=v[low(v)];
    for i:=low(v) to high(v) do
    if v[i]<min then min:=v[i];
   minn:=min;
  end;
end.
так чтоль?
stud3nt вне форума Ответить с цитированием
Старый 03.07.2010, 00:46   #4
MadReason
Ищу работу
Форумчанин
 
Аватар для MadReason
 
Регистрация: 16.02.2007
Сообщений: 269
По умолчанию

нет, у тебя те подпрограммы уже реализованы, когда их нужно применить в основной программе,пишешь например

max:=maxx(массив чисел из которых нужно найти макс);

причем этот твой модуль не для 5ой задачи, а для 7ой скорее, но и для 5 можно применить, но "неправильным кодом" это будет
Пишу на Delphi все что угодно, недорого, красиво, с комментариями
###icq 107335###
MadReason вне форума Ответить с цитированием
Старый 03.07.2010, 01:19   #5
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

нну вот как вариант, основываясь на прошлых решениях твоей задачи номер 7 (исключая решения с с динамическими структурами):

Модуль с функциями и процедурами (MASS.PAS):
Код:
Unit mass;
interface
  type mas = array [1..20] of real;
  procedure FillMas (var x : mas; xa : integer);
  function MaxinMas (x : mas; xa : integer) : real;
Implementation 

{Procedura zapolneniya massiva}
procedure FillMas (var x : mas; xa : integer);
var xi : integer;
begin
  for xi := 1 to xa do
  begin
    x[xi] :=(random(101));
    x[xi] := (x[xi] - 50)/10;
    write(x[xi]:4:1, '  ');
  end;
  writeln;
end;

{funkciya poiska maksimal'nogo elementa v massive}
function MaxinMas (x : mas; xa : integer) : real;
var xi : integer;
    max : real;
begin
  max := x[1];
  for xi := 2 to xa do
    if x[xi] > max then
      max := x[xi];
  MaxinMas := max;
end;

end.
Вот код программы, использующий функции и процедуры модуля MASS.PAS:
Код:
program MyProg7;
uses crt, mass; {podklyu4enie moduley}
var x,y,z: mas;
    xmax, ymax, zmax, t : real;
    nx, ny, nz: integer;


begin
  clrscr;
  randomize;
  write (' Vvedite koli4estvo elementov x: ');
  readln (nx);
  write (' Vvedite koli4estvo elementov y: ');
  readln (ny);
  write (' Vvedite koli4estvo elementov z: ');
  readln (nz);
  fillMas(x, nx);
  fillMas(y, ny);
  fillMas(z, nz);
  xmax := maxinmas(x, nx);
  ymax := maxinmas(y, ny);
  zmax := maxinmas(z, nz);

  if (xmax <= 0) then
    t := 1 + sqr(xmax)
  else
    t := (ymax + zmax)/2;

  write('Zna4enie t = ', t:4:3);
  readln;
end.
Предварительно скомпилируй модуль MASS.PAS и получишь файл MASS.TPU, затем компилируй саму программу. Должно все работать. Для чего вообще нужны модули? Мы в них описываем типы, константы, переменные, процедуры и функции, которые потом можем использовать в своих программах. Модули можно использовать в дугих программах своих, а еще это упрощает и нахождение ошибок восприятие общей структуры программного кода

Цитата:
так чтоль?
Введи в google моудли паскаль - там написано - как
Изо всей благодати
В руках крепко сжатых
Я донесу только капли

Последний раз редактировалось Roof; 03.07.2010 в 01:27.
Roof вне форума Ответить с цитированием
Старый 03.07.2010, 01:28   #6
stud3nt
Пользователь
 
Регистрация: 26.06.2010
Сообщений: 17
По умолчанию

биг спасибо вам! Все работает!
Осталось с 5 задачей как то разобраться..

вот рабочий текст из темы "процедуры и функции":
Код:
uses crt;
Var a,b:real;
    n,i,x,s,q,v,k,z : integer;
 function min(c,d:real) : real;
begin
    if c<d then min:=c else min:=d;
end;
 function max(c,d:real):real;
begin
 if c<d then max:=d else max:=c;
end;
 function s1(x:real;n:integer):real;
Var i:integer;s:real;
begin
   s:=1;
 for i:=1 to n do
   s:=s*x;
 if n<0 then s:=1/s;
   s1:=s;
end;
begin clrscr;
   writeln('BBeguTe a,b');
   readln(a,b);
   writeln('BBeguTe n');
   readln(n);
   writeln('Rezultat = ',min(a,b*n)+max(a*n-b,a+b)-min(s1((a-b),n),s1((a+b),n))+max(s1(a,n-1),s1(b,n+1)):4:1);
   readln;
end.

Последний раз редактировалось stud3nt; 03.07.2010 в 01:39.
stud3nt вне форума Ответить с цитированием
Старый 03.07.2010, 01:41   #7
stud3nt
Пользователь
 
Регистрация: 26.06.2010
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Roof Посмотреть сообщение
Для чего вообще нужны модули? Мы в них описываем типы, константы, переменные, процедуры и функции, которые потом можем использовать в своих программах. Модули можно использовать в дугих программах своих, а еще это упрощает и нахождение ошибок восприятие общей структуры программного кода
не ну я как бы примерно понял что к чему, но не разбираюсь что где что..
с логикой у меня плохо...
stud3nt вне форума Ответить с цитированием
Старый 03.07.2010, 02:03   #8
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

Сам модуль (SIMPLE.PAS):
Код:
Unit simple;
interface
  function min(c,d:real) : real;
  function max(c,d:real):real;
  function s1(x:real;n:integer):real;
Implementation 

function min(c,d:real) : real;
begin
  if c<d then min:=c else min:=d;
end;

function max(c,d:real):real;
begin
  if c<d then max:=d else max:=c;
end;

function s1(x:real;n:integer):real;
Var i:integer;s:real;
begin
   s:=1;
 for i:=1 to n do
   s:=s*x;
 if n<0 then s:=1/s;
   s1:=s;
end;
end.
Код программы:
Код:
program MyProgram5;
uses crt, simple;
Var a,b:real;
    n,i,x,s,q,v,k,z : integer;
begin clrscr;
   writeln('BBeguTe a,b');
   readln(a,b);
   writeln('BBeguTe n');
   readln(n);
   writeln('Rezultat = ',min(a,b*n)+max(a*n-b,a+b)-min(s1((a-b),n),s1((a+b),n))+max(s1(a,n-1),s1(b,n+1)):4:1);
   readln;
end.
Правильность расчета значений не проверял.

Цитата:
не ну я как бы примерно понял что к чему, но не разбираюсь что где что..
с логикой у меня плохо...
Очень сомневаюсь, что с логикой проблемы. Дело в желании достичь, на мой взгляд.
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 03.07.2010, 02:10   #9
stud3nt
Пользователь
 
Регистрация: 26.06.2010
Сообщений: 17
По умолчанию

все супер! Коли в 5 задаче в процедурах и функциях все хорошо считало, тут тоже правильно. Препод покрайней мере не придерался)
желание достичь то бывает, но когда задают по пачке задач, и когда по этой пачке в каждый последующий день сдавать надо.. тут уж..извините.. не для моего слабого мозга в области паскаля)
stud3nt вне форума Ответить с цитированием
Старый 03.07.2010, 02:15   #10
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

Наздоровье
Твои решения - твоя Жизнь
Удачи
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
модули Largo Помощь студентам 0 03.01.2010 11:54
Модули pasha92 Помощь студентам 0 25.12.2009 20:10
модули felmor Паскаль, Turbo Pascal, PascalABC.NET 2 18.05.2009 01:17
Модули Claster Помощь студентам 1 16.10.2008 20:26