Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_и_Пр_Бизнес_лекции.doc
Скачиваний:
84
Добавлен:
10.05.2015
Размер:
1.21 Mб
Скачать

3.8. Оператор switch

Оператор switch используется для программирования разветвляющихся алгоритмов, в которых количество альтернатив больше двух.

Синтаксис оператора:

switch (выражение)

{

метка выбора: [операторы]

метка выбора: [операторы]

………………………………..

метка выбора: [операторы]

[default: операторы]

}

Метка выбора имеет вид:

case константа

Выражение и константы в метках выбора должны быть целого типа.

Выполнение оператора начинается с вычисления значения выражения. Далее управление передается на ветвь, константа которой равна значению выражения. Выполняются операторы этой ветви, а далее выполняются операторы всех ветвей, находящихся ниже. Если нет константы, равной значению выражения, то выполняется ветвь default, если она есть. Для выполнения только одной ветви оператора надо в ней предусмотреть оператор break.

Пример оператора, который выводит значение целого числа k, значение которого от 1 до 5, римскими цифрами:

switch (k)

{

case 1: cout<<”I”; break;

case 2: cout<<”II”;break;

case 3: cout<<”III”;break;

case 4: cout<<”VI”;break;

case 5: cout<<”V”;break;

default: cout<<”Error”;

}

Для выхода из ветви оператора switch могут использоваться также операторы goto и return. В операторе switch в каждой ветви может быть несколько меток выбора.

Пример программы, которая по номеру месяца выводит время года:

#include <iostream.h>

#include <conio.h>

void main()

{

int month; //месяц

cout<<"month? "; cin>> month;

switch (month)

{

case 12: case 1: case 2: cout<<”winter”;break;

case 3: case 4: case 5: cout<<”spring”;break;

case 6: case 7: case 8: cout<<”summer”; break;

case 9: case 10: case 11: cout<<”autumn”;break;

}

getch();

}

3.9. Оператор return

Оператор return завершает работу функции и передает управление в точку вызова функции. Может передавать в точку вызова функции вычисленное функцией значение.

Синтаксис оператора:

return [выражение];

Пример программы вычисления младшей цифры целой части вещественного числа, в которой алгоритм вычисления младшей цифры вещественного числа оформлен в виде функции:

#include <iostream.h>

#include <conio.h>

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

int f(float x)

{

return (int)x%10;

}

void main()

{

float a;

cout<<"a? ";

cin>>a;

cout<<f(a)<<endl;

getch();

}

4. Массивы

Массив – это составной тип данных, используемый в программе для представления конечной последовательности данных одного типа. Под элементы массива выделяются смежные участки памяти. Доступ к элементу массива осуществляется по индексу.

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

Синтаксис объявления массива:

Тип элементов имя массива [размер массива];

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

int a[100]; //целочисленный массив из 100 элементов

float b[10]; //массив из 10 вещественных чисел

При объявлении массива можно указать начальные значения для его элементов:

int a[4]={10,20,30,40};

или

int a[]={10,20,30,40};

В последнем случае размер памяти под массив определяется автоматически по количеству констант. Можно проинициализировать только часть первых элементов массива:

int a[4]={10,20};

4.2. Обращение к элементам массива

К элементу массива обращаются с помощью индекса (номера) элемента.

Синтаксис обращения:

Имя_массива [индекс]

Индекс определяет положение элемента в массиве и задается выражением. Выражение должно быть целого типа.

Примеры обращения к элементам массива:

a[1]=2; a[i]=3;

a[i+2]=a[i];

Элементы массива в языке С++ нумеруются с 0. Поэтому в массиве, объявленном как массив из 100 элементов, первый элемент имеет индекс равный 0, а последний – 99. Контроль выхода индекса элемента массива за границы допустимых значений при выполнении программы в С++ не выполняется.

В языке С++ отсутствуют операции над массивом. Исключение составляет операция индексации []. Над элементами массива можно выполнять операции, которые допустимы для типа элементов массива.

Пример программы поиска значения максимального элемента целочисленного массива из n элементов (n<=100):

#include <iostream.h>

#include <conio.h>

void main ()

{

int a[100]; //массив

int n, i; //количество элементов и индекс элемента

int max; //значение максимального элемента

cout<<”n? “;

cin>>n;

cout<<”a? “;

//Ввод массива

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

cin>>a[I];

max=a[0];

for (i=1; i<n; i++) //цикл поиска максимального элемента

if (a[i]<max

max=a[I];

cout<<”max=”<<max;

getch();

}

Тесты:

n=5

a: 1, 8, -9, 3, 5 max=8

a: 1, 8, 2, 8, 6 max=8

a: 1, 1, 1, 1, 1 max=1