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

Список: Формирование списка из n элементов, вставка элемента после минимального, удаление дубликатов.

23.09.2017, 00:43. Показов 1040. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Формирование списка из n элементов. Вставка элемента после минимального. Оставить в списке только первые вхождения элементов. Выполнить сортировку списка по убыванию.
Приложенные процедуры:
Кликните здесь для просмотра всего текста
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
 const
  Maxspisok =   15;
type
  Spisok = array[1..2, 1..maxspisok] of integer;
var
  x, us, un,u1,u2 ,y, code, pred, n,ind,j,indmin,min: integer;
  sp: spisok;
 
procedure newspisok(var Sp: Spisok; var US, un: integer);// Форматирование Пустого списка
begin
  for var i := 1 to Maxspisok - 1 do
    sp[2, i] := i + 1;
  sp[2, Maxspisok] := 0;
  US := 1;
  Un := 0;
end;
 
procedure InsSpisok(var Sp: Spisok; var Us, UN, Code, X: integer);// Добавление элемента х в список
var
  Us2: integer;
begin
  if us = 0 then begin Code := 1; exit; end;
  uS2 := Sp[2, us];
  Sp[1, Us] := x;
  Sp[2, us] := un;
  Un := US;
  Us := Us2;
  Code := 0;
end;
 
procedure Print(var sp: Spisok; UN: integer );// Печать Списка
var
 i:integer;
  U: integer;
begin
  U := Un;
  while u <> 0 do
  begin
    write(Sp[1, u], ' ');
    U := Sp[2, u];
  end; 
end;
 
procedure Poiskx(var Sp: spisok; var us, Un, Code, x, pred, ind: integer);// Поиск элемента X В списке
begin
  ind := Un;
  pred := 0;
  while (ind <> 0) and (Sp[1, ind] <> x) do
  begin
    Pred := ind;
    Ind := Sp[2, ind];
  end;
  if ind = 0 then Code := 2 else Code := 0;
end;
 
 
procedure Remspisok(var Sp: Spisok; var Us, Un, COde, pred, ind: integer);// Удаление элемента х из Списка
begin
  sp[2, pred] := Sp[2, ind];
 Sp[2, ind] := Us;
  Us := Ind;
  Code := 0;
end;
 
procedure InsSpisokX(var Sp: Spisok; var Us, Un, Code, pred, ind, y: integer);// Добавление в список элемента после элемента Х
var
  Us2: integer;
begin
  if US = 0 then begin Code := 1;exit; end;
  Us2 := Sp[2, Us];
  Sp[1, us] := y;
  Sp[2, us] := Sp[2, ind+1];
  Sp[2, ind+1] := Us;
  Us := Us2;
  Code := 0;
  end;
 
Procedure Sort(var Sp:spisok; var us, un: integer);//Сортировка списка
var ind,next,temp,i,sorted:integer;
begin
sorted:=0;
 
while sorted=0 do
begin
ind:=un;
next:=Sp[2,ind];
sorted:=1;
  While next<>0 do
  begin
  if Sp[1,ind]<Sp[1,next] then
    begin
    temp:=Sp[1, next];
    Sp[1,next]:=Sp[1,ind];
    Sp[1,ind]:=temp;
    sorted:=0;
    end;
  ind:=next;
  next:=Sp[2,ind];
  end;
end;
end;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.09.2017, 00:43
Ответы с готовыми решениями:

Вставка нового элемента в список, удаление элемента из списка, просмотра содержимого списка
очень нужно:tender: 1. Разработать подпрограммы, реализующие основные операции обработки линейного односвязного списка: вставка нового...

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

Списки, вставка Х элементов в список после 2-ого элемента
Доброго времени суток, прошу помощи у знающих. что то списки совсем туго даются.. задача - имеется некий список, нужно вставить несколько...

5
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
24.09.2017, 11:18
1. Вставить после - сдвинуть все элементы вправо, стоящие после некоторого элемента. Если вставляешь после i-ого, то все, начиная с i+1 сдвигаешь вправо, а на место i+1 суешь тот, которые вставить надо. (Применяй Insert(i + 1) для вставки после i-ого элемента в список.)
2. Сортировка по убыванию - OrderByDescending.
Pascal
1
2
3
4
begin
  var L := ReadArrInteger(6).ToList();
  L.OrderByDescending(x -> x); // Само число является ключем.
end.
Добавлено через 2 минуты

Не по теме:

Мне сложно читать твой код - нет единого стиля.

1
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 59
24.09.2017, 14:10  [ТС]
Дело в том, что нужно реализовать данную программу по тем процедурам, которые приведены выше.
Цитата Сообщение от Volobuev Ilya Посмотреть сообщение
Не по теме:
Мне сложно читать твой код - нет единого стиля.
Уточните, где именно?
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
24.09.2017, 15:00
1. Нет единого стиля в названии процедур (то wordword, то WordWord, то Wordword).
2. Именования - транслит и не транслит.
3. Выравнивание ужасное.
4. Как по мне лучше константу N назвать - привыкайте делать программы более стандартизированными. Выработайте стиль и пишите по нему.

