Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
1 / 1 / 0
Регистрация: 28.10.2014
Сообщений: 28

Удалить первый встречающийся элемент списка

01.12.2014, 08:57. Показов 1400. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
программа которая читает список из файла и выводит его
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
program zadacha5;
uses crt;
type ukazat=^spisok;
spisok=record
pred,next:ukazat;
data:integer;
end;
var p,q:ukazat; n:integer;fout:text;
 
Procedure Init(Var u : Ukazat);
Var
x, y : Ukazat;
Digit : integer;
fin:text;
Begin
u := Nil;
assign(fin,'input3.txt');
reset(fin);
while not eof(fin) do begin
read(fin,Digit);
New(y);
y^.Data := Digit;
if u=Nil
then
begin
u := y;
x := y;
end
else
begin
x^.Next := y;
y^.pred := x;
x := y;
end;
end;
u^.pred := y;
y^.next := u;
close(fin);
End;
 
 
begin
clrscr;
new(p);
init(p);
q:=p;
while p^.next<>q do
begin
Write(p^.Data, ' ');
p:=p^.next;
end;
 
 
end.
Не подскажите как удалить первый встречающийся элемент? и как напечатать элементы в обратном порядке?

Добавлено через 12 минут
Список не линейный, а циклический)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.12.2014, 08:57
Ответы с готовыми решениями:

Удалить первый отрицательный элемент
Заполнить массив из 10 элементов случайными числами в интервале . Вывести массив на экран. Удалить первый отрицательный элемент. Вывести на...

Удалить первый максимальный элемент массива
Помогите, пожалуйста, исправить задание!! Дан массив из n целых элементов. Удалить первый максимальный элемент, то есть сдвинуть все...

Удалить первый нечётный элемент в массиве.
Удалить первый нечётный элемент в массиве A, а последний элемент обнулить.

3
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
01.12.2014, 13:53
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

давайте начнём с того, что Вы исправите недочёт.

в этом коде:
Цитата Сообщение от eremin_sanek Посмотреть сообщение
Pascal
1
2
3
4
5
begin
  clrscr;
  new(p);
  init(p);
  q:=p;
вызов new(p) - в данном случае это ошибка! Вы выделяете память, которая после этого теряется!
уберите эту строчку из кода.

Добавлено через 53 минуты
Цитата Сообщение от eremin_sanek Посмотреть сообщение
как удалить первый встречающийся элемент? и как напечатать элементы в обратном порядке?
можно так:
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
program zadacha5;
uses crt;
type 
  ukazat = ^spisok;
  spisok = record
    pred, next: ukazat;
    data: integer;
  end;
 
procedure Init(var u: Ukazat);
var
  x, y: Ukazat;
  Digit: integer;
  fin: text;
begin
  u := nil;
  assign(fin, 'input3.txt');
  reset(fin);
  while not eof(fin) do begin
    read(fin, Digit);
    New(y);
    y^.Data := Digit;
    if u = nil then
    begin
      u := y;
      x := y;
    end
    else
    begin
      x^.Next := y;
      y^.pred := x;
      x := y;
    end;
  end;
  u^.pred := y;
  y^.next := u;
  close(fin);
end;
 
procedure PrintOrdinal(u: Ukazat);
var
  q, x: Ukazat;
begin
  if u<>nil then begin
    q := u;
    x := q;
    repeat
      Write(x^.Data, ' ');
      x := x^.next;
    until x = q;
  end;
  WriteLn;
end;
 
procedure PrintReverse(u: Ukazat);
var
  q, x: Ukazat;
begin
  if u<>nil then begin
    q := u^.pred;
    x := q;
    repeat
      Write(x^.Data, ' ');
      x := x^.pred;
    until x = q;
  end;
  WriteLn;
end;
 
procedure DeleteFirstElement(var u: Ukazat);
var
  x: Ukazat;
begin
  if u<>nil then begin
    u^.pred^.next := u^.next;
    u^.next^.pred := u^.pred;
    x := u;
    u := u^.next;
    Dispose(x)
  end;
end;
 
 
var
  p: ukazat;
begin
  clrscr;
  init(p);
  Write('Spisok from file:');
  PrintOrdinal(p);
  Write('Spisok in reverse:');
  PrintReverse(p);
  Write('Spisok again: ');
  PrintOrdinal(p);
  // удаление первого элемента в циклическом списке
  DeleteFirstElement(p);
  Write('Spisok after delete: ');
  PrintOrdinal(p);
  Write('Spisok in reverse after delete:');
  PrintReverse(p);
end.
0
1 / 1 / 0
Регистрация: 28.10.2014
Сообщений: 28
01.12.2014, 15:47  [ТС]
Sergio Leone, спасибо большое за отзыв и помощь!
0
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
01.12.2014, 16:00
eremin_sanek, всегда пожалуйста!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.12.2014, 16:00
Помогаю со студенческими работами здесь

Удалить из массива первый элемент, кратный 3
Дан одномерный целочисленный массив из N элементов. Удалить из него первый элемент массива, кратный 3

Удалить первый элемент массива, в котором есть цифра 5
Удалить первый элемент массива, в котором есть цифра 5.

Удалить первый элемент «списка», оставив заголовок.
Составить оператор ISERT_IN_i, который добавляет элемент в позицию i «списка». Удалить первый элемент «списка», оставив заголовок. ...

Удалить первый отрицательный элемент массива, если такой элемент есть
1. Удалить первый отрицательный элемент массива, если такой элемент есть. 2. Вставить два элемента с данными значениями: первый – после...

Поменять местами первый и последний элемент двунаправленного списка
Помогите пожалуйста с задачей. Необходимо реализовать процедуру, которая меняет местами первый и последний элемент в двунаправленном...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru