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

 

Цель работы:приобрести практические навыки в составлении про-грамм для обработки одномерных массивов.

Задание

 

1. Изучать оператор описания массивов языка Бейсик, правописание индексированных переменных одномерных массивов и особенности их при-менения.

 

2. Для заданного варианта составить схему алгоритма и реализую-щую его программу для обработки одномерного массива.

 

3. Произвести на ЭВМ расчеты по разработанной программе для исходных данных приведенных в табл. 5.1.

4. Получить распечатку программы и результатов расчета.

5. Оформить отчет по лабораторной работе.

 

Указания по выполнению работы

 

Массивом называется упорядоченная последовательность величий (элементов массива), обозначаемая одним именем. В одномерном массиве положение элемента определяется его номером или индексом массива. Для обозначения элементов одномерного массива в Бейсике служат переменные с индексом вида A(n), где A - имя переменной (массива) образуется с помощью буквы и цифры; n – индекс переменной (массива) может обозначаться числом, простой переменной или арифметическим выражением. Начинаются индексы с 0. Например, A(4) – четвертый элемент массива A; B1(k) – k-й элемент массива B1.

 

Язык Бейсик не всегда требует объявления массива при использовании его в программе. Если массив содержит 11 элементов, то достаточно одного упоминания имени переменной, чтобы Бейсик автоматически выделил ячейки в памяти ПЭВМ для массива с 11 элементами и присвоил им нулевые зна-чения. Первый элемент массива по умолчанию имеет ноль, а не 1, поэтому последний элемент будет иметь порядковый номер 10.

 

Если вы хотите работать с большими массивами, необходимо уведомить Бейсик с помощью оператора DIM. Общая форма данного оператора сле-дующая:

 

DIM имя1 (индекс1) [, имя2(индекс2), …]

 

где имя1, имя2 – имена массивов переменных; индекс1, индекс2 – размерность массива, выражаемая следующим образом:

 

[нижний TO] верхний [, нижний TO] верхний …,


 

 


где нижний – нижнее значение индекса массива (по умолчанию ноль); верх-ний –верхнее значение индекса массива.

 

Оператор DIM резервирует в памяти ЭВМ место для описываемого массива. При описании одним оператором DIM нескольких массивов их описания располагаются в строке оператора через запятую. Например, опе-ратор

 

DIM А(3),В(2)

 

резервирует в памяти ЭВМ места для четырех элементов А(0),А(1), А(2),А(3) массива А и трех элементов В(0),В(1),В(2) массива В.

 

Описание всех массивов рекомендуется давать в начале программы, если оно отсутствует, то по умолчанию максимальное значение индекса равно

 

10.

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

 

В качестве примера на рис.5.1 приведены алгоритм и программа фор-мирования одномерного массива В из элементов массива А размером n, удовлетворяющих условию ai > c , i =1,2, …, n .

 

Программа составлена в общем виде и может использоваться для мас-сивов размером до 20, который задан оператором DIM в строке 20. Размер обрабатываемого массива А вводится в переменную N.

 

Операторы первого цикла обеспечивают поэлементный ввод массива А. При этом оператор INPUT выполняется N раз (по числу элементов массива) и при каждом его выполнении в цикле значение элемента массива вводится с клавиатуры . Оператор PRINT каждый раз выводит на дисплей запрос о вводе очередного элемента массива.

Операторы второго цикла с целью контроля ввода исходного массива А обеспечивают вывод его элементов на дисплей в плотном формате в одну строку с заголовком МАССИВ А:. Оператор PRINT без списка вывода осу-ществляет возврат каретки после вывода последнего элемента и выхода из цикла Выбор элементов массива А, удовлетворяющих заданному условию формирование из них и вывод элементов массива В совмещены в целях со-кращения программы в третьем цикле. Управляющей переменной I этого цикла является индекс массива А. Индексом формируемого массива B служит переменная К, значение которой до входа в цикл задается равным нулю и увеличивается на единицу при каждом выполнении условия А(I)>С, прове-ряемого в цикле условным оператором IF. Вывод элементов массива В осу-ществляется оператором PRINT в плотном формате в одну строку с заголов-ком МАССИВ В.


 

 


Начало

 

 

Ввод n,c, массива A

 

 

Вывод массива A

 

k=0, i=1

 

Нет ai>c Да  
     
       

 

k=k+1 bk=ai

 

 

Вывод bk

 

i=i+1


 

REM Программа формирования массива

 

DIM А(20),В(20)

REM Ввод исходных данных

 

PRINT “Введите значение С=”; INPUT С

 

PRINT “Введите размер массива A N=” INPUT N

 

FOR 1=1 ТО N

PRINT “Введите значение A(“;I;”)=”; INPUT A(I)

 

NEXT I

REM Контрольный вывод массива A PRINT “Массив A:”;

 

FOR I=1 TO N

PRINT А(I); NEXT I PRINT

 

REM Формирование и вывод массива B PRINT ”Массив В:”;

 

К=0

 

FOR I=1 ТО N IF A(I) > C THEN К=К+1 B(К)=А(I) PRINT В(К); END IF

 

NEXT I

PRINT

 

END

 

б)


 

Да i<=n

 

 

Нет

 

Конец

 

а)

 

Рис.5.1. Пример программирования алгоритма формирования одно-мерного массива: а - схема алгоритма; б - его программная реализация.

 


Таблица 5.1

 

Варианты заданий к лабораторной работе № 5

  Составить программу обработкиодномерного массива А размером n n k  
п.п    
1. Вычислить произведение всех элементов -  
2. Вычислить сумму всех элементов -  
3. Удалить k-й элемент и сформировать новый массив размером n-1  
4. Включить дополнительный элемент в k-ю позицию и сформировать  
  новый массив размером n+1      
5. Переставить местами k-й и (k+1)-й элементы и образовать новый массив  
6. Определить максимальный элемент -  
7. Определить минимальный элемент -  
8. Определить количество положительных элементов -  
9. Определить количество отрицательных элементов -  
10. Сформировать новый массив, состоящий из положительных элементов -  
11. Сформировать новый массив, состоящий из отрицательных элементов -  
12. Определить максимальный из отрицательных элементов -  
13. Определить минимальный из положительных элементов -  
14. Определить число элементов, превосходящих по величине первый -  
  элемент          
15. Сформировать новый массив, состоящий только из элементов, превос- -  
  ходящих по величине первый элемент      
16. Сформировать новый массив, состоящий только из элементов, не пре- -  
  восходящих по величине первый элемент      
17. Сформировать новый массив В, элементы которого bi = kai , i =1,…, n 3,14  
18. Сформировать новый массив В, элементы которого 5,74  
  bi = kai , i =1,…, n / 2и bi =2kai , i = n / 2+i ,…, n      
19. Выполнить сортировку массива так, чтобы a1 > a2 > …> an -  
20. Выполнить сортировку массива так, чтобы a1 < a2 < …< an -  
Из двух одномерных массивов А и В одного размера n сформировать n k  
п.п           массив C, элементы которого равны:  
               
21. ci = ai +kbi , i =1,…, n 3,14  
22. ci = kai bi , i =1,…, n 1,57  
23. ci = aibi +k , i =1,…, n 6,28  
24. ci = kai / bi , i =1,…, n 2,56  
25. ci = k (ai + bi ) /(ai bi ) , i =1,…, n 8,34  
26. ci = ai +bi , i =1,…, n -  
27. ci = ai bi , i =1,…, n -  
28. ci = ai bi , i =1,…, n 6,28  
29. ci = ai / bi , i =1,…, n 2,56  
30. ci = k (ai +bi ) / ai bi , i =1,…, n 8,34  

Примечание. Значения элементов массивов во всех вариантах заданий выби-раются произвольно


 

 


Лабораторная работа №6