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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Лаба. Тема: Разработка и отладка алгоритмов и программ с использованием динамических структур. http://www.cyberforum.ru/cpp-beginners/thread380800.html
Задание Необходимо разработать программу, в которой выполняется ввод списка записей определенного типа, а затем - поиск записи в списке. Сначала в программе должен вводиться размер списка(целое число), а сам список создается в виде динамического массива структур как список со связанным хранением. После ввода списка программа переходит в диалоговый режим: запрос - ответ. Т.е....
C++ Сжать последовательность чисел,удаляя из неё все нули Помогите в решении задачи,одномерный массив. Сжать последовательность чисел,удаляя из неё все нули.За ранее большое спасибо. http://www.cyberforum.ru/cpp-beginners/thread380794.html
C++ Нужна програмка которая заменяет 1 символ на 3 любые в строке
Нужна програма на С. Пример (заменим 'пробел' на '---'): Слово1 слово2 слово3. символов Слово1---слово2---слово3. символов думаю вы догадались в чём проблема строка увиличуетса
C++ Найти сумму ряда
Добрый вечер! Помогите пожалуйста решить задачи на С++. Информация во вложении. Заранее благодарен.
C++ Написать функцию, что вычисляет длину строки http://www.cyberforum.ru/cpp-beginners/thread380781.html
помогите написать программу по эти критериям size_t strlen( const char *s); Функция вычисляет длину строки s. должна вводиться строка и выводится ёё длина в символах
C++ Найти количество последовательностей положительных чисел, длина которых больше 7 Задачка такая - заполнить одномерный массив элементами от -50 до 50. Найти количество последовательностей положительных чисел, длина которых больше 7. Извините, что отвлекаю такой ерундой) #include <stdio.h> #include <time.h> #include <stdlib.h> int Ar; int main(void) { int i,k,c; for (i=0; i<200; Ar=rand()%100-50); printf("Pochatkoviy massiv:\n"); for (i=0;... подробнее

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


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.
Буду очень рад если поможете...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru