- •Информатика
- •Тверь-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
- •Список индивидуальных заданий для самостоятельного выполнения
- •Список рекомендуемой литературы
Глава 5 содержит перечень лабораторных работ (8) по этим темам, а также список индивидуальных заданий для самостоятельного выполнения студентами по желанию или рекомендации преподавателя.
В конце учебного пособия приводится список рекомендуемой литературы, которую студенты могут использовать для более углубленного изучения данных тем.
Глава 1. Языки программирования (яп)
1.1. Эволюция яп (поколения яп)
Первые ЯП появились как средство общения человека с ЭВМ практически одновременно с первыми компьютерами. В процессе развития вычислительной техники и ЭВМ изменялись также и ЯП. От поколения к поколению они улучшали свои характеристики, становились все более доступными в освоении и удобными в использовании. В настоящее время принято выделять 5 поколений ЯП.
ЯП I-го поколения появились одновременно с первыми ЭВМ (40-50 гг. ХХ в.). В то время любой ЯП представлял собой набор машинных команд в двоичном или восьмеричном коде, который определялся архитектурой конкретной ЭВМ. Каждый тип ЭВМ имел свой ЯП, программы на котором были пригодны только для данного типа ЭВМ. Такие ЯП являлись машинно-зависимыми, поэтому от программиста требовалось хорошее знание не только машинного языка, но и архитектуры ЭВМ. Программированием могли заниматься только специально обученные программисты, а сам процесс программирования был трудоемким и сложным.
ЯП II-го поколения характеризуются появлением ассемблеров – ЯП, позволяющих вместо двоичных или других форматов машинных команд использовать их мнемонические символьные обозначения, т.е. имена. Это явилось существенным шагом вперед. Но ассемблерные языки все еще оставались машинно-зависимыми, а ассемблерные программы были все также затруднительны для чтения, трудоемки в отладке и требовали больших усилий для переноса на другие типы ЭВМ. Однако ассемблеры до сих пор иногда используются при необходимости разработки высокоэффективного программного обеспечения, минимального по объему и с максимальной производительностью.
ЯП III-го поколения – началом их появления можно считать появление в 1956 г. алгоритмического языка высокого уровня под названием Fortran (Фортран). За короткое время он становится основным языком программирования при решении инженерно-технических и научных задач. Первоначально Этот ЯП использовался на больших ЭВМ, гораздо позднее появились его версии и для ПЭВМ.
Вскоре после Фортрана были разработаны и другие ЯП высокого уровня: Algol (Алгол), Cobol (Кобол), Basic (Бейсик), PL/1 («Пи эль один»), Pascal (Паскаль), ADA (Ада), С (Си) и др. Особо следует отметить язык Lisp (Лисп), который был разработан специально для обработки символьной информации и первых исследований по искусственному интеллекту (ИИ).
ЯП III-го поколения являлись уже машинно-независимыми (в отличие от ЯП I-го и II-го поколений) и обладали развитым синтаксисом, в котором для обозначения конструкций использовались слова человеческого языка (английского).
ЯП IV-го поколения имеют ярко выраженный непроцедурный характер в отличие от ЯП III-го поколения, являющихся процедурными. Программа на любом процедурном языке состоит из последовательности инструкций, которые должна выполнить ЭВМ. В программах же на языках непроцедурного типа формируются скорее соотношения, а не последовательности шагов выполнения алгоритма. Таким образом, программы на таких языках описывают только что, а не как надо сделать. Среди непроцедурных языков можно выделить четыре тенденции развития: 1) объектно-ориентированные языки, 2) языки логического программирования, 3) языки обработки запросов, 4) языки параллельного программирования.
Важной тенденцией развития ЯП IV–го поколения являются языки объектно-ориентированного программирования (ООП), которое базируется на понятии программного объекта. Впервые это понятие стало использоваться в языке Simula-67. Программный объект представляет собой совокупность структур данных и алгоритмов. При этом каждый объект «знает» как выполнять операции со своими собственными данными. Наиболее известными языками ООП являются Object Pascal (система программирования Delphi) и С++ (Java). Язык Visual Basic также обладает элементами ООП.
Помимо языков ООП к непроцедурным языкам можно также отнести языки логического программирования, ярким представителем которых является язык Prolog (Пролог). Этот язык был разработан на базе языка Lisp.
Третьим направлением развития ЯП IV поколения являются языки обработки запросов для баз данных. Эти языки имеют свой особый синтаксис, но в отличие от языков III поколения, проще в использовании. Стандартом таких языков можно считать язык SQL (Structured Query Language).
Языки параллельного программирования (модификация языка Fortran, языки Occam, SISAL, FP и др.), ориентированы на создание программного обеспечения для вычислительных средств параллельной архитектуры (многомашинные, мультипроцессорные среды и др.). В то время как все ЯП III-го поколения были ориентированы только на однопроцессорную архитектуру ЭВМ.
ЯП V-го поколения – традиционно к этому поколению принято относить языки ИИ, ориентированные на создание экспертных систем и баз знаний (InterLisp, EpertLisp, IQLisp, SAIL, Visual Prolog и др.), а также естественные языки с ограниченными возможностями (Clout, Q&A, HAL и др.).
