Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


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




Цель работы: Разработка алгоритмов и написание приложений циклической структуры с использованием подпрограмм и одномерных массивов.

Сформировать структуру статического одномерного массива рекомендуется в разделе определения типов type, а затемописать переменную соответствующего типа в разделе описания переменных var. Например,

Type tVect = array [1..10] of real48;

Var   Ar: tVect;

Возможно выполнить описание массива с использованием только раздела var. Например,    Var Ar: array [1..10] of real48;

В результате статически выделяется память для массива из 10 элементов типаreal48, которая освобождается при завершении работы блока, где массив описан.  Для обращения к элементу массива применяется операция индексации Ar[i] (в данном случае индекс может быть константой, переменной или целочисленным выражением в интервале от 1 до 10). В качестве индекса можно использовать любой порядковый тип. Над элементами массива можно выполнять все операции допустимые для заявленного типа.

Пример 11. Ввести целочисленный массив из n чисел и определить сумму максимальных значений. Предполагается, что элементы в массиве повторяются. Для ввода размерности массива и его элементов оформить отдельную процедуру.

Program Example_11;

{$APPTYPE CONSOLE}

Uses SysUtils;

type tVect = array[1..100] of integer;

Procedure InputAr(Var Ar:tVect; Var n:integer);

Var i:integer;

Begin

write('Введите размер массива: '); readln(n);

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

for i:=1 to n do

read(Ar[i]);

Readln

end; {Input}

Var n,i,max,sum:integer;

Ar: tVect;

Begin

InputAr(Ar,n);

// поиск максимальных и их суммирование

max:=Ar[1]; sum:=Ar[1];

for i:=2 to n do

if Ar[i]>max then

          begin

          max:=Ar[i];

          sum:=Ar[i]

          end

else if Ar[i]=max then

                sum:=sum+Ar[i];

writeln('Сумма максимальных = ',sum);

Readln

End.

Результат работы приложения представлен в окне вывода (рис.5):

Рис.5. Результат работы приложения (пример 11)

       Стандартная процедура Exit  завершает работу своего программного блока. Вызов Exit внутри процедуры или функции завершает их работу. Вызов Еxit в основном блоке приводит к завершению всего приложения.

Пример 12. В результате выполнения фрагмента кода

Procedure OutPut;                 

Begin

writeln ('22222'); Exit; writeln ('33333')

   End; { OutPut}

Begin

writeln ('11111'); OutPut; Exit; writeln ('STOP'); … будут выведены следующие строки: 11111

           22222

                                                           

Стандартные процедуры Continue и Break

Continue - вызывает передачу управления следующей циклической итерации игнорируя расположенные ниже операторы, составляющие тело цикла.

Break – досрочно завершает цикл любого типа (самый внутренний цикл из охватывающих этот оператор).
       Пример 13. В одномерном массиве определить первый отрицательный элемент и его номер. Если отрицательных элементов в массиве нет, вывести соответствующее сообщение.

Program Example_13;

{$APPTYPE CONSOLE}

Uses SysUtils;

Const N = 5;

Var vect: array [1..N] of integer;

              i: byte;

  mesage: boolean; { флаг }

Begin

writeln ('Введите ', N, ' элементов вектора:');

for i:= 1 to N do

begin

write ('vect[',i,'] = ');

readln (vect[i])

end;

mesage:= False; // число не найдено

for i:= 1 to N do

begin

if vect[i] >= 0 then Continue; // переход на следующую итерацию

   writeln (' Первое отрицательное число = ',vect[i],' с номером ',i);

mesage:= True;                 // найдено отрицательное число

Break                                  // досрочный выход из цикла

end;

if not mesage then writeln (' Отрицательных чисел нет!!!');

readln

E nd.

Результаты работы приложения представлены в окнах вывода (рис.6,рис.7):

Рис.6. Результат работы приложения (пример 13)

Рис.7. Результат работы приложения (пример 13)

