K
kerragin
Люди,помогите пожалуйста перевести коды(могут быть ошибки) для данных задач из паскаля в С++
Задача:
Даны две дроби A/B и C/D (А, В, С, D — натуральные числа).
Составить программу для умножения дроби на дробь. Результат
должен быть несократимой дробью.
Код :
Задача 2:Найти все натуральные л-значные числа, цифры в которых
образуют строго возрастающую последовательность (например,
1234, 5789).
Код:
Задача:
Даны две дроби 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;