• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Перевод кодов из Pascal в C++

  • Автор темы kerragin
  • Дата начала
Статус
Закрыто для дальнейших ответов.
K

kerragin

Люди,помогите пожалуйста перевести коды(могут быть ошибки) для данных задач из паскаля в С++

Задача:

Даны две дроби A/B и C/D (А, В, С, D — натуральные числа).
Составить программу для умножения дроби на дробь. Результат
должен быть несократимой дробью.

Код :

Код:
procedure (var a:integer;var b:integer;var del:integer);
var
ost:integer;
begin
repeat

ost:=a mod b;
a:=b;
b:=ost;
if b<>0 then del:=ost;

until ost=0;
end;

Задача 2:Найти все натуральные л-значные числа, цифры в которых
образуют строго возрастающую последовательность (например,
1234, 5789).

Код:

Код:
program unique;

const k=10; //константа определяет количество вводимых символов

var
a: array[1..k] of integer;
i: integer;
n: byte;

procedure Check(arr: array of integer; num: byte); //нужная процедура
var
S: string;
i: integer;
c: byte;
begin
for i:= 1 to k do // С первого по последний элемент массива
if length(inttostr(arr[i]))=n then // если длина числа равна заданной
begin
S:=inttostr(arr[i]); //переводим число в строку
for c:=2 to num do // и со второго символа числа проверяем
if S[c]<=S[c-1] then break //если предыдущий символ меньше либо равен
//текущему, выходим из цикла
else if c=num then write(S,' '); // иначе если текущий символ - последний
//пишем число
end;
end;

begin
Writeln('Введите ',k,' чисел');
for i:= 1 to k do Read(a[i]);
writeln;
Writeln('Введите количество символов в числе');
Readln(n);
Check(a,n);
end;
 
L

lazybiz

Первый кусок кода:
C++:
void unnamed( int a, int b, int del )
{
int	ost;
do {
ost = a % b;
a = b;
b = ost;
if ( b != 0 ) del = ost;
} while ( ost != 0 );
}
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!