Опишите компонент timer . Опишите его назначение и события.



Аргументы функции main () У главного метода программы main() могут быть аргументы: число параметров командной строки и массив с текстовыми значениями этих параметров. Обычно параметры называют argc (размер массива) и argv (символьный двумерный массив), однако это необязательно. Первым и всегда присутствующим параметром является название запускаемой программы (полный путь к файлу). *Массив – это совокупность переменных одного типа, объединённых общим именем.  [] - номер элемента в массиве - индекс. Сама переменная является элементом массива. Значение - это цифра, которая хранится в переменной. Под количеством, должно быть целое неотрицательно число. Имя массива может нач. с лат. буквы, с подчёркивания, но не с цифры. Второй аргумент (char *str[]) – это массив, элементами которого являются текстовые строки, реализованные в виде символьных массивов. Ссылка str[1] означает 1-ую строку, т.е. текстовое значение 1-го параметра командной строки. Переменная i приобретает значение в соответствии с размером массива (от 0 до size-1 включительно). Для каждого значения этого индекса на экран выводится соответствующий параметр командной строки, для чего используется ссылка str[i]. Если же параметры в командную строку передавать не планируется, аргументы для метода main() можно не указывать. №34.Арифметические операторы. Арифметические операторы используются для сложения, вычитания, умножения и деления чисел. Основные: -сложение (+); -вычитание (-); умножение (*); деление (/); остаток от деления (%); инкремент (++); декремент (--). Первые пять операторов – бинарные (т.е. используются с двумя операндами). Операторы инкремента и декремента являются унарными (т.е. используются с одним операндом). Действие операторов состоит в увеличении или уменьшении значения на единицу. Помимо основных арифметических операторов, есть операторы присваивания: -присваивание (=); -сложение с присваиванием (+=); -вычитание с присваиванием (-=); -умножение с присваиванием (*=); -деление с присваиванием (/=); -деление с остатком с присваиванием (%=). №40. Атрибуты переменной. Переменная – именованная область памяти, к которой можно обратиться в процессе выполнения программы. 1. Имя (название переменной) 2. Адрес (где находится переменная) 3. Стандартный тип (double, int, float, bool, char)(задаётся порядок кодирования) 4. Значение   №2.Динамическое выделение памяти. Динамические массивы. Массив - группа переменных одного типа, объединённых общим именем. Если есть несколько переменных с похожим смыслом, лучше всего будет их объединить в массив. tun_имя[количество переменных в данном массиве]; имя[0]=3;  [] - номер элемента в массиве - индекс. Сама переменная является элементом массива. Значение - это цифра, которая хранится в переменной. Под количеством, должно быть целое неотрицательно число. Имя массива может нач. с лат. буквы, с подчёркивания, но не с цифры. Динамический массив от статического отличается в первую очередь тем, что на момент компиляции размер динамического массива неизвестен, в отличии от массивов статических, для которых размер должен быть известен уже при компиляции. Динамические массивы реализуются посредством операторов динамического распределения памяти. В С++ для выделения области памяти используется оператор new, а для освобождения выделенной ранее памяти используют оператор delete. Оператор new выделяет область памяти и возвращает в качестве значения указатель на первую ячейку выделенной памяти. При вызове оператора new сразу после него указывается базовый тип переменной, для которой выделяется память. Например, чтобы выделить память под переменную типа int, надо:   Таким образом, значением переменной – указателя является адрес ячейки, выделенной для записи значения переменной. К этой ячейке можно обращаться через указатель. После, очистка памяти, выделенной под переменную, осуществляется, с помощью оператора delete. Для очистки памяти необходимо вызвать этот оператор с адресом-указателем переменной, область памяти которой освобождается. delete указатель; При выделении памяти можно выполнять сразу и инициализацию. Для этого записываемое в ячейку значение указывается в круглых скобках после типа переменной, для которой выделяется память. С практической точки зрения, основная особенность в работе с динамическими переменными состоит в том, что к этим переменным обращаются через указатель, а не по имени. Почти так же, как для обычных переменных, выделяется память для массивов. Главное отличие в синтаксисе вызова оператора new состоит в том, что после имени базового типа переменной указывается размер массива. При освобождении памяти, выделенной под массив, после оператора delete перед именем указателя на массив указывается оператор []. Таким образом, для выделения памяти под массив используют: Для освобождения памяти, выделенной под массив, используют команду вида: delete [] указатель;     №13.Массивы структур. Как и обычные переменные, структуры могут быть элементами массивов. Массив структур – это массив, каждый элемент которого - структура Массив - группа переменных одного типа, объединённых общим именем. Если есть несколько переменных с похожим смыслом, лучше всего будет их объединить в массив. тип_имя[количество переменных в данном массиве]; имя[0]=3;  [] - номер элемента в массиве - индекс. Сама переменная является элементом массива. Значение - это цифра, которая хранится в переменной. Под количеством, должно быть целое неотрицательно число. Имя массива может нач. с лат. буквы, с подчёркивания, но не с цифры. Структура - это группа переменных разного типа, объеденённых общим именем.           struck_тип{      int_a;      double_b;      char*c;      };      void_main(){      тип_имя;   #include <iostream> #include <math.h> #include <iomanip> // setw(); #include <fstream>   using namespace std;      struct student{      char *name;      int math;      int phys;      int progg;      double sredn;      };      void sredn(student &);//& - ссылка void main(){      setlocale(LC_ALL,"Russian");      //Структура - это группа переменных разного типа, объеденённых общим именем.      /*struck_тип{      int_a;      double_b;      char*c;      };      void_main(){      тип_имя;*/      student nika;      nika.name = new char [20];      strcpy(nika.name, "Ника");      nika.math = 2;      nika.phys = 2;      nika.progg = 1;      nika.sredn = (nika.math + nika.phys + nika.progg) / 3. ;      cout<<nika.name<<" cредний балл: "<< nika.sredn<<endl;      student ashot;      ashot.name = new char [20];      strcpy(ashot.name, "Ашот");      ashot.math = 2;      ashot.phys = 3;      ashot.progg = -2;      sredn(ashot);      cout<<ashot.name<<" средний балл: ";      cout<<ashot.sredn<<endl;      system (“pause”);}      void sredn (student &A){      A.sredn = (A.math + A.phys + A.progg) / 3. ;} }   №20.Оператор new В С++ для выделения области памяти используется оператор new, а для освобождения выделенной ранее памяти используют оператор delete. Оператор new выделяет область памяти и возвращает в качестве значения указатель на первую ячейку выделенной памяти. При вызове оператора new сразу после него указывается базовый тип переменной, для которой выделяется память. Например, чтобы выделить память под переменную типа int, надо:   Таким образом, значением переменной – указателя является адрес ячейки, выделенной для записи значения переменной. К этой ячейке можно обращаться через указатель. После, очистка памяти, выделенной под переменную, осуществляется, с помощью оператора delete. Для очистки памяти необходимо вызвать этот оператор с адресом-указателем переменной, область памяти которой освобождается. delete указатель; При выделении памяти можно выполнять сразу и инициализацию. Для этого записываемое в ячейку значение указывается в круглых скобках после типа переменной, для которой выделяется память. Обычно оператор new является неотъемлемой составляющей в работе с динамическими массивами. Массив - группа переменных одного типа, объединённых общим именем. Если есть несколько переменных с похожим смыслом, лучше всего будет их объединить в массив. tun_имя[количество переменных в данном массиве]; имя[0]=3;  [] - номер элемента в массиве - индекс. Сама переменная является элементом массива. Значение - это цифра, которая хранится в переменной. Под количеством, должно быть целое неотрицательно число. Имя массива может нач. с лат. буквы, с подчёркивания, но не с цифры. Динамический массив от статического отличается в первую очередь тем, что на момент компиляции размер динамического массива неизвестен, в отличии от массивов статических, для которых размер должен быть известен уже при компиляции. Динамические массивы реализуются посредством операторов динамического распределения памяти. Почти так же, как для обычных переменных, выделяется память для массивов. Главное отличие в синтаксисе вызова оператора new состоит в том, что после имени базового типа переменной указывается размер массива. При освобождении памяти, выделенной под массив, после оператора delete перед именем указателя на массив указывается оператор []. Таким образом, для выделения памяти под массив используют: Для освобождения памяти, выделенной под массив, используют команду вида: delete [] указатель;     №37.Оператор присваивания. Множественное присваивание. Главная особенность оператора присваивания. Оператор присвоения - это оператор который ячейке памяти имя которой написано слева, присваивает значение ячейки памяти, которая, стоит справа. Главная особенность оператора присваивания в С++ состоит в том, что он возвращает значение. Т.е. выражение с оператором присваивания может быть частью другого выражения. Синтаксис использования оператора присваивания таков: переменная = выражение. При этой переменной в качестве значения присваивается результат, возвращаемый при вычислении выражения. Результат выражения является тем значением, которое возвращает оператор присваивания. Поэтому допускается и многократное присваивание. Например, x=y=z=3. Ещё одна особенность оператора присваивания связанна с преобразованием типа в выражениях, содержащих этот оператор. Если в инструкции вида переменная=выражение тип результата, возвращаемого выражением, не совпадает с типом переменной, имеет место автоматическое преобразование типов. При этом тип значения выражения приводится в соответствие с типом переменной. Результат такой операции существенно зависит от того, из какого в какой тип данных осуществляется преобразование. В некоторых случаях может иметь место потеря данных, например, если переменной типа int присваивается значение переменной типа double. Множественное присваивание – когда к нескольким переменным присваиваем какое-то одно значение (a=b=3;). И выполняться оно будет справа налево. Т.е. сначала присвоится b=3 а затем уже a=b.   №6.Встроенные функции пакета math . h Math.h – это заголовочный файл стандартной библиотеки языка программирования С, разработанный для выполнения простых математических операций. Acos - Функция double acos(double arg) возвращает арккосинус аргумента arg. Значение аргумента функции должно лежать в интервале от -1 до 1, иначе произойдет ошибка. Asin - Функция double asin(double arg) возвращает арккосинус аргумента arg. Значение аргумента функции должно лежать в интервале от -1 до 1, иначе произойдет ошибка. Atan - Функция double atan(double arg) возвращает арктангенс аргумента arg. Cos - Функция double cos(double arg) возвращает косинус аргумента arg. Значение аргумента должно быть выражено в радианах. Fabs - Функция double fabs(double num) возвращает значение по модулю аргумента num. Log - Функция double log(double num) возвращает натуральный логарифм числа num. Если аргумент num отрицателен или равен нулю, возникает ошибка. Pow - Функция double pow(double base, double exp) возвращает число base, возведенное в степени exp Sin - Функция double sin(double arg) возвращает синус аргумента arg. Sqrt - Функция double sqrt(double num) возвращает квадратный корень аргумента num. Если значение аргумента отрицательно, возникает ошибка, связанная с выходом из области определения функции. Tan - Функция double tan(double arg) возвращает тангенс аргумента arg. Значение аргумента должно быть выражено в радианах.     №4.Оператор цикла for () Операторы цикла позволяют многократно выполнять серии однотипных действий. Действия выполняются до тех пор, пока остаётся справедливым (или пока не будет выполнено) некоторое условие. Синтаксис вызова оператора for(): В круглых скобках после ключевого слова for указывается программный код из трёх блоков (при это каждый из блоков может быть пустым). Блоки разделяются точкой с запятой. Первый блок является блоком инициализации. В нём обычно присваиваются начальные значения для переменной (или переменных) цикла. Второй блок – условие выполнения оператора цикла. Пока справедливо условие, оператор цикла будет выполняться. Третий блок – это блок изменения индексных переменных. Указанное назначение блоков достаточно условное. Общий принцип выполнения оператора цикла: сначала выполняются команды, указанные в первом блоке оператора for(), после этого проверяется условие, указанное во втором блоке оператора, если условие справедливо, выполняются команды после инструкции for() (если команд несколько, они заключаются в фигурные скобки), после выполнения команд в фигурных скобках выполняются команды третьего блока в круглых скобках после ключевого слова for, далее снова проверяется условие, при справедливости условия снова выполняются команды в фигурных скобках и команды третьего блока и т.д.     №31.Оператор цикла while () Помимо оператора цикла for(), широко используются циклы while() и do-while(). Синтаксис вызова оператора while() следующий: while (условие){  команды }  Сначала проверяется условие, указанное в круглых скобках после ключевого слова while, если условие справедливо, поочередно выполняются операторы, указанные в фигурных скобках после инструкции while(). Если инструкция одна, фигурные скобки можно не указывать. Схема действия оператора цикла while() следующая: В операторе цикла do-while() выполняемые команды (заключенные в фигурные скобки), указываются после ключевого слова do. Далее, проверяется условие, указанное в круглых скобках после ключевого слова while. Если условие выполнено, снова выполняются команды после ключевого слова do, и так далее. Таким образом, принципиальная разница между операторами while() и do-while() состоит в том, что в первом случае сначала проверяется условие, а затем (если верно условие) выполняются команды. Во втором случае, сначала по крайней мере один раз выполняется команда, а затем проверяется условие. По сравнению с оператором цикла for() операторы while() и do-while() требуют от программиста большей ответственности в первую очередь в плане детальной проработки механизма изменения значения проверяемого условия в процессе выполнения команд основного блока оператора. Программный код должен быть составлен корректно, чтобы не получить бесконечный цикл.     Пример программы с do-while: На первый взгляд может показаться, что разница между двумя программами с циклом while() и do-while() практически никакой. Но одно принципиальное отличие всё же есть, если пользователь введёт, например, отрицательное число, то первая программа в качестве значения суммы укажет 0. В то время, как во втором случае будет выведена 1. Причина в том, что в цикле while() при ложном проверяемом условии команды оператора цикла не выполняются и в качестве значение суммы возвращается начальное нулевое значение переменной. Во втором случае, сначала выполняется один цикл и уже после этого проверяется условие. За этот один выполненный цикл значение переменной увеличивается на 1, и в результате программы для суммы натуральных чисел возвращается единичное значение.   №23.Операторы сравнения Операторы сравнения используются для сравнения значений операндов. Результатом выраджения на основе оператора сравнения является логическое значение: true, если соответствующее условие выполнено, и false в противоположном случае. Данные операторы являются бинарными, т.е. используются с двумя операндами.     №35.Перегрузка функций Перегрузка - ситуация при которой у функции одно имя, но разные прототипы. Функция – это именованный программный код, который может многократно вызываться в программе. Функции реализуются отдельными программными блоками, могут иметь аргументы и возвращать значения в качестве результата. Функции в c++ можно перегружать. Под перегрузкой подразумевают создание и использование функций с разными прототипами, но одинаковыми названиями, поскольку названия функций являются частью её прототипа, становится понятно что отличаются прототипы не названием, а числом и типом возвращаемого результата.  Обычно перегрузку используют в тех случаях, когда приходится выполнять однотипные действия с разными объектами или разными типами данных. При перегрузке функции, создается несколько функций с одинаковыми названиями, которые, можно различить по остальным их атрибутам. При вызове перегружаемые функции в программе выбор нужного варианта функции осуществляется исходя из использованного в синтаксисе вызова функции.   №16.Передача аргументов в функцию. Понятие локальной переменной. В С++ существует два способа передачи аргументов функциям: -по значению и через ссылку. При передаче аргумента функции по значению при вызове функции для переменных, которые указаны её аргументами, создаются копии, которые фактически и передаются функции. После завершения выполнения кода функции эти копии уничтожаются (выгружаются из памяти). При передаче аргументов функции по ссылке функция получает непосредственный доступ (через ссылку) к переменным, указанным аргументами функции. Разница между этими способами заключается в том, что при передаче аргументов по значению изменить передаваемые функции аргументы в теле самой функции нельзя, а при передаче аргументов по ссылке – можно. По умолчанию используется способ передачи аргументов функции по значению. В данном случае функция в качестве значения возвращает целочисленную величину, на единицу превышающую аргумент функции. Для того, чтобы аргумент передавался не по значению, а по ссылке, перед именем соответствующего аргумента необходимо указать оператор &. В качестве аргументов функции могут также передаваться указатели. При передаче указателя аргументом функции перед именем указателя указывается оператор *. В данном примере происходит передача указателя. Прототип функции – int incr(int *m). Теперь m является указателем на переменную целого типа. Чтобы получить доступ к значению этой переменной, используем инструкцию вида *m. При вызове функции её аргументом указывается не переменная n, а адрес этой переменной, который получаем с помощью инструкции &n. Локальная переменная - это любая переменная доступна только в том блоке, в котором записана. int i=45 for(int i=0; i<10; i++) это две разные переменные i №44.Передача массива в функцию. Нередко, в качестве аргументов функции указываются массивы*. Учитывая то обстоятельство, что имя массива является ссылкой на первый его элемент, существует некоторая свобода в способе передачи массива аргументом функции. Объявляется функция show(), аргументом которой является массив из пяти элементов. Прототип void show(int[5]). Передаваемый массив указывается вместе с размером. Передача же многомерных, в частности двумерных, массивов аргументами функции осуществляется по следующему принципу: указываются все размеры массива, кроме первого. Это связано с интерпретацией многомерных массивов. Т.к. двумерный массив – это массив массивов. Поэтому, как и в случае одномерного массива, первый индекс является необязательным, поскольку функции на самом деле передаётся ссылка на первый элемент массива. Остальные индексы нужны для того, чтобы компилятор мог корректно выделить место под элементы массива. *Массив - группа переменных одного типа, объединённых общим именем. Если есть несколько переменных с похожим смыслом, лучше всего будет их объединить в массив. tun_имя[количество переменных в данном массиве]; имя[0]=3;  [] - номер элемента в массиве - индекс. Сама переменная является элементом массива. Значение - это цифра, которая хранится в переменной. Под количеством, должно быть целое неотрицательно число. Имя массива может нач. с лат. буквы, с подчёркивания, но не с цифры. **Функция - это именованный программный код, который может многократно вызываться в программе. №17.Работа с файлами Наиболее часто применяются классы ifstream для чтения, ofstream для записи и fstream для модификации файлов. Файловый ввод/вывод аналогичен стандартному вводу/выводу, единственное отличие – это то, что ввод/вывод выполнятся не на экран, а в файл. Если ввод/вывод на стандартные устройства выполняется с помощью объектов cin и cout, то для организации файлового ввода/вывода достаточно создать собственные объекты, которые можно использовать аналогично операторам cin иcout. Например, необходимо создать текстовый файл и записать в него строку 34 56 72 81. Для этого необходимо проделать следующие шаги: 1. создать объект класса ofstream; 2. связать объект класса с файлом, в который будет производиться запись; 3. записать строку в файл; 4. закрыть файл. Необходимо создавать объект класса ofstream для того, чтобы сделать запись в файл, а если бы нужно было считать данные из файла, то создавался бы объект класса ifstream. Назовём объект – fout, Вот что получится: ofstream fout("cppstudio.txt"); Объект необходим, чтобы можно было выполнять запись в файл. Уже объект создан, но не связан с файлом, в который нужно записать строку. Через операцию точка получаем доступ к методу класса open(), в круглых скобочках которого указываем имя файла. Указанный файл будет создан в текущей директории с программой. Если файл с таким именем существует, то существующий файл будет заменен новым. Итак, файл открыт, осталось записать в него нужную строку. Делается это так: fout << “34 56 72 81” // запись строки в файл Используя операцию передачи в поток совместно с объектом fout строка 34 56 72 81 записывается в файл. Так как больше нет необходимости изменять содержимое файла, его нужно закрыть, то есть отделить объект от файла. fout.close(); // закрываем файл     №8.Структуры Под структурами подразумевают группу переменных, объединённых общим именем. Удобство структуры состоит в том, что она позволяет группировать разнородные данные, что бывает весьма полезно при работе со всевозможными базами данных и записями. Объявление структуры начинается с ключевого слова struct, после которого следует имя структуры и, в фигурных скобках, перечисляются поля структуры (типы и имена переменных, входящих в структуру). После фигурных скобок заканчивается описание структуры. Дело в том, что само по себе описание структуры эту структуру не создаёт. Описание структуры – это всего лишь некий шаблон, по которому впоследствии создаются переменные. Создать переменные структуры можно указав список с названиями после описания структуры. Переменная структуры – это объект, который имеет имя (имя переменной структуры) и поля, тип и названия которых определяются описанием структуры. Чтобы в программе создать переменную структуры, необходимо указать имя структуры, в соответствии с описанием которой создаётся переменная, и имя этой переменной. Обращение к полю переменной происходит через, так называемый, точечный синтаксис (стандартный синтаксис для объектно-ориентированного программирования) – указывается имя переменной структуры, и через точку имя поля, к которому выполняется обращение, т.е. в формате структура.поле. #include <iostream> #include <math.h> #include <iomanip> // setw(); #include <fstream> using namespace std;      struct student{      char *name;      int math;      int phys;      int progg;      double sredn;      };      void sredn(student &);//& - ссылка void main(){      setlocale(LC_ALL,"Russian");      //Структура - это группа переменных разного типа, объеденённых общим именем.      /*struck_тип{      int_a;      double_b;      char*c;      };      void_main(){      тип_имя;*/      student nika;      nika.name = new char [20];      strcpy(nika.name, "Ника");        nika.math = 2;      nika.phys = 2;      nika.progg = 1;      nika.sredn = (nika.math + nika.phys + nika.progg) / 3. ;      cout<<nika.name<<" cредний балл: "<< nika.sredn<<endl;        student ashot;      ashot.name = new char [20];      strcpy(ashot.name, "Ашот");        ashot.math = 2;      ashot.phys = 3;      ashot.progg = -2;      sredn(ashot);      cout<<ashot.name<<" средний балл: ";      cout<<ashot.sredn<<endl;           system ("pause"); } void sredn (student &A){      A.sredn = (A.math + A.phys + A.progg) / 3. ; } №43.Приведение переменной. Переменная – именованная область памяти, к которой можно обратиться в процессе выполнения программы. Пример приведения переменной: int a=5, b=3; double c=a/b; так не работает Чтобы привести нужный тип переменной, надо в () указать тип значения данной переменной. double c=a/(double)b; а так заработает как надо Главная особенность "=" - возвращает значение   №12.Рекурсия. Рекурсия – это вызов в теле функции этой же самой функции. Или рекурсия – это функция*, которая вызывает саму себя. Пример выхода из рекурсии: if (a==1)return 1. Рекурсивный вызов может быть как прямым (функция вызывается в теле этой же функции), так и непрямым (в функции вызываются другие функции, в теле которых, в свою очередь, вызывается исходная функция). Несмотря на эффективность программного кода с рекурсивным вызовом, эффективностью он отличается редко, поскольку требует использования существенных системных ресурсов. * Функция – это именованный программный код, который может многократно вызываться в программе. Функции реализуются отдельными программными блоками, могут иметь аргументы и возвращать значения в качестве результата.   №41.Ссылки Ссылка – это неявная форма указателя, имеющая доступ непосредственно к значению переменной к которой она объявлена. Ссылка может быть объявлена как другим именем, так и как псевдоним переменной, на которую ссылается. №25.Структура консольной программы. 1. Блок заголовков (функционал) (#include <iomanip>) 2. Описание классов, прототипы функций 3. Главный метод программы (сам код программы) 4. Текст функций(main()), текст методов классов.   №28.Одномерные и многомерные массивы. Инициализация массивов. Массив - группа переменных одного типа, объединённых общим именем. Если есть несколько переменных с похожим смыслом, лучше всего будет их объединить в массив. тип_имя[количество переменных в данном массиве];  имя[0]=3;  [] - номер элемента в массиве - индекс. Сама переменная является элементом массива. Значение - это цифра, которая хранится в переменной. Под количеством, должно быть целое неотрицательно число. Имя массива может нач. с лат. буквы, с подчёркивания, но не с цифры. У массивов статических, размер должен быть известен уже при компиляции. Двумерный массив - это массив, каждый элемент которого – массив. Пример двумерного массива:                                                                                                       #include<iostream> #include<math.h> #include<iomanip> // Для setw() using namespace std; void main(){      setlocale (LC_ALL, "russian");      int a[5][8]; // [][] - Двумерный массив      int i, k, max = 0, min = 9999;      double sredn = 0;      int count = 0;      for(i = 0; i<5; i++){ //Строка      for(k = 0; k < 8; k++){ //Столбец      a[i][k] = rand()%20;      sredn += a[i][k];      if(a[i][k] > max) max = a[i][k];      if(a[i][k] < min) min = a[i][k];      cout<<setw(3)<<a[i][k];  }      cout<<endl; }      for(i=0; i<8; i++)      cout<<"\n"<< "Максимальное число: " << max<< "\n" << "Минимальное число: " << min<< "\n" << "Среднее арифмитическое: "<< sredn / 40 <<endl;      system ("pause"); }   №1.Типы переменных. Объявление переменной. Константы. Переменная – именованная область памяти, к которой можно обратиться в процессе выполнения программы. Объявление переменной осуществляется путём указания типа переменной и её имени. Объявляются переменные фактически в любом месте программного кода, однако использовать в программе переменную можно только после того, как ей присвоено значение. В этом случае говорят об инициализации переменной. Инициализация переменной также может выполняться в любом месте программы, но не ранее объявления этой переменной и до места первого её использования. Объявление и инициализацию переменной часто совмещают. Например, int n=10. Вместе с идентификаторами типов могут использоваться так называемые модификаторы типа. Модификаторы типа – это специальные ключевые слова, которые указываются перед идентификатором типа и позволяют изменять базовый тип. В С++ используются модификаторы signed (значение со знаком), unsigned (значение без знака), short (укороченный тип) и long(расширенный тип).   Под константами в С++ подразумеваются именованные ячейки памяти, значения которых фиксируются на начальном этапе выполнения программы и затем в процессе выполнения программы не могут быть изменены. Для превращения переменной в константу используют идентификатор const. Идентификатор указывается перед типом переменной и гарантирует неизменность значения переменной. Само значение переменной присваивается либо при объявлении, либо позже в программе, но только один раз и до первого использования переменной.     №26.Указатели. Указатели - это переменная особого типа, которая в качестве значения хранит в себе адрес. То есть указатель ссылается на блок данных из области памяти, причём на самое его начало. Указатель может ссылаться на переменную или функцию. Для этого нужно знать адрес переменной или функции. Так вот, чтобы узнать адрес конкретной переменной в С++ существует унарная операция взятия адреса &. Такая операция извлекает адрес объявленных переменных, для того, чтобы его присвоить указателю. Указатели используются для передачи по ссылке данных, что намного ускоряет процесс обработки этих данных (в том случае, если объём данных большой), так как их не надо копировать, как при передаче по значению, то есть, используя имя переменной. В основном указатели используются для организации динамического распределения памяти, например при объявлении массива, не надо будет его ограничивать в размере. Операци, которые связаны с указателями: int a=3 int *b - означает что объявлена переменная типа инт звездочка - это указатель (можно присвоить только адрес) b=&a - операция присвоения (присваивается 3) cout<< *b - выводится именно значение  cout<< b - выводится адрес int &c=a - объявляется ссылка на переменную a     №7.Условный оператор if . Условный оператор if() позволяет выполнять разные блоки операторов в зависимости от того, выполняется ли некое условие. Условие указывается в круглых скобках после ключевого слова if. Если условие, указанное после ключевого слова if, верно, выполняется блок операторов операторы 1. В противном случае выполняется блок операторов операторы 2, указанных после ключевого слова else. Допускается использование упрощённого оператора, в котором отсутствует ветка else.     №10.Условный оператор switch () В тех случаях, когда проверяется больше одного условия, вместо нескольких условных операторов if() нередко используют оператор switch(). В () указывается выражение, значение которого проверяется. Результатом выражения может быть как целое число, так и символ. Значение, возвращаемое выражением, сравнивается со значениями, указанными после ключевых слов case. Если имеет место совпадение, то выполняется соответствующий блок операторов. Операторы выполняются, пока не встретится инструкция break. Если совпадения нет, выполняются операторы после инструкции default.   №29.Функции. Функция – это именованный программный код, который может многократно вызываться в программе. Функции реализуются отдельными программными блоками, могут иметь аргументы и возвращать значения в качестве результата. До того, как функция будет вызвана, она должна быть объявлена. Объявление функции, аналогично объявлению переменной, указываются имя функции, тип значения, которое она может возвращать, набор её параметров (для каждого параметра задаётся тип и при желании, имя). Объявление функции называют также её прототипом. Схема: Тип_результата Имя_функции (Тип_пар1, Тип_пар2, ...); · Тип_результата — некоторый существующий (например, встроенный) тип данных или ключевое слово void, указывающее на то что функция никакого значения возвращать не будет. · Имя_функции — уникальный для данного пространства имён идентификатор. · Тип_парN — некоторый существующий (например, встроенный) тип данных для N-oro аргумента. После объявления к функции можно обращаться в программе по имени, хотя пока и не понятно, какие действия она будет производить. Если функция не возвращает никакого результата, т. е. объявлена как void, ее вызов не может быть использован как операнд более сложного выражения (например, значение такой функции нельзя чему-то присвоить). Пример функции:    

Опишите компонент timer . Опишите его назначение и события.

Timer – это компонент, который выполняет единственное свое событие один раз в интервал времени, записанный в миллисекундах.

Основные поля: Enabled/ Interval.

Основные события: Tick


Дата добавления: 2019-02-22; просмотров: 279; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!