9. Организация ввода/вывода и работа с файлами. 76
Заключение. 76
Приложение. Некоторые полезные примеры и иллюстрации к разделам конспекта. 77
Примеры к разделу 5. 77
Вычисление факториала числа. 77
Быстрое возведение чисел в целую степень. 78
Нахождение наибольшего общего делителя (алгоритм Евклида) 79
Введение
Предмет дисциплины и ее задачи. Содержание и форма проведения занятий. Связь с другими дисциплинами учебного плана.
1. Этапы и проблемы решения задач с использованием компьютера
Решение задач на компьютере. Уровни вычислительных систем: архитектура компьютера, операционные системы, методы и технологии программирования, прикладные технологии, информационные системы. Виды программного обеспечения (ПО): программа, программный комплекс, программный продукт (изделие), программная система. Основные показатели качества ПО. Жизненный цикл ПО: основные этапы и процессы, их соотношение с содержанием и видами занятий учебной дисциплины.
2. Общие сведения о языке программирования C++ и системе программирования
Языки программирования и системы программирования. История создания языков C и C++. Краткая характеристика языка C++. Структура и основные элементы программы. Классификация действий и данных. Пример программы на языке C++. Система программирования. Трансляция программ и выполнение программы. Стандарты C и C++. Системы программирования C/C++ для различных вычислительных платформ и операционных сред.
2.1. История создания языка C++
Язык C++ создавался на основе языка C и является его расширенной и улучшенной версией, в которой реализованы принципы объектно-ориентированного программирования. С++ также включает ряд других усовершенствований языка C, например расширенный набор библиотечных функций. Поэтому историю его создания следует начать с его предка.
Язык C был разработан Дэнисом Ритчи как "надстройка" над ассемблером в начале 70-х годов прошлого столетия. Язык C был предназначен для поддержки технологии структурного программирования. В 1983 году был учрежден комитет по созданию ANSI-стандарта, для обеспечения единства в различных реализациях этого языка. Конечная версия этого стандарта стала доступной для желающих в начале 1990 годов. Эта версия языка C получила название С89, и именно она явилась фундаментом, на котором был построен язык C++. Язык C многие относят к языкам "среднего" уровня, который позволяет программисту достаточно просто делать практически все, что он хочет, но за последствия этих действий в большинстве случаев ответственность ложится именно на программиста, а не на язык программирования.
Усложнение программ в конце 70-х годов привело к появлению новых технологий программирования, одной из которых является объектно-ориентированное программирование. Язык C не поддерживал эту технологию, что, в конечном итоге, и привело к разработке языка C++.
Дату рождения языка C++ относят к 1979 году, когда Бьерн Страуструп создал язык "С c классам". Свое современное название (C++) он получил в 1983 году. Язык C++ полностью включает в себя все элементы языка C, то есть программы, написанные на языке C, практически без изменений могут быть откомпилированы в системах C++. Основные новшества языка C++ связаны с поддержкой технологий объектно-ориентированного программирования.
В 1994 году был предложен стандарт языка C++. Однако вскоре, в связи с созданием Александром Степановым стандартной библиотеки шаблонов (STL), стандарт был пересмотрен в сторону существенного расширения и усложнения. Этот стандарт появился в свет в 1998 году и основным стандартом языка C++ до настоящего времени и поддерживается всеми основными современными C++ - компиляторами.
C++ является родительским по отношению к таким языкам, как Java и C#. Эти языки очень похожи, хотя и предназначены для решения задач различных категорий. Языки Java и C# предназначены, в первую очередь, для решения задач ориентированных на сильно распределенные сетевые среды. Но благодаря своей способности поддерживать многоплатформные среды эти языки теряют в своей эффективности (например, в быстродействии) по сравнению с языком C++.
2.2. Краткая характеристика языка C++
Алфавит языка
Алфавит C++ включает:
· прописные и строчные латинские буквы и знак подчеркивания;
Границы лексем определяются другими лексемами, такими, как разделители или знаки операций.
Ключевые слова
Всего в C++ 63 ключевых слова:
asm
else
new
this
auto
enum
operator
throw
bool
explicit
private
true
break
export
protected
try
case
extern
public
typedef
catch
false
register
typeid
char
float
reinterpret_cast
typename
class
for
return
union
const
friend
short
unsigned
const_cast
goto
signed
using
continue
if
sizeof
virtual
default
inline
static
void
delete
int
static_cast
volatile
do
long
struct
wchar_t
double
mutable
switch
while
dynamic_cast
namespace
template
Ключевые слова предопределены в языке программирования и имеют вполне определенный смысл для компилятора. Использовать эти слова по какому-либо другому назначению нельзя.
Идентификаторы
Идентификаторы – это имена различных программных объектов (имена переменных, констант, функций и т.д.).
Синтаксически правильный идентификатор – это последовательность латинских букв, цифр и символов «_» - нижнее подчеркивание, начинающаяся с буквы или символа «_».
Важно помнить, что в C++ различается строчное и прописное написание букв. То есть, например, идентификаторы ABC, Abc и abc представляют в программе не один и тот же объект, а три разных объекта. Некоторые компиляторы позволяют отключить такую чувствительность к написанию букв, но делать этого не следует, так как это может помешать переносимости программ с одного компилятора на другой.
Максимальная длина идентификатора в стандарте языка не установлена, однако, в некоторых компиляторах это значение ограничено 32 символами или может регулироваться с помощью настроек компилятора.
Использование в собственных идентификаторах в качестве первого символа «_» нежелательно, так как так обычно именуются различные системные объекты, и в ряде случаев может помешать переносимости программ с одного компилятора на другой. Обычно этот символ используется для выделения отдельных частей идентификаторов с целью обеспечения более удобного их восприятия.
Пользовательские идентификаторы не должны совпадать с ключевыми словами языка. При таком совпадении компилятор выдает сообщение о синтаксической ошибке. Также нежелательно совпадение пользовательских идентификаторов с именами стандартных функций или переменных, так как при этом становится невозможным использование соответствующих стандартных функций и переменных. В этом случае ошибки при компиляции программы не возникает.
Имена программных объектов (идентификаторов) должны отражать назначение именуемых объектов. Простые (обезличенные) идентификаторы следует использовать для различных вспомогательных объектов, когда их область действия ограничена.
Знаки операций
Служат для указания действий над операндами. В зависимости от количества операндов в C++ имеются унарные, бинарные и одна тернарная операции. Знаки операций могут изображаться одним или несколькими символами. Если операция содержит в своем изображении несколько символов, то между символами не должно быть пробелов. Некоторые операции в C++ в зависимости от контекста могут выполнять разные действия. Большинство стандартных операций можно переопределять (перегружать).
Константы
Константы – это данные, значения которых не могут меняться в процессе работы программы. Подробно синтаксические правила записи различных констант будут рассмотрены при изучении соответствующих типов данных. Сейчас только одно замечание по поводу использования алфавита языка при формировании строковых (текстовых) констант: в них можно использовать не только символы алфавита языка C++, но и все другие символы, имеющиеся в используемой таблице символов (символы национальных алфавитов, символы псевдографики и т.д.).
Комментарии
Комментарии – это фрагменты текста, игнорирующиеся компилятором при обработке текста программы. Комментарии в текстах программ используются для различных пояснений к тексту программы, а также для исключения временно не нужных фрагментов текста программы (например, отладочных кодов или вариантов реализации).
В C++ имеются комментарии двух видов: однострочные и многострочные.
Однострочный комментарий начинается двумя символами // (прямой косой черты) и заканчивается в конце строки текста программы.
Многострочный комментарий – начинается символами /* и заканчивается */ и может содержать множество строк. Многострочные комментарии не могут вкладываться друг в друга. Однострочные комментарии могут находиться внутри многострочных комментариев.
2.3. Структура и основные элементы программы
Любая C++ программа представляет собой одну или несколько функций. Вот пример простой программы с одной функцией, обеспечивающей вывод некоторого текста в консольное окно:
#include <iostream>
using namespace std;
int main()
{
cout << "Это пример программы на языке C++" << endl;
return 0;
}
Это исходный код программы (исходный код – это текст, написанный на одном из языков высокого уровня – в данном случае – на языке C++). Его нельзя выполнить. Для выполнения программы с помощью компилятора надо получить результирующую программу (объектный код).
Таким образом, необходимо выполнить следующие действия:
Написать текст программы (создать исходный код);
Откомпилировать этот текст (получить объектный код результирующей программы);