Программирование на языках высокого уровня Вичугов Владимир Николаевич доцент каф. АиКС АВТФ ТПУ Томск 2010.

Презентация:



Advertisements
Похожие презентации
Тема 5. Основы современной технологии программирования Программирование в средах современных информационных систем. Интегрированные системы разработки.
Advertisements

Тема 5. Введение в среду визуального программирования Borland Delphi 7.0.
Объектно-ориентированный язык программирования. Выберите в реальной жизни любой объект (холодильник, магнитофон, машина) и опишите его свойства, методы,
Операционная система. 1.Общее понятие операционных системОбщее понятие операционных систем 2.Классификация ОСКлассификация ОС 3.Обзор наиболее популярных.
Знакомство с IDE Pascal. Этапы решения задачи на компьютере : 1. Постановка реальной задачи и ее содержательный анализ 2. Создание модели ( формализация.
Тема 1.3. Сервисное программное обеспечение. 1. Понятие операционного окружения Операцио́нное окруже́ние (англ. operating environment) среда, в которой.
VBA – Visual Basic for Application (офисное программирование) Назначение VBA VBA является современным языком визуального и объектно-ориентированного программирования.
Слезко Полина Сергеевна Учитель информатики Белоярской СОШ Томской области.
Основы информатики Классы Заикин Олег Сергеевич zaikin.all24.org
Основы объектно-ориентированного программирования (ООП)
ФАКУЛЬТАТИВ №001. IDE Delphi ЭЛЕМЕНТЫ ИНТЕРФЕЙСА Delphi.
Среди современных языков программирования одним из самых популярных является язык Паскаль. Этот язык разработан в 1971 году и назван в честь Блеза Паскаля.
7 класс Операционная система WINDOWS Операционная Для продолжения щелкните по кнопке ДАЛЕЕ.
Информатика в школе Операционная система. Графический интерфейс. Программное обеспечение.
OOП Инна Исаева. Подпрограмма – это большая программа, разделённая на меньшие части. В программе одна из подпрограмм является главной. Её задача состоит.
Общие сведения Так как среда программирования Visual Basic выполняется на компьютере вместе с операционной средой Windows, то создавать мы будем программы,
Программа Проводник 8 класс Яблоновская СОШ 3, Тахтамукайский район, Республика Адыгея Учитель информатики Нигматуллин Р.Р.
Урок информатики 10 класс Тема «Размещение текстовой информации на форме при помощи управляющих элементов» Учитель информатики МБОУ ОСОШ 1 Фирсов А.Н.
1. Изменение свойств объектов. Изменение свойств объектов На этом уроке мы научимся, как в процессе работы программы изменять свойства объектов, а также.
Объектно-ориентированное программирование (ООП) – это метод программирования, при использовании которого главными элементами программ являются объекты.
Транксрипт:

Программирование на языках высокого уровня Вичугов Владимир Николаевич доцент каф. АиКС АВТФ ТПУ Томск 2010

Языки программирования Язык программирования – набор правил (лексических, синтаксических и семантических) для составления компьютерной программы. Машинный язык Язык ассемблера Мнемонические команды вместо машинных команд

Языки программирования высокого уровня ЯВУ имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы FORTRAN (1954 г.) – первый ЯВУ Структурное программирование Управляющие структуры, подпрограммы (функции, процедуры), рекурсия, локальные переменные, отсутствие GOTO Алгол(1958), Паскаль(1970), Си(1972).

Объектно-ориентированное программирование (ООП) Классы, объекты, инкапсуляция, полиморфизм, наследование Object Pascal, C++, Java, C#, …. ООП позволяет оптимально организовывать программы, разбивая проблему на составные части, и работая с каждой по отдельности. Класс представляет собой тип данных, объединяющий поля (свойства) и методы (функции). Класс «Человек» Поле «Имя» Метод «Получить имя» Метод «Отправить сообщение» Экземпляр (объект) класса «Человек» Поле «Имя» = Вася Метод «Получить имя» Метод «Отправить сообщение» Экземпляр (объект) класса «Человек» Поле «Имя» = Петя Метод «Получить имя» Метод «Отправить сообщение»

Объектно-ориентированное программирование (ООП) Инкапсуляция – свойство объекта скрывать некоторые свои свойства и методы. Внешний пользователь может взаимодействовать с объектом только через предоставленный интерфейс. Пример: в классе «Человек» поле «Имя» скрыто от внешнего пользователя. Интерфейс для внешнего пользователя при взаимодействии с объектами класса «Человек» состоит из методов «Получить имя» и «Отправить сообщение». Класс «Человек» Поле «Имя» Метод «Получить имя» Метод «Отправить сообщение»

Объектно-ориентированное программирование (ООП) Наследование позволяет описать новый класс на основе существующего, при этом свойства и функциональность родительского класса наследуются новым классом (потомок, наследник, производный класс). Класс «Человек» Родительский класс Поле «Имя» Метод «Получить имя» Метод «Отправить сообщение» Класс «Студент» Производный класс Поле «Имя» Поле «Группа» Метод «Получить имя» Метод «Получить номер группы» Метод «Поставить оценку» Метод «Отправить сообщение» Класс «Преподаватель» Производный класс Поле «Имя» Поле «Зарплата» Метод «Получить имя» Метод «Увеличить зарплату» Метод «Отправить сообщение»

Объектно-ориентированное программирование (ООП) Класс «Группа» Поле «Студенты» - массив объектов класса «Студенты» Метод «Получить список группы» Отправить сообщение старосте группы Класс «Кафедра» Поле «Преподаватели» - массив объектов класса «Преподаватель» Метод «Получить список преподавателей» Отправить сообщение зав.кафедрой Класс «Университет» Поле «Кафедры» - массив объектов класса «Кафедра» Поле «Группы» - массив объектов класса «Группа» Метод «Получить список кафедр» Объявить о проведении конференции

Языки программирования Компилируемые ЯПИнтерпретируемые ЯП машинный код Intel PowerPC + скорость выполнения – переносимость машинного кода компилятор Intel PowerPC интерпретатор – скорость выполнения + переносимость программы Смешанные ЯП (Java, C#) компилятор байт-код: машинно-независимый код низкого уровня Виртуальная машина – JIT-компилятор (just in time – «на лету») байт-код Intel PowerPC виртуальная машина + сборка «мусора» + переносимость программы

Однозадачная ОС (Dos) Особенности программирования в многозадачной ОС Многозадачная ОС (Windows, Linux) последовательное выполнение команд Цикл обработки сообщений системы сообщения системы Процедура обработки нажатия на клавишу Процедура обработки перемещения курсора мыши Процедура обработки нажатия на кнопку Процедура обработки событий системного таймера

Особенности программирования в многозадачной ОС Приложение Windows API (Application Programming Interface – интерфейс программирования приложений) FindFirstFile GetFileAttributes GetComputerName GetWindowsDirectory CreateWindow Сообщение WM_MOVE Сообщение WM_CLOSE Сообщение WM_MBUTTONDBLCLK Приложение Unix API - POSIX (Portable Operating System Interface for uniX) open pipe kill Сигнал SIGTERM Сигнал SIGHUP Сигнал SIGINT Сигнал SIGCHLD Программирование в ОС семейства Windows Программирование в ОС семейства Unix

Особенности программирования в многозадачной ОС FindFirstFile GetFileAttributes GetComputerName GetWindowsDirectory CreateWindow Сообщение WM_MOVE Сообщение WM_CLOSE Сообщение WM_MBUTTONDBLCLK open pipe kill Сигнал SIGTERM Сигнал SIGHUP Сигнал SIGINT Сигнал SIGCHLD Выполнение Windows-приложения в ОС семейства Unix Unix API - POSIX Wine – альтернативная свободная кроссплатформенная реализация Windows API Приложение Оконная система стандарта X Windows System (например, XOrg или XFree86) WINE = Wine Is Not Emulator

Особенности программирования в многозадачной ОС Выполнение Windows-приложения в ОС семейства Unix Запуск приложения в ОС Windows XP Запуск приложения в ОС ASP Linux

Свободное ПО и закрытое ПО. GNU GPL. GNU General Public License (Универсальная общедоступная лицензия GNU или Открытое лицензионное соглашение GNU) популярная лицензия на свободное программное обеспечение, созданная в рамках проекта GNU в 1988 г. GNU - (GNUs Not Unix «GNU это не Unix») проект по созданию свободной UNIX-подобной операционной системы, начатый Ричардом Столлмэном в 1983 году. ОС GNU/Linux = системные утилиты проекта GNU + ядро Linux.

Свободное ПО и закрытое ПО. GNU GPL. Права (свободы) для пользователя компьютерной программы: - доступ к исходному коду; - свобода изучения того, как программа работает, и её модификации; - свобода распространения копий; - свобода улучшения программы, и выпуска улучшений в публичный доступ. Пользователи производных программ получат вышеперечисленные права («copyleft» - принцип «наследования» прав)

Язык C++, среда разработки Borland Turbo C++ Turbo C++ - программный продукт фирмы Borland, предназначенный для быстрой разработки приложений (RAD – rapid application development) на языке С++. Turbo С++ - это интегрированная среда разработки приложений (IDE – Integrated Development Environment). Возможно создание как консольных приложений Win32, так и GUI- приложений (GUI – Graphical User Interface – графический интерфейс пользователя). Версия Explorer является бесплатной.

Язык C++, среда разработки Borland Turbo C++ Создание консольного приложения: File – New – Other – Console Application

Язык C++, среда разработки Borland Turbo C++ Создание консольного приложения Пример консольного приложения: Количество компьютеров: N 1 - Добавить компьютер 2 - Минимальная длина имени компьютера 3 - Выход

Язык C++, среда разработки Borland Turbo C++ Поиск необходимой функции в библиотеке (например, conio.h) Список функций

Язык C++, среда разработки Borland Turbo C++ Поиск информации об используемых функциях Нажать правой кнопкой мыши по названию функции и выбрать Find Declaration («Найти объявление») Описание функций Другие функции библиотеки

Ctrl + Space = список вариантов кода

Язык C++, среда разработки Borland Turbo C++ Создание нового оконного приложения: File – New – VCL Form Application Дизайнер форм Палитра компонентов Инспектор объектов Дерево объектов Менеджер проекта Проект – набор файлов, необходимых для компиляции приложения Форма – объект, который представляет одно окно приложения. Компонент – класс, который описывает некоторый элемент управления (видимый или невидимый в окне приложения). При перетаскивании на форму становится объектом (экземпляром класса) Панель управления

Язык C++, среда разработки Borland Turbo C++ Файл ресурсов для приложения (картинка для запускаемого файла, картинки меню и т.п.) Первая форма В процессе компиляции объектный файл формы Unit1.obj. Все объектные файл объединяются в исполняемый файл Project1.exe Создание нового оконного приложения: менеджер проекта

Язык C++, среда разработки Borland Turbo C++ Создание нового оконного приложения: менеджер проекта Заголовочный файл формы Исходный файл формы

Язык C++, среда разработки Borland Turbo C++ Классы и объекты

Язык C++, среда разработки Borland Turbo C++ Добавление компонентов

Язык C++, среда разработки Borland Turbo C++ Динамическое создание элементов управления

Язык C++, среда разработки Borland Turbo C++ Свойства и события

Язык C++, среда разработки Borland Turbo C++ Изменение свойств объектов

Язык C++, среда разработки Borland Turbo C++ Создание обработчиков событий

Язык C++, среда разработки Borland Turbo C++ Создание обработчиков событий

Язык C++, среда разработки Borland Turbo C++ Добавление обработчика события

Язык C++. Библиотеки классов Библиотека OWL (Object Window Library) фирмы Borland Библиотека MFC (Microsoft Foundation Class Library) фирмы Microsoft Библиотека VCL (Visual Component Library) фирмы Borland концепция PME – свойства, методы, события Библиотека dotNET фирмы Microsoft Код для работы с WinAPI для вывода картинки в окно Аналогичный код для работы с OWL Использование VCL

VCL. Свойства компонентов. Свойства относятся к специальной категории членов класса: К свойствам можно обращаться как к полям класса, но часто (не всегда) при чтении свойства или при записи значения в свойство выполняются специальные методы (пример: изменение свойства Left объекта класса TForm). Свойства могут иметь тип read-only, write-only, runtime-only. Обычно (не всегда) имеют значение по умолчанию. Свойства могут быть следующих типов: - простые типы данных; - перечисления; - наборы; - объекты.

Иерархия классов VCL TObject TPersistent TComponent Невизуальные компоненты Визуальные компоненты TTimer, etc TControl TGraphicControlTWinControl TSpeedButton, etcTPanel, etc

Язык C++, среда разработки Borland Turbo C++ Свойства, события, компоненты Название свойства ТипОписание свойства Раздел Miscellaneous – разное Name (Имя)AnsiStringИмя объекта в программе.

Язык C++, среда разработки Borland Turbo C++ Свойства, события, компоненты Название свойства ТипОписание свойства Раздел Visual – видимый Color (Цвет)TColorЦвет фона элемента управления. enum TColor {clMin=-0x7fffffff-1, clMax=0x7fffffff};

Язык C++, среда разработки Borland Turbo C++ Свойства, события, компоненты Название свойства ТипОписание свойства Раздел Visual – видимый Font (Шрифт)TFont *Свойства шрифта. Form1->Label1->Font->Size = 50;

Язык C++, среда разработки Borland Turbo C++ Свойства, события, компоненты Название свойства ТипОписание свойства Раздел Action Caption (Заголовок) AnsiStringВидимый на экране заголовок компонента. Для формы - строка заголовка формы.

Язык C++, среда разработки Borland Turbo C++ Свойства, события, компоненты Enabled (Доступный) booltrue – элемент доступен; false – элемент недоступен (не реагирует ни на какие действия со стороны пользователя, но программно можно изменить свойства недоступного объекта и вызвать обработчики событий).

Visible (Видимый) booltrue – элемент отображается; false – элемент не отображается. Язык C++, среда разработки Borland Turbo C++ Свойства, события, компоненты

Язык C++, среда разработки Borland Turbo C++ Свойства, события, компоненты Hint (Подсказка) AnsiStringТекст подсказки, который появляется, если пользователь задержит курсор мыши на данном элементе. Подсказа будет выводиться только в том случае, если свойство ShowHint (раздел Help and Hints) установлено в true, либо если данный раздел наследует это свойство от родительского элемента (свойство ParentShowHint = true) и в родительском элементе разрешен показ подсказки.

Язык C++, среда разработки Borland Turbo C++ Свойства, события, компоненты Align (Выравнивание) TAlignСпособ выравнивания элемента относительно родительского элемента.

Язык C++, среда разработки Borland Turbo C++ Основные события Название событияОписание события OnClickСобытие возникает при нажатии на левую кнопку мыши по данному элементу. OnChangeСобытие возникает, когда в элементе управления происходят какие-либо события (например, ввод нового символа в поле ввода текста). OnDblClickСобытие возникает при двойном нажатии на левую кнопку мыши по данному элементу. OnEnterСобытие происходит в том случае, когда элемент управления получает фокус (активизируется). OnExitСобытие происходит, когда элемент управления теряет фокус (в пределах окна). OnKeyDownСобытие возникает при нажатии на любую клавишу на клавиатуре (в том учитываются служебные клавиши Ctrl, Alt, Shift). Параметр Key типа WORD содержит код нажатой клавиши. OnKeyUpСобытие возникает при отжатии любой клавиши на клавиатуре (в том учитываются служебные клавиши Ctrl, Alt, Shift). Параметр Key типа WORD содержит код отжатой клавиши.

Название событияОписание события OnKeyPressСобытие возникает при нажатии на алфавитно-цифровую клавишу, на Tab, Backspace, Esc или Enter на клавиатуре. Параметр Key типа char содержит нажатую клавишу. OnMouseDownСобытие возникает при нажатии на любую кнопку мыши. Параметр Button содержит информацию о том, какая кнопка была нажата: левая, правая или средняя. Параметр Shift содержит информации о том, какие служебные клавиши на клавиатуре были нажатии (Alt, Shift, Ctrl). Параметры X и Y содержат координату точки, в которой был курсор во время нажатия кнопки, относительно левой верхней границы текущего элемента управления. OnMouseUpТо же самое, только при отпускании клавиши мыши OnMouseMoveСобытие возникает при движении курсора мыши по поверхности данного элемента управления. OnResizeДля формы: событие, которое возникает при изменении размеров окна. OnPaintСобытие возникает, когда необходимо перерисовать компонент. Язык C++, среда разработки Borland Turbo C++ Основные события

Язык C++, среда разработки Borland Turbo C++ Приведение типов

Язык C++, среда разработки Borland Turbo C++ Приведение типов

Язык C++, среда разработки Borland Turbo C++ Приведение типов

Язык C++, среда разработки Borland Turbo C++ Сравнение вещественных величин

Язык C++, среда разработки Borland Turbo C++ Сравнение вещественных величин Панель управления Язык и региональные стандарты Региональные параметры Настройка

Язык C++, среда разработки Borland Turbo C++ Сравнение вещественных величин float – 4 байта – 7 значащих цифр double – 8 байт – 15 значащих цифр long double – 10 байт – 19 значащих цифр

Язык C++, среда разработки Borland Turbo C++ Сравнение вещественных величин

Язык C++, среда разработки Borland Turbo C++ Операция присваивания и выражение присваивания Операция присваивания: a = b a - адресное выражение (l-value), b – любое выражение Адресные выражения: x, *py, Lines.Count, Form1->Caption Неадресные выражения: x+y, a+1, 132, "MainForm" В C++ операция присваивания образует выражение присваивания, значением которого является левый операнд после присваивания. Значение выражения присваивания является адресным. a = b = 10; соответствует b = 10; a = b; (a = b+1) = 20; соответствует a = b+1; a = 20; (res = 0) = a/b;

Язык C++, среда разработки Borland Turbo C++ Операция присваивания и выражение присваивания int a=0, b=0, c=0, d=0; d = c = b = a = 10; Результат: все переменные равны 10 int a=0, b=0, c=0, d=0; d = (c = b = a) = 10; Результат: a = 0, b = 0, c = 10, d = 10 int a=0, b=0, c=0, d=0; d = c = (b = a) + (a = 10) + 1; Результат 1: a = 10, b = 0, c = 11, d = 11 Результат 2: a = 10, b = 10, c = 21, d = 21

Приоритеты и ассоциативность операций Приоритет: a+b*ca+(b*c) Ассоциативность: a+b+c (a+b)+c (слева направо) a=b=c a=(b=c) (справа налево) Язык C++, среда разработки Borland Turbo C++

Приоритеты и ассоциативность операций Задача: выводить новые значения на экран, пока не будет получено значение int val; while ((val = GetNextValue()) != -1) cout

Язык C++, среда разработки Borland Turbo C++ Операция следования (запятая) Выражения, разделённые запятой, вычисляются слева направо. Результатом операции является последнее выражение. Результат может быть адресным выражением. a = 10, b = 20; соответствует а = 10; b = 20; a = (10, b = 20); соответствует b = 20; a = b; (10, a++, b = 20) = 30; соответствует a++; b = 20; b = 30; for (i=4, j=10; i

Язык C++, среда разработки Borland Turbo C++ Тернарная операция выбора (или условная операция) Тернарная операция – это операция с тремя операндами. Тернарная операция выбора: операнд1?операнд2:операнд3 Если операнд1 не равен нулю (условие истинно), то операция принимает значение второго операнда, иначе операция принимает значение третьего операнда. max = a>b?a:b; //нахождение максимального значения b?(res=a/b,count++):(ShowMessage("На ноль делить нельзя!"),1); (a>b?a:b)=100; //максимальное значение заменить на 100

Язык C++, среда разработки Borland Turbo C++ Пустой оператор «;» используется в том случае, когда по правилам языка должен быть оператор, но в программе не должно быть никаких вычислений.

Язык C++, среда разработки Borland Turbo C++ Условный оператор Блок else относится к самому последнему оператору if, с которым ещё не сопоставлен ни один блок else.

Язык C++, среда разработки Borland Turbo C++ Оператор выбора При передаче управления по какой-либо метке дальнейшие операторы выполняются подряд до конца оператора выбора или до оператора выхода break.

Язык C++, среда разработки Borland Turbo C++ Массивы Имя массива – указатель на первый элемент: mas == &mas[0] Приоритет у операции разадресации (разыменовывания) выше, чем у сложения. mas[2] эквивалентно *(mas+2), что соответствует третьему элементу в массиве mas: mas+2 == &mas[2]

Язык C++, среда разработки Borland Turbo C++ Массивы mas[3] = 2.0 mas[3]+1 = 3 3[mas] = *(3+mas) – 4-ый элемент массива mas

Язык C++, среда разработки Borland Turbo C++ Массив как аргумент функции

Язык C++, среда разработки Borland Turbo C++ Массив как аргумент функции

Язык Object Pascal, среда разработки Borland Turbo Delphi Массив как аргумент функции

Язык Object Pascal, среда разработки Borland Turbo Delphi Массив как аргумент функции

Язык C++, среда разработки Borland Turbo C++ Массив как аргумент функции

Язык C++, среда разработки Borland Turbo C++ Массив как аргумент функции

Язык C++, среда разработки Borland Turbo C++ Функции. Аргументы по умолчанию.

Язык C++, среда разработки Borland Turbo C++ Переопределение функций