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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2012, 13:00   #1
Green Gin
Пользователь
 
Аватар для Green Gin
 
Регистрация: 05.11.2011
Сообщений: 21
Восклицание Код с Паскаля на C

Здравствуйте. Помогите пожалуйста кто шарит в Паскале перевести следующие кусочки кода на СИ.

1.
Код:
const
alphabet : string[26] = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var
b : array [1..100] of byte ;
N,i,j,k : byte;
Procedure SwapB(i,k:byte);
var x : byte;
begin
x:=B[i]; B[i]:=B[k]; B[k]:=x;
end;
Procedure WriteB;
begin
for i:=1 to N do write({alphabet[b[i]]);
writeln;
end;
begin
readln(N);
for i:=1 to N do b[i]:=i;
WriteB;
while (true) do
begin
i:=N;
while (i>0) and (B[i]>=B[i+1]) do i:=i-1;
if i=0 then exit;
for j:=i+1 to N do
if (B[j]>B[i]) then K:=j;
SwapB(i,k);
for j:=i+1 to (i+ ((N+1-i) div 2))
do SwapB(j,N+i+1-j);
writeB;
end;
end.
2.
Код:
uses crt;
const
alphabet : string[26] = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var
b : array [1..100] of byte;
N,M,i,j,k : byte;
Procedure WriteB;
begin
for i:=1 to M do write(alphabet[b[i]]);
writeln;
end;
begin
readln(N,M);
for i:=1 to M do b[i]:=i;
WriteB;
while (true) do
begin
i:=M;
while (i>0) and (b[i]=N-m+i) do Dec(i);
if i=0 then exit;
Inc(B[i]);
for j:=i+1 to M do B[j]:=B[j-1]+1;
WriteB;
end;
end.
3.
Код:
const
alphabet : string[26] = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
type
barray = array [1..100] of byte;
var
b : barray;
N,M,i,j,k : byte;
z : longint;
Procedure WriteB(B:barray);
begin
Inc(Z); Write (Z:3,' : ');
for i:=1 to M do write(alphabet[b[i]]);
writeln;
end;
Procedure SwapB(var B:barray;i,k:byte);
var x : byte;
begin
x:=B[i]; B[i]:=B[k]; B[k]:=x;
end;
Procedure PermuteAll(B:barray;N:byte);
var i,k,j : byte;
begin
WriteB(B);
while (true) do
begin
i:=N;
while (i>0) and (B[i]>=B[i+1]) do i:=i-1;
if i=0 then exit;
for j:=i+1 to N do
if (B[j]>B[i]) then K:=j;
SwapB(B,i,k);
for j:=i+1 to (i+ ((N+1-i) div 2)) do SwapB(B,j,N+i+1-j);
WriteB(B);
end;
end;
begin
readln(N,M);
for i:=1 to M do b[i]:=i;
PermuteAll(B,M);
while (true) do
begin
i:=M;
while (i>0) and (b[i]=N-m+i) do Dec(i);
if i=0 then exit;
Inc(B[i]);
for j:=i+1 to M do B[j]:=B[j-1]+1;
PermuteAll(B,M);
end;
readln;
end.
-=-=-=-=-|?|-=-=-=-=-
Green Gin вне форума Ответить с цитированием
Старый 13.05.2012, 14:00   #2
Green Gin
Пользователь
 
Аватар для Green Gin
 
Регистрация: 05.11.2011
Сообщений: 21
По умолчанию

Денежное вознаграждение (wmr) помогшему, прилагается
-=-=-=-=-|?|-=-=-=-=-
Green Gin вне форума Ответить с цитированием
Старый 13.05.2012, 14:36   #3
HAWK0044
 
Регистрация: 07.05.2012
Сообщений: 4
По умолчанию

а CRT обязательно юзать? консольное приложение надо сделать?

напиши в ICQ 7-215-215 , обсудим.

Последний раз редактировалось HAWK0044; 13.05.2012 в 14:41.
HAWK0044 вне форума Ответить с цитированием
Старый 13.05.2012, 15:31   #4
Green Gin
Пользователь
 
Аватар для Green Gin
 
Регистрация: 05.11.2011
Сообщений: 21
По умолчанию

тема закрыта...
-=-=-=-=-|?|-=-=-=-=-
Green Gin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевести код из паскаля на делфи с формами Миледи Помощь студентам 2 18.04.2012 09:59
Из кода паскаля в код делфи Morgann Помощь студентам 1 09.01.2012 01:24
народ, спасай! нужно с паскаля в СИ 3.1 dos код перегнать al171717 Помощь студентам 0 13.05.2010 14:21
Код игры на Паскале и на Делфи сильно отличается? Как переписать код с Паскаля в Делфи? Mclaren Помощь студентам 2 27.04.2009 22:37