Форум программистов, компьютерный форум CyberForum.ru

Перевести программы с Pascal на С++ - C++

Восстановить пароль Регистрация
 
S_o_V_A
Сообщений: n/a
04.06.2013, 18:28     Перевести программы с Pascal на С++ #1
Здравствуйте! Я новичок в сфере С++.
Прошу Вас о помощи, в переводе программы на другой язык программирования.

Интерполяционный многочлен Лагранжа

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
program labrab13;
 var
    x, p, S,: real;
    a       : real;
    mass        : array [1..7,1..10] of real;
    i, j        : integer;
    v       : char;
 begin
 cls;
 writeln('Решение задачи интерполирования с помощью многочлена Лагранжа');
    p:=1;
    s:=0;
  writeln;
  write('Введите значение Х, в котором вычисляется функция:');
  readln(x);
     for i:=1 to 6 do
     begin
     write('Введите значення аргумента исходной функции X  [',i,']:');readln(mass[i,1]);
      end;
     writeln;
     for i:=1 to 6 do
      begin
      write('Введите значення  исходной функции  Y[',i,']:');readln(mass[i,10]);
      end;
  writeln;
  writeln('Нажмите 1, если неравномерные');
  writeln('Нажмите 2, если равномерные');
  readln(v);
  for i:=1 to 6 do
    if v='2' then
      begin
      { t-i }
         t:=(x-mass[1,1])/(mass[2,1]-mass[1,1]);
        for i:=1 to 6 do
         mass[i,3]:=t-(i-1);
         { P5+1 }
         for i:=1 to 6 do
          p:=p*mass[i,3];
          { Ci }
         for i:=1 to 6 do
          begin
           mass[i,4]:=1;
          for j:=1 to i-1 do mass[i,4]:=mass[i,4]*j;{ i! }
           for j:=1 to 6-i do
           mass[i,4]:=mass[i,4]*j;
     if int((6-i)/2)=(6-i)/2 then a:=1 else a:=-1;
          mass[i,4]:=mass[i,4]* a;
           end;
                       for i:=1 to 6 do
          begin
           mass[i,6]:=mass[i,10]/(mass[i,3]* mass[i,4]);
          end;
                           for i:=1 to 6 do
              s:=s+mass[i,6];
           end
                  else
           begin
                    for i:=2 to 7 do
              mass[i-1,i]:=x-mass[i-1,1];
            writeln;
                        for i:=1 to 5 do
             for j:=i+2 to 7 do
              begin
               mass[i,j]:=mass[i,1]-mass[j-1,1];
               mass[j-1,i+1]:=abs(mass[i,j]);
              end;
                       for i:=1 to 6 do
               mass[i,8]:=1;
            for i:=1 to 6 do
             for j:=2 to 7 do
               mass[i,8]:=mass[i,8]*mass[i,j];
                    for i:=1 to 6 do
               mass[i,9]:=1;
            for i:=1 to 6 do
               mass[i,9]:=mass[i,10]/mass[i,8];
                    for i:=2 to 7 do
              p:=p*mass[i-1,i];
                      for i:=1 to 6 do
              s:=s+mass[i,9];
                   readln;
           end;
      writeln;
 writeln('Результаты вычисления функции в заданной точке');
 writeln;
      writeln('Y(',x,' )=',s*p:10:4);
 end.

Интерполяционные многочлены Ньютона

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
program labrab14;
 var
    mass            : array [1..15,1..5] of real;
    q, x1, x2, x3, x4, f1, f2, f3, f4   : real;
    i, j, k         : integer;
    a           : real;
