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

Тема 3.2. Типы данных

Тип лекции: текущая

План:

1. Типы данных Типы данных

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

Турбо Паскаль характеризуется большим разнообразием типов данных.(Рисунок 22)

Рисунок 2 – Типы данных

информация о простых типах данных, определенных в Турбо Паскале(Таблица 3).

Таблица 3 –Диапазон значений типов данных

Тип

идентификатор

Диапазон (множество значений)

Целый

Integer

-32 768 … 32 767

Вещественный

Real

2,9*10-39 … 1,7*1038

Логический

Boolean

True, false

Символьный

Char

Все символы кода ASCII

<Раздел описания типов>;

ЯП Turbo Pascal имеет разветвленную систему типов, но, кроме того он позволяет описывать пользователю и свои типы в разделе описания типов:

Type <имя типа >=<определение>;

Пример, Type Gaz=(C,O,N,F);

Metall=(Fe,Co,NA,Cu,Zn);

Var G1,G2,G3:Gaz;

Met1, Met2:Metall;

Day: (Sun,Mon,Tue,Wed,Thu,Fri,Sat)

Здесь Gaz и Metall – имена перечисляемых типов, которые ставятся в соответствие переменным G1,G2,G3 и Met1, Met2. Переменной Day назначается перечисляемый тип, которому не присвоено имя. Перечисляемый тип – упорядоченное множество. Его элементы пронумерованы начиная от 0 в порядке следования в описании. В программе, в которой присутствует данное выше описание возможен такой фрагмент:

If Day=Sun then writeln (‘Ура! Сегодня выходной!’);

Перечень источников:

1. Вирт Н. Алгоритмы + структуры данных = программы.- М.: Мир, 1985. (Алгоритмы и структуры данных.- М.: Мир, 1989.) (Алгоритмы и структуры данных. – СПб.: Невский Диалект, 2001. (2-е изд., испр.))

2. Райли Д. Абстракция и структуры данных: Вводный курс.- М.: Мир, 1993-432 с.

Тема3.3 Программа на языке Турбо Паскаль

Тип лекции: текущая

План:

1. Структура программы на языке Паскаль

2. Операторы в Турбо- Паскале

3. Выражения, операции, операнды

4 .Вывод данных в ТР

5. Ввод данных в ТР

Структура программы на языке Паскаль

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

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

Program <имя программы>;

Uses <раздел подключение модулей>;

Label <раздел объявление меток>;

Const <раздел объявление констант>;

Type <раздел объявление новых типов>;

Var <раздел объявление переменных>;

Procedure (Function) <раздел подпрограммы>;

Begin <начало раздела операторов основной программы>

< раздел операторов>

End.

Рассмотрим подробнее каждый раздел.

<Раздел подключения модулей>;

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

Модуль расширяет возможности программ. В Turbo Pascal существуют следующие Любая программа начинается служебным словом Program, после которого следует идентификатор пользователя - имя программы.

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

Crt- модуль управления звуком и отображением информации на экране

Graph- графический модуль

Dos - включает средства, позволяющие реализовывать различные функции Dos.

Overlay - содержит средства организации специальных оверлейных программ.

Printer - обеспечивает быстрый доступ к принтеру.

Graph - содержит пакет графических средств.

Turbo Vision - библиотека объектно-ориентированных программ для разработки пользовательских интерфейсов.

Кроме того, пользователь может создать и свой собственный модуль. При запуске среды программировании Turbo Pascal автоматически подключается только модуль System . Для того чтобы использовать возможности других модулей, необходимо эти модули подключить:

Uses < через запятую список подключаемых модулей>;

Пример, Uses crt;

Uses crt, graph;

<Раздел описания меток>;

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

Label<имена используемых меток через запятую>;

Пример, …. Label M1,M2;

….. begin … M1:<оператор1>; …. M2<оператор2>; …. End. <Раздел описания постоянных>;

Постоянные, используемые в программе описываются по следующим правилам:

Const <имя постоянной>=<значение>;

Пример, Const n=100;

M=-7;

Cod=’ошибка’ <Раздел описания переменных>;

Переменные, используемые в программе, должны быть описаны по следующим правилам:

Var <имя переменной>:<тип>;

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

<Раздел описания процедур и функций>;

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

Procedure <имя процедуры>(список формальных параметров);

Type ..;

Var …;

Const …;

Begin <раздел операторов>;

End; Function <имя функции>(список формальных параметров):<тип результата>;

Type …;

Var …;

Const … ;

Begin <раздел операторов>;

End; <Раздел операторов>- это основной блок программы, в нем описано все, что будет делать программа. Этот раздел обязательно присутствует в каждой программе. Раздел начинается служебным словом begin, далее следует список операторов. Каждый оператор (кроме последнего) заканчивается ; и для удобства записывается с новой строки. Раздел операторов заканчивается служебным словом end. В конце программы обязательно ставится точка.

Для лучшего понимания программы в ней допустима запись комментариев - пояснений. Комментарии можно записывать в любом месте программы, где допустим пробел, они пишутся на любом языке и обязательно заключаются в {} или (* *).

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

