
Лабораторная работа №1. Работа с данными в Delphi.
Предварительные сведения.
Смысл программирования состоит в том, чтобы «объяснить» компьютеру какие действия требуется выполнить, чтобы решить задачу. Это «объяснение» должно быть сформулировано на доступном для компьютера языке (языке программирования) и содержать указания какие величины будут исходными для решения задачи, какие операции и в какой последовательности выполнить над входными величинами, чтобы получить результат и, наконец, в каком виде и на какое устройство выдать результат. Языков программирования великое множество, но все они организованы примерно по одинаковому принципу и используют константы, переменные, операторы занесения значений в переменные, функции и процедуры, операторы перехода, цикла, операторы ввода – вывода.
В системе программирования Delphi используется язык Pascal, который очень удобен для первоначального ознакомления с программированием и, в то же время позволяет решать довольно сложные инженерные задачи.
Программа на языке Pascal состоит из заголовка и тела программы, образующих блок. В заголовке блоку присваивается имя и перечисляются его параметры (если это необходимо). Блок начинается одним из слов: program, procedure, function и заканчивается end. При этом, если блок начинается словом program то он заканчивается end. (С точкой), в остальных случаях заканчивается end; (С точкой с запятой). Сам блок может состоять из шести разделов, причём пять первых необязательно должны присутствовать (разделы: описания меток, определения констант, определение типов, описание переменных, описание функций и процедур). Шестой раздел, раздел операторов должен быть обязательно, поскольку он содержит алгоритм решения задачи.
Программа считается написанной в одну строку, но пишется в произвольное количество строк, а выполняется последовательно слева направо и сверху вниз. При этом количество пробелов между элементами программы не имеет значения. Каждый элемент программы заканчивается точкой с запятой.
Для написания программы можно использовать:
Буквы латинского алфавита (прописные и строчные буквы) взаимозаменяемы, т.е. эквивалентны и используются только для более наглядного написания программ. Буквой также считается _ (символ подчерка).
Цифры 0 1 2 3 4 5 6 7 8 9
специальные знаки + - * / = < > [ ] ( ) { } . , : ; ^ $ # @
составные знаки <= >= .. (* *)
символы национальных алфавитов ограничено используются только в комментариях и текстовых константах.
Комментарий ограничивается фигурными скобками {} и на выполнение программы не влияет.
Оператор присваивания
Идентификатор := выражение;
Где
Идентификатор – имя ячейки памяти, в которой будет хранится присваиваемое значение.
:= символ оператора присваивания
Выражение (допускаются выражения: арифметические, логические, символьные, строковые…)
Арифметическое выражение – состоит из арифметических (числовых) констант, идентификаторов переменных (числовых), имён функций, (возвращающих в результате их вычисления числовые значения), соединённых между собой знаками арифметических операций и круглыми скобками.
Константы могут применяться в арифметическом выражении как в явном виде: 5; 5.25; - 7.36Е +4 (-7.36Х104 ), а так же и в виде имён констант, определённых в разделе описания констант.
В качестве переменных используются имена переменных, описанные в разделе описания переменных Var с атрибутами byte (байтовый), integer (целый), real (действительный) и их разновидностями, например longinteger.
Имя идентификатор - набор букв и цифр первая из которых должна быть буквой.
Комментарии. Комментарии применяются в тексте программы для пояснений и предназначены для человека. На действия компьютера никакого влияния не оказывают. Комментарий заключается в фигурные скобки и состоит из произвольных символов.
Например: {это комментарий – объяснение}.
Раздел описания переменных.
Все переменные (кстати и любые другие объекты, имеющие имена, например процедуры и функции), используемые в программе языка Pascal, должны быть описаны в соответствующих разделах описания. Раздел описания переменных начинается зарезервированным словом Var. {Зарезервированные слова нельзя применять в качестве идентификаторов имён переменных и других объектов. В дальнейшем зарезервированные слова при первом упоминании будут помечаться зелёным.}
Основные типы данные в Pascal:


Данные








Скалярные Структурированные




Стандартные Определённые Массивы Записи



Пользователем Множества
Целые Вещественные Интервальные Строки Файлы
Байтовые логические Перечисляемые Указатели
Символьные
Каждому типу данных соответствуют константы. Для хранения данных выделяются различные по длине ячейки памяти:
Целые (integer) от -32767 до +32767
Байтовые (byte) от 0 до 255
Вещественные (real) могут записываться в двух формах:
С фиксированной точкой 57.34 -57.34
С плавающей точкой 5.734Е+01 (эквивалент 57.34)
-5.734Е-01 (эквивалент – 0.05734)
Логические (boolean) имеют только два значения True False.
Символьные (char) допустимые символы.
Массивы (array) структурированный тип данных одинакового типа.
Строковые (string) строка символов (до 255 знаков).
Записи (record) объединение различных элементов.
Файлы (file) упорядоченная совокупность произвольного числа однотипных компонент.
Указатель (pointer) переменная, которая содержит адрес другой переменной (байта памяти).
Примеры описания переменных.
Var f:byte; {Выделяется одна ячейка памяти с именем f для хранения значения
переменной типа byte}
k,n:integer; {Выделяются две ячейки памяти с именами k,n для хранения целых
значений типа integer}
a,b,c:real; {Выделяются три ячейки памяти с именами a,b,c для хранения
действительных величин типа real}
Тот же фрагмент без комментариев:
Var f:byte; k,n:integer; a,b,c:real;
Раздел описания констант.
Раздел начинается зарезервированным словом Const.
Const d=36.54; l=’a’; {Здесь выделяются две ячейки памяти с именами d l в
которые заносятся соответствующие данные, которые
остаются неизменными в течение выполнения программы.}
Допустимо написание констант – выражений:
М=(32.25+0.64)/0.72;
Раздел описания типа.
Если пользователю, по каким либо причинам не хватает стандартных типов, то возможно определить типы по своему желанию.
Пример 1: Пусть нам нужно использовать тип с именем privat 1 в котором данные могут принимать только значения латинского алфавита начиная с буквы a и до буквы t. Определение этого типа можно записать в виде интервально определённого типа на основе стандартного типа char:
Type privat 1 =’a’..’t’;
Var lit,bukv:privat; {Выделены две ячейки памяти с именами lit, bukv, в которые можно занести только символы от a до t на основании предыдущего описания типа}
Пример 2: Определим перечисляемый тип для занесения названий месяцев.
Type month = (‘jan’,’fab’,’mar’,’apr’,’may’,’jun’,’jul’,’aug’,’sep’,’okt’,’nov’,’des’);
Var a,b,c:month;
Оператор присваивания. c:=a+b;
Слева от знака присваивания := указывается имя ячейки памяти, в которую нужно поместить значение. Под значением можно подразумевать значение константы, значение переменной (какого либо типа), значение вычисленного арифметического или логического или символьного или строкового выражения, или значение результата вычисления функции. В общем случае считается, что справа от знака присваивания помещается выражение.
Замечание: Тип имени ячейки памяти и тип выражения справа должны совпадать.
Оператор ввода. Readln(a,b,c);
Читать, набираемые через пробел данные с клавиатуры и занести их в последовательном порядке в ячейки a,b,c, после нажатия клавиши Enter.
Оператор вывода. Writeln(a,b,c);
Написать с новой строки на экране значения, извлечённые из ячеек a,b,c.
Замечание: Вместо имён ячеек памяти можно указывать символьные и текстовые константы, заключенные в кавычки ‘…………’. В этом случае на экран выводятся текстовые константы в том виде, в каком они помещены между кавычками. (Текстовые константы должны быть записаны латиницей.)
Простейшая программа. (вычисление с=а+в)
Program prim_1; {заголовок программы с именем prim_1}
Var a,b,c:real; {раздел описания переменных}
begin {начало раздела операторов}
writeln(‘input a,b’); {вывести на экран текстовую константу input a,b
(подсказка пользователю почему компьютер
остановился)}
readln(a,b); {компьютер остановился и ждёт набора значений a,b
(через пробел) c клавиатуры и занесение их в ячейки
с именами a,b (после нажатия клавиши Enter}
c:=a+b; {вычисление значения с и занесение результата в ячейку с}
writeln(‘c=’,c); {вывод на экран значения с в виде c= значение c}
readln; {компьютер остановился и ждёт нажатия клавиши Enter, на
экране при этом виден результат}
end. {конец работы программы}
Откроем приложение Delphi, создадим консольное приложение и запустим программу на выполнение.
Запустите приложение Delphi 7 по иконке или через ПУСК \все программы \ Delphi 7, выберете FIle\New\Other получите окно:
Нажмите Console Aplication \OK, Получите заготовку проекта (program Project2;) {Имя программы можно менять}
Наберите операторную часть программы например:
program Project1;
{$APPTYPE CONSOLE} {Директива компилятора {$APPTYPE CONSOLE}
Директива начинается с символа $ и свидетельствует о типе нашего приложения, и ее необходимо оставить без изменений.}
Uses SysUtils; {Использовать системные утилиты (здесь могут быть
перечислены указания какие блоки Delphi использовать)}
var a,b,c:real; begin
writeln('input a,b'); readln(a,b); c:=a+b; writeln('c=',c); readln; end.
Для запуска программы на выполнение нажмите Run\ Run или зелёный треугольник или f9 получите черное окно для решения и получения результатов:
Вводим через пробел значения a b (например 2.5 6.4)нажимаем enter получаем:
Нажав Enter вернемся в проект Delphi.
Проект можно сохранить: File\Save as… или File / Save Project As…Появится окно:
Набрав нужное имя (например Project0), нажмите «Сохранить». Проект сохранён и к нему можно получить доступFile\Open… получим окно, щёлкнув на Project0 открыть проект.
Лабораторная работа № 1. Разработка доцента кафедры информатики Скоб Ю.А.
Теоретические сведения Стандартные типы данных и описание величин
Тип данных – это характеристика, которая для величины определяет:
необходимый размер памяти;
диапазон значений, которые может принимать величина;
возможные операции над величиной (подразумеваются действия относительно использования величин в выражениях);
формы представления величин (или формат представления величин).
Логический тип: BOOLEAN .
Отводится 1 байт памяти.
Значением является множество из двух упорядоченных элементов с названием FALSE и TRUE.
Форма изображения – запись соответствующего слова false или true.
ЗАМЕЧАНИЕ. Операции not, and, or, xor – соответственно обозначают отрицание, конъюнкцию, дизъюнкцию, исключение. Работа этих операций представлена в следующей таблице:
a |
Not a |
|
a |
b |
a and b |
a or b |
a xor b |
True |
False |
|
True |
True |
True |
True |
False |
False |
True |
|
True |
False |
False |
True |
True |
|
|
|
False |
True |
False |
True |
True |
|
|
|
False |
False |
False |
False |
False |
Символьный тип: CHAR.
Отводится 1 байт памяти.
Значением может быть один из 255 упорядоченных элементов множества всех символов, представленных кодами ЭВМ таблицы ASCII (American Standard Code Information – американский стандартный код для обмена информацией).
Допустима операция сложения символов – знак «+», но как результат создается тип величины, который уже не является типом CHAR, а представляет собой структурированный тип STRING.
Форма изображения – символ записывается в апострофах.
ПРИМЕР: 'a', 'c', '2', '-', ' '.
При выводе символов на экран апострофы не изображаются.
Допускается использование записи символа через внутренний код, который записывается после символа #.
ПРИМЕР : 'a' соответствует записи #97; 'z' соответствует записи #90.
Целые типы величин.
Короткое целое без знака: BYTE.
Отводится 1 байт памяти.
Допустимы положительные значения: 0..255.
Короткое целое со знаком: SHORTINT.
Отводится 1 байт памяти.
Допустимы положительные и отрицательные значения: -128..127.
Целое без знака: WORD.
Отводится 2 байта памяти.
Допустимы положительные значения: 0..65 535.
Целое со знаком: INTEGER.
Отводится 2 байта памяти.
Допустимы положительные и отрицательные значения:
-32768..32767.
Длинное целое со знаком: LONGINT.
Отводится 4 байта памяти;
Допустимы положительные и отрицательные значения:
-2147483648..2147483647
Действительные типы величин.
Наиболее распространенная из этих форм – REAL. Для величин этого типа отводится 6–7 байт памяти. Допустимы положительные и отрицательные значения порядка 10-39…10+38 (более точно 2.9e39…1.7e+38).
Допустимы стандартные операции.
Форма представления:
а) с плавающей точкой;
б) с фиксированной точкой.
Форма представления с плавающей точкой – это форма записи числа, которая характеризирует его порядок. Это форма вида
[Sig1]<N1>.<N2> e Sig2<N3>
где: Sig1 – знак числа;
Sig2 – знак числа степени 10;
<N1> – цифры целой части числа;
<N2> – цифры мантиссы числа;
<N3> – порядок числа (степень десяти);
e – знак формы представления.
ЗАМЕЧАНИЕ 1. При записи в этой форме числа возникает неоднозначность, так, например, одно и то же число можно записать как
9.17Е+00 = 0.0097Е+03 = 917000.0Е05
Форма записи с плавающей запятой, когда
1 < N1.N2 < 10
называется формой записи нормализованного числа, или стандартной формой.
ПРИМЕР:
1.91700110e+00
3.10120310e01
7.32563424e+02
2.24503435е+03
ЗАМЕЧАНИЕ 2. При записи необходимо писать все цифры числа. Нельзя писать: e05 или 1e05, нужно писать 1.0Е05.
Форма представления с фиксированной точкой – это форма записи вида
Sig<N1>.<N2>,
где Sig – знак числа;
<N1> – цифры целой части числа;
<N2> – мантисса числа.
ПРИМЕР:
1.17, 0.01, +324.0.