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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2012, 03:10   #1
Rokko195
 
Аватар для Rokko195
 
Регистрация: 04.10.2012
Сообщений: 8
По умолчанию Вычислить натуральный логарифм Паскаль

Написал код все работает только при ввода отрицательного числа она должна показать надпись об ошибке . и потом завершать работу. чета я напутал немогу разобраться.


Код:
 Pascal

Uses 
   crt;
   
   var a,b:integer;
   rez:real;

   
   function c(x,n:integer):real;
   begin
   
      c:=exp(n*ln(x));
      end;
      begin
      b:=(1);


     while   b>=1  do    repeat

     write('Введите число :');
      readln(a);
      write('Введите степень:');
        readln(b);
        if b<=1 then
       writeln('Введено  отрицательное число программа завершает работу!');
    rez:=c(a,b);

     writeln('Результат:',rez:10:0);


   until b<=1


end.

Последний раз редактировалось Stilet; 16.11.2012 в 16:17.
Rokko195 вне форума Ответить с цитированием
Старый 16.11.2012, 06:23   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
Uses crt;
var a,b:integer;
rez:real;

function c(x,n:integer):real;
begin
c:=exp(n*ln(x));
end;
begin

write('Введите число :');
readln(a);
write('Введите степень:');
readln(b);
if a<0.0001 then
writeln('Введено отрицательное число программа завершает работу!')
else
begin
rez:=c(a,b);
writeln('Результат:',rez:10:0);
end;

end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 21.11.2012, 06:22   #3
Rokko195
 
Аватар для Rokko195
 
Регистрация: 04.10.2012
Сообщений: 8
По умолчанию

Все верно спасибо. Но не то. Простите меня я не указал правила работы программы. А вес соль в том что программа должна работать с использованием бесконечного цикла т.е закончить работу только при введением отрицательного числа. При чем еще сообщить что введено отрицательное значение. Хожу вокруг с бубном колдую. Цикл выполняется надпись нет.Надпись есть цикл не работает.

Вот что надыбал

Код:
program логарифм;

{$mode objfpc}{$H+}

uses
   crt;
   
   var a,b:integer;
   rez:real;

   
   function c(x,n:integer):real;
   begin
   
      c:=exp(n*ln(x));
      end;
      begin
      b:=(1);


        repeat

     write('введите число:');
      readln(a);
      write('введите шаг:');
        readln(b);
        if b<-1 then
       writeln('введено отрицательное число программа завершает работу!');
    rez:=c(a,b);

     writeln('шаг:',rez:10:0);


    until b<=-1



end.
Ребята где косяк.Дайте намек.....

Последний раз редактировалось Stilet; 23.11.2012 в 13:13.
Rokko195 вне форума Ответить с цитированием
Старый 23.11.2012, 08:25   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну, во-первых, судя по всему число b - это не "шаг", а степень (в исходном коде было названо верно).

во-вторых, Вы так и не удосужились привести полностью исходное задание (не пересказать своими словами, а именно в формулировках, как оно было задано.

в-третьих, очень сомневаясь, в том, что же Вам надо получить, могу предложить попробовать такой код:
Код:
function c(x, n: integer): real;
begin
  c := exp(n * ln(x));
end;

var a,b:integer;
 rez:real;
begin

  repeat
    write('введите число:');
    readln(a);
    write('введите шаг:');
    readln(b);
    if b < 0  then
      writeln('введено отрицательное число программа завершает работу!')
    else begin
      if a>0 then
         rez := c(a, b)
      else
         rez:=0;
      writeln('результат вычисления:', rez: 10: 0);
    end;
  until b < 0;

  WriteLn('Программа завершила работу. Bye!');
  Readln
end.
может для Вас будет откровением, но при числе a меньше/равно нуля, вычисление не будет работать - нельзя получить логарифм отрицательного числа!

Последний раз редактировалось Serge_Bliznykov; 23.11.2012 в 08:30.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
натуральный логарифм salwator C++ Builder 3 26.10.2011 20:33
Натуральный ряд чисел Yunut Общие вопросы C/C++ 0 07.12.2010 21:16
Натуральный логарифм Granus Паскаль, Turbo Pascal, PascalABC.NET 6 22.05.2009 20:56
Логарифм натуральный C++ Builder 6 werser Помощь студентам 3 19.05.2009 18:36
Свой натуральный логарифм RIO Помощь студентам 8 12.02.2008 01:59