- •Информатика
- •Тверь-2008
- •15 Сентября 2008 г., протокол n1
- •Содержание
- •Глава 1. Языки программирования (яп)…………………………………..8
- •Глава 2. Основы алгоритмизации……………………………………………24
- •Глава 3. Язык и система программирования
- •Глава 4. Объектно-ориентированное программирование (ооп)……….56
- •Введение
- •Глава 5. Лабораторные работы и практические задания ………………..68
- •Глава 5 содержит перечень лабораторных работ (8) по этим темам, а также список индивидуальных заданий для самостоятельного выполнения студентами по желанию или рекомендации преподавателя.
- •Глава 1. Языки программирования (яп)
- •1.1. Эволюция яп (поколения яп)
- •1.2. Элементы яп
- •1.3. Способы описания яп
- •1.4. Типы данных
- •1.5. Краткие сведения о некоторых яп
- •1.5.1. Бейсик (Basic)
- •1.5.2. Паскаль (Pascal)
- •1.6. Системы программирования
- •Глава 2. Основы алгоритмизации
- •2.1. Понятие алгоритма
- •2.2. Свойства алгоритма
- •2.3. Основные этапы решения задачи с помощью эвм
- •2.4. Способы записи алгоритмов
- •2.5. Основные элементы блок-схемы
- •2.6. Типовые структуры алгоритмов
- •2.7. Стандартные алгоритмы
- •2.7.1. Алгоритм накопления суммы (произведения)
- •2.7.2. Алгоритм поиска максимального (минимального) элемента
- •2.7.3. Алгоритмы сортировки
- •2.7.3.1. Метод выбора
- •2.7.3.2. Пузырьковая сортировка
- •Глава 3. Язык и система программирования
- •3.1. Общая характеристика языка и системы программирования vba
- •3.2. Типы данных в языке vba
- •Описание переменных и идентификаторы типов данных
- •3.3. Арифметические и логические выражения
- •3.4 Основные операторы языка vba
- •1. Оператор присваивания.
- •2. Условный оператор.
- •3. Оператор цикла с заданным числом повторений.
- •4. Оператор цикла с незаданным числом повторений.
- •3.5. Разбиение строки программы, несколько операторов в одной строке, задание комментариев в тексте программы
- •3.6. Типы процедур
- •Глава 4. Объектно-ориентированное программирование (ооп)
- •4.1. Структурное программирование и ооп
- •4.2. Понятие программного объекта
- •4.3. Наследование, инкапсуляция и полиморфизм
- •4.4. Понятие класса объектов
- •4.5. Типы программных компонентов
- •Глава 5. Лабораторные работы и практические задания
- •2) По заданным значениям сторон а, в, с найти площадь треугольника по формуле Герона , где р – полупериметр треугольника. (Без проверки условия на существование треугольника.)
- •Лабораторная работа n2 Создание функций пользователя с разветвляющейся структурой алгоритма
- •Практическое задание
- •Лабораторная работа n3 Создание функций пользователя с циклической структурой алгоритма и накоплением суммы (произведения)
- •Практическое задание
- •Лабораторная работа n4 Создание функций пользователя с циклической структурой алгоритма и поиском максимума (минимума)
- •Практическое задание
- •Лабораторная работа n5 Автоматическая запись программы с помощью макрорекодера
- •Практическое задание.
- •Лабораторная работа n6 Создание оконных форм пользователя
- •Практическое задание.
- •Самостоятельное задание к лабораторной работе n6
- •Лабораторная работа n7 Вычисления по разным сценариям
- •Практическое задание.
- •Лабораторная работа n8 Сортировка элементов массива
- •Самостоятельное задание к лабораторной работе n8
- •Список индивидуальных заданий для самостоятельного выполнения
- •Список рекомендуемой литературы
1.2. Элементы яп
Элементы ЯП могут рассматриваться на разных уровнях, т.е. с точки зрения: 1) алфавита, 2) лексики, 3) синтаксиса и 4) семантики конструкций ЯП.
1. Алфавит – совокупность символов, используемых для записи конструкций данного языка.
2. Лексика – совокупность правил образования цепочек символов (лексем), из которых образуются идентификаторы (имена переменных и меток), операторы, операции и другие лексические компоненты языка. Сюда же включаются зарезервированные слова, предназначенные для обозначения операторов, встроенных функций и т.п.
3. Синтаксис – совокупность правил образования языковых конструкций (предложений) ЯП – блоков, процедур, составных операторов, условных операторов, операторов цикла и т.п. Особенностью синтаксиса некоторых ЯП является рекурсивность – принцип вложенности правил построения конструкций, т.е. элемент синтаксиса языка в своем определении прямо или косвенно в одной из своих частей может содержать сам себя. Например, при определении оператора цикла телом цикла может являться еще один оператор цикла.
4. Семантика – смысловое содержание конструкций языка. Семантическим анализом называют проверку смысловой правильности конструкций. Примером семантической ошибки в классических процедурных ЯП является случай, когда в программе делается попытка присвоить переменной значение не подходящего типа (несоответствующего тому типу, который был заявлен для этой переменной при ее описании).
1.3. Способы описания яп
Наиболее известными являются 2 способа описания ЯП:
1) нотация Бэкуса (впервые была применена для языка Алгол),
2) нотация IBM (впервые была применена для языка Кобол).
1. Нотация Бэкуса используется для описания такого известного классического ЯП как Паскаль. Согласно этой нотации описание конструкций языка состоит из левой и правой частей, между которыми ставится символ ::=, который можно трактовать как «по определению есть». В левой части определения записывается название определяемого понятия, взятое в угловые скобки < >. Правая часть включает совокупность элементов, соединенных вертикальной чертой |, которая трактуется как «или» и объединяет альтернативы – различные варианты значения определяемого элемента (понятия). Многие элементы носят рекурсивный характер, т.е. в правой части описания может содержаться левая часть как самостоятельный элемент.
Пример1. Определение оператора присваивания в языке Pascal :
<Оператор присваивания>::=<Переменная>:=<Выражение>
Пример2. Определение идентификатора переменной в языке Pascal:
<Идентификатор> ::= <Буква>|<Идентиф-р><Буква>|<Идентиф-р><Цифра>
Данное определение содержит рекурсию и означает, что идентификатор (имя) переменной состоит из букв и цифр, но первым символом в имени всегда должна быть буква.
2. Нотация IBM используется для описания таких известных ЯП как Бейсик и Си. Она включает в себя следующие конструкции:
< > – угловые скобки (или двойные кавычки “ “) обозначают элементы программы, определяемые пользователем (<идентификатор>, <список параметров>, <условие> и пр.),
[ ] – квадратные скобки, ограничивающие конструкцию, обозначают возможность ее отсутствия,
| – вертикальная черта разделяет список значений обязательных элементов, одно из которых должно быть выбрано,
… – многоточие, следующее после конструкции, обозначает последовательность конструкций той же самой формы, что и предшествующая многоточию конструкция.
Рекурсивные определения в нотации IBM не используются.
Пример (определение описания процедуры-подпрограммы):
[Private | Public | Friend][Static] Sub <идентификатор>([<список параметров>])[<оператор>]
…
[Exit Sub]
[<оператор>]
…
End Sub
