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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Timon779
1 / 1 / 0
Регистрация: 11.06.2010
Сообщений: 65
#1

Перевод из Паскаля в с++ - C++

14.01.2011, 17:48. Просмотров 1705. Ответов 33
Метки нет (Все метки)

Задача:
Найти все натуральные n-значные числа, цифры в которых образуют строго возрастающую последовательность
Есть решение на Паскале:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var
c1,c2,i,c3:longint;
n,f:integer;
begin
readln(n);
c1:=1;
for i:=1 to n-1 do
c1:=c1*10;
c2:=c1*10-1;
for i:=c1 to c2 do
begin
c3:=i;
f:=0;
repeat
if c3 mod 10<=(c3 div 10) mod 10 then f:=1;
c3:=c3 div 10;
until c3<10;
if f=0 then write(i,' ');
end;
end.
То что перевел я:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream.h>
#include <conio.h>
 
int main
{
   int c1,c2,c3;
   int n,f;
   cout<<"Введите число";
   cin>>n;
   for i=1<n-1
На for запнулся, потому что чувствую, что неправильно, и еще вот вопрос: как repeat и until
перевести?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2011, 17:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод из Паскаля в с++ (C++):

Перевод с Паскаля в С++ - C++
uses crt; type prm=record {прямая с полями, коэффициентами} a,b,c:real; end; tch=record {точка с полями,...

Перевод с Паскаля в С++ - C++
uses crt; function rec(n:integer):real; var z:integer; begin z:=1; if n=0 then begin z:=1; rec:=1 end

Перевод с паскаля на С++ - C++
Даны два массива A и B одинакового размера N. Сформировать новый массив C того же размера, каждый элемент которого равен максимальному из...

перевод с паскаля на С++ - C++
Дан массив ненулевых целых чисел размера N. Проверить, образуют ли его элементы геометрическую прогрессию (см. задание 4). Если образуют,...

Перевод с Паскаля на с++ - C++
Пусть дан файл целых чисел. Создайте файл вещественных чисел, значениями которого будут средние арифметические значения каждой пятёрки...

Перевод из Паскаля в C++ - C++
Здравствуйте! Помогите перевести код из Паскаля в C++. Трансляторов смотрел в гугле, так и не разобрался. Вот задача Поменять местами...

33
Jupiter
Каратель
Эксперт С++
6560 / 3981 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
14.01.2011, 18:06 #2
Цитата Сообщение от Timon779 Посмотреть сообщение
и еще вот вопрос: как repeat и until
C
1
2
3
4
do 
{
/////
} while(....);
0
dr.curse
389 / 345 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
14.01.2011, 18:09 #3
Timon779, эти действия c1:=c1*10; c2:=c1*10-1; должны происходить в этом for i:=1 to n-1 do цикле?
0
Timon779
1 / 1 / 0
Регистрация: 11.06.2010
Сообщений: 65
14.01.2011, 18:14  [ТС] #4
ну да, иначе уже алгоритм самой программы тогда нужно менять
0
dr.curse
389 / 345 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
14.01.2011, 18:37 #5
Цитата Сообщение от Timon779 Посмотреть сообщение
ну да, иначе уже алгоритм самой программы тогда нужно менять
Тогда перевод
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.h>
void main()
{
    long c1,c2,c3,i;
    int n,f;
    cin >> n;
    c1=1;
    for (i=1;i<=n-1;i++)
    {
        c1=c1*10;
        c2=c1*10-1;
    }
    for (i=c1;i<=c2;i++)
    {
        c3=i;
        f=0;
        do
        {
            if (c3%10<=(c3/10)%10) f=1;
            c3=c3/10;
        } while (c3<10);
        if (f==0) cout << i << ' ';
    }
}
Иначе такой
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream.h>
void main()
{
    long c1,c2,c3,i;
    int n,f;
    cin >> n;
    c1=1;
    for (i=1;i<=n-1;i++)
        c1=c1*10;
    c2=c1*10-1;
    for (i=c1;i<=c2;i++)
    {
        c3=i;
        f=0;
        do
        {
            if (c3%10<=(c3/10)%10) f=1;
            c3=c3/10;
        } while (c3<10);
        if (f==0) cout << i << ' ';
    }
}
0
Timon779
1 / 1 / 0
Регистрация: 11.06.2010
Сообщений: 65
14.01.2011, 20:42  [ТС] #6
попробовал и первый вариант и второй, но чего-то она ничего не рассчитывает, ввожу число и тут же захлопывается. getch() в конце прописан, clrscr убирал, чтобы посмотреть, но там результата от предыдущих действий не остается, только слова "введите число" и введенное мною число
0
dr.curse
389 / 345 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
14.01.2011, 21:51 #7
Timon779, в конце добавь cin.get().
0
Timon779
1 / 1 / 0
Регистрация: 11.06.2010
Сообщений: 65
14.01.2011, 22:00  [ТС] #8
Цитата Сообщение от aram_gyumri Посмотреть сообщение
Timon779, в конце добавь cin.get().
в конце, это после последнего ифа, перед фигурной скобкой или еще дальше?
0
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
14.01.2011, 22:03 #9
Timon779, как вариант

C++
1
system("pause");
0
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
14.01.2011, 22:04 #10
перед последней скобкой.
или там же system("pause");
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
14.01.2011, 22:45 #11
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
#include <iostream.h>
 
int main()
{
    int n;
    cin >> n;
 
    int c1 = 1;
    for(int i = 0; i < n-1; ++i) c1*= 10;
 
    int c2 = c1 * 10 - 1;
    int c3;
    int f;
 
    for(int i = c1; i <= c2; ++i)
    {
        c3 = i;
        f = 0;
        do
        {
            if(c3 % 10 <= (c3 / 10) % 10) f = 1;
            c3/= 10;
        }while(c3 >= 10);
 
 
        if(f == 0) cout << i << ' ';
    }
 
    cout << endl;
 
    return 0;
}
0
Timon779
1 / 1 / 0
Регистрация: 11.06.2010
Сообщений: 65
15.01.2011, 02:54  [ТС] #12
Цитата Сообщение от rangerx Посмотреть сообщение
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
#include <iostream.h>
 
int main()
{
    int n;
    cin >> n;
 
    int c1 = 1;
    for(int i = 0; i < n-1; ++i) c1*= 10;
 
    int c2 = c1 * 10 - 1;
    int c3;
    int f;
 
    for(int i = c1; i <= c2; ++i)
    {
        c3 = i;
        f = 0;
        do
        {
            if(c3 % 10 <= (c3 / 10) % 10) f = 1;
            c3/= 10;
        }while(c3 >= 10);
 
 
        if(f == 0) cout << i << ' ';
    }
 
    cout << endl;
 
    return 0;
}
пишет:
1)Multiple declaration for 'i'
2)Expression syntax
3) 'c2' is assigned a value that is never used
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
15.01.2011, 13:11 #13
Объяви переменную i вне цикла...
0
Timon779
1 / 1 / 0
Регистрация: 11.06.2010
Сообщений: 65
15.01.2011, 14:23  [ТС] #14
добавил в int n; то есть получилось int n,i;
Теперь первую ошибку выдает два раза, а остальные так же
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
15.01.2011, 14:38 #15
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
#include <iostrem.h>
int main ()
{
 long int c1,c2,i,c3;
 int n,f;
 std::cin>>n;
 c1:=1;
 for (i=1; i<=n-1; ++i)
 {
  c1*:=10;
 }
 c2:=c1*10-1;
 for (i=c1; i<=c2; ++i)
 {
  c3:=i;
  f:=0;
  do
  {
   if (c3%10<=(c3/10)%10)
   {
    f:=1;
   }
   c3/=10;
  }
  while (c3>=10);
  if (f==0)
  {
   std::cout<<i<<" ";
  }
 } 
 return 0;
}
0
15.01.2011, 14:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2011, 14:38
Привет! Вот еще темы с ответами:

Перевод из Паскаля в C++ - C++
Переведите программу из Паскаля в С++, пожалусйта Вот код : const nmax=100; var a: array of integer; i,j,n,m,min:...

Перевод из паскаля в с ++ - C++
Ребят помогите перевести в с ++ var p:array of integer; c,c1:char; i,j,N,K:integer; name:string; time1,time2:integer; ...

Перевод из Паскаля в С++ - C++
Нужно переделать задачу из Паскаля в С++Builder. Поможете? Вот само задание:Описать функцию PowerA234(A), вычисляющую вторую, третью и...

Перевод с паскаля на с++ - C++
С Паскаля на С++ var n: Integer; d: Longint; begin repeat Write('Введите N : '); ReadLn(n); until n in ; n:=n div 2*2; ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru