Основы программирования на языке C++

Содержание

Слайд 2

Чем отличается С от C++?

На 99% — ничем, но в C++ есть

Чем отличается С от C++? На 99% — ничем, но в C++
родная поддержка объектно-ориентированного программирования (ООП).
C++ — это улучшенный C. У этих языков одинаковый на 99% синтаксис и команды, но C — это больше про структурное и процедурное программирование, а C++ — про объектно-ориентированное.
C — язык, который сделал в 1973 году Деннис Ритчи. Главная цель языка — скорость, быстродействие и универсальность. Язык изначально проектировался как системный, чтобы на нём можно было писать код для процессоров, драйверов и создавать на нём операционные системы. В то время большинство этих вещей делали на ассемблере, и Ритчи хотел это упростить.
C++ придумал Бьёрн Страуструп в начале восьмидесятых, когда ему не хватало возможностей стандартного C. Он сделал язык более строгим, добавил в него классы, ООП-подход и перегрузку операторов, сохранив скорость оригинального С. В 1983 году Бьёрн переименовал язык из «C с классами» в C++.

Слайд 3

БАЗОВЫЕ ПОНЯТИЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ C++

Программа – это реализация алгоритма для выполнения задачи

БАЗОВЫЕ ПОНЯТИЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ C++ Программа – это реализация алгоритма для выполнения
компьютером (ЭВМ).
С помощью программы мы формулируем алгоритм на языке, понятном компьютеру. Таким языком служит язык программирования.
На сегодняшний день одним из самых распространенных и востребованных языков программирования является язык С++.
На языке С++ можно составлять программы для инженерных расчетов, также можно строить оконные проекты, имеющие пользовательский графический интерфейс.

Слайд 4

Этапы решения задачи на ЭВМ

В процессе создания любой программы можно выделить несколько

Этапы решения задачи на ЭВМ В процессе создания любой программы можно выделить
этапов.
1) Постановка задачи. Этот этап выполняется специалистом в предметной области на естественном языке. Необходимо определить цель задачи, ее содержание и общий подход к решению. Возможно, что задача решается точно (аналитически) и без компьютера. Уже на этапе постановки надо учитывать эффективность алгоритма решения задачи на ЭВМ, ограничения, накладываемые аппаратным и программным обеспечением.
2) Анализ задачи и моделирование. На этом этапе определяются исходные данные и ожидаемый результат, выявляются ограничения на их значения, выполняется формализованное описание задачи и построение или выбор математической модели, пригодной для решения на компьютере.
3) Разработка или выбор алгоритма решения задачи выполняется на основе ее математического описания. Многие задачи можно решить различными способами. Программист должен выбрать оптимальное решение. Неточности в поставке, анализе задачи или разработке алгоритма могут привести к скрытой ошибке: программист получит неверный результат, считая его правильным.

Слайд 5

Этапы решения задачи на ЭВМ

4) Проектирование общей структуры программы. На этом

Этапы решения задачи на ЭВМ 4) Проектирование общей структуры программы. На этом
этапе формируется модель решения, с последующей детализацией и разбивкой на подпрограммы, определяется архитектура программы, способ хранения информации (набор переменных, констант, массивов данных и так далее).
5) Кодирование представляет собой запись алгоритма на языке программирования.
Современные системы программирования позволяют ускорить процесс разработки программы, автоматически создавая часть ее текста. Однако творческая работа лежит на программисте. Для успешной реализации цели проекта программисту необходимо использовать методы структурного программирования, то есть программирования с использованием подпрограмм, которые в языке программирования C++ носят названия функций.

Слайд 6

Этапы решения задачи на ЭВМ

6) Отладка и тестирование программы. Под откладкой понимается

Этапы решения задачи на ЭВМ 6) Отладка и тестирование программы. Под откладкой
устранение ошибок в программе. Тестирование позволяет вести их поиск и в конечном счете убедиться в том, что полностью отлаженная программа дает правильный результат. Для этого разрабатываются системы тестов - специально подобранных контрольных примеров с такими подборками параметров, для которых решение задачи известно. Тестирование должно охватывать все возможные ветвления в программе, то есть проверяют все ее инструкции и включают даже такие исходные данные, для которых решение невозможно. Проверка особых исключительных ситуаций необходима для анализа корректности работы программы. Например, программа должна отказать клиенту банка в просьбе выдать сумму, отсутствующую на его счете. В ответственных проектах большое внимание уделяется так называемой «защите от неумелого пользователя», подразумевающей устойчивость программы по отношению к неумелому обращению пользователя. Использование специальных программ-отладчиков, которые позволяют выполнять программу по отдельным шагам, просматривая при этом значения переменных, значительно упрощает этот этап.

Слайд 7

Этапы решения задачи на ЭВМ

7) Анализ результатов. Если программа выполняет моделирование какого-либо

Этапы решения задачи на ЭВМ 7) Анализ результатов. Если программа выполняет моделирование
известного процесса, следует сопоставить результат вычислений с результатами наблюдений. В случае существенного расхождения необходимо изменить модель.
8) Публикация результатов работы, передача заказчику для эксплуатации.
9) Сопровождение программы. Этот конечный этап включает в себя консультации представителей заказчика по работе с программой и обучению персоналом. Недостатки и ошибки, выявленные в процессе эксплуатации, устраняются.

Слайд 8

ТИПЫ ДАННЫХ

В языке С++ все переменные имеют определенный тип данных. Тип определяет

ТИПЫ ДАННЫХ В языке С++ все переменные имеют определенный тип данных. Тип
множество значений, которые могут принимать объекты программы (константы и переменные), а также совокупность операций, допустимых над этими значениями. Например, значения 1 и 3 относится к целочисленному типу. Над данными целого типа можно выполнять любые арифметические операции.
А вот данные «отличное» или «учеба» принадлежат к строковому типу.
Тип данных присваивается переменной при ее объявлении или инициализации. Далее приведем основные типы данных языка C++, которые нам понадобятся.

Слайд 9

Типы данных

В языке программирова-ния С++ определены некоторые стандартные типы данных, которые представлены

Типы данных В языке программирова-ния С++ определены некоторые стандартные типы данных, которые представлены в табл. 7.
в табл. 7.

Слайд 10

ПЕРЕМЕННЫЕ В ПРОГРАММИРОВАНИИ

В программировании существует понятие «Переменная».
Переменная — это нечто такое,

ПЕРЕМЕННЫЕ В ПРОГРАММИРОВАНИИ В программировании существует понятие «Переменная». Переменная — это нечто
что способно изменять свое значение в ходе выполнения программы.
Возьмём самое обычные арифметическое выражение: x = a + b.
В этом выражении присутствуют три именованных неизвестных: x, a и b.
Каждое неизвестное в этом уравнении может изменять своё состояние: за названием неизвестного сокрыто какое-либо значение. Каким-то неизвестным значения задаём мы, какие-то неизвестные вычисляются по формулам с помощью ставшими изветными неизвестных. Любое изменение значения равносильно изменению состояния.
В компьютере почти все то же самое.
Переменная в языке C++ представляет собой название неизвестного, такого неизвестного, значение-состояние которому можно задавать или изменять во время работы программы.

Слайд 11

ПЕРЕМЕННЫЕ В ПРОГРАММИРОВАНИИ

Информация в компьютере хранится в памяти. Минимальная единица информации хранится

ПЕРЕМЕННЫЕ В ПРОГРАММИРОВАНИИ Информация в компьютере хранится в памяти. Минимальная единица информации
в одной ячейке памяти. У любой ячейки памяти есть свой собственный физический адрес. У каждой ячейки памяти свой индивидуальный физический адрес. Когда мы хотим, чтобы компьютер, например, выводил некоторое значение на монитор, нам необходимо заставить компьютер запомнить это значение.
Запоминаемое компьютером значение попадает в некоторую область памяти, где и хранится. Область памяти представляет собой целостный блок, собранный из какого-то числа ячеек. Хранимое внутри области памяти значение определяется компилятором с помощью первой ячейки.
У каждой ячейки есть собственный физический адрес. В C++ обращение к адресу первой ячейки некоторого блока памяти эквивалентно обращению ко всему блоку памяти.

Слайд 12

ПЕРЕМЕННЫЕ В ПРОГРАММИРОВАНИИ

Чтобы хранимое в блоке памяти значение, например, отображалось на экране,

ПЕРЕМЕННЫЕ В ПРОГРАММИРОВАНИИ Чтобы хранимое в блоке памяти значение, например, отображалось на
нужно вытащить значение из блока памяти. Чтобы вытащить значение из блока памяти, нужен адрес первой ячейки этого блока памяти. Обращением к адресу первой ячейки блока памяти всегда можно вытащить значение, хранимое внутри всего блока.
Для закрепления материала можно выполнить простое упражнение.
1. Объявите две переменные и присвойте им значения.
2. Поменяйте значения, хранимые в переменных.
Например, вы объявили a=5; b=10. Необходимо сделать так, чтобы при выводе значения b на монитор выводилось число 5, а при выводе значения a число 10.

Слайд 13

ПЕРЕМЕННЫЕ В ПРОГРАММИРОВАНИИ

Зачем программисту нужны переменные? Чтобы программа могла что-то сделать, программе

ПЕРЕМЕННЫЕ В ПРОГРАММИРОВАНИИ Зачем программисту нужны переменные? Чтобы программа могла что-то сделать,
нужен доступ к какому-либо участку памяти компьютера. Например, чтобы выполнить простой расчет суммы из двух слагаемых, программе нужно место под хранение первого слагаемого, второго слагаемого и место под хранение полученного результата. То есть для вычисления суммы может требоваться либо два, либо три участка памяти (если используется два, то результат записывается поверх использованного слагаемого). Результат вычисления часто необходим для дальнейшего вычисления, в том числе для повторяемых вычислений.
Вот так выглядит простейшая простая программа вычисления суммы:
cout << 5+10 << "\n"; //Вывести на экран 15

Слайд 14

ПЕРЕМЕННЫЕ В ПРОГРАММИРОВАНИИ

Подход написания кодов подобным образом ведёт к тому, что нет

ПЕРЕМЕННЫЕ В ПРОГРАММИРОВАНИИ Подход написания кодов подобным образом ведёт к тому, что
возможности сохранять результаты для дальнейшего их использования. Вот получили мы в результате вычисления - число 15, а как этот результат использовать дальше? Числа 5 и 10 в этом примере являются константами: они где-то сохранены в памяти компьютера, иначе бы вычисление не представлялось возможным, но повторно обратиться к 5 и 10 мы уже не можем, потому что непосредственно с этими константами способа связи нет. Только считать заново!
Кроме этого, во время работы подобной программы вводить значения для вычислений с клавиатуры нельзя.
Поэтому, чтобы программы были полноценными, программисты почти всегда используют переменные. Редкая программа может оказаться полезной, если переменных в ней вообще нет.

Слайд 15

ПЕРЕМЕННЫЕ В ПРОГРАММИРОВАНИИ

