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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2018, 15:40   #1
Ya ne Ya
 
Регистрация: 02.12.2018
Сообщений: 8
Вопрос Работа со списками в PascalABC

Есть у меня задание сделать 2 списка чисел как сделать один я разобрался , а как сюда же пихнуть второй не очень понимаю, буду рад помощи.


И еще одно как расшифровать это задание:если элемент E входит в L1 , то вставить в список L1 за первым вхождением элемента E все элементы списка L2

Вот мой код тут только первый список задан
Код:
program sp;
type
n=^L1;
L1=record
        x:real;
        next:n;
   end;

var
ukf, uku, ukn:n;
i, dob:real;
c:char;
k:integer;
begin
 new(ukf);
//Vvod
 writeln('Enter element');  readln( ukf^.x);
 ukf^.next:=nil;
 writeln('Do you want to continue? y\n');
            readln(c);
            uku:=ukf;
            while c='y' do
            begin
                new(uku^.next);
              uku:=uku^.next;
              writeln('Enter element: ');
              readln(uku^.x);
              uku^.next:=nil;
              writeln('Do you want to continue? y\n');
              readln(c);
            end;
end.
Ya ne Ya вне форума Ответить с цитированием
Старый 02.12.2018, 15:44   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от Ya ne Ya Посмотреть сообщение
И еще одно как расшифровать это задание
точно так как написано. если элемент есть, то за первым его вхождением вставить элементы из второго
p51x вне форума Ответить с цитированием
Старый 02.12.2018, 16:57   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Ya ne Ya Посмотреть сообщение
Есть у меня задание сделать 2 списка чисел как сделать один я разобрался , а как сюда же пихнуть второй не очень понимаю,
вообще-то, у Вас в программе ТРИ списка:


Цитата:
Сообщение от Ya ne Ya Посмотреть сообщение
var
ukf, uku, ukn:n;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.12.2018, 17:04   #4
Ya ne Ya
 
Регистрация: 02.12.2018
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
вообще-то, у Вас в программе ТРИ списка:
Я только начал изучать динамику многое мне непонятно. Вот сижу голову ломаю, если есть ресурс где все хорошо расписано нас чет динамики посоветуйте пж.
Ya ne Ya вне форума Ответить с цитированием
Старый 02.12.2018, 17:06   #5
Ya ne Ya
 
Регистрация: 02.12.2018
Сообщений: 8
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
точно так как написано. если элемент есть, то за первым его вхождением вставить элементы из второго
\
Как это по простому написать?Т.е я проверяю есть ли элемент в списке? и Поссе как я его нашел после него я вставляю все элементы из списка 2?
Ya ne Ya вне форума Ответить с цитированием
Старый 02.12.2018, 17:43   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Ya ne Ya Посмотреть сообщение
Вот сижу голову ломаю, если есть ресурс где все хорошо расписано нас чет динамики посоветуйте пж.
основы можно в книжке посмотреть.
Например,
Павловская Т. А.
Паскаль. Программирование на языке высокого уровня: Учебник для вузов
ТЫЦ

а по сути там всё просто. Достаточно разобраться с указателями и выделением памяти. Один раз нарисовать (или посмотреть), что собой представляет односвязный линейный список и дальше всё станет понятно и просто.

написал в поиске линейный список схема, открыл картинки.
вот смотрите, например,


а вот схема, как в список можно осуществить вставку:


Если есть вопросы - задавайте.

Последний раз редактировалось Serge_Bliznykov; 02.12.2018 в 17:54.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.12.2018, 18:20   #7
Ya ne Ya
 
Регистрация: 02.12.2018
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
основы можно в книжке посмотреть.
Например,
Павловская Т. А.
Паскаль. Программирование на языке высокого уровня: Учебник для вузов
ТЫЦ

по сути там всё просто. Достаточно разобраться с указателями и выделением памяти. Один раз нарисовать (или посмотреть), что собой представляет односвязный линейный список и дальше всё станет понятно и просто.



написал в поиске линейный список схема, открыл картинки.
вот смотрите, например,


а вот схема, как в список можно осуществить вставку:


Если есть вопросы - задавайте.
Спасибо за информацию , буду дальше разбираться. Просто сроки маленькие все делаю быстро и многое пропускаю.
Ya ne Ya вне форума Ответить с цитированием
Старый 03.12.2018, 18:22   #8
Ya ne Ya
 
Регистрация: 02.12.2018
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
основы можно в книжке посмотреть.
Например,
Павловская Т. А.
Паскаль. Программирование на языке высокого уровня: Учебник для вузов
ТЫЦ

а по сути там всё просто. Достаточно разобраться с указателями и выделением памяти. Один раз нарисовать (или посмотреть), что собой представляет односвязный линейный список и дальше всё станет понятно и просто.

написал в поиске линейный список схема, открыл картинки.
вот смотрите, например,


а вот схема, как в список можно осуществить вставку:



Если есть вопросы - задавайте.

вот это бы мне правильно понять.
И еще одно как расшифровать это задание:если элемент E входит в L1 , то вставить в список L1 за первым вхождением элемента E все элементы списка L2
Ya ne Ya вне форума Ответить с цитированием
Старый 04.12.2018, 16:01   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Ya ne Ya Посмотреть сообщение
И еще одно как расшифровать это задание:если элемент E входит в L1
перебираете все элементы в списке L1, начиная с головы списка.
Каждый элемент списка (его информационную часть - у Вас это x.real) сравниваете с заданной величиной E (кстати, почему у Вас real - Вас так задали или это ваше творчество? Если ваше - то замените на целочисленный тип, если же это не ошибка, то при сравнении вещественных числе на компьютере это нужно обязательно делать через допуск - разница между сравниваемыми числами по модулю должна быть меньше погрешности. просто так писать if x=E then нельзя!!!, надо if abs(E-x)<0.0001 then ...)


Цитата:
Сообщение от Ya ne Ya Посмотреть сообщение
то вставить в список L1 за первым вхождением элемента E все элементы списка L2
если нашли в списке L1 нужное значение, то после него нужно вставить все элементы списка L2

пример.
пусть список L1: 1 22 3 17 15
список L2: 5 7 9
задали E=21
ответ - в списке L1 такого значения нет.

задали E=3
тогда, после вставки список L1 должен быть такой:
1 22 3 5 7 9 17 15
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со списками EdwinJ Общие вопросы C/C++ 4 24.04.2014 21:07
Работа со списками NoviceYola Паскаль, Turbo Pascal, PascalABC.NET 1 18.04.2014 11:44
Работа со списками iCaesy Паскаль, Turbo Pascal, PascalABC.NET 2 29.09.2013 13:53
Работа со списками LeNZZZ Microsoft Office Excel 1 21.11.2012 17:36
c++. Работа со списками megavolt91 Помощь студентам 0 14.06.2009 21:31