Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.68/19: Рейтинг темы: голосов - 19, средняя оценка - 4.68
1 / 1 / 0
Регистрация: 11.06.2010
Сообщений: 65

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

14.01.2011, 17:48. Показов 4225. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.01.2011, 17:48
Ответы с готовыми решениями:

Перевод кода с Паскаля (перевод в метры)
var a,b,d:integer; c,e:real; begin writeln('1-дециметр 2-километр'); writeln('3-метр 4-миллиметр'); ...

Перевод с паскаля на c#
Господа, подскажите, как будет выглядеть данный код, но на c# Type RefTree = ^Tree; Tree = record ...

Перевод из паскаля в с++
Помогите перевести type matrix = array of integer; var a:matrix; i,j,k:integer; begin k:=0; for i :=1 to...

33
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
15.01.2011, 16: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 ()
{
 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;
}
. Если без
C++
1
std::
работает, то выбрось. Если нет - уточни написание этого пространства.
0
1 / 1 / 0
Регистрация: 11.06.2010
Сообщений: 65
15.01.2011, 16:52  [ТС]
Цитата Сообщение от MILAN Посмотреть сообщение
C++
1
#include <iostream.h>
Добавлено через 2 минуты
Timon779, какой у вас компилятор?
c <iostream.h> просто ошибка в написании была, у меня BORLANDC

Добавлено через 1 минуту
Цитата Сообщение от taras atavin Посмотреть сообщение
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 ()
{
 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;
}
. Если без
C++
1
std::
работает, то выбрось. Если нет - уточни написание этого пространства.
теперь осталась только одна ошибка в c1*=10;

Добавлено через 36 минут
подправил c1*=10 на c1=10, теперь программа запускается, но при вводе числа вылетает, а при повторном открытии никакого результата нет, только введенные ранее цифры отображаются
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
15.01.2011, 16:56
Цитата Сообщение от Timon779 Посмотреть сообщение
подправил c1*=10 на c1=10
Pascal
1
c1:=c1*10;
меняется именно на
C++
1
c1*=10;
.
0
1 / 1 / 0
Регистрация: 11.06.2010
Сообщений: 65
15.01.2011, 17:00  [ТС]
хм... теперь с c1*=10; скомпилировалось, но почему-то все равно прога ничего не вычисляет
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
15.01.2011, 17:06
Я не проверял алгоритм, но перевод вроде точный. Давай задачу, попробую решить заново сразу на плюсах.
0
1 / 1 / 0
Регистрация: 11.06.2010
Сообщений: 65
15.01.2011, 17:19  [ТС]
вот сама задача:
Дана строка, содержащая произвольный текст. Сколько слов в тексте? Сколько цифр в тексте?
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
15.01.2011, 17:27
Цитата Сообщение от Timon779 Посмотреть сообщение
Найти все натуральные 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
25
#include <iostream>
#include <sstream>
#include <string>
#include <cmath>
#include <algorithm>
#include <iterator>
 
