Свойства последовательности.

Последовательность

Сложные структуры данных

Перегрузка функций

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

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

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

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

// Перегруженные функции "print"

void print(int i) {printf("%i",i);}

void print(float x) {printf("%8.3f",x);}

void print(char *s) {printf("%s",s);}

void vk() {printf("\n");}

int main()

{ int a=-345;// Целое число

float pi=3.14159;// Вещественное число

char s[]="begin end";// Символьная строка

print(a); vk();

print(pi); vk();

print(s); vk();

getch();

}

При исполнении компилятор сам выбирает ту или иную функцию "print" для правильного вывода данных.

Последовательность – набор упорядоченно расположенных однотипных элементов.

Свойства последовательности:

1. Последовательность обладает конечной, но неограниченной длиной.

2. Элемент последовательности может быть получен только один раз.

3. Все элементы последовательности имеют один и тот же тип.

4. Конец последовательности может быть определен:

– длиной последовательности;

– временем доступа к элементам последовательности;

– индикатором окончания последовательности;

– некоторым условием, зависящим от значений элементов.

5. Последовательность может быть пустой, т.е. не содержать ни одного элемента.

6. Последовательность S обозначена так:

 

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

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

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