Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ по ПОА 2012.doc
Скачиваний:
7
Добавлен:
08.11.2019
Размер:
257.02 Кб
Скачать

Функции

Определение функции имеет вид:

[тип_результата] имя_функции([список_формальных_параметров])

{тело_функции}

Такие языки, как Pascal, делают различие между процедурами и функциями, но в C++ функции играют обе роли. Если тип результата не указан, то функция возвращает значения типа int. Если функция ничего не возвращает, в качестве типа указывается void.

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

Тело функции – блок. Функция возвращает значение с помощью оператора return выражение;

Пример:

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

int mul(int x,int y)

{ return x*y;

}

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

void change(int x, int y)

{int k=x; x=y; y=k;

}

void main()

{int a=3,b=7;change(a,b);

}

Здесь формальные параметры x и y меняются местами, но значения a и b останутся неизменными. В исправленной версии функции аргументы передаются по ссылке:

void change(int &x, int &y)

{ int k=x; x=y; y=k;

}

Ввод-вывод в стиле с

В С++ основная используемая библиотека ввода/вывода – iostream (потоки ввода /вывода). В ней для ввода используется стандартный объект – cin, а для вывода – cout. Например,

cout<<”Введите два числа”; cin>> a>>b;

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

#include <stdio.h>

Форматированный вывод выполняется функцией printf:

printf(“формат”, список аргументов);

Команда формата в начала содержит знак ‘%’, затем – код формата. Некоторые коды формата:

%с – отдельный символ

%d – десятичное число

%e – десятичное число с мантиссой и порядком

%f – деятичное с плавающей точкой

%s – строка символов

Пример:

print(“Hi %c %d %s”,’c’,10,”there!”);

получится: Hi c 10 there!

Для форматированного ввода используется функция scanf:

scanf (“формат”,список аргументов);

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

int count;

scanf(“%d”,&count);//&count–адрес переменной count

Массивы

Массив объявляется путём указания после имени переменной квадратных скобок

тип имя_переменной [количество элементов];

Пример: int s[10] - массив из 10 целых чисел.

char mas[20] - строка на 20 символов

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

В следующем примере массив с заполняется случайными числами в интервале [-100, 100]

#include <stdlib.h>

#include <time.h>

void main()

{ int i, c[10]; randomize();

for(int i=0;i<10;i++) c[i]=random(201)-100;

}

При объявлении массива можно его сразу инициализировать:

int a[5]={3,5,7,11,13};

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

Аналогично объявляются многомерные массивы:

тип имя [size1][size2]…[sizeN]

Пример: int t[4][10]; // объявляется двумерный массив из 40 элементов (4 строки, 10 столбцов)

обратиться к произвольному элементу массива можно так: t[i][j]

!!! не перепутайте c Pascal, t[i,j] – неправильная запись, но компилятор при этом ошибку не выдает (вспомним про операцию «запятая»)

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

int a[]={1,2,3};

Многомерный массив можно рассматривать как массив, элементы которого, в свою очередь, являются массивами. Например: int a[5][10];

при этом a[0], a[1], … ,a[4] – одномерные массивы (строки матрицы a)

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