Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Массивы.

Читайте также:
  1. Вложенные циклы. структурированные типы данных - массивы. объявление и использование массивов в программе. одномерные и многомерные массивы.
  2. Вопрос 23. Сложные типы данных. Массивы. Операторы ввода-вывода.
  3. Массивы. Одномерные массивы.
  4. Указатели и массивы.

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

Массив - эта структура данных в языке Pascal, имеющих общее имя, к элементам которой можно обращаться посредством индексов.

Количество элементов в массиве должно быть заранее определено.

Массивы бывают одномерные (линейные), двумерные (прямоугольные, или, как их называют в математике, матрицы) и размерности большей двух.

Линейный массив представим в виде строки, например:

A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] одномерный массив из 8 элементов

Матрицу можно представить в виде прямоугольной таблицы:

B[1,1] B[1,2] B[1,3] B[1,4] двумерный массив из 3 стоок и 4 столбцов

B[2,1] B[2,2] B[2,3] B[2,4]

B[3,1] B[3,2] B[3,3] B[3,4]

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

Например, пусть изображенные выше массивы A и B содержат в себе соответственно элементы целого и вещественного типов. Тогда они должны быть описаны следующим образом:

Var A: Array [1..8] Of Integer;

B: Array [1..3,1..4] Of Real;

Здесь Array - служебное слово языка, обозначающая массив.

Для обращения к конкретному элементу массива используется имя массива и индексы, разделяемые запятыми и заключенные в квадратные скобки, например:

A[7]:=334; {предпоследнему элементу массива A присваивается значение 334} B[2,j]:=A[i]-B[3,4]; {j-му элементу 2-й стоки массива B присваивается значение, равное разности i-го элемента массива A и нижнего левого элемента массива B}

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

Для обработки массивов целесообразно использовать циклы FOR.

Например, программа, обеспечивающая ввод оценок ученика и печать его среднего балла:

Program ArrayExample;

Var I: Integer; {для организации цикла}

N: Integer; {количество оценок}

O: Array [1..100] Of Integer; {линейный массив для 100 (max) оценок} S: Integer; {сумма всех оценок}

Begin

Write ('Количество оценок (не больше 100): '); Read (N);

Writeln ('Введите ',N,' оценок через пробел. Конец ввода - Enter'); S:=0; {обнулить сумму}

For I:=0 To N Do Begin

Read (O[I]); {считать i-ю оченку}

S:=S+O[I] {добавить ее к сумме}

End;

Writeln('Средний балл равен ',S/N:1:1) {вывод среднего с точностью 0.1} End.

 

При обработки массивов размерностью большей единицы обычно применяют вложеннные циклы FOR.

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

Program Array2Example;

Const NKids=3; {количество учащихся}

NO=5; {количество оценок}

Var O: Array [1..10,1..15] Of Integer; {массив оценок}

F: Array [1..10] Of String; {массив фамилий учеников}

S: Array [1..10] Of Real; {массив для средних оценок}

M: Integer; {для хранения индекса ученика с максимальным средним} Max: Real; {для хранения максимального среднего балла}

I,J: Integer; {для организации циклов}

Begin

M:=1; {пусть ученик с максимальным средним баллом - первый} Max:=0; {пусть максимальный средний балл равен 0}

For I:=1 To NKids Do Begin

S[I]:=0;

Write ('Фамилия ',I,'-го ученика: ');

ReadLn (F[I]);

WriteLn ('Введите ',NO,' оценок через пробел. Конец ввода - Enter'); For J:=1 To NO Do Begin

Read (O[I,J]); {считаем J-ю оценку I-го ученика}

S[I]:=S[I]+O[I,J] {добавим ее к сумме оценок}

End;

S[I]:=S[I]/NO; {разделим сумму на количество для нахождения среднего} If S[I] > Max Then Begin {если текущий средний балл больше максимального} M:=I; {то номер ученика с максимаольным баллом - текущий} Max:=S[I] {и максимальный средний балл заменим на текущий} End;

Readln {для подготовки к чтению следующей фамилии}

End;

WriteLn ('Максимальный средний балл имеет ',F[M])

End.




Дата добавления: 2015-02-16; просмотров: 88 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав