Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
delphi_p1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
571.39 Кб
Скачать

71

Математический факультет

Кафедра функционального анализа

и операторных уравнений

Программирование в среде Delphi

Часть I

Object Pascal

Создание консольных приложений

для студентов 1-2 курсов д/о

математического факультета

Составитель

О.Б.Садовская

Рекомендовано к изданию научно-методическим советом математического факультета Воронежского университета. Протокол № от

Данное учебное пособие содержит первую часть курса лекций Программирование в среде Delphi, которая посвящена изучению основ языка программирования Object Pascal на примерах создания консольных приложений. Пособие также содержит задачи для работы студентов на практических занятиях по данному курсу.

1.1 Простейшее консольное приложение. Основные понятия

Delphi – это среда разработки программ, ориентированных на работу в операционной системе Windows. В основе Delphi лежит технология визуального проектирования, которая базируется на идеях объектно-ориентированного программирования. Программы в Delphi пишутся на языке Object Pascal, который является развитием языка Turbo Pascal. Слово “Object” особо подчёркивает, что язык поддерживает концепцию объектно-ориентированного программирования. Программы, работающие в операционных системах семейства Windows, называют приложениями. Основной целью данного курса является обучение созданию оконных приложений с использованием возможностей визуального программирования. Однако Delphi позволяет программисту создавать приложения, в которых для ввода данных в оперативную память используются процедуры read и readln, а для вывода результатов на экран монитора – процедуры write и writeln. Такие приложения называются консольными. Первая часть данного курса лекций посвящена изучению основ языка Object Pascal на примерах создания консольных приложений.

Алфавит языка Object Pascal состоит из букв, цифр, специальных символов и неиспользуемых символов.

К буквам относятся большие и малые буквы латинского алфавита. При этом Object Pascal не различает одноимённые большие и малые буквы, если только они не входят в символьное или строковое выражение. Буквой является также знак подчёркивания « _ ».

К цифрам относятся арабские цифры от 0 до 9 и шестнадцатеричные цифры. Перед шестнадцатеричным числом ставят знак $ .

Специальные символы включают в себя разделители, знаки пунктуации, знаки операций и зарезервированные слова. В качестве разделителей можно использовать пробел, управляющие символы (символы с кодами от 0 до 32), комментарий. Комментарием называется любая последовательность символов, заключённая в фигурные скобки: {это комментарий}. Комментарий во время выполнения программы игнорируется, его основное назначение – пояснения к тексту программы.

