Организация данных в виде массива

12
Организация данных в виде массива

Upload: kristen-mcgowan

Post on 03-Jan-2016

56 views

Category:

Documents


6 download

DESCRIPTION

Организация данных в виде массива. Массив - это упорядоченный набор фиксированного количества некоторых значений, называемых элементами массива. Каждый массив имеет имя. К любому элементу массива можно обратиться по имени и индексу- порядковому номеру элемента. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Организация данных в виде массива

Организация данных в виде массива

Page 2: Организация данных в виде массива

• Массив - это упорядоченный набор фиксированного количества некоторых значений, называемых элементами массива.

• Каждый массив имеет имя. К любому элементу массива можно обратиться по имени ииндексу- порядковому номеру элемента.

• Массивы могут быть одномерные ( линейные), двумерные – (прямоугольные или матрицы), многомерные

Page 3: Организация данных в виде массива

Формат описания одномерного массива

• Имя массива: ARRAY[границы] OF тип данных• Массив описывается в разделе VAR• Пример1 Var М: array[1..10] of integer; Описан массив М целых

чисел. Размер массива 10 элементов. Т. е. в ОП зарезервировано место под 10 значений. Каждое значение будет хранится в отдельной переменной (ячейке), обращение к которой происходит по имени массива и порядковому номеру (индексу)

• Например, М[7] – это 7-й элемент массива М• Пример2 Можно количество элементов массива задать в

разделе CONST, тогда описание будет выглядеть так: • CONST n=12;• VAR М: array[1..n] of integer; • Пример3 CONST n=12;• VAR st: array[1..n] of string; описание массива st символьных (не

числовых) данных. Массив может содержать не более 12 элементов

Page 4: Организация данных в виде массива

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

ввод с клавиатурыПомните Почти все действия с массивом выполняются в цикле!

User Crt;Const n=10;

Var M: array[1..n] of real;Begin {ввод с клавиатуры}

For i:=1 to n Do Begin Writeln('ввести ',i,'-й элемент');Readln(M[i]); End;

{вывод в столбик} For i:=1 to n Do Begin Writeln(‘M[‘ , i , ‘]=‘ , M[i]); End;

End.

Page 5: Организация данных в виде массива

Заполнение по формуле и вывод

User Crt;Const n=10;Var M: array[1..n] of real; Begin {Заполнение по формуле и вывод}

For i:=1 to n DoBegin M[i]:=(i*i+1)/sin(i);Writeln('A(',i,')=',M[i]);

End; End.

Page 6: Организация данных в виде массива

Заполнение массива случайными числами

Const n=10;Var a: array[1..n] of Real; i:integer;

Begin {Заполнение случайными числами и вывод в строку} Randomize;//

For i:=1 to n Do Begin A[i]:=random(4)+2; Write('A(',i,')=',a[i]:4);End;End;

Page 7: Организация данных в виде массива

Типовые задачи на одномерные массивы

• Задача1 Нахождение количества и суммы. Дан массив А из 10 элементов, которые вводятся с клавиатуры. Подсчитать, сколько элементов массива имеют значение, меньшие заданного значения Z и сумму этих элементов.

Page 8: Организация данных в виде массива

Задача №1• Program zadacha1;

Const n=10;Var a: array[1..n] of Real;

• col, z : integer; sum: real;

• Begin {Заполнение c клавиатуры} For i:=1 to n Do Begin Writeln('A(',i,')='); Read(A[i]);

End;

{подсчет количества и суммы элементов, удовлетворяющих условию} col:=0; Sum:=0; Writeln('ввести значени z=');Readln(z);

For i:=1 to n Do If a[i]<z Then Begin col:=col+1;summa:=sum+a[i]; End;

End.

Page 9: Организация данных в виде массива

Задача №2• Задача2 Поменять местами значения элементов. Написать только

процедуру обработки. Дан массив A[1..40]. Поменять местами 1-й элемент с последним, 2-й с предпоследним и т. д.

……..Var p,i:integer; a: array[1..40] of Real;

Begin /ввод и вывод исходного массива

….................../ОБРАБОТКА For i:=1 to n Do

Begin P:=a[i]; A[i]:=a[40-i+1]; A[40-i+1]:=p;End;

/вывод полученных результатов

Page 10: Организация данных в виде массива

Задача №3• Задача3 Формирование нового массива из элементов старого

Дан массив X[1..20].Сформировать новый массив Y, состоящий из 10 первых положительных элементов массива Х……………….Const n=40;Var k,i:integer; x,y: array[1..n] of integer;Begin/ввод и вывод исходного массива…...................

• /обработка• K:=0;

For i:=1 to n Do Begin If x[i]>0 Then Begin k:=k+1;y[k]:=x[i]; End;End;/вывод полученных результатов

Page 11: Организация данных в виде массива

Задача №4

• Задача4 Cортировка массива по возрастанию Написать только процедуру обработки.Дан массив А[1..N].

• Const n=40;Var j, i, w: integer; a: array[1..n] of integer;Begin  w:=0;  For i:=1 to n-1 Do   Begin    For j:=i+1 to n Do   

If a[i]>a[j] Then Begin w:=a[i]; a[i]:=a[j]; a[j]:=w; End;  End;End.

Page 12: Организация данных в виде массива

Задача №5• Задача5 Вставка элементов в заданный массив. Написать

только процедуру обработки. Дан массив А[1..N]. Вставить число 10 в позицию M данного массив,причем 1<=m<=n

• Const n=40;Var j,m:integer; a: array[1..n] of integer;Begin Writeln('номер индекса для вставки = ');Readln(m); For i:=n+1 Downto m+1 Do Begin A[i]:=a[i-1]; A[m]:=10; End;End.