Варианты заданий

Для решения задачи следует применить статическое выделение памяти для массивов. Создать три процедуры, обеспечивающие:

- ввод количества элементов и самих элементов массива (с клавиатуры);

- обработки массива в соответствии с заданием;

- вывод массива на экран.

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

1.   В одномерном массиве, состоящем из N вещественных чисел, вычислить сумму положительных элементов с нечетными номерами и максимальное произведение положительных подряд идущих элементов. Сформировать новый массив, состоящий из отрицательных элементов исходного массива.

2. В одномерном массиве, состоящем из N целых чисел, вычислить сумму положительных четных элементов и минимальное произведение отрицательных подряд идущих элементов. Сформировать новый массив, состоящий из минимальных элементов исходного массива.

3.    В одномерном массиве, состоящем из N вещественных чисел, вычислить сумму максимальных элементов с четными номерами и максимальное произведение отрицательных подряд идущих элементов. Сформировать новый массив, состоящий из элементов исходного массива, равных первому элементу.

4.    В одномерном массиве, состоящем из N вещественных чисел, вычислить сумму минимальных элементов с нечетными номерами и максимальное произведение трех соседних элементов. Сформировать новый массив, состоящий из элементов исходного массива, равных предпоследнему элементу.

5.    В одномерном массиве, состоящем из N вещественных чисел, вычислить сумму отрицательных элементов с четными номерами и максимальное произведение трех соседних элементов. Сформировать новый массив, состоящий из элементов исходного массива, равных предпоследнему элементу.

6.    В одномерном массиве, состоящем из N вещественных чисел, вычислить сумму положительных элементов с нечетными номерами и минимальную сумму трех соседних элементов. Сформировать новый массив, состоящий из элементов исходного массива, равных предпоследнему элементу.

7. В одномерном массиве из N целых чисел вычислить сумму минимальных элементов равных максимальному элементу и максимальное произведение двух равноотстоящих от центра элементов. Сформировать новый массив, состоящий из элементов исходного массива равных среднеарифметическому значению максимального и минимального элементов этого массива.

8. В одномерном массиве из N целых чисел вычислить среднее геометрическое всех положительных элементов массива и сумму положительных элементов массива, расположенных после второго максимального элемента. Сформировать новый массив, состоящий из последних элементов исходного массива, сумма которых равна сумме максимальных и минимальных элементов.

9. В одномерном массиве из N целых чисел вычислить сумму всех положительных элементов массива с номерами, кратными заданному целому числу и сумму нечетных элементов массива, расположенных вторым минимальным и первым максимальным элементами. Сформировать новый массив, состоящий из элементов исходного массива, из которого удалены первый максимальный и последний минимальный элементы.

10. В одномерном массиве из   N целых чисел вычислить сумму всех положительных элементов массива, расположенных до последнего максимального элемента и сумму четных элементов массива, расположенных между первым и вторым минимальными элементами. Сформировать новый массив, состоящий из элементов исходного массива, из которого удалены первый минимальный и последний минимальный элементы.

11. В одномерном массиве из N целых чисел вычислить сумму всех положительных элементов массива, расположенных между минимальным и максимальным элементами и сумму элементов массива, расположенных до последнего минимального элементами. Сформировать новый массив, состоящий из элементов исходного массива, из которого удалены все минимальные элементы.

12. В одномерном массиве из N целых чисел вычислить сумму всех положительных элементов массива, расположенных между первым и последним минимальными элементами и сумму нечетных элементов массива, расположенных до последнего максимального элемента. Сформировать новый массив, состоящий из элементов исходного массива, из которого удалены все нулевые элементы.

13. В одномерном вещественном массиве из N чисел вычислить сумму всех положительных элементов массива, расположенных между первым и последним максимальными элементами и сумму элементов массива, расположенных до предпоследнего минимального элемента. Сформировать новый массив, состоящий из элементов исходного массива, из которого удалены все отрицательные элементы.

