- •Московский государственный институт электроники и математики
- •1. Назначение и объем курсовой работы
- •2. Разработка технического задания
- •3. Содержание отчета
- •4. Задание на курсовую работу
- •5. Постановка задачи
- •8.1. Структура данных
- •6. Внешняя спецификация программы
- •7. Метод решения задачи
- •8. Описание алгоритма
- •8.2. Выделение подпрограмм
- •8.3. Алгоритмы главной программы и подпрограмм
- •9. Структура программы
- •10. Пример программы
- •11. Варианты индивидуальных заданий
- •12. Библиографический список
- •109028 Москва, б. Трехсвятительский пер., 3/12.
- •113054 Москва, ул. М. Пионерская, 12
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)
закрытие графического режима
кон
