Студопедия Главная Случайная страница Обратная связь

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

Лабораторна робота № 8




 

Обробка одновимірних масивів

Мета роботи — оволодіння практичними навичками роботи з одновимірними масивами, особливостями їх вводу та виводу, набуття подальших навичок по організації програм циклічної структури з використанням прийомів програмування.

 

Теоретична частина

 

Група змінних, яка має одне загальне ім`я, і її змінні розташовані в порядку зростання їх порядкових номерів (індексів), називається масивом.Кожна змінна в цій групі називається елементом масиву і характеризується двома атрибутами: своїм місцезнаходженням усередині масиву і значенням.

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

Значення елементам масиву можна присвоювати різними способами:

  • з допомогою оператора присвоєння:
B(1) = 1 B(2) = 10 B(3) = 100

 

Проте, якщо масив великий, ця процедура стає довгою та утомлюючою.

  • за допомогою циклу при заповнені великого масиву:

1) можна вводити значення з клавіатури:

FOR I= 1 TO 10

INPUT B(I)

NEXT I

2) можна використовувати оператор DATAіREAD:

DATA 10,20, 30, 40, 50, 60

FOR I=1 TO 6

READ B(I)

NEXT I

Цей спосіб зручний і має додаткову перевагу – дані не губляться при повторному виконанні програми. Значення зберігаються в операторі DATA і вводяться в програму один раз – при її написанні. Оператор READ звертається до оператора DATA і присвоює черговій змінній поточне значення з списку.

  • можна використовувати стандарті функції:

FOR I=1 TO 10

B( I ) = RND ( I )

NEXT I

В даному прикладі використовується тільки спеціальна функція, що генерує випадкові числа. Це одна з функцій, яка використовується при створенні навчальних та ігрових програм.

На відміну від попередніх діалектів Бейсику, QBASIC не завжди потребує оголошення масиву при використанні його в програмі. Якщо масив містить менше 11 елементів, достатньо лише одного згадування імені змінної, щоб QBASIC автоматично виділив комірки в пам’яті для масиву з 11-ти елементів і присвоїв їм нульове значення. Перший елемент масиву в QBASIC по умовчанню має індекс нуль, а не 1, тому останній елемент буде мати порядковий номер 10. Дійшовши в робочій програмі до оператора A(1)=3, QBASIC виділить 11 комірок пам’яті і заповнить їх значеннями в наступному порядку:

 

A(0)=0 A(1)=3 A(2)=0
A(3)=0 A(4)=0 A(5)=0
A(6)=0 A(7)=0 A(8)=0
A(9)=0 A(10)=0

 

Якщо ви бажаєте працювати з великими масивами, необхідно повідомити QBASIC з допомогою оператора DIM. Загальна форма оператора DIM наступна:

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

ім¢я1, ім¢я2 – імена масивів змінних;

індекс1, індекс2 — розмірність масиву, що виражається наступним чином:

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

де нижній – нижнє значення індексу масиву (по умовчанню нуль);

верхній — верхнє значення індексу масиву.

Оператор DIM дозволяє резервувати місце в пам’яті одразу для декількох масивів. Наприклад:

DIM A%(15), NAME (20), Z (1 TO 10)

Цим оператором ми одночасно:

  • визначаємо ім’я масиву;
  • визначаємо тип елементів масиву;
  • резервуємо комірки пам’яті для масиву;
  • заповнюємо нульовим значенням комірки для масиву числового типу або пустими рядками текстовий масив.

Оператор DIM може знаходитися в будь-якому місці програми раніше першого звернення до масиву (масивів), які він оголошує. Звичайно всі оператори DIM розміщують на початку програми, що полегшує процес відладки.

Якщо ви працюєте з іншими версіями Бейсика і звикли, що перший елемент масиву має номер 1, то в QBASIC ви можете змінювати порядковий номер першого елемента масиву. Для цього можна використовувати спеціальний оператор:

OPTION BASE значення,

де значення — номер початкового елемента масиву. В QBASIC цей параметр може приймати значення 0 або 1.

Зверніть увагу на те, що масив, визначений в наступному прикладі, складається з 100 елементів (замість 101):

OPTION BASE 1

DIM Х(100)

 

Найпростішими задачами на обробку масиву є задачі на визначення його кількісних характеристик, таких, як сума елементів, їх добуток тощо.

Розглянемо алгоритм знаходження суми елементів масиву X(N). В ньому можна виділити певні дії, що є характерними для задач визначення кількісних характеристик масиву.

В таблиці 8.1. наведені аналогічні операції для знаходження таких кількісних характеристик одновимірного масиву X(N):

  • добуток елементів ( );
  • кількість елементів К;
  • середнє арифметичне К елементів ( );
  • середнє геометричне К елементів ( );
  • максимальний, мінімальний елемент та його номер.

 
 

 


Таблиця 8.1.

 

Характеристика масиву До циклу В циклі Після циклу
Сума S=0 S=S+Xi Вивід S
Добуток P=1 P=P*Xi Вивід P
Кількість K=0 K=K+1 Вивід K
Середнє арифметичне S=0; K=0 S=S+Xi; K=K+1 SA=S/K Вивід SA
Середнє геометричне P=1; K=0 P=P*Xi; K=K+1 SR=P1/K Вивід SR
Максимальний елемент MAX=X1 або MAX=-1020 Якщо Xi>MAX, то MAX=Xi Вивід MAX
Максимальний елемент і його номер MAX=X1 або MAX=-1020, L=1 Якщо Xi>MAX, то MAX=Xi, L= i Вивід MAX, L
Мінімальний елемент MIN=X1 або MIN=1020 Якщо Xi<MIN, то MIN=Xi Вивід MIN
Мінімальний елемент і його номер MIN=X1 або MIN=1020 L=1 Якщо Xi<MIN, то MIN=Xi , L= i Вивід MIN, L

 

Завдання 1. В масиві A(M) знайти суму парних елементів, максимальний елемент і його номер.

 

Програма (Блок-схема представлена на рис. 8.2).

 

REM Програма1. Одновимірні масиви

REM Лабораторна робота №8, задача №1

CLS

INPUT "Введіть розмірність масиву"; M

DIM A(M)

FOR I = 1 TO M

INPUT "Введіть елементи масиву"; A(I)

NEXT I

S = 0

FOR I = 1 TO M

IF A(I) / 2 = INT(A(I) / 2) THEN S = S + A(I)

NEXT I

MAX = A(1)

NM = 1

FOR I = 1 TO M

IF A(I) > MAX THEN MAX = A(I): NM = I

NEXT I

PRINT

PRINT "Сума елементів="; S

PRINT

PRINT "Максимальний елемент=";MAX, "Його номер=";NM

END

 

Завдання 2. Задано масив X(M). Сформувати, використовуючи його елементи, масив Y(M) наступним чином: додатні елементи масиву X розмістити на початку масиву Y; від¢ємні елементи масиву X замінити на середнє арифметичне додатних елементів масиву X і розмістити їх в масиві після додатних; нульові елементи розмістити в кінці масиву Y.

 

 

 

 

Програма (Блок-схема представлена на рис. 8.3)

 

REM Програма2. Одновимірні масиви

REM Лабораторна робота №8, задача №2

CLS

INPUT "Введіть розмірність масиву"; M

DIM X(M)

S = 0: K = 0

FOR I = 1 TO M

INPUT "Введіть масив"; X(I)

IF X(I) > 0 THEN S = S + X(I): K = K + 1

NEXT I

SA = S / K: J = 0

PRINT

PRINT "Середнє арифметичне"; SA

PRINT

PRINT "Сформований масив"

FORI = 1 TO M

IFX(I) > 0 THEN

J = J + 1

Y(J) = X(I)

PRINT Y(J)

END IF

NEXT I

FOR I = 1 TO M

IF X(I) < 0 THEN

J = J + 1

Y(J) = SA

PRINTY(J)

END IF

NEXT I

FOR I = 1 TO M

IFX(I) = 0 THEN

J = J + 1

Y(J) = 0

PRINT Y(J)

END IF

NEXTI

END

 

Контрольні запитання

 

1. Масиви та їх описання.

2. Використання оператора DIM.

3. Способи присвоєння значень елементам масиву.

4. Призначення оператора OPTION BASE.

 

Варіанти завдань

1.Скласти алгоритм і програму для знаходження найменшого з додатних чисел заданого масиву А(12). Результат вивести до друку.

А=(1,-3,8,0,-4,-7,9,15,0,10,-27,16).

 

2. Скласти алгоритм і програму для обчислення середнього геометричного значення елементів заданого масиву В(15), що задовольняють умову В(1)<А. Дані задати довільно, результати вивести до друку. Середнє геометричне чисел – це:

3. Скласти алгоритм і програму для розв’язання наступної задачі. Дано два масиву X(5),Y(7). Скласти з них один масив, розмістивши елементи довільним чином. Результат вивести до друку.

X=(4, -3, 8, 2, 7); Y=(-5, 12, 9, 0, -1, 6, 6).

 

4. В заданому масиві В(15) обчислити різницю двох сусідніх елементів і сформувати з них в масив С. Знайти найбільший і найменший по модулю елементи масиву С. Результати вивести на друк.

В=(2.5; 3.4; 4.1; 5.9; 6; 7; 0; -4; -3.5; 2; -9; 6; -14; -5; 3.7).

 

5. Скласти схему алгоритму і програму перетворення масиву Т(15) так, щоб спочатку записати підряд п¢ять перших додатних елементів масиву. Перетворений масив вивести на друк.

Т = (-4, 1, 2, 3, -3, -2, 7, 8, 6, -4, 8, 9, -3, 0, 5).

 

6. Скласти схему алгоритму і програму для заміни в даному масиві Е(18) усіх нульових елементів середнім геометричним значенням усіх додатних елементів масиву. Перетворений масив вивести до друку.

Е =(6, 0, 7, 8, 9, 0, 1, 3, 5, 0, -1, -3, -5, 0, -4, -5, 0, 3).

 

7. Скласти схему алгоритму і програму для заміни в даному масиві А усіх нульових елементів середнім квадратичним значенням усіх від¢ємних елементів масиву. Результат вивести до друку. Середнє квадратичне n чисел — це

Масив А задати самостійно, прийнявши n=20.

 

8. Скласти алгоритм і програму для перестановки елементів в заданому масиві Р(10) так, щоб на початку стояли елементи заданого масиву із парними індексами. Результати вивести до друку.

Р = (2.12; 2.14; 3.07; 4.64; 9.11; 2.01; 1.20; 1.25; 1.11; 1.17).

 

9. Скласти алгоритм і програму розв`язання наступної задачі. В кожному із заданих масивів В(8) і С(8) знайти найбільше і найменше значення. Вивести до друку отриманні значення і їх номери в масивах.

В=(1, 3, 5, 8, 6, 7, 2, 9); С=(-2.1; 1.7; 3.8; -4.0; 7.6; 5.2; 9.0; 0.6)

 

10. Скласти алгоритм і програму розв`язання задачі. На площині розміщені точки на відстанні С1, С2,…,С15 від центра кругового кільця з внутрішнім радіусом R1=0.5 і зовнішнім R2=2.75. Визначити кількість точок, що розміщенні всередині кільця, і середнє арифметичне їх відстані від центра. Результати вивести до друку. Елементи масиву С(15) задати самостійно.

 

11. Скласти алгоритм і програму для утворення масиву з двох заданих масивів А(10) і В(10) так, щоб елементи масиву А стояли на парних місцях, а елементи масиву В — на непарних нового масиву. До друку вивести всі три масиви.

А =(3, 7, 8, 9, 0, -1, -2, 4, 5, 6);

В = (0, 8, -3, 7, 0, 4, 2, 9, -4, -6).

12. Скласти алгоритм і програму розв`язання наступної задачі. В заданому масиві А(17) замінити всі нульові елементи числами, які розраховуються по формулі:

,

де К - порядковий номер нульового елемента масиву. Результат вивести до друку.

А=(6, 8, 0, 4, 1, -3, 0, 2, -7, -1, 0, 5, 4, 8, 0, -8, 3).

 

13. В даному масиві М(14) замінити всі від¢ємні елементи, що стоять на парних місцях, його максимальним елементом, а на непарних – його мінімальним елементом. Початковий і перетворений масиви вивести до друку.

М(1.2; 1.3; -0.2; 2.0; 4.8; -0.6; -1.1; 7.2; 3.5; -0.4; -1.7; 3.1; 2.8).

 

14. Непарні елементи заданого масиву В(N) розділити на середнє квадратичне елементів цього масиву, а парні елементи розділити на середнє геометричне значення. Отриманий масив вивести до друку разом з середніми значеннями (геометричним и квадратичним). Елементи масиву В задати самостійно, прийнявши n=12.

Середнє квадратичне:

Середнє геометричне:.

 

15. В заданому масиві С(N) замінити всі від¢ємні елементи, що стоять на парних місцях, середнім квадратичним значенням, всіх від¢ємних елементів; а ті, що стоять на непарних місцях - середнім геометричним значенням, усіх додатних елементів масиву. Перетворений масив вивести до друку.

C= (0.1; -0.2; 0.3; 0.4; -0.5; 0.6; -0.7; -0.8; 0.9; 1.0; 1.1).

 

16. Скласти алгоритм і програму для заміни в даному масиві Р(N) всіх нульових елементів, що стоять на непарних місцях, — середнім квадратичним значенням, яке знаходять з усіх від¢ємних елементів масиву, а ті, що стоять на парних місцях середнім геометричним значенням, яке знаходять з усіх додатних елементів масиву. Перетворений масив вивести до друку.

P = (9, 8, 0, 7, 6, 0, 5, 4, 0, 3, 2, 0, 2, 3, 0).

 

17. Дано масив Z(15). Сформувати масив Y наступним чином. Якщо додатних елементів в масиві Z більше, ніж від¢ємних, то замінити в ньому від’ємні елементи нулями. Інакше замінити додатні елементи максимальним елементом масиву Z(15). Елементи масиву Z задати самостійно. Початковий і сформований масив видати до друку.

 

18. Дано масив V(12). Якщо додатних елементів в ньому менше ніж від¢ємних, то замінити в ньому від¢ємні елементи нулями. В протилежному випадку кожен від¢ємний елемент замінити добутком тих елементів масиву V, які більше половини максимального елемента. Початковий і сформований масиви видати до друку. Масив V задати самостійно.

 

19. Дано масив V(14), елементи якого відмінні від нуля і в якому кількість додатних елементів дорівнює кількості від’ємних. Сформувати масив В з додатних елементів і масив С з від¢ємних елементів масиву А, зберігаючи їх послідовність. Сформувати масив D, елементи якого представляють собою добуток елементів масиву В на максимальний елемент масиву В, і масив Р, елементи якого представляють собою добуток елементів масиву С на мінімальний елемент масиву С. Масив А задати довільно. Початкові і сформовані масиви видати на друк.

 

20. Скласти алгоритм і програму для заміни в даному масиві Р(18) усіх нульових елементів середнім геометричним, яке знаходять з усіх додатних елементів масиву. Початковий і перетворений масив вивести до друку. Середнє геометричне n чисел - це

.

 

P = (5, 8, 9, 11, 0, -3, -4, -2, 0, 6, 21, 13, -8, 5, -19, 0, -3, 7)

 

21. Скласти схему алгоритму і програму для знаходження найбільшого з від¢ємних чисел заданого масиву А(15). До друку вивести початковий масив, знайдене число і його номер.

А=(2, 3, -8, 4, 0,- 3, 1, 6, 7, -6, -2, 0, 5, 4, 3 ).

 

22. Скласти алгоритм і програму для обчислення середнього арифметичного значення елементів заданого масиву А(15), що задовольняють умові А(I)>=B. Дані задати довільно, результати вивести до друку.

 

23. В даному масиві Н(10) обчислити:

  • різницю двох сусідніх елементів (і закласти їх в масив Е);
  • суми двох сусідніх елементів (і закласти їх в масив D).

Знайти найбільший елемент масиву D і найменший елемент масиву Е. Результати вивести до друку.

 

24. Дано масив С(12). Скласти алгоритм і програму перестановки елементів в заданому масиві таким чином, щоб на початку стояли від¢ємні елементи, потім нульові, а потім додатні. Початковий і сформований масиви вивести до друку.

С = (1,5,0,-4,-2,0,6,8,0,-3,-9 ).

 

25. Скласти алгоритм і програму перестановки елементів в заданому масиві А(14) так, щоб на початку стояли елементи з парними індексами, а потім з непарними. Знайти суму елементів з парними індексами, і добуток елементів з непарними індексами. Результати вивести до друку.

А = ( 0.2; 0.3; 0.4; -0.2; -0.3; -0.4; 0; -3.1; 3.5; -4.9; 0; 2.8; 3.1; 1.1).

 

 







Дата добавления: 2015-09-07; просмотров: 4121. Нарушение авторских прав


Рекомендуемые страницы:


Studopedia.info - Студопедия - 2014-2020 год . (0.023 сек.) русская версия | украинская версия