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

Переписать функцию с Паскаля на С++ - C++

Восстановить пароль Регистрация
 
gvilon
1 / 1 / 0
Регистрация: 24.05.2011
Сообщений: 12
09.11.2011, 22:09     Переписать функцию с Паскаля на С++ #1
Есть функция для сортировки списка вставками на Паскале.
Нужно переписать функцию на С++.


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function sort(head1:List):List;
var newList, cur, sel:List;
begin
  newList:=nil;
  while head1 <> nil do
  begin
    sel:=head1;
    head1:=head1^.next;
    if (newList = nil) or (sel^.inf < newList^.inf) then
    begin
      sel^.next:=newList;
      newList:=sel;
    end
    else
    begin
      cur:=newList;
      while(cur^.next <> nil) and (cur^.next^.inf < sel^.inf) do
       cur:=cur^.next;
      sel^.next:=cur^.next; cur^.next:=sel;
    end;
  end;
  sort:=newList;
end;
Вот небольшая програмка где используется єта функция..
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
type List = ^TList;
  TList = record
    inf: byte;
    next: List;
  end;
 
var head:List;
 
procedure createList();
var current, x:List;
  i:integer;
begin
  new(current);
  head:=current;
  current^.inf:=random(10);
  for i:=1 to 10 do
  begin
    new(current^.next);
    current:=current^.next;
    current^.inf:=random(10);
  end;
  current^.next:=nil;
end;
 
function sort(head1:List):List;
var newList, cur, sel:List;
begin
  newList:=nil;
  while head1 <> nil do
  begin
    sel:=head1;
    head1:=head1^.next;
    if (newList = nil) or (sel^.inf < newList^.inf) then
    begin
      sel^.next:=newList;
      newList:=sel;
    end
    else
    begin
      cur:=newList;
      while(cur^.next <> nil) and (cur^.next^.inf < sel^.inf) do
       cur:=cur^.next;
      sel^.next:=cur^.next; cur^.next:=sel;
    end;
  end;
  sort:=newList;
end;
 
procedure printList(a:List);
var current:List;
begin
  current:=a;
  while current <> nil do
  begin
    write(current^.inf:5);
    current:=current^.next;
  end;
  writeln;
end;
 
begin
  createList;
  printList(head);
  head:=sort(head);
  printList(head);
end.
Буду очень рад если поможете...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2011, 22:09     Переписать функцию с Паскаля на С++
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
09.11.2011, 23:38     Переписать функцию с Паскаля на С++ #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
List sort(List head1)
{
    List newList, cur, sel;
 
    newList = NULL;
    while(head1 != NULL)
    {
        sel = head1;
        head1 = head1->next;
        if((newList == NULL) || (sel->inf < newList->inf))
        {
            sel->next = newList;
            newList = sel;
        }
        else
        {
            cur = newList;
 
            while((cur->next != NULL) && (cur->next->inf < sel->inf))
                cur = cur->next;
 
            sel->next = cur->next;
            cur->next = sel;
        }
    }
 
    return newList;
}
Yandex
Объявления
09.11.2011, 23:38     Переписать функцию с Паскаля на С++
Ответ Создать тему
Опции темы

Текущее время: 20:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru