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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поиск кратчайшего пути в матрице через рекурсию http://www.cyberforum.ru/cpp-beginners/thread890694.html
Есть задача: найти кратчайший путь в матрице,представляющий из себя сумму значений ее элементов. Матрица размера 10х10. Я реализовал сам поиск следующим образом: bool IsAvailable(int x,int y,int size) { if((x >= 0) && (x < size) && (y >= 0) && (y < size)) return true; return false; }
C++ Работа со структурами Только изучаю С++ (раньше довольно неплохо программил на Делфи) и столкнулся с вопросом. Допустим есть две структуры: struct ABC_CONT_STATE { BYTE Symb, Fr; struct ABC_CONT* Successor; } _PACK_ATTR; http://www.cyberforum.ru/cpp-beginners/thread890685.html
C++ В массиве, сформированном случайным образом, найти среднее арифметическое модулей всех ненулевых элементов
в общем:запара с программированием в университете.удалились с сетевого диска все программы.восстанавливать времени нет.Помогите пожалуйста. вот задание: 5. В массиве y(20), сформированном случайным образом, найти среднее арифметическое модулей всех ненулевых элементов
C++ В матрице А[N, N], сформированной случайным образом, обнулить все элементы, превосходящие среднее арифметическое элементов матрицы
в общем:запара с программированием в университете.удалились с сетевого диска все программы.восстанавливать времени нет.Помогите пожалуйста. вот задание: 16. В матрице А, сформированной случайным образом, обнулить все элементы, превосходящие среднее арифметическое элементов матрицы.(Матрицы)
C++ Странный цикл for С++ http://www.cyberforum.ru/cpp-beginners/thread890667.html
Добрый день, ув. форумчане! Перехожу сейчас с Делфи на С++ и разбираюсь в сложнястях синтаксиса С++. Непонятно, что означает такая конструкция цикла: for ( ; ;) Я подумал, что это бесконечный цикл, но прав ли я? Заранее спасибо всем за ответ.
C++ Задача "протри" числа Даны три вещественных числа. Возвести в квадрат те из них, значения которых неотрицательны. if x1>=0 {x1=x1*x1} if x2>=0 {x2=x2*x2} if x3>=0 {x3=x3*x3} Правильно ли я сделал? подробнее

Показать сообщение отдельно
S_o_V_A
Сообщений: n/a

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

04.06.2013, 18:28. Просмотров 239. Ответов 0
Метки (Все метки)

Здравствуйте! Я новичок в сфере С++.
Прошу Вас о помощи, в переводе программы на другой язык программирования.

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

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 минут
Актуально!
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru