Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование / WORD / Лекции по ЯП (часть 2).doc
Скачиваний:
96
Добавлен:
15.04.2015
Размер:
2.24 Mб
Скачать

Сравнение множеств

Можно сравнивать множества только совместимых типов.

Математика

Паскаль

1

A = B

A = B

2

A B

A  B

3

A B

A >= B

4

A B

A <= B

5

x A

x in A

Все операции возвращают логический результат. Для каждой операции правила формулируются следующим образом:

  1. Равенство: (true) только тогда, когда 2 множества имеют одинаковый набор символов.

[1,3]=[1,3] равно true, также равно true[1,3]=[3,1]

  1. Неравенство: (true) когда набор символов различный.

  2. A B возвращает true, если все элементы множества В входят в множество А.

  3. A B возвращает true, если все элементы множества А входят в множество В.

  4. x A возвращает true, если х - (элемент базового типа множества А) имеется в множестве А.

Применение множеств

1-й случай: множества используют для того, чтобы исключить большое количество последовательных проверок.

2-й случай: множества также используются для формирования неповторяющегося набора элементов.

Если множество сформировано и необходимо, например, вывести элементы множества на экран (печать), это можно сделать следующим образом.

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

  1. Процедуры и структурное программирование

Использование процедур в программе позволяет практиковать такой подход, как структурное программирование. При этом отдельные задачи программы выполняются независимыми фрагментами кода.

Преимущества структурного программирования

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

  • Структурированную программу легче отлаживать. Если в программе есть ошибка структурированность помогает локализовать ошибку в той или иной части кода, на­пример, в конкретной процедуре.

  • Еще одно преимущество структурного программирования состоит в экономии времени. Написав процедуру или функцию, которая выполняет в программе определенную задачу, можно легко и бы­стро перенести эту процедуру в другую программу для выполнения той же задачи. Даже если в новой программе понадобится сделать что-то новое, то почти всегда легче немного изменить уже существующую процедуру, чем написать новую с нуля.

Планирование структурированной программы

Если вы собрались писать хорошо структурированную программу, придется вначале потрудиться над планом. Планированием нужно заниматься, еще не написав ни единой строчки кода, зато вооружившись карандашом и бумагой. План должен включать список конкретных задач, которые будет выполнять программа. Начать следует с глобальной идеи работы программы. Если, например, программа должна вести список контактов (имен и адресов), то чего от нее следует требовать? Вот несколько очевидных операций:

  • Ввод новых имен и адресов.

  • Изменение существующих пунктов списка.

  • Сортировка списка по фамилиям.

  • Печать адресов на почтовые конверты.

С помощью этого списка программа уже разделена на четыре основные задачи, каждую из которых можно отдать отдельной процедуре. Теперь можно пойти еще дальше и разделить эти задачи на подзадачи. Например, задачу ввода новых имен и адресов можно разделить на следующие подзадачи.

  • Чтение существующего списка адресов с диска.

  • Добавление новых данных в список.

  • Сохранение измененного списка на диске.

Аналогичным образом задачу изменения существующих пунктов списка можно разбить на такие подзадачи.

  • Чтение существующего списка адресов с диска.

  • Изменение одного или нескольких пунктов списка.

  • Сохранение измененного списка на диске.

Заметьте, что у этих списков имеются две общие подзадачи: чтение с диска и сохранение на диске. Можно написать одну функцию для чтения списка адресов с диска и вызывать ее как из процедуры ввода новых адресов, так и из процедуры изменения существующих пунктов. То же самое справедливо для функции сохранения списка на диске.

Вы уже должны увидеть как минимум одно преимущество структурного программирова­ния. Удачно разделив программу на подзадачи, можно определить, в каких частях программы выполняются одинаковые операции. Далее можно написать процедуры обращения к диску, имеющие многоцелевое назначение, тем самым экономя время и улучшая эффективность программы.

Такой метод программирования делает структуру программы иерархической, или многоуровневой. На рисунке показан иерархический подход к написанию программы, предназначенной для ведения списка адресов.

Иерархическая организация хо­рошо структурированной программы

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

Соседние файлы в папке WORD