1.Основные элементы языка С++: алфавит языка, идентификаторы, константы. Использование комментариев в тексте программы. Константами наз. перечисления величин в программе. Разделяют 4 типа констант. Идентификатор-последовательность цифр и букв, а так же специальных символов, при условии. При создании программ вы можете поместить в исходном файле замечания, которые объясняют работу программы. Такие замечания (называемые комментариями) не только помогают другим программистам понять вашу программу, но могут напомнить, почему программа содержит определенные операторы, если вы ее посмотрите через несколько месяцев. Когда компилятор C++ встречает двойной слеш, он игнорирует весь оставшийся на этой строке текст. Комментарий справа от оператора присваивания обеспечивает дополнительную информацию всем, кто читает программу. 2. Основные типы данных языка С++. Типы данных определяет -внутреннее представление данных в памяти компьютера; -множество значений, которые можно применять к величинам этого типа. -операции и функции, которые можно применять к величинам этого типа. Тип Размер в байтах (битах) Интервал изменения char 1 (8) от -128 до 127 unsigned char 1 (8) от 0 до 255 signed char 1 (8) от -128 до 127 int 2 (16) от -32768 до 32767 unsigned int 2 (16) от 0 до 65535 signed int 2 (16) от -32768 до 32767 short int 2 (16) от -32768 до 32767 unsigned short int 2 (16) от 0 до 65535 signed short int 2 (16) от -32768 до 32767 long int 4 (32) от -2147483648 до 2147483647 unsigned long int 4 (32) от 0 до 4294967295 signed long int 4 (32) от -2147483648 до 2147483647 float 4 (32) от 3.4Е-38 до 3.4Е+38 double 8 (64) от 1.7Е-308 до 1.7Е+308 long double 10 (80) от 3.4Е-4932 до 3.4Е+4932 3. Структура программы на языке С++. С++ - программа должна состоять из одной или нескольких подпрограмм, но одна из них должна иметь опознавательный знак, определяющий ее как главную, с которой начнется выполнение всей программы в целом и на которой это выполнение завершится в случае благополучного исхода. Таким опознавательным знаком в С++ является фиксированное имя главной подпрограммы (функции) - «main» (в С++ все подпрограммы называются функциями и других типов подпрограмм язык не поддерживает). Обычно с нее и начинают составление программы. Синтаксис определения любой функции в Си++ требует записывать слева направо: тип_возвращаемого_функцией_значения имя_функции(Список типов и имен аргументов) скобки после имени обязательны - именно по ним компилятор распознает функцию. Аргументы разделяются запятыми, если они не нужны, то в скобках пишется void {......} - пара обязательных фигурных скобок обозначает границы тела функции, а самим телом являются операторы определения локальных данных, операции над данными, вызовы вспомогательных функций и пр. Таким образом, ничего не делающая и ничего не возвращающая главная функция в С++ выглядит так: void main(void) {} Возвращаемое главной функцией значение - это значение, возвращаемое всей программой в вызвавшую программу - предок и оно может быть однобайтовым целым числом в диапазоне 0-255 по абсолютному значению. return a; или return(a*b - c); 4. Директивы препроцессора : #include, #define, #undef Прежде чем приступить к компиляции программы, компилятор C++ запускает специальную программу, которая называется препроцессором. Препроцессор ищет в программе строки, начинающиеся с символа #, например #include или #define. Если препроцессор, например, встречает директиву #include, он включает указанный в ней файл в ваш исходный файл, как будто бы вы сами печатали содержимое включаемого файла в вашем исходном коде. Каждая программа, которую вы создали при изучении данной книги, использовала директиву #include, чтобы заставить препроцессор включить содержимое заголовочного файла iostream.h в ваш исходный файл. Если препроцессор встречает директиву #define, он создает именованную константу или макрокоманду. В дальнейшем, если препроцессор встречает имя константы или макрокоманды, он заменяет это имя значением, указанным в директиве #define. 5. Основные операции языка С++: арифметические, логические, отрицания. Примеры. ЛОГИЧЕСКИЕ ОПЕРАЦИИ И (&&) , ИЛИ (||) и НЕ (!) едины для всех языков программирования и соответствуют логическим функциям И, ИЛИ и НЕ для логических (булевых) переменных. Операция И имеет результатом значение "истина" тогда и только тогда, когда оба ее операнда истинны, то есть по отношению к операндам -утверждениям звучит как "одновременно оба". Операция ИЛИ имеет результатом значение "истина", когда хотя бы один из операндов истинен, то есть характеризуется фразой "хотя бы один": if (a < b && b < c) // если ОДНОВРЕМЕННО ОБА a < b и b 0) // если ХОТЯ БЫ ОДИН a==0 или b > 0, то... Логические операции И и ИЛИ имеют еще одно свойство. Если в операции И первый операнд имеет значение "ложь", а в операции ИЛИ -"истина", то вычисление выражения прекращается, потому что значение его уже становится известным ("ложь" -для И , "истина" -для ИЛИ ). Поэтому возможны выражения, где в первом операнде операции И проверяется корректность некоторой переменной, а во втором -она же используется с учетом этой корректности: if (a >=0 && sin(sqrt(a)) >0) ... В данном примере второй операнд, включающий в себя функцию вычисления квадратного корня, не вычисляется, если первый операнд -"ложь". Особо следует отметить операцию логической инверсии (отрицания) -"!" . Значение "истина" она превращает в "ложь" и наоборот. Если считать значением "истина" любое ненулевое значение целой переменной, то эту операцию для целых следует понимать как проверку на 0: while(!k) {...} // эквивалентно while(k==0) {...} ВЫВОД: Логические операции отношения задаются следующими символами (см. табл. 2): && ("И"), || ("ИЛИ"), ! ("НЕ"), >, >=, <, <= , = = (равно), != (не равно). Традиционно эти операции должны давать одно из двух значений: истину или ложь. В языке Си принято следующее правило: истина - это любое ненулевое значение; ложь - это нулевое значение. Выражения, использующие логические операции и операции отношения, возвращают 0 для ложного значения и 1 для истинного. Ниже приводится таблица истинности для логических операций. Основные математические операции С++ Операция Назначение Пример + Сложение total = cost + tax; - Вычитание change = payment - total; *. Умножение tax = cost * tax_rate; / Деление average = total / count; 6. Основные операции языка С++: взятие адреса и разадресации, определения размера, сдвига. Примеры. << Сдвиг влево >> Сдвиг вправо & Взятие адреса * Обращение по адресу sizeof( ) Определение размера в байтах char 1 (8) от -128 до 127 unsigned char 1 (8) от 0 до 255 signed char 1 (8) от -128 до 127 int 2 (16) от -32768 до 32767 7. Основные операции языка С++: поразрядные операции, условная операция, преобразование типов. Пример. 1. Преобразование типов. Если в выражении появляются операнды различных типов, то они преобразуются к некоторому общему типу, при этом к каждому арифметическому операнду применяется такая последовательность правил: 1. Если один из операндов в выражении имеет тип long double, то остальные тоже преобразуются к типу long double. 2. В противном случае, если один из операндов в выражении имеет тип double, то остальные тоже преобразуются к типу double. 7. В противном случае все операнды преобразуются к типу int. При этом тип char преобразуется в int со знаком; тип unsigned char в int, у которого старший байт всегда нулевой; тип signed char в int, у которого в знаковый разряд передается знак из сhar; тип short в int (знаковый или беззнаковый). Предположим, что вычислено значение некоторого выражения в правой части оператора присваивания. В левой части оператора присваивания записана некоторая переменная, причем ее тип отличается от типа результата в правой части. ?: Условная (тернарная) операция & Поразрядное логическое "И" ^ Поразрядное исключающее "ИЛИ" | Поразрядное логическое "ИЛИ" 8. Основные операции языка С++: операторы инкремента и декремента, простое и составное присваивание. Примеры. -обычное присваивание (=); -присваивание, соединенное с одной их бинарных операций (+=, -=, *=, /=, %=, <<=, >>=, &=, |=, ^=); -операции инкремента и декремента (увеличения и уменьшения на 1). Операция присваивания "=" сохраняет значение выражения, стоящего в левой части, в переменной, а точнее, в адресном выражении, стоящем а правой части. При выполнении операции присваивания тип выражения в правой части преобразуется к типу адресного выражения в левой. Результатом операции является значение левой части после присваивания, соответственно, тип результата -это тип левой части. Обычное присваивание: long a; char b; int c; a = b = c; // эквивалентно b = c; a = b; В данном случае при первом (правом) присваивании тип int преобразуется к char, а результатом операции является значение переменной b типа char после выполнения этого присваивания. Операция присваивания, соединенная с одной из бинарных операций, -это частный случай, когда результат бинарной операции сохраняется (присваивается) в первом операнде: a +=b; // эквивалентно a = a + b; Приведенный выше эквивалент этой операции верен лишь в первом приближении, потому что в этих операциях левый операнд, если он является адресным выражением, вычисляется один, а не два раза. Следующий пример показывает это: A[i++] +=b; // эквивалентно A[i] = A[i] + b; i++; Операции инкремента и декремента увеличивают или уменьшают значение единственного операнда до или после использования его значения в выражении: int a; // Эквивалент Интерпретация a++; // Rez=a; a=a+1; Увеличить на 1 после использования ++a; // a=a+1; Rez=a; Увеличить на 1 до использования a--; // Rez=a; a=a-1; Уменьшить на 1 после использования --a; // a=a-1; Rez=a; Уменьшить на 1 до использования 9. Условные операторы языка С++. Примеры. Условный оператор позволяет выполнить один из входящих в его состав операторов в зависимости от выполнения какого-либо условия. Оператор IF определяет, что тот или иной оператор должен выполняться в том случае, если справедливо заданное условие, т.е. выражение принимает значение true (истина). Если условие не выполняется, то выполняется оператор, следующий за служебным словом else (иначе). Существует полная и краткая форма оператора. Полная форма условного оператора IF имеет следующий вид: if ( условие ) { Оператор 1; ... Оператор N; } еlse { Оператор N+1; ... Оператор N+M; } ; где IF – в переводе с англ. «если», - некоторое логическое выражение, ELSE – «иначе». Если условие истинно, то выполняются операторы с 1 по N. Если условие ложно, то выполняются операторы с N+1 до N+M. 10. Операторы цикла языка С++. Примеры. Оператор цикла while называется циклом с предусловием и имеет следующий формат: while ( выражение ) оператор; Схема выполнения оператора while следующая: 1. Вычисляется выражение. 2. Если выражение равно нулю, то выполнение оператора while заканчивается и выполняется следующий по порядку оператор. Если выражение не равно нулю, то выполняется оператор в цикле while. 3. Процесс повторяется с пункта 1. В операторе while проверка условия происходит вначале, перед выполнением операторов, образующих тело цикла. Оператор while удобно использовать в ситуациях, когда цикл не всегда должен выполняться. При построении цикла while необходимо включить в тело цикла какие-либо конструкции, изменяющие величину проверяемого выражения так, чтобы в конце концов оно стало равным нулю. В противном случае цикл будет бесконечным. Пример int i , s ; i=2; while(i < 5) { printf ( "Добрый день!");} /* цикл будет выполняться бесконечно*/ int i , s ; i=2; while(i < 5) { printf( " Добрый день !"); i = i +1; } /* цикл будет выполнен 3 раза*/ Оператор с постусловием do…while Оператор цикла do while называется оператором цикла с постусловием и используется в тех случаях, когда необходимо выполнить операторы, образующие тело цикла, хотя бы один раз. Формат оператора имеет следующий вид: do оператор while ( выражение ); Схема выполнения оператора do while: 1. Выполняется тело цикла (которое может быть составным оператором). 2. Вычисляется выражение. 3. Если выражение равно нулю, то выполнение оператора do while заканчивается и выполняется следующий оператор по порядку за оператором цикла. Если выражение не равно нулю, то выполнение оператора цикла do while продолжается с пункта 1. Чтобы прервать выполнение цикла до того, как условие станет ложным, можно использовать оператор break. Операторы while и do while могут быть вложенными. Пример int i , j , k , s ; j=0; k=0; s=0; do { i=0; while ( i < 5) { k++; i++; } s=s+k+i-j; j--; } while ( j < -10); Цикл for Оператор цикла for - это наиболее общий способ организации цикла. Он имеет следующий формат: for ( выражение_1 ; выражение_2 ; выражение_3 ) оператор; Выражение 1 - выражение инициализации. Выражение 2 - это выражение, определяющее условие, при котором тело цикла будет выполняться. Выражение 3 - выражение итерации, определяет изменение переменных, управляющих циклом после каждого выполнения тела цикла. Схема выполнения оператора for: 1. Вычисляется выражение 1. 2. Вычисляется выражение 2. 3. Если значение выражения 2 отлично от нуля, выполняется тело цикла, вычисляется выражение 3 и осуществляется переход к пункту 2. Если значение выражения 2 равно нулю, то управление передается на оператор, следующий за оператором for. Важно отметить, что проверка условия выполняется в начале цикла. Это значит, что тело цикла может ни разу не выполниться, если выражение 2 при входе в цикл будет равно нулю. Пример void main() { int i, b; for ( i=1; i<10; i++ ) { b=i*i; printf ( "\ n %2 d в квадрате = %3 d ", i b ); }} Оператор continue Оператор continue используется только внутри операторов цикла. Данный оператор передает управление на оператор продолжения цикла, при этом все операторы, следующие за continue, пропускаются. Формат оператора следующий: continue ; Пример void main() { int a, s; for ( a =1; a = 21) { cout << "Все на выборы!" << endl; cout << "Это то, что вам надо!" << endl; } Управление цифрами значений с плавающей точкой Если вы используете cout для вывода значения с плавающей точкой, то обычно не можете сделать каких-либо предположений о том, сколько цифр будет выводить cout no умолчанию. Однако, используя манипулятор setprecision, вы можете указать количество требуемых цифр- Следующая программа использует манипулятор setprecision для управления количеством цифр, которые появятся справа от десятичной точки: #include #include void main(void) { float value = 1.23456; int i; for (i = 1; i < 6; i++) cout << setprecision(i) << value << endl; } 1.2 1.23 1.235 1.2346 1.23456 Если вы используете манипулятор setprecision для изменения точности, ваша установка действует до тех пор, пока программа повторно не использует setprecision. Точно так же, как cout предоставляет функцию cout.put для вывода символа, cin предоставляет функцию cin.get, которая позволяет вам читать один символ данных. Чтобы воспользоваться функцией cin.get, вы просто присваиваете переменной возвращаемый этой функцией символ, как показано ниже: letter = cin.get(); Как вы уже знаете, при использовании cin для выполнения ввода с клавиатуры, cin использует пустые символы, такие как пробел, табуляция или возврат каретки, для определения, где заканчивается одно значение и начинается другое. Во многих случаях вы захотите, чтобы ваши программы считывали целую строку данных в символьную строку. Для этого программы могут использовать функцию cin.getline. Для использования cin.getline вам необходимо указать символьную строку, в которую будут помещаться символы, а также размер строки, как показано ниже: cin.getline(string, 64); Когда cin.get читает символы с клавиатуры, она не будет читать символов больше, чем может вместить строка. Удобным способом определить размер массива является использование оператора C++ sizeof, как показано ниже: сin.getline(string, sizeof(string)); Если позже вы измените размер массива, то вам не нужно будет искать и изменять каждый оператор с cin.get, встречающийся в вашей программе. Вместо этого оператор sizeof ' будет использовать корректный размер массива. Чтение ввода с клавиатуры с помощью cin Для чтения ввода с клавиатуры программы могут использовать входной поток cin. При использовании cin вы должны указать переменную, в которую cin помещает данные. Затем используйте оператор извлечения (>>) для направления данных, как показано ниже: cin >> some_variable; Вы уже знаете, что программы на C++ используют выходной поток cout для вывода сообщений на экран. При использовании cout для вывода сообщений представляйте cout в виде потока символов, которые операционная система отображает на экране. Другими словами, порядок, в котором ваша программа посылает символы в cout, определяет порядок символов, которые будут появляться на экране. Например, для следующих операторов программы: cout << "Это сообщение появляется первым,"; cout << " а за ним следует настоящее сообщение."; Операционная система выводит поток символов следующим образом: Это сообщение появляется первым, а за ним следует настоящее сообщение. Оператор вставки (<<) называется так, потому что позволяет вашей программе вставлять символы в выходной поток. 13. Организация форматированного ввода-вывода в языке С++. 14. Общее понятие одномерных массивов данных. Описание одномерных массивов на языке С++. Массив представляет собой последовательность элементов одного типа. Каждому элементу массива соответствует индекс - целое неотрицательное число, определяющее его номер в последовательности. Первому элементу массива соответствует индекс 0. Массивы, элементы которых однозначно определяются одним индексом, называются одномерными . В виде одномерного массива можно представить, например, список фамилий студентов одной группы, где каждый студент однозначно определяется своим порядковым номером в списке. Определение одномерного массива имеет вид: [];. В C++ можно определить массив любого типа. int mas[3]; - описан массив из 3 целых чисел. Нумерация в массивах начинается с 0-го элемента. Поэтому массив mas содежит: mas[0], mas[1], mas[2]. 15. Типовые алгоритмы обработки одномерных массивов данных на языке С++. Нахождение суммы элементов массива Для нахождения суммы элементов массива используется следующий алгоритм. Сначала предполагается, что значение искомой суммы равно нулю. Далее на каждом шаге цикла проводится накопление данной суммы путем добавления к уже имеющемуся значению суммы значения очередного элемента массива. Если суммирование проводится не по всем элементам массива, то в программу добавляется условный оператор проверки выполнения наложенного на элементы массива условия. Поиск данных в массивах Поиск информации, удовлетворяющей определенным условиям, является одной из наиболее распространенных задач обработки массивов. В частности, к данному классу задач можно отнести поиск наибольших и наименьших элементов массива, поиск элементов, удовлетворяющих разнообразным операциям отношений (больших заданного числа, равных ему и т.д.) и другие. 16. Методы сортировки массивов. Сортировкой массива называют упорядочение его элементов в соответствии с определенными правилами (как правило, по возрастанию или убыванию элементов). Алгоритм линейной сортировки массивов по возрастанию заключается в следующем. Сначала первый элемент массива сравнивается по очереди со всеми оставшимися элементами. Если очередной элемент массива меньше по величине, чем первый, то эти элементы переставляются местами. Сравнение продолжается далее уже для обновленного первого элемента, в результате чего будет найден и установлен на первое место самый наименьший элемент массива. Далее продолжается аналогичный процесс уже для оставшихся элементов массива, т.е. второй элемент сравнивается со всеми остальными и, при необходимости, переставляется с ними местами. Алгоритм завершается, когда сравниваются и упорядочиваются предпоследний и последний из оставшихся элементов массива. Особенностью сортировки методом «пузырька» является не сравнение каждого элемента со всеми, а сравнение в парах соседних элементов. Данный алгоритм состоит в последовательных просмотрах от начала к концу элементов массива. Если для пары соседних элементов выполняется условие, что элемент справа больше элемента слева, то производится обмен значениями этих элементов, т.е. в процессе выполнения алгоритма постепенно «всплывают» более «легкие» элементы массива. Метод Шелла- многопроходная сортировка, список разбивается на подсписок. Метод корневой сортировки- разбивается на стопки и при каждом проходе используется отдельная часть ключа. 17. Общее понятие многомерных массивов данных. Описание матриц на языке С++. Многомерные массивы - это массивы с более чем одним индексом. Многомерный массив представляет собой массив массивов, то есть массив, элементами которого служат массивы. Определение многомерного массива в общем случае должно содержать сведения о типе, размерности и количествах элементов каждой размерности. Чаще всего используются двумерные массивы. При описании многомерного массива необходимо указать C++, что массив имеет более чем одно измерение. int t[3][4]; - описывается двумерный массив, из 3 строк и 4 столбцов. Элементы массива: t[0][0] t[0][1] t[0][2] t[0][3]t[1][0] t[1][1] t[1][2] t[1][3]t[2][0] t[2][1] t[2][2] t[2][3] При выполнении этой команды под массив резервируется место. Элементы массива располагаются в памяти один за другим: Если число строк двумерного массива равняется числу столбцов, то матрицы данного типа называются квадратными . Элементы квадратной матрицы вида B[1,1], B[2,2], B[3,3]… составляют главную диагональ . int temp [3] [15] [10]; - резервируется место под 3-х мерный массив. В памяти многомерные массивы представляются как одномерный массив, каждый из элементов которого, в свою очередь, представляет собой массив. Рассмотрим на примере двумерного массива: int a[3][2]={4, l, 5,7,2, 9} как он представляется в памяти: a[0][0] заносится значение 4 a[0][1] заносится значение 1 a[1][0] заносится значение 5 a[1][1] заносится значение 7 a[2][0] заносится значение 2 a[2][1] заносится значение 9 Второй способ инициализации при описании массива int а[3][2]={ {4,1}, {5, 7}, {2, 9} }; Обращение к элементу массива производится через индексы. cout << а[0][0]; - выдаст значение 4. cout << a[1][1]; - выдаст знaчение 7. 18.Указатели. Способы инициализации указателя. Операторы выделения и освобождения памяти. Операции с указателями. В языке C++ для создания и обработки массивов обычно используют указатели. Указатель - это переменная, содержащая адрес другой переменной или, говоря другими словами, указатель - символическое представление адреса. В С++ указатели могут быть на любой тип данных. Значением объекта типа указатель является целое неотрицательное число, равное адресу того программного объекта (переменной, функции, массива и т.д.), на который ссылается указатель. Если необходимо, можно описать массив указателей: int *ip[ 10 ]; - массив указателей на целые значения из 10 элементов. Напомним, что в данном контексте символ "*" является символом унарной операции косвенной адресации. Унарная операция * рассматривает свой операнд как адрес объекта и обращается по этому адресу, чтобы извлечь его содержимое. С указателем можно производить некоторые арифметические операции. Например, пусть sub содержит номер элемента массива, тогда до этого элемента можно "добраться" следующим образом: mas [ sub ] или *(mas +sub) Таким образом имя массива фактически является указателем на нулевой элемент массива. Переменная sub указывает на сколько элементов необходимо сместиться. Вы можете инкрементировать и декрементировать указатель. При этом вы смещаетесь на один элемент, независимо от типа элемента. Допустим uk - адрес нулевого элемента массива, тогда cout<<*uk; // вывод значения 0-го элемента uk++; cout<<*uk; // вывод значения 1-го элемента, реально смещение на несколько байтов uk+=2 cout<<*uk; // вывод значения 3-го элемента. 19.Ссылки. Указатели и ссылки. Чтобы упростить процесс изменения параметров, С++ вводит такое понятие как ссылка. Ссылка представляет собой псевдоним (или второе имя), который ваши программы могут использовать для обращения к переменной.Ссылка C++ позволяет создать псевдоним (или второе имя) для переменных в вашей программе. Для объявления ссылки внутри программы : int & alias_name = variable; //---> Объявление ссылки После объявления ссылки ваша программа может использовать или переменную, или ссылку: alias_name = 1001; variable = 1001; Основное назначение ссылки заключается в упрощении процесса изменения параметров внутри функции. ПРАВИЛА РАБОТЫ СО ССЫЛКАМИ Ссылка не является переменной. Один раз присвоив значение ссылке, вы уже не можете ее изменить. Кроме того в отличие от указателей вы не можете выполнить следующие операции над ссылками: • Вы не можете получить адрес ссылки, используя оператор адреса C++. • Вы не можете присвоить ссылке указатель. • Вы не можете сравнить значения ссылок, используя операторы сравнения C++. • Вы не можете выполнить арифметические операции над ссылкой, например добавить смещение. •Вы не можете изменить ссылку. 20. Связь указателей и массивов в языке С++. Доступ к элементам массива через указатели. Массивы указателей. В языке C++ для создания и обработки массивов обычно используют указатели. int *ip[ 10 ]; - массив указателей на целые значения из 10 элементов. Напомним, что в данном контексте символ "*" является символом унарной операции косвенной адресации. Унарная операция * рассматривает свой операнд как адрес объекта и обращается по этому адресу, чтобы извлечь его содержимое. Приведем пример описания массива: int (*a)[15]; Описан указатель на массив, содержащий 15 целых значений. Круглые скобки здесь необходимы, поскольку скобки [] имеют более высокий уровень старшинства, чем операция *. С указателем можно производить некоторые арифметические операции. Например, пусть sub содержит номер элемента массива, тогда до этого элемента можно "добраться" следующим образом: mas [ sub ] или *(mas +sub) Таким образом имя массива фактически является указателем на нулевой элемент массива. Переменная sub указывает на сколько элементов необходимо сместиться. Вы можете инкрементировать и декрементировать указатель. При этом вы смещаетесь на один элемент, независимо от типа элемента. Допустим uk - адрес нулевого элемента массива, тогда cout<<*uk; // вывод значения 0-го элемента uk++; cout<<*uk; // вывод значения 1-го элемента, реально смещение на несколько байтов uk+=2 cout<<*uk; // вывод значения 3-го элемента. 21. Типовые алгоритмы обработки двумерных массивов данных на языке С++. Нахождение суммы элементов массива Для нахождения суммы элементов массива используется следующий алгоритм. Сначала предполагается, что значение искомой суммы равно нулю. Далее на каждом шаге цикла проводится накопление данной суммы путем добавления к уже имеющемуся значению суммы значения очередного элемента массива. Если суммирование проводится не по всем элементам массива, то в программу добавляется условный оператор проверки выполнения наложенного на элементы массива условия. Поиск данных в массивах Поиск информации, удовлетворяющей определенным условиям, является одной из наиболее распространенных задач обработки массивов. В частности, к данному классу задач можно отнести поиск наибольших и наименьших элементов массива, поиск элементов, удовлетворяющих разнообразным операциям отношений (больших заданного числа, равных ему и т.д.) и другие. 22. Общее понятие о подпрограммах. Описание функций на языке С++. Функция - это совокупность объявлений и операторов, обычно предназначенная для решения определенной задачи. Каждая функция должна иметь имя, которое используется для ее объявления, определения и вызова. В любой программе на С++ должна быть функция с именем main (главная функция), именно с этой функции, в каком бы месте программы она не находилась, начинается выполнение программы. При вызове функции ей при помощи аргументов (формальных параметров ) могут быть переданы некоторые значения (фактические параметры ), используемые во время выполнения функции. Функция может возвращать некоторое (одно!) значение. Это возвращаемое значение и есть результат выполнения функции, который при выполнении программы подставляется в точку вызова функции, где бы этот вызов ни встретился. Допускается также использовать функции, не имеющие аргументов, и функции, не возвращающие никаких значений. Действие таких функций может состоять, например, в изменении значений некоторых переменных, выводе на печать некоторых текстов и т.п. В программах на языке С++ широко используются, так называемые, библиотечные функции, т.е. функции предварительно разработанные и записанные в библиотеки. Прототипы библиотечных функций находятся в специальных заголовочных файлах, поставляемых вместе с библиотеками в составе систем программирования, и включаются в программу с помощью директивы #include. С использованием функций в языке С++ связаны три понятия - определение функции (описание действий, выполняемых функцией), объявление функции (задание формы обращения к функции) и вызов функции .
Рефераты по информатике1.Основные элементы языка С++: алфавит языка, идентификаторы, константы. Использование комментариев в тексте программы. Константами наз. перечисления
Оценок: 527 (Средняя 5 из 5)
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.