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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2013, 12:22   #1
Grynyuk
 
Регистрация: 05.12.2013
Сообщений: 4
По умолчанию Перевести с паскаля на с++ нужна помощь

Код:
uses crt;
const n=10;
type
itype=word;
var mass : array [1..n] of itype;
    i, j,x, k: integer;

Procedure Swap(Var a, b: itype);
Var p: integer;
begin
  p := a;
  a := b;
  b := p;
end;

function LengthI(ch:integer):integer;
var
 s:string;
begin
  str(ch,s);
  lengthi:=length(s);
end;
function NumberPos(ch,posi:integer):integer;
var
 s:string;
 code,tmpi:integer;
begin
  str(ch,s);
  if length(s)<posi then
    numberpos:=0
  else
  begin
    delete(s,1,length(s)-posi);
    if length(s)>1 then
      delete(s,2,length(s)-1);
    val(s,tmpi,code);
    numberpos:=tmpi
   end;
end;

procedure BucketSort(var mas: array [1..n] of itype);
var
  i,k,koliter,posf,posi,tmp:integer;
  mastmp: array [1..n] of itype;
  pos: array [1..n] of byte;
begin
  koliter:=0;

  for i:=1 to n do
  begin
    if lengthi(mas[i])>koliter then
      koliter:=lengthi(mas[i]);
    pos[i]:=0;
  end;
  for i:=1 to koliter do
  begin
    for k:=1 to n do
    begin
      pos[k]:=numberpos(mas[k],i);
      mastmp[k]:=mas[k];
    end;
    posi:=1;
    for posf:=0 to 9 do
      for k:=1 to n do
        if (pos[k]=posf) then
        begin
          mas[posi]:=mastmp[k];
          inc (posi);
        end;
  end;
end;
procedure CreateArr;
const arr:array[1..10]of itype = (1235,2345,3462,42415,4214,2425,12412,4200,1255,24456);
var a:byte;
 begin
  randomize;
  WriteLn(' Створення');
  WriteLn('   1 Випадкове заповнення');
  WriteLn('   2 Масив -константа');
   WriteLn(' 0 Повернення в головне меню');
  readln(a);
  case a of
  1:begin
  for i:= 1 to n do
     mass[i] := random(65535);
  writeln('Масив створено');
    end;
  2: begin
  for i:= 1 to n do
     mass[i] := arr[i];
  writeln('Масив створено');
     end;
 end;
 end;
Procedure PrintArr(var m:array[1..n] of word );
Begin
 for i:= 1 to n do
      write (m[i],'   ');
writeln;
end;
procedure SelectionSort(var m:array[1..n] of word );
begin
for i:= 1 to n-1 do
    begin
     for j:= i+1 to n do
         if mass[i]>mass[j] then
             swap(m[i],m[j]);
     end;
end;
begin
  repeat
  WriteLn('1. Створення');
  WriteLn('2. Виведення');
  WriteLn('3. Сортування вибором');
  WriteLn('4. Розподілбьне сортування');
  WriteLn('0. Виход');
  Write(' Обер1ть д1ю: ');

readln (x);
case x of
1:CreateArr();
2:PrintArr(mass);
3:SelectionSort(mass);
4: BucketSort(mass);
0:break;
end;
 until false;
end.
помогите пожалуйста
Grynyuk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевести с Паскаля на Си lyubov17 Помощь студентам 0 10.12.2013 21:11
Перевести код из Паскаля в С++. cristianoman Помощь студентам 4 26.03.2013 00:15
перевести из паскаля на с++ екатерина новикова Общие вопросы C/C++ 1 19.12.2011 19:21
перевести из паскаля в си++ екатерина новикова Помощь студентам 0 19.12.2011 19:02