Улучшение программы может быть таким:
int year_birthay = 1997;  //Переменная year_birthay инициализирована

ПЕРЕМЕННЫЕ В ПРОГРАММИРОВАНИИ Улучшение программы может быть таким: int year_birthay = 1997;

// значением 1987
cout << year_birthay + 10;
Но сложно утверждать, что в таком коде много смысла, потому что используется значение, заданное программе в исходном коде. Это значение непосредственно во время работы программы не изменить никак. С тем же успехом можно было использовать, например, константу, поэтому этот пример мало отличается от предыдущего.
Тем не менее, этот пример ближе к полноценному коду. Ведь если требуется ввод с клавиатуры, то использование имени переменной позволяет связаться с участком памяти, в который компилятор сможет записывать изменения: 

Слайд 16

ПЕРЕМЕННЫЕ В ПРОГРАММИРОВАНИИ

#include
int main(){
  int year_birthay = 0;
  cout << "Введи год рождения:

ПЕРЕМЕННЫЕ В ПРОГРАММИРОВАНИИ #include int main(){ int year_birthay = 0; cout cin
";
  cin >> year_birthay; //Записали в память значение.
  cout << "Результат работы программы: " << year_birthay + 10 <<"\n"; //Использовали записанное значение
  return 0;
}
Благодаря возможности именования участков памяти мы можем написать почти любое название, которое будет удобно использовать в дальнейшем.

Слайд 17

ПЕРЕМЕННЫЕ В ПРОГРАММИРОВАНИИ

При именовании переменных нужно иметь в виду следующее.
Первым символом имени

ПЕРЕМЕННЫЕ В ПРОГРАММИРОВАНИИ При именовании переменных нужно иметь в виду следующее. Первым
переменной не может быть цифра.
Имя переменной может состоять только из символов латинского алфавита, цифр и символа подчёркивания.
Символы в верхнем и нижнем регистрах рассматриваются как разные.
В качестве имени нельзя использовать ключевые слова, зарезервированные компилятором.
Не стоит начинать название с одного или двух символов подчёркивания: подобные имена используются разработчиками для нужд компилятора, поэтому использования подобных имён способно привести к неожиданным последствиям
Стандарт не ограничивает длину задаваемого переменной имени, но некоторые платформы могут вводит свои ограничения на длину.

Слайд 18

Объявление переменной

Объявление переменной в C++ происходит таким образом: сначала указывается тип данных

Объявление переменной Объявление переменной в C++ происходит таким образом: сначала указывается тип
для этой переменной, а затем название этой переменной.
Примеры объявления переменных
int a; // объявление переменной a целого типа.
float b; // объявление переменной b типа данных с плавающей запятой.

Слайд 19

Инициализация переменной

При объявлении переменной мы можем присвоить ей значение в этот же

Инициализация переменной При объявлении переменной мы можем присвоить ей значение в этот
момент. Это называется инициализацией переменной.
C++ поддерживает два основных способа инициализации переменных.
Способ № 1. Копирующая инициализация (или «инициализация копированием») с помощью знака равенства =:
int n = 5; // копирующая инициализация
double c = 14.2; // инициализация переменной типа double.
char d = 's'; // инициализация переменной типа char.
bool k = true; // инициализация логической переменной k.
Способ № 2. Прямая инициализация с помощью круглых скобок ():
int n(5); // прямая инициализация

Слайд 20

Инициализация переменной

В C++ имеется важное отличие между понятиями определения (инициализации) и объявления

Инициализация переменной В C++ имеется важное отличие между понятиями определения (инициализации) и
переменной. Под объявлением понимается, собственно, задание имени переменной и указание ей нужного типа. Под определением понимается внесение какой-то информации в объявленную переменную.
Размеры переменных зависят от вашей операционной системы. Чтобы посмотреть размер переменной, существует оператор sizeof:
cout<cout<

Слайд 21

Объявление и инициализация нескольких переменных

В одном стейтменте можно объявить сразу несколько переменных

Объявление и инициализация нескольких переменных В одном стейтменте можно объявить сразу несколько
одного и того же типа данных, разделяя их имена запятыми. Например, следующие 2 фрагмента кода выполняют одно и то же:
int a, b;
и
int a;
int b;
Кроме того, вы даже можете инициализировать несколько переменных в одной строке:
int a = 5, b = 6;
int c(7), d(8);

Слайд 22

Объявление и инициализация нескольких переменных

Есть три ошибки, которые совершают новички при объявлении

Объявление и инициализация нескольких переменных Есть три ошибки, которые совершают новички при
нескольких переменных в одном стейтменте.
Ошибка №1. Указание каждой переменной одного и того же типа данных при инициализации нескольких переменных в одном стейтменте. Это не критичная ошибка, так как компилятор легко её обнаружит и сообщит вам об этом.
int a, int b; // неправильно (ошибка компиляции)
int a, b; // правильно
Ошибка №2. Использование разных типов данных в одном стейтменте. Переменные разных типов должны быть объявлены в разных стейтментах. Эту ошибку компилятор также легко обнаружит:
int a, double b; // неправильно (ошибка компиляции)
int a; double b; // правильно (но не рекомендуется)
// Правильно и рекомендуется (+ «читабельнее»):
int a;
double b;
Ошибка №3. Инициализация двух переменных с помощью одной операции:
int a, b = 5; // неправильно (переменная a остаётся
// неинициализированной)
int a = 5, b = 5; // правильно

Слайд 23

Объявление и инициализация нескольких переменных

Заметьте, что в C++ оператор присваивания (=) не

Объявление и инициализация нескольких переменных Заметьте, что в C++ оператор присваивания (=)
является знаком равенства и не может использоваться для сравнения значений. Оператор равенства записывается как «двойное равно: = =.
Присваивание используется для сохранения определенного значение в переменной. Например, запись вида a = 10 задает переменной a значение числа 10.
Где объявлять переменные? Старые версии компиляторов языка Си вынуждали пользователей объявлять все переменные в верхней части функции. Сейчас это уже неактуально. Современные компиляторы не требуют, чтобы все переменные обязательно были объявлены в самом верху функции. В языке С++ приоритетным является объявление (а также инициализация) переменных как можно ближе к их первому использованию.

Слайд 24

Объявление и инициализация нескольких переменных

Такой стиль написания кода имеет несколько преимуществ.
Во-первых, возле

Объявление и инициализация нескольких переменных Такой стиль написания кода имеет несколько преимуществ.
переменных, которые объявлены как можно ближе к их первому использованию, находится другой код, который способствует лучшему представлению и пониманию происходящего. Если бы переменная х была объявлена в начале функции main(), то мы бы не имели ни малейшего представления, для чего она используется. Для понимания смысла переменной пришлось бы целиком просматривать всю функцию. Объявление переменной х возле операций ввода/вывода данных позволяет нам понять, что эта переменная используется для ввода/вывода данных.
Во-вторых, объявление переменных только там, где они необходимы, сообщает нам о том, что эти переменные не влияют на код, расположенный выше, что делает программу проще для понимания.
И, наконец, в-третьих, уменьшается вероятность случайного создания неинициализированных переменных.

Слайд 25

Объявление и инициализация нескольких переменных

В большинстве случаев, вы можете объявить переменную непосредственно

Объявление и инициализация нескольких переменных В большинстве случаев, вы можете объявить переменную
в строке перед её первым использованием.
Правило. Объявляйте переменные как можно ближе к их первому использованию.

Слайд 26

Инициализация по умолчанию

Если переменную не инициализировать, то происходит ее инициализация по умолчанию.

Инициализация по умолчанию Если переменную не инициализировать, то происходит ее инициализация по
И переменная получает некоторое значение по умолчанию, которое зависит от места, где эта переменная определена.
Если переменная стандартного типа определена вне функции main, но не инициализирована, то она получает то значение по умолчанию, которое соответствует ее типу. Для числовых типов это число 0.
Например:
#include
int x;
int main()
{
    int y;
    std::cout <<"X = " << x << "\n";
    std::cout <<"Y = " << y;
         return 0;
}
Переменная x определена вне функции, и поэтому она получит значение по умолчанию - число 0.

Слайд 27

Изменение значения переменной

Ключевой особенностью переменных является то, что мы можем изменять их

Изменение значения переменной Ключевой особенностью переменных является то, что мы можем изменять
значения:
#include
int main()
{
    int x = 6;
    x = 8;
    x = 10;
    std::cout <<"X = " << x; // X = 10
return 0;

Слайд 28

Задание типов переменных

Типы переменным в C++ задаются только один раз, изменять их

Задание типов переменных Типы переменным в C++ задаются только один раз, изменять
в ходе работы программы нельзя, то есть нельзя изменять размеры выделенных блоков памяти, можно только уничтожать один блок ради создания другого (это возможно при работе с указателями, к которым мы обратимся позже).
В C++ типы делятся на фундаментальные (они же и базовые или примитивные) и составные.
К фундаментальным типам относятся:
символьные виды типов: char, unsigned char, signed char — относится к целочисленным типам;
целочисленные виды типов: short int, int, long int, long long int — относятся к целочисленным типам;
булевский вид типов: bool —относится к целочисленным типам;
виды типов с плавающей точкой (дробные числа): float, double, long double — относятся к типам с плавающей точкой;
вид пустого типа: void — относится к неполным типам.

Слайд 29

Задание типов переменных

К составным типам относятся:
массивы,
функции,
указатели,
ссылки,
классы,
объединения,
перечисления.
Последние три типа – из области объектно-ориентированного

Задание типов переменных К составным типам относятся: массивы, функции, указатели, ссылки, классы,
программирования.
Для работы с числами используют целочисленные типы, эти типы могут быть знаковыми и беззнаковыми. Знаковые типы — это типы для переменных, способных принимать отрицательные значения, а беззнаковые, соответственно, отрицательных значений принимать не способны.

Слайд 30

Задание типов переменных

Поскольку числа могут быть положительными и отрицательными, то численным типам

Задание типов переменных Поскольку числа могут быть положительными и отрицательными, то численным
необходим знак «плюс» или «минус». Иногда не нужны отрицательные числа, тогда имеет смысл использовать беззнаковый тип, благодаря которому возможно использовать дополнительные положительные числа.
Беззнаковые типы: short int, int, long int - указываются перед переменной, хранящей целые числа. В short int и long int слово int можно опускать: short, long.
Когда нужно использовать свойство знаковости чисел (только положительные, либо не только положительные, но обязательно и отрицательные), используют ключевые слова signed (знаковое) и unsigned (беззнаковое):

Слайд 31

Задание типов переменных

unsigned x = -1; //x - беззнаковая переменная, поэтому отрицательное

Задание типов переменных unsigned x = -1; //x - беззнаковая переменная, поэтому

// значение внутри неё быть не может
signed y = -1; //y - знаковая переменная, поэтому внутри неё законно
//может находиться отрицательное значение
//Выведите на экран значения x и y самостоятельно
unsigned short z1 = 1;
unsigned int z2 = 1; //==>unsigned z1=1
unsigned long z3 = 1;
Имейте в виду, что несмотря на то, что при использовании беззнаковых типов появляется возможность использовать дополнительные положительные числа, вместимость самого типа никак не изменяется. Из целочисленных числовых типов для работы программ в большинстве случаев хватает типа int.
Размеры целочисленных типов во всех компиляторах C++ подчиняются следующему неравенству:
char <= short <= int <= long <= long long

Слайд 32

Задание типов переменных

Мир не ограничивается только целыми числами, поэтому существуют типы, называемые

Задание типов переменных Мир не ограничивается только целыми числами, поэтому существуют типы,
типами с плавающей точкой. В отличие от целочисленных типов они не могут быть объявлены как беззнаковые или знаковые:
 int main()
{
       unsigned float x = 1; //ошибка компиляции, числа с плавающей
//точкой не могут быть беззнаковыми
       signed float y = 1; //ошибка компиляции, числа с плавающей точкой
// не могут быть объявлены знаковыми
       float z = 1; //это работает
       unsigned double a = 1; //ошибка компиляции, числа с плавающей
// точкой не могут быть беззнаковыми
    }
Размер выделяемой памяти для типов с плавающей точкой определяется реализацией компилятора. У чисел с плавающей точкой после точки какое-то определённое число значащих цифр, за значащами цифрами идут цифры, которые представляют собой информационный мусор, поэтому толку от них никакого нет.

Слайд 33

Задание типов переменных

В совокупности целочисленные типы и типы с плавающей точкой называются

Задание типов переменных В совокупности целочисленные типы и типы с плавающей точкой
арифметическими типами.
Тип переменной определяет, что именно в ней будет храниться. Хранимым значением может быть число, строка, какой-то наш собственный тип данных. Все типы, даже одинаковые, но с разным названием, воспринимаются компиляторами C++ как типы с разной структурой, то есть считаются разными, поэтому у разных типов переменных могут различаться операции, которые с ними можно использовать.
Так, например, если переменная имеет целочисленный тип, то для нее определена операция сложения (+). Если переменная имеет тип «массив символов», то операции сложения (+) в таком типе нет.
Каждый тип может имеет свои особенности, поэтому при создании переменных вы должны правильно выбирать соответствующий им тип.

Слайд 34

Задание типов переменных

Пример кода объявления переменных.
int main ()
{
  short x1;         //Знаковый. Короткий

Задание типов переменных Пример кода объявления переменных. int main () { short
диапазон целых чисел
  signed short x2;  //Знаковый. Короткий диапазон целых чисел
  unsigned short x3;//Беззнаковый. Короткий диапазон целых чисел
  int y1;        //Знаковый Диапазон целых чисел
  signed int y2; //Знаковый Диапазон целых чисел
  unsigned int y3; //Безнаковый Диапазон целых чисел
   ong z1;          //Знаковый длинный дипазон целых чисел
  signed long z2;   //Знаковый длинный дипазон целых чисел
  unsigned long z3; //Безнаковый длинный дипазон целых чисел
  char ch1; //или знаковый, или беззнаковый диапазон для кодов
// символов. Может быть в обоих вариантах.
  signed char ch2; //Знаковый диапазон для кодов символов
  unsigned char ch3; //Беззнаковый диапазон для кодов символов
  //Иногда в кодах символов применяют отрицательные значения, а
// иногда только положительные.
  // short char; // неверно. char не может быть коротким или длинным.
// signed double d; //неверно. Знаковыми и беззнаковыми могут быть
// только целочисленные типы
}

Слайд 35

Имена переменных

В программах используются переменные. Имя переменной выбирает составитель программы; имя переменной

Имена переменных В программах используются переменные. Имя переменной выбирает составитель программы; имя
должно начинаться с буквы латинского алфавита и может содержать буквы латинского алфавита, цифры и символы подчеркивания. Заглавные и строчные буквы считаются разными.

Слайд 36

КОНСТАНТЫ В С++

Каждый элемент данных, используемый в программе, является либо константой, либо

КОНСТАНТЫ В С++ Каждый элемент данных, используемый в программе, является либо константой,
переменной.
Константой называется элемент данных, значение которого в процессе выполнения программы не меняется.
В языке С++ используется константы следующих видов:
числовые,
логические (булевские),
символьные,
строковые.
Числовые константы предназначены для представления числовых данных (целых и вещественных).
Булевские константы используются для представления данных, имеющих смысл логических высказываний (типа: да-нет, истина-ложь, 1-0).
Символьные и строковые константы - это отдельные символы и их последовательности.

Слайд 37

ВВОД, ВЫВОД В С++. Библиотека iostream

C++ рассматривает ввод и вывод как поток

ВВОД, ВЫВОД В С++. Библиотека iostream C++ рассматривает ввод и вывод как
байтов. (В зависимости от реализации и платформы это могут быть 8-, 16- или 32-битные байты, но все равно они будут байтами.) Однако многие виды данных в программе организованы в виде более крупных блоков, нежели отдельный байт. Например, тип int может быть представлен 16- или 32-битным двоичным значением, а значение типа double — 64- битными двоичными данными. Но при отправке потока байтов на экран желательно, чтобы каждый байт представлял значение символа. То есть для отображения на экране числа -2.34 понадобится отправить пять символов: «-», «2», «.», «3» и «4», а не внутреннее 64-битное с плавающей точкой представление этого значения.
Частью стандартной библиотеки C++ является библиотека iostream – объектно-ориентированная иерархия классов, где используется и множественное, и виртуальное наследование. В ней реализована поддержка для файлового ввода/вывода данных встроенных типов. Кроме того, разработчики классов могут расширять эту библиотеку для чтения и записи новых типов данных.

Слайд 38

Библиотека iostream

Для использования библиотеки iostream в программе необходимо включить заголовочный файл:
#include

Библиотека iostream Для использования библиотеки iostream в программе необходимо включить заголовочный файл:

Операции ввода/вывода выполняются с помощью классов istream (потоковый ввод) и ostream (потоковый вывод). Третий класс, iostream, является производным от них и поддерживает двунаправленный ввод/вывод.
Для удобства в библиотеке определены два стандартных объекта-потока:
cin – объект класса istream, соответствующий стандартному вводу; в общем случае он позволяет читать данные с терминала пользователя;
cout – объект класса ostream, соответствующий стандартному выводу; в общем случае он позволяет выводить данные на терминал пользователя.

Слайд 39

Вывод с помощью cout

Вывод осуществляется, как правило, с помощью перегруженного оператора сдвига

Вывод с помощью cout Вывод осуществляется, как правило, с помощью перегруженного оператора
влево (<<), а ввод – с помощью оператора сдвига вправо (>>) – это условные названия:
#include
#include
int main()
{
// вывести сообщение на экран
cout << "Здесь появится ваше имя:";
cout << "Вася" <}
Перегрузка операторов в программировании — один из способов реализации полиморфизма, заключающийся в возможности одновременного существования в одной области видимости нескольких различных вариантов применения оператора, имеющих одно и то же имя, но различающихся типами параметров, к которым они применяются.

>

Слайд 40

Вывод с помощью cout

Назначение операторов легче запомнить, если считать, что каждый «указывает»

Вывод с помощью cout Назначение операторов легче запомнить, если считать, что каждый
в сторону перемещения данных.
Например,
>> x
перемещает данные в x,
<< x
перемещает данные из x.
Поэтому одной из наиболее важных задач, стоящих перед программой, является преобразование числовых типов, таких как int или float, в поток символов, который представляет значения в текстовой форме. Таким образом, транслируется внутреннее представление данных в виде двоичных битовых последовательностей в выходной поток символьных байтов.


Слайд 41

Перегруженная операция

Чаще всего мы используем cout с операцией <<, которая также называется

Перегруженная операция Чаще всего мы используем cout с операцией int clients =
операцией вставки:
int clients = 22;
cout << clients;
В языке C++, как и в языке С, по умолчанию операция <<Выражение наподобие х <<3 означает: загрузить двоичное представление х и сдвинуть все его биты на три позиции влево. Очевидно, что это не слишком тесно связано с выводом. Но операция << определяется для вывода. В этой ипостаси операция << называется операцией вставки, а не операцией сдвига влево. (Операция сдвига влево обретает эту новую роль посредством своего визуального аспекта, который предполагает смещение информации влево.)

Слайд 42

Перегруженная операция

Операция вставки перегружена для применения со всеми базовыми типами C++:
char
short
int
long
float
double
Если вы

Перегруженная операция Операция вставки перегружена для применения со всеми базовыми типами C++:
— программист на С и страдаете от многообразия спецификаторов типа % и проблем, связанных с несоответствием спецификатора действительному типу значения, то использование cout покажется вам до неприличия простым. (Разумеется, как и ввод C++ посредством сin.)

Слайд 43

Ввод с помощью  cin

Теперь обратимся к вводу и передаче данных в программу.

Ввод с помощью cin Теперь обратимся к вводу и передаче данных в
Объект сіп представляет стандартный ввод в виде потока байтов. Обычно этот поток символов генерируется клавиатурой. При вводе последовательности символов объект сіn извлекает эти символы из входного потока. Этот ввод может являться частью строки, значением типа int, типа float или какого-либо иного типа. Таким образом, извлечение символов из потока предполагает также преобразование типа. Объект сіn на основании типа переменной, предназначенной для приема значения, должен применять свои методы для преобразования последовательности символов в значения соответствующего типа. Обычно сіп используют следующим образом:
cin >> х;
Здесь х идентифицирует область памяти, в которую помещается ввод. Это может быть в самом простом случае именем переменной. То, как сin интерпретирует ввод, зависит от типа данных х.

Слайд 44

Ввод с помощью  cin

Класс istream, определенный в заголовочном файле iostream, перегружает операцию

Ввод с помощью cin Класс istream, определенный в заголовочном файле iostream, перегружает
извлечения >> для распознавания следующих базовых типов:
char
short
int
long
float
double
Например, предположим, что имеется следующий код:
// Вывод приглашения на ввод имени cout « "Enter your first name:\n";
string name;
// Ввод имени cin » name;
Таким образом, можно ввести данные, то есть в этом примере имя.

Слайд 45

БИБЛИОТЕКИ В С++

Программа на языке С++ имеет определенную структуру.
Существует последовательность заранее определенных

БИБЛИОТЕКИ В С++ Программа на языке С++ имеет определенную структуру. Существует последовательность
строк кода, которая приведена в табл. 8.

Слайд 46

БИБЛИОТЕКИ В С++

БИБЛИОТЕКИ В С++

Слайд 47

Основные библиотеки и их основные функции и операторы

1. для VisualStudio –

Основные библиотеки и их основные функции и операторы 1. для VisualStudio –
это библиотека для работы с консолью (экраном).
cout – оператор вывода данных на экран.
Пример использования:
cout<<"fraza"; //выведет на экран слово fraza; может вывести любой текст.
cout<cin – оператор считывания с клавиатуры.
Когда у пользователя запрашивают число, программа ждет, пока пользователь не напечатает число и нажмет ENTER. Тогда оператор cin записывает это значение в переменную х.
Пример использования:
cin>>x; //присваивает переменной х значение, введенное с клавиатуры.
cin>>x>>y; //присваивает переменной х первое введенное с клавиатуры значение, переменной у – второе.
endl – оператор перевода каретки на экране на следующую строку и возврата курсора в ее начало. Самостоятельно не используется.

Слайд 48

Основные библиотеки и их основные функции и операторы

Пример использования:
cout<

Основные библиотеки и их основные функции и операторы Пример использования: cout cout
новую строку.
cout<cout<precision(n) – функция для отображения на экране дробных чисел с n цифрами после запятой.
Пример использования:
cout.precision(3)<<7.897426; //число 7.897426 выведется на экран в виде 7.897.
2. - библиотека математических функций. Основные математические функции представлены в табл. 9

Слайд 49

Основные библиотеки и их основные функции и операторы

Основные библиотеки и их основные функции и операторы

Слайд 50

Основные библиотеки и их основные функции и операторы

для VisualStudio реализует инструменты

Основные библиотеки и их основные функции и операторы для VisualStudio реализует инструменты
для работы с форматированием вывода. В этой библиотеке есть функция setw(n), которая применяется для вывода на экран значения, под которое отводится n ячеек. Используется при построении ровной таблицы значений функции.
Пример использования:
cout<На экран выведутся два числа: первое (1.5) в первых пяти ячейках, второе (-73) во вторых пяти ячейках: _ _ 1 . 5 _ _ - 7 3 .

Слайд 51

Часто встречающиеся строки кода программ C++

Чтобы использовать в программе переменную, необходимо совершить

Часто встречающиеся строки кода программ C++ Чтобы использовать в программе переменную, необходимо
2 действия.
1) Объявить переменную в начале программы, явно указав тип данных для переменной.
Пример:
double x; //вещественная переменная.
int m; //целочисленная переменная.
Если переменная не будет объявлена, но будет использоваться далее в программе, то программа не запустится, компилятор выдаст ошибку.
2) Проинициализировать переменную, т.е. задать переменной начальное значение.
Пример:
x = 7.81;
m = 4; z = x + m;

Слайд 52

Часто встречающиеся строки кода программ C++

Если переменная не будет проинициализирована, то компилятор

Часто встречающиеся строки кода программ C++ Если переменная не будет проинициализирована, то
не выдаст ошибки, но расчеты будут выполнены неверно.
Использовать эту переменную далее в программе в расчетах или при выводе на экран.
Для числовых переменных определены простейшие арифметические операции, которые приведены в таблице 10. Для их использования не нужно подключать библиотеку.

Слайд 53

Часто встречающиеся строки кода программ C++

Часто встречающиеся строки кода программ C++

Слайд 54

РЕКОМЕНДАЦИИ ПО СТИЛЮ ПРОГРАММИРОВАНИЯ

Накопленный̆ опыт программирования привел к формированию следующих рекомендаций по

РЕКОМЕНДАЦИИ ПО СТИЛЮ ПРОГРАММИРОВАНИЯ Накопленный̆ опыт программирования привел к формированию следующих рекомендаций
составлению наглядных и легко читаемых программ.
1. Стандартизация стиля программирования заключается в том, что необходимо всегда придерживаться одного способа программирования, записи программы.
С целью рационального размещения текста, не следует операторы программы писать сплошным текстом.

Слайд 55

РЕКОМЕНДАЦИИ ПО СТИЛЮ ПРОГРАММИРОВАНИЯ

2. Для четкого выявления вложенности управляющих структур требуется особым

РЕКОМЕНДАЦИИ ПО СТИЛЮ ПРОГРАММИРОВАНИЯ 2. Для четкого выявления вложенности управляющих структур требуется
образом располагать операторы в тексте, так чтобы служебные слова, которыми начинается или заканчивается тот или иной оператор, записывались на одной вертикали, а все вложенные в него операторы записывались с некоторым отступом вправо. При записи конструкции языка более глубоких уровней вложенности следует сдвигать их от начала строки вправо. Каждое описание и каждый оператор следует писать с новый строки. Перенося описания операторов на новые строки, записи надо сдвигать вправо. Следует по возможности избегать длинных строк.

Слайд 56

РЕКОМЕНДАЦИИ ПО СТИЛЮ ПРОГРАММИРОВАНИЯ

3. Рекомендуется любую программу сопровождать комментариями, поясняющими назначение всей

РЕКОМЕНДАЦИИ ПО СТИЛЮ ПРОГРАММИРОВАНИЯ 3. Рекомендуется любую программу сопровождать комментариями, поясняющими назначение
программы и отдельных ее блоков и функций.
4. Имена для объектов программы надо выбирать так, чтобы они наилучшим образом соответствовали этим объектам, отражали их назначение.
5. Списки идентификаторов в блоках описания следует упорядочивать: это облегчает поиск в них нужных элементов.
6. Программирование ведется сверху вниз. В процессе разработки алгоритма и программы следует начинать с самой общей модели решения, постепенно уточняя ее до уровня отдельного блока, а затем детально прорабатывая отдельный блок.

Слайд 57

ТРАНСЛЯТОРЫ. СИНТАКСИС И СЕМАНТИКА

Особое значение для программиста имеет предупреждение и исправление ошибок

ТРАНСЛЯТОРЫ. СИНТАКСИС И СЕМАНТИКА Особое значение для программиста имеет предупреждение и исправление
в алгоритме и программе решения задачи. Прежде чем выполнит программу, ее текст необходимо ввести в компьютер. Для ввода и изменения (редактирования) текстов используется специальная программа - текстовый редактор.
Так как текст записан на языке программы и непонятен компьютеру, то требуется перевести ее на машинный язык. Такой перевод программы с языка программирования на язык машинных кодов называется трансляцией и выполняется специальной программой-транслятором.

