Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
temik94
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 11
#1

Перевесть из Паскаля в С++ - C++

21.12.2013, 13:08. Просмотров 158. Ответов 2
Метки нет (Все метки)

Ребят,очень нужна ваша помощь. Есть программа,написанная в паскале,нужно переписать ее в С++. У самого не получается.

uses crt;
type mas=array[0..100] of integer;
procedure MergeSort(var m:mas;n:integer);
var
c:boolean;
i,i1,i2,n1,n2,j,k,tmp,len:integer;
b:mas;
begin
len:=1;
c:=true;
while len<n do
begin
if c then
begin
i:=0;
while i+len<=n do
begin
i1:=i+1;
i2:=i+len+1;
n1:=i+len;
n2:=i+2*len;
if n2>n then
begin
n2:=n;
end;
while(i1<=n1)or(i2<=n2)do
begin
if i1>n1 then
begin
while i2<=n2 do
begin
i:=i+1;
b[i-1]:=m[i2-1];
i2:=i2+1;
end;
end
else
begin
if i2>n2 then
begin
while i1<=n1 do
begin
i:=i+1;
b[i-1]:=m[i1-1];
i1:=i1+1;
end;
end
else
begin
if m[i1-1]>m[i2-1] then
begin
i:=i+1;
b[i-1]:=m[i2-1];
i2:=i2+1;
end
else
begin
i:=i+1;
b[i-1]:=m[i1-1];
i1:=i1+1;
end;
end;
end;
end;
end;
i:=i+1;
while i<=n do
begin
b[i-1]:=m[i-1];
i:=i+1;
end;
end
else
begin
i:=0;
while i+len<=n do
begin
i1:=i+1;
i2:=i+len+1;
n1:=i+len;
n2:=i+2*len;
if n2>n then
begin
n2:=n;
end;
while (i1<=n1)or(i2<=n2)do
begin
if i1>n1 then
begin
while i2<=n2 do
begin
i:=i+1;
m[i-1]:=b[i2-1];
i2:=i2+1;
end;
end
else
begin
if i2>n2 then
begin
while i1<=n1 do
begin
i:=i+1;
m[i-1]:=b[i1-1];
i1:=i1+1;
end;
end
else
begin
if b[i1-1]>b[i2-1] then
begin
i:=i+1;
m[i-1]:=b[i2-1];
i2:=i2+1;
end
else
begin
i:=i+1;
m[i-1]:=b[i1-1];
i1:=i1+1;
end;
end;
end;
end;
end;
i:=i+1;
while i<=n do
begin
m[i-1]:=b[i-1];
i:=i+1;
end;
end;
len:=2*len;
c:= not c;
end;
if not c then
begin
i:=1;
repeat
m[i-1]:=b[i-1];
i:=i+1;
until not(i<=n);
end;
end;
var a:mas;
n,i:integer;
begin
clrscr;
randomize;
write('n=');readln(n);
writeln('Исходный массив:');
for i:=0 to n-1 do
begin
a[i]:=random(20);
write(a[i],' ');
end;
writeln;
MergeSort(a,n);
writeln('Сортировка:');
for i:=0 to n-1 do
write(a[i],' ');
readln
end.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2013, 13:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевесть из Паскаля в С++ (C++):

с паскаля на с++ - C++
Всем добрый день. помогите перевести с паскаля на с++. Буду очень благодарен Program zarplata; uses dos,crt,BD; type Tbass=record ...

С паскаля на С++ - C++
Всем добрый вечер!! Вот сама задача.....Дана квадратная матрица порядка M. Обнулить элементы матрицы, лежащие выше побочной диагонали....

Из Паскаля на С++ - C++
Здравствуйте. Помогите переписать это решение на C++. uses crt; var a:integer; function del(n:integer):integer; var...

с паскаля на Си++ - C++
uses crt; var a:array of integer; i,n,max,min:integer; c:char; begin ClrScr; repeat writeln('Выберите действие:');...

с паскаля в с++ - C++
помогите перевести с код паскаля в с++ program MYstring; var len1, len2:byte; s1, s2: string; function center (s1,s2:string;...

из паскаля в С++ - C++
Здравствуйте! Помогите пожалуйста перевести код программы в паскале на С++: Program Example; uses crt; Type mas=array of Integer; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
S_el
2095 / 1602 / 308
Регистрация: 15.12.2013
Сообщений: 6,444
21.12.2013, 13:11 #2
Что ваша программа должна делать?
temik94
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 11
21.12.2013, 18:37  [ТС] #3
Выводить отсортированный массив, сортируемый методом слияния.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2013, 18:37
Привет! Вот еще темы с ответами:

С Паскаля на С++ - C++
Кто способен переделать программу, написанную на Паскале, на С++?

С паскаля на с++ - C++
Помогите переписать код с паскаля на с++. вот код: var a:array of longint; k, n, t, i:longint; begin readln (n); ...

Из паскаля в С++ - C++
Program lab5; Var a:array of integer; n,I,min,k:integer; P:longint; s:real; Begin Writeln('введите размерность массива'); ...

Из Паскаля на СИ - C++
const c = 9; var a, b, x, y: real; begin write('Введите x: '); readln(x); b := x + c * c; a := exp(ln(abs(92))...


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

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

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