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

Удалить из связанного списка все отрицательные значения

17.12.2015, 23:49. Показов 1399. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем, есть связанный список с любыми числами (real) и из этого списка нужно удалить все отрицательные значения. Помогите пожалуйста.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.12.2015, 23:49
Ответы с готовыми решениями:

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

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

Удалить из списка все отрицательные числа
Всем добрый день, утро или вечер. Прошу оказать помощь еще в одной задачке которую я даже понимаю с трудом. Прошу помочь решить задачку. ...

7
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
18.12.2015, 07:28
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
type
  tList = ^rList;
  rList = record
    N : Real;
    Next : tList;
  end;
 
function NumGeneration : Real;
begin
  NumGeneration := (Random - 0.5) * 100;
end;
 
function CreateList : tList;
var
  List, Cur : tList;
  i : Integer;
begin
  Randomize;
  New(List);
  List^.N := NumGeneration;
  Cur := List;
  for i := 1 to 9 do
    begin
      New(Cur^.Next);
      Cur := Cur^.Next;
      Cur^.N := NumGeneration;
    end;
  Cur^.Next := nil;
  CreateList := List;
end;
 
procedure OutList(List : tList);
begin
  while List <> nil do
    begin
      Write(List^.N:0:5, #32);
      List := List^.Next;
    end;
  WriteLn;
end;
 
procedure DelNegative(var List : tList);
var
  Cur, Exc : tList;
begin
  Cur := List;
  repeat
    if Cur^.N < 0 then
      begin
        if Cur = List then
          begin
            List := List^.Next;
            Dispose(Cur); Cur := List;
          end
        else
          begin
            Exc := Cur;
            Cur := List; while Cur^.Next <> Exc do Cur := Cur^.Next;
            Cur^.Next := Exc^.Next; Dispose(Exc);
          end;
      end
    else
      Cur := Cur^.Next;
  until Cur = nil;
end;
  
var
  List : tList;
 
begin
  List := CreateList;
  OutList(List);
  DelNegative(List);
  OutList(List);
end.
1
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
18.12.2015, 09:34
JuriiMW,
удаление возможно делать много проще и экономнее по ресурсам:
Pascal
1
2
3
4
5
6
7
8
9
procedure DelNegative(var List: tList);
var p: ^tList; t: tList;
begin
  p:=@List;
  while p^<>nil do
    if p^^.n<0 then begin
      t:=p^; p^:=p^^.next; Dispose(t);
    end else p:=@p^^.next;
end;
1
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
18.12.2015, 09:41
bormant, данный код не на ABC не будет работать…
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
18.12.2015, 09:45
JuriiMW,
интересно. У меня нет ABC, могу поинтересоваться, в чем там заключается несовместимость?
Возможно я неправильно прочитал/понял сказанное, но на TP и FPC (оба не ABC) -- работает.
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
18.12.2015, 10:08
Не понимает „p^^“ — для него это то же самое, что и „p^“.
Поэтому „@p^^.next“ — всегда будет возвращать nil

Я так понимаю, это плата за концепцию „всё объекты“…


Туго в нём с указателями… Особенно с переходом на .net !
Ругается типа „Ссылка на объект не указывает на экземпляр объекта.“

ЗЫ Запустил в PascalABC (без .NET). — Отработало нормально.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
18.12.2015, 10:37
JuriiMW,
спасибо.
Вообще говоря странно писать работу с указателями на том, что работу с ними не поддерживает.
Pascal
1
2
3
4
5
6
7
8
9
type
  PNode = ^TNode;
  TNode = record
    next: PNode; n: Integer;
  end;
var list: PNode;
begin
  New(list); 
end.
на http://pascalabc.net/WDE/ получил
{Ошибка времени выполнения: Методу "Program1.Program.new(Void* ByRef, Int32)", прозрачному для безопасности, не удалось получить доступ к критически важному методу безопасности "System.Runtime.InteropServices.Marshal. AllocHGlobal(Int32)".}
Или это только онлайн-среда так чудит?
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
18.12.2015, 10:49
bormant, IDE этот код отрабатывает норм…
Но для неё лучше писать так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
type
  tList = class
    N : Integer;
    Next : tList;
    
    constructor (valN : Integer; Nxt : tList);
    begin
      N := valN;
      Next := nil;
    end;
  end;
    
begin
  var List  := New tList(5, nil); // первый
  List.Next := New tList(6, List.Next); // за первым
  List.Next := nil; // потеря ссылки - не нужно освобождать
  List := nil; // забыли про список
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.12.2015, 10:49
Помогаю со студенческими работами здесь

Удалить из списка все отрицательные элементы
Дан список А, состоящий из записей: первое поле – вещественное число, второе – адрес следующего элемента. Составить программу, которая...

Удалить все отрицательные элементы из списка
описать процедуру,которая из списка A удаляет все отрицательные элементы

Удалить из списка все отрицательные числа
Построить линейный список из входной последовательности чисел. Удалить из него все отрицательные числа.

Удалить из списка все отрицательные элементы
Постановка задачи: Составить программу, которая удаляет из списка все отрицательные элементы люди умные спасите от провала в...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru