Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ekzamennatsionnye_voprosy_2014-2015 (2).docx
Скачиваний:
14
Добавлен:
10.03.2016
Размер:
299.12 Кб
Скачать

If (логическое выражение)

оператор;

If (логическое выражение)

оператор_1;

else

оператор_2;

<логическое выражение> ? <выражение_1> : <выражение_2>;

Если значение логического выражения истинно, то вычисляется выражение_1, в противном случае вычисляется выражение_2.

switch (выражение целого типа)

{

case значение_1:

последовательность_операторов_1;

break;

case значение_2:

последовательность_операторов_2;

break;

. . .

case значение_n:

последовательность_операторов_n;

break;

default:

последовательность_операторов_n+1;

}

Ветку default можно не описывать. Она выполняется, если ни одно из вышестоящих выражений не удовлетворено.

Оператор цикла.

В Турбо Си имеются следующие конструкции, позволяющие программировать циклы: while, do while и for. Их структуру можно описать следующим образом:

Цикл с проверкой условия наверху:

while ( логическое выражение)

оператор;

Цикл с проверкой условия внизу:

do

оператор;

while (логическое выражение);

Универсальный оператор цикла:

for (инициализация; проверка; новое_значение)

оператор;

  1. Си. Управляющая структура Выбор.

Оператор выбора

Если действия, которые необходимо выполнить в программе, зависят от значения некоторой переменной, можно использовать оператор выбора. При этом в C++ в качестве переменных в операторе выбора можно использовать только численные. В общем виде запись оператора выбора выглядит так:

switch(переменная) {     case значение1:         действия1         break;     case значение2:         действия2         break;     ...     default:         действия по умолчанию }

Ключевое слово break необходимо добавлять в конец каждой ветви. Оно останавливает выполнение операции выбора. Если его не написать, после выполнения действий из одной ветви выбора продолжится выполнение действий из следующих ветвей. Однако иногда такое свойство выбора бывает полезным, например если необходимо выполнить одни и теже действия для различных значений переменной.

switch(переменная) {     case значение1:      case значение2:         действия1         break;     case значение3:         действия2         break;     ... }

Пример использования выбора:

int n, x; ... switch(n) {     case 0:         break; //если n равна 0, то не выполняем никаких действий      case 1:     case 2:     case 3:         x = 3 * n; //если n равна 1, 2 или 3, то выполняем некоторые действия          break;     case 4:         x = n; //если n равна 4, то выполняем другие действия          break;     default:         x = 0; //при всех других значениях n выполняем действия по умолчанию  }

  1. Си.Цикл: цикл с параметром

Общая форма записи

for (инициализация параметра; проверка условия окончания; коррекция параметра) {

блок операций;

}

for — параметрический цикл (цикл с фиксированным числом повторений). Для организации такого цикла необходимо осуществить три операции:

  • инициализация параметра - присваивание параметру цикла начального значения;

  • проверка условия окончания - сравнение величины параметра с некоторым граничным значением;

  • коррекция параметра - изменение значения параметра при каждом прохождении тела цикла.

Эти три операции записываются в скобках и разделяются точкой с запятой (;). Как правило, параметром цикла является целочисленная переменная. Инициализация параметра осуществляется только один раз — когда цикл for начинает выполняться. Проверка условия окончания осуществляется перед каждым возможным выполнением тела цикла. Когда выражение становится ложным (равным нулю), цикл завершается. Коррекция параметра осуществляется в конце каждого выполнения тела цикла. Параметр может как увеличиваться, так и уменьшаться.

Пример

#include <stdio.h> int main() {

  int num;

  for(num = 1; num < 5; num++)

      printf("num = %d\n",num);

  getchar();

  return 0;

  1. Си. Цикл с предусловием

Общая форма записи

while(выражение) {

  блок операций; }

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

Пример

int k=5; int i=1; int sum=0; while(i <=k) {

 sum = sum + i;

 i++; }

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

while(1) {

  блок операций; }

while — цикл с предусловием, поэтому вполне возможно, что тело цикла не будет выполнено ни разу если в момент первой проверки проверяемое условие окажется ложным.

  1. Си. Цикл с постусловием

Цикл с постусловием do...while

Общая форма записи

do {

  блок операций;

} while(выражение);

Цикл с постусловием

Цикл do...while — это цикл с постусловием, где истинность выражения проверяется после выполнения всех операций, включенных в блок, ограниченный фигурными скобками.Тело цикла выполняется до тех пор, пока выражение не станет ложным, то есть тело цикла с постусловием выполнится хотя бы один раз.

Использовать цикл do...while лучше использовать в тех случаях, когда должна быть выполнена хотя бы одна итерация, либо когда инициализация объектов, участвующих в проверке условия, происходит внутри тела цикла.

Пример. Ввести число от 0 до 10

#include <stdio.h> #include <stdlib.h> int main() {

  int num;

  system("chcp 1251");

  system("cls");

  do {

    printf("Введите число от 0 до 10: ");

    scanf("%d", &num);

  } while((num < 0) || (num > 10));

  printf("Вы ввели число %d", num);

  getchar(); getchar();

  return 0; }

  1. Си.Функции: объявление и определение функции

В языках C и C++, функции должны быть объявлены до момента их вызова. Вы можете объявить функцию, при этом функция может возвращать значение или — нет, имя функции присваивает программист, типы данных параметров указываются в соответствии с передаваемыми в функцию значениями. Имена аргументов, при объявления прототипов являются необязательными.

Смотрим пример объявления функции:

/ / Объявление прототипа функции с двумя целыми параметрами

/ / функция принимает два аргумента и возвращает их сумму

int sum(int num1, int num2);

Определение функций

returnDataType functionName( dataType argName1, dataType argName2, ..., dataType argNameN)

{

    // тело функции

}

Рассмотрим определение функции на примере функции sum.

// определение функции, которая суммирует два целых числа и возвращает их сумму

int sum(int num1, int num2)

{

    return (num1 + num2);

}

В языках C и C++, функции не должны быть определены до момента их использования, но они  должны быть ранее объявлены. Но даже после всего этого, в конце концов, эта функция должна быть определена. После этого прототип функции и ее определение связываются, и эта функция может быть использована.

Если функция ранее была объявлена, она должна быть определена с тем же возвращаемым значением и типами данных, в противном случае, будет создана новая, перегруженная функция.  Заметьте, что имена параметров функции не должны быть одинаковыми.

// объявление функции суммирования

int sum(int, int);

 

// определение функции суммирования

int sum(int num1, int num2)

{

    return (num1 + num2);

}

  1. Си. Функции: формальные и фактические параметры

Параметр в программировании — принятый функцией аргумент. Термин «аргумент» подразумевает, что конкретно и какой конкретной функции было передано, а параметр — в каком качестве функция применила это принятое. То есть вызывающий код передает аргумент в параметр, который определен в члене спецификации функции.

Важно различать:

формальный параметр — аргумент, указываемый при объявлении или определении функции.

фактический параметр — аргумент, передаваемый в функцию при ее вызове;

Пример на языке Си:

// Описание функции. int a - формальный параметр, имя параметра может отсутствовать.

int myfunction(int a);

// Определение функции. int b - формальный параметр, имя параметра может не совпадать с указанным при объявлении функции.

int myfunction(int b)

{

return 0;

}

int main()

{

int c=0;

myfunction(c); // Вызов функции. c - фактический параметр.

return 0;

}

  1. Си. Функции: области видимости имен

В программировании, область видимости (англ. scope) обозначает область программы, в пределах которой идентификатор (имя) некоторой переменной продолжает быть связанным с этой переменной и возвращать её значение. За пределами области видимости тот же самый идентификатор может быть связан с другой переменной, либо быть свободным (не связанным ни с какой из них).

В большинстве языков программирования область видимости переменной определяется местом её объявления. Кроме того, область видимости может задаваться явно с помощью классов памяти или пространств имён.

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

локальные переменные — объявляются внутри функции и недоступны снаружи неё;

глобальные переменные — объявляются вне всех функций и доступны отовсюду

В объектно-ориентированном программировании каждый объект содержит три специфические области видимости:

Закрытая (англ. private) — переменную можно использовать только в реализации объекта;

Общедоступная (англ. public) — переменную можно использовать при использовании и инициализации объекта;

Защищённая (англ. protected) — переменную можно использовать только в реализации объекта или его потомка.

Области видимости определяются и для языков разметки. Например, в HTML областью видимости имени элемента управления является форма (HTML) от <form> до </form>.

Пример в СИ:

// Начинается глобальная область видимости.

int countOfUser = 0;

int main()

{

// С этого момента объявляется новая область видимости, в которой видна глобальная.

int userNumber[10];

}

#include <stdio.h>

int a = 0; // глобальная переменная

int main()

{

printf("%d", a); // будет выведено число 0

{

int a = 1; // объявлена локальная переменная а, глобальная переменная a не видна

printf("%d", a); // будет выведено число 1

{

int a = 2; // еще локальная переменная в блоке, глобальная переменная a не видна, не видна и предыдущая локальная переменная

printf("%d", a); // будет выведено число 2

}

}

  1. Си. Массивы: объявление массивов

Массив – это совокупность данных, которая обладает следующими свойствами: все элементы массива имеют один и тот же тип; массив имеет одно имя для всех элементов; доступ к конкретному элементу массива осуществляется по индексу (индексам).

1. Объявление массива

Объявление массива имеет следующий синтаксис:

<спецификация типа> <имя> [<константное выражение>];

<спецификация типа> <имя> [ ];

Здесь квадратные скобки являются элементом синтаксиса, а не признаком необязательности конструкции.

Объявление массива может иметь одну из двух синтаксических форм, указанных выше. Квадратные скобки, следующие за именем, – признак того, что переменная является массивом. Константное выражение, заключенное в квадратные скобки определяет число элементов в массиве. Индексация элементов массива в языке C++ начинается с нуля. Таким образом, последний элемент массива имеет индекс на единицу меньше, чем число элементов массива.

Во второй синтаксической форме константное выражение в квадратных скобках опущено. Эта форма может быть использована, если в объявлении массива присутствует инициализатор, либо массив объявляется как формальный параметр функции, либо данное объявление является ссылкой на объявление массива где-то в другом месте программы. Однако для многомерного массива может быть опущена только первая размерность.

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

<спецификация типа> <имя> [<константное выражение>][<константное выражение>] ... ;

Каждое константное выражение определяет количество элементов в данном измерении массива, поэтому объявление двумерного массива содержит два константных выражение, трехмерного – три и т.д.

Массив может состоять из элементов любого типа, кроме типа void и функций, т.е. элементы массива могут иметь базовый, перечислимый, структурный тип, быть объединением, указателем или массивом.

Примеры объявлений массивов:

int x[10];

// Одномерный массив из 10 целых чисел. Индексы меняются от 0 до 9.

double y[2][10];

// Двумерный массив вещественных чисел из 2 строк и 10 столбцов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]