Консультация № 187681
19.12.2013, 19:49
142.21 руб.
19.12.2013, 20:06
0 17 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос: https://rfpro.ru/upload/9585

Обсуждение

давно
Посетитель
7438
7205
19.12.2013, 19:59
общий
Паскаль?
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Неизвестный
19.12.2013, 20:04
общий
Ах да))).....забыл сообщить......Паскаль АБС
давно
Посетитель
7438
7205
19.12.2013, 20:07
общий
Уважаемые эксперты! Обратите, пожалуйста, внимание и на этот вопрос...
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Неизвестный
19.12.2013, 20:19
общий
19.12.2013, 20:21
Если потребуется более подробное описание - отвечу.

Исходный код [739 байт]

Код:

const
E = 2.7182818284;
//Математическая константа Е
//http://ru.wikipedia.org/wiki/E_(%D1%87%D0%B8%D1%81%D0%BB%D0%BE)


function f1(const x, a: real):real;
begin
//Если x > 0.5 & a <= 1
f1 := sin(cos((x - a) / (x + a)));
end;

function f2(const x, a: real):real;
begin
//Если x > 0.5 & a > 1
f2 := sqr(x) - power(a, 3) * ln(abs(x));
end;

function f3(const x, a: real):real;
begin
//Если x <= 0.5
f3 := power(E, sqr(2) + x - 7);
end;


function Y(const x, a: real):real;
begin
if ((x > 0.5) and (a <= 1)) then
Y:= f1(x,a);

if ((x > 0.5) and (a > 1)) then
Y:= f1(x,a);

if (x <= 0.5)then
Y:= f1(x,a);
end;

var
x, a: real;
begin
readln(x, a);
writeln( Y(x,a) );
end.
Неизвестный
19.12.2013, 20:22
общий
Не могу открыть исходник........не могли бы повторить).....а по поводу подробного описания....конечно!)...буду очень признателен)
Неизвестный
19.12.2013, 20:28
общий
открыл исходник...........но опять ошибка в 7 строке 18 столбце(
Неизвестный
19.12.2013, 20:31
общий
Переписал, добавил комментарии.

Исходный код [1.1 кб]

Код:

const
E = 2.7182818284;
//Математическая константа Е
//http://ru.wikipedia.org/wiki/E_(%D1%87%D0%B8%D1%81%D0%BB%D0%BE)


function f1(const x, a: real):real;
begin
//Если x > 0.5 & a <= 1
//sin(x) - синус от X
//cos(x) - косинус от X
f1 := sin(cos((x - a) / (x + a)));
end;

function f2(const x, a: real):real;
begin
//Если x > 0.5 & a > 1
//sqr(x) - квадрат X
//power(x, y) - Возвести X в степень y
//ln(x) - натуральный логорифм числа Х
//abs(x) - модуль Х
f2 := sqr(x) - power(a, 3) * ln(abs(x));
end;

function f3(const x, a: real):real;
begin
//Если x <= 0.5
//power(x, y) - Возвести X в степень y
f3 := power(E, sqr(x) + x - 7);
end;


function Y(const x, a: real):real;
begin
//Проверяем условия ((x > 0.5) and (a <= 1))
if ((x > 0.5) and (a <= 1)) then
Y:= f1(x,a);

//Проверяем условия ((x > 0.5) and (a > 1))
if ((x > 0.5) and (a > 1)) then
Y:= f1(x,a);

//Проверяем условия (x <= 0.5)
if (x <= 0.5) then
Y:= f1(x,a);

end;

var
x, a: real;
begin
readln(x, a);
writeln( Y(x,a) );
end.
Неизвестный
19.12.2013, 20:37
общий
Ошибка осталась(.....я не знаю что с ней делать........проверьте пожалуйста
Неизвестный
19.12.2013, 20:40
общий
Исправил. Без лишних функций.

Исходный код.[797 байт]


Код:

const
E = 2.7182818284;
//Математическая константа Е
//http://ru.wikipedia.org/wiki/E_(%D1%87%D0%B8%D1%81%D0%BB%D0%BE)

function Y(const x, a: real): real;
begin
//sqr(x) - квадрат X
//power(x, y) - Возвести X в степень y
//ln(x) - натуральный логорифм числа Х
//abs(x) - модуль Х
//sin(x) - синус от X
//cos(x) - косинус от X

//Проверяем условия ((x > 0.5) and (a <= 1))
if ((x > 0.5) and (a <= 1)) then
Y := sin(cos((x - a) / (x + a)));

//Проверяем условия ((x > 0.5) and (a > 1))
if ((x > 0.5) and (a > 1)) then
Y := sqr(x) - power(a, 3) * ln(abs(x));

//Проверяем условия (x <= 0.5)
if (x <= 0.5) then
Y := power(E, sqr(x) + x - 7);

end;

var
x, a: real;
begin
readln(x, a);
writeln( Y(x, a) );
end.
Неизвестный
19.12.2013, 20:45
общий
Простите!)...Я не пытаюсь быть занудным)))))....но мне всё равно выдаёт ошибку в 6 строке 17 ст
Неизвестный
19.12.2013, 20:48
общий
Попробуйте убрать 'const' в 6 строке.

Код:
function Y(const x, a: real): real;

Заменить на:
Код:
function Y(x, a: real): real;


Проверял на PascalABC.NET, все работает.
Неизвестный
19.12.2013, 20:53
общий
.........на самом деле я совсем недавно узнал о вашем сайте))) очень доволен вашей работой......Большое спасибо.....думаю я ещё ни раз обращусь)
Неизвестный
19.12.2013, 20:54
общий
Да).....получилось!))) Спасибо!
давно
Старший Модератор
31795
6196
19.12.2013, 21:03
общий


одно замечание:
Код:
if x<=0.5 then F1
else if a<=1 then F2
else F3


если первое условие сработало, проверяется ещё и остальные - зачем?
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Неизвестный
19.12.2013, 21:13
общий
19.12.2013, 21:15
Адресаты:
Тогда вот так.

Код:

const
E = 2.7182818284;//Математическая константа Е

function Y(x, a: real):real;
begin
if (x <= 0.5) then
Y := power(E, sqr(x) + x - 7)
else
if (a <= 1) then
Y := sin(cos((x - a) / (x + a)))
else
Y := sqr(x) - power(a, 3) * ln(x);
end;

var
x, a: real;
begin
readln(x, a);
writeln( Y(x, a) );
end.
давно
Старший Модератор
31795
6196
19.12.2013, 21:24
общий


Вы отвечайте! А то Micren (Профессор) мигом всё наклацает.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
19.12.2013, 22:15
общий
это ответ
Здравствуйте, Гусевский Кирилл Георгиевич!

Код:
const
E = 2.7182818284;//Математическая константа Е

function Y(x, a: real):real;
begin
if (x <= 0.5) then
Y := power(E, sqr(x) + x - 7)
else
if (a <= 1) then
Y := sin(cos((x - a) / (x + a)))
else
Y := sqr(x) - power(a, 3) * ln(x);
end;

var
x, a: real;
begin
readln(x, a);
writeln( Y(x, a) );
end.


Отвечаю за эксперта Михаил Б.С. 1-й класс
ps:в данный момент, эксперт не может ответить по техническим причинам
Удачи!
5
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа