Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2016, 19:42   #1
Klubnic
 
Регистрация: 06.05.2016
Сообщений: 7
По умолчанию Помогите исправить ошибку в задаче на динамические переменные списки

Списки
Составить программу, которая в списке L из каждой группы подряд идущих одинаковых элементов оставляет только один.

Код:
type sp=^zap;
zap=record
inf:integer;
next:sp end;
var nach,p2,p:sp; a:integer;
begin
new(p);
nach:=p;
writeln('Введи числа до 0');
readln(nach^.inf);
repeat
p2:=p;
new(p);
p2^.next:=p;
readln(a);
if a<>0 then p^.inf:=a else p2^.next:=nil;
p^.next:=nil;
until a=0;
p:=nach;
while p<>nil do
if p^.inf = p^.next^.inf then p^.next:=p^.next^.next
else p:=p^.next;
p:=nach;
while p<>nil do
begin
write(p^.inf,' ');
p:=p^.next;
end;
writeln;
readln;
end.

Последний раз редактировалось Klubnic; 06.05.2016 в 19:52.
Klubnic вне форума Ответить с цитированием
Старый 06.05.2016, 19:46   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

а кусок паскаль-кода - эт чо?
https://yadi.sk/i/QpUAsh7Zba77q
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 06.05.2016, 19:56   #3
Klubnic
 
Регистрация: 06.05.2016
Сообщений: 7
По умолчанию

Так называемая программа которую накалякал
Klubnic вне форума Ответить с цитированием
Старый 06.05.2016, 20:03   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Так называемая программа которую накалякал
а задание-то где?
с указанием IDE.
и только не говори, что надо писать исключительно вот в этом:

Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 06.05.2016, 20:12   #5
Klubnic
 
Регистрация: 06.05.2016
Сообщений: 7
По умолчанию

Составить программу, которая в списке L из каждой группы подряд идущих одинаковых элементов оставляет только один - Это задание.
p.s Код писал именно на том что вы показали.
p.s.s Код хоть и компилируются, но при работе счет идет не верно.Т.е если ввожу 1122234 -> он должен выдать 1234 т.е из одинаковых элементов оставить один. Но этого не происходит.
Klubnic вне форума Ответить с цитированием
Старый 06.05.2016, 20:21   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
p.s Код писал именно на том что вы показали.
это есть обязательно?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 06.05.2016, 20:28   #7
Klubnic
 
Регистрация: 06.05.2016
Сообщений: 7
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
это есть обязательно?
Увы, но да.
Klubnic вне форума Ответить с цитированием
Старый 06.05.2016, 20:32   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Увы, но да.
Какая ужасная ЖАЛЬ!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 06.05.2016, 20:50   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
type
  sp = ^zap;
  zap = record
    inf: integer;
    next: sp
  end;

var
  nach, p2, p: sp;
  a: integer;

begin
  new(p);
  nach := p;
  writeln('Введи числа до 0');
  readln(nach^.inf);
  nach^.next := nil;
  repeat
    readln(a);
    if a<>0 then begin
      p2 := p;
      new(p);
      p2^.next := p;
      p^.inf := a;
      p^.next := nil;
    end;
  until a = 0;

  p := nach;
  while (p <> nil) and (p^.next<>nil) do begin
    if p^.inf = p^.next^.inf then begin
       p2:=p^.next;
       p^.next := p^.next^.next;
       Dispose(p2)
    end
    else
      p := p^.next;
  end;
  
  p := nach;
  while p <> nil do
  begin
    write(p^.inf, ' ');
    p := p^.next;
  end;
  writeln;
  readln;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.05.2016, 21:47   #10
Klubnic
 
Регистрация: 06.05.2016
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Код:
type
  sp = ^zap;
  zap = record
    inf: integer;
    next: sp
  end;

var
  nach, p2, p: sp;
  a: integer;

begin
  new(p);
  nach := p;
  writeln('Введи числа до 0');
  readln(nach^.inf);
  nach^.next := nil;
  repeat
    readln(a);
    if a<>0 then begin
      p2 := p;
      new(p);
      p2^.next := p;
      p^.inf := a;
      p^.next := nil;
    end;
  until a = 0;

  p := nach;
  while (p <> nil) and (p^.next<>nil) do begin
    if p^.inf = p^.next^.inf then begin
       p2:=p^.next;
       p^.next := p^.next^.next;
       Dispose(p2)
    end
    else
      p := p^.next;
  end;
  
  p := nach;
  while p <> nil do
  begin
    write(p^.inf, ' ');
    p := p^.next;
  end;
  writeln;
  readln;
end.
Не считает.
Ввожу
1122245
0
выдает
8133
Klubnic вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибку в задаче Shinshilla Visual C++ 5 12.11.2014 07:20
Помогите исправить ошибку в задаче! Игорь777 Помощь студентам 4 26.04.2009 18:31
Помогите исправить ошибку в задаче Vladislav_87 Паскаль, Turbo Pascal, PascalABC.NET 4 04.07.2008 12:27
Помогите исправить косяк в задаче на динамические переменные списки Taisja Помощь студентам 2 31.05.2008 21:49
Помогите исправить ошибку в задаче VANOLORD Паскаль, Turbo Pascal, PascalABC.NET 9 19.05.2008 22:16