Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть2. Структурное программирование.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.4 Mб
Скачать

Министерство образования и науки Российской Федерации

Костромской государственный технологический университет

Л.Ю. Киприна, С.Г. Смирнова, А.С. Чувиляева

СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ

В СРЕДЕ TURBO PASCAL

В двух частях

Часть 2

Рекомендовано редакционно-издательским советом университета в качестве учебно-методического пособия

Кострома

КГТУ

2010

УДК 681.3.06.015

Киприна Л.Ю., Структурное программирование в среде Turbo Pascal: учебно-методическое пособие: в 2 ч. – ч.1/. Л.Ю. Киприна, С.Г. Смирнова, А.С. Чувиляева. – Кострома: Изд-во Костром. гос. технол. ун-та, 2010. – 42с.

Пособие содержит основные необходимые сведения для изучения различных аспектов теоретической информатики, а также примеры и упражнения для самостоятельной работы.

Пособие предназначено для студентов специальностей, изучающих дисциплину «Информатика». Содержание пособия соответствует требованиям государственных образовательных стандартов, предъявляемым к соответствующей дисциплине.

Рецензенты: доц. кафедры высшей математики КГТУ,

к.т.н. Т.А.Чебунькина

©Костромской государственный технологический университет, 2010

Содержание

Лабораторная работа №1. Программы обработки одномерных и двумерных массивов 4

Массивы. Общие сведения 4

Операции над массивами 7

Программы обработки одномерных массивов 7

Cортировка одномерных массивов 9

9

Нахождение экстремумов в массивах 10

Формирование массива 11

Обработка квадратных матриц 15

Лабораторная работа №2. Использование подпрограмм при обработке массивов 17

Подпрограммы. Общие понятия 17

Процедуры 19

Функции 20

Отличительные особенности функции: 20

Использование подпрограмм при обработке массивов данных 21

Алгоритмы и программы обработки массивов с использованием процедур и функций. 22

Лабораторная работа №3. Программирование процессов обработки символьной и строковой информации 29

Общие положения 29

Примеры обработки символьной и строковой информации 32

Список литературы 35

Приложение 1. 36

Варианты заданий для самостоятельного решения 36

Задачи на обработку одномерных массивов 36

Нахождение экстремумов в одномерных массивах 37

Задачи на обработку двумерных массивов 37

Задачи на формирование массивов 38

Вычисления с диагональными элементами в квадратных матрицах 39

Задачи на обработку двумерных массивов 40

Приложение2. 42

Варианты заданий для самостоятельного решения 42

Лабораторная работа №1. Программы обработки одномерных и двумерных массивов

Цель работы: изучение особенностей алгоритмизации и программирования процессов обработки массивов данных.

Массивы. Общие сведения

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

Это можно сделать двумя способами:

1) описание массива через предварительное определение типа:

Type T = array [ <тип индекса 1>, ... , <тип индекса N> ] of < базовый тип > ;

Var V : T ;

2) прямое описание в разделе переменных:

Var V : array [ <тип индекса 1>, ... , < тип индекса N> ] of < базовый тип > ;

В зависимости от количества индексов различают:

а) одномерные массивы (векторы):

Vector : array [ <тип индекса> ] of < базовый тип > ;

б) двумерные массивы (матрицы):

Matrix : array [<тип индекса 1>, <тип индекса 2>] of < базовый тип > ;

где <тип индекса 1> определяет строки матрицы; <тип индекса 2> - ее столбцы;

в) многомерные массивы, причем размерность массива теоретически не ограничивается.

В качестве <базового типа> можно использовать любой тип, кроме file.

В качестве индексов массивов можно использовать:

а) порядковые типы boolean, char, byte, shortint;

например, массив вида M = array [boolean] of <базовый тип> ;

Такой массив будет иметь всего два компонента: M [True] и M [False] ;

б) диапазон на основе всех порядковых типов, кроме longint, в виде <начальный индекс> .. <конечный индекс>; например:

Const N = 8 ; M =10 ;

Var

M1 : array [ 1..N, 1..M ] of Real ; { массив содержит N строк и М столбцов}

M2 : array [ 1..5, 1..8 ] of Integer ; { массив содержит пять строк и восемь столбцов}

M3 : array [a’..’d’, 1..M ] of Byte ; { массив содержит четыре строки и М столбцов}

M2 : array [ 1..5, A’..‘F] of Char ; {массив содержит пять строк и шесть столбцов}

в) перечисляемый тип

Type Row = ( A, B, C, D, E, F, G, H ) ;

Var Chess : array [ Row, 1..8 ] of Byte ; { массив содержит восемь строк и восемь столбцов}

Массивы могут использоваться в качестве констант, например:

Type

Matrix = array [ 1..3, 1..2 ] of Integer ;

Const

M1 : Matrix = ( (–11, 12),

(21, –22),

(31, 32) ) ;

При описании массивов в среде Turbo Pascal возникает проблема несовместимости (неидентичности) типов, даже если массивы имеют одинаковую структуру.

Например:

Type

Matrix = array [ 1..3, 1..2 ] of Integer;

Var

M1, M2 : Matrix; { M1, M2 – массивы идентичного типа}

M3 : array[ 1..3, 1..2 ] of Integer;{тип M3 не идентичен типам M1, M2, M4, M5}

M4, M5: array [ 1..3, 1..2 ] of Integer; {M4, M5 – массивы идентичного типа}