Главная Обратная связь

Дисциплины:






КОНТРОЛЬНА РОБОТА 2 4 страница



На екрані в поле діалогу з'являються імена головного модуля (наприклад, UNTITLED) і функції.

За допомогою курсорних клавіш і ENTER можна перейти в поле редагування головного модуля або підпрограми.

Запуск процедури SUB здійснюється з головної програми оператором CALL

CALL ім'я підпрограми (фактичний параметр[,ф.п....])

 

Обмін даними між головним модулем і підпрограмою, здійснюється 2 способами:

1. Використання глобального оголошення типів даних за допомогою оператора DIM SHARED (дані, які оголошені глобальними, доступні як в основній програмі, так і в процедурі)

2. Використання механізму формально-фактичних параметрів (тут підпрограма використовує формальні параметри, яки визначаються за допомогою фактичних параметрів при звертанні до підпрограми.

 

Між фактичними й формальними параметрами існує відповідність по типу, кількості й порядку проходження.

 

Обоє способи обміну можуть бути використані в одній процедурі.

 

Після виконання підпрограми SUB керування передається оператору, що знаходиться за оператором – викликом підпрограми CALL

 

Блок – схема

               
   
 
 
   
 
     
n=1, z =0
 


                               
   
 
   
     
 
       
Z = Z + Zn
 
 
 
 
   
n = n + 1
 
 
   



+ -

Y(i) 2-а формула

+

 
 


       
   
 
 


Програма

REM алгоритм комбінованої структури з підпрограмою

REM основна програма

DIM SHАRED I, EPS, N, Z, ZN ‘ опис змінних

DIM C(1 TO 10),Y(1 TO 10)

INPUT “ EPS ”; EPS ‘введення даних

DATA –1.5,-.5,-.1,0,.5,1.75,1.8,2.5,3.4,5.7 ‘рядок даних

CALL SUMZ(EPS,Z) ‘ звертання до підпрограми обчислення Z

FOR I = 1 TO 10 ‘оператор початку циклу

READ C(I) ‘введення даних

IF C(I)> .5 AND C(I)< 2.5 THEN ‘оператор умовного переходу

Y(I) = (C(I) * Z - 3) ^ 2 ‘оператор присвоювання

ELSE Y(I) = .5 * Z ^ 3 - 5 * C(I) ‘оператор присвоювання



END IF ‘завершення оператора умовного переходу

PRINT “C”; I; “=”;C(I) ‘виведення

NEXT I ‘завершення циклу

END ‘ кінець основної програми

 

SUB SUMZ(EPS,Z) ‘заголовок (початок) підпрограми SUMZ

N = 1: Z = 0 ‘оператори присвоювання

DO ‘оператор початку циклу

ZN = .1*N / (N+0.6)^3: Z=Z+ZN : N= N + 1 ‘оператори присвоювання

LOOP WHILE ABS(ZN) > EPS ‘завершення циклу

PRINT “Z=”; Z ‘виведення

END SUB ‘кінець підпрограми SUMZ

Результат виконання програм:

EPS ? .001 _

Z = 5.597609E-02

Y2 = 2.500088

Y3 = 5.000088

Y4 = 8.769555E-05

Y5 = -2.499912

Y6 = 8.421847

Y7 = 8.40561

Y8 = -12.49991

Y9 = -16.99991

Y10 = -28.49991

3.11. Приклад виконання задачі 5 А

Завдання: розробити алгоритм і скласти програму обробки одномірних масивів

Умова: Заданий одномірний масив, що полягає з mелементів ai. Здобути новий масив Уз вихідного масиву А заміною елементів з парними порядковими номерами числом π, інші елементи масиву В одержати діленням відповідних елементів вихідного масиву А на максимальний елемент цього масиву.

Розв'язання: позначимо ai → A(I), bi → В(I), m → M, i →I,

π → PI, amax → MAX.

Для розв'язання задачі необхідно попередньо знайти максимальний елемент масиву й потім сформувати новий масив В.

Блок – схема

           
 
 
   
 
   


+ -

 
 
MAX=A(i)

 


       
   
 
 

+ -

       
   
 
B(i) = π
 

 


 

 

Програма

REM одномірний масив ‘оператор - коментар

DIM M, PI, I, MAX ‘ опис змінних

INPUT “ M, PI ”; M, PI ‘введення даних

DIM A(1 TO M), B(1 TO M) ‘ опис масивів

DATA –1.1,-3.5,1.8,0,.75,3.25,0, 2.5,5.25 ‘ рядок даних

FOR I = 1 TO M ‘оператор початку циклу

READ A(I) ‘введення даних

NEXT I ‘завершення циклу

MAX=A(1) ‘оператор присвоювання

FOR I = 1 TO M ‘оператор початку циклу

IF MAX < A(I) THEN ‘оператор умовного переходу

MAX = A(I) ‘оператор присвоювання

END IF ‘завершення оператора умовного переходу

NEXT I ‘завершення циклу

PRINT “MAX”; MAX ‘виведення

FOR I = 1 TO M ‘оператор початку циклу

IF (-1) ^ I > 0 THEN ‘оператор умовного переходу

B(I) = PI ‘оператор присвоювання

ELSE B(I) = A(I) / MAX ‘оператор присвоювання

END IF ‘завершення оператора умовного переходу

PRINT “B”; I; “=”;B(I) ‘виведення

NEXT I ‘завершення циклу

END ‘конец програми

Результат виконання програми:

M, PI ? 9, 3.14 _ Для розрахунків був використаний одномірний масив

MAX = 5.25 А = –1.1, -3.5 ,1.8 ,0 ,.75 ,3.25, 0, 2.5, 5,25

B1 = -.2095238 В результаті отримане наступне:

B2 = 3.14 максимальний елемент MAX = 5,25

B3 = .3428571 новий масив В

B4 = 3.14 В = –0.21, 3.14 ,0.34, 3.14, 0.14, 3.14, 0, 3.14, 1

B5 = .1428571

B6 = 3.14

B7 = 0

B8 = 3.14

B9 = 1

3.12. Приклад виконання задачі 5 Б

Завдання: розробити алгоритм і скласти програму обробки двовимірних масивів

Умова: Заданий двовимірний масив, що полягає з m рядків і nстовпців елементів: aij.

Визначити в кожному стовпці кількість kjелементів відмінних від 0 з непарними номерами рядків.

Здобути новий масив Сіз вихідного масиву А заміною нульових елементів останнім елементом кожного рядка.

Розв'язання: позначимо aij → A(I,J), cij → C(I,J), m → M, n → N,

i → I, j →J, kj → K(J).

Блок – схема

 
 


           
 
 
   
 
   



- +

 
 

K(J)=K(J)+1

 
 


+

- +

C(i,J)=A(I,J)  
C(i,J)=A(i,N)  

Програма

REM двовимірний масив ‘оператор - коментар

DIM M, N, I, J ‘опис простих змінних

INPUT “ M, N ”; M, N ‘ введення даних

DIM K(1 TO N) ‘ опис одномірного й двовимірних масивів

DIM A(1 TO M, 1 TO N), C(1 TO M, 1 TO N)

DATA 3,6,0,2,9,5,0,4,0,7,3,2,3,8,0,5 ‘ рядок даних

FOR I = 1 TO M ‘оператор початку циклу по i

FOR J = 1 TO N ‘оператор початку циклу по j

READ A(I,J) ‘ введення даних

NEXT J ‘завершення циклу по j

NEXT I ‘завершення циклу по i

FOR J = 1 TO N STEP 2 ‘оператор початку циклу по j

K(J) = 0 ‘оператор присвоювання

FOR I = 1 TO M ‘оператор початку циклу по i

IF A(I,J) <> 0 THEN ‘оператор умовного переходу

K(I) = K(I) + 1 ‘оператор присвоювання

END IF ‘завершення оператора умовного переходу

NEXT I ‘завершення циклу по i

PRINT “K”;J;”=”;K(J) ‘виведення NEXT J ‘завершення циклу по j

FOR I = 1 TO M ‘оператор початку циклу по i

FOR J = 1 TO N ‘оператор початку циклу по j

IF A(I,J) = 0 THEN ‘оператор умовного переходу

C(I,J) = A(I,N) ‘оператор присвоювання

ELSE C(I,J) = A(I,J) ‘оператор присвоювання

END IF ‘завершення оператора умовного переходу

PRINT “C(”; I;”,”;J;“) =”;C(I,J) ‘виведення

NEXT J ‘завершення циклу по j

NEXT I ‘завершення циклу по i

END ‘кінець програми

 

Для розрахунків був використаний наступний двовимірний масив

 

 

Результат виконання програми:

 

M, N? 4, 4 _ У результаті виконання програмиотримано:

K1 = 1 K2 = 2 K3 = 1 K2 = 2

C(1,1) = 3

C(1,2) = 6 одномірний масив К = 1; 2; 1; 2 и

C(1,3) = 2

C(1,4) = 2 двовимірний масив С

C(2,1) = 9

C(2,2) = 5

C(2,3) = 4

C(2,4) = 4

C(3,1) = 2

C(3,2) = 7

C(3,3) = 3

C(3,4) = 2

C(4,1) = 3

C(4,2) = 8

C(4,3) = 5

C(4,4) = 5

ЛІТЕРАТУРА

 

 

1. Інформатика. Базовий курс, С.В. Симонович і др., СПб: Пітер, 2002. – 640 с.

2. Светлозарова Г.И., Мельников А.А., Козловский А.В. Практикум по программированию на языке Бейсик. -М.: Наука, 1988

3. Сборник задач по базовой компьютерной подготовке / Под общей ред. И.Н. Котаровой. –М.: МЭИ, 1998.

4. Сафронов И. Бейсик в задачах и примерах. –СПб.:БХВ-Петербург, 2000.

5. Мельникова О.И., Бонюшкина А.Ю. Начала программирования на языке Qbasic. –М.: ЭКОМ, 2000.

6. Конспект лекций по курсу ''Информатика'', ОДАБА, Одеса, 2007.

7. Методические указания ‘‘Основы программирования на языке Visual Basic’’ (для студентов всех специальностей), Плотников А. В., Дызов К. Г., Комлева Т. А., ОДАБА, 2003, - 94 с.

 

 





sdamzavas.net - 2020 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...