Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KURS_09.DOC
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
248 Кб
Скачать
☆

8.2. Выделение подпрограмм

На основе анализа алгоритма главной программы выделяются основные подпрограммы. Для каждой подпрограммы указывается её имя и выполняемые действия.

Далее разрабатываются алгоритмы выделенных подпрограмм. Для каждой подпрограммы описываются исходные данные, результат и связь. На основе анализа алгоритмов могут выделяться новые подпрограммы. Например, для программы построения графиков функций можно выделить следующие подпрограммы:

  • input – ввод исходных данных ( a, b, step, mx, my);

  • menu – выбор номера функции;

  • initialization – инициализация графического режима;

  • osi – построение координатных осей и единичных отрезков на осях;

  • points – построение точек графика.

8.3. Алгоритмы главной программы и подпрограмм

В данном разделе приведены алгоритмы главной программы и подпрограмм. Для каждой из подпрограмм указаны входные и выходные параметры. Знак «-» указывает на отсутствие параметров. Допустимо приводить алгоритмы не для всех подпрограмм, а лишь для основных.

алг «fun(x) -вычисление значения функции»

вход x, k

выход f(x)

нач

выбор(k)

1: возврат (sin(x))

2: возврат (cos(x))

3: возврат ( x*x)

4: возврат (x)

квыбор

кон

алг «инициализация графического режима»

вход -

выход -

нач

автоматическое определение типа драйвера

инициализация графического режима

чтение результатов инициализации

если ошибка инициализации то

вывод ("Ошибка при инициализации графического режима:",

сообщение об ошибке);

вывод("Нажмите любую клавишу для завершения работы программы:");

возврат с кодом ошибки

все

кон

алг «построение осей координат, единичных отрезков и вывод надписей к осям»

вход mx, my

выход –

нач

maxx:=getmaxx();

maxy:=getmaxy();

отрезок(maxx/2,0, maxx/2, maxy);

отрезок (0, maxy/2 ,maxx-16, maxy/2);

надпись (maxx/2-3, 0,"^ y");

надпись(maxx-21, maxy/2-3,">x");

nx:=maxx/(2*mx)

ny:=maxy/(2*my)

y:=0

ym=maxy/2 - y*my

цикл от x:=-nx до nx

xm:= maxx/2 + x*mx

точка (xm,ym,1)

кц

x:=0;

xm:= maxx/2 + x*mx

цикл от y:=-ny до ny

ym:=maxy/2 -y*my

точка (xm,ym,1)

кц

кон

алг «ввод исходных данных»

вход -

выход a, b, step, mx, my

нач

очистка экрана

вывод("Построение графиков функций ")

цикл

вывод("Введите a, b (a<b): ")

ввод(a,b)

до(a<b)

кц

цикл

вывод("Введите step (step>0): ")

ввод(step)

до(step>0)

кц

цикл

вывод("Введите mx, my (mx>0, my>0): ")

ввод(mx,my)

до(mx>0 и my>0)

кц

кон

алг «построение точек графика»

вход a, b, step, mx, my, k

выход -

нач

maxx:=getmaxx()

maxy:=getmaxy()

цикл от x:=a до b шаг step

y:=fun(x,k);

xm:= maxx/2 + x*mx

ym:= maxy/2 - y*my

точка (xm,ym,6)

кц

надпись(20, maxy-10,"Нажмите любую клавишу");

ожидание нажатия клавиши

кон

алг « выбор функции по номеру»

вход n, h, v

выход k

нач

punkt[]:=

"1. sin(x)",

"2. cos(x)",

"3. x*x",

"4. x";

очистка экрана

перемещение курсора (h,v)

вывод("Выберите функцию для построения графика");

v:=v+2

цикл от i:=0 до n-1

перемещение курсора (h,v)

вывод(punkt[i]);

v:=v+1

кц

v:=v+1

цикл

перемещение курсора (h,v)

вывод("Введите номер функции: ")

ввод(ch)

до (c>=’1' и ch-'0'<=n)

кц

k:=ch-'0';// преобразование ответа пользователя из строки в число

возврат (k)

кон

алг «главная функция»

нач

вызов функции «ввод исходных данных» (a, b, step, mx, my)

k= вызов функции «выбор функции по номеру» (4,10,10)

вызов функции «инициализация графического режима»

вызов функции построение осей координат, единичных отрезков и вывод надписей к осям (mx, my)

вызов функции «построение точек графика» (a, b, step, mx, my, k)

закрытие графического режима

кон

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]