Файл: Алгоритмизация как обязательный этап разработки программы (Устройство современных компьютеров).pdf
Добавлен: 12.03.2024
Просмотров: 26
Скачиваний: 0
СОДЕРЖАНИЕ
1 ЭТАПЫ РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
1.1 Устройство современных компьютеров
1.3 Этапы разработки программных продуктов
2 АЛГОРИТМИЗАЦИЯ КАК ВАЖНЫЙ ЭТАП РАЗРАБОТКИ ПРОГРАММНОГО ПРОДУКТА
2.2 Базовые алгоритмические конструкции
2.3 Структурный подход к программированию
- табулирование функции на отрезке с шагом 0.5;
- формирование трех квадратных матриц случайного размера из случайных чисел.
Анализ и разработку алгоритма решения сложной задачи обычно проводят методом декомпозиции – делением поставленной задачи на подзадачи. Подзадачи могут быть реализованы в виде функций и/ или процедур. Такой подход позволяет организовать работу программы оптимальным образом и облегчить ее отладку.
В поставленной задаче можно выделить следующие подзадачи:
- оформление меню;
- вычисление значения функции;
- вывод сформированной матрицы на экран.
Функциональная схема программы, разделенной на такие блоки, представлена на рисунке 20.
Рисунок 20 - Функциональная схема программы
На основе функционального анализа можно составить алгоритмы составных частей разрабатываемой программы. По результатам алгоритмизации достаточно просто разработать программу на одном из языков программирования.
Блок – схемы алгоритмов основной программы и подпрограмм представлены на рисунке 21.
Рисунок 21 – Блок-схема алгоритма решения задачи
При составлении алгоритма задачи получена схема, на основании которой разработан программный код, содержащий все спланированные подпрограммы. Программный код (язык программирования PascalABC) представлен в Приложении A.
Результаты тестирования программы представлены на рисунках 22 – 23.
Рисунок 22 – Тестирование программы (табулирование функций)
Тестирование показывает, что программа корректно решает одну из поставленных задач – задачу табулирования функции.
Рисунок 23 - Тестирование программы (формирование матриц)
Программа корректно решает поставленную задачу формирования квадратных матриц.
Реализация функции выхода из программы представлена на рисунке 24.
Рисунок 24 - Выход из программы
На основании проведенных исследований можно сделать вывод о том, что при разработке сложных программных продуктов алгоритмизация является обязательным этапом. Она позволяет качественно спланировать программу наиболее оптимальным способом.
ЗАКЛЮЧЕНИЕ
Курсовая работа по технологии программирования на тему «Алгоритмизация как обязательный этап разработки программы» освещает теоретические основы разработки программного обеспечения, наиболее подробно представляя понятие алгоритма, и предлагает практический пример создания алгоритма решения задачи и его реализацию на языке программирования PascalABC.
В первом разделе курсовой работы представлено устройство современных персональных компьютеров, принципы и архитектура фон Неймана. В середине прошлого века группа ученых сформулировала основные принципы архитектуры аппаратной части компьютера и программного управления. Согласно одному из этих принципов компьютеры работают под управлением программ.
К настоящему времени сложились и продолжают развиваться определенные модели жизненного цикла информационных систем и соответствующие технологии развития программного обеспечения.
Одним из важнейших и необходимых этапов разработки программы является алгоритмизация - процесс формирования алгоритма решения задачи. Систематический подход к составлению последовательности, позволяющей решить некоторую прикладную задачу, предполагает предварительное составление алгоритма ее решения.
В курсовой работе представлены различные формы записи алгоритма, основные алгоритмические конструкции, а также представлен конкретный пример декомпозиции поставленной задачи и составления алгоритма решения задачи в виде блок-схем. На основании алгоритма разработана и протестирована программа решения поставленной задачи.
Алгоритмизация позволяет разработать наиболее оптимальную программу с прозрачной логикой работы.
СПИСОК ЛИТЕРАТУРЫ
- Антонов Т.Е. Введение в язык Паскаль. – М.:Наука, 2015. - 320 c.
- Гецци, Карло Основы инженерии программного обеспечения. - СПб.: БХВ-Петербург, 2015. - 832 c.
- Голубь Н.Г., Кириленко Е.Г. Алгоритмические языки и программирование: Методические рекомендации по выполнению контрольных и лабораторных работ, часть 1. – Харьков:ХАИ, 2017. – 31 с.
- Губич, Л. В. Внедрение на промышленных предприятиях информационных технологий поддержки жизненного цикла продукции. - Минск.: Белорусская наука, 2013. - 190 c.
- Дедков А.Ф. Абстрактные типы данных в языке Паскаль. - М.: Наука, 2016. - 200 c.
- Джонс Ж., Харроу К. Решение задач в системе Турбо Паскаль. - М.: Попурри, 2014.- 143 с.
- Епанешников А.М.; Епанешников, В.А. Программирование в среде Turbo Pascal 7.0. - М.: ДИАЛОГ-МИФИ, 2015. – 367 c.
- Есаян А.Р. Информатика. - М.: Просвещение, 2015. - 288 c.
- Йенсен К., Вирт Н. Паскаль: руководство для пользователя. М.:Наука, 2016.- 207 с.
- Инженерная логистика. Логистически-ориентированное управление жизненным циклом продукции. - М.: Горячая линия - Телеком, 2014. - 644 c.
- Касьянов В.Н., Сабельфельд В.К. Сборник заданий по практикуму на компьютере. М.: Наука, 2016.-200 с.
- Коберн А. Быстрая разработка программного обеспечения. - М.: ЛОРИ, 2013. - 336 c.
- Культин Н.Б. Turbo Pascal в задачах и примерах. – СПб.: БХВ, 2014. – 256 c.
- Онокой Л.С. Компьютерные технологии в науке и образовании: Учебное пособие. - М.: ИД ФОРУМ, ИНФРА-М, 2014. - 224 c.
- Прайс Д. Программирование на языке Паскаль: Практическое руководство. - М.: Наука, 2016. – 209 с.
- Семашко, Г.Л.; Салтыков, А.И. Программирование на языке Паскаль. - М.: Наука, 2015. - 128 c.
ПРИЛОЖЕНИЕ A. ПРОГРАММНЫЙ КОД
program Primer;
type
matrica=array[1..20, 1..20] of integer;
var
n, k:integer;
x: real;
a:matrica;
// процедура вывода матрицы на печать
Procedure print(a:matrica; l:integer);
var i, j:integer;
begin
for i :=1 to l do
begin
for j:=1 to l do
begin
write (a[i,j]:5);
end;
writeln;
end;
end;
//функция вычисления куба
Function f(x:real):real;
begin
f:=x*x*x;
end;
//процедура меню
Procedure Menu();
var i,j,t :integer;
begin
writeln (' Выберите нужную функцию:');
writeln;
writeln(' 1 - Табулирование функции');
writeln(' 2 - Формирование матрицы');
writeln(' 3 - Выход из программы');
write(' Введите число от 1 до 3. N = ');
readln (n);
case n of
// табулирование функции
1:
begin
writeln (' Табулирование функции');
writeln('=========================');
writeln (' x y ');
writeln('-------------');
x:=0;
while (x<=10) do
begin
writeln (x:4:2,f(x):10:2);
x:=x+0.5;
end;
writeln (' Нажмите любую клавишу для перехода в главное меню');
readln;
Menu();
end;
// формирование квадратной матрицы
2:
begin
writeln (' Формирование матрицы');
writeln('=========================');
randomize;
for t:=1 to 3 do
begin
k:=random(8)+3;
for i :=1 to k do
for j:=1 to k do
a[i,j]:=random(50)+10;
print(a, k);
writeln; writeln;
end;
writeln (' Нажмите любую клавишу для перехода в главное меню');
readln;
Menu();
end;
// выход из программы
3:
begin
writeln (' Выход');
writeln (' Нажмите любую клавишу для выхода из программы');
readln;
halt;
end;
else
begin
writeln (' Такого пункта нет в меню');
writeln (' Нажмите любую клавишу для перехода в главное меню');
readln;
Menu();
end;
end;
end;
//Основная программа
begin
Menu();
end.