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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2015, 23:07   #1
mannn
Пользователь
 
Регистрация: 16.11.2015
Сообщений: 15
По умолчанию помогите с Задачкой

Вычислить d как среднее арифмитическое чисел a,b,c.
Если d<100, напечатать''d<100''
Если d=100 напечатать a, b, c
Если d>100, вычислить значение функции Y=10*exp(-a)*sqrt(x+1)*sin(3.14*x), где x изменяется в интервале от -4 до 4 с шагом дельта x=0.2. Отпечатать только положительные значения функции y. Значения a,b,c вводятся пользователем

Вот, всё ноормально выводит, если ср.арифметическое равно 100 или меньше, но если больше то выводит все неправильно, нужно сделать без функции

Код:
program abc;
var a, b, c, d, x: real;
function f(a1, x1: real): real;
begin
f := 10 * exp(-a1) * sqrt(x + 1) * sin(3.14 * x);
end;
begin
writeln('начальные данные');
writeln('a=');
readln(a);
writeln('b=');
readln(b);
writeln('c=');
readln(c);
d := a / 3 + b / 3 + c / 3;
if d < 100 then writeln('d<100') else
if d = 100 then writeln('a=',a: 2: 0,'b=', b: 2: 0,'c=', c: 2: 0) else
begin
x:= -4;
while x <= 4 do begin
if f(a, x) > 0 then writeln(f(a, x));
x:=x+0.2;
end;
end;
readln;
end.

Последний раз редактировалось Stilet; 13.12.2015 в 13:50.
mannn вне форума Ответить с цитированием
Старый 12.12.2015, 23:56   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

функцию надо исправить, вместо X нужно использовать переданное значение X1:
Код:
function f(a1, x1: real): real;
begin
  f := 10 * exp(-a1) * sqrt(x1 + 1) * sin(3.14 * x1);
end;
если надо без функции, то это тоже несложно:
Код:
var a, b, c, d, x, y: real;
....
begin
   x:= -4;
   while x <= 4 do begin
       if(x+1)>=0 then  begin
          y:= 10 * exp(-a) * sqrt(x + 1) * sin(3.14 * x);
          if y > 0 then writeln('x=',x:4:1,' y=',y:1:5);
       end;
       x:=x+0.2;
   end;
end;
....

Последний раз редактировалось Serge_Bliznykov; 13.12.2015 в 00:02.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.12.2015, 00:01   #3
mannn
Пользователь
 
Регистрация: 16.11.2015
Сообщений: 15
По умолчанию

осталось тоже самое, но теперь если среднее арифметическое больше 100, он вообще ничего не выводит
mannn вне форума Ответить с цитированием
Старый 13.12.2015, 00:24   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

я не знаю, какие Вы исходные числа вводите.

попробуйте изучить результаты на примере такого кода:
Код:
program abc;

var
  a, b, c, d, x, y: real;

begin
  writeln('начальные данные');
  a := 5;
  b := 10;
  c := 500;
  d := (a + b + c) / 3;
  if d < 100 then writeln('d<100') else
  if d = 100 then writeln('a=', a: 2: 0, 'b=', b: 2: 0, 'c=', c: 2: 0) else
  begin
    x := -4;
    while x <= 4.001 do 
    begin
      if(x + 1) >= 0 then  begin
        y := 10 * exp(-a) * sqrt(x + 1) * sin(3.14 * x);
          (*if y > 0 then*)
        writeln('x=', x:4:1, ' y=', y:1:5);
      end
      else
        WriteLn('x=', x:4:1, ' y= undefine');
      x := x + 0.2;
    end;
  end;
  readln;
end.
что этот код у меня выводит показать?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.12.2015, 11:53   #5
mannn
Пользователь
 
Регистрация: 16.11.2015
Сообщений: 15
По умолчанию

Вот теперь всё хорошо, спасибо)
mannn вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с задачкой (C/C++) AHTu6uoTuK Помощь студентам 1 12.12.2015 23:44
помогите с задачкой plasteed Помощь студентам 9 17.11.2013 18:49
Помогите с задачкой =( Kod Паскаль, Turbo Pascal, PascalABC.NET 4 03.08.2010 19:37
помогите с задачкой DIzza Помощь студентам 3 09.02.2009 19:45
Помогите с задачкой Sour Помощь студентам 9 08.05.2007 20:56