Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
3 / 3 / 0
Регистрация: 04.12.2011
Сообщений: 119
1

Задача со списками, меняем местами эелементы

05.06.2013, 12:33. Показов 359. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Принес сегодня на сдачу задачу со списками, все работало и сделано правильно, по условию a1,a3,a2,a4,a5,..,an при вводе 1,2,3,4,5 выводила 1,3,2,4,5. Препод сказал, что я понял не так задачу, должна быть a1,a3,a2,a4,a5,a7,a6,a8,..,an. ввод 1,2,3,4,5,6,7,8 вывод 1,3,2,4,5,7,6,8. Помогите сделать данный вывод, программа внизу...


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
67
68
69
70
71
72
73
74
75
76
77
78
 {Дан список из n целых чисел a1,a2,...,an.
                Вывести на экран элементы списка в указанной последовательности: 
                [U]a1,a3,a2,a4,a5,a7,a6,a8,...,an[/U]}
program prog1305a;
 
uses crt;
 
type PList = ^TList;
     TList = record
       info: integer;
       prev, next: PList //prev(previous)
     end;
 
var
  head, tail: PList;
 
{Процедура создания списка}
procedure MakeList(var head, tail:PList);
var k, i, N: integer;
    p: PList; 
begin
  new(head);
  new(tail);
  head^.next:= tail;
  tail^.prev:= head;
  write('Сколько чисел будите вводить? ');
  read(N);
  for i:= 1 to N do
  begin
    new(p);
    read(k);
    p^.info:= k;
    p^.next:= tail;
    p^.prev:= tail^.prev;
    p^.prev^.next:= p;
    tail^.prev:= p;
  end;
end;
 
{Процедура печатает список на экран}
procedure PrintList(var head, tail:PList);
var p: PList;
begin
  p:= head^.next;
  while (p <> tail) do
  begin
    write(P^.info:7);
    p:= p^.next
  end;
end;
 
{ПРоцедура меняет значения местами}
 
procedure MenyaemMestami(head, tail: PList);
var p, q: PList;
begin
  p:= head^.next^.next;
  q:= p^.next;
  p^.next:= q^.next;
  q^.next^.prev:= p;
  q^.next:= p;
  head^.next^.next:= q;
  q^.prev:= head^.next; 
  p^.prev:= q;
end;
 
Begin
  clrscr;
  MakeList(head, tail);
  clrscr;
  writeln('Исходный список: ');
  PrintList(head, tail);
  writeln();
  MenyaemMestami( head, tail);
  writeln('Отсортированный список: ');
  PrintList(head, tail);
  writeln;
End.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2013, 12:33
Ответы с готовыми решениями:

В двумерном массиве, в каждоый строке сначала разместить положительные эелементы, потом отрицательные эелементы.
Прошу помочь с решением. Задача: В двумерном массиве, в каждоый строке сначала разместить...

меняем местами
У нас есть две целые переменные А и В написать программу которая меняет местами значения этих...

Меняем столбцы местами. Двумерка
Двумерный массив из четного числа столбцов. Поменять местами первый столбец со вторым, третий — с...

Меняем элементы списка местами
Привет всем, до этого писал на Basic, где есть оператор SWAP меняющий два элемента местами. Тут по...

0
05.06.2013, 12:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2013, 12:33
Помогаю со студенческими работами здесь

Меняем компоненты местами рандомно
Здравствуйте уважаемые знатоки Delphi! Итак у меня есть тест-программа которая читает и выводит...

Меняем местами рубли и копейки (ошибка)
CLS INPUT &quot;Vvedite M (M&lt;51): &quot;; M INPUT &quot;Vvedite R: &quot;; R INPUT &quot;Vvedite K: &quot;; K LET P =...

Меняем значения двух переменных местами
Всем добрый вечер и следующий вопрос. На просторах интернета нашел такой вот метод смены двух...

Drag and Drop меняем местами объекты
Подскажите, пожалуйста, как поменять в виндоус-приложении кнопки местами. То есть есть три кнопки....


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru