
- •«Технология программирования» методические указания
- •Самара 2007
- •Содержание
- •Введение
- •1.2.1 Состав языка
- •1.2.2 Алфавит языка
- •1.2.3 Идентификаторы
- •1.2.4 Ключевые (служебные) слова
- •1.2.5 Знаки операций
- •1.2.6 Константы
- •1.2.7 Комментарии
- •1.3.1 Концепция типа данных
- •1.3.2 Основные типы данных
- •1.3.3 Структура программы
- •1.4 Переменные и выражения
- •1.4.1 Переменные
- •1.4.2 Операции
- •1.4.3 Выражения
- •2. Программа выполнения работы
- •2.1 Задача 1.1. Расчет по формуле
- •2.3 Отладка программы
- •2.4 Описание переменных
- •2.5 Задача 1.2. Временной интервал
- •3. Содержание отчета
- •4. Контрольные вопросы
- •5. Задания
- •Библиографический список
- •Приложение 1. Спецификации формата для функций семейства printf
- •Модификаторы формата
- •Приложение 2. Арифметические преобразования типов
- •Приложение 3. Правила оформления текстов программ
Введение
Программирование все в большей степени становится занятием лишь для профессионалов. В понятие «компьютерная грамотность» сегодня входит, прежде всего, навык использования многообразных средств информационных технологий. Решая ту или иную информационную задачу, необходимо выбрать адекватное программное средство. Это могут быть электронные таблицы, системы управления базами данных, математические пакеты и т.п. И только в том случае, когда подобные средства не дают возможности решить задачу, следует прибегать к универсальным языкам программирования.
Требования к качеству, как прикладных программ, так и системных сегодня очень высоки. Программа должна не только правильно решать задачу, но и иметь современный интерфейс, быть высоконадежной, дружественной по отношению к пользователю и т.д. Только такие программы могут выдерживать конкуренцию на мировом рынке программных продуктов. Программирование на любительском уровне сегодня никому не нужно.
По мере развития компьютерной техники развивались также и методика, и технология программирования. Сначала возникает командное и операторное программирование, в 1960-х гг. бурно развивается структурное программирование, появляются линии логического и функционального программирования, а в последнее время – объектно-ориентированное и визуальное программирование.
Задача, которую следует ставить при первоначальном изучении программирования, – освоение основ структурной методики программирования. Для указанной цели выбран язык программирования С/С++.
В цикле лабораторных работ по дисциплине «Технология программирования» рассматриваются возможности C++, используемые в рамках структурной парадигмы написания программ. Это стандартные типы данных, основные конструкции языка, массивы, строки и структуры, функции, шаблоны функций и динамические структуры данных.
В методических указаниях на примерах рассматриваются различные алгоритмы, методы и приемы написания программ, структуры данных, типичные ошибки, которые совершают начинающие (и не только) программисты, обсуждаются вопросы качества и стиля. Большое внимание уделяется процессу отладки и тестирования.
Лабораторные работы рассчитаны на первоначальное освоение языка C++, но могут быть использованы и для совершенствования, при этом основное внимание нужно уделить более сложным примерам. Тем не менее, при разборе текстов Программ поясняются все использованные в них возможности языка, поэтому методические указания можно рассматривать и как пособие для самостоятельной работы студентов.
Методические указания предназначены для изучения языка C++, но могут быть использованы и для освоения С, поскольку по каждой теме, там, где это имеет смысл, приводятся два варианта написания программы – в стиле C++ и в стиле С.
Лабораторная работа №1
ЛИНЕЙНЫЕ ПРОГРАММЫ. ОРГАНИЗАЦИЯ ВВОДА/ВЫВОДА
Цель работы: Изучить состав и основные конструкции языка и практически освоить написание программ при использовании линейных вычислительных алгоритмов. Освоить обмен данными между программой и внешними устройствами, который осуществляется с помощью операций ввода/вывода.
1. СВЕДЕНИЯ ИЗ ТЕОРИИ
1.1 СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ
Написание хороших программ требует ума, вкуса и терпения.
Б. Страуструп
Традиционная технология программирования складывалась в условиях, когда основными потребителями программ были научные учреждения, вычислительные ресурсы были ограничены, а проблемы сопровождения по существу неизвестны. Основными критериями качества программы считались ее узко понимаемая эффективность и компактность. Со временем сложность программ возросла настолько, что на их разработку уходили годы труда большого коллектива, а в результате системы появлялись с опозданием и содержали тысячи ошибок.
Кризис программного обеспечения привел к необходимости создания нового способа создания программ, который снижал бы общие затраты на протяжении всего цикла программы, – от замысла до завершения эксплуатации. Такая технология появилась в начале 70-х годов и была названа структурным программированием. В его основе лежит сочетание теории программирования и личного опыта высококвалифицированных программистов, а также учет современных требований к программам и промышленного характера их производства.
Главное требование, которому должна удовлетворять программа, – работать в полном соответствии со спецификацией и адекватно реагировать на любые действия пользователя. Кроме этого, программа должна быть выпущена точно к заявленному сроку и допускать оперативное внесение необходимых изменений и дополнений. Объем занимаемой памяти и эффективность алгоритмов при этом, к сожалению, отходят на второй план. Иными словами, современные критерии качества программы – это, прежде всего, надежность, а также возможность точно планировать производство программы и ее сопровождение. Для достижения этих целей программа должна иметь простую структуру, быть хорошо читаемой и легко модифицируемой.
Структурное программирование – это технология создания программ, позволяющая путем соблюдения определенных правил уменьшить время разработки и количество ошибок, а также облегчить возможность модификации программы. Структурный подход охватывает все стадии разработки проекта: спецификацию, проектирование, собственно программирование и тестирование.
Особенно важно придерживаться определенной дисциплины при программировании на C++. Этот язык обладает настолько большой гибкостью и широкими возможностями, что, если не поставить себя в жесткие рамки с самого начала, программа быстро превратится в огромного неуправляемого монстра, не поддающегося отладке.
Структурный подход к программированию позволил успешно создавать достаточно крупные проекты, но сложность программного обеспечения продолжала возрастать, и требовались все более развитые средства ее преодоления. Идеи структурного программирования получили свое дальнейшее развитие в объектно-ориентированном программировании (ООП) – технологии, позволяющей достичь простоты структуры и управляемости очень крупных программных систем.
Не существует единственного самого лучшего способа создания программ. Для решения задач разного рода и уровня сложности требуется применять разные технологии программирования. В простейших случаях достаточно освоить азы структурного написания программ. Для создания же сложных проектов требуется не только свободно владеть языком в полном объеме, но и иметь представление о принципах проектирования и отладки программ, возможностях стандартной и других библиотек и т. д. Как правило, чем сложнее задача, тем больше времени требуется на освоение инструментов, необходимых для ее решения.
Мы начнем с изучения состава и основных конструкций языка – предмета для написания программ необходимого, но далеко не достаточного.
1.2 БАЗОВЫЕ СРЕДСТВА ЯЗЫКА C++