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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2017, 07:24   #1
karetuu
Новичок
Джуниор
 
Регистрация: 17.05.2017
Сообщений: 2
По умолчанию Процедуры и Функции. Вычислить выражения, определить в ней повторяющаяся часть выражения

Вычислить выражения, определить в ней повторяю-ся часть выражения

в виде Процедуры

(13+sqrt(7)/7+sqrt(13))+(15+sqrt(12)/sqrt(15)+12)+(sqrt(21)+32/sqrt(32)+21)

program J;
var a,b: real;
procedure S(a,b:real; var p:real);
begin
P:=a+sqrt(b)/a+sqrt(b)


S(13,sqrt(7);
S(15

не пойму, что в выходящем писать
karetuu вне форума Ответить с цитированием
Старый 17.05.2017, 10:31   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Нет тут повторяющихся частей. Поизвращавшись, можно за уши притянуть общность первой и последней части, но это совсем уж через %%пу. И лучше бы этот бред не через процедуру, а через функцию.
Код:
  function bred(varnt: byte; arg1,arg2:real) : real ;
  var tmp : real ;
  begin
    if varnt=0 then tmp :=  sqrt(arg1)/arg1 else tmp := arg1/sqrt(arg1) ;
    bred := arg2 + tmp + sqrt(arg2) ;
  end ;
//   Тогда исходное выражение можно было бы переписать в виде:
 bred(0,7,13) + (15+sqrt(12)/sqrt(15)+12) + bred(1,32,21) ;
------------------------------
PS А кто такой - выходящий ? "Гражданин, вы выходите?"

Последний раз редактировалось digitalis; 17.05.2017 в 10:38.
digitalis вне форума Ответить с цитированием
Старый 17.05.2017, 11:06   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
function F4(p1, p2, p3, p4: real): real;
begin
  result:=p1 + p2/p3 +p4;
end;

orvet:=0;
otvet:=otvet + F4(     13 , sqrt( 7),       7 , sqrt(13) );
otvet:=otvet + F4(     15 , sqrt(12), sqrt(15),      12  );
otvet:=otvet + F4(sqrt(21),      32 , sqrt(32),      21  );
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 19.05.2017, 08:48   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
Смех

Тогда уж :
Код:
function F4(p1, p2, p3, p4: real): real;
begin
  result:=p1 + p2/p3 +p4;
end;

orvet:= F4(13, sqrt(7), 7, sqrt(13) ) + F4(15, sqrt(12), sqrt(15),12 ) + F4 (sqrt(21), 32,sqrt(32),21  );
Вот я и говорю: поизвращавшись ...
"Я бы взял частями, но мне нужно сразу!" © О.Бендер
digitalis вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В зависимости от значения некоторого выражения вычислить значения функции y(x), определенной на отрезке [a;b], в узлах разбиения данного отрезка с постоянным шагом h. Маська07 Помощь студентам 3 13.01.2017 12:44
Используя любой из видов циклов, вычислить значения выражения. выражения: Y=ln(x-1)+b Roshen Паскаль, Turbo Pascal, PascalABC.NET 2 18.12.2016 12:18
Вычислить выражения now2 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 24.04.2014 08:21
Дана строка, арифметические выражения вида A x B. Вычислить значение выражения Un1q Паскаль, Turbo Pascal, PascalABC.NET 4 09.12.2013 14:47
вычислить значение выражения (функции) евгенияФ Помощь студентам 5 09.10.2011 12:45