Языки программирования QBasic и Turbo Pascal 7.0. Тема : Языки программирования QBasic и Turbo Pascal 7.0. Цель урока: Дать основные понятия о языках программирования.
Переменные в QBasic Переменная - это величина, которая может меняться при выполнении программы. Объявляя переменную или константу заданного типа, Вы отводите в памяти место, где будет храниться ее значение. Тип определяет размер и структуру памяти под переменную. В QBasic существует две основные категории данных: числовые и символьные. Каждая категория включает в себя элементарные типы данных.
Переменные числового типа; Переменные числового типа Переменные символьного типа. Переменные символьного типа Переменные в QBasic
ПЕРЕМЕННЫЕ ЧИСЛОВОГО ТИПА ЦЕЛЫЕ (INTEGER) ; ЦЕЛЫЕ (INTEGER) ; ЦЕЛЫЕ (INTEGER) ; ЦЕЛЫЕ (INTEGER) ; ДЛИННЫЕ ЦЕЛЫЕ (LONG); ДЛИННЫЕ ЦЕЛЫЕ (LONG); ДЛИННЫЕ ЦЕЛЫЕ (LONG); ДЛИННЫЕ ЦЕЛЫЕ (LONG); Переменные ОБЫЧНОЙ ТОЧНОСТИ (SINGLE); Переменные ОБЫЧНОЙ ТОЧНОСТИ (SINGLE); Переменные ОБЫЧНОЙ ТОЧНОСТИ (SINGLE); Переменные ОБЫЧНОЙ ТОЧНОСТИ (SINGLE); Переменные двойной точности (DOUBLE); Переменные двойной точности (DOUBLE); Переменные двойной точности (DOUBLE); Переменные двойной точности (DOUBLE);
ЦЕЛЫЕ (INTEGER) -занимают в памяти 2 байта. Диапазон от до Присвоить переменной целый тип можно следующем образом: А) поставить в начале программы DEFINT A-B Б) с помощью суффикса A% В) использовать оператор описания DIM A AS INTEGER ЦЕЛЫЕ (INTEGER)
занимают в памяти 4 байта. Диапазон до Присвоить переменной тип длинные целые можно следующем образом: А) поставить в начале программы DEFLNG A-B Б) с помощью суффикса A& В) использовать оператор описания DIM A AS LONG. ДЛИННЫЕ ЦЕЛЫЕ (LONG)
Переменные обычной точности Переменные ОБЫЧНОЙ ТОЧНОСТИ (SINGLE) - занимают в памяти 4 байта. Диапазон от E+38 до – Е-45 и Е-45 до E+38 Присвоить переменной тип обычной точности можно следующем образом: А) поставить в начале программы DEFSGN A-B Б) с помощью суффикса A! В) использовать оператор описания DIM A AS SINGLE
занимают в памяти 8 байта. Диапазон от – D+308 до – D -324 и D -324 до D +308 Диапазон от – D+308 до – D -324 и D -324 до D +308 Присвоить переменной тип двойной точности можно следующем образом: А) поставить в начале программы DEFDBL A-С Б) с помощью суффикса A# В) использовать оператор описания DIM A AS DOUBLE. Переменные двойной точности (DOUBLE)
ПЕРЕМЕННЫЕ СИМВОЛЬНОГО ТИПА Строка переменной длины (STRING); Строка переменной длины (STRING); Строка переменной длины (STRING); Строка переменной длины (STRING); Строка фиксированной длины (STRING*N); Строка фиксированной длины (STRING*N); Строка фиксированной длины (STRING*N); Строка фиксированной длины (STRING*N); Переменные пользовательского типа. Переменные пользовательского типа. Переменные пользовательского типа. Переменные пользовательского типа.
СТРОКА ПЕРЕМЕННОЙ ДЛИНЫ (STRING) СТРОКА ПЕРЕМЕННОЙ ДЛИНЫ (STRING) – это последовательность длиной до символов таблицы ASCII. В памяти занимает столько байт, какова ее длина +4 байта на описатель. Присвоить переменной символьный тип можно следующем образом: А) поставить в начале программы DEFSTRING A-С Б) с помощью суффикса A$ В) использовать оператор описания DIM A AS STRING.
СТРОКА ФИКСИРОВАННОЙ ДЛИНЫ (STRING*N) – символьная строка длинною N байт. В памяти такая строка занимает N байт. Присвоить переменной символьный тип можно следующем образом: a) использовать оператор описания DIM A AS STRING*N. СТРОКА ФИКСИРОВАННОЙ ДЛИНЫ (STRING*N)
ПЕРЕМЕННЫЕ ПОЛЬЗОВАТЕЛЬСКОГО ТИПА Если данные, которые вы используете в программе, необходимо сгруппировать по какому-либо признаку, то для этого очень удобно использовать пользовательский тип данных (записи). Он составляется из простых типов данных (числовых и символьных), описанных выше.
Например, нам необходимо ввести табельный номер работника, его фамилию и тарифную ставку. Например, нам необходимо ввести табельный номер работника, его фамилию и тарифную ставку. Определяем пользовательский тип данных оператором TYPE. TYPE RECORD TYPE RECORD Tabnom AS INTEGER Fam AS STRING*15 Staw AS DAUBLE END TYPE Присваиваем переменной RABOT пользовательский тип данных. DIM RABOT AS RECORD Пользовательский тип данных занимает в памяти столько байт, сколько занимают в сумме каждый из составляющих его элементов. (У нас длина равна =25). В пользовательском типе данных используются только строки фиксированной длины.
СВОДНАЯ ТАБЛИЦА ОПИСАНИЯ ТИПОВ ДАННЫХ в QBasic СуффиксТип переменнойОбъявление DEF_тип Описание AS_тип Занимаемый объем %ЦелыеDEFINTINTEGER 2 байта & Длинные целые DEFLNGLONG 4 байта ! Обычной точности DEFSNGSINGLE 4 байта # Двойной точности DEFDBLDOUBLE 8 байт $ Строка переменной длины DEFSTRSTRING 1 байт на каждый символ + 4 байта на описатель $ Строка фиксированной длины STRING*N N байт Пользователь ский тип Занимает столько байт, сколько занимают в сумме отдельные элементы
Числа, символы, строки, которые не изменяют своего значения в процессе выполнения программы - константы. Неименованные константы символьные, числовые применяются тогда, когда их значение заранее известно и не подлежит изменению. Например: Рrint Средняя заработная плата Именованные константы Они также бывают символьные и числовые, тех же типов, что и неименнованные. Чтобы использовать именованную константу, ее необходимо объявить при помощи ключевого слова CONST, например: CONST M%=66 CONST T$= число работников В дальнейшем к константе можно обращаться по имени. КОНСТАНТЫ
Разделописания типов в Turbo Pascal 7.0 Раздел описания типов в Turbo Pascal 7.0 В языке Turbo Pascal 7.0 все данные, используемые программой, должны принадлежать к какому-либо заранее известному типу данных. Тип данных определяет: - формат представления данных в памяти ЭВМ; - множество допустимых значений; - множество допустимых операций.
Разделописания типов в Turbo Pascal 7.0 Раздел описания типов в Turbo Pascal 7.0 Типы данных в языке программирования Turbo Pascal 7.0 делятся на пять основных классов: Типы данных простые структуриро ванные ссылочныепроцедурные объектные
Простые типы данных ПРОСТЫЕ ТИПЫ ДАННЫХ ПОРЯДКОВЫЕ ЦЕЛЫЙ ЛОГИЧЕСКИЙ СИМВОЛЬНЫЙ ОГРАНИЧЕННЫЙ ПЕРЕЧИСЛЯЕМЫЙ ВЕЩЕСТВЕННЫЙ
В математике порядковым числом называется номер элемента при перечислении. Под порядковым типом понимают тип данных, областью значений которых является упорядоченное счетное множество. Каждому элементу такого множества соответствует некоторое порядковое число, являющееся как раз его номером при перечислении. Порядковый тип
В любом порядковом типе для каждого значения, кроме первого, существует предшествующее значение, и для каждого значения, кроме последнего, существует последующее значение. В языке Turbo Pascal 7.0 существуют стандартные функции, позволяющие определять соответ- ствующие значения для заданного значения: функция Pred(x) определяет предыдущее значение величины х, функция Succ(x) определяет последующее значение величины х; функция Ord(x) возвращает порядковый номер величины х. Порядковый тип
Целочисленныетипы Целочисленные типы ТипДиапазон возможных значений Формат Shortin g байт со знаком Integer байта со знаком Longint байта со знаком Byte байт без знака Word байта без знака
Вещественныетипы Вещественные типы ТипДиапазон возможных значений ТочностьФормат Real2.9Е Е знаков 6 байт Single1.5Е Е3878 знаков 4 байта Double5.0E E знаков 8 байт Extended3.4Е Е знаков 10 байт Comp-9.2Е Е знаков 8 байт
Логический тип и логические выражения (BOOLEAN) Переменные, константы и выражения логического типа имеют только два значения: TRUE (истина) или FALSE (ложь) Например, при сравнении чисел А и В результат будет TRUE (истина) или FALSE (ложь в зависимости от значений А и В). Кроме операций сравнения, логический результат дает функция целой величины Odd (нечетный), которая имеет значение TRUE, если ее аргумент нечетный, и FALSE, если ее аргумент четный.
Для логических переменных определены операции: NOT, AND, OR, XOR. В QBasic определены еще две логических операции: логическое следование IMP и эквивалентность EQW. Логический тип, как и целые типы, относятся к порядковым типам. Порядковый тип – это тип данных, для которого определены отношения порядка, то есть для любого элемента можно определить последующий и предыдущий элемент. Логический тип и логические выражения (BOOLEAN)
Логические операции, операции отношения и арифметические операции часто встречаются в одном выражении. Причем отношения, стоящие слева и справа от знака логической операции, должны быть заключены в скобки, поскольку логические операции имеют более высокий приоритет. Вообще, в логическом выражении принят следующий приоритет операций: NOT AND, *, DIV, MOD OR, XOR, +, - операции сравнения. Логический тип и логические выражения (BOOLEAN)
Порядок выполнения операций определяется скобками. Например, в логическом выражении A OR В AND NOT (A OR В) сначала выполняется заключенная в скобки операция OR, а затем операции NOT, AND, OR. В языке Turbo Pascal 7.0 нет возможности ввода логических данных с помощью оператора read. Однако предусмотрен вывод значений переменных логического типа с помощью оператора write. В этом случае для идентификаторов FALSE и TRUE автоматически отводится по 6 позиций: две перед словом TRUE и одна - перед FALSE. Логический тип и логические выражения (BOOLEAN)
Перечисляемый тип данных Этот тип данных получил название перечисляемого, потому что он задается в виде перечисления некоторых значений. Эти значения образуют упорядоченное множество и являются константами этого типа. Для объявления переменной список возможных значений, разделенных запятой, указывается в круглых скобках. Например, Var month: (january, february, marth, april, may, june, july, august, september, october, november, december); Упорядоченность элементов перечисляемого типа определяется порядком их следования. Самый левый имеет минимальное значение (значение функции ord для него равно 0), а наиболее правый максимальное.
Символьный тип данных Описание: идентификатор Char, Диапазон значений: значением переменной этого типа может быть любой символ это буквы, цифры, знаки препинания и специальные символы. Каждому символу алфавита соответствует индивидуальный числовой код от 0 до 255. Так как символы языка упорядочены, то к символьным данным применимы операции сравнения. Операция сравнения осуществляется следующим образом: из двух символов меньше тот, который встречается в таблице ASCII раньше.
Обычно значения для переменных типа char задаются в апострофах: ch:= '*'; a:= '3'; letter:='G'. Кроме того, имеется возможность задавать значения указанием непосредственного числового значения ASCII-кода: kd:=#65 {символ 'A'}; s:=#10 {клавиша }. Так как символьный тип является порядковым типом данных, то для него справедливо все, что было сказано о порядковых типах.
Интервальный (ограниченный) тип данных - интервал значений порядкового типа, называемого базовым типом. Описание типа задает наименьшее и наибольшее значения, входящие в этот интервал. Например, Var a:1..25; ch: 'а'..'z'; Здесь переменные а и ch могут принимать значения только из указанного интервала; базовым типом для переменной а является целый тип, а для переменной ch символьный. Переменная ограниченного типа сохраняет все свойства переменных базового типа.
Использование ограниченного типа делает программу более наглядной и понятной. Например, если в программе переменная b может принимать только значения 3, 4, 5, 6, 7, 8, то лучше описать ее следующим образом: Var b:3..8; чем Var b: Integer; так как в случае выхода значения b за диапазон 3..8 в первом случае будет выдано диагностическое сообщение, которое поможет найти ошибку. Во втором случае будет получен неправильный результат, что затруднит поиск ошибки. Таким образом, второй вариант описания переменной следует использовать в тех случаях, когда диапазон значений заранее неизвестен, либо занимает весь допустимый интервал значений для рассматриваемого типа. Интервальный (ограниченный) тип данных
Константыи типизированные константы Константы и типизированные константы Числа, символы, строки множества, которые не изменяют своего значения в процессе выполнения программы, должны объявляться как постоянные, т.е. константы. Например: CONST E= ;(Число Эйлера) C= E+8;(скорость света в м\с) CUBE =12;(число ребер куба) HELLO = Привет ;(строка – приветствие) On = true;(логические константы) Off = false;
Типизированные константы могут изменять свое значение в процессе выполнения программы. Типизированные константы, в сущности, правильнее считать переменными, но правила их объявления ближе к правилу объявления констант, поэтому они получили такое название. Например: CONST FLAG: BOOLENT=TRUE; A:INTEGER=90; Константыи типизированные константы Константы и типизированные константы
Задание Подготовить ответы на вопросы: 1. Чем характеризуется переменная? 2. Перечислите типы данных? 3. Как описываются переменные? 4. Какова структура программы? 5. С чего начинается основная программа? 6. Чем заканчивается программа?