
- •Этапы разработки программы и устранение ошибок
- •Показать на примере (на своей машине) процесс подготовки к написанию программы, первая Hello!
- •Объяснить программу, все детали.
- •Вывод данных с помощью cout, использование Escape-последовательностей
- •Типы данных (числовые, символьные, логические)
- •Переменные и константы (объявление и использование), правила составления имен
- •Литералы
- •Ввод данных с помощью cin
- •Виды операторов
- •Арифметические операции с числами. Инкремент. Декремент. Сокращенные арифметические формы
- •Преобразование типов
- •Логические операции (сравнения, равенства, объединения, отрицательная инверсия)
- •Операторы ветвления. Конструкция логического выбора if, тернарный оператор ?
- •Структура множественного выбора switch
Урок 1.
План занятий.
Характеристика С++ (процедурность), структура программы.
Компилятор Microsoft Visual C++ 2012 (структура, работа, описание закладок)
Этапы разработки программы и устранение ошибок
Показать на примере (на своей машине) процесс подготовки к написанию программы, первая Hello!
Объяснить программу, все детали.
Вывод данных с помощью cout, использование Escape-последовательностей
Типы данных (числовые, символьные, логические)
Переменные и константы (объявление и использование), правила составления имен.
Литералы
Ввод данных с помощью cin.
Характеристика С++ (процедурность), структура программы.
С++ - полностью объектно-ориентированный язык, представленный расширениями в форме классов, которые добавляются к С. С лежит в основе С++ и предлагает для него базовые типы, операции, управляющие структуры, синтаксические правила. Без знания С невозможно сразу приступить к изучению С++! Создатель С – Деннис Ритчи.
С++ изучать нужно поскольку большинство новых языков происходят от него. (Java, C♯ - используют синтаксис С++, но изучать их с самого начала сложнее). Важная причина изучения языка С++ - переносимость его кода. Другие характеристики С++: эффективность, компактность, быстродействие. Создатель С++ - Бьярне Страуструп. Страуструпу удалось реализовать в языке С принципы ООП и поддержку обобщенного программирования без существенного изменения языка. Поэтому язык программирования C++ в первом приближении можно рассматривать как расширенный набор С; в пользу этого свидетельствует тот факт, что любая допустимая программа на языке С — это также допустимая программа на C++. Программы, написанные на C++, могут пользоваться существующими библиотеками программного обеспечения для С. Библиотека представляет собой коллекцию программных модулей, которые могут быть вызваны из программы. Распространение языка C++ стало возможным во многом благодаря библиотекам. Название языка C++ происходит от операции инкремента (++) в языке С, которая увеличивает на единицу значение переменной. Таким образом, имя C++ в точности отражает расширенную версию языка С.
Компьютерные языки имеют дело с двумя концепциями: данные и алгоритмы. Данные – это информация, которую использует и обрабатывает программа. Алгоритмы – методы, используемые программой. Процедурность языка С означает обработку данных с помощью алгоритмов. Суть процедурного программирования заключается в том, чтобы запланировать действия, которые должен предпринять компьютер, и с помощью языка программирования их реализовать. В программе предварительно описывается некоторое количество процедур, которые должен будет выполнить компьютер, чтобы получить определенный результат.
Пример: кулинарный рецепт
Данные + алгоритм = программа
Данные: Алгоритмы:
Масло взбить масло
Сахар + постепенно добавить сахар = программа
Яйца разбить яйца
…. …
Ранние процедурные языки – Fortran, Basic. С увеличением размера программы возникают организационные проблемы. В большинстве старых программ было много запутанных переходов, что осложняло ее понимание при прочтении, а также сложность модифицирования. Выход – разработка нового дисциплинированного стиля программирования – структурного программирования (ограничивает ветвление небольшим набором удобных и гибких конструкций, например циклы for, while, do while, операторы if, else ) – что реализовано в С. Другое новшество в С – нисходящее проектирование: разделение большой программы на небольшие, так называемые программные модули, называемые функциями, которые отвечают за выполнение конкретной задачи. Процедурное программирование: программа представляется в виде действий, которые она должна выполнить.
Компилятор Microsoft Visual C++ 2012 (структура, работа, описание закладок)
!: Код программы на С++ можно переносить на другие машины независимо от установленной операционной системы (Windows, UNIX, Linux).
Компилятор (compiler) – это ПО, читает код в формате, понятном человеку, и преобразует в машинный код, создавая объектный файл, который будет впоследствии скомпонован и запущен.
Компоновщик (linker) – программа, которая компонует созданные компилятором файлы объектного кода в исполняемый файл.
Для windows существует компилятор C++ от Borland (или Borland C++BuilderX), самый популярный Microsoft Visual C++ 2010/2012, который доступен также в виде бесплатной версии Microsoft Visual C++ 2010/2012 Express.
Файлы, создаваемые с помощью текстовых редакторов, называются исходными. Они имеют расширение .срр, .ср или .с По умолчанию для компилятора Borland приянто расширение .срр
Рекомендуется:
Использовать встроенный в компилятор текстовый редактор;
Сохранять исходные файлы с расширением .срр
Файл исходного кода не является исполняемым и не может быть запущен как программа!!! Компилятор «превращает» исходный текст в программу! В интегрированной среде разработки можно нажать Ctrl+F5 и запустится компиляция приложения. После завершения компиляции исходного кода создается объектный файл с расширением .obj или .o Но и он не является исполняемой программой. Для его превращения в исполняемый файл запускается программа компоновки. Программа компонует объектные файлы с библиотеками. В результате получается исполняемый файл с расширением .exe
Библиотека – набор компонуемых файлов, поставляемых компилятором или созданных программистом. Все компиляторы С++ укомплектованы библиотекой функций и классов, которые можно включить в программу.
Функция – это блок кода, который выполняет отдельную задачу, например сложение двух чисел или вывод данных на экран.
Класс – это определение нового типа. Класс реализуется как набор данных и связанных с ними функций.
Программы содержат ошибки. Одни обнаруживает компилятор, другие – компоновщик, третьи проявятся только при запуске программы.
Синтаксические ошибки обнаруживаются на стадии компиляции. Компоновщик сообщает о таких ошибках, как отсутствие необходимых библиотек или неправильные имена функций. Ошибки при выполнении программы – логические!
Этапы разработки программы и устранение ошибок
Любая ошибка должна быть исправлена в следующей последовательности:
Редактирование исходного текста программы (исходный код программы);
Компиляция (объектный код программы);
Компоновка (комбинация объектного кода с библиотеками, дополнительными кодами для используемых функций);
Запуск программы (исполняемый код программы).
Предоставить компилятор Microsoft Visual C++ 2012. Установка, запуск, как с ней работать, закладки и т.д.
- Compile обычно означает компиляцию кода в открытом в настоящий момент файле.
- Build или Make обычно означает компиляцию кода для всех файлов исходного кода, входящих в состав данного проекта. Часто этот процесс является инкрементным. То есть, если в проекте было три файла, и вы изменили только один из них, то повторно скомпилирован будет только этот файл.
- Build All обычно означает компиляцию всех файлов исходного кода с самого начала.
- Как уже было сказано ранее, Link означает объединение скомпилированного исходного кода с необходимым библиотечным кодом.
- Run или Execute означает запуск программы. Обычно если вы еще не завершили выполнение предыдущих этапов, команда Run выполнит их перед запуском программы.
- Debug означает запуск программы с возможностью ее пошагового выполнения.
Совет
Исправление ошибок начинайте с самой первой. Если вы не можете ее найти в указанной
строке, проверьте предыдущую строку кода.
Показать на примере (на своей машине) процесс подготовки к написанию программы, первая Hello!
Главная идея – освоить общую структуру и формат программы, а потом переходить к подробному изучению деталей.
Запустить Microsoft Visual C++ 2012, пошагово рассказать где и как писать программу, какие закладки использовать. Первый пример работающей программы hello.cpp:
#include <iostream> //директива препроцессора
using namespace std; //делает видимыми определения
void main() //заголовок функции
{ //начало тела функции
setlocale (LC_CTYPE, "Russian"); //можно использовать русский текст в консольном окне cout << "Всем привет!"; //сообщение
cout << endl; //начало новой строки
cout << "Свое Имя"; //продолжение сообщения
cout << endl; //начало новой строки
cin.get (); //оператор читает следующее нажатие клавиши, поэтому программа будет //находиться в режиме ожидания до тех пор, пока вы не нажмете клавишу <Enter>
}
Объяснить программу, все детали.
Обычно IDE-среда позволяет запускать программу во вспомогательном окне. В некоторых IDE-средах это окно закрывается после завершения выполнения программы, а в некоторых оно остается открытым. Если ваш компилятор закрывает окно, вы не успеете увидеть вывод программы, если только не умеете очень быстро читать и не обладаете фотографической памятью. Чтобы увидеть результат выполнения, в конце программы необходимо ввести следующий код:
cin.getO; // добавьте этот оператор
cin.getO; //и, возможно, этот тоже
return 0;
}
Оператор cin.get () читает следующее нажатие клавиши, поэтому программа будет находиться в режиме ожидания до тех пор, пока вы не нажмете клавишу <Enter>. (Вплоть до нажатия <Enter> никакие нажатия клавиш программе не отправляются, поэтому нажимать другие клавиши не имеет смысла.) Второй оператор необходим на случай, если программа оставит необработанным нажатие клавиши после предыдущего ввода информации в программе.
Пример hello.cpp содержит следующие элементы:
• комментарии, обозначаемые с помощью //;
• директива препроцессора #include;
• заголовок функции: void main ();
• директива using namespace;
• тело функции, ограниченное фигурными скобками { и };
• операторы, которые используют объект C++ cout для отображения сообщения;
• оператор возврата для прекращения выполнения функции main (), если указывается тип возвращаемого значения (если void – то оператор возврата не указывается!!! – будет ошибка)
Например:
int main ()
{
операторы
return 0;
}
Функция main позволяет работать с консольным окном.
Вместе все эти строки образуют определение функции. Это определение состоит из двух частей: первой строки, int main (), которая называется заголовком функции, и частью, заключенной в скобки ({ и }), которая называется телом функции. В заголовке функции вкратце описан ее интерфейс с остальной частью программы, а в теле функции содержатся компьютерные инструкции о том, что функция должна делать.
В языке C/C++ каждая полная инструкция называется оператором. Каждый оператор должен завершаться точкой с запятой, поэтому не забывайте ставить ее при наборе примеров.
Возвращаемое значение Имя функции
int main () - Заголовок функции, параметры функции записываются в круглых скобках
{
Выражения,
завершаемые точкой с запятой
Определение
Ф
ункции операторы
Тело функции
return 0;
}
Завершение функции. Это оператор возврата.
Его назначение –завершить выполнение функции.
; используется как признак завершения, а не как разделительный знак! Ее никогда нельзя опускать!
Структура функции: Та часть, которая предшествует имени функции, называется возвращаемым типом функции', в ней описывается информационный поток, поступающий из функции обратно к функции, которая ее вызвала. В данном случае функция main() может возвращать целочисленное значение, на что указывает ключевое слово int. Та часть, которая заключена в скобки после имени функции, называется списком аргументов или списком параметров; в ней описывается информационный поток, который поступает из вызывающей функции к вызываемой функции. В нашем
случае пустые скобки означают, что main() не принимает никакой информации, или, если обратиться к общепринятой терминологии, функция main () не принимает аргументов.
Короче говоря, заголовок
int main ()
говорит о том, что функция main () возвращает целочисленное значение в вызывающую ее функцию, и что функция main () не принимает никакой информации от вызывающей ее функции.
Некоторые программисты используют следующий заголовок и опускают оператор возврата:
void main()
Выполнение программы на C++ всегда начинается с функции main (). Таким образом, если в программе функция main () отсутствует, то такая программа рассматривается как неполная и компилятор выдаст сообщение об отсутствии определения функции main ()
Комментарий обозначается двумя косыми чертами (//). Комментарий — это примечание, написанное программистом для пользователя программы, которое обычно идентифицирует ее раздел или содержит пояснения к определенному коду. Компилятор игнорирует комментарии. Комментарий в C++ начинается с символов // и простирается до конца строки. Комментарии в стиле С, заключаются между символами /* и */:
#include <iostream> /* комментарий в стиле С */
Если программа предназначена для использования обычных средств ввода и вывода в C++, вы предоставляете следующие две строки:
#include <iostream>
using namespace std;
В языке C++, как и в С, используется препроцессор. Препроцессор — это программа, которая выполняет обработку файла исходного кода перед началом собственно компиляции. Для вызова препроцессора ничего особенного делать не нужно. Он запускается автоматически во время компиляции программы.
#include <iostream>. // директива препроцессора
#include – директива препроцессора, которая предназначена для подключения библиотечных файлов
< > – означает подключение стандартной библиотеки
“ “ – означает подключение нашей библиотеки
Эта директива заставляет препроцессор добавить содержимое файла iostream в вашу программу. Добавление или замена текста в исходном коде перед его компиляцией является одним из обычных действий препроцессора.
Часть іо в iostream означает input (ввод) — входные данные программы, и output (вывод) — информация, передаваемая из программы. Схема ввода-вывода в C++ включает несколько определений, которые можно найти в файле iostream. В первой программе эти определения необходимы для использования объекта cout при выводе сообщения на экран. Результирующий файл, сформированный из вашего файла и iostream, передается на следующий этап компиляции.
iostream – стандартная библиотека, содержит команды ввода-вывода с консоли
На заметку!
Программы, в которых для ввода и вывода используются объекты сіп и cout, должны включать файл iostream
Имена заголовочных файлов.
Файлы, подобные iostream, называются включаемыми файлами (поскольку они включаются в другие файлы) или заголовочными файлами (т.к. они включаются в самом начале файла).
.h по умолчанию в современных библиотеках прописана, поэтому .h не пишется в новых библиотеках.
Необходимо использовать следующую директиву пространства имен, чтобы определения в iostream были доступны в программе:
using namespace std;
Это называется директивой using.
std – название подключаемого пространства имен.
Директиву using можно опустить и записать код следующим образом:
std: :cout << " Всем привет!";
std::cout << "Свое Имя";
std::endl;
using namespace std; - Приведенная директива using делает доступными все имена в пространстве имен std. Это ленивый подход когда доступны все имена.