Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 19.10.2014
Сообщений: 10
1

Ошибка "Object reference not set to an instance of an object" при создании списка

25.03.2015, 15:37. Просмотров 1009. Ответов 2
Метки нет (Все метки)

Добрый день.
Задача такая: На входе дано несколько чисел (не знаем, какое кол-во). На выходе должна быть упорядоченная последовательность этих чисел.
Здесь решение задачи с помощью линейного динамического списка.
Когда ввожу числа, в которых дважды нужно поместить значение в конец, например, 5 3 8 9 (!), то выскакивает Ошибка времени выполнения: System.NullReference
Exception: Object reference not set to an instance of an object

на 34 строке (там помечено)

Не могу понять, что паскалю не нравится. Помогите, пожалуйста.

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
type uk = ^info;
     info = record
              data: integer;
              next: uk;
             end;
var p: uk;
    x: integer;
    
function min(zac: uk; x:integer):uk; {ищет первое число, которое больше чем х}
var s:uk;                            {возвращает указатель на пердыдущий}
begin
s:=zac;
if s^.next <> nil then
 begin
 if s^.next^.data < x then min(s^.next,x)
 else min:=s;
 end
else min:=s;
end;
 
procedure vloz(zac:uk; x: integer); 
var m,q,s:uk;
begin
new(m);
m:=zac;
new(q); q:=min(m,x);  
if m^.data > x then  {для вложения в начало}
 begin
 new(s); s^.data:=x;
 s^.next:=q;
 p:=s;
 end
else begin
 if q^.next <> nil then     { !!!!! Ошибка времени выполнения: System.NullReference}
  begin                     {Exception: Object reference not set to an instance of an object.}
  new(s); s^.data:=x;
  s^.next:=q^.next;            {для вложения в середину}
  q^.next:=s;
  end
else 
 begin                      {если число больше остальных}
 new(q^.next);              {вложит его в конец}
 q^.next^.data:=x; 
 end;
end;
end;
 
procedure vypis(zac:uk); {выписывает последовательность}
 begin
  if zac = nil then exit;
  write(zac^.data, ' ');
  vypis(zac^.next);
 end;
 
 
begin
new(p); readln(x); p^.data:=x;
while eof do
 begin
 readln(x); vloz(p,x); 
 end;
vypis(p);
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2015, 15:37
Ответы с готовыми решениями:

Ошибка времени выполнения: Object reference not set to an instance of an object
Есть код - в TP он нормально проходит компиляцию, а вот в PABC.net выдает ошибку - видимо я не...

Ошибка времени выполнения: Object reference not set to an instance of an object
Программа должна выводить на экран двоичное представление введённого числа. При этом обязательно...

Ошибка времени выполнения: Object reference not set to an instance of an object
Делал задачу begin 1 в paskalABC.net . Program aaaaaalegko; uses pt4; var a,p:real; begin...

Ошибка при использовании Contains: "NullReferenceException: Object reference not set to an instance of an object"
string a = &quot;aaaaa&quot;; string b = &quot; bbb&quot;; bool c = a.Contains (b); Выводит ошибку в 3 строке...

2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
29731 / 19554 / 7665
Регистрация: 22.10.2011
Сообщений: 34,106
Записей в блоге: 6
25.03.2015, 15:52 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
function min(zac: uk; x:integer):uk; {ищет первое число, которое больше чем х}
var s:uk;                            {возвращает указатель на пердыдущий}
begin
s:=zac;
if s^.next <> nil then
 begin
 if s^.next^.data < x then min :=min(s^.next,x) // <--- результат кто возвращать будет?
 else min:=s;
 end
else min:=s;
end;
1
0 / 0 / 0
Регистрация: 19.10.2014
Сообщений: 10
25.03.2015, 17:05  [ТС] 3
volvo, точно-точно. Спасибо большое!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2015, 17:05

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Ошибка "Object reference not set to an instance of an object" при ListBox1SelectedIndexChanged
Доброго дня всем!!! Подскажите плиз почему это событие void Button2Click(object sender, EventArgs...

WPF MP3 Player и ошибка "Object reference not set to an instance of an object"
Доброго времени суток. Пишу простой проигрыватель mp3 и столкнулся с следующей проблемой: при...

Исключение при выполнении кода "Object reference not set to an instance of an object"
Как исправить данный код ? Вроде всё правильно сделала. Выдаёт ошибку: Object reference not set...

Ошибка: "NullReferenceException: Object reference not set to an instance of an object".
Доброго времени суток. Пытаюсь реализовать систему постов &quot;новостной ленты, как в различных соц....


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.