Обработка одномерных числовых массивов

Автор работы: Пользователь скрыл имя, 25 Мая 2015 в 22:57, лабораторная работа

Описание работы

При выполнении работы необходимо знать:
• Знать и уметь строить алгоритмы циклической структуры для обработки одномерных массивов, знать операторы цикла (смотри лаб. работу № 5).
• Знать принципы и приемы обработки одномерных числовых массивов с использованием операторов цикла.
• Уметь составить схему программы (алгоритм) циклической структуры для обработки одномерного числового массива и записать программу по готовому алгоритму.

Файлы: 1 файл

LAB_8_Odnomernye_massivy.doc

— 374.50 Кб (Скачать файл)

Лабораторная работа № 8.

Обработка одномерных числовых массивов.

 

При выполнении работы необходимо знать:

  • Знать и уметь строить алгоритмы циклической структуры для обработки одномерных массивов, знать операторы цикла (смотри лаб. работу № 5).
  • Знать принципы и приемы обработки одномерных числовых массивов с использованием операторов цикла.
  • Уметь составить схему программы (алгоритм) циклической структуры для обработки одномерного числового массива и записать программу по готовому алгоритму.

 

Теоретический минимум:

 

Переменные-массивы являются переменными сложного (структурированного) типа и представляют собой организованную группу элементов одного типа (линейную или прямоугольную таблицу).

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

Линейные таблицы представляют собой одномерные массивы, а прямоугольные таблицы - двумерные массивы.

 

-5

6

12

67

-90

34

-45

0

-4

83

-24

0

1

2

3

4

5

6

7

8

9

10


                            Порядковые   номера   элементов   массива ( индексы )

 

A [10] - одномерный массив.

 

Так как массив имеет одно общее имя, его элементы различаются только номерами (индексами).

При объявлении массива в программе после имени массива в квадратных скобках указывается его размерность, то есть количество элементов. Элементы такого массива идут по порядку с 0 по 10 (всего 11 элементов). Нулевой элемент можно не использовать.

Z [5, 6] - двумерный массив, содержит 5 строк и 6 столбцов (или 6 строк и 7 столбцов вместе с нулевыми). Чтобы обратиться к текущему (очередному) элементу массива, надо указать номер строки и столбца:  Z[i, j].

 

                                            j   номера столбцов

        i номера строк 

 

0

1

2

3

4

5

6

0

34

51

-9

0

25

74

90

1

-7

-11

-43

67

98

10

56

2

-45

8

23

14

0

21

33

3

9

12

-15

62

83

48

17

4

-37

68

71

4

0

19

28

5

-59

-13

1

85

-7

-1

2


 

 

Таким образом, массив имеет следующие свойства:

 

  • Массив имеет имя, которое задает программист
  • Массив имеет сквозную нумерацию элементов
  • Массив имеет размерность, то есть определенное количество элементов
  • Массив имеет тип, определяющий тип всех входящих в него элементов
  • Массив имеет значения элементов, которые могут быть заданы в процессе выполнения программы и могут изменяться в пределах диапазона объявленного типа в ходе выполнения программы

 

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

 

Объявление одномерного массива в программе:

 

Type Mas = array [1..10] of integer;      { объявляем тип массив из 10 целых элементов }

 Var A, B : Mas;                                   { переменные A, B типа массив }

 

Массивы можно объявить и так:

Var A, B : array [1..10] of integer;  { переменные A, B типа массив из 10 целых элементов }

 

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

 

Ввод элементов массива может осуществляться разными способами. Любая обработка массивов, в том числе ввод и вывод, производится поэлементно, т.е. в цикле.

Приведем пример организации ввода одномерного массива целых чисел А [10]. Нулевой элемент использовать не будем.

 

Ввод элементов одномерного массива с клавиатуры:

 

For i:=1 to 10 do begin

Writeln(‘Введите значение A[’, i, ‘]: ’);      

Readln(A[i]);

End;

 

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

 

Ввод элементов одномерного массива случайным образом:

 

         Randomize;

For i:=1 to 10 do begin

      A[i]:=random(200)-100;

End;

 

