Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 13.03.2021, 11:50   #1 (permalink)
Rixoz
Новичок
 
Регистрация: 13.03.2021
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Перевод из Паскаля на С++

Помогите пожалуйста с переводом на C++

Задача для понимания программы.

Для х изменяющегося от a до b с шагом (b-a)/k, где
(k=10), вычислить функцию f(x), используя ее разложение в
степенной ряд в двух случаях:
а) для заданного n;
б) для заданной точности ε (ε=0.0001).
Для сравнения найти точное значение функции.
Вариант задания указан на фото
| Функция | Диапазон изменения аргумента | n | Сумма |

Указания

1. Алгоритм решения задачи сводится к трем циклам, причем два из них вложены в третий. Внутренние циклы суммируют слагаемые при фиксированном параметре x, один (арифметический для заданного n), другой (итерационный для за-
данной точности ε. При организации этих циклов следует обратить внимание на правильный выбор формулы для вычисления элемента ряда an и правильное присвоение начальных значений переменным цикла. Внешний цикл организует изменение параметра х.
2. Результаты расчетов отпечатать с следующем виде:
Вычисление функции
X=...... SN=...... SE=..... Y=......
X=...... SN=...... SE=..... Y=......
..........
X=...... SN=...... SE=..... Y=......
Здесь X- значение параметра; SN- значение суммы для за-
данного n; SE- значение суммы для заданной точности; Y-
точное значение функции.
Код:
// Главный цикл
procedure TForm1.FormClick(Sender: TObject);
var x,y,s,s2:Extended; i,NN: integer ;

// Точное значение
function YY (x:Extended): Extended ;
var tmp,s: Extended ;
begin
  tmp := x/2 ;
  s := (tmp *(tmp+1) +1.0) * Exp (tmp) ;
  Result := s
end ;

//  Для заданного n
function summa (x:Extended;n:integer): Extended ;
var i,nf: integer; tmp,tmp1,s: Extended ;
begin
  s := 1.0 ;
  tmp := x/2 ;
  tmp1 := 1.0 ;
  nf := 1 ;
  for i := 1 to n do
    begin
      nf := nf * i ;
      tmp1 := tmp1*tmp ;
      s := s + (i*i+1) * tmp1 / nf ;
    end ;
  summa := s;
end ;

//  Для заданного epsylon
function summa2 (x,eps:Extended;var nitt:integer): Extended ;
var i,nf: integer; eps1,tmp,tmp1,s,slast: Extended ;
begin
  nitt := 0 ;
  eps1 := 1 ;
  slast := 1 ;
  s := 1.0 ;
  tmp := x/2 ;
  tmp1 := 1.0 ;
  nf := 1 ;
  i := 1 ;
  while (Abs(eps1)>eps)do
    begin
      Inc (nitt) ;
      nf := nf * i ;
      tmp1 := tmp1*tmp ;
      s := s + (i*i+1) * tmp1 / nf ;
      eps1 := s - slast ;
      slast := s ;
      Inc (i) ;
    end ;
  summa2 := s;
end ;

begin
   for i := 1 to 10 do
   begin
     x := i/10.0 ;
     y := YY (x) ;
     s := summa (x,10) ;
     s2 := summa2 (x,0.00001,NN) ;
     Memo1.Lines.Add(Format('%3.1f  %9.6f %9.6f %9.6f %6d',[x,y,s,s2,NN]))
   end ;
end;
Rixoz вне форума   Ответить с цитированием

Старый 13.03.2021, 11:50
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Аналогичные темы в которых возможно есть ответ который вас интересует

Перевод с Паскаля на СИ
Перевести цикл с Паскаля на Си
Перевести с Паскаля на Си
Переход из Паскаля в Луа
Из Паскаля в Делфи.

Старый 12.04.2021, 19:16   #2 (permalink)
Тибул
Banned
 
Регистрация: 12.04.2021
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Я научу тебя как нужно добывать требуемое.
Собирай программу, дизассемблируй программой Ильфака - ИДой
нажми f5 получишь результат.
Тибул вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Метки
c++, паскаль

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 04:51.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.