Прикладное программирование кафедра прикладной и компьютерной оптики Введение.

Презентация:



Advertisements
Похожие презентации
Переменные и операторы УРОК 2. Переменные ПЕРЕМЕННАЯ – ?... контейнер для хранения данных. Переменная имеет имя – это….? последовательность букв, цифр.
Advertisements

Практическое занятие 6. Функции. Большинство языков программирования используют понятия функции и процедуры. C++ формально не поддерживает понятие процедуры,
Лекция 8. Структура языка С/С++. Циклы с предусловием и постусловием. Реализация циклов с помощью операторов ветвления и передачи управления. Операторы.
Глава 6. УПРАВЛЯЮЩИЕ СТРУКТУРЫ Оператор присваивания Простой и составной операторы Условный оператор Оператор множественного выбора Оператор цикла с предусловием.
Министерство образования Республики Беларусь Белорусский государственный университет Управляющие структуры языков программирования.
b5_java_s4
ЦИКЛИЧЕСКИЙ АЛГОРИТМ Цели: -Познакомиться с понятием циклического алгоритма. -Освоить языковые средства для реализации циклических алгоритмов.
©ρŧą Базовые конструкции языка.
Идентификаторами в языке Си являются последовательности букв и цифр, начинающиеся с буквы, причем символ подчеркивания рассматривается компилятором как.
Операторы языка с++. Операторы в языке C++ предназначены для описания действий. Любой оператор может быть помечен меткой. Операторы отделяются друг от.
Инструкции C++ Условная инструкция Формат: if (условие) оператор; else оператор; Пример: if (i!=0) { if (j) j++; if(k) k++; else if(p) k--; } else i--;
1 Программирование на языке Паскаль Циклы. 2 Цикл – это многократное выполнение одинаковой последовательности действий. цикл с известным числом шагов.
Язык программирования Delphi. Алфавит языка 53 буквы латинского алфавита и символ подчеркивания Цифры от 0 до 9 23 спец.символа
Введение в C++ Урок 3-4. ОПЕРАТОРЫ ЦИКЛА Операторы цикла используются для организации многократно повторяющихся вычислений. - цикл с предусловием while,
Язык программирования Pascal. Программа это упорядоченный список команд, необходимых для решения некоторой задачи. Языком программирования называют систему.
Программирование на Pascal. Темы Повторение. Составные логические условия Повторение. Составные логические условия Повторение. Составные логические условия.
Занятие 2. Конструкции принятия решений. Конструкции принятия решений позволяют приложениям проверять условия и выбирать направление действий. Другим.
1 Глава 2 Введение в программирование на С Введение 2.2 Простая программа на C Program: Печатаем строку текста 2.3 Другая простая программа на C:
Объектно-ориентированный язык программирования. Переменная - эта поименованная ячейка памяти, хранящая какое-либо одно значение (одно число, один фрагмент.
1 Программирование на языке Паскаль Тема 1. Введение.
Транксрипт:

Прикладное программирование кафедра прикладной и компьютерной оптики Введение

2 Список литературы Дейтел, Дейтел. Как программировать на C++: Пятое издание. М.: Издательство «Бином-Пресс», с. Страуструп Б. Язык программирования С++ / Б. Страуструп. – СПб.: "Невский диалект", М.: Бином, – 1104 с. Мейерс С. Эффективное использование C рекомендаций по улучшению ваших программ и проектов - М.: ДМК Пресс, с. Мейерс С. Наиболее эффективное использование C новых рекомендаций по улучшению ваших программ и проектов - М.: ДМК Пресс, с. Мейерс С. Эффективное использование STL. Библиотека программиста. - Спб.: Питер, с. книги на диске example электронный учебник на сайте кафедры см. Раздаточные материалы

Прикладное программирование кафедра прикладной и компьютерной оптики Основы языка С++

4 Пример программы, выводящей текст на экран (пример 1) ///////////////////////////////////////////////////////////////////////////// // подключение библиотеки ввода-вывода #include // подключение стандартного пространства имен для использования библиотек using namespace std; ///////////////////////////////////////////////////////////////////////////// // исполнение программы всегда начинается с функции main void main() { // вывод текста на экран cout

5 Пример программы, выводящей текст на экран (пример 1) Директивы препроцессору Подробное описание других функций стандартной библиотеки приводится в главе 2.главе 2 Ввод и вывод на экран Подробное описание стандартной библиотеки ввода-вывода приводится в разделе 2.2.разделе 2.2 Комментарии /* многострочный комментарий */ с++; // однострочный комментарий до конца строки Функции Подробно работа с функциями рассматривается в разделе 1.9.разделе 1.9 Полный список ключевых слов языка C++ приведен в приложении 3.приложении 3

6 Пример программы cложения целых чисел (пример 2) ///////////////////////////////////////////////////////////////////////////// // подключение библиотеки ввода-вывода #include // подключение стандартного пространства имен для использования библиотек using namespace std; ///////////////////////////////////////////////////////////////////////////// // функция main начинает исполнение программы void main() { // объявления переменных int number1, number2; int sum=0; coutnumber1; // прочитать первое число в numberl coutnumber2; // прочитать второе число в number2 sum = number1 + number2; // сложить числа; записать сумму в sum cout

7 Переменные и их объявление Переменная – это место в памяти компьютера, где может сохраняться некоторое значение для использования его в программе. полный список основных типов данных приведен в приложении 2приложении 2 Идентификатор – это последовательность символов, состоящая из латинских букв, цифр и символов подчеркивания ( _ ), обозначающая имена переменных i // обычно целая переменная цикла count // количество COUNT // другая переменная buff_size // составное (из 2 слов) имя с символом _ g374 // непонятно _foo // плохо if // не может быть идентификатором, т.к. это ключевое слово 374q // не может начинаться с цифры

8 Объявление и инициализация переменных Объявление переменной - определение ее типа Инициализация переменной - присваивание ей первоначального значения int i; // объявление и определение типа (declaration) i=1; // инициализация (initialization) int j=1; // объявление, определение и инициализация int i=0,j; // объявление нескольких переменных // В операторах вывода можно производить вычисления cout

9 Арифметические операторы Примеры арифметических операций (пример 3) Арифметические операторы бинарные - в выражении участвуют два операнда, например x=a+b унарные - в выражении участвует один операнд, например x=-a Круглые скобки используются для группировки выражений таким же образом, как в алгебраических выражениях а*(b+с) Полный список арифметических операций и таблица их старшинства приведена в приложении 1.приложении 1

10 Условные конструкции if(условие) { блок операторов; } if(условие) { блок операторов 1; } else { блок операторов 2; }

11 Пример условных конструкций ///////////////////////////////////////////////////////////////////////////// // функция main начинает исполнение программы void main() { // объявление переменных int x,y; coutx>>y; // прочитать два введенных числа if(x == y) // число x равно числу y ? cout

12 Логические выражения Логическое выражение может принимать два значения: true (истинно) false (ложно) Пример попадания точки с координатами x, y в прямоугольник (пример 5): x y

13 Логические операции И, ИЛИ, НЕ Математическая запись условия, что координата х лежит внутри прямоугольника: -1 < x < 1 Запись на С++: x -2 или (x -2) x НЕ внутри прямоугольника (x >2) || (x

14 Типичные ошибки в написании условий /////////////////////////////////////////////// if(x=1) // неправильно! выполняется всегда! { y=x+3; z=y*5; } /////////////////////////////////////////////// if(x==1); // неправильно! выполняется всегда! { y=x+3; z=y*5; } /////////////////////////////////////////////// if(x==1) // неправильно! y=x+3; z=y*5; if(x==1) { [пустой оператор]; } y=x+3; z=y*5; if(x==1) { y=x+3; z=y*5; } if(x==1) { y=x+3; } z=y*5;

15 Вложенные условия Пример вложенного условия if ( х > 5 ) { if ( У > 5 ) cout 5"; } else cout 5 ) cout 5"; else cout 5 ) cout 5"; else cout

16 Арифметический логический оператор переменная = условие ? значение1 : значение2; Пример: int i=3; int j=(i>0) ? 1 : -1; // j=1 То же, что: if(i>0) { j=1; } else { j=-1; }

17 Селективные конструкции ( if ) if(условие) { блок операторов; } else if(условие) { блок операторов; } else { блок операторов; }

18 Селективные конструкции ( switch ) switch(переменная) { case целая константа 1: { блок операторов; break; } case целая константа 2: { блок операторов; break; } default: { блок операторов; }

19 Примеры

20 Примеры Пример определения оценки в зависимости от количества баллов (пример 6) условия проверяются последовательно если ни одно из условий не выполнено, выполняется блок else если пропустить последний блок else – возможна ситуация когда ни одно из условий не выполнится. Пример меню с выбором действия (пример 7) Каждое действие выполняется в зависимости от значения некоторого целого значения, которое может принимать переменная или выражение, проверяемое в операторе switch

21 Селективные конструкции (пример) switch(menu_number) { case 1: { cout

22 Селективные конструкции (пример 2) switch(menu_number) { case 1: { cout

23 Циклы while и do … while Оператор цикла позволяет программисту определить действие, которое должно повторяться, пока некоторое условие остается истинным Пример возведения в степень в цикле (пример 8) значения product: 4, 8, 16, 32, 64, 128 Если не предусмотреть в теле оператора while действия, которое делает условие в while ложным, получается бесконечный цикл, в котором повторение никогда не заканчивается Перепишем пример 8 с использованием цикла do...while

24 Цикл с постусловием do...while Запишем предыдщПредыдущий пример можно записать с использованием цикла do...while. ///////////////////////////////////////////////////////////////////////////// // функция main начинает исполнение программы void main() { // описание переменных int product = 2; // оператор цикла с предусловием do { product = product * 2; cout

25 Циклические конструкции (пример) // описание переменных int product = 128; // оператор цикла с предусловием while(product

26 Циклические конструкции Цикл с предусловием while(условие) { блок операторов; } Цикл с постусловием do { блок операторов; }while(условие);

27 Пошаговый цикл for Пошаговый цикл for позволяет выполнять блок операторов, заключенный в фигурные скобки задуманное количество раз. Пример работы оператора for - вычисление суммы чисел (пример 9)

28 Пошаговый цикл Инициализация задает начальное значение счетчику цикла, Условие определяет до каких пор цикл продолжает выполняться Приращение модифицирует счетчик цикла for(инициализация; условие; модификация) { блок операторов; } for(int i=0; i

29 Пошаговый цикл Переменная-счетчик должна иметь целочисленный тип данных Если переменная была объявлена в цикле по завершении цикла эта переменная будет уничтожена Область действия переменной определяет, где в программе она может использоваться оператор for можно представить эквивалентным оператором while: while ( условие ) { блок операторов; приращение; }

30 Выражения инициализации и приращения и условия Выражения инициализации и приращения могут быть списками выражений, разделенных запятыми: for(int x = 0, y=0; x < 10; x++, y++) Все три выражения в операторе for являются необязательными, например: цикл for(int i=0; i < 100; i++) можно записать следующим образом: int i=0; for( ; ; ) { //... if(i>=100) break; i++; }

31 Примеры пошагового цикла Еще несколько примеров заголовков цикла: изменение управляющей переменной от 1 до 100 с шагом 1: for(int i = 1; i 0; i--) изменение управляющей переменной от 7 до 77 с шагом 7: for(int i = 7; i = 2; i -= 2) изменение управляющей переменной в следующей последовательности: 2, 5, 8, 11, 14: for(int j = 2; j = 0; j -= 11)

32 Операторы break и continue Когда оператор break исполняется в операторе while, for, do... while или switch, происходит немедленный выход из цикла (или switch) Исполнение оператора continue в операторе while, for или do... while вызывает пропуск оставшейся части тела оператора и переход к следующей итерации цикла Пример вычисление факториала (пример 10)

33 Использование функций библиотеки STL Использование функций библиотеки STL (пример 11) функция pow() возводит число 3.14 в квадрат и присваивает полученный результат переменной power, где pow - имя функции; числа 3.14 и 2 аргументы функции. В качестве аргументов функции может быть число или переменная соответствующего типа. Аргументы перечисляются в скобках после имени функции, если аргументов несколько, то они отделяются друг от друга запятыми.

34 Определение функции Определение (реализация) функции возвращ.тип имя (список аргументов с типами) { инструкции return возвращ.знач.; } например: double plus(double x, double y) { return x+y; } Тип возвращаемого значения может быть целым, вещественным, и т.д., кроме того, функция может не возвращать никакого значения - тип void. void print_value(double res) { cout

35 Объявление функции Объявление функции (прототип функции) возвращ.тип имя (список аргументов с типами); например: double plus(double x, double y); Прототипы обычно помещаются в отдельный заголовочный (header) файл или в начале файла Компилятор сверяется с прототипом функции, для проверки соответствия: количества аргументов типы аргументов тип возвращаемого значения Каждый аргумент должен быть совместим с типом соответствующего параметра. Например, параметр типа double может принимать значения 7.35, 22 или , но не строку (например "hello")

36 Обращение к функции Обращение к функции (вызов функции) имя (список аргументов); например: double a, b, c; a=plus(b, c); Каждому параметру в определении функции (формальный параметр функции) должен соответствовать один аргумент в вызове функции Пример функции (пример 12) функция сложения двух чисел функция печати числа на экран Значение функции plus можно присвоить какой-то переменной, или использовать прямо при вызове другой функции или при использовании оператора cout

37 Автоматическое размещение данных Память зарезервирована в exe-модуле Определение Объявление = инициализация; int i=1; //тип переменная=значение Время жизни глобальное – в течение работы программы с переменной ассоциирована область памяти и обратиться к ней можно из любой точки программы статическое – в течении работы программы с переменной ассоциирована область памяти, но обратиться к ней можно только из определенных точек программы локальное – при каждом входе в блок { } для хранения переменной выделяется область памяти при выходе освобождается и теряет свое значение // b не существует if(a>0) { int b=1; } // b не существует

38 Классы памяти extern - внешний (глобальный) переменная глобальна для всех функций и доступна в любой точке программы static – статический сохраняет предыдущее значение при повторном входе в блок { } auto – автоматический (по умолчанию) при входе в блок { } память распределяется, а при выходе из блока память освобождается, значения теряются Переменные явно не инициализированные программистом extern и static устанавливаются системой в нуль. auto не инициализируется и может содержать "мусор". сonst - переменная инициализируется один раз после объявления и ее значение не модифицируемое const double pi= ; См. пример программы

39 Ссылки Ссылка (referenсe) – это переменная особого вида, которая представляет собой альтернативное имя переменной (псевдоним) ссылку нельзя объявить без инициализации int i=1; int& r=i; // r - новое альтернативное имя переменной i int x=r; // x=1 r=2; // i=2 r++; // чему равно значение переменных r и i ? См. пример программы

40 Указатели int i=1; //тип переменная=значение Указатель (pointer) - это переменная особого вида предназначенная для хранения адреса объекта Диапазон значений: положительные целые числа или null (0) занимает 32 бита (4 байта) Объявление указателя int *p; означает, что переменная p имеет тип int * (т.е. указатель на int) и указывает на объект типа int double *xPtr, *yPtr; адрес ячейки байт памяти x00A x00A x00A x00A x00A

41 Указатели Присваивание указателя int i=1; // объявление целой переменной i int *p; // объявление переменной типа указатель, // т.е. значение по адресу p является целым числом p=&i; // p=0x00A0 (оператор получения адреса) Операция разименования (*) получение значения переменной хранящейся по указанному адресу int i=1; // объявление целой переменной i int *p ; // объявление переменной типа указатель, // т.е. значение по адресу p является целым числом p=&i; // p=0x00A0 (оператор получения адреса) int t=*p+1; // эквивалентно t=i+1; p++; // прибавляем 1 к указателю – переходим к // следующей ячейке памяти с другой переменной * - значение переменной по адресу & - адрес переменной См. пример программы

42 Передача параметров в функцию по ссылке и указателю Передача по значению (call by value) в вызываемой функции создается копия аргумента изменения копии внутри функции не влияют на значение исходной переменной вызывающей функции Передача по указателю (call by pointer) передаются указатели на переменные, в которых хранятся значения в вызывающей функции значения тоже изменяются Передача по ссылке (call by reference) передаются ссылки (псевдонимы) на переменные в вызывающей функции значения тоже изменяются См. пример программы

Прикладное программирование кафедра прикладной и компьютерной оптики Стандартная библиотека С++

44 Состав стандартной библиотеки C++ Ввод/вывод см. электронный учебник, раздел 2.2 Математические функции (комплексные числа, случайные числа) см. электронный учебник, раздел 2.4 Строковый тип данных и форматные преобразования см. электронный учебник, раздел 2.3 Работа со временем и датой Контейнеры, итераторы, обобщенные алгоритмы