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

Перевод кода с Pascal в C++ - C++

Восстановить пароль Регистрация
 
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 171
19.01.2014, 15:46     Перевод кода с Pascal в C++ #1
ребятки, помогите с переводом с паскаля на C++ данный код

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
var n,s,t,n1,kk,e1,x,i,ss,h:integer;
 
///возводит x в степнь e1 по модулю n
function st(x,e1,n:integer):integer;
var i,k1:integer;
begin
k1:=x;
   for i:=2 to e1 do
      begin
         k1:=k1*x;
         k1:=k1 mod n;
      end;
   result:=k1;
end;
 
 
begin
writeln('Введите n');
readln(n);
n1:=n-1;
s:=0;t:=0;
while (t=0) do
  begin
     if n1 mod 2 = 0 then
        begin
           s:=s+1;
           n1:=n1 div 2;
        end
        else
           t:=n1;
  end;
i:=1;
while (x=0) do
  begin
     kk:=st(2,t*i,n);
     i:=i+1;
     if (kk=1) or (kk=n-1) then 
        begin
           writeln('простое!!');
           x:=1;
        end;
     ss:=1;
     for h:=1 to s-1 do
        ss:=ss*2;
     if i>ss*t then begin 
                      x:=1;
                      writeln(' не простое!!');
                    end;
  end;
 
end.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2014, 15:46     Перевод кода с Pascal в C++
Посмотрите здесь:

C++ Перевод кода из Pascal/VB в C++
C++ Перевод кода из Pascal в C++
C++ Перевод кода из Pascal в С++
C++ Перевод кода с Pascal
Перевод кода с Pascal C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
genock94
 Аватар для genock94
20 / 20 / 1
Регистрация: 16.11.2012
Сообщений: 348
19.01.2014, 16:09     Перевод кода с Pascal в C++ #2
alex-net,
C++
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
/**/
#include <cstdlib>
#include <stdio.h>
#include <conio.h>
#include <iostream>
 
using namespace std;
//////////ÃëîáГ*ëüГ*ûå ïåðåìåГ*Г*ûå, ñòðóêòóðû, ГЄГ«Г*Г±Г±Г»////////
 
//////////Функции//////////////////////////////////////////////////
int st(int x, int e1, int n) {
    int i, k1;
    
    k1=x;
    for (i=2; i<=e1; i++) {
        k1=k1*x;
        k1=k1%n;
    }
    return k1;
}
//////////////////////////////////////////////////////////
int main()
{
    int n, s, t, n1, kk, e1, x, i, ss, h;
    
    cout << "Vvedite n: ";
    cin >> n;
    
    n1=n-1;
    s=0; t=0;
    
    while (t==0) {
        if (n1%2 == 0) {
            s=s+1;
            n1=n1/2;
        }
        else {
            t=n1;
        }
    }
    i=1;
    while (x==0) {
        kk=st(2,t*i,n);
        i=i+1;
        if ((kk==1)||(kk==n-1)) {
            cout << "prostoe!!";
            x=1;
        }
        ss=1;
        for (h=1; h<=s-1; h++) {
            ss=ss*2;
        }
        if (i>ss*t) {
            x=1;
            cout << "ne prostoe";
        }
        
    }
    
       
    return 0;
}
//////////////////////////////////////////////////////////
_script_
169 / 137 / 34
Регистрация: 01.05.2012
Сообщений: 414
19.01.2014, 16:16     Перевод кода с Pascal в C++ #3
держи) вроде так)
а лучше напиши, задание, что бы понимать, хотя что должна делать прграмма
C++
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
#include <iostream>
 
using namespace std;
 
 
int st(int x, int e1, int n)
{
    int i,k1;
    k1=x;
    for (i=2; i<=e1; i++ )
    {
        k1=k1*x;
        k1=k1%n;
    }
    return k1;
}
 
int main()
{
    setlocale(NULL,"rus");
    int n,s,t,n1,kk,e1,x=0,i,ss,h;
    cout<<"Введите n";
    cin>> n;
    n1=n-1;
    s=0;
    t=0;
    while (t==0)
    {
        if (n1 % 2 == 0)
        {
            s=s+1;
            n1=n1/2;
        }
        else
            t=n1;
    }
    i=1;
    while (x==0)
    {
 
        kk=st(2,t*i,n);
        i++;
        if ((kk==1) || (kk==n-1))
        {
            cout << "простое!!";
            x=1;
        }
        ss=1;
        for (h=1; h<=s-1; h++)
            ss=ss*2;
        if (i>ss*t)
        {
            x=1;
            cout<<"не простое!!";
        }
    }
    return 0;
}
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 171
19.01.2014, 16:26  [ТС]     Перевод кода с Pascal в C++ #4
_script_, проверка чисел на простоту
_script_
169 / 137 / 34
Регистрация: 01.05.2012
Сообщений: 414
19.01.2014, 16:29     Перевод кода с Pascal в C++ #5
если проверяется n, то код не правильно работает!
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 171
19.01.2014, 16:35  [ТС]     Перевод кода с Pascal в C++ #6
_script_, сможешь исправить?
_script_
169 / 137 / 34
Регистрация: 01.05.2012
Сообщений: 414
19.01.2014, 16:41     Перевод кода с Pascal в C++ #7
держи код)
вводим n и проверяем простое или нет!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <math.h>
 
using namespace std;
 
bool Prostoe(int a)
{
    for (int i=2; i<=sqrt(a); i++)
        if (a%i==0)
            return false;
    return true;
}
 
int main()
{
    int n;
    cout << "Vvedite n:";
    cin >> n;
    if (Prostoe(n))
        cout <<"Prostoe!";
    else
        cout << "NE prostoe!";
    return 0;
}
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 171
19.01.2014, 16:53  [ТС]     Перевод кода с Pascal в C++ #8
_script_, а мне именно по тому алгоритму нужна бы)
_script_
169 / 137 / 34
Регистрация: 01.05.2012
Сообщений: 414
19.01.2014, 17:01     Перевод кода с Pascal в C++ #9
Ну если дашь, текстуальное описание, алгоритма, может что то и напишу, но по коду разбирать его мне не хочется)
Тем более, судя по всему какой то это не очень хороший алгоритм)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2014, 17:09     Перевод кода с Pascal в C++
Еще ссылки по теме:

Перевод кода с Pascal C++
C++ Перевод кода с Pascal
Перевод кода из pascal в c++ C++

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

Или воспользуйтесь поиском по форуму:
alex-net
3 / 3 / 1
Регистрация: 27.11.2012
Сообщений: 171
19.01.2014, 17:09  [ТС]     Перевод кода с Pascal в C++ #10
_script_, согласен, не очень хороший
Тестирование чисел на простоту Рабина-Миллера.
http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}^{n-1}\equiv 1(mod n)
n — нечетное,
http://www.cyberforum.ru/cgi-bin/latex.cgi?n-1 = {2}^{s}*t, t — нечетное
if n — простое, then вып-ся http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}^{n-1}\equiv 1(mod n)
http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}^{t},{a}^{2t}, ... , {a}^{2s-1} среди них найдется элемент, который = 1 mod n
Yandex
Объявления
19.01.2014, 17:09     Перевод кода с Pascal в C++
Ответ Создать тему
Опции темы

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