русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Тема 5. Массивы.(4 часа)


Дата добавления: 2015-07-23; просмотров: 781; Нарушение авторских прав


Содержание занятия: Использование массивов: описание, ввод-вывод значений. Одномерные и двумерные массивы.

1. Определение и описание.

Массив представляет собой набор однотипных данных, имеющих общее имя. В алгебре массивам соответствуют векторы, матрицы, многомерные матрицы.

Примеры: Одномерный массив A[1..6] A[5]

 

Индекс i 1 2 3 4 5 6

Значение элементов

 

 

Индекс нумерует элементы массива. К данному элементу массива обращаются, указывая имя массива и значение индекса. Например, A[5].

Двумерный массив B[0..3,0..2]

 

 

Индекс i 0 1 2 3

j

0 B[1,3]

 
 


 
 


 
 


 

 

Характеристики массива:

1.Тип- общий тип элементов массива;

2.Размерность (ранг) –количество индексов массива;

3.Диапазон –количество допустимых значений каждого индекса;

 

Описание массивов проводится в блоке Var следующим образом:

Имя массива : array[is..ie, js..je,…] of тип элементов;

Где

Array -означает “массив”;

[is..ie, js..je,…] -начальное и конечное значение первого, второго и пр.

индексов массива (индекс может быть один)

тип элементов- любой тип Турбо-Паскаля.

Например, представленные выше массивы должны быть описаны так:

Var a: array [1..6] of integer;

b: array [0..3,0..2] of word;

 

Можно описать массив по-другому, пользуясь оператором описания типа:

 

Type Имя типа= array[is..ie, js..je,…] of тип элементов;

Var Имя массива : имя типа;

 

Например:

Type

vect = array [0...9] of real;

matr = array [0..9, 0..4] of integer;

Var

a,b:vect;

m1,m2: matr;

 

 

2.Ввод элементов.

Ввод элементов массива можно осуществить несколькими способами.



Ввод массива

 
 

 


а) Оператором присваивания

 

б)С клавиатуры г) как типизированную

константу

в) Генератором

случайных чисел

 

а) Ввод с помощью оператора присваивания.

Самый нерациональный способ ввода. Пример:

 

Program Pr1;

Var a: array [1..4] of word;

Begin

a[1]:=2;

a[2]:=21;

 

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

Program Pr1;

Var a: array [1..4] of integer;

i: integer;

Begin

For i:=1 to 10 do Read(a[i]);

 

Здесь цикл перебирает все значения индекса массива.

в)С помощью генератора случайных чисел.

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

Var a: array [1..4] of real;

i: integer;

Begin

For i:=1 to 10 do

a[i]:=random;

 

В этом случае функция random генерирует псевдослучайные числа в интервале от 0 до1.

 

г) Массив как типизированная константа.

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

Program Pr;

Const a: array [1..5] of integer =(5,4,9,1,2);

Begin

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

 

 

3. Пример использования одномерного массива.

Задача. Найти максимальный элемент целочисленного одномерного массива, заполненного случайными числами.

План:

1.Сформировать массив;

2.Присвоить вспомогательной переменной Emax значение первого элемента массива;

3.Сравнить все элементы массива с Emax, если найдется больший элемент, заменить значение Emax.

 

Program Mass;

Const M=100;

Var

Mas:array[1..M] of integer;

Emax, i: integer;

Begin

Randomize; {Процедура устанавливает новый ряд случайных чисел}

For i:=1 to M do

Mas[i]:=random(500); {Функция генерирует целые числа от 0 до 500}

Emax:=Mas[1];

For i:=1 to M do

If Emax< Mas[i] then begin

Emax:=Mas[i];

Imax:=i;

end;

Writeln(‘Максимальный элемент массива Mas[‘,Imax:2,’]=’, Emax:3);

End.

 

4.Особенности использования двумерных массивов.

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

 

 

program pr;

var

a:array[1..10,1..5] of integer;

i,j:word;

begin

for i:=1 to 10 do заполнение двумерного

for j:=1 to 5 do массива случайными числами

a[i,j]:=random(10);

for i:=1 to 10 do

begin

for j:=1 to 5 do

write(a[i,j]:2); печать элементов массива

writeln;

end;

end.

 

В этом примере для печати элементов одной строки массива (матрицы) используется оператор write(a[i,j]:2). Для печати следующей строки курсор переводится на строку вниз оператором writeln.

Еще пример. Программа находит в двумерном массиве минимальный элемент и перемещает его на место a[1,1].

 

program pr11;

const n=10;

var

i,j,min,jm,im,b: byte;

a: array [1..n,1..n] of byte;

begin

randomize; ** заполняем массив случайными

for i:=1 to n do числами **

for j:=1 to n do

a[i,j]:=random(10);

min:= a[1,1];

writeln;

for i:=1 to n do ** ищем минимальный элемент **

begin

for j:=1 to n do

begin

write(a[i,j]:2);

if min>a[i,j] then begin

min:=a[i,j];

im:=i;

jm:=j;

end;

writeln;

end;

b:= a[1,1]; ** переносим минимальный элемент

a[1,1]:=min; на место a[1,1] **

a[im,jm]:=b;

writeln;

writeln;

for i:=1 to n do ** печать массива **

begin

for j:=1 to n do

write(a[i,j]:2);

writeln;

end;

 

end.

 

 



<== предыдущая лекция | следующая лекция ==>
Расчет сумм рядов | Тема 6. Процедуры и функции (4часа)


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.477 сек.