Файл: Алгоритмизация как обязательный этап разработки программы.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.04.2023

Просмотров: 63

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение

История появления и развития персональных компьютеров является одним из наиболее впечатляющих явлений нашего века. С момента появления первых образцов персональных компьютеров прошло меньше 25 лет, но сейчас без них уже немыслимо огромное количество областей человеческой деятельности - экономика , управление , наука , инженерное дело , издательское дело , образование , культура и т.д. Интерес к персональным компьютерам постоянно растет, а круг их пользователей непрерывно расширяется. В число пользователей ПЭВМ вовлекаются как новички в компьютерном деле, так и специалисты по другим классам ЭВМ.

Язык С++ - универсальный язык общего назначения, область приложений которого - программирование систем в самом широком смысле. Кроме этого, С++ успешно используется как во многих приложениях, так и в мощных операционных системах. Реализация С++ осуществлена для машин в диапазоне от самых простых персональных компьютеров до самых мощных суперкомпьютеров и для всех операционных систем.

1. Структура современных ЭВМ

Основными компонентами компьютера являются процессор, память, устройства ввода и вывода. С помощью устройства ввода программа и исходные данные попадают в память. Программа содержит последовательность инструкций, которую выполняет процессор. Результаты выполнения программы поступают в устройства вывода. В качестве устройства ввода, как правило, используется клавиатура, в качестве устройства вывода - дисплей, на котором высвечиваются результаты выполнения программ, или принтер.

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

Рис.2. Структурная схема ПЭВМ

На рис.2 изображена структурная схема ПЭВМ, которая содержит следующие основные компоненты:

1) ЦП - центральный процессор, который управляет работой ПЭВМ а и выполняет все вычисления;

2) ОЗУ - оперативное запоминающее устройство, в котором располагаются программы, выполняемые ПЭВМ, используемые программами данные.

3) ПЗУ - постоянное запоминающее устройство, в котором располагаются программы, выполняемые ПЭВМ при своём включении.


Схема содержит следующие компоненты, которые предназначены для связи ПЭВМ с внешними устройствами:

1) Контроллер дисплея - позволяет подключить процессор к видео контрольному устройству, обеспечивает передачу видеоинформации и переключение видеорежимов дисплея;

2) Контроллер клавиатуры - позволяет подключить процессор к устройству ручного ввода информации, обеспечивает опрос каждой клавиши и передаёт процессору код нажатой клавиши;

3) Порты ввода - вывода, через которые процессор обменивается данными с внешними устройствами, предназначены для подключения к ним внешних устройств, таких как принтер, динамик, внешние устройства памяти;

4) Контроллер накопителя на диске - связывает накопители внешней оперативной памяти с ОЗУ, обеспечивает приём, передачу информации от носителя;

На схеме показаны следующие внешние устройства ПЭВМ:

1) Дисплей - основное средство оперативного вывода информации, предназначен для вывода текстовой или графической информации на экран.

2) Клавиатура - стандартное устройство ввода информации, основное средство взаимодействия пользователя с ПЭВМ.

3) Принтер - устройство печати текстовой и графической информации.

Принтеры бывают 3х типов - матричные, струйные и лазерные.

4) Накопитель на гибких магнитных дисках - устройство внешней памяти - служит для долговременного хранения информации - программ, архивных данных и т.д. Ёмкость носителя и скорость передачи данных незначительная.

5) Накопитель на жёстких магнитных дисках - устройство внешней памяти - служит для долговременного хранения информации - программ, архивных данных и т.д. Ёмкость носителя и скорость передачи данных высокая.

2. Математическая часть

На Рис.3 изображены геометрические фигуры: цилиндрическая труба и прямоугольный параллелепипед.

Рис.3. Геометрические фигуры

Вычисление значений требуемых величин производилось по формулам:

Формула (1) - объём прямоугольного параллелепипеда:

 (1)

где A, B, C - стороны прямоугольного параллелепипеда.

Формула (2) - объём цилиндрической трубы:

 (2)

где h - высота цилиндрической трубы;

R1 - внутренний диаметр цилиндрической трубы;

R2 - внешний диаметр цилиндрической трубы.


3. Описание алгоритма решения задачи

По условиям, заданным в задаче, значение внутреннего радиуса цилиндрической трубы R1 изменяется со значения L до N с шагом M.

Причём объём цилиндрической трубы не может быть меньше объёма прямоугольного параллелепипеда.

Следовательно, необходимо перебирать результаты вычисления объёма цилиндрической трубы с каждым изменением внутреннего радиуса основания, до тех пор, пока объём цилиндрической трубы не станет больше или равен объёму прямоугольного параллелепипеда.

В соответствии с приведённым словесным описанием алгоритма решения поставленной задачи разработана схема решаемой задачи, которая изображена на рис.4.

В изображенном алгоритме блоки имеют описанное ниже назначение:

Блок 1. Начало программы;

Блок 2. Ввод L, N, M, R2, H, A, B, C с клавиатуры;

Блок 3. Вычисление объёма прямоугольного параллелепипеда;

Блок 4. Установка начального максимального значения внутреннего радиуса цилиндрической трубы;

Блок 5. Организация цикла переменной R1;

Блок 6. Вычисление объёма цилиндрической трубы;

Блок 7. Проверка условия Vc <= Vt, если оно выполняется, то переход на блок 8, если нет, то на блок 10;

Блок 8. Проверка условия MAX <R1, если оно выполняется, то переход на блок 9, если нет, то на блок 10;

Блок 9. Вычисление максимального значения внутреннего радиуса, объёма цилиндрической трубы;

Блок 10. Вывод значений объёма цилиндрической трубы, объёма прямоугольного параллелепипеда, максимального значения внутреннего радиуса;

Блок 11. Конец программы.

4. Анализ результатов вычислений

Расчёты, проведённые по программе, реализующей описанный в 3 алгоритм (текст программы см. в приложении), позволили получить следующие результаты:

Введите L, N, M:

2.3 12.5 0.1

Введите R2, H:

12.6 2.3

Введите A, B, C:

2.4 3.7 10.4

Объем цилиндрической трубы=106.595131

Объем прямоугольного параллелепипеда=92.352005

Максимальное значение внутреннего радиуса=12.00001

Анализ этих результатов даёт возможность сделать вывод, что составленная программа позволяет правильно решить поставленную задачу т.к. результаты её работы, совпадают с результатами, полученными при вычислении вручную. Выведенные на экран величины объёма прямоугольного параллелепипеда, объёма цилиндрической трубы и её максимальное значение внутреннего радиуса отвечают условиям поставленной задачи.


Заключение

В курсовой работе решена задача определения максимального значения внутреннего радиуса цилиндрической трубы, для которого объём цилиндрической трубы не меньше объёма прямоугольного параллелепипеда со сторонами А, В и С.

Разработан алгоритм решения поставленной задачи, составлена и отлажена программа на языке С++., реализующая указанный алгоритм. С её помощью проведены расчёты, проанализированы полученные результаты. Анализ результатов показал, что поставленная задача успешно решена.

Список литературы

1. Бронштейн И.Н., Семендяев К.А. Справочник по высшей математике для инженеров и учащихся втузов. - М.: Наука, 1981. - 718 с.

2. Бьярн Страуструп. Язык программирования С++.в двух частях. Пер. с англ. Киев: "Диа Софт», 1993. -296 с.,ил.

3. Корриган Джон: С++ основы программирования: Пер с англ. -М.: Энтроп, 1995. - 352 с., ил.

ПРИЛОЖЕНИЕ 1

ТЕКСТ ПРОГРАММЫ

#include <conio.h>

#include <iostream.h>

#include <math.h>

