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

 

Рассмотрим типовые задачи обработки одномерных массивов.

 

Задача.

 

Составить программу подсчета суммы и произведения элементов одномерного массива вещественных чисел.

 

Таблица идентификаторов

 

Наименование переменной Обозначения в программе
Имя массива a
Размер массива n
Индекс массива i
Сумма элементов S
Произведение элементов p

 

program mas_1;

uses

crt;

var

a : array [1…100] of real;

n, I : integer;

p, s : real;

begin

clrscr;

{подготовить переменные для суммы и произведения}

s: = 0; p: =1;

writeln ('введите размер массива n<=100');

readln (n);

writeln ('введите элемент массива');

for i:=1 to nk do

readln (a[i] );

for i:=1 to nk do

begin

s:= s + a[ i ];

p:= p * a[ i ];

end;

writeln ('Сумма = ',s:8:3,'Произведение =',p:8:3);

readln;

end.

 

При накапливании суммы переменную необходимо обнулить, а при накапливании произведения – присвоить 1.

 

Задача.

Дан массив a(n). Найти максимальный элемент массива и определить его номер.

 

Таблица идентификаторов

 

Наименование переменной Обозначения в программе
Имя массива a
Размер массива n
Индекс массива i
Максимальный элемент max
Номер максимального элемента nmax

 

 

program mas_2;

var

a: array [1…100] of real;

i,n,nmax: integer;

max: real;

begin

writeln ('введите размер массива n<=100');

readln (n);

writeln ('введите элементы массива');

for i:=1 to n do

readln (a[ i ] );

{за максимальный принимается первый элемент массива}

max:=a[1]; nmax:=1;

for i:=1 to n do

If a[i]>max then

begin

max:=a[i];

nmax:=i;

end;

writeln ('max =', max, ' N=', nmax);

readln;

end.

 

Задача.

 

Задан массив целых чисел. Отсортировать элементы одномерного массива по возрастанию.

 

Существует много способов сортировки элементов массива

Таблица идентификаторов

 

Наименование переменной Обозначения в программе
Имя массива a
Размер массива n
Индекс массива i
Флажок flag
Дополнительная переменная для обмена местами сосодних элементов p

 

program mas_3;

uses

crt;

var

a: array [1…100] of integer;

f, n, i,p : integer;

 

begin

clrscr;

writeln ('введите размер массива n<=100');

readln (n);

writeln ('введите элементы массива');

for i:=1 to n do

readln (a[i]);

repeat

f:=0;

for i:=1 to n-1 do

if a[ i ]>a[i+1] then

begin

p: =a[ i ];

a[ i ]:=a[i+1];

a[i+1]:=p; f:=1;

end;

until f=0;

for i:=1 to n do writeln (a[ i ]);

readln;

end.

В данном алгоритме используются вложенные циклы.

Внутренний цикл (for…to…do) – позволяет один раз пройтись по массиву, сравнивая соседние элементы. В случае, если предыдущий элемент (a[ i ]) окажется больше последующего (a[i+1]), элементы меняются местами через дополнительную переменную p.

Внешний цикл(repeat…until) – повторяется до тех пор, пока массив не будет упорядочен.

В программе применяется переменная – флажок.

f =1 – признак того, что два соседних элемента менялись местами, массив еще не упорядочен.

f =0 – признак того, что массив упорядочен.

 








Дата добавления: 2015-05-21; просмотров: 647;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.01 сек.