Добавлено через 1 минуту
Не обижайтесь, если резко.
1
0 / 0 / 0
Регистрация: 16.03.2016
Сообщений: 59
24.09.2017, 22:14  [ТС]
Нет, не обижаюсь. Процедуры организованны ужасно (не мной, а преподавателем) и именно поэтому я не могу составить программу.

Добавлено через 3 часа 17 минут
Появились наработки, подскажите, как вставить произведение (переменная k) в конец очереди.
Код:
Кликните здесь для просмотра всего текста
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
102
103
104
105
106
107
108
109
110
111
112
113
114
program ilya_ochered;
 
const
  n = 9;
type
  egor = array [1..2, 1..n] of real;
 
var
  egr: egor;
  i, y: integer;
  c, k, le, fe, code, fste, rand, pred, ind, x, w, remElement, min, max: real;
 
procedure newegor(var Sp: egor; var firstElement, FreeElement: real);
var
  i: integer;
begin
  for i := 1 to n - 1 do
    Sp[2, i] := i + 1;
  Sp[2, n] := 0;
  FreeElement := 1;
  firstElement := 1;
end;
 
procedure insegor(var Sp: egor; var FreeElement, Code, x: real);
var
  y: integer;
begin
  if FreeElement = 0 
  then 
  begin
    Code := 1;
    exit;
  end;
  y := round(FreeElement);
  Sp[1, y] := x;
  FreeElement := Sp[2, y];
  Code := 0;
end;
 
procedure printegor(var Sp: egor; var FirstElement, FreeElement: real); // печать
var
  ind: real;
  i, y: integer;
begin
  write('Очередь: ');
  // y:=round(FreeElement);
  ind := FirstElement;
  // y:=round(FirstElement);
  while ind <> FreeElement do
  begin
    write(Sp[1, round(ind)], ' ');
    ind := round(Sp[2, round(ind)]);
  end;
end;
 
procedure PoiskMinEl(var Sp: egor; var FirstElement, FreeElement, Min: real); // умножение 
var
  ind, y, i: integer;
begin
  y := round(FreeElement);
  ind := 1;
  c := Sp[1, 1];
  k := 1;
  for i := 1 to 9 do 
  begin
    if c < 0 then begin
        c:=trunc(c);   
      k := k * c;
    c := sp[1, i];
    end;
    c := sp[1, i];
    end;
  c := sp[1, 9];
  c:=trunc(c);
  if c < 0 then
  begin
  
  c:=trunc(c);
  k := k * c;
  end;
  if k < 0 then k := k * -1;
    writeln;
    
    writeln('Произведение целых частей отриательных элементов очереди ', k);
end;
 
procedure RemoveElement(var Sp: egor; var FirstElement, FreeElement, x: real); //удаление
var
  i, y, p: integer;
begin
  y := round(firstElement);
  p := round(x);
  for i := y to y + p - 1 do
    firstElement := Sp[2, i];
end;
 
begin
  newegor(egr, fste, fe);
  for i := 1 to 9 do 
  begin
    rand := random(6) - random(37)/10;
    insegor(egr, fe, code, rand);
  end;
  printegor(egr, fste, fe);
  writeln;
  PoiskMinEl(egr, fste, fe, c);
  insegor(egr, fe, code, c);
  printegor(egr, fste, fe);
  writeln;
  w := 3;
  RemoveElement(egr, fste, fe, w);
  printegor(egr, fste, fe); 
  
end.
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
25.09.2017, 13:55
Цитата Сообщение от vote Посмотреть сообщение
списка
Список и массив разные вещи. Если речь бы шла о списках List<T>, то тут - используй готовые процедуры и функции. Если о массиве, то можно преобразовать список к массиву. То, что дал преподаватель, по малой мере нехорошо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.09.2017, 13:55
Помогаю со студенческими работами здесь

Удаление минимального элемента списка
Помогите, пожалуйста, переделать или исправить удаление мин. элемента списка. #include&lt;iostream&gt; #include&lt;stdlib.h&gt; ...

Удаление минимального положительного элемента, расположенного после последнего отрицательного элемента
В одномерном массиве размерностью n удалить минимальный среди положительных элементов, выбранный из части массива, расположенной после...

Вставка нового элемента списка после элемента (Нужно объяснение)
Дано задание объяснить все строчки этого кода, понял только саму идею, может кто-то поможет. type Ptr=^count; count=Record ...

Удаление элемента и вставка в середину динамического связного списка
Добрый день. Помогите, пожалуйста, реализовать метод вставки в середину списка и удаление по принципу &quot;после такого-то элемента&quot; ...

Список: Формирование списка из n элементов.
Формирование списка из n элементов. Вставка элемента после минимального элемента. Удаление второго элемента. Удвоить каждое вхождение...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
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 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru