Введение
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ
Структурное программирование на С/С++
Методические указания
к выполнению лабораторных работ
Санкт-Петербург
Составитель: Л.А. Прокушев
Рецензент: канд. техн. наук В.П. Попов
Даются методические указания к выполнению лабораторных работ, которые предназначены для выработки навыков алгоритмизации и структурного программирования на языках С/С++.
Рассмотрены основные понятия программирования: построения программы; описания типов и ввода-вывода данных; операций и операторов, реализующих последовательные, ветвящиеся и циклические алгоритмы; принципа модульного программирования по организации ветвящихся и циклических алгоритмов. Показаны способы решения типовых задач с целью выработки у студентов практических навыков по составлению и отладке программ при выполнении лабораторных работ.
Методические указания предназначены для студентов всех специальностей, изучающих дисциплины «Программирование на языке высокого уровня», «Алгоритмические языки и программирование», «Информатика».
Подготовлены к публикации кафедрой открытых информационных систем и информатики по решению редакционно-издательского совета Санкт-Петербургского государственного университета аэрокосмического приборостроения.
ã Санкт-Петербургский государственный университет
аэрокосмического приборостроения, 2009
Подписано к печати Формат 60х84 1/16. Бумага тип. №3
Печать офсетная. Усл. печ. л. Уч.-изд. л.
Тираж экз. Заказ №
Редакционно-издательский отдел
Отдел оперативной полиграфии СПбГУАП
190000, Санкт-Петербург, ул. Б. Морская, 67
Введение
Языки программирования высокого уровня (ЯВУ) предназначены для записи алгоритмов решения задач в виде программы для ЭВМ. ЯВУ – формализованный язык для описания данных и набор правил (инструкций, операторов) их обработки для реализации алгоритма задачи. Программа, получив исходные данные, должна за конечное число операций по обработке информации выдать определенный результат. Для того чтобы изучить язык, необходимо разобраться в том, как этот язык реализует семь основных понятий программирования:
1. Представление данных разных типов и выделение для них места в оперативной памяти.
2. Ввод данных, то есть чтение информации, например, с клавиатуры или внешних носителей данных.
3. Вывод результатов (промежуточных и выходных) для пользователя либо запись на внешний носитель данных.
4. Последовательное выполнение операций и команд по обработке данных (для реализации линейных процессов).
5. Выполнение операций и команд по заданному условию для разветвления вычислений (для реализации ветвящихся процессов).
6. Повторное выполнение команд по заданному условию (для реализации циклических процессов).
7. Выделение группы команд в поименованный программный модуль (подпрограмму) и обращение к нему из программы и других подпрограмм (для реализации модульного принципа программирования).
Языки высокого уровня (ЯВУ), поддерживающие модульность, блочную структуру программ, возможность раздельной компиляции модулей, называют языками структурного программирования. Этими базовыми элементами программирования не исчерпываются возможности развитых алгоритмических языков, но их изучение помогает быстро освоить новый язык и писать на нем программы.
Язык С (читается СИ) был создан Денисом Ритчи в начале 1970-х в США как язык программирования системных и прикладных программ для профессиональных программистов. В нем реализован компромисс между машинно-ориентированным языком ассемблера (прямой доступ к ячейкам памяти и манипулирование битами) и процедурно-ориентированным языком, который включает все управляющие конструкции структурного программирования. Такие свойства языка С, как лаконичность, мощность, гибкость, предоставляют программисту возможность создавать большие структурированные программы любой сложности и назначения. Однако в отличие от Паскаля, язык С не является строго типизированным, что не гарантирует надежности программ. Ответственность за надежность программного продукта ложится на программиста, что предъявляет высокие требования к его квалификации. Поэтому программист должен хорошо знать особенности языка, чтобы со знанием дела его использовать.
В начале 1980-х годов Бьерн Страуструп (США) разработал новый язык С++, который, как видно из его названия, является наследником языка С. С++ является надмножеством над С и использует все его возможности. Новизна С++ состоит в том, что он впитал в себя идеи объектно-ориентированного программирования (ООП) таких языков, как Симула 67. В типичных языках структурного программирования таких, как С или Паскаль, данные и обрабатывающие их функции разделены. В языках ООП появились понятия объекта и класса объектов. Класс представляет собой новый обобщенный тип объектов, который содержит единую совокупность данных и функций (методов) их обработки для схожих объектов. Вместе с другими идеями ООП представляет собой технологию программирования, позволяющую формировать более адекватные модели объектов реального мира. С++ расширяет существующие конструкции языка С. Программы на С могут компилироваться в среде С++, но не наоборот. Появляются новые средства для ввода-вывода данных и известных в С операций, а также совсем новые конструкции и правила организации программ для реализации концепций ООП. Нередко алгоритмы методов, описывающих поведение объектов настолько сложны, что требуют использования всех возможностей структурного программирования. Разработка программного обеспечения ЭВМ в настоящее время осуществляется с использованием двух основных технологий – структурного (процедурного) программирования и объектно-ориентированного программирования. Таким образом, опытным программистам необходимо знать обе технологии программирования и уметь ими пользоваться.