int main()
{
    int n = 0;
    std::cin >> n;
    for(int i = pow(10.0, static_cast<double>(n - 1)); i < pow(10.0, static_cast<double>(n)) - 1; ++i)
    {
        std::ostringstream ost;
        ost << i;
        std::string str = ost.str(), tmp = ost.str();
        std::sort(tmp.begin(), tmp.end());
        std::string::iterator it = std::unique(tmp.begin(), tmp.end());
        tmp.resize(it - tmp.begin());
        if(tmp == str)
            std::cout << str << ' ';
    }
 
    return 0;
}
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
15.01.2011, 17:33
Надо вывести количество слов и цифр?
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
#include <iostream.h>
int main ()
{
 string s; // не уверен в написании типа.
 int i,l;
 char c,oldc;
 unsigned long int words, d;
 std::cin>>s;
 l=s.length();
 for (i=1,words=0, d=0, oldc="\0"; i<=l; ++i)
 {
  c=s[i];
  if ((c>='0')&&(c<='9'))  
  {
   ++d;
  }
  if (c==' ')
  {
   if (((oldc>='a')&&(oldc>='z'))||((oldc>='A')&&(oldc>='Z'))||((oldc>='А')&&(oldc>='Я'))||((oldc>='а')&&(oldc>='я')))
   {
    ++words;
   }
  }
  if (i==l)
  {
   if (((c>='a')&&(c>='z'))||((c>='A')&&(c>='Z'))||((c>='А')&&(c>='Я'))||((c>='а')&&(c>='я')))
   {
    ++words;
   }
  }
 }
 std<<"\n"<<words<<" слов,"<<d<<" цифр.";
 return 0;
}
. Кстати, твой вариант это задачу тоже не решает.
0
1 / 1 / 0
Регистрация: 11.06.2010
Сообщений: 65
15.01.2011, 18:01  [ТС]
черт, извините текст другой задачи вляпал, вот задание:
Найти все натуральные n-значные числа, цифры в которых образуют строго возрастающую последовательность
Но правда ту мне доделать надо было, так что сейчас попробую ваши примеры с кодами, а то мой только слова вычисляет, а числа нет
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
15.01.2011, 18:03
Timon779, Смотри пост #28.
0
1 / 1 / 0
Регистрация: 11.06.2010
Сообщений: 65
15.01.2011, 18:08  [ТС]
Цитата Сообщение от asics Посмотреть сообщение
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
#include <iostream>
#include <sstream>
#include <string>
#include <cmath>
#include <algorithm>
#include <iterator>
 
int main()
{
    int n = 0;
    std::cin >> n;
    for(int i = pow(10.0, static_cast<double>(n - 1)); i < pow(10.0, static_cast<double>(n)) - 1; ++i)
    {
        std::ostringstream ost;
        ost << i;
        std::string str = ost.str(), tmp = ost.str();
        std::sort(tmp.begin(), tmp.end());
        std::string::iterator it = std::unique(tmp.begin(), tmp.end());
        tmp.resize(it - tmp.begin());
        if(tmp == str)
            std::cout << str << ' ';
    }
 
    return 0;
}
у меня компилятор BORLANDC, в нем нет sstream.h, cmath.h, algorithm.h, iterator.h
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
15.01.2011, 18:24
Цитата Сообщение от Timon779 Посмотреть сообщение
repeat
C++
1
do
Цитата Сообщение от Timon779 Посмотреть сообщение
until
C++
1
while
, на сях может быть и в конце цикла, но с условием продолжения цикла, а не завершения как в until. Условия в скобках.
Цитата Сообщение от Timon779 Посмотреть сообщение
for
синтаксис for (начальное присваивание; условие продолжения; изменение счётчика) один простой оператор, или несколько простых операторов в фигурных скобках. Крайние операторы в круглых скобках могут быть составными, на сях такие операторы не выделяются операторными скобкам вообще, н простые операторы в их составе разделяются запятой, а не точкой с запятой. Точка с запятой ставится в конце или составного оператора, или отдельного простого оператора, не входящего в состав составного.
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
15.01.2011, 18:25
Timon779, Значит скачай новый компилятор, который поддержиавет стандарт С++.
0
1 / 1 / 0
Регистрация: 11.06.2010
Сообщений: 65
15.01.2011, 18:32  [ТС]
мне только для этого нужно, потому что для института задачи решить надо, а там только с таким компилятором принимать хотят
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.01.2011, 18:32

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

Перевод из паскаля в С++
помогите, пожалуйста, перевести : Program enot; var c, a : integer; begin c:=0; repeat read (a); if (a mod...

Перевод из Паскаля в С
uses crt; var a,b,c,d:byte; begin clrscr; repeat writeln('Положение коня:'); write('a=');readln(a); write('b=');readln(b); ...

Перевод с Паскаля на c++
Вот код на Паскале : program Matrix40; var a:array of integer; NumMax,Num, RowMax, M, N, i, j:Integer; Row : set of byte; ...

Перевод с Паскаля на С++
Не могу ни как перевести полностью вот этот кусок кода на Паскале на си++ function h(var key: TKey): integer; {Вычисление хеш-функции} ...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru