русс | укр

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

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

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

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


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

Урок 5 - Обработка массива на языке pascal(одномерный, двумерный)

Массивы - структурированный тип данных с элементами одного типа. Количество элементов определяет размер массива. Например, массив составляют заработные платы сотрудников подразделения предприятия, здесь число элементов равно числу сотрудников; массив образуют набор чисел, их количество равно числу элементов массива. Номер элемента массива называется его индексом. Массив может иметь не один, а большее число индексов. Число индексов называется размерностью массива, например, массив с двумя индексами называется двумерным массивом. Таким двумерным массивом является, в частности, матрица системы  n линейных алгебраических уравнений с n неизвестными. В то же время столбец свободных членов этой системы является одномерным массивом.

Массив должен быть описан либо в разделе переменных VAR, либо в разделе типов TYPE  следующим образом:

TYPE <имя_типа> = ARRAY [ti,t2....,tn] OF <тип_элементов_массива>;
VAR <имя_массива>  :  <имя_типа> ;
или
VAR<имя_массива>: ARRAY [ti,t2,...,tn]OF<тип_элементов_массива>;
где      tl,...,tn - тип индекса (перечислимый или интервальный);
Например:
1) VAR           a:  ARRAY   [1..5]   OF    real;
Описан массив  а  действительных чисел, который состоит из 5 элементов.
2) TYPE   t =  ARRAY[1..3,1..4] OF integer;
VAR   b  :  t;
Описана матрица  b из  3 строк и 4 столбцов, элементы которой являются целыми числами.
3) TYPE
tl  =  ARRAY  [1..4]   OF   integer;
t =  ARRAY  [1..5]   OF    t1;
VAR   d : t;
к : t1;

В начале описан тип одной строки t1, затем тип всей матрицы t через тип строки t1. В разделе переменных указано ,что d-двумерный массив размером (5,4), a k - одномерный массив k(4).

Пример обработки одномерного массива

Дан одномерный массив MAS(12) из вещественных чисел. Найти наибольший элемент  массива и его индекс.

program  pr4_1 ;
const  n = 12;  (*константа n определяет размер массива в описании*)
type
m  = array [1..n] of   real ;      (*  m – тип массива mas  *)
var    mas : m ;
i , num : integer;  
max : real;
begin
for i:=1 to n do       (*ввод элементов массива mas по 1 в строке*)
begin
writeln(‘введите элемент массива’, i) ; 
read  (mas[i]);
end;
num :=1;  max := mas [1];
for  i: =2 to n  do
if  mas [ i ] > max  then     begin
max := mas [i ]; num := i ;
end;
writeln;       (* вывод   массива     в строку*)
for i:=1 to n do    write (mas [ i ]:5:1 );   writeln; 
writeln (‘максимальный элемент = ‘, max:4:1,‘   его индекс=’ ,num );
readln;
end.

Переменная max сравнивается с элементами массива, и если элемент массива больше max, то переменной max присваивается значение элемента массива, а переменной num - индекс этого элемента. По окончании цикла переменная max  будет иметь значение, равное максимальному элементу массива, а переменная num - значение индекса этого элемента.

Пример обработки многомерного массива

Как правило, при обработке многомерных массивов используются вложенные циклы, т.е. цикл по столбцам располагается внутри цикла по строкам.
Дана матрица A(3,4), и вектор B (4), состоящие из целых чисел . Умножить матрицу  А на вектор В .

program  pr4-2 ;
const m=3;   n=4;
var
a  : array [ 1 .. m, 1 .. n ] of    integer; (* описание матрицы *)
b  : array [ 1 .. n ] of   integer;                      (* описание вектора *)
c  : array [ 1 .. m ]  of  integer;                      ( * описание  С  *)
i,  j: integer;
begin
for i:=1 to m do                  (* ввод матрицы  *)
begin
writeln (‘введите элементы ‘, i , ‘-той строки’);
for j:=1 to n do read (a [i, j] ); writeln;
end;
writeln (‘введите элементы вектора’);
for j:=1 to n  do                             (* ввод  вектора *)
read (b[ j]);   writeln;
for i:=1 to m do
begin
c [ i ]:=0;        for j:=1 to n do       c[i] := c[ i ]+ a[i , j]* b[j];
end;
for i:=1 to m do      (*форматный вывод матрицы  *)
begin
for j:=1 to n do write (a [i, j]: 4 );  writeln;
end;
for j:=1 to n do  write (b [ j ] :4);    (* вывод  массива B *)
writeln ;
for i:=1 to m do  write (c [ i ] :4);   (* вывод  массива С  *)
readln;
end.

В программе элементы матрицы вводятся по строкам по одному с подтверждением клавишей Enter. А выводятся в общепринятом виде: каждая строка матрицы  с новой строки экрана (цикл i по строкам  внешний, а цикл j – внутренний).

Просмотров: 20150

Вы можете --> Заказать программу или Задать вопрос на форуме

Вернуться воглавление


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


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

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

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


 


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

 
 

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