КАМЧАТКА Пятница, 17.05.2024, 17:34
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
Категории сайта
 
Категории раздела
Языки программирования [11]
Паскаль(Pascal) [7]
Си(C++) [1]
Джава (Java) [1]
Матлаб(Matlab) [1]
C#(Си Шарп) [1]
Php [1]
HTML [1]
JavaScript [1]
MySQL [0]
CSS [1]
Ассемблер(Assembler) [1]
 
Мини-чат
 
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
 
Это интересно
 
Пожертвуйте цент на содержание сайта
 
Камчатское Интернет-радио

Бесплатно
для "Безлимитной Камчатки"

 
Котик
 
Время до Нового Года
 
-
Главная » Статьи » Программирование » Паскаль(Pascal)

Урок 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 – внутренний).

Категория: Паскаль(Pascal) | Добавил: Cooladmin (18.05.2014)
Просмотров: 716 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
 
Поиск
 
Время
 
Это интересно
 
Погода

Погода от Метеоновы по г. Москва

Погода от Метеоновы по г. Петропавловск-Камчатский

Погода от Метеоновы по г. Елизово

Погода от Метеоновы по г. Вилючинск

 
Гороскоп
Loading...
 
Курс валют
 
Активность
Приветствуем нового пользователя: ivanbockarev817 07.06.2019 в 18:20
Приветствуем нового пользователя: defaultNick 14.12.2016 в 22:48
ivanbockarev817 прокомментировал(а) Assassin's Creed... 07.06.2019 в 18:27
RiPsler прокомментировал(а) Max Payne 3... 08.05.2014 в 23:59
Cooladmin добавил(а) материал: Медведев оценил отно... 21.05.2014 в 21:39
Cooladmin добавил(а) материал: Власти ДНР не намере... 18.05.2014 в 00:31
Cooladmin добавил(а) пост в теме: Что вы хотите здесь ... 05.05.2014 в 14:43
Cooladmin добавил(а) пост в теме: Какую музыку и какие... 05.05.2014 в 14:42
 
Комментарии
 
Афоризмы
 
Администратор Овчинников В.А. © 2024

Яндекс.Метрика