С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Помогите перевести код с Пасякаля на С++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как найти количество елементов в char *sh; http://www.cyberforum.ru/cpp-beginners/thread513533.html
char *sh; int length; sh = new char ; cout<<"Rjadok="; cin >> sh; cout<<length; Как мне здесь сощитать сколько елементов в sh тоесть если я введу оуемг
C++ в матрице P (n,m) найти строку с минимальной суммой отрицательных элементов и поэлементно поменять ее в матрице P (n,m) найти строку с минимальной суммой отрицательных элементов и поэлементно поменять ее..... помогите пожалусто...если можно с коментариями http://www.cyberforum.ru/cpp-beginners/thread513518.html
C++ Найти все простые натуральные числа, не превосходящие n, двоичная запись которых представляет собой палиндром
Найти все простые натуральные числа, не превосходящие n, двоичная запись которых представляет собой палиндром, т.е. читается одинаково слева направо и справа налево. Простые натуральные числа это...
fatal error LNK1169: обнаружен многократно определенный символ - один или более C++
код который показан снизу я компилировал в двух программах на visual c++ и dev c++ в dev c++ всё прошло успешно но в visual c++ выдаёт ошибку "fatal error LNK1169: обнаружен многократно...
C++ Ссылка и Разыменование в с++ http://www.cyberforum.ru/cpp-beginners/thread513481.html
прошу кто можеть дать видеоурок(или что угодно) на эту тему.я очень затрудняюсь понят это.нужно много примеров из самого примитива до самого сложного
C++ Матрица. Люди добрые помогите написать программу. Введите прямоугольную матрицу и найдите транспонированную матрицу. подробнее

Показать сообщение отдельно
Джон
0 / 0 / 0
Регистрация: 06.03.2012
Сообщений: 40

Помогите перевести код с Пасякаля на С++ - C++

06.03.2012, 19:14. Просмотров 341. Ответов 4
Метки (Все метки)

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
const a:array[1..168] of integer=
(2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,
73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,
179,181,191,193,197,199,211,223,227,229,
233,239,241,251,257,263,269,271,277,281,
283,293,307,311,313,317,331,337,347,349,
353,359,367,373,379,383,389,397,401,409,
419,421,431,433,439,443,449,457,461,463,
467,479,487,491,499,503,509,521,523,541,
547,557,563,569,571,577,587,593,599,601,
607,613,617,619,631,641,643,647,653,659,
661,673,677,683,691,701,709,719,727,733,
739,743,751,757,761,769,773,787,797,809,
811,821,823,827,829,839,853,857,859,863,
877,881,883,887,907,911,919,929,937,941,
947,953,967,971,977,983,991,997);
Const MaxDig=3000;
      Osn=1000000;
Type  Tlong=Array [0..MaxDig] of longint;
var m:integer;
    od, x, rez:tlong;
    i, p, k:longint;
Procedure WriteLong (t:Tlong);
Var i:Integer;
    s, ls:String;
Begin
     Str (Osn div 10, ls);
     Write (t[t[0]]);  
     For i:=t[0]-1 Downto 1 Do
     Begin
          Str (t[i], s);
          While Length (s)< Length (ls) Do
                s:='0'+s; 
          Write (s);
     End;
End;
Procedure Mul (t:Tlong; k:longint; var s:Tlong);
var i:longint;
begin
     fillchar (s, sizeof(s), 0);
     if k=0 then inc(t[0])
            else for i:=1 to t[0] do
                 begin
                      s[i+1]:=(t[i]*k+s[i]) div osn;
                      s[i]:=(t[i]*k+s[i]) mod osn;
                 end;
     if s[t[0]+1]=0 then s[0]:=t[0]
                    else s[0]:=t[0]+1;
end;
Procedure sublong(a,b:Tlong; var c:Tlong);
var k,i,p:longint;
begin
     fillchar(c,sizeof(c),0);
     if a[0]>b[0] then k := a[0] else k := b[0];
     p:=0;
     for i:=1 to k do
     begin
          c[i]:=a[i]-b[i]-p;
          if c[i]<0 then
          begin
               p:=1;
               inc(c[i],osn);
          end
                    else p:=0;
     end;
     for i:=k downto 1 do
         if c[i]<>0 then break;
     c[0]:=i;
end;
 
begin
     readln (m);
     od[0]:=1; od[1]:=1;
     i:=1; x[0]:=1; x[1]:=1;
     while a[i]<=m do
     begin
          p:=a[i];
          repeat
                p:=p*a[i];
          until p>=m;
          if p>m then p:=p div a[i];
          mul(x,p,rez);
          x:=rez;
          i:=i+1;
     end;
     sublong(x,od,rez);
     writelong(rez);
     WRITELN;
end.
 Комментарий модератора 
Используйте тег вставки кода соответствующего языка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.