
Министерство Образования и науки Российской Федерации
Новосибирский государственный технический университет
Программирование
Расчётно-графическое задание
Новосибирск
2012
Методические указания содержат варианты задания и рекомендации к выполнению расчётно-графического задания по курсу «Информатика и программирование» и «Программирование», для студентов второго курса (3 семестр) по направлениям подготовки 230700 «Прикладная информатика», 080500 «Бизнес-информатика».
Составитель: к. ф.-м. н., доц. М. Г. Зайцев
Рецензент: к. т. н., доц. В. Г. Кобылянский
Работа подготовлена кафедрой программных систем и баз данных
Новосибирский технический университет, 2012 г.
Оглавление
Оглавление 3
Цель 3
Задание 3
Варианты расчётно-графического задания (РГЗ) 3
Основные сведения 4
Спецификация типа данных Упорядоченный по возрастанию список целых чисел. 6
Рекомендации к выполнению. 9
Порядок выполнения 9
Содержание отчета 10
Контрольные вопросы 10
Литература 10
Основная литература 10
Дополнительная литература 10
Цель
Сформировать практические навыки разработки консольных приложений с использованием:
абстрактных типов данных;
динамических информационных структур;
типизированных файлов;
тестирования программ.
Задание
Упорядочить в заданном порядке записи типизированного файла с помощью упорядоченного списка.
Варианты расчётно-графического задания (ргз)
Расчётно-графическая работа содержит четыре варианта задания по типу T записей хранящихся в файле:
Таблица 1. Варианты задания.
-
Номер
варианта
Тип записей
Упорядочение
1
T = integer;
по возрастанию,
по убыванию
2
T = real;
по возрастанию,
по убыванию
3
T = record re, im: real end;
- комплексные числа;
по возрастанию (упорядочение выполняется по значению модуля комплексного числа)
4
T = record num, denom: real end;
- простые дроби;
по убыванию
Для выбора варианта задания возьмите последнюю (крайнюю справа) цифру номера вашей зачётной книжке и разделите соответствующее ей число с помощью операции деления по модулю 4, к результату добавьте единицу. Полученное число и будет номером вашего варианта задания.
Для выполнения работы вам необходимо реализовать динамическую информационную структуру – упорядоченный список в соответствии с приведённой ниже спецификацией.
Основные сведения
Упорядоченный список - это упорядоченная последовательность элементов, принадлежащих одному множеству элементов, называемому алфавитом. На элементах алфавита должна быть определена одна из операций отношения: >, <, >=, <=. Он может состоять из символов, строк, целых чисел, структур данных.
Имя списка будем обозначать строчной латинской буквой, элементы списка - прописными латинскими буквами.
Например: t = (A B K J U). Здесь t - список, содержащий элементы A, B, K, J, U.
Понятие «список» имеет такое же большое значение в вычислениях, как понятие «множество» в математике. Любой вычислительный процесс может быть представлен и описан с помощью операций на списках.
Пустым списком называется последовательность, не содержащая элементов, обозначаемая Ø или ().
Можно упорядочивать списки, как в порядке возрастания элементов, так и в порядке убывания элементов. Элемент A в некотором списке отличается от одноэлементного списка (A), содержащего такой же элемент.
Элементы в списке проиндексированы неотрицательными целыми числами, начиная с 0.
Операция Элемент(t,m) обеспечивает доступ к элементу непустого списка t с индексом m для чтения, если элемент с таким индексом имеется в списке.
Операция Найти(t,C) отыскивает и возвращает индекс элемента С в списке t, или (-1) – если элемент в списке не найден.
Операция Элементов(t) возвращает число элементов в списке t.
Операция Пуст(t) возвращает значение True, если список t пуст, False в противном случае.
Операция Вставить(t,В) вставляет элемент B в список t в соответствии с заданным порядком.
Операция Удалить(t,В) удаляет элемент B из списка t.
Операция Опустошить(t) опустошает список t.
В (Таблица 2) описаны примеры выполнения операций, определенных на списке a целых чисел, упорядоченном по возрастанию.
Таблица 2. Пример операций на списке целых чисел упорядоченных по возрастанию.
Операции |
Состояние списка a до выполнения операции
|
Операнды |
Возвращаемый результат |
Состояние списка a после выполнения операции
|
Пуст(a) |
() |
a |
True |
() |
Элементов(a) |
() |
a |
0 |
() |
Вставить(a,4) |
() |
a,4 |
Нет. |
(4) |
Вставить(a,2) |
(4) |
a,2 |
Нет. |
(2 4) |
Найти(a,1) |
(2 4) |
a,1 |
-1 – элемента 1 в списке a нет. |
(2 4) |
Вставить(a,0) |
(2 4) |
a,0 |
Нет. |
(0 2 4) |
Элемент(a,0),(a<>Ø) |
(0 2 4) |
a,0 |
0 – элемент данных под индексом 0 в списке а. |
(0 2 4) |
Вставить(a,1) |
(0 2 4) |
a,1 |
Нет. |
(0 1 2 4) |
Вставить(a,3) |
(0 1 2 4) |
a,3 |
Нет. |
(0 1 2 3 4) |
Элементов(a) |
(0 1 2 3 4) |
a |
5 |
(0 1 2 3 4) |
Пуст(a) |
(0 1 2 3 4) |
a |
False |
(0 1 2 3 4) |
Элемент(a,2) ,(a<>Ø) |
(0 1 2 3 4) |
a,2 |
2 – элемент данных под индексом 2 в списке а. |
(0 1 2 3 4) |
Вставить(a,7) |
(0 1 2 3 4) |
a,7 |
Нет. |
(0 1 2 3 4 7) |
Найти(a,9) |
(0 1 2 3 4 7) |
a,9 |
-1 –элемента 9 в списке a не найден. |
(0 1 2 3 4 7) |
Найти(a,7) |
(0 1 2 3 4 7) |
a,7 |
5 – индекс элемента 7 в списке a. |
(0 1 2 3 4 7) |
Удалить(a,0),(a<>Ø) |
(0 1 2 3 4 7) |
a,0 |
Нет. |
(1 2 3 4 7) |
Удалить(a,7),(a<>Ø) |
(1 2 3 4) |
a,7 |
Нет. |
(1 2 3 4) |
Удалить(a,5),(a<>Ø) |
(1 2 3 4) |
a,5 |
Нет. |
(1 2 3 4) |
Опустошить(a) |
() |
a |
Нет. |
() |