begin
cls;
writeln('Решение задачи интерполирования с помощью многочленов Ньютона');
 writeln;
 write('Введите значение Х1, в котором вычисляется функция:');
        readln(x1);
 write('Введите значение Х2, в котором вычисляется функция:');
        readln(x2);
 write('Введите значение Х3, в котором вычисляется функция:');
        readln(x3);
 write('Введите значение Х4, в котором вычисляется функция:');
        readln(x4);
 writeln;
  writeln('После окончания ввода значений аргумента Х необходимо ввести  0');
   i:=0;
  repeat
    i:=i+1;
   write('Введіть X значення [',i,']:');readln(mass[i,1]);
  until mass[i,1]=0;
  writeln;
  k:=i-1;
  for i:=1 to k do
   begin
    write('Введіть значення Y[',i,']:');readln(mass[i,2]);
   end;
 for i:=1 to k-1 do  mass[i,3]:=mass[i+1,2]-mass[i,2];{ 1 }
 for i:=1 to k-2 do  mass[i,4]:=mass[i+1,3]-mass[i,3];{ 2 }
 for i:=1 to k-3 do  mass[i,5]:=mass[i+1,4]-mass[i,4];{ 3 }
  for i:=1 to k-1 do   mass[11,3]:=mass[11,3]+mass[i,3];
 for i:=1 to k-2 do   mass[11,4]:=mass[11,4]+mass[i,4];
 for i:=1 to k-3 do   mass[11,5]:=mass[11,5]+mass[i,5];
 mass[12,2]:=mass[11,3];
 mass[12,3]:=mass[11,4];
 mass[12,4]:=mass[11,5];
 writeln;
 writeln('Результаты вычисления функции в заданных точках');
 writeln;
 writeln('Интерполирвание вперед и экстраполирование назад ');
 writeln;
 a:=abs(x1-mass[1,1]);
 j:=1;
 for i:=2 to k do
  if (abs(x1-mass[i,1])<a)
     then
      begin
       a:=abs(x1-mass[i,1]);
       j:=i;
      end;
 q:=(x1-mass[j,1])/abs(mass[1,1]-mass[2,1]);
 f1:= mass[j,2]+q*mass[j,3]+(q*(q-1)/2)*mass[j,4]+q*(q-1)*(q-2)/6*mass[j,5];
 writeln('Y(',x1,' )=',f1:10:4);
 a:=abs(x3-mass[1,1]);
 j:=1;
 for i:=2 to k do
  if (abs(x3-mass[i,1])<a)
     then
      begin
       a:=abs(x3-mass[i,1]);
       j:=i;
      end;
 q:=(x3-mass[j,1])/abs(mass[1,1]-mass[2,1]);
 f3:= mass[j,2]+q*mass[j,3]+(q*(q-1)/2)*mass[j,4]+ q*(q-1)*(q-2)/6*mass[j,5];
 writeln('Y(',x3,' )=', f3:10:4);
 writeln;
 writeln('Интерполирвание назад и экстраполирование вперед');
 writeln;
 a:=abs(x2-mass[1,1]);
 j:=1;
 for i:=2 to k do
  if (abs(x2-mass[i,1])<a)
     then
      begin
       a:=abs(x2-mass[i,1]);
       j:=i;
      end;
 q:=(x2-mass[j,1])/abs(mass[1,1]-mass[2,1]);
 f2:= mass[j,2]+q*mass[j-1,3]+ q*(q+1)/2*mass[j-2,4]+q*(q+1)*(q+2)/6*mass[j-3,5];
 writeln('Y(',x2,' )=', f2:10:4);
 
 a:=abs(x4-mass[1,1]);
 j:=1;
 for i:=2 to k do
  if (abs(x4-mass[i,1])<a)
     then
      begin
       a:=abs(x4-mass[i,1]);
       j:=i;
      end;
 q:=(x4-mass[j,1])/abs(mass[1,1]-mass[2,1]);
 f4:= mass[j,2]+ q*mass[j-1,3]+q*(q+1)/2* mass[j-2,4]+q*(q+1)*(q+2)/6*mass[j-3,5];
 writeln('Y(',x4,' )=',f4:10:4);
end.
Добавлено через 2 часа 19 минут
Актуально!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2013, 18:28     Перевести программы с Pascal на С++
Посмотрите здесь:

Перевести из Pascal на С++ C++
Нужно перевести программы из Pascal в C C++
Перевести на C++ из Pascal C++
C++ Перевести из PASCAL в С++
C++ Перевести с Pascal на C++
C++ Перевести с pascal в C++
Перевести с Pascal на C++ C++
перевести с pascal на С++ C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 12:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru