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

Вывод на экран элемента из списка за его номером

21.01.2012, 16:42. Показов 1835. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне необходимо в процедуре вывести на экран один элемент из списка по его номеру.
У меня 10 элементов.
Я нашел как удалять из списка за номером в интернете:
Pascal
1
2
3
4
5
6
7
8
9
10
11
x := Head; {Переменная х для хранения адреса удаляемого элемента}
 
{Найдем адреса нужных элементов списка}
 
while (x<>Nil) and (x^.Data<>Digit) do
  Begin
    dx := x;
    x := x^.Next
  End;
dx^.Next := x^.Next;
Dispose(x);

Вот мои нароботки:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
procedure vivzanom(uk:pp);
begin
writeln('Введите номер элемента');
readln(n);
writeln (' Поле1','':6,' Поле2','':6,' Поле3','':6);
?
?
?
?
?
?
end;
Каким образом можно указать именно на тот элемент, какой указывает пользователь?

Добавлено через 5 часов 7 минут
Я добавил еще одно поле и назвал его номер элемента.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure vivzanom(uk:pp);
var tt:pp;
t:byte;
begin
writeln('Ââåä³òü íîìåð åëåìåíòà, ÿêèé íåîáõ³äíî âèâåñòè');
readln(t);
writeln ('Íîìåð','',' ïîëå 1','':6,' ïîëå 2','':6,' ïîëå 3','':6);
while uk<>nil do
begin
if uk^.pole4=t then
writeln('':2,uk^.pole4,'':2,uk^.pole1, '':12,uk^.pole2,'':12, uk^.pole3,'':12);
uk:=uk^.pnt;
end;
end;
но программа все равно не работает(((

Добавлено через 5 минут
Вот полностью программа, почему-то работает только с последним элементом...
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
115
116
117
118
119
120
121
122
123
124
125
uses crt;
type pp=^el;
el=record
     pole1:word;
     pole2:word;
     pole3:char;
     pole4:byte;
     pnt:pp;
     end;
var pb,uk:pp;
k,i,n:byte;
 
procedure sozd(var uk:pp);
var tt:pp;
begin
n:=1;
randomize;
new(tt);
uk:=tt;
tt^.pole1:=random(100);
tt^.pole2:=random(100);
tt^.pole2:=random(30);
tt^.pole4:=n;
for i:=1 to 8 do
begin
n:=n+1;
new(tt^.pnt);
tt:=tt^.pnt;
tt^.pole1:=random(100);
tt^.pole2:=random(100);
tt^.pole2:=random(30);
tt^.pole4:=n;
end;
tt^.pnt:=nil;
writeln('ñïèñîê ñòâîðåíî');
end;
 
procedure vyv(uk:pp);
begin
if uk=nil then
writeln('ñïèñîê ïîðîæí³é')
else writeln('Íîìåð','',' ïîëå 1','':6,' ïîëå 2','':6,' ïîëå 3','':6);
while uk<>nil do
begin
writeln('':2,uk^.pole4,'':2,uk^.pole1, '':12,uk^.pole2,'':12, uk^.pole3,'':12);
uk:=uk^.pnt;
end;
readkey;
end;
 
 
 
 
procedure dodav(var uk:pp);
var tt:pp;
begin
randomize;
new(tt);
uk:=tt;
tt^.pole1:=random(100);
tt^.pole2:=random(100);
tt^.pole2:=random(30);
tt^.pole4:=n+1;
tt^.pnt:=nil;
uk^.pnt:=tt;
uk:=tt;
writeln('Åëåìåíò äîäàíî:');
writeln ('Íîìåð','',' ïîëå 1','':6,' ïîëå 2','':6,' ïîëå 3','':6);
writeln ('':2,uk^.pole4,'':2,uk^.pole1, '':12,uk^.pole2,'':12, uk^.pole3,'':12);
end;
 
 
 
procedure vivzanom(uk:pp);
var tt:pp;
t:byte;
begin
writeln('Ââåä³òü íîìåð åëåìåíòà, ÿêèé íåîáõ³äíî âèâåñòè');
readln(t);
writeln ('Íîìåð','',' ïîëå 1','':6,' ïîëå 2','':6,' ïîëå 3','':6);
while uk<>nil do
begin
if uk^.pole4=t then
writeln('':2,uk^.pole4,'':2,uk^.pole1, '':12,uk^.pole2,'':12, uk^.pole3,'':12);
uk:=uk^.pnt;
end;
end;
 
 
procedure vilzanom(uk:pp);
begin
{
}
end;
 
procedure vilzavlas(uk:pp);
begin
{
}
end;
 
begin
while true do
begin writeln;
writeln('âèáåð³òü îïåðàö³þ íàä ñïèñêîì:');
writeln('1:ñòâîðåííÿ ñïèñêó');
writeln('2:âèâåäåííÿ âì³ñòó ïîë³â åëåìåíò³â ñïèñêó*');
writeln('3:äîäàòè åëåìåíò ñïèñêó*');
writeln('4:âèâåñòè åëåìåíò ñïèñêó çà íîìåðîì*');
writeln('5:âèëó÷åííÿ åëåìåíòà ñïèñêó çà íîìåðîì*');
writeln('6:âèëó÷åííÿ åëåìåíòà ñïèñêó çà âëàñòèâ³ñòþ*');
writeln('7:âèõ³ä ç ïðîãðàìè');
read(k);
case k of
1:sozd(pb);
2:vyv(pb);
3:dodav(pb);
4:vivzanom(pb);
5:vilzanom(pb);
6:vilzavlas(pb);
7:exit;
else continue;
end;
end;
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.01.2012, 16:42
Ответы с готовыми решениями:

Реализовать поиск элемента по его индексам и вывод его на экран
Уважаемые мужчины=) помогите написать программу. А то как Вы знаете слабый пол не дружит с железячками типа компа=))))) заранее огромное...

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

Вычленение n-го элемента из заданного списка и вывод 2х его соседей вместе с ним
Есть вычисление n-го элемента из заданного списка s (1, h:t) = h s (n, h:t) = s (n - 1, t) Нужно чтобы он еще выводил 2 соседних...

2
2 / 2 / 0
Регистрация: 09.02.2011
Сообщений: 78
22.01.2012, 21:18  [ТС]
Ребята, помогите, пожалуйста, у меня в программе после добавление одного элемента, остальные удаляются. Что это может быть?
0
206 / 182 / 104
Регистрация: 10.01.2011
Сообщений: 302
22.01.2012, 22:22
Цитата Сообщение от alex-soft Посмотреть сообщение
Ребята, помогите, пожалуйста, у меня в программе после добавление одного элемента, остальные удаляются. Что это может быть?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure dodav(var uk:pp);
var tt:pp;
begin
randomize;
new(tt);
{uk:=tt;}
tt^.pole1:=random(100);
tt^.pole2:=random(100);
tt^.pole2:=random(30);
tt^.pole4:=n+1;
{tt^.pnt:=nil;}
tt^.pnt:=uk;
{uk^.pnt:=tt;}
uk:=tt;
writeln('Елемент додано:');
writeln ('Номер','',' поле 1','':6,' поле 2','':6,' поле 3','':6);
writeln ('':2,uk^.pole4,'':2,uk^.pole1, '':12,uk^.pole2,'':12, uk^.pole3,'':12);
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.01.2012, 22:22
Помогаю со студенческими работами здесь

Создание списка, печать списка на экран, добавления элемента в начало списка, конец списка
Построить динамическую структуру типа список . Необходимо реализовать следующие процедуры: 1. создание списка. 2. печать списка на...

Очередь на базе списка: добавление элемента, удаление, поиск в очереди, вывод на экран
Может у кого есть готовое решение этого задания, буду Вам очень признателен. Желательно что бы пользователь сам вводил значения с...

Написать программу ,выполняющую сложение элемента а(i,j),с его номером j ,если значение элемента меньше j
Вводится двумерный массив А(6,6) вещественных чисел.Написать программу ,выполняющую: а) сложение элемента а(i,j),с его номером j ,если...

Найти среднее арифметическое элементов очереди от элемента с номером n1до элемента с номером n2
Очередь. Найти среднее арифметическое элементов очереди от элемента с номером n1до элемента с номером n2 ( включая n1 и n2).

Вычислить подсписок исходного списка, начинающийся с элемента с указанным номером
Здравствуйте. Подскажите пожалуйста почему не работает программа, пишу на Prolog 5.2. Условие: Создайте предикат, вычисляющий по списку и...


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

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