Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

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



 

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

 

Задача.

 

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

 

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

 

Наименование переменной Обозначения в программе
Имя массива 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 – признак того, что массив упорядочен.

 

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

Задача.

Задан одномерный массив целых чисел. Найти количество нечетных чисел среди элементов массива

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

 

Наименование переменной Обозначения в программе
Имя массива a
Размер массива n
Индекс массива i
Количество нечетных чисел kol

 

3. Листинг программы

 

program lab5;

uses

crt;

var

a: array [1…100] of integer;

n, i,kol : integer;

begin

clrscr;

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

readln (n);

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

for i:=1 to n do

readln (a[ i ]);

kol:=0;

for i:=1 to n do

if odd(a[ i ]) then kol:=kol+1;

writeln(‘Количество нечетных = ’, kol);

readln;

end.

 

Вопросы для самоконтроля

 

  1. Что такое массив?
  2. Будут ли сохранены данные массива в памяти компьютера после окончания работы программы?
  3. Что такое индекс массива?
  4. Какого типа должны быть переменные, являющиеся индексами массива?
  5. Как можно задавать размер массива?
  6. Может ли реальное количество элементов в массиве быть меньше, чем указано при описании?
  7. Может ли реальное количество элементов в массиве быть больше, чем указано при описании?

 




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

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.