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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2011, 12:47   #1
a_klimov
 
Регистрация: 21.11.2011
Сообщений: 3
Восклицание Функции и процедуры на Delphi

Смысл в том,что нужно составить программу:
На входе мы получаем значение(начальное значение точки,шаг,количество шагов и число точек(или можно вместо этого конечное значение вводить)
На выходе получить таблицу вида
Точка Значение функции в этой точке Приближённое значение Погр.
Вот моя программа,но дособирать не могу.Помогите ,пожайлуста

Код:
program Lab;

{$APPTYPE CONSOLE}
uses
  SysUtils;
const
maxsize=50;

type
massiv = array [1..maxsize] of real;

var x,f_p,f,p:massiv;
   a,h,s:real;
       k,i,m,n:integer;
  { TODO -oUser -cConsole Main : Insert code here }
                     //Функции
//Факториал
function factorial (n:integer):integer;
  var f,i:integer;
  begin
    f:=1;
     for i:=1 to n do
       f:=f*i;
       result:=f;
  end;
//Степень
function step (x:real;n:integer):real;
  var i:integer;
  s:real;
  begin
    s:=x;
    for i:=1 to (n-1) do
      s:=s*x;
      result:=s;
  end;
//Экспонента
 function exp_p(x:real;n:integer):real;
  var
  i:integer;
  a,e:real;
  begin
    e:=1;
    a:=1;
    for i:=1  to n  do
      begin
        e:=e+a;
        a:=a*a/i;
      end;
      result:=e;
  end;
//Синус
  function sin_p(x:real;n:integer):real;
  var
   i:integer;
   s,a:real;
   begin
     a:=x;
     s:=x;
     for i:=1  to n do
       begin
        a:=a*(-x*x)/(2*i*(2*i+1));
         s:=s+a;
       end;
       result:=s;
   end;
//Косинус
function cos_p(x:real;n:integer):real;
  var
   i:integer;
   s,a:real;
   begin
     a:=x;
     s:=x;
     for i:=1  to n do
       begin
        a:=a*(-x*x)/(2*i*(2*i-1));
         s:=s+a;
       end;
       result:=s;
   end;
//Логарифм натуральный
function ln_p(x:real;n:integer):real;
var i:integer; c,s:real;
begin
c:=-1; x:=x-1; s:=0;
for i:=1 to n do
begin
c:=c*(-x);
s:=s+c/i;
end;
result:=s;
end;
//Русские символы
function ch_kod(c:char):char;
var n:integer;
begin
n:=ord(c);
if (192<=n)and(n<=239)
then n:=n-64;
if (240<=n) and (n<=255)
then n:=n-16;
result:=chr(n);
end;
//Русские слова
function str_rus(str:string):string;
var n:integer;
begin
n:=length(str);
for i:=1 to n do
str[i]:=ch_kod(str[i]);
result:=str;
end;
                   //Процедуры
// Заполнение экспоненты
   procedure zap_exp(n,m:integer; a,h:real);
   var i : integer;
   begin
   for i:=1 to m do
      x[i+1]:=a+i*h;
        for i:=1 to (m+1) do
           begin
               f[i]:=exp(x[i]);
                 f_p[i]:=exp_p(x[i],n);
                   p[i]:=f[i]-f_p[i];
   end;
end;
//Заполнение логарифма
procedure zap_ln(n,m:integer; a,h:real);
   var i : integer;
      begin
        for i:=1 to m do
          x[i+1]:=a+i*h;
             for i:=1 to (m+1) do
                begin
                   f[i]:=ln(x[i]);
                    f_p[i]:=ln_p(x[i],n);
                      p[i]:=f[i]-f_p[i];
                     end;
                   end;
//Заполнение синуса
procedure zap_sin(n,m:integer; a,h:real);
       var i : integer;
         begin
            for i:=1 to m do
              x[i+1]:=a+i*h;
                 for i:=1 to (m+1) do
                   begin
                     f[i]:=sin(x[i]);
                      f_p[i]:=sin_p(x[i],n);
                        p[i]:=f[i]-f_p[i];
                        end;
                      end;
//Наибольшое в массиве
procedure maxmas(mas:massiv; n:integer);
var max:real;i:integer;
begin
max:=mas[1];
for i:=2 to n do
if max<mas[i] then max:=mas[i] ;
writeln(str_rus('Наибольшая погрешность = '),max:2:6);
end;
   begin
     repeat
           writeln(str_rus('1.Введите начальную точку'));
              writeln(str_rus('2.Введите шаг'));
                writeln(str_rus('3.точность-'));
                  writeln(str_rus('4.количество шагов-'));
                    writeln(str_rus('5.Exp(x)'));
                      writeln(str_rus('6.Sin(x)'));
                        writeln(str_rus('7.Ln(x)'));
                         readln(k);
                           writeln(str_rus(''));
{    case k of
       1:begin
              write(str_rus('A='));
               readln(a);
            end;
       2:begin
            write(str_rus('Шаг='));
            readln(h);
           end;
       3:begin
             write(str_rus('Точность='));
               readln(m);
           end;
       4:begin
              write(str_rus('Количество шагов='));
              readln(n);
           end;
       5:begin
         s:=exp_p(a,n); writeln('Res=',s:2:6);readln;
       end;
       6:begin
         s:=sin_p(a,n); writeln('Res=',s:2:6);readln;
       end;
       7:begin
         s:=ln_p(a,n); writeln('Res=',s:2:6);readln;
    end;}
      s:=exp_p(a,n); writeln('Res=',s:2:6);readln;
     until (false) ;
end.

Код нужно оформлять по правилам тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Модератор.

Последний раз редактировалось Serge_Bliznykov; 21.11.2011 в 14:43.
a_klimov вне форума Ответить с цитированием
Старый 21.11.2011, 12:49   #2
a_klimov
 
Регистрация: 21.11.2011
Сообщений: 3
По умолчанию

Работу меню надо реализовать через case of
и как сделать таблцу я тоже не понимаю
a_klimov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи на процедуры и функции в Delphi brokenhead Помощь студентам 0 09.11.2011 17:15
Лаба на процедуры и функции Delphi Danis_ka Помощь студентам 5 11.06.2011 19:43
Процедуры и функции в Delphi alexchromets Помощь студентам 0 23.12.2010 22:33
Процедуры и функции (Delphi) <Maria> Помощь студентам 2 13.10.2010 19:29
перезагружаемые процедуры и функции в delphi alex9090 Помощь студентам 4 16.11.2007 16:51