![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 25.02.2008
Сообщений: 17
|
![]()
Ребят может у кого есть решение этой задачи?
Написать программу с помощью линейного списка: Многочлен P(x)=anxn + an-1xn-1 +...+ a1x + a0 с целыми коэффициентами можно представить в виде списка, причем если ai=0, то соответствующее звено не включать в список. Определить функцию, вычисляющую значения многочлена в точке x |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 08.07.2007
Сообщений: 154
|
![]()
можеш нормальней написать. у тя тут ошибка и не конкретности есть.
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 25.02.2008
Сообщений: 17
|
![]()
Реализовать структуры данных «линейный список»
Многочлен P(x)=anxn + an-1xn-1 +...+ a1x + a0 с целыми коэффициентами можно представить в виде списка, причем если ai=0, то соответствующее звено не включать в список. Определить функцию, вычисляющую значения многочлена в точке x. P.S.: n,n-1,1,0 - нижниие индексы |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
наверное не везде. Это все-таки многочлен - x^(n)
ход решения Для коэффициентов задаем массив заведомо больше N var A : array [0..100] of integer; запрашиваем N. Или с клавиатуры или читаем из файла. Аналогично запрашиваем коэффициенты a[i] Функция, вычисляющая многочлен: Код:
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 25.02.2008
Сообщений: 17
|
![]()
Как реализовать линейный список для этой задачи?
|
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]() |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 25.02.2008
Сообщений: 17
|
![]()
Просто реализовать нужно с использыванием линейного списка
И с выделением динамической памяти, с указателями |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 25.02.2008
Сообщений: 17
|
![]()
С помощью вот этих функций нужно реализовать написанную выше задачу, только нужно это как то связать с поставленоой задачей. Ворос как?
type PElement = ^TypeElement; {указатель на тип элемента} TypeElement = record {тип элемента списка} Data: TypeData; {поле данных элемента} Next: PElement; {поле указателя на следующий элемент} end; var ptrHead: PElement; {указатель на первый элемент списка} ptrCurrent: PElement; {указатель на текущий элемент} Для добавления элемента в конец списка используется процедура вставки последующего элемента для случая, когда текущий элемент является последним в списке. procedure Ins_LineSingleList(DataElem: TypeData; var ptrHead, ptrCurrent: PElement); {Вставка непервого элемента в линейный однонаправленный список} {справа от элемента, на который указывает ptrCurrent} var ptrAddition: PElement; {вспомогательный указатель} begin New(ptrAddition); ptrAddition^.Data := DataElem; if ptrHead = nil then begin {список пуст} {создаем первый элемент списка} ptrAddition^.Next := nil; ptrHead := ptrAddition; end else begin {список не пуст} {вставляем элемент списка справа от элемента,} {на который указывает ptrCurrent} ptrAddition^.Next := ptrCurrent^.Next; ptrCurrent^.Next := ptrAddition; end; ptrCurrent := ptrAddition; end; procedure InsFirst_LineSingleList(DataElem: TypeData; var ptrHead: PElement); {Вставка первого элемента в линейный однонаправленный список} var ptrAddition: PElement; {вспомогательный указатель} begin New(ptrAddition); ptrAddition^.Data := DataElem; if ptrHead = nil then begin {список пуст} {создаем первый элемент списка} ptrAddition^.Next := nil; end else begin {список не пуст} {вставляем новый элемент слева (перед) первым элементом} ptrAddition^.Next := ptrHead; end; ptrHead := ptrAddition; end; Операция просмотра списка заключается в последовательном просмотре всех элементов списка. procedure Scan_LineSingleList(ptrHead: PElement); {Просмотр линейного однонаправленного списка} var ptrAddition: PElement; {вспомогательный указатель} begin ptrAddition := ptrHead; while ptrAddition <> nil do begin {пока не конец списка} writeln(ptrAddition^.Data); {Вывод значения элемента} ptrAddition := ptrAddition^.Next; end; end; Функция поиска элементов в списке function Find_LineSingleList(DataElem: TypeData; var ptrHead, ptrCurrent: PElement): boolean; {Поиск элемента в линейном однонаправленном списке} var ptrAddition:PElement; {Дополнительный указатель} begin if (ptrHead <> nil)then begin {Если существует список} ptrAddition := ptrHead; while (ptrAddition <> nil) and (ptrAddition^.Data <> DataElem) do {пока не конец списка и не найден элемент} ptrAddition := ptrAddition^.Next; {Если элемент найден, то результатом работы функции является - true} if ptrAddition <> nil then begin Find_LineSingleList := true; ptrCurrent := ptrAddition; end else begin Find_LineSingleList := false; end; end else begin Find_LineSingleList:=false; end; end; |
![]() |
![]() |
![]() |
#9 |
Новичок
Джуниор
Регистрация: 06.05.2011
Сообщений: 1
|
![]()
как определить, верно ли, что каждое число содержится в линейном списке только один раз.....
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Односвязные линейные списки !!! | salia | Помощь студентам | 1 | 12.10.2009 16:01 |
Списки | Вилен | Общие вопросы C/C++ | 3 | 22.05.2008 00:40 |
списки | Влдислаав3911 | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 10.05.2008 17:35 |
Задача: списки/сортировка | uranus | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 22.05.2007 14:34 |