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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2013, 23:03   #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:longint):integer;
var
 s:string;
begin
  str(ch,s);
  lengthi:=length(s);
end;
function NumberPos(ch,posi:longint):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,l,posi,tmp:longint;
  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('1. Заполнение');
  WriteLn('   - случайно');
  WriteLn('   - константа');
  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
 
  WriteLn('1. создание');
  WriteLn('2. печать');
  WriteLn('3.сортировка выборомм');
  WriteLn('4. сортировка распределением');
  WriteLn('0. выход');
  Write(' выберите действие: ');
repeat
readln (x);
case x of
1:CreateArr();
2:PrintArr(mass);
3:SelectionSort(mass);
4: BucketSort(mass);
0:exit;
end;
 until false;
end.
Grynyuk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программу нужно перевести из паскаля в делфи Ильшат Садыков Компоненты Delphi 1 09.06.2010 19:49
нужно перевести программу с Паскаля на С SweetDream Помощь студентам 4 24.04.2010 17:51
Нужно перевести с Паскаля на с++ megavolt91 Фриланс 6 26.05.2009 00:14
Нужно перевести задачу с паскаля на DELPHI VDK23RUS Помощь студентам 8 16.06.2007 15:38