- •Где же описывается процедура ?
- •1. Вызов с диска готовых программ и их анализ.
- •( Повторить команды вызова готовой программы с диска на компьютерах типа укнц или ibm pc).
- •Задача 1.
- •Задача 2.
- •Задача 3.
- •О писание данных
- •(* Функция пользователя *)
- •Вспомогательные алгоритмы и их реализация на Бейсике.
О писание данных
BEGIN
о ператоры
END.
Раздел операторов должен содержать хотя бы один оператор, присваивающий имени функции значения.
Если таких присваиваний несколько, то результатом выполнения функции будет последнее значение.
Результат функции - единственное значение!
Обращение к функции осуществляется по имени с необязательным списком фактических параметров. Каждый аргумент должен соответствовать формальным параметрам, указанным в заголовке и иметь тот же тип.
2. Практическая часть.
Учащимся предлагается вызвать готовые программы с диска, записать из в тетрадь; анализ программ производится с помощью учителя .
Примеры программ.
Вычисление степени числа.
Пример 1.
(* ПРОГРАММА ВЫЧИСЛЯЕТ СТЕПЕНЬ ЧИСЛА *)
PROGRAM DEMO_FUNCTION;
VAR Z : INTEGER ; К : REAL ;
(* Функция пользователя *)
FUNCTION STEP ( F : REAL, EXP : INTEGER ) : REAL ;
VAR С : INTEGER ; Т : REAL ;
BEGIN
IF EXP=0 THEN STEP=1 ELSE BEGIN T:=F;
FOR С :=2 TO ABS(EXP) DO Т :=T*F ;
IF EXP<0 THEN STEP:=1/T ELSE STEP:=T ;
END;
(* КОНЕЦ ФУНКЦИИ ПОЛЬЗОВАТЕЛЯ *)
(* ОСНОВНАЯ ПРОГРАММА *)
BEGIN
WRITELN (' ВВЕДИТЕ ЧИСЛО '); READ ( Z );
WRITELN ;
WRITELN ( STEP ( Z, 3 )); (* ВЫЧИСЛЕНИЕ Z В 3 СТЕПЕНИ *)
WRITELN ( STEP ( Z, 4 ));
WRITELN ('ВВЕДИТЕ НУЖНУЮ СТЕПЕНЬ');
READ (К);
WRITELN ( К , ' - Я СТЕПЕНЬ ЧИСЛА ', Z , STEP ( Z , К ));
END.
Пример 2.
(*———————————————————————
! ОФОРМЛЕНИЕ ФУНКЦИИ !
______________________________________________ *)
PROGRAM PT11;
{ВЫЧИСЛЕНИЕ F=M!-K! РАЗНОСТИ ФАКТОРИАЛОВ}
USES CRT;
VAR F,M,K : INTEGER;
(* ФУНКЦИЯ FAKT*)
FUNCTION FAKT ( N : INTEGER ): INTEGER;
VAR P,J : INTEGER;
BEGIN
P:=1;
FOR I:=2 TO N DO P:=P* I;
FAKT:=P; (* ФУНКЦИЯ FAKT ПОЛУЧАЕТ ЗНАЧЕНИЕ*)
WRITELN;
WRITELN ('ФАКТОРИАЛ ', N , '=', P);
END; (* КОНЕЦ ФУНКЦИИ *)
{ОСНОВНАЯ ПРОГРАММА}
BEGIN
CLRSCR;
WRITELN ('ВВЕДИТЕ ЗНАЧЕНИЯ M,K:');
READ (M,K);
F:=FAKT(M)-FAKT(K);
WRITELN;
WRITELN ('РАЗНОСТЬ ФАКТОРИАЛОВ= ',F:5);
REPEAT UNTIL KEYPRESSED;
END.
3. Заключение.
Функция пользователя состоит из заголовка с указанием типа функции, раздела описания данных и раздела операторов. В основную программу передается полученное функцией последнее значение.
4. Домашнее задание.
( x +8 )2 + x 3
Написать программу вычисления функции Y=———————
при х=2.3; 5.88; 6.11 ;9.05.. x+5
Программа должна содержать функцию пользователя.
Вспомогательные алгоритмы и их реализация на Бейсике.
Тема урока : Вспомогательные алгоритмы.
Цель урока : дать понятие вспомогательного алгоритма, его реализация на языке
Бейсик.
Ход урока:
1. Вспомогательные алгоритмы.
Вспомогательным называется алгоритм, снабженный заголовком, позволяющим вызвать этот алгоритм из других алгоритмов (наз. основными).
Любой алгоритм можно сделать вспомогательным, снабдив его соответственным
заголовком.
Использовать тогда, когда возникает необходимость многократно повторять один и тот же набор действий в одном или разных алгоритмах, а также вместе для решения сложных задач, когда задача разбивается на несколько более простых задач .
Набор команд, из которых состоит вспомогательный алгоритм заменяют одной командой вызова.
При использовании вспомогательного алгоритма никого, не интересует, из каких действий он состоит. Важно, каковы исходные данные (аргументы) этого алгоритма и что является результатом его работы (факты).
Пример: при использовании стиральной машины неважно вникать в ее устройство.
Достаточно знать, что «аргументами» для нее являются стиральный порошок, чистая вода и грязные вещи, а «результатом» грязная мыльная вода и чистые вещи.
В программировании вспомогательный алгоритм называется подпрограммой. Команда вызова ее: GOSUB <номер строки>.
Программа заканчивается словом RETURN. Оператор GOSUB передает управление на строку с номером, указывающим в нем. По оператору RETURN осуществляется возврат к оператору, следующему за оператором GOSUB.
Подпрограммы могут располагаться в любом месте программы (обычно в конце). Вызовы подпрограммы могут быть вложены в другие подпрограммы.
Программа
А
Вызов В
Программа В
Вызов С
RETURN
Программа С
RETURN
Пример 1
10 GOSUB 50
20 A=B+5
30 PRINT A
40 GO TO 70
50 B=3
60 RETURN
70 PRINT «Конец работы».
Пример 2
10 PRINT «Мы идем и поем,»
20 GOSUB 100
30 PRINT «Там за горами синий лес,»
40 GOSUB 100
50 PRINT «Скоро мы туда дойдем?»
60 GOSUB 100
70 PRINT «Много ли ягод там найдем?»
80 GOSUB 100
90 END
100 PRINT «Тум-ба-ла-ла»
100 RETURN
Пример 3
5 REM Литературный тест
7 REM POINTS (очки) - содержит очки за правильный ответ
10 LET POINTS=0
20 PRINT «Отцом Буратино был: 1)Вольтер; 2)Дон Жуан; 3)Папа Карло.
25 REM RUGHTANS (верный ответ) - содержит код правильного ответа.
30 LET RIGHTANS=2
40 GOSUB 500
50 PRINT «Роман “Старик и море” написал: 1)Хемингуэй; 2)Айвазовский; 3)Бетховен»
60 LET RIGHTANS=1
70 GOSUB 500
80 PRINT «Раскольников герой романа: 1)Достоевского; 2)Пушкина; 3)Крылова»
90 LET RIGHTANS=1
100 GOSUB 500
109 REM печать конечного счета
110 PRINT
130 END
499 REM Подпрограмма для восприятия и анализа ответа пользователя
500 INPUT ANSWER
510 IF ANSWER <>RIGHTANS THEN GOTO 520 ELSE GOTO 530
520 PRINT «Извините, ответом является:»; RIGHTANS
525 GOTO 540
530 PRINT «Великолепно!»
535 LET POINTS=POINTS+1
540 PRINT
545 RETURN
Пример 4
9 REM Нахождения максимума трех чисел.
10 INPUT A,B,C
20 LET X=A
30 LET Y=B
40 GOSUB 200
50 LET X=Z
60 LET Y=C
70 GOSUB 200
80 PRINT Z
90 STOP
200 REM Поиск максимума из двух чисел.
201 REM Аргумента X,Y. Результат Z
210 IF X>Y THEN Z=X ELSE Z=Y
220 RETURN