Не следует путать комментарий в фигурных скобках и директивы компилятора, которые начинаются с пары символов {$, рассматриваемых как одно целое.

Знаки операций:

+ – * / = < > <= >=

Знаки пунктуации:

, . : ; // := .. “ ^ @ $ # ( ) (* *) [ ] (. .) { }

Зарезервированные слова нельзя использовать в качестве имён, которые задаёт программист. Примеры зарезервированных слов: begin, end, var, program, uses.

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

Идентификаторы (имена) используются для обозначения констант, типов, переменных, процедур, функций, классов, модулей, программ и т.д. Идентификаторы состоят из букв и цифр и должны начинаться с буквы. Длина идентификатора может быть произвольной, но значащими являются только первые 64 символа. Знак подчёркивания может входить в идентификатор. Специальные символы и неиспользуемые символы не могут входить в состав идентификаторов. Пример правильного идентификатора: pr_1_3. Примеры недопустимых идентификаторов: 5p сумма var sum.6 x 5

Консольное приложение состоит из заголовка (правильного идентификатора) и следующих разделов (структура консольного приложения):

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

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

Раздел констант начинается словом const, за которым идут конструкции вида <имя константы> = <значение>. Константами называют любые неизменяемые в процессе выполнения программы данные.

Раздел описания типов начинается словом type, за которым идут конструкции вида <имя типа> = <описание>, позволяющие программисту создавать собственные типы.

Раздел описания переменных начинается со слова var. Здесь должны быть указаны все переменные, используемые в разделе операторов программы, а также их тип: <имя переменной > : <тип>;

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

Раздел операторов начинается служебным словом begin и заканчивается словом end, после которого ставится точка – признак конца программы. Раздел операторов содержит последовательность действий, которую должен выполнить компьютер.

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

Типы данных в Object Pascal можно разделить на стандартные и определяемые программистом. Стандартные типы не нужно описывать в разделе type, а можно сразу использовать при описании переменных в разделе var. Имеющиеся в Object Pascal стандартные типы можно классифицировать следующим образом:

 Простые

  • Порядковые

    • Целые

    • Символьный

    • Логический

    • Перечислимый

    • Тип-диапазон

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

  • Тип дата-время

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

  • Массивы

  • Строки

  • Множества

  • Записи

  • Файлы

  • Классы

  • Указатели

  • Процедурные

  • Variant

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

Кроме стандартных типов есть ещё типы, определяемые программистом.

В Object Pascal можно использовать следующие стандартные математические функции:

abs(x) – абсолютное значение

arctan(x) – арктангенс

cos(x) – косинус

exp(x) – экспонента

frac(x) – дробная часть аргумента

int(x) – целая часть аргумента

ln(x) – натуральный логарифм

pi – число

round(x) – ближайшее целое аргумента

sin(x) – синус

sqr(x) – квадрат аргумента

sqrt(x) – квадратный корень

trunc(x) – отсечение дробной части вещественного числа

Выражение некоторых функций через стандартные:

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

В консольном приложении ввод данных с клавиатуры осуществляется с помощью стандартных процедур read и readln, а вывод на экран дисплея – при помощи процедур write и writeln. При выполнении процедуры read происходит следующее. Программа приостанавливает свою работу и ждёт, пока на клавиатуре будут набраны нужные данные и нажата клавиша Enter. После нажатия клавиши Enter введённые значения присваиваются переменным, имена которых указаны в процедуре read. Например, то в результате выполнения процедуры read(x, y, z); и ввода с клавиатуры строки 5.25 10 -0.05 переменные будут иметь значения x=5.25 y=10.0 z=-0.05. В отличие от процедуры read процедура readln после ввода всех указанных в процедуре элементов списка ввода осуществляет переход к следующей строке дисплея. Назначение процедуры writeln – выводить информацию на экран. После этого курсор устанавливается в начало следующей строки. Если вы хотите оставить курсор на той же строке после последнего выведенного значения, то нужно использовать процедуру write. Для улучшения внешнего вида выводимых на экран дисплея данных можно использовать формат (описание поля вывода). Рассмотрим пример создания простейшего консольного приложения

Пример 1. Составить программу для вычисления значения переменной z по формуле

program p1;

{$APPTYPE CONSOLE}

uses SysUtils;

var x, y, z : real;

begin

writeln('Enter x,y');

readln(x, y);

z:=(2*x–7.5)/(8*y+3.1) – 16.9;

writeln(' z= ',z:9:4);

readln

end.

В фигурных скобках содержится директива компилятора, указывающая на то, что создаётся консольное приложение. Компилятор – это программа, входящая в состав среды Delphi и предназначенная для перевода операторов, написанных на языке Object Pascal на язык машинных кодов, понятных процессору. Компиляция программы осуществляется одновременным нажатием клавиш CTRL и F9.

Инструкция uses SysUtils означает, что наша программа в процессе своей работы может использовать данные и подпрограммы, находящиеся в стандартном модуле SysUtils. Стандартные модули созданы разработчиками Delphi.

Программа в примере 1 содержит раздел описания переменных var и раздел операторов. Слово real, используемое для описания переменных x, y, z означает, что значения этих переменных должны быть вещественными числами.

Раздел операторов начинается со слова begin и заканчивается словом end, после которого стоит точка. Оператор writeln(Enter x,y); выводит на экран строку символов, расположенных между апострофами. При выполнении процедуры readln(x,y); после введения, например, чисел 2.3 и -5.41, переменным x и y будут присвоены значения: x=2.3 y=-5.41. Затем осуществляется переход к следующей строке экрана.

Оператор z:=(2*x–7.5)/(8*y+3.1) – 16.9; называется оператором присваивания. Этот оператор вычисляет значение выражения, стоящего справа от знака := , и присваивает вычисленное значение переменной, стоящей слева от знака := ( в данном случае переменная z получает значение -16.8278 )

Оператор writeln(' z= ',z:9:4); выводит на экран строку из двух символов z= , а затем вычисленное значение z. Формат вывода z:9:4 определяет, что на вывод всего числа на экране отводится 9 позиций, из них 4 позиции на вывод дробной части.

Оператор readln приостанавливает работу программы до нажатия клавиши Enter. Это нужно для того, чтобы просмотреть на экране результат работы программы. После просмотра нужно нажать клавишу Enter для завершения работы программы.

После успешной компиляции и запуска программы на выполнение (клавиша F9) на экране появится стандартное окно DOS, в котором вводятся исходные данные и выводится результат выполнения программы. В нашем примере содержимое окна DOS будет выглядеть следующим образом:

Enter x,y

    1. -5.41

z= -16.8278

Текст написанной нами программы после сохранения содержится в файле с расширением .dpr . Этот файл называют файлом проекта. В примере 1 это файл p1.dpr . Файлы с расширением .cfg и .dof, содержащие установки и опции проекта, создаются автоматически. Файл с расширением .exe – файл приложения или исполняемый файл. Он будет создан компилятором, если в процессе компиляции не обнаружено синтаксических ошибок. Исполняемый файл является автономным исполняемым файлом, т.е. для его работы не требуются какие-либо другие файлы. Его можно запустить на выполнение, осуществив команду Открыть в окне Проводника.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]