При запуске программы на выполнение элементы массива получат случайные значения при помощи генератора случайных чисел Random в интервале [-100; 100[.

 

Вывод значений элементов массива на экран. Осуществляется при помощи цикла. Перед выводом лучше очистить экран командой ClrScr. Вывод одномерного числового массива на экран можно осуществлять в строчку или столбик.

Вывод значений элементов одномерного массива на экран:

        

         ClrScr;      { очищение экрана }

For i:=1 to 10 do begin

     Write(A[i]:5);       { вывод элементов массива в строчку, на каждый элемент отводится 5 позиций}

End;

 

         ClrScr;       { очищение экрана }

For i:=1 to 10 do begin

     Writeln(A[i]);      

{ вывод элементов массива в столбик }

End;

 

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

 

Задача 8.1.

Задать одномерный числовой массив А [10] из целых чисел. Определить сумму и количество отрицательных элементов массива.

 

Математическая формулировка задачи:

Чтобы определить сумму и количество отрицательных элементов массива, нужно сначала заполнить массив некоторыми числами, а затем просмотреть массив сначала, от первого элемента до последнего (в цикле). Каждый элемент нужно проверить – если он окажется отрицательным (соответствующим нашему критерию), то его нужно добавлять в сумму, а если не отрицательным – то не нужно добавлять в сумму.

Количество элементов, соответствующих какому-либо критерию, в данном случае отрицательных по значению, подсчитывается при помощи специальной переменной. До подсчета она равна нулю, и увеличивается на 1 каждый раз, когда найден нужный (отрицательный) элемент.

 

Текст программы к задаче 8.1:

 

Program Ex_8_1;

Uses Crt;

Type Mas = array [1..10] of integer;  

{ объявляем тип массив из 10 целых чисел }

 Var A : Mas;                                     

{ переменная A типа массив }

        S: real;          

 { сумма отрицательных элементов массива  }

       i: integer;       { индексы массива }

       k: integer;{ количество отрицательных эл-ов массива }

Begin

ClrScr;             { очищение экрана }

Textcolor(1);    { установим цвет текста синий }

Randomize;

For i:=1 to 10 do begin

      A[i]:=random(200)-100;

     Writeln(A[i]);       

{ вывод элементов массива в столбик }

End;

S:=0;   k:=0;

For i:=1 to 10 do begin

          If A[i]<0 then begin

                          S:=S+A[i];

                          k:=k+1;

                          End;

     End;

Writeln;            { перевод строки }

Textcolor(2);    { установим цвет текста зеленый }

Writeln( ‘Сумма отрицательных элементов массива  ’, S);

Writeln(‘Количество отрицательных элементов  ’, k);

Readln;

End.

 

Задача 8.2.

Задать одномерный числовой массив А [15] из целых чисел. Сформировать одномерный массив В из положительных элементов массива А.

 

Математическая формулировка задачи:

Прежде всего нужно заполнить исходный массив А какими-либо числами. Часть из них могут быть положительными, а часть отрицательными или равными нулю.

Чтобы получить одномерный массив В из элементов исходного массива А нужно просматривать массив А в цикле и проверять каждый элемент исходного массива, является ли его значение положительным. Если найден положительный элемент, то его значение нужно записать в первую ячейку нового массива В (присвоить элементу массива В значение элемента массива А). Затем просмотр продолжается. Отыскав второе положительное значение, записываем его во вторую ячейку массива В и так далее.

Обратите внимание, что увеличение индексов (номеров) элементов массива В идет не одновременно с увеличением индексов массива А. В самом деле, ведь не каждый элемент массива А попадет в массив В. Даже количество элементов массива В заранее не известно (это будет зависеть от конкретных данных массива А). Поэтому понадобится одна переменная для индексации массива А и другая переменная для индексации массива В, причем увеличение индекса в массиве В будет происходить только в тот момент, когда очередному элементу массива В присваивается найденный в массиве А положительный элемент.

 

Рисунок:

 

-59

0

17

-8

-36

6

19

97

-29

34

-4

0

1

2

3

4

5

6

7

8

9

10

11

12


     Порядковые   номера   элементов   массива ( индексы )

Информация о работе Обработка одномерных числовых массивов