Содержание
- 2. Структура программы Простейшая программы на языке C состоит всего из 12 символов, но заслуживает внимательного рассмотрения.
- 3. #include int main() { printf(“Privet!\n”); return 0; }
- 4. include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { printf("Privet!\n"); return 0; }
- 5. Основные понятия языка Программы на языке C++ может использовать лишь символами, предусмотренными алфавитом этого языка. Буквы
- 6. Основные понятия языка Слова в языке C++ делятся на: Ключевые слова Стандартные идентификаторы Идентификаторы пользователя
- 7. Основные понятия языка Ключевые слова являются частью языка, имеют определенное написание и несут определенный смысл. Например:
- 8. Основные понятия языка Стандартные идентификаторы предназначены для вызова стандартных функций, хранящихся в библиотеках языка. Например: sin(x)
- 9. Основные понятия языка Идентификаторы пользователя служат для обозначения процедур, переменных и констант. Правила: не содержит пробелов
- 10. Переменная – это именованная область памяти, предназначенная для хранения значений, которые могут изменяться в процессе работы
- 11. Константа – это так же именованная область для хранения значений, которые не изменяться в процессе работы
- 12. ВЫРАЖЕНИЯ Выражение задает порядок выполнения действий над элементами данных и состоит из операндов (переменных, констант, вызовов
- 13. Арифметические операции * / + - Операции сравнения , =, !=, == Логические операции ! -отрицание,
- 14. Стандартные функции Имя(параметры)
- 15. abs(x-y)/pow(1+2*x,2)- exp(sqrt(1+м)) Написать выражение на языке С++
- 16. Типа данных Объявить тип переменной означает установить границы значений этой переменной, которые определяются этим типом и
- 18. Целочисленные типы данных
- 19. Целочисленные типы данных char – целочисленный знаковый тип данных размером в 1 байт int – целочисленный
- 20. К каждому из этих типов можно добавить модификатор unsigned, что поднимет верхнюю границу диапазона значений в
- 21. Вещественные типы данных В языке Си есть три типа чисел с плавающей запятой: float – вещественное
- 22. #include "stdafx.h" #include int _tmain(int argc, _TCHAR* argv[]) {float x; double y=3.141592; x=1.0*rand()/10; std::cout return 0;
- 23. ОПЕРАТОРЫ ЯЗЫКА С++ 1) Оператор присваивания Оператор присваивания служит для вычисления выражения и записи результата в
- 24. Странные операторы присваивания В программировании часто используются несколько странные операторы присваивания, например: i = i +
- 25. (инкремент) i++; (постфиксная форма) ++i; (префиксная форма) что равносильно оператору присваивания i = i + 1;
- 26. 2)Комментарии Комментарии используются для документирования текста программы и не выполняют никаких действий. Комментарий может размещаться, как
- 27. Пример линейной программы Составить программу вычисления площади треугольника по формуле: Где - полупериметр; а,b,с - стороны
- 28. #include "stdafx.h" #include int main() { float a, b, c, p, S;// описание переменных printf("Введите исходные
- 29. 3) Составной оператор Если возникла необходимость объединить несколько операторов в одно целое, используется составной оператор: {
- 30. 4) Операторы цикла 1) оператор For Формат: for( i = ml; i { ; } i
- 31. Правила использования оператора for 1)Параметр цикла i, а также его значения ml и m2 могут быть
- 32. Графическая интерпретация оператора цикла for...
- 34. Конец
- 35. 2)Оператор While Оператор цикла с предусловием Формат: While (условие) { Операторы тела цикла } Замечание. Если
- 36. Графическая интерпретация оператора
- 39. 3)Оператор цикла do...while Оператор цикла с постусловием Формат do { } while (логическое выражение);
- 40. Графическая интерпретация оператора
- 42. Вложенные циклы
- 43. int _tmain(int argc, _TCHAR* argv[]) {float х, у, z; // описание переменных printf(“Расчет функции двух переменных\n”);
- 44. 5) Условные операторы На языке С++ различают два вида условных операторов: короткий и полный. Короткий условный
- 45. Работа оператора Сначала вычисляется логическое выражение (ЛВ), и если оно имеет значение TRUE, то выполняется оператор
- 46. Графическая интерпретация оператора
- 47. Пример 1. Вычислить значение переменной у заданной двумя интервальными выражениями:
- 49. int main() { setlocale (0,"Rus"); float x,y; cout cin>>x; if(x>0) y=log(x); if (x printf("Y=%6.2f\n",y); return 0;
- 50. Полный условный оператор Общий вид записи if (логическое выражение) P1; else P2; где Р1, Р2 -
- 51. Графическая интерпретация оператора
- 52. Работа оператора Вычисляется логическое выражение, и если оно имеет значение ИСТИНА(не ноль), то выполняется оператор Р1,
- 53. if (логическое выражение) { оператор 1; ……………… оператор n; } else { оператор 1; ……………… оператор
- 54. Пример 1. Вычислить значение переменной у заданной двумя интервальными выражениями:
- 56. int main() { setlocale (0,"Rus"); float x,y; cout cin>>x; if(x>0) y=log(x); else y=exp(x); printf("Y=%6.2f\n",y); return 0;
- 57. Обработка последовательностей
- 58. Пример 2. В последовательности чисел, вводимой с клавиатуры вычислить количество чисел кратных 7.
- 59. int main() { setlocale (0,"Rus"); int N,x,k,i; cout cin>>N; k=0; cout for(i=1;i { cin>>x; if(x%7==0) k++;
- 60. Обработка последовательностей
- 62. int main() { setlocale (0,"Rus"); char N; int x,k,i; k=0; do { cout cin>>x; if(x%7==0) k++;
- 63. Оператор выбора При большем числе вложений условий рекомендуется использовать оператор выбора switch-case. switch { сase константа
- 64. Константы выбора - возможные значения селектора. default – осуществляет обработку непредусмотренного значения выражения. Наличие этой метки
- 65. МАССИВЫ Массив представляет собой упорядоченное множество однотипных элементов. При обработке массива необходимо: Описать массив Инициализировать массив
- 66. 1) Описание массива При описании массива необходимо указать: - способ объединения элементов в структуру (одномерный, двухмерный
- 67. Доступ к каждому элементу массива осуществляется с помощью индексов. Индексы задают порядковый номер элемента, к которому
- 68. Одномерные массивы float A[5]; Компилятор отводит под массив память размером (sizeof(тип)*размер) байтов. При описании массива можно
- 69. 2) Инициализация массива это задание начальных значений. Инициализировать массив можно: - При описании:int dat[4]={5,8,-2,11}; вводом: (для
- 70. Обработка одномерных массивов При решении задач обработки массивов используют типовые алгоритмы. Просмотр массива осуществляется в цикле.
- 72. int main() { int В[20] ; /* описание массива B*/ int i, L; printf("Введите массив В\n");
- 73. Дано целое число п и массив вещественных чисел: . Вычислить среднее арифметическое и среднее геометрическое чисел
- 75. #include "stdafx.h" #include int main() { float X [100]; //описание массива Х float z; int n;
- 76. for( i=0; i { S = S + X[i]; // вычисление суммы элементов P =P*X[i]; //
- 77. Указатели и массивы Указатель - это переменная, содержащая адрес области памяти. Присваивая указателю то или иное
- 78. Двумя наиболее важными операциями, связанными с указателями, являются операция обращения по адресу * и определение адреса
- 79. Операция определения адреса & возвращает адрес памяти своего операнда. Операндом должна быть переменная. Например: int *x;
- 80. Инициализация указателей Указатели обычно используют при работе с динамической памятью. В С++ используется 2 способа работы
- 81. Существует 4 способа правильного задания начального значения для указателя: Присваивание указателю адреса существующего объекта: int a=5;
- 82. 4) Выделение участка динамической памяти и присваивание ее адреса указателю: c помощью операции new: int *x=new
- 83. Указатели могут обеспечить простой способ ссылок на массив. Имя массива является указателем, ссылающимся на адрес первого
- 84. Используя указатели, можно организовать работу с динамическими массивами. int main( ) { int n; cout cin
- 85. Двухмерные массивы Двухмерные массивы в математике представляются матрицей: или сокращенно можно записать: А = , где
- 86. Описание двухмерного массива Описание матрицы задается структурным типом вида: [m][ n] ; где m – количество
- 87. Например: А[i][j] А[2][3] А[2*n][k+1] При инициализации многомерного массива он представляется как массив из массивов. При этом
- 88. Ввод-вывод двухмерного массива Для поэлементного ввода и вывода матрицы используется двойной цикл for.... int main() {
- 89. Пример организовать вывод матрицы М на экран. for ( i = 0; i { for (
- 90. Обработка матриц Базовыми алгоритмами обработки матриц являются те же алгоритмы, которые используются при обработке одномерных массивов.
- 91. 1 1
- 92. void main() { float A [4][6] ; int i; int j; float P1; float P2; float
- 93. Пример 2: Дана матрица вещественных чисел С = {сij}8х4. Вычислить среднее арифметическое каждого столбца. Результат оформить
- 94. for (j= 0; j { S[j]=0; //начальная установка элемента массива S for(i=0; i S[j]= S[j] +
- 95. При обработке матрицы часто возникает необходимость просмотра не всей матрицы, а ее фрагмента. Эта задача решается
- 96. Работа с треугольными фрагментами: i=0 j=0 i=1 j=0,1 i=2 j=0,2 int M[3][3]; . . . for(i=0;i
- 97. С помощью указателей можно создать динамический многомерный массив. Например: int nstr, nstb; cout cin>> nstr>>nstb; int
- 98. В операторе 1 объявляется переменная типа «указатель на указатель на int» и выделяется память под массив
- 99. Пример 1: Дана целочисленная матрица А = {аij}4х4. Упорядочить главную диагональ матрицы. Решение: Элементы главной диагонали
- 101. //ввод матрицы for(i=1;i { for(j=n-1;j>=i;j--) if(A[j][j] { x=A[j][j]; A[j][j]=A[j-1][j-1]; A[j-1][j-1]=x; } } //вывод матрицы
- 102. Текстовые данные В языке С++ текстовая информация представляется двумя типами данных: с помощью символов и строк
- 103. СТРОКИ Строка представляет собой массив символов, заканчивающийся нуль-символом.(\0) По положению нуль-символа определяется фактическая длина строки. сhar
- 104. При вводе строк обычно используются функции cin и scanf(). char fam[20]; printf ("Введите фамилию студента"); scanf("%s",
- 105. Вывод строк осуществляется с помощью функции printf(), cout и специальной функции puts(). printf(“ %20s”,fam); cout puts(fam);
- 106. Например: Дано предложение. Определите количество слов в нем. int main() { char slova[120]; int i, n,
- 107. Стандартные функции обработки строк Определение длины строки: strlen(str) Сравнение строк: strcmp(str1,str2) – сравнивает строки и возвращает
- 108. Пример. В заданной фамилии определить порядковый номер символа ‘n’. #include "stdafx.h" #include int main() { char
- 109. Пример2. Исходным текстом является предложение, заканчивающееся точкой. Слова в предложении отделяются друг от друга одним пробелом.
- 110. int main() { char slovo[12],x[120]; int i,m=0,n,k=0; gets(x); // ввод строки х for(i=0; i if(x[i]!=' ')
- 111. Структуры данных Очень часто при обработке информации приходится работать с блоками данных, в которых присутствуют разные
- 112. Структура состоит из фиксированного числа элементов, называемых полями. Например, структурой можно считать строку экзаменационной ведомости: Андреева
- 113. Описание типа структуры делается так: struct Имя { ; ; ………… ; }; Например, задание типа
- 114. Тогда при описании переменных можно использовать этот тип: struct student X; Здесь X - переменная типа
- 115. Например, для предыдущей структуры: #define stud struct student stud { char fam[20]; int mathematics, informatics, history;
- 116. В более поздних версиях языка С ключевое слово typedef позволяет создать синоним типа, который удобно использовать
- 117. Для обращения к отдельным полям переменной типа структура используется составное имя: . Например, для переменной X
- 118. Над структурами возможны следующие операции: присваивание значений структурной переменной; ввод и вывод значений переменных структурного типа;
- 119. #include "stdafx.h" #include typedef struct student // описание структуры { char fam[20]; int mathematics, informatics, history;
- 120. Для структурного типа возможно присваивание значений одной структурной переменной другой структурной переменной, при этом обе переменные
- 121. Пример задачи с использованием структурированных данных Рассмотрим пример программы, в которой вводится информация об абонентах сети:
- 122. const int n=5; int i,k,j; int main() { ABON z[n],y[n]; //описание массивов структур ABON х; for
- 123. printf("| Фамилия | Имя | Отчество| Телефон | Возраст |\n”); printf("---------------------------------------------------------------\n"); for (i=0;i printf("|%9s|%8s|%9s|%7ld | %5d
- 124. printf("mologe 25\n"); printf("---------------------------------------------------------\n"); printf("| Фамилия | Имя | Отчество| Телефон | Возраст |\n"); printf("---------------------------------------------------------\n"); for (i=0;i
- 125. ФУНКЦИИ Любая программа на языке высокого уровня может быть разбита на ряд логически завершенных программных единиц
- 126. Ниже схематично приведена структура программы, в которой описана подпрограмма-функция. #include "stdafx.h " Тип имя_функции(тип параметр1, тип
- 127. Функция – это автономная часть программы, реализующая определенный алгоритм и допускающая обращение к ней из различных
- 128. Для возврата значения в теле функции должен быть оператор return. В дальнейшем будем называть такую функцию
- 129. Список формальных параметров обеспечивает передачу исходных данных в функцию. Параметры, указанные в заголовке функции, называются формальными,
- 130. Обращение к типизированной функции не является специальным оператором, а включается в состав выражения. Результат выполнения функции
- 131. При каждом вызове функции происходит замена формальных параметров (int a, int b) на фактические (x,y). Вычисленный
- 132. Это значит, что либо мы текст функции должны поместить до main(), либо перед main() записывается прототип
- 133. Механизм передачи параметров В языке С++ существует два механизма передачи параметров в функции: по значению и
- 135. Массивы, так же как и простые переменные, можно передавать в функции в качестве параметров. Так как
- 136. Перегрузка функций в С++ Цель перегрузки состоит в том, чтобы функция с одним именем по разному
- 137. int max_element ( int n, int a[ ]) // находит максимальный элемент для массива типа int
- 138. double max_element ( int n, double a[ ]) //находит максимальный элемент массива типа double { double
- 139. void main ( ) { int x[]={10, 20, 30, 40, 50, 60}; long y[]={12L, 44L, 22L,
- 140. Если в функцию передаётся двумерный массив, то описание соответствующего аргумента функции должно содержать количество столбцов; количество
- 141. Если при передаче многомерных массивов все размерности неизвестны, то можно передавать адрес первого элемента, а внутри
- 142. int main() {int X[4][4]={1,-2,3,-4, 5,6,7,8,9, 0,12,13,15,21,15,22}; int Y[3][3]={1,2,3,4,5,6,7,8,9}; vivod(4,4,&X[0][0]); printf("\n"); vivod(3,3,&Y[0][0]); return 0; }
- 143. Функции с переменным числом параметров В Си допустимы функции, у которых при компиляции не фиксируется число
- 144. int sum (int k, . . .) { int *p = &k; //настроили указатель на параметр
- 145. Рекурсия В теле функции известны все объекты, описанные во внешнем блоке, т.е. все глобальные переменные и
- 146. Таким образом, внутри любой функции можно вызывать любую доступную функцию, в том числе и саму себя.
- 147. Обязательным элементом всякого рекурсивного процесса является утверждение, определяющее условие завершения рекурсии. Оно называется опорным условием рекурсии.
- 148. Факториал нуля равен 1. Отсюда формула вычисления N-факториала: Реализуем выч-е факториала в виде функции: #include "stdafx.h"
- 149. int main() { printf("факториал 5=%f\n",fact(5)); return 0; } ОЗУ Статическая область СТЕК КУЧА
- 150. float fact(int n) { if (n==0) return 1; еlse return (fact(n-1)*n); } 5 Стек n= 5
- 151. Пример: Вычислить кол-во нулей в массиве А[10] # include “stdafx.h” const int n=10; Int kol(int i,int
- 153. Скачать презентацию