Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
3 / 3 / 2
Регистрация: 21.12.2014
Сообщений: 100

Нахождение первого из минимальных и последнего из положительных элементов списка

23.05.2015, 14:08. Показов 657. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, помогите осуществить процедуру нахождения первого из минимальных и последнего из положительных элементов списка.
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
{
Задача:
  Дан список из n целых чисел a1, a2, ..., an. Поменять местами первый из
  минимальных и последний из положительных элементов списка
 
program laba_10;
type
  list = record
         info: integer;
         next, pred: ^list;
         end;
  plist = ^list;
var
  head, tail: plist;
 
{Процедура MakeRandomList создает двусвязный список из случайного
 количества элементов, из случайных целых чисел, с двумя сторожами}
procedure MakeRandomList(var head, tail : ^list);
var
  p       : ^list;
  i, info : integer;    //Счетчик и значение info элементов
  number  : integer;    //Количество элементов
begin {MakeList}
  //создаем сторожей
  new(head);
  new(tail);
  head^.next := tail;
  tail^.pred := head;
  number := random(5,10);  //Задаем случайное количество элементов
 
  for i := 1 to number do  //Заполняем список случайными числами
    begin
      info := random(199) - 100;
      new(p);
      p^.info := info;
      p^.next := tail;
      p^.pred := tail^.pred;
      p^.pred^.next := p;
      tail^.pred := p;
    end;
end;  {MakeList}
 
{Процедура выводит список на экран}
procedure Printlist(head,tail:plist);
var
  p : plist;
begin  {Printlist}
  p := head^.next;
  while p <> tail do
  begin
    write(p^.info : 5);
    p := p^.next;
  end;
end; {Printlist}
 
{Процедура находит первый из минимальных и последний из положительных элементов списка, и меняет их местами}
procedure ExanMinMax(head, tail: plist);
var
  temp1,temp2:list;
  p, l, q : plist;
  firstmin,lastpos : integer; // Первый из  минимальных и последний из положительных элементов списка
begin {ExanMinMax}
  p := head^.next;       // Пропускаем головного сторожа
  l := p;
  while p <> tail do    // Пока р не дошел до хвоста
    begin
      if p^.info < firstmin then
      begin
          firstmin := p^.info;
          l := p;
      end;
      if p^.info > 1  then
        begin
          q := p;
          lastpos := p^.info;
        end;
      p := p^.next;
    end;
  // Обмен максимального положительного с минимальным значением элемента
  
  writeln;
  writeln('Последний положительный из элемент:', q^.info:5);
  writeln('Минимальный элемент:', l^.info : 5);
end;  {ExanMinMax}
 
 
Begin
  randomize;
  MakeRandomList(head, tail);
  writeln('Исходный список случайных чисел:');
  PrintList(head,tail);
  ExanMinMax(head,tail);
  writeln();
  writeln('Список со сменой первого из минимальных и последнего из положительных элементов списка:');
  PrintList(head,tail);
End.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.05.2015, 14:08
Ответы с готовыми решениями:

Осуществить процедуру нахождения первого из минимальных и последнего из положительных элементов списка
Ребят, помогите осуществить процедуру нахождения первого из минимальных и последнего из положительных элементов списка. {Файл: L10 ...

Найти номера первого и последнего минимальных элементов из заданного набора
MiNmax8. Дано целое число N и набор из N целых чисел. Найти номера первой и последнего минимального элемента из данного набора и вывести их...

Найти сумму первого и последнего положительных элементов последовательности
Существует текстовый файл, заполненный случайными числами. Числа в любом диапазоне и в любом количестве. Необходимо прочитать первое и...

4
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33399 / 21509 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
23.05.2015, 15:45
Процедура для их нахождения у тебя уже есть. Вот только обмена местами найденных значений нет. Вот так:
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
var
  p, l, q : plist;
  firstmin : integer; // Первый из  минимальных и последний из положительных элементов списка
begin {ExanMinMax}
  firstmin := maxint;  // инициализировать значение не забываем
  p := head^.next;       // Пропускаем головного сторожа
  l := p;
  while p <> tail do    // Пока р не дошел до хвоста
    begin
      if p^.info < firstmin then
      begin
          firstmin := p^.info;
          l := p;
      end;
      if p^.info > 1  then
        begin
          q := p;
        end;
      p := p^.next;
    end;
  // Обмен максимального положительного с минимальным значением элемента
  
  writeln;
  writeln('Последний из положительных:', q^.info:5);
  writeln('Первый из минимальных:', l^.info : 5);
  
  var t : integer := q^.info;
  q^.info := l^.info;
  l^.info := t;
end;  {ExanMinMax}
1
3 / 3 / 2
Регистрация: 21.12.2014
Сообщений: 100
24.05.2015, 18:22  [ТС]
Да нет, надо менять ссылочные части. я тоже точно как ты же менял, но преподу не понравилось, сказал меняйй ссылочные части и там должно быть 8 присваиваний.
0
3 / 3 / 2
Регистрация: 21.12.2014
Сообщений: 100
25.05.2015, 21:28  [ТС]
volvo, не получится да у тебя поменять ссылочные части?
0
3 / 3 / 2
Регистрация: 21.12.2014
Сообщений: 100
10.06.2015, 23:21  [ТС]
Вопрос закрыт, создал процедуру обмена ссылочными частями, кому интересно пишите в лс
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.06.2015, 23:21
Помогаю со студенческими работами здесь

Найти сумму первого и последнего положительных элементов массива
Заданный массив действительных чисел X (n). Найти • сумму первого и последнего положительных элементов. Как посчитать проценти и...

Найти сумму первого и последнего элементов списка
Помогите решить задачу, найти сумму элементов первого и последнего в списке

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

Найти сумму первого и последнего элементов списка
Дан список, элементы которого являются действительными числами. Найти сумму первого и последнего элементов.

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru