Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УЧЕБНИК-Pascal.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
499.71 Кб
Скачать

Задание

  1. Опишите словесно алгоритм выполнения домашнего задания.

  2. Опишите словесно алгоритм приготовления вашего любимого блюда.

  3. Вам поручили выучить стихотворение. Словесно опишите алгоритм.

1.4. Организация хранения и обработки данных

1.4.1 Записи и списки

Компьютерные системы включают в себя 4 основных компонента:

1. Человек, который ставит задачу и получает результат.

2. Аппаратное обеспечение.

3. Данные, подлежащие обработке.

4. Программное обеспечение.

Изучение человека - область биологии, анатомии, социологии. Аппаратное обеспечение Вы изучали на уроках по курсу "информатика". Как создается программное обеспечение, мы узнаем при изучении языка программирования Pascal. Сейчас рассмотрим вопрос, как представляются данные в компьютере.

Рассмотрим небольшой пример: Ваш товарищ попросил Вас купить в школьной столовой стакан сока. Вы запомнили это, то есть сделали запись в своей памяти. Все данные в компьютере хранятся как записи.

Запись - совокупность логически взаимосвязанных данных, характеризующих тот или иной объект или явление. При обращении к данным запись рассматривается как элементарный (неделимый) объект. Иногда запись называют элементом.

Если Ваш друг попросил купить для Вас помимо сока еще и пирожок, то, запомнив это, Вы создали список, состоящий из двух записей (элементов). Практически каждый день Вы выполняете домашние задания. Задания по предметам, записанные в дневнике, это тоже список, состоящий из отдельных записей. Каждая запись - это домашнее задание по определенному предмету. Итак, если имеется несколько записей, объединенных вместе, то мы называем это списком.

Список – организация хранения упорядоченной совокупности данных, характеризующих однородные объекты, отличающиеся значениями своих признаков. ЭВМ позволяет обрабатывать данные этой совокупности и изменять ее состав и упорядоченность.

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

Линейный список – список, состоящий из записей, которые характеризуются своим месторасположением в списке. Месторасположение записи определяется, как правило, от начала линейного списка. Обычно для линейного списка разрешается добавлять запись (элемент) между любыми двумя другими и удалять любую запись (элемент).

Односвязный список – список, в котором запись (элемент), помимо своего значения, имеет ссылку на последующую запись (элемент). Например: Предположим, что Дарибай знает только телефон Алдияра. Алдияр знает только телефон Татьяны. Татьяна знает только телефон Аскара. Аскар знает только телефон Ольги. Ольга знает только телефон Анастасии. Если Вы дадите какую-либо информацию Дарибаю, то ее смогут получить все люди по цепочке. Если информацию получил Аскар, то ее смогут получить Ольга и Анастасия. Татьяна, Алдияр и Дарибай информацию получить не смогут. Движение возможно только от начала цепочки к концу. В этом списке записью является Имя человека, а номер телефона - ссылка на следующую запись. У последней записи нет ссылок на следующую запись, так как она и есть последняя. Но, чтобы не нарушалась структура списка, обычно последняя запись ссылается на так называемую нулевую (пустую) запись. Ее принято обозначать именем nil. Посмотрите, как это выглядит графически:

Дарибай

Алдияр

Татьяна

Аскар

Ольга

Анастасия

Тел. А

Тел. Т

Тел. А

Тел. О

Тел. А

Nil

Рис.1.10

Добавление записи (элемента) в односвязный список. Предположим, что нам надо добавить в односвязный список еще одну запись с именем Сергей. Если добавление записи происходит в конец списка, то в место ссылки на пустой элемент у записи Анастасия надо записать телефон Сергея. Для добавления записи в начало списка надо к записи Сергей добавить ссылку (номер телефона) на запись Дарибай. Если мы хотим поместить запись в любом другом месте списка, например, между записями Аскар и Ольга, то у записи Аскар ссылка на запись Ольга перемещается в запись Сергей, а к записи Аскар добавляется ссылка (номер телефона) на запись Сергей.

Дарибай

Алдияр

Татьяна

Аскар

Ольга

Анастасия

Тел. А

Тел. Т

Тел. А

Тел. С

Тел. А

Nil

Снргей

Тел. О

Рис.1.11

Удаление элемента из односвязного списка. Допустим, нам надо удалить запись из односвязного списка, например, запись Сергей. Для этого у предыдущей записи в ссылку (номер телефона) вместо телефона Сергея вновь написать телефон Ольги.

Дарибай

Алдияр

Татьяна

Аскар

Ольга

Анастасия

Тел. А

Тел. Т

Тел. А

Тел. О

Тел. А

Nil

Сергей

Тел. О

Рис.1.12

Двухсвязный список – список, в котором запись (элемент) имеет ссылку как на последующую запись (элемент), так и на предыдущую. В нашем примере информация могла распространяться только в одном направлении - от Дарибая к Анастасии. Но, если Алдияр знает телефон Татьяны и Дарибая, Татьяна – Алдияра и Аскара, Аскар – Татьяны и Ольги, Ольга – Аскара и Анастасии, а Анастасия знает телефон Ольги, то информация может передаваться в двух направлениях. То есть в двухсвязном списке движение возможно в двух направлениях: от начала к концу и от конца к началу.

Nil

Тел. Д

Тел. А

Тел. Т

Тел. А

Тел. О

Дарибай

Алдияр

Татьяна

Аскар

Ольга

Анастасия

Тел. А

Тел. Т

Тел. А

Тел. О

Тел. А

Nil

Рис.1.13

Если линейный список имеет дополнительную связь между последней записью (элементом) и первой записью (элементом), то его называют кольцевым списком. В случае если Анастасия знает телефон Дарибая, то линейный список замыкается, и мы имеем дело с кольцевым списком.