Слайд 2
План занятия
1. Теоретические аспекты программирования на языке С++
2.
Синтаксис и программные конструкции Visual C++.
3. Типы данных
С++
4. Структура программы
Слайд 3
Цели и задачи изучения темы:
В результате изучения темы
студент должен
иметь представление:
о создании программ на языке Visual C++;
знать:
цели
и задачи прикладного программирования;
этапы создания программ;
- Структура программы на языке Visual C++
уметь:
использовать инструменты прикладного программирования;
- создавать программы на языке Visual C++.
Слайд 4
Основные положения
Язык программирования – это формальная знаковая система,
которая предназначена для написания программ, понятной для исполнителя (в
нашем рассмотрении – это компьютер).
Программа, написанная на языке программирования, состоит из команд (операторов), задающих последовательность действий. Эти действия выполняются над некоторыми объектами. Объектами могут быть числа, текстовые строки, переменные и другие.
Слайд 5
Этапы создания программы
Текстовый редактор
Исходный текст
модуля (.сpp)
Препроцессор
Включ. файлы
(.h)
Полный текст
модуля (.сpp)
Компилятор
Объектный
модуль (.obj)
Библиотеки (.lib)
Объектный
модуль (.obj)
…
Компоновщик
(редактор связей)
Программа
(.exe)
Слайд 6
Синтаксис и Семантика
Синтаксис — это правила построения
фраз, позволяющие определить, правильно или неправильно написана та или
иная фраза. Точнее говоря, синтаксис языка представляет собой набор правил, устанавливающих, какие комбинации символов являются осмысленными предложениями на этом языке.
Семантика определяет смысловое значение предложений языка. Являясь системой правил истолкования отдельных языковых конструкций, семантика устанавливает, какие последовательности действий описываются теми или иными фразами языка и, в конечном итоге, какой алгоритм определен данным текстом на алгоритмическом языке.
Слайд 7
Алфавит языка С++
Алфавит — это фиксированный для данного
языка набор основных символов, т.е. "букв алфавита", из которых
должен состоять любой текст на этом языке — никакие другие символы в тексте не допускаются.
Прописные и строчные латинские буквы (различаются в именах), знак подчеркивания
Цифры (0…9)
Специальные знаки “ { } , | [ ] ( ) + - * / % \ ; ‘ : ? < = > ! & ~ ^ . #
Разделители (пробел, табуляция, перевод строки)
Слайд 8
Лексемы С++
Имена ( не рекомендуется начинать с _)
Ключевые
слова
Знаки операций (одно и двухсимвольные)
Константы
Разделители
Комментарии
однострочные // комментарий
многострочные /* длинные
*/
Слайд 9
Типы данных С++
Типы
Простые (скалярные)
Логический (С++)
Целые
Указатели
Вещественные
Составные
массивы
структуры
классы
объединения
Слайд 11
Специальные типы
bool – логический (true/false) – в С++
В
С целое значение =0 – ложь,
не равно 0
- истина
void – пустой. Используется для обозначения функций без значений и нетипизированных указателей
Слайд 13
Константы
Целые:
десятичные 123, 0, 98
восьмеричные 01, 015
шестнадцатиричные 0xA1, 0X00FF
Вещественные
5.8, .2e-3
Символьные ‘A’, ‘xy’, ‘\n’, ‘\123’, ‘\\’
Строковые “привет”, “1
\n 2”
Слайд 14
Структура программы
Функция имеет вид
()
{
}
Выполнение начинается с функции main
Слайд 15
Пример программы
#include
int main()
{ int a, b; //описание
переменных
cin >> a >> b; //ввод
cout
a+b; //вывод
return 0; //возврат
}
Слайд 16
Каждая подпрограмма имеет структуру, подобную функции main();
Каждая программа
содержит одну или несколько функций;
Каждая функция содержит 4 основных
элемента:
1. тип возвращаемого значения; Int
2. имя функции; main()
3. список параметров, {return 0;} -
заключённый в круглые скобки
4. тело функции
- эта строка значит "вернуть операционной системе в качестве сигнала об успешном завершении программы значение 0".
Слайд 17
#include ; //директива процессора, предназначена
для включения в исходный текст содержимое заголовочного файла, имя
которого< iostream>, содержащий описания функций стандартной библиотеки ввода/вывода для работы с клавиатурой и экраном.
using namespace std; //директива означ.что все определённые ниже имена будут отн-ся к пространству имён std
Int main() //имя функции,кот.не содержит параметров и должна возвращать значение типа Int
{Int a,b; //объявление двух переменных типа Int - целый тип
cout <<”введите два целых числа”<
<< - операция помещения данных в выходной поток;
endl - манипулятор, переводит сообщение на новую сточку.
cin >>a >>b; //оператор ввода данных с клавиатуры,
>> - операция для извлечения данных из выходного потока, читает значения из cin и сохр. их в переменных.
cout >>”их сумма равна”< return 0;} //оператор вывода
Слайд 18
Препроцессор
Препроцессор — это специальная программа, являющаяся частью компилятора
языка Си. Она предназначена для предварительной обработки текста программы.
Препроцессор позволяет включать в текст программы файлы и вводить макроопределения.
Работа препроцессора осуществляется с помощью специальных директив (указаний).
Они отмечаются знаком решетка #. По окончании строк, обозначающих директивы в языке Си, точку с запятой можно не ставить.
Слайд 19
Основные директивы препроцессора
#include — вставляет текст из указанного
файла
#define — задаёт макроопределение (макрос) или символическую константу
#undef —
отменяет предыдущее определение
#if — осуществляет условную компиляцию при истинности константного выражения
#ifdef — осуществляет условную компиляцию при определённости символической константы
Слайд 20
#ifndef — осуществляет условную компиляцию при неопределённости символической
константы
#else — ветка условной компиляции при ложности выражения
#elif —
ветка условной компиляции, образуемая слиянием else и if
#endif — конец ветки условной компиляции
#line — препроцессор изменяет номер текущей строки и имя компилируемого файла
#error — выдача диагностического сообщения
#pragma — действие, зависящее от конкретной реализации компилятора.
Слайд 21
Каждое имя, определенное в коде, появляющемся внутри пространства
имен, включает в себя имя этого пространства имен.
Все
средства стандартной библиотеки ISO/ANSI C++ определены внутри пространства имен по имени std, поэтому каждый элемент стандартной библиотеки, к которому вы можете обратиться в своей программе, имеет свое собственное имя плюс наименование пространства имен — std — в качестве квалификатора.
Применение полных имен в программе делает код несколько громоздким, поэтому было бы неплохо использовать их простые имена без квалификатора — имени пространства имен std. Две строки программы, которые следуют за директивой #include
, обеспечивают упомянутую возможность:
using std::cout;
using std::endl;
using namespace std
Пространство имен
Слайд 22
Функция main
Специальная функция main - это начальная точка
выполнения для всех С и C++ программ (точка входа
программы). При создании кода, который соответствует модели программирования Юникод, можно использовать функцию wmain, представляющую собой версию функции main для расширенных символов.
Слайд 23
Проблема русского языка
Проблема русского языка в консольных приложениях
заключается в том, что консоль и редактор кода Microsoft
Visual Studio поддерживают разные кодовые страницы.
Для того, чтобы увидеть русские символы в консоли необходимо поменять кодовую страницу в консоли, чтобы она соответствовала кодовой странице редактора (1251):
#include
#include
int main()
{
system("chcp 1251");
system("cls");
...
}
int main()
{
setlocale("LC_CTYPE", "Russian")
...
}
Слайд 24
Переменные
Формат описания переменных:
[][= | ()];
Пример:
int I,j;
double x;
Значение переменных должно быть определено с помощью:
1. оператора присваивания: int a; //описание переменной
int= a; //опред.значения.переменной
2. оператора ввода: int a; //описание переменной
cin>>a; //опред.знач.переменной
3. инициализация – опред.значения переменной на этом этапе описания.
int i=100 //инициализация копией
int i (100); // прямая инициализация
Слайд 25
Домашнее задание
Установить среду программирования Visual Studio 2010 на
домашних компьютерах.
Создать проект и произвести компиляцию примера приведенного на
занятие:
#include
int main()
{ int a, b; //описание переменных
cin >> a >> b; //ввод
cout << “сумма” << a+b; //вывод
return 0; //возврат
}