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

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

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

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

09.11.2011, 22:09. Просмотров 387. Ответов 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.
Буду очень рад если поможете...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2011, 22:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переписать функцию с Паскаля на С++ (C++):

переписать из паскаля в с++ - C++
var n, i, max, cnt : Integer; a : array of Integer; begin ReadLn (n); for i := 1 to n do Read (a);

Переписать з паскаля на С - C++
Нужно переписать две програми з Turbo pascal в Turbo C 1. Визначення, чи дорівнює сума цифр цілої частини дійсного числа сумі такої ж...

Переписать с паскаля на С++ - C++
Переведите плиз вт это в С++ Заранее Сапасибо!!!! var ms:array of integer; max,s,k,i:integer; begin

Переписать с Паскаля на С++ - C++
Ребят, можете переписать с Паскаля на С++ program PROGRAMMA7; uses crt, graph; const n=100; m=100; h=1; dt=0.2; var ...

Переписать с Паскаля в с++ - C++
Помогите пожалуйста - переделать программу на с++ с использованием структур - очень прошу всех откликнуться... type student=record ...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
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;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2011, 23:38
Привет! Вот еще темы с ответами:

Переписать с Паскаля на C++ - C++
Все доброго времени суток. Нужно переписать программу с паскаля на плюсы. Смысл программы в том, что она расставляет скобки приоритета для...

Переписать с паскаля на С - C++
Помогите переписать на язык С program tabul; uses crt,graph; const a1=6;b1=14;h1=0.25; label metka; var a,b,h,x1,y1:real; ...

Переписать из паскаля - C++
Здравствуйте помогите пожалуйста переписать на с++:) var a,b:array of integer; n,i,c,d,mind:integer; begin read(n); for...

Переписать с Паскаля на С++ - C++
program ClassificationYard; const Nmax = 100; type TRailroadCars = (TypeA, TypeB); TArray = array of TRailroadCars; ...


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

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

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