void main () {

float L, N, M, R2, R1, H, A, B, C, MAX, VC, VT, V;

clrscr ();

cout<<"\n"<<" Введите L, N, M: "<<"\n";

cin>>L>>N>>M;

cout<<"\n"<<" Введите R2, H: "<<"\n";

cin>>R2>>H;

cout<<"\n"<<" Введите A, B, C: "<<"\n";

cin>>A>>B>>C;

VC=A*B*C;

MAX=-1E38;

for (R1=L; R1<=N; R1=R1+M)

{VT=H*3.14*(R2*R2-R1*R1);

if (VC<=VT) if (MAX<R1) {MAX=R1; V=VT;}}

cout <<"\n"<<"Объем цилиндрической трубы="<<V;

cout <<"\n"<<"Объем прямоугольного параллелепипеда="<<VC;

cout <<"\n"<<"Максимальное значение внутреннего радиуса="<<MAX;

getch ();

}

ПРИЛОЖЕНИЕ 2

РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ

Введите L, N, M:

2.3 12.5 0.1

Введите R2, H:

12.6 2.3

Введите A, B, C:

2.4 3.7 10.4

Объем цилиндрической трубы=106.595131

Объем прямоугольного параллелепипеда=92.352005

Максимальное значение внутреннего радиуса=12.00001

Алгоритмизация

Основным в процессе программирования является разработка алгоритма. Это один из наиболее сложных этапов решения задачи с использованием ЭВМ. В начале обучения программированию, на наш взгляд, целесообразно не привязываться сразу к какому-либо языку, разрабатывать алгоритмы без записи на ЯПВУ, а, например, с помощью блок-схем или иным аналогичным способом. После такой "чистой" алгоритмизации учащимся или студентам проще перейти к записи того же алгоритма на определённом языке программирования. В настоящей публикации продемонстрирован именно такой подход.


Напомним, что основными алгоритмическими структурами (ОАС) являются следование, развилка и цикл. В более сложных случаях используются суперпозиции (вложения) ОАС.

Ниже приведены графические обозначения (обозначения на блок-схемах) ОАС.


Структура “следование”


Полная развилка


Неполная развилка


Цикл с предусловие (цикл ПОКА)


Цикл с постусловием (цикл ДО)


Цикл с параметром

На схемах СЕРИЯ обозначает один или несколько любых операторов; УСЛОВИЕ есть логическое выражение (ЛВ) (если его значение ИСТИНА, переход происходит по ветви ДА, иначе — по НЕТ). На схеме цикла с параметром использованы обозначения: ПЦ — параметр цикла, НЗ — начальное значение параметра цикла, КЗ — конечное значение параметра цикла, Ш — шаг изменения параметра цикла.

Начало и конец алгоритма на блок-схемах обозначают овалом, вводимые и выводимые переменные записываются в параллелограмме.

В примерах мы будем использовать запись алгоритмов с помощью блок-схем и словесное описание.

Линейные алгоритмы

Простейшие задачи имеют линейный алгоритм решения. Это означает, что он не содержит проверок условий и повторений.

Пример 1. Пешеход шел по пересеченной местности. Его скорость движения по равнине v1 км/ч, в гору — v2 км/ч и под гору — v3 км/ч. Время движения соответственно t1, t2 и t3 ч. Какой путь прошел пешеход?

1. Ввести v1, v2, v3, t1, t2, t3.

2. S1: = v1 * t1.

3. S2: = v2 * t2.

4. S3: = v3 * t3.

5. S: = S1 + S2 + S3.

6. Вывести значение S.

7. Конец.

Для проверки работоспособности алгоритма необходимо задать значения входных переменных, вычислить конечный результат по алгоритму и сравнить с результатом ручного счета.

Пример 2. Дано натуральное трехзначное число n, в записи которого нет нулей. Составить алгоритм, который возвращает значение ИСТИНА, если верно утверждение: "число n кратно каждой своей цифре", и ЛОЖЬ — в противном случае.

1. Ввести число n

2. A: = n mod 10 {разряд единиц}

3. B: = n div 100 {разряд сотен}

4. C: = n div 10 mod 10 {десятки}

5. L: = (n mod A=0) and (n mod B=0) and (n mod C=0)

6. Вывод L

7. Конец