14.   В одномерном массиве, состоящем из N вещественных чисел, вычислить: сумму положительных элементов с четными номерами и максимальное произведение знакочередующихся двух соседних элементов. Сформировать новый массив, состоящий из положительных элементов исходного массива, расположенных после максимального элемента.

15.   В одномерном массиве, состоящем из N целых чисел, вычислить сумму положительных нечетных элементов и максимальную сумму подряд идущих отрицательных элементов. Сформировать новый массив из элементов, расположенных между первым и последним минимальными элементами исходного массива.

16.    В одномерном массиве, состоящем из N вещественных чисел, вычислить сумму минимальных элементов с нечетными номерами и минимальное произведение отрицательных подряд идущих элементов. Сформировать новый массив, состоящий из элементов исходного массива, находящихся между максимальным и предпоследним элементами.

17.    В одномерном массиве, состоящем из N вещественных чисел, вычислить сумму максимальных элементов массива и максимальное произведение подряд идущих положительных элементов массива. Сформировать новый массив, состоящий из элементов исходного массива, находящихся между минимальным и последним положительным элементами массива.

18.    В одномерном массиве, состоящем из N вещественных чисел, вычислить: сумму положительных элементов с нечетными номерами и максимальную сумму трех соседних знакочередующихся элементов. Сформировать новый массив, состоящий из элементов исходного массива, находящихся между максимальным и первым положительным элементами массива.

19.    В одномерном массиве, состоящем из N вещественных чисел, вычислить сумму элементов с четными номерами, которые больше заданного числа M и минимальную сумму двух элементов, равноотстоящих от середины массива. Сформировать новый массив, состоящий из элементов исходного массива, находящихся между среднеарифметическим и максимальным значениями элементов.

20. В одномерном массиве из N целых чисел вычислить сумму минимальных элементов, находящихся на нечетных местах и максимальную сумму двух равноотстоящих от центра элементов и их номера. Сформировать новый массив, состоящий из элементов исходного массива равных среднеарифметическому значению максимального и минимального элементов этого массива.

21. В одномерном массиве из N целых чисел вычислить среднее геометрическое всех положительных элементов массива и сумму положительных элементов массива, расположенных после второго максимального элемента. Сформировать новый массив, состоящий из начальных элементов исходного массива, сумма которых равна сумме максимальных и минимальных элементов.

22. В одномерном массиве из N целых чисел вычислить сумму элементов массива, кратных заданному целому числу и сумму нечетных элементов массива, расположенных между последним минимальным и вторым максимальным элементами. Сформировать новый массив, состоящий из элементов исходного массива, из которого удалены максимальные и первый минимальный элементы.

23. В одномерном массиве из N целых чисел вычислить сумму элементов массива, расположенных до первого максимального элемента и сумму нечетных элементов массива, расположенных между вторым и последним минимальными элементами. Сформировать новый массив, состоящий из элементов исходного массива, из которого удален последний максимальный элемент.

24. В одномерном массиве из N целых чисел вычислить сумму всех положительных элементов массива, расположенных между вторым четным и максимальным элементами и сумму элементов массива, расположенных до первого нечетного отрицательного элемента. Сформировать новый массив, состоящий из элементов исходного массива, из которого удалены все отрицательные элементы.

25. В одномерном массиве из N целых чисел вычислить сумму всех положительных элементов массива, расположенных между первым нечетным и последним максимальным элементами и сумму четных элементов массива, расположенных после последнего максимального элемента. Сформировать новый массив, состоящий из элементов исходного массива, из которого удалены все элементы, кратные заданному числу.

 





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


Дата добавления: 2018-10-15; Мы поможем в написании ваших работ!; просмотров: 501 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Бутерброд по-студенчески - кусок черного хлеба, а на него кусок белого. © Неизвестно
==> читать все изречения...

3279 - | 3205 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.013 с.