Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Линейные программы

..pdf
Скачиваний:
2
Добавлен:
05.02.2023
Размер:
1.71 Mб
Скачать

УТВЕРЖДАЮ

Заведующий кафедрой КИПР

______________В.Н. ТАТАРИНОВ

“___” ___________2012 г.

Лабораторная работа по дисциплинам «Информатика» для студентов специальности 211000.62 (бакалавриат) и «Информатика и информационные технологии» специальности 162107.65 (специалитет)

Разработчик: Доцент кафедры КИПР

____________Ю.П. Кобрин

Томск 2012

 

 

 

2

 

 

 

 

СОДЕРЖАНИЕ

 

1

ЦЕЛИ РАБОТЫ

.................................................................................................................

4

2

ПОРЯДОК ВЫПОЛНЕНИЯ .................................................................................РАБОТЫ

4

3

КОНТРОЛЬНЫЕ ..............................................................................................ВОПРОСЫ

4

4

ЗАЩИТА ОТЧЕТА.............................................................................................................

5

5 ТИПЫ ДАННЫХ ....................................................................В ЯЗЫКЕ BORLAND PASCAL

5

 

5.1

Общие понятия .......................................................................................

5

 

5.2

Данные ....................................................................................................

 

6

 

5.3

Простые .............................................................................типы данных

7

 

 

5.3.1 .........................................................................

Целочисленные типы чисел

7

 

 

5.3.2 ......................................................................................

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

8

 

 

5.3.3 ....................................................................Тип-диапазон (интервальный)

8

 

 

5.3.4 ............................................

Вещественные ( действительные ) типы чисел

8

 

 

5.3.5 ............................................................................................

Символьный тип

9

 

 

5.3.6 ............................................................................................

Логический тип

11

 

5.4

Формулы ........................................................................Бэкуса–Наура

12

 

5.5

Константы..............................................................................................

12

 

5.6

Переменные..........................................................................................

14

 

5.7

Типизированные .................................................................константы

16

 

5.8

Выражения............................................................................................

16

 

 

5.8.1 ...........................................

Последовательность выполнения операций

16

 

 

5.8.2 .........................................................

Результаты вычисления выражений

18

 

 

5.8.3 ..............................................................

Некоторые встроенные функции

19

6

ЛИНЕЙНЫЕ ПРОГРАММЫ.............................................................................................

20

 

6.1

Общие понятия .....................................................................................

20

 

6.2

Операторы.............................................................................................

21

 

6.3

Оператор .......................................................................присваивания

22

 

6.4

Использование ..............................................................подпрограмм

23

 

6.5

Операторы ...........................................................ввода с клавиатуры

24

 

 

6.5.1 ...............................................................

Ввод данных символьного типа

25

 

 

6.5.2 .........................................Ввод данных целого или вещественного типа

25

 

6.6

Операторы .................................................вывода на экран дисплея

25

7 МЕТОДИКА РАЗРАБОТКИ .....................................................ЛИНЕЙНЫХ ПРОГРАММ

28

 

7.1

Пример ..........................................................разработки программы

28

 

7.2

Ввод программы...................................................................................

30

 

 

3

 

 

7.3

Сохранение программы .......................................................................

30

 

7.4

Компиляция программы ......................................................................

30

 

7.5

Выполнение программы ......................................................................

30

 

7.6

Просмотр результатов..........................................................................

31

 

7.7

Повторное обращение к программе ...................................................

31

8

ИНДИВИДУАЛЬНЫЕ ЗАДАНИЯ.....................................................................................

32

 

8.1

Рекомендации по составлению программы .......................................

32

 

8.2

Варианты заданий для составления линейных программ .................

32

9

СПИСОК ЛИТЕРАТУРЫ ..................................................................................................

36

4

1Цели работы

Изучение способов представления арифметических данных

Знакомство с правилами записи арифметических выражений с использованием встроенных арифметических функций

Изучение работы операторов вызова стандартных процедур, операторов присваивания, операторов ввода и операторов вывода.

Освоение приемов программирования и отладки простейших линейных алго-

ритмов.

Закрепление навыков работы в интегрированной среде Borland Pascal.

2Порядок выполнения работы

1)Ознакомиться с разделами «Представление и преобразование информации в программах на языке Pascal», «Методика разработки линейных программ» а также, при необходимости, а также с дополнительной литературой [1] [2] [3] [4] [5] [6].

2)Ответить письменно на контрольные вопросы.

3)Получить у преподавателя индивидуальное задание. Разработать программу в соответствии с индивидуальным заданием.

1)Войти в свой личный каталог и загрузить и настроить систему Borland Pascal 7.0.

2)Ввести шаблон программы, сделанный на прошлом занятии. Сделать его копию, записав под новым именем (линейной программы) с помощью команды

Save as ...

4)Ввести разработанную Вами программу, корректируя и дополняя свой шаблон.

5)Добиться с помощью отладки, чтобы программа давала правильные результа-

ты

6)Оформить отчет и защитить его у преподавателя.

3 Контрольные вопросы

Ответьте на следующие контрольные вопросы:

1)Перечислите стандартные типы языка Borland Pascal.

2)Как записываются операторы заголовка и конца программы? Является ли обязательным заголовок программы в языке Borland Pascal?

1)Каковы диапазоны допустимых значений для целых и вещественных типов

данных?

2)В каком порядке выполняются операции в выражениях?

3)Как работает оператор присваивания?

4)Как ввести в программу данные с клавиатуры?

5)Как записываются операторы вывода на экран в языке Паскаль?

6)В чем преимущества использования подпрограмм?

5

4 Защита отчета

Отчет должен быть выполнен в соответствии с [9] и состоять из следующих разде-

лов:

Тема и цель работы.

Индивидуальное задание.

Ответы на контрольные вопросы.

Текст программы и вводимые тестовые исходные данные.

Результаты выполнения программы.

Выводы.

При защите отчета по работе для получения зачета студент должен:

уметь отвечать на контрольные вопросы;

обосновать структуру выбранного алгоритма и показать его работоспособность;

уметь пояснять работу программы;

продемонстрировать навыки работы в среде Borland Pascal.

5Типы данных в языке Borland Pascal

5.1Общие понятия

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

осуществить ввод данных - т.е. ввести информацию (данные) в программу с клавиатуры, диска или из порта ввода/вывода;

сохранить данные (информацию) во внутренней (оперативной) или внешней (экран, магнитные и оптические диски и другие устройства ввода-вывода) памяти. Это достигается использованием констант, переменных и структур, содержащих числа (целые и вещественные), текст (символы и строки) или указатели - адреса переменных и структур;

правильно задать команды обработки данных (операторы, инструкции). С

их помощью осуществляют присваивание значений, вычисление выражений, сравнение значений (равно, не равно, больше и т.д.);

получить данные из программы (вывод данных) на экран, на диск или в порт ввода/вывода.

Вы можете написать и упорядочить свои команды так, чтобы:

некоторые из них выполнялись при выполнении некоторого условия или ряда условий (условное выполнение);

другие выполнялись определенное число раз (циклы), пока истинно некоторое условие, или пока условие не станет истинным;

другие собирались в отдельные части, объединенные именем (подпрограммы), которые могут быть выполнены в нескольких местах программы, где есть вызов их по имени.

6

5.2Данные

Язык Паскаль является строго-типизированным языком программирования. Это означает, что для всех переменных в программе должен быть определен их тип данных.

Понятие типа данных является ключевым в языке Паскаль.

Типы данных характеризуют:

-способ их внутреннего (машинного) представления (кодирования),

-множество допустимых значений, которые они могут принимать,

-набором операций, которые могут быть выполнены с ними.

Программа на языке Borland Pascal оперирует всевозможными данными - числами, символами, строками символов, массивами и т.д.

Данные - это конкретные значения, которые обрабатываются во время выполнения программы.

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

пам.

Кроме стандартных типов данных (определенных в самом языке), в Borland Pascal. предусмотрен механизм создания новых (пользовательских) типов данных, заданных самим программистом. Благодаря этому общее количество типов, используемых в программе, может быть сколь угодно большим.

Borland Pascal характеризуется разветвленной структурой типов данных (рис. 5.1).

Рисунок 5.1 - Типы данных в языке Borland Pascal

7

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

5.3Простые типы данных

Кпростым типам (скалярным типам) данных относят типы данных таких величин, значения которых не содержит составных частей.

К простым типам (см. рис. 5.1) относятся порядковые и вещественные типы. Порядковые типы отличаются тем, что каждый из них имеет конечное число воз-

можных значений. Эти значения можно определенным образом упорядочить (отсюда - название типов) и, следовательно, с каждым из них можно сопоставить некоторое целое число - порядковый номер значения.

Как видно из рис. 5.1 , к порядковым типам относятся: це-

лые, логический, символьный, перечисляемый и тип-диапазон. К

любому из них применима функция Ord(X), которая возвращает порядковый номер значения выражения X.

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

5.3.1Целочисленные типы чисел

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

Таблица 5.1 - Стандартные целочисленные типы данных

 

Тип

 

 

Название

 

 

Диапазон

 

 

 

Формат

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Shortint

 

короткое целое

-128

.. 127

 

8

бит со знаком

 

 

 

 

 

 

 

 

Integer

 

целое

-32768

.. 32767

 

 

16 бит со знаком

 

 

 

 

 

 

 

Longint

 

длинное целое

-2147483648 .. 2147483647

 

32

бита со знаком

 

 

 

 

 

 

 

Byte

 

длиной в байт

0 .. 255

 

8

бит без знака

 

 

 

 

 

 

 

Word

 

длиной в слово

0 .. 65535

 

 

16 бит без знака

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

5.3.2 Перечисляемый тип

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

type

tColors = (red, green, blue);

tMonth = (jan, feb, mar, may, jun, jul, aug, sep, oct, nov, dec);

Соответствие между значениями перечисляемого типа и порядковыми номерами этих значений устанавливается порядком перечисления: первое значение в списке получает порядковый номер 0, второе - 1 и т.д. Максимальная мощность перечисляемого типа составляет 65536 значений.

Применение перечисляемых типов делает программы нагляднее.

5.3.3 Тип-диапазон (интервальный)

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

<мин.знач.> .. <макс.знач.>

Здесь <мин.знач.> - минимальное значение типа-диапазона, <макс.знач.> - максимальное его значение. Например:

type

digit = '0' .. '9'; MonthDay = 1 .. 31;

Чаще всего тип-диапазон употребляется для указания допустимых границ изменения индексов у элементов массивов.

5.3.4Вещественные (действительные) типы чисел

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

вмашинном формате с плавающей точкой с фиксированным числом цифр. Вещественные типы в Borland Pascal различаются диапазоном и точностью связанных с ними значений (см. Табл. 5.2).

9

Таблица 5.2 - Диапазоны представления и точность представления (числа значащих десятичных цифр) для вещественных типов данных

 

 

 

 

 

 

 

 

 

 

 

Число

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Размер в

 

 

 

Тип

 

 

Название

 

 

Диапазон

 

 

значащих

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

байтах

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

цифр

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Real

 

вещественное

2.9·10-39 .. 1.7·1038

 

 

от 11 до 12

 

6

 

 

 

Single

 

с одинарной

1.5·10-45 .. 3.4·1038

 

 

От 7 до 8

 

4

 

 

 

 

 

 

точностью

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Double

 

с двойной точностью

5.0·10-324 .. 1.7·10308

 

 

от 15 до 16

 

8

 

 

 

Extended

 

с повышенной

1.9·10-4951 .. 1.1·104932

 

 

от 19 до 20

 

10

 

 

 

 

 

 

точностью

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Comp

 

сложный тип1

-263 + 1 .. 263 - 1

 

 

от 19 до 20

 

8

 

Вещественные типы являются упорядоченными, но не порядковыми.

Внутреннее машинное представление различных типов вещественных чисел.

В любом представлении старший бит Зн определяет знак вещественного числа:

0- положительное число;

1- отрицательное число.

Так как при любом варианте кодирования число битов в мантиссе ограничено, вещественные числа хранятся неточно. Каждый из имеющихся вещественных типов гарантирует правильное хранение только определенного количества значащих (верных) цифр.

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

5.3.5 Символьный тип

Значением символьного типа (char) является множество всех символов персонального компьютера, упорядоченных в соответствии с расширенным набором символов кода

ASCII (American Standard Code for Information Interchange - американский стандартный код для обмена информацией).

