Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2011, 20:04   #1
Kerragin
Пользователь
 
Регистрация: 09.12.2010
Сообщений: 34
Вопрос Перевод кода из Pascal в C++

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

Задача:

Даны две дроби 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;

Последний раз редактировалось Kerragin; 17.05.2011 в 20:27. Причина: продолжение
Kerragin вне форума Ответить с цитированием
Старый 10.08.2011, 23:22   #2
Kulikcha
Пользователь
 
Регистрация: 16.06.2011
Сообщений: 15
По умолчанию

Первая задача в переводе на с++ будет такая

Код:
void num(int a,int b,int del) {
int ost;
while(ost == 0) {
ost = a%b;
a = b;
b = ost;
if(b != 0) 
{
del = ost;
}
Вот первый код. Со вторым придётся немного повозиться.
Kulikcha вне форума Ответить с цитированием
Старый 11.08.2011, 00:41   #3
MooNDeaR
В стагнации
Участник клуба
 
Аватар для MooNDeaR
 
Регистрация: 29.07.2011
Сообщений: 1,303
По умолчанию

Вот код для второй задачи:


Код:
#include <iostream>
#include <string>
#include <cstdlib>
#include <clocale>
using namespace std;

const int k = 10;
void check(string* arr, int num)
{
	
	for(int i = 0; i < k; ++i)
	   if(arr[i].length()==num)
	      for(int c = 1; c < num; ++c)
		  if(arr[i][c] <= arr[i][c-1]) break;
			  else
		  if(c == (num-1)) cout << arr[i] << endl;
}


int main()
{
	setlocale(0,"");
        string a[k];
        cout << "Введите " << k << " чисел:" << endl;
	for(int i = 0; i < k; ++i)
		cin >> a[i];
        int n;
        cout << "Введите число разрядов: ";
        cin >> n;
	check(a,n);
	system("PAUSE");
}
По хорошему неплохо бы сделать проверку на 2 минуса и 2 точки, но было так лень.
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание.

Последний раз редактировалось MooNDeaR; 11.08.2011 в 18:58.
MooNDeaR вне форума Ответить с цитированием
Старый 11.08.2011, 04:59   #4
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

первую посмотрел...зачем там цикл не понял.
Не претендую на оптимальность, но:
Код:
#include <iostream>
int main( ) {
	int		a, b, c, d;
	
	std ::cin >> a >> b >> c >> d;

	a *= c;
	b *= d;

	if( 0 == b ) {
		std ::cerr << "Error: devision by zero" << std ::endl;
		return 1;
	}

	c = a / b;
	a %= b;

	std ::cout << c << " + " << a << "/" << b << std ::endl;

	return 0;
}
так будет лучше чем было
rrrFer вне форума Ответить с цитированием
Старый 12.12.2011, 22:13   #5
KAIIUK
Новичок
Джуниор
 
Регистрация: 12.12.2011
Сообщений: 2
По умолчанию

Доброго времени суток, можете ли перевести программу из C в паскаль?
http://codepad.org/YJfg3045
KAIIUK вне форума Ответить с цитированием
Старый 13.12.2011, 07:54   #6
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

KAIIUK
если вы у меня спрашиваете - то нет
rrrFer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод кода с Pascal в Delphi Rin Общие вопросы Delphi 5 09.01.2011 01:39
Перевод кода с Java на Pascal Warfvare Помощь студентам 4 19.06.2010 08:38
Перевод кода Delphi-Pascal! Метод Пауэлла bestlover Помощь студентам 3 21.12.2009 17:35
Перевод кода из Pascal в Object Pascal zemskov77 Общие вопросы Delphi 1 03.01.2009 09:37