Операторы в Турбо- Паскале:

  1. Прежде чем выполнять какие-либо операции над переменными необходимо заранее задать значение для этих переменных с помощью оператора ввода или оператора присваивания.

  2. Если при записи допускается разделитель или пробел, то в этом месте строку можно разрывать, или можно записать сколько либо пробелов.

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

  4. Операторы отделяются (;), можно записать на одной строке, можно переносить на другую строку экрана, но нельзя разрывать ключевые слова.

  5. Комментарии в программе записываются в фигурных скобках, транслятором не проверяются.

Рассмотрим операторы присваивания, ввода и вывода.

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

Формат команды присваивания следующий: переменная:=выражение

Команда

а

b

а : = 1

1

-

b : = 2 * а

1

2

а : =b

2

2

b:=a+ b

2

4

Знак «:=» нужно читать как «присвоить». Команда присваивания обозначает следующие действия, вы­полняемые компьютером:
  1. Вычисляется выражение.

  2. Полученное значение присваивается переменной.

Этот пример иллюстрирует три основных свойства команды присваивания:

  • пока переменной не присвоено значение, она остается неопре­деленной;

  • значение, присвоенное переменной, сохраняется в ней вплоть до выполнения следующей команды присваивания этой переменной:

  • новое значение, присваиваемое переменной, заменяет ее пре­дыдущее значение.

Операторы ввода-вывода

Ввод данных – это передача информации от внешних устройств в оперативную память.

Вывод - обратный процесс, когда данные передаются их оперативной памяти на внешние носители (принтер, монитор и т.д.).

Основными устройствами ввода-вывода являются клавиатура и монитор.

Операторы ввода

READ

READLN

Синтаксис оператора ввода

READ ( <список переменных>);

READLN (<список переменных>);

При выполнении этого оператора происходит прерывание работы компьютера, после чего пользователь должен набрать на клавиатуре значение переменных a, b, c, d, отделяя, их друг от друга пробелами или клавишей <Enter>. Значения должны вводиться со строгим синтаксисом Паскаля.

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

Операторы вывода

WRITE

WRITELN

Синтаксис оператора вывода

write(<‘текст’>, <список переменных>);

writeln(<‘текст’>, <список переменных>);

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

Оба этих служебных слова предоставляют возможность вывода данных на дисплей. Разница между этими объектами заключается в том, что writeln – это процедура, причем само слово writeln не является зарегистрированным, т.е программист может создать свою процедуру с этим именем. А write – есть простой оператор вывода. Однако есть еще одна существенная разница между ними: при использовании writeln курсор на дисплее переходит в начало следующей строки, а при использовании write остается в той строке, куда были выведены данные.

Пример 1

Program prim_1; {демонстрация структуры программы}

{эта программа не требует никаких объявлений и описаний}

Begin

Writeln (‘Привет! Это наша группа.’);

{эта строка текста появится на экране}

End.

Пример 2

WRITE(‘ПРИВЕТ!!!’); «ПРИВЕТ!!!»

WRITELN(‘ПРИВЕТ!!!’); «ПРИВЕТ!!!»

A=134 WRITE (A) 134

B=312 WRITE (B,B,B) 312312312

С=135 WRITE (С:6) _ _ _ 135

D=250 WRITE ((D+D):7) _ _ _ _ 500

Пример 3

Begin

writeln(‘введите n’);

readln(n);

writln(‘ ’,‘n=’n,)

End

Дисплей:

введите n

4

n=4

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

Операции-определяют действие, которое надо выполнить (+,-,*,/ и д.т.) Пример, х+у-10 х, у, 10- операнды +, - - операции Скобки не являются операцией, они расставляются для управления порядком выполнения действий. Пример, (a+b)*c a+b *c

Операции могут быть унарными (имеют один операнд, например, (-у)) и бинарными (имеют два операнда, например, х+у) Все операции в Turbo Pascal делятся на :

  • арифметические (+ - * / div mod)

  • отношения(< > <= >= = <>)

  • логические(or, xor, and, not )

  • строковые

Все выражения в Turbo Pascal тоже делятся на арифметические, отношения, логические, строковые.

Арифметическим называется выражение, составленное из операндов арифметического типа, использующее только арифметические операции. Тип значения выражения зависит от типа операндов и операций. Выражением отношения называется словосочетание языка, в котором два выражения связаны операциями отношения. Сравниваемые выражения могут принадлежать любым скалярным типам, тип значения выражения всегда Boolean. Логическим называется выражение, составленное при помощи логических операций. Тип значения выражения всегда Boolean. Рассмотрим подробнее логические операции. And- соединяет два операнда, имеет значение истина, если все операнды истины. Or- соединяет два операнда, имеет значение истина, если хотя бы один из операндов истинен, и значение ложь, если все ложны. Xor- соединяет два или больше операнда, имеет значение ложь, если все операнды ложны или истины. Пример, Const x=3; Y=4; Z=6; (x>10) xor (y+z<9)- ложь (x=3) and (y<=4)- ложь (y=9) or (z>=0)- истина Not- унарная операция. имеет значение истина, если операнд ложен, и наоборот. Пример, Z=100; Not(z>100)- истина Not(z>=10)-ложь Записать условия. Хє(а,б); х,у- переменные разного знака х,у- переменные одного знака хє(-?, 5]?[10, +?); Огромную роль в выражениях играет приоритет операций. Приоритет операций- очередность выполнения. В Turbo Pascal операции имеют следующий приоритет операций. 1. Not 2. *, /, div, mod, and 3. +,-, or, xor 4. =, <>, <, >, <=, >=