1 Сложный тип содержит только целочисленные значения в диапазоне -263+1 … 263-1, что приблизительно соответствует диапазону -9.2·1018 … 9.2·1018 в десятичной системе счисления.

10

При таком подходе любой символ кодируется одним байтом, а это всего 256 возможных значений. Естественно, все возможные символы в этот диапазон не уложить. Поэтому разработчики кодовой таблицы выбирают, какие алфавиты охватить. Первая половина таблицы символов ПК с кодами 0...127 соответствует стандарту ASCII (табл. 5.3) и может использоваться в программах Borland Pascal. Вторая половина символов с кодами 128...255 предназначена для представления символов национальных алфавитов и применяется лишь в комментариях к программе и в качестве значений текстовых строк.

Таблица 5.3 - Кодировка символов в соответствии со стандартом ASCII

 

Код

 

 

Символ

 

 

Код

 

 

Символ

 

 

Код

 

 

Символ

 

 

Код

 

 

Символ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

NUL

 

 

32

 

 

BL

 

 

64

 

®

 

 

96

 

'

 

 

1

 

 

ЗОН

 

 

33

 

!

 

 

65

 

 

A

 

97

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

STX

 

 

34

 

"

 

 

66

 

 

В

 

98

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

ЕТХ

 

 

35

 

#

 

 

67

 

 

С

 

99

 

 

с

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

EOT

 

 

36

 

$

 

 

68

 

 

D

 

100

 

 

d

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

ENQ

 

 

37

 

%

 

 

69

 

 

E

 

101

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

АСК

 

 

38

 

&

 

 

70

 

 

F

 

102

 

 

f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

BEL

 

 

39

 

'

 

 

71

 

 

G

 

103

 

 

g

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

BS

 

 

40

 

(

 

 

72

 

 

H

 

104

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

НТ

 

 

41

 

)

 

 

73

 

 

I

 

105

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

LF

 

 

42

 

*

 

 

74

 

 

J

 

106

 

 

j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

 

 

VT

 

 

43

 

+

 

 

75

 

 

k

 

107

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

FF

 

 

44

 

,

 

 

76

 

 

L

 

108

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

 

 

CR

 

 

45

 

-

 

 

77

 

 

M

 

109

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

 

 

SO

 

 

46

 

.

 

 

78

 

 

N

 

110

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

SI

 

 

47

 

/

 

 

79

 

 

О

 

111

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

16

 

 

DEL

 

 

48

 

0

 

 

80

 

 

p

 

112

 

 

P

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17

 

 

DC1

 

 

49

 

1

 

 

81

 

 

Q

 

113

 

 

q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

18

 

 

DC2

 

 

50

 

2

 

 

82

 

 

R

 

114

 

 

r

 

19

 

 

DC3

 

 

51

 

3

 

 

83

 

 

S

 

115

 

 

s

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20

 

 

DC4

 

 

52

 

4

 

 

84

 

 

T

 

116

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21

 

 

NAK

 

 

53

 

5

 

 

85

 

 

U

 

117

 

 

u

 

 

 

 

 

 

 

 

 

 

 

 

 

 

22

 

 

SYN

 

 

54

 

6

 

 

86

 

 

V

 

118

 

 

V

 

 

 

 

 

 

 

 

 

 

 

 

 

 

23

 

 

ETB

 

 

55

 

7

 

 

87

 

 

w

 

119

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

24

 

 

CAN

 

 

56

 

8

 

 

88

 

 

X

 

120

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

25

 

 

EM

 

 

57

 

9

 

 

89

 

 

У

 

121

 

 

У

 

 

 

 

 

 

 

 

 

 

 

 

 

 

26

 

 

SUB

 

 

58

 

:

 

 

90

 

 

z

 

122

 

 

z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

27

 

 

ESC

 

 

59

 

/

 

 

91

 

[

 

 

123

 

{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

28

 

 

FS

 

 

60

 

<

 

 

92

 

\

 

 

124

 

 

l

 

 

 

 

 

 

 

 

 

 

 

 

 

 

29

 

 

GS

 

 

61

 

=

 

 

93

 

]

 

 

125

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

30

 

 

RS

 

 

62

 

>

 

 

94

 

^

 

 

126

 

~

 

 

31

 

 

US

 

 

63

 

?

 

 

95

 

 

 

127

 

 

n