Дисциплина «Программирование» Специальность 08080165 «Прикладная информатика (в экономике)» Институт информатики, инноваций и бизнес-систем Кафедра информатики, инженерной и компьютерной графики Люлько Виктор Иванович, старший преподаватель Тема 1. Среда программирования, возможности ее использования и настройка. Основные понятия языка программирования. Создание и выполнение программ. Программирование алгоритмов для вычислений по формулам. Требования к знаниям, умениям и навыкам После изучения темы студент должен иметь представление о возможностях и составе современных систем разработки программ уметь использовать основные средства одного из языков программирования для реализации линейных алгоритмов уметь использовать интерфейс среды программирования для реализации программ в виде консольных приложений 2 Содержание 1. Ключевые понятия 2. Учебный материал 3 Ключевые понятия Среда программирования Система окон, команд, меню и панелей среды программирования Консольное приложение Интегрированная система разработки программ Основные понятия языка программирования Алфавит языка программирования Идентификаторы Переменные и константы Типы данных Описание (объявление) переменных Операции Выражения Оператор (инструкция) присваивания Комментарии 4 Учебный материал Основные задачи лекции Изучение возможностей среды программирования для создания консольных приложений Знакомство с основными понятиями языка программирования Изучение возможностей использования основных средств языка программирования для реализации линейных алгоритмов 5 Учебный материал Программирование в средах современных информационных систем (начало) Программирование в средах современных информационных систем реализуется с возможностью использования современных концепций программирования, включающих объектноориентированный подход и визуальные средства быстрой разработки программных приложений, основанные на компонентной архитектуре. 6 Учебный материал Программирование в средах современных информационных систем (окончание) Среда программирования предоставляет программисту интерфейс для разработки, отладки и запуска программ. Современная среда программирования представляет собой комплекс инструментальных средств для реализации быстрой разработки программных приложений. В состав современной среды программирования входят графический интерфейс пользователя, графический интерфейс справочной системы, а также набор необходимых компонентов и окон. 7 Учебный материал Интегрированные системы разработки программ, их состав (начало) Интегрированная система разработки программ объединяет в себе следующие основные части: – главное окно; – дерево объектов; – инспектор объектов; – редактор форм; – редактор программного кода. Далее в качестве примера интегрированной системы разработки программ рассматривается среда программирования Turbo Delphi. 8 Учебный материал Интегрированные системы разработки программ, их состав (продолжение) Запуск среды программирования Turbo Delphi: Пуск => Все программы => Borland Developer Studio 2006 => Turbo Delphi (ЗАПУСК МОЖЕТ ПРОИСХОДИТЬ ОЧЕНЬ ДОЛГО). Вид окна среды программирования Turbo Delphi после запуска и перехода к созданию проекта программного приложения типа VCL Forms Application - Delphi for Win32 показан на следующем слайде. Для прекращения работы среды программирования Turbo Delphi можно закрыть ее окно или выполнить последовательность команд ее меню File => Exit. 9 Учебный материал Интегрированные системы разработки программ, их состав (окончание) 10 Учебный материал Система окон, команд, меню и панелей среды программирования (начало) Окна среды программирования, Turbo Delphi с входящими в ее состав окнами Structure, Object Inspector, Tool Palette, а также окно дизайнера формы и окно редактора кода используются для создания и редактирования проекта программного приложения типа VCL Forms Application - Delphi for Win32, а именно, для формирования видимых в окнах программ элементов (кнопок, списков, надписей, меню и т.д.) и для создания процедур обработки событий (нажатия на кнопку, выбора строки из списка или команды из меню и т.д.), связанных с этими элементами. 11 Учебный материал Система окон, команд, меню и панелей среды программирования (продолжение) Окно среды программирования Turbo Delphi содержит главное меню (команды File, Edit, View, Run, Help и другие) и панели инструментов с кнопками. Команды главного меню Turbo Delphi открывают доступ к меню с более конкретными командами второго уровня. Быстрый доступ к часто используемым командам можно получать также с помощью контекстных меню. Панели инструментов содержат кнопки, используемые для более быстрого выполнения действий, выполняемых аналогичными командами главного меню или контекстных меню. 12 Учебный материал Система окон, команд, меню и панелей среды программирования (окончание) После первого запуска среды программирования Turbo Delphi рекомендуется выполнить команды меню среды программирования View => Toolbars => Customize... и из появившегося окна Customize (вкладка Commands, категория Edit) последовательно перетащить кнопки Separator, Undo, Redo, Separator, Cut, Copy, Paste на правую часть панели инструментов Standard для обеспечения возможностей более быстрого редактирования с использованием этих кнопок. 13 Учебный материал Использование консольных приложений для реализации алгоритмов (начало) После запуска среды программирования Turbo Delphi обычно выполняется переход к созданию проекта программного приложения типа VCL Forms Application Delphi for Win32, для чего в среде программирования в ее внутреннем окне Tool Palette на вкладке Delphi Projects можно выбрать строку VCL Forms Application, после чего в центральной части окна среды программирования появляется окно модуля (обычно с именем Unit1) с открытой вкладкой Design в котором находится форма (обычно с заголовком Form1) – заготовка окна программного приложения. 14 Учебный материал Использование консольных приложений для реализации алгоритмов (продолжение) Создание приложений типа VCL Forms Application Delphi for Win32, кроме самых простых, требует предварительного ознакомления с основами программирования на языке Pascal, расширение которого (Object Pascal или Delphi) – является языком среды программирования Turbo Delphi. Для изучения возможностей реализации алгоритмов на языке Pascal в среде программирования Turbo Delphi существует возможность использования так называемого консольного приложения – Console Application. 15 Учебный материал Использование консольных приложений для реализации алгоритмов (продолжение) При программировании с использованием консольного приложения вводится только текст программы на языке Pascal без формирования других элементов программы. Консольные приложения могут быть использованы для быстрой отладки алгоритмов, так как при выполнении консольного приложения ввод данных и вывод результатов происходит в одном окне с применением специальных операторов (процедур), автоматически выполняющих преобразование данных из символьной формы в числовую (при вводе) и из числовой формы в символьную (при выводе). 16 Учебный материал Создание проекта консольного приложения (начало) Для создания проекта консольного приложения в среде программирования Turbo Delphi в ее внутреннем окне Tool Palette на вкладке Delphi Projects можно выбрать строку Console Application или выполнить команды File => New => Other... (или нажать на панели инструментов Standard кнопку New items) и затем в появившемся окне New Items в категории Delphi Projects выбрать значок Console Application, после чего на экране должно появиться окно создаваемого проекта консольного приложения. 17 Учебный материал Создание проекта консольного приложения(продолжение) Окно New Items с открытой категорией Delphi Projects и выделенным значком Console Application: 18 Учебный материал Создание проекта консольного приложения (продолжение) Окно среды программирования Turbo Delphi в режиме создания проекта консольного приложения: 19 Учебный материал Создание проекта консольного приложения (окончание) В окне проекта консольного приложения с заголовком (в данном случае) Project1 может быть введен текст программы на языке Pascal, при этом выполняемые операторы вводятся между строками с begin и end (можно и вместо строки { TODO -oUser -cConsole Main : Insert code here }). 20 Учебный материал Сохранение файлов проекта (начало) После создания консольного приложения и ввода текста программы (а еще лучше до ввода текста программы) следует сохранить проект (точнее, все файлы проекта) консольного приложения в папке, специально созданной или создаваемой при сохранении проекта для файлов именно этого проекта. При сохранении проекта рекомендуется изменить стандартное имя проекта, предлагаемое средой программирования (обычно Project1) на имя, соответствующее назначению проекта (буквы в имени должны быть только латинскими). 21 Учебный материал Сохранение файлов проекта (окончание) Для сохранения проекта консольного приложения (точнее, сразу всех его файлов) может быть использована в зависимости от конкретной ситуации любая из соответствующих команд из меню команды File (Save, Save As..., Save Project As..., Save All). При сохранении проекта консольного приложения создается несколько файлов: файл описания проекта (с расширением bdsproj), файл проекта (dpr),файл для сохранения параметров настройки компилятора (cfg) и другие. 22 Учебный материал Компиляция и запуск созданного приложения (начало) Для запуска созданного приложения на выполнение в среде программирования можно выполнить команды меню Run => Run или соответствующую кнопку Run на панели инструментов Debug (можно также использовать клавишу F9). При запуске приложения на выполнение в среде программирования сначала происходит трансляция (точнее, компиляция программы) и затем ее выполнение. 23 Учебный материал Компиляция и запуск созданного приложения (продолжение) В результате компиляции создается выполняемый файл приложения с расширением exe (этот файл часто называют exe-модулем), который затем и выполняется под управлением среды программирования. Завершить выполнение консольного приложения в среде программирования Turbo Delphi можно закрытием окна с результатами выполнения или последовательностью команд меню среды программирования Run => Program Reset. 24 Учебный материал Компиляция и запуск созданного приложения (продолжение) Компиляция программы останавливается при обнаружении в ней ошибки, а в окне проекта выделяется место ошибки в программе и в нижней части окна среды программирования появляется сообщение об ошибке. Правильность выполнения программы после завершения компиляции (если ошибок при компиляции не обнаружено) обычно проверяется с использованием контрольных примеров, когда заранее известно, какие результаты должны получиться для заданных исходных данных. 25 Учебный материал Компиляция и запуск созданного приложения (окончание) Созданное консольное приложение может выполняться независимо от среды программирования (для этого достаточно открыть папку с файлами проекта и запустить на выполнение exe-модуль). 26 Учебный материал Основные понятия языка программирования Алфавит языка программирования Алфавит языка программирования Delphi (Object Pascal) включает в себя совокупность символов, используемых для записи элементов языка: цифры 0 1 2 3 4 5 6 7 8 9; большие и маленькие латинские буквы A B C D E F G H I J K L M N O P R S T U V W X Y Za b c d e f g h i j k l m n o p r s t u v w x y z; символ подчеркивания _ и символ "пробел"; специальные символы + - * / = , . : ; ' < > ( ) [ ] { } ^ @ $ #. Символ ; используется при записи программы для разделения операторов, объявлений и описаний. 27 Учебный материал Идентификаторы (начало) Идентификаторы предназначены для обозначения переменных, функций и других объектов в программе. Идентификатор может состоять из букв, цифр и символов подчеркивания _ , но начинаться он должен только с буквы латинского алфавита или символа подчеркивания _ . Большие и маленькие буквы в идентификаторах не различаются. Между двумя идентификаторами в программе должен быть хотя бы один разделитель (пробел, символ конца строки, комментарий или другой специальный символ или комбинация специальных символов). 28 Учебный материал Идентификаторы (окончание) Идентификаторы различаются по их первым 63 символам. Примеры идентификаторов: a A x bc ff vv1 v_W summa DELTA2 alfa5. Идентификаторы для разных объектов не должны совпадать (включая также возможные совпадения, например, имени проекта приложения с именем объекта в этом приложении). 29 Учебный материал Переменные и константы (начало) Переменная – это именованная область памяти, которая отводится для данных, используемых программой. Переменная в программе обозначается идентификатором или, иначе говоря, в качестве имени переменной используется идентификатор. Константа – это целое или дробное число, строка символов или отдельный символ. Константы используются для обозначения числовых и строковых величин, не меняющихся при выполнении программы 30 Учебный материал Переменные и константы (окончание) Примеры констант: числовых – 123 0.1 0.0 -5.03 0 1 1500 1.5e3 (десятичным разделителем является точка; запись 1.5e3 или 1.5E3 означает 1.5•103; запись -23e-2 означает -23•10-2); строковых – '***Result: ' 's=' (строковая константа заключается апострофы, не включаемые в константу; при необходимости включения в константу апострофа он удваивается, например, константа, состоящая из одного апострофа, запишется как ''''). 31 Учебный материал Стандартные и другие типы данных (начало) Тип данных определяет способ кодировки данных, объем занимаемой ими памяти и действия, которые можно выполнять с этими данными. Типы данных используются для обозначения данных различной структуры и длины. Далее приведены примеры наиболее часто используемых типов данных. 32 Учебный материал Стандартные и другие типы данных (продолжение) Целые типы данных (для представления целых чисел в указанном диапазоне): Integer – -2 147 483 648 – 2 147 483 647; Byte – 0 – 255; Word – 0 – 65 535; Shortint – -128 – 127; Longint – -2 147 483 648 – 2 147 483 647. 33 Учебный материал Стандартные и другие типы данных (продолжение) Вещественные или действительные типы данных (для представления вещественных или действительных чисел в указанном диапазоне значений абсолютных величин): Real – 5,0•10-324 – 1,7•10308; Single – 1,5•10-45 – 3,4•1038; Double – 5,0•10-324 – 1,7•10308; Extended – 3,4•10-4932 – 1,1•104932. 34 Учебный материал Стандартные и другие типы данных (продолжение) Char – символьный тип данных (для представления любого символа из набора допустимых символов; для каждого символа отводится один байт памяти). 35 Учебный материал Стандартные и другие типы данных (продолжение) String – строковый тип (для представления строк символьных величин). 36 Учебный материал Стандартные и другие типы данных (продолжение) Boolean – логический тип данных (величины этого типа занимают в памяти 1 байт и могут принимать значения True (Истина) или False (Ложь); внутренним представлением для значения False является 0, для значения True является 1). 37 Учебный материал Стандартные и другие типы данных (окончание) Другие типы данных (типы данных, определяемые пользователем, записи и другие типы данных рассматриваются в конкретных ситуациях их использования). 38 Учебный материал Описание (объявление) переменных Описание (объявление) переменных начинается с ключевого слова var и обязательно должно предшествовать использованию этих переменных в программе. Описание (объявление) переменных должно быть расположено в разделе объявления переменных. Примеры описания (объявления) переменных: var s,i: Integer; x,y: Real; a,с: char; st: String; 39 Учебный материал Операции (начало) Операции выполняются порядке их записи слева направо в соответствии с их приоритетами. Очередность выполнения операций может быть изменена с использованием только круглых скобок. 40 Учебный материал Операции (продолжение) Арифметические операции: Операция + Типы операндов Тип результата Сложение Хотя бы один из операндов Real Real Оба операнда Integer Integer - Вычитание Те же, что для операции + Тот же, что для операции + * Умножение Те же, что для операции + Тот же, что для операции + / Деление Real или Integer Real div Целая часть от деления Integer Integer mod 41 Действие Остаток от деления Приоритет Более низкий Более высокий Учебный материал Операции (продолжение) Операции отношения (или сравнения): = равно; < меньше; > больше; <= меньше или равно; >= больше или равно; <> не равно. Результатом операции сравнения является значение логического типа True (Истина), если отношение, устанавливаемое операцией, выполняется, или значение логического типа False (Ложь), если это отношение не выполняется. 42 Учебный материал Операции (продолжение) Логические операции (применяются к величинам логического типа Boolean): not – логическое отрицание (унарная операция – имеет один операнд); and – логическое умножение (логическое И); or – логическое сложение (логическое ИЛИ); hor – операция неравнозначности (исключающее ИЛИ). 43 Учебный материал Операции (продолжение) Результаты выполнения логических операций: a False False b False True not a a and b a or b a hor b True False False False True False True True True True False True False False False True True True True False Результат выполнения любой из перечисленных здесь логических операций (а также операций отношения =, <, >, <=, >=, <> применительно к величинам логического типа) имеет логический тип. 44 Учебный материал Операции (окончание) Порядок выполнения операций по убыванию приоритетов выглядит следующим образом: унарные операции (с одним операндом) not, знак -, знак + (например, -3, +5 и т.д.); операции типа умножения и деления *, /, div, mod, and; операции типа сложения и вычитания +, -, or, hor; операции отношения =, <, >, <=, >=, <>. 45 Учебный материал Стандартные функции (начало) Некоторые математические функции: Функция Описание Abs(x) Абсолютное значение x Sqrt(x) Квадратный корень из x Тип аргумента результата Real Real Integer Integer Real, Integer Real Real Real Integer Integer Sqr(x) Квадрат x Sin(x) Синус x Real, Integer Real Cos(x) Косинус x Real, Integer Real Arctan(x) Арктангенс x Real, Integer Real Pi Число ¶ – Real Exp(x) Экспонента x Real, Integer Real Ln(x) Натуральный логарифм x Real, Integer Real 46 Учебный материал Стандартные функции (окончание) Некоторые функции преобразования: Функция Описание Тип аргумента Real результата Real Int(x) Целая часть x Frac(x) Дробная часть x Real Real Trunc(x) Отбрасывает дробную часть x Real Integer Round(x) Округление x до ближайшего целого числа по общепринятым правилам Real Integer 47 Учебный материал Выражения (начало) Для вычисления значений по формулам применяются выражения, состоящие из операндов (переменных, констант, функций), связанных между собой знаками операций. Значение выражения зависит от входящих в его состав переменных, констант, функций и операций между ними. При записи выражений можно не ставить пробел между операндами и знаками операций (за исключением операций div и mod). 48 Учебный материал Выражения (продолжение) При вычислении значений выражений в первую очередь выполняются унарные операции (например, знаки + или - перед первым операндом выражения), затем вычисляются значения функций, затем выполняются операции типа умножения и деления (например, *, /, div, mod), затем выполняются операции типа сложения и вычитания (например, +, -). 49 Учебный материал Выражения (продолжение) Порядок выполнения действий в выражениях может быть изменен с помощью только круглых скобок, при этом операции в скобках будут выполняться в обычном порядке, но раньше, чем операции за скобками. При записи выражений, содержащих скобки, число открывающих скобок должно быть равно числу закрывающих скобок. 50 Учебный материал Выражения (окончание) Тип выражения определяется типами входящих в него операндов и выполняемыми в нем операциями. Примеры выражений: x+1 y+sin(abs(x)*Pi/180)-1 I mod 2+l -x+y/z (a-b)/(c+d/(e+f)) 51 Учебный материал Оператор (инструкция) присваивания (начало) Оператор присваивания имеет вид имя переменной:=выражение В операторе присваивания имя переменной отделяется от выражения знаком присваивания := 52 (символы двоеточие и равно, следующие непосредственно один за другим без пробелов). Операторы отделяются друг от друга символом ; (точка с запятой). Учебный материал Оператор (инструкция) присваивания (окончание) Примеры операторов присваивания: z:=x+1; f:=y+sin(abs(x)*Pi/180)-1; k:=I mod 2+l; uu := -x+y/z1z2; t:=(a-b)/(c+d/(e+f)); s:=s+1; При выполнении оператора присваивания сначала вычисляется значение выражения справа от знака присваивания := и затем результат присваивается переменной слева от знака := . Переменная и выражение должны иметь совместимые типы (например, Real и Integer, но не наоборот). 53 Учебный материал Операторы (инструкции) ввода и вывода в режиме консольного приложения (начало) В режиме консольного приложения для ввода данных используется операторы (процедуры) ввода Read и Readln. Эти операторы используются для ввода значений переменных. Идентификаторы переменных являются параметрами оператора ввода и перечисляются после названия оператора в круглых скобках через запятую. 54 Учебный материал Операторы (инструкции) ввода и вывода в режиме консольного приложения (продолжение) При выполнении, например, оператора ввода Readln(x1,x2,x3) программа ждет, пока на клавиатуре будут набраны три числа, разделенные пробелом, табуляцией или нажатиями клавиши Enter, и после ввода последнего из этих чисел и нажатия на клавишу Enter, введенные значения присваиваются переменным с именами, указанными в операторе ввода. Если было введено больше чисел, чем указано переменных в операторе ввода, то остальные числа будут утеряны. При вводе данных не рекомендуется использовать оператор Read, который передает излишне введенные данные следующему оператору ввода. 55 Учебный материал Операторы (инструкции) ввода и вывода в режиме консольного приложения (продолжение) В режиме консольного приложения для вывода данных используются операторы (процедуры) вывода Write и Writeln. Операторы вывода используются для вывода значений переменных, констант, выражений. Идентификаторы переменных, константы, выражения, являются параметрами оператора вывода и перечисляются после названия оператора в круглых скобках через запятую, например: Writeln(n,'A = ',b+c,I mod 2+l,'Argument '); 56 Учебный материал Операторы (инструкции) ввода и вывода в режиме консольного приложения (продолжение) При выполнении, например, оператора Write('*Results: ',s,' ',i,' ',j,' ',k); на экран будут выведены в одной строке текст *Results: и значения переменных s,i,j,k, разделенные пробелами, после чего курсор останется в этой же строке после последнего выведенного символа значения переменной k. Оператор Writeln, в отличие от оператора Write, после вывода значений выполняет переход на начало следующей строки. 57 Учебный материал Операторы (инструкции) ввода и вывода в режиме консольного приложения (продолжение) В операторах вывода могут использоваться форматы вывода, например, Writeln(aa:5,b:8:2); Здесь после имени переменной aa через двоеточие указывается количество отводимых для вывода ее значения позиций, внутри которых значение выравнивается по правому краю. Для переменной b указаны две спецификации (8:2), означающие, что под значение этой переменной отводится 8 позиций, причем 2 из них – под дробную часть выводимого значения (одну из 8 позиций занимает точка). Две спецификации можно указывать только для вещественных величин. Спецификации могут быть выражениями целого типа. 58 Учебный материал Операторы (инструкции) ввода и вывода в режиме консольного приложения (окончание) Оператор ввода Readln без параметров может быть использован для остановки выполнения программы и просмотра выведенных результатов (после нажатия клавиши Enter выполнение программы продолжится). Для того чтобы окно с результатами выполнения консольного приложения неожиданно не исчезло с экрана, рекомендуется в конце программы использовать оператор ввода Readln без параметров (этот оператор будет ждать нажатия на клавишу Enter) или переход на другой оператор Readln с параметрами или без них. Оператор вывода Writeln без параметров выполняет переход в начало следующей строки. 59 Учебный материал Комментарии (начало) Комментарии – произвольные тексты в программе, служащие, как правило, для описания того, что происходит при выполнении участков программы или отдельных операторов. Комментарии могут содержать любые символы, включая русские буквы. Наличие или отсутствие комментариев никак не влияет на работу программы. Комментарий можно записывать в любом месте программы, где разрешен пробел. Однострочные комментарии начинаются с символов // и продолжаются до конца строки. Многострочные комментарии могут быть ограничены символами { и } или их эквивалентами (* и *). 60 Учебный материал Комментарии (окончание) Примеры комментариев: { Ниже находится оператор, увеличивающий значение s на 1 } s:=s+1; // Здесь значение s увеличивается на 1 // Ниже находится еще один комментарий (* Выше находится оператор, увеличивающий значение s на 1 *) 61 Учебный материал Создание и выполнение простых программ При создании проектов даже самых простых программ следует файлы каждого проекта сохранять в отдельной папке, предназначенной для сохранения файлов только этого проекта. В конце текста программы консольного приложения обязательно должен находиться оператор Readln без параметров или должен быть выполнен переход на оператор ввода данных, иначе окно с результатами выполнения консольного приложения после вывода результатов сразу закроется. Завершить выполнение консольного приложения в сложных ситуациях можно последовательностью команд меню среды программирования Run => Program Reset. 62 Учебный материал Особенности программирования линейных алгоритмов для вычислений по формулам различной сложности При неоднократном использовании в программе одного и того же выражения для вычислений по сложной формуле рекомендуется присвоить результат вычислений по этой формуле переменной и затем использовать идентификатор этой переменной вместо соответствующего выражения. При возведении в небольшую целую степень можно использовать выражение для умножения (например, для возведения в 3-ю степень можно использовать выражение x*x*x). 63 Использование материалов презентации Использование данной презентации, может осуществляться только при условии соблюдения требований законов РФ об авторском праве и интеллектуальной собственности, а также с учетом требований настоящего Заявления. Презентация является собственностью автора. Разрешается распечатывать копию любой части презентации для личного некоммерческого использования, однако не допускается распечатывать какую-либо часть презентации с любой иной целью или по каким-либо причинам вносить изменения в любую часть презентации. Использование любой части презентации в другом произведении, как в печатной, электронной, так и иной форме, а также использование любой части презентации в другой презентации посредством ссылки или иным образом допускается только после получения письменного согласия автора. 64