- •1.2. Основные понятия теории множеств и 1.3. Основные структуры.
- •1.4. Перестановки.
- •1.5. Размещения.
- •1.6. Сочетания.
- •2. Теория вероятности.
- •2.1. Классическое определение вероятности.
- •2.2. Теоремы сложения и умножения вероятностей.
- •2.3. Дискретные случайные величины.
- •2.4. Нормальный закон распределения вероятностей.
- •2.5. Основные понятия теории вероятности.
- •2.6. Аксиомы теории вероятности.
- •3.1. Дифференциальное исчисление функции одной переменной
- •3.2. Разрыв функции.
- •3.3. Функция. График.
- •3.4. Понятие дифференциального уравнения
- •4.1. Языки программирования высокого уровня
- •4.2. Задачи на циклы с параметром.
- •4.3. Алгоритмы
- •4.4. Работа с заданными массивами.
- •4.5. Блок – схемы. Ветвление.
- •4.6. Блок – схемы. Циклы с проверкой условия.
- •Текстовые редакторы. Таблицы
- •Электронные таблицы. Встроенные функции.
- •5.3. Компьютерная графика
- •5.4. Служебные программы.
- •5.7. Основные компоненты операционных систем.
- •5.8. Обзор программного обеспечения.
- •Двоичная система счисления.
- •Представление чисел в различных системах счисления
- •6.2 Количество информации.
- •Интернет
- •Конфигурация и топология цепей
- •Структура сообщений
- •Адресация в Интернет
- •Способы подключения к Интернету
- •Защита информации. Шифрование.
- •4. Ошибки обслуживающего персонала или пользователей.
- •5. Неправильное хранение информации.
- •Кодирование информации
4.4. Работа с заданными массивами.
Все рассмотренные ранее алгоритмы позволяли работать со скалярными данными: числами, символами и т.д. Однако очень часто при решении задач необходимо использовать объекты, содержащие множество однотипных элементов. Для обработки таких объектов и служит массив.
Массив- структурированный тип данных, состоящий из фиксированного числа элементов одного типа: например, при обработке результатов многократных замеров температуры воздуха в течение года удобно рассматривать значения температур как массив вещественных чисел. Аналогом одномерного массива является вектор, двумерного - матрица. Рассмотрим работу с массивами на языке Турбо Паскаль.
Для описания массива служат служебные слова array of. Сама же процедура может выполняться двумя способами:
1) ввести новый тип данных, а потом описать переменные нового типа. В этом случае формат команды type следующий:
type
<имя_типа>' = array [<тип_индекса>] of <тип_компонентов>;
В качестве типа_индекса можно использовать перечислимый тип. Тип_компонентов - это любой ранее определенный тип данных, например:
type
massiv=array[0..12] of real;
dabc=array[-3. .6] of integer;
var
x,y:massiv;
z: dabc;
2) можно не вводить новый тип, а просто описать переменную следующим образом:
var <переменная> : array [<тип_кндекса>] of <тип_переменных>;
Например:
var
z,x; array[1..25] of word;
g:array[-2. .7] of real;
Операции над массивами
Для работы с массивом как с единым целым надо использовать идентификатор массива без указания индекса в квадратных скобках. Доступ к каждому элементу массива осуществляется с помощью индекса, то есть порядкового номера элемента массива. Для обращения к элементу массива надо указать имя массива и порядковый номер элемента: х[1], y[5], с[25], А[8]. Если указано только имя массива, то речь идет обо всем массиве (А, С и F). Обычно для обработки массива нужно организовать цикл и уже в нем работать с элементами.
В Турбо Паскале определена также операция присваивания для массивов, идентичных по структуре, то есть с одинаковыми типами индексов и компонентов. Например, если массивы С и D описаны как
var c,d: array [0..30] of real; то можно записать оператор
c:=d;
Такая операция сразу всем элементам массива С присвоит значения элементов массива D, соответствующих им по номерам.
Ввод-вывод элементов массива
Паскаль не имеет специальных средств ввода-вывода всего массива, поэтому данную операцию следует организовывать поэлементно. При вводе массива необходимо последовательно вводить 1-й, 2-й, 3-й и т.д. элементы массива, аналогичным образом поступить и при выводе. Следовательно, для ввода-вывода необходимо организовать цикл, в котором практически все операции с массивами необходимо проводить поэлементно. Для обработки элементов массива удобно использовать цикл for ... do.
{ Ввод элементов массива X с помощью цикла while.}
var
х: array [1..100] of real;
i,n: integer; begin
writeln {'введите размер массива'};
readln(N);
i:=l;
while (i<=N) do
begin
write('x(',i,')=');
readln(x[i]);
i:=i+l
end;
end.
{ Ввод элементов массива X с помощью цикла for. }
var
х: array [1..100] of real; i,n: integer;
begin
readln(N);
for i:=l to N do begin
write('x(',i, ')= ');
readln(x[i])
end;
end.
Как видно, цикл for ... do удобно использовать для обработки всего массива, и в дальнейшем при выполнении таких операций мы будем применять именно его.
Вывод массива организуется аналогично вводу.
Алгоритм нахождения суммы элементов массива
Дан массив X, состоящий из n элементов. Найти сумму элементов этого массива. Блок-схема алгоритма расчета суммы приведена на рис. 5.3.
Соответствующий алгоритму фрагмент программы будет иметь вид:
s: = 0;
for i:-l to N do
s:=s+x[i];
Алгоритм нахождения произведения элементов массива
Дан массив Х, состоящий из n элементов. Найти произведение элементов этого массива. Блок-схема алгоритма приведена на рис. 5.4. Соответствующий фрагмент программы будет иметь вид:
р:=1;
for i:=l to N do
p:=p*x[i];