Сопоставление фактических и формальных параметров — КиберПедия 

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

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

Сопоставление фактических и формальных параметров

2020-12-06 121
Сопоставление фактических и формальных параметров 0.00 из 5.00 0 оценок
Заказать работу

Фактические – параметры, указанные при вызове функции. При передаче по значению содержимое фактических параметров не изменяется.

Формальные – параметры, указанные при определении функции. Присваивание элементу формального параметра-массива изменяет этот элемент.

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

 

36. если один и тот же кусок кода повторяется несколько раз

37. Рекурсия — это такой способ организации вспомогательного алгоритма (подпрограммы), при котором эта подпрограмма (процедура или функция) в ходе выполнения ее операторов обращается сама к себе. Вообще, рекурсивным называется любой объект, который частично определяется через себя.

Типичными рекурсивными задачами являются задачи: нахождения n!, числа Фибоначчи.

38. В языке программирования С++ существуют такие циклы:цикл for цикл while цикл do.. while

39.указатели-это переменные,которые содержат в качестве своих значений адрес памяти.

40. Область видимости(scope) определяется как область доступности переменной в той программе, в которой она была объявлена. В зависимости от области видимости переменные делятся на четыре типа:

локальные переменные;

параметры функций;

глобальные переменные;

статические переменные.

41.. в начале через запятую задаются параметры,которые передаются в функцию,а далее точка с запятой и параметры которые получаешь(для процедуры).а для функцию только передаваемые.

42. Простые (скалярные) типы:

целые,

вещественные,

символьные,

указатели,

перечислимый тип.

Составные (структурированные) типы:

массив,

структура,

объединение.

43.унарные бинарные тернарные

44. тип «пробел» имя переменной

служебное слово const тип «пробел» имя = значение

45. Операторы вида if... else

Если условие в выражения истинно, то выполняется оператор1, если условие ложно, то выполняется оператор2.

46. Оператор цикла while или цикл while - цикл, повторяющий одно и то же действие, пока условие продолжения цикла whileостаётся истинным. Условие продолжения цикла должно быть истинно "true", как только условие стало ложным, выполняется выход из цикла.

47. switch позволяет перебирать множество вариантов одного условия и является хорошо читаемой альтернативой целой куче else if -ов.

switch (выражение) { [объявление]: [ case константное-выражение1]: [ список-операторов1] [ case константное-выражение2]: [ список-операторов2]:: [ default: [ список операторов ]] }

48. Оператор GoTo может передавать управление только в строки процедуры, в которой он находится. Строка должна иметь метку строки, на которую может сослатьсяGoTo.

Нельзя использовать оператор GoTo для передачи управления из кода вне конструкции For...Next, For Each...Next, SyncLock... End SyncLock, Try... Catch... Finally,With... End With или Using... End Using на метку внутри этой конструкции.

49. Часто при возникновение некоторого события удобно иметь возможность досрочно завершить цикл. Используемый для этой цели оператор break (разрыв) вызывает немедленный выход из циклов, организуемых с помощью операторов for, while, do-while, а также прекращение оператора switch.

 

50 Continue. Оператор continue тоже предназначен для прерывания циклического процесса, организуемого операторами for, while, do-while. Но в отличие от оператора break, он не прекращает дальнейшее выполнение цикла, а только немедленно переходит к следующей интеграции того цикла, в теле которого он оказался. Он как бы имитирует безусловный переход на конечный оператор цикла, но не за ее пределы самого цикла.

#include <stdio.h>

void main() {

static int a[]={1,2,-3,4,-5,6};

int i,n,s;

n=6; s=0;

for(i=0; i<n; i++){

if(a[i]<=0){

continue; /*пропуск 0*/

   }

              s+=a[i];

}

printf("сумма = %d \n",s);

}

 

51. Определение использования массивов. Массивы относятся к так называемым сложным, или составным типам данных. Массив - это структура данных, состоящая из элементов одного типа. В отличие от других структур данных (например, списков), элементы массивов всегда последовательно расположены в памяти.

При объявлении массива после идентификатора в квадратных скобках задается константа (в частности именованная или константное выражение) - число элементов массива:

int a[5];     // Массив из пяти элементов типа int

const int n = 5;

double a1[n]; // Массив из пяти элементов типа double

Массив может инициализироваться списком значений в фигурных скобках:

int b[4] = {1, 2, 3, 4};

При наличии списка инициализации, охватывающего все элементы массива, можно не указывать число элементов массива, оно будет определено компилятором:

int c[] = {1, 2, 3}; // Массив из трех элементов типа int

 

Пример (программа находит сумму элементов массива вещественных чисел)

#include <iostream>

 

using namespace std;

 

int main()

{

const int n = 5;

double a[] = {1, 2, 1, 2.5, 1};

double sum = 0;

for (int i = 0; i < n; i++)

     sum += a[i];

cout << "Sum is " << ' ' << sum;

return 0;

}

 

 

52. Многомерные массивы. Массивы с размерностью 2 и более рассматриваются как массивы массивов и для каждого измерения указывается число элементов:

double aa[2][2] = {1, 2, 3, 4}; // Матрица 2 * 2

То же самое, но более наглядно:

double aa[2][2] = {{1, 2},

                {3, 4}};

Первая размерность - это размерность по строкам, а вторая - по столбцам. При инициализации списка значений вторая и последующие размерности должны указываться явно.

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

int i = 0, j = 1;

aa[i][j] = i + j;

Элементы многомерных массивов в памяти выстраиваются в одномерную структуру (массив), в которой в начале стоят элементы первой строки, потом второй и т.д.

53. Определение использования указателей. Указатель – это объект, содержащий адрес другого объекта и позволяющий косвенно манипулировать этим объектом. Каждый указатель ассоциируется с некоторым типом данных, который определяет тип указателя.

Для определения указателя необходимо перед его идентификатором (после имени типа) разместить знак *:

int *pi; // Указатель на объект целого типа

 

Унарная операция взятия адреса обозначается знаком &. С помощью данной операции можно получить адрес объекта, к которому она применяется. Такими объектами являются переменные и элементы массивов.

Операция * (разыменование), примененная к указателю, позволяет получить объект, на который ссылается данный указатель.

С помощью операции взятия адреса указатель при объявлении может быть проинициализирован объектом соответствующего типа:

int i = 0;

int *pi = &i; // Указатель на i

 

54. Указатели и массивы Имя массива в С++ является константным указателем, содержащим адрес первого элемента массива (имеющего индекс, равный нулю). Его можно использовать для инициализации другого указателя (на объект типа элемента массива):

int a[10];

int * pa = a;

К указателю pa также применима операция обращения по индексу:

рa[0] = 0;     // То же самое, что a[0] = 0;

cout << pa[0]; // То же самое, что cout << a[0];

С помощью выражения pa + i (или a + i) можно получить адрес i-го элемента массива.

Элемент массива a разрешается изображать и виде указателя со смещением и в виде имени массива с индексом. Имеет место тождество:

a[i] == *(a+i);

Начальный элемент массива можно просто записать как *а, т.е.

а[0] == *a;

Чтобы получить адрес следующего элемента, можно использовать операцию инкремента:

pa++; // но не a++, так как a - константный указатель

 

55. Понятие адресной арифметики. Указатели могут быть использованы в арифметических выражениях. Для указателей определены операции сравнения, сложения указателя с целым числом, вычитание двух указателей, а также операция индексирования (операция []). Прибавление к указателю 1 увеличивает содержащееся в нем значение на размер области памяти, отводимой объекту соответствующего типа. Такие действия над элементами массива получили название адресной арифметики.

56. Понятие динамического распределения памяти Динамическим распределением памяти называется явное выделение и освобождение памяти во время выполнения программы. Свободная память выделяется для хранения объекта с помощью операции new. После слова new указывается тип объекта, который должен быть размещен динамически. Операция new возвращает указатель на динамически созданный объект:

int *p = new int;

Для инициализации динамически создаваемого объекта начальным значением это значение указывается в скобках после специализации типа:

int *p = new int (100); // *p == 100

Если после специализации типа указать в квадратных скобках значение размерности, это приведет к динамическому размещению массива. Размерность может быть выражением произвольной сложности (не только константой). Операция new возвращает указатель на первый элемент массива:

int i = 100;

double *a = new double [i*2];

После того как динамически размещенный объект оказался ненужным, память следует освободить с помощью операции delete:

int *p = new int; // выделение памяти

delete p;       // освобождение памяти

57. Ссылки. Понятие и _____

Ссылка представляет собой альтернативное имя объекта. Тип ссылки определяется спецификацией типа, за которой следует операция &. Так же, как и константа, ссылка при определении должна быть инициализирована некоторым существующим объектом:

int i = 10;

int &j = i;

j теперь будет другим именем для i. Ссылка иногда также называется псевдонимом. Любые действия с объектом могут теперь производиться как с использованием основного имени, так и с использованием ссылки.

Для инициализации ссылки необходимо, чтобы инициализирующий объект нужного типа находился в памяти (был lvalue).

Нельзя определять массив ссылок:

int &a[10]; // ошибка

Нет константных ссылок, однако существуют ссылки на константный объект. Через ссылку на константный объект нельзя менять сам объект:

int i = 100;

const int &ciref = i;

ciref = 200;            // ошибка

Ссылку на константный объект можно инициализировать константой и объектом не ее типа.


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

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.036 с.