Слайд 58

ТРАНСЛЯТОРЫ. СИНТАКСИС И СЕМАНТИКА

Существует три вида трансляторов: компиляторы, ассемблеры, интерпретаторы.
Интерпретатором называется транслятор,

ТРАНСЛЯТОРЫ. СИНТАКСИС И СЕМАНТИКА Существует три вида трансляторов: компиляторы, ассемблеры, интерпретаторы. Интерпретатором
производящий пооператорную (покомандную) обработку и выполнение исходной программы.
Компиляторы преобразуют (транслируют) всю программу в модуль на машинном языке, после чего программа записывается в память компьютера и лишь потом исполняется. Компиляторы анализируют программу и определяют, содержит ли она ошибки. В случае их обнаружения вся работа останавливается. Если же правила языка не нарушены, то формируется модуль на машинном языке, который затем и исполняется.
Ассемблеры переводят программу, записанную на языке ассемблера, (автокоды) в программу на машинном языке.

Слайд 59

ТРАНСЛЯТОРЫ. СИНТАКСИС И СЕМАНТИКА

Любой транслятор решает следующие основные задачи:
1) анализирует транслируемую программу,

ТРАНСЛЯТОРЫ. СИНТАКСИС И СЕМАНТИКА Любой транслятор решает следующие основные задачи: 1) анализирует
в частности, определяет, содержит ли она синтаксические ошибки;
2) генерирует выходную программу (ее часто называют объектной или рабочей) на языке команд ЭВМ (в некоторых случаях транслятор генерирует выходную программу на промежуточном языке, например, на языке ассемблера);
3) распределяет память для выходной программы (в простейшем случае это заключается в назначении каждому фрагменту программы, всем переменным, константам, массивам данных и другим объектам своих адресов участков памяти).
В отличия от естественных языков, таких как русский, английский и др., язык программирования имеет очень ограниченное количество слов, понятных компиляторам, и строгие правила записи команд. Совокупность этих требований образует синтаксис языка программирования, а смысл команд других конструкций языка - его семантику.

Слайд 60

ИНСТРУКЦИИ. ОПЕРАТОРЫ

Алгоритм решения любой задачи состоит из отдельных довольно мелких шагов. В

ИНСТРУКЦИИ. ОПЕРАТОРЫ Алгоритм решения любой задачи состоит из отдельных довольно мелких шагов.
программе для каждого шага алгоритма, в том числе для организации ветвлений и циклов, записывается отдельная инструкции (команда). Таким образом, программа состоит из отдельных инструкций или команд. Эти инструкции в программировании принято называть операторами. Часто в литературе по программированию программу определяют, как последовательность операторов.
Операторы могут объединяться в более крупные конструкции - составные операторы, подпрограммы-функции. Такие конструкции состоят из нескольких элементарных операторов, однако в программе могут использоваться как один оператор.
Подпрограммы-функции универсального назначения могут располагаться в особом образом оформленных файлах - библиотечных модулях.

Слайд 61

ПРИМЕР ПРОСТОЙ ПРОГРАММЫ

Сейчас мы напишем простую программу-калькулятор, которая будет принимать от пользователя

ПРИМЕР ПРОСТОЙ ПРОГРАММЫ Сейчас мы напишем простую программу-калькулятор, которая будет принимать от
два целых числа, а затем определять их сумму:
#include
using namespace std;
int main()
{
setlocale(0, "");
/*7*/ int a, b; // объявление двух переменных a и b целого типа данных.
cout << "Введите первое число: ";
/*9*/ cin >> a; // пользователь присваивает переменной a какое-либо
//значение.
cout << "Введите второе число: ";
cin >> b;
/*12*/ int c = a + b; // новой переменной c присваиваем значение суммы
//введенных пользователем данных.
cout <<"Сумма чисел = " < return 0;
}

Слайд 62

ПРИМЕР ПРОСТОЙ ПРОГРАММЫ

Разбор кода
В 7-й строке кода программы мы объявляем переменные «a»

ПРИМЕР ПРОСТОЙ ПРОГРАММЫ Разбор кода В 7-й строке кода программы мы объявляем
и «b» целого типа int. В следующей строке кода выводится сообщение пользователю, чтобы он ввел с клавиатуры первое число.
В 9-й строке стоит конструкция cin >>. С помощью нее у пользователя запрашивается ввод значения переменной «a» с клавиатуры. Аналогичным образом задается значение переменной «b».
В 12-й строке мы производим инициализацию переменной «c» суммой переменных «a» и «b». Далее организуется вывод с помощью cout, который выводит на экран строку и значение переменной «c».
При выводе переменных мы не заключаем их в кавычки, в отличие от строк.

Слайд 63

ПРИМЕР ПРОСТОЙ ПРОГРАММЫ

Задание для самоконтроля.
Попробуйте провести несколько экспериментов с программой — сделайте

ПРИМЕР ПРОСТОЙ ПРОГРАММЫ Задание для самоконтроля. Попробуйте провести несколько экспериментов с программой
аналогичный пример с умножением или вычитанием переменных. Не бойтесь издеваться над программным кодом, потому что ошибки — неотъемлемая часть обучения любому делу. И не забываем про точки с запятой.
Имя файла: Основы-программирования-на-языке-C++.pptx
Количество просмотров: 58
Количество скачиваний: 1