Загрузил jt1986

лабораторная работа

реклама
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РФ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Уральский государственный горный университет»
(ФГБОУ ВО «УГГУ»)
620144, г. Екатеринбург, ул. Куйбышева, 30
Кафедра автоматики и компьютерных технологий
ЛАБОРАТОРНЫЕ РАБОТЫ
по дисциплине «Программирование и алгоритмизация»
Студент:________Васильев И. С.__________
(Фамилия И.О.)
Группа: ________АТП-1-2УЗ_____________
Руководитель: __Матвеев В .В. ___________
(Фамилия И.О.)
Екатеринбург, 2019
1
Содержание
1. Цель лабораторной работы ............................................................................. 4
2. Требования к комплексу технических средств ........................................... 4
3. Требование к программной и информационной совместимости ............ 4
4. Разработка программы по заданию 1 ........................................................... 5
4.1. Анализ требований к программе ................................................................................................ 5
4.1.1. Задание ...................................................................................................................................... 5
4.1.2. Описание метода решения задачи........................................................................................ 5
4.1.3 Требования к программе ........................................................................................................ 5
4.2. Проектирование программы ....................................................................................................... 6
4.2.1. Декомпозиция задачи ............................................................................................................. 6
4.2.2. Алгоритмы процессов решения задачи .............................................................................. 6
4.2.3. Алгоритм решения задачи..................................................................................................... 8
4.3. Кодирование ..................................................................................................................................11
4.4.1. Требования к программе .....................................................................................................12
4.4.2. Требования к комплексу технических средств ...............................................................12
4.4.3. Порядок испытаний ..............................................................................................................12
4.4.4. Результаты испытаний ........................................................................................................12
5. Разработка программы по заданию 2 ......................................................... 13
5.1. Анализ требований к программе ..............................................................................................13
5.1.1. Задание ....................................................................................................................................13
5.1.2. Описание метода решения задачи......................................................................................13
5.1.3 Требования к программе ......................................................................................................13
5.2. Проектирование программы .....................................................................................................14
5.2.1. Декомпозиция задачи ...........................................................................................................14
5.3 Текст программы .......................................................................................... 18
5.4 Метод тестирования ..................................................................................... 19
5.4.1 Требования к программе ..........................................................................................................19
5.4.2 Требования к комплексу технических средств ....................................................................19
5.4.3 Порядок испытаний ...................................................................................................................20
5.4.4 Результаты испытаний .............................................................................................................20
6. Разработка программы по заданию 2 ......................................................... 21
6.1. Анализ требований к программе ..............................................................................................21
2
6.1.1. Задание ....................................................................................................................................21
6.1.2. Описание метода решения задачи......................................................................................21
6.1.3 Требования к программе ......................................................................................................21
6.2. Проектирование программы .....................................................................................................22
6.2.1. Декомпозиция задачи ...........................................................................................................22
6.3 Текст программы .......................................................................................... 25
6.4 Метод тестирования ..................................................................................... 26
6.4.1 Требования к программе ..........................................................................................................26
6.4.2 Требования к комплексу технических средств ....................................................................26
6.4.3 Порядок испытаний ...................................................................................................................26
6.4.4 Результаты испытаний .............................................................................................................27
3
1. Цель лабораторной работы
Разработать программы с линейной, переключательной и циклической
структурой вычислительного процесса. Составить схемы работы систем и
программ.
2. Требования к комплексу технических средств
Тип устройства
Ноутбук
Модель
НР-ZBOOK
Процессор
Inter(R) Core(TM) i7-6500U
Установленная память
8Гб
(ОЗУ)
Устройства хранения
Тип накопителя SSD M2 емкость 320 Гб
данных
Средства отображения
Экран:
жидкокристаллический,
информации
широкоформатный, диагональ 15.6 дюймов,
разрешение матрицы 1920х1080.
Тип видеокарты: встроенная AMD File Pro
W4190M
Средства ввода
Встроенная клавиатура с цифровым блоком
информации
Напряжение питания
Устройство позиционирования: Touchpad
Блок питания ~220 В. 50 Гц.
3. Требование к программной и информационной совместимости
Среда разработки DEV-C++ 5.4.2: компилятор TDM-GCC 4.7.1
совместимая о операционной системой Windows.
4
4. Разработка программы по заданию 1
4.1. Анализ требований к программе
4.1.1. Задание
Преобразовать значение длины из миллиметров в дюймы по формуле:
𝑑=
𝑙
25.4
4.1.2. Описание метода решения задачи
Решение задачи заключается в вычислении значения длинны формуле:
𝑑=
𝑙
25,4
Пользователь вводит длину «m» которую программа обрабатывает
соответствующей формуле.
4.1.3 Требования к программе
4.1.3.1.
Требования
к
информационной
и
программной
совместимости
Требования к информационной и программной совместимости указаны
в разделе 3.
4.1.3.2. Описание структуры данных
В решении задачи будут использована одна переменная l. Значениями
переменной l является положительное вещественное число.
4.1.3.3. Требования к вводу исходных данных, представления и
хранения результата
Для решения задачи требуется запустить файл «Primer 1» с расширением
.exe. При запуске на дисплее должно появиться диалоговое окно «Задайте
длину в миллиметрах l=» . В данное диалоговое окно пользователь должен
ввести с клавиатуры исходные данные l и нажать на клавишу «Enter». После
ввода, на дисплее в диалоговом окне должно быть выведено сообщение «Дина
в дюймах d=» и выведен результат.
4.1.3.4. Требования к корректности ввода данных
При вводе исходных данных l разрешен ввод только вещественных
чисел от 0 до +∞.
5
4.2. Проектирование программы
4.2.1. Декомпозиция задачи
Задача может быть решена в ходе последовательного выполнения трех
предопределенных процессов: ввод исходных данных, обработка данных,
вывод результата (см. Таблица 2).
Таблица 2
Декомпозиция задачи
Описание псевдокодом
Алгоритм Общий вид решения
задачи
Вещественные d, l
Начало
Процесс ввода исходных данных l
Процесс вычисления d
Процесс вывода результата m
Конец
Схема программы
Начало
Ввод
исходных
данных, l
Вычесление
d
Вывод
Результата
d
Конец
4.2.2. Алгоритмы процессов решения задачи
Каждый процесс состоит из действий пользователя и исполнителя.
Рассмотрим процессы решения задачи детально (см. Таблица 3, 4, 5).
6
Таблица 3
Процесс ввода исходных данных
Описание псевдокодом
Алгоритм Процесс ввода исходных
данных
Вещественные l,
Начало
Вывести сообщение: "Задайте длину в
миллиметрах l="
Задать l
Конец
Схема процесса
Начало
Вывести
«Задайт длину в
миллиметрах
l=»
Задать l
Конец
Таблица 4
Процесс вычисления
Описание псевдокодом
Алгоритм Процесс вычисления
Вещественные d, l,
Начало
Вычислить d ← l/25,4
Конец
Схема процесса
Начало
d
l/25,4
Конец
7
Таблица 5
Процесс вывода результата
Описание псевдокодом
Алгоритм Процесс вывода
результата
Вещественные d
Начало
Вывести: "Длина в дюймах d="
Вывести d
Конец
Схема процесса
Начало
Вывести
«Длина в
дюймах
d=»
Значение d
Конец
4.2.3. Алгоритм решения задачи
4.2.3.1. Схема программы
Для составления схемы программы объединим алгоритмы процессов
(см. Таблица 6, 7).
8
Таблица 6
Схема программы
Описание псевдокодом
Алгоритм Решение
линейного уравнения
Вещественные l, d.
Начало
Вывести: "Задайте длину в
миллиметрах l=)"
Задать l
Вычислить d ← l/25,4
Вывести : "Длина в дюймах
d="
Вывести значение d
Конец
Схема процесса
Начало
1
Вывести
«Задайте длину
В миллиметрах
l»
2
Процесс
вводаа
исходных
данных
Задать l
3
d
l/25,4
4
Вывести
«Длина в
дюйма
d=»
5
Процесс
вводаа
исходных
данных
Вывести d
Конец
9
Таблица 7
Описание символов схемы программы
Номер
Описание
символа
1
Вывод сообщения "Задайте длину l="
2
Ввод значения l
3
Вычисление d
4
Вывод сообщения "Длина d="
5
Вывод значения результатов d
4.2.3.2. Схема работы системы
Схема работы системы отображает использование функциональных
частей (клавиатура, оперативное запоминающее устройство, дисплей)
системы обработки информации при выполнении программы (см. Таблица 8 и
рис. 1).
Таблица 8
Описание процессов
Номер
процесса
1
2
3
4
5
Описание процесса
Считывание сообщения из ОЗУ и передача на дисплей
Ввод значения l с клавиатуры, запись значения в ОЗУ и
передача на дисплей
Считывание значения l, вычисление значения d, запись d в
ОЗУ
Считывание сообщения из ОЗУ и передача на дисплей
Считывание значения d из ОЗУ и передача на дисплей
10
Начало
1
Введите
длину l=
Значение l
Вывод сообщения
Сообщение
"Введите
длину l"
Вывести значение l
Значение l
Вычислить
𝒍
Значение l, d,
2
Ввод значения l
3
𝒅=
𝟐𝟓,𝟒
4
Значение
d=
Вывод сообщения
Сообщение
"Длина d="
Вывод значения
Значение d
5
Значение d
Конец
Рис.1. Схема работы системы
4.3. Кодирование
#include <cmath>
#include <Windows.h>
using namespace std;
int main(int argc, char *argv[])
{double l, d;
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
cout<<"Задайте длинну в миллиметрах l=";
cin>>l;
11
d=l/25.4;
cout<<"Длина в дюймах d=";
cout<<d
system("PAUSE");
return EXIT_SUCCESS;
}
4.4. Тестирование
4.4.1. Требования к программе
Программный продукт среды разработки DEV-C++ 5.11 должен:
1. При запуске файла «Primer 1» с расширением .exe открыть диалоговое
окно с сообщением "Задайте длину в миллиметрах l=";
2. При вводе значения l с клавиатуры ввести на дисплей данное значение.
3. При нажатии клавиши «Enter» перевести миллиметры в дюймы по
формуле 𝑑 =
𝑙
25,4
и вывести сообщение "Длинна в дюймах d=" и результат на
дисплей. Результатом вывода на дисплей является вещественное число.
4.4.2. Требования к комплексу технических средств
Требования к комплексу технических средств указаны в разделе 2.
4.4.3. Порядок испытаний
Для данной программы проведем ручное тестирование объекта.
1. В сообщении «Задайте длинна в миллиметрах l=», равное 10.
2. Нажмем на клавишу «Enter».
3. В сообщении « Длинна в дюймах l=»: Значение 0,393701.
4.4.4. Результаты испытаний
Тестирование
Таблица 9
Результаты
тестирования
Запуск диалогового окна с сообщением «Задайте длину
Да
в миллиметрах l=»
Вывод значения l
Да
12
Перевод значения миллиметры в дюймы по формуле
Да
Вывод сообщения « Длинна в дюймах l=» со значением
Да
d
Результат вывода значения d в виде вещественного
Да
значения
5. Разработка программы по заданию 2
5.1. Анализ требований к программе
5.1.1. Задание
На оси OX расположены три точки x1 > 0, x2 > 0, x3 > 0 . Определить, какая
из данных точек расположена ближе к началу координат
5.1.2. Описание метода решения задачи
Решение задачи заключается в сравнении значений трёх координат,
нахождения ближайшей точки к 0, и вывода ее значения.
5.1.3 Требования к программе
5.1.3.1.
Требования
к
информационной
и
программной
совместимости
Требования к информационной и программной совместимости указаны
в разделе 3.
5.1.3.2. Описание структуры данных
В решении задачи будут использованы следующие переменные: x1, x2,
x3, y. Значениями переменных будут вещественные числа.
5.1.3.3. Требования к вводу исходных данных, представления и
хранения результата
Для решения задачи требуется запустить файл «Primer 2» с расширением
.exe. При запуске на дисплее должно появиться диалоговое окно «Введите
координату х1». В данное диалоговое окно пользователь должен ввести с
клавиатуры координату х1 и нажать на клавишу «Enter». После ввода, на
13
дисплее должно появиться диалоговое окно «Введите координату х2». В
данное диалоговое окно пользователь должен ввести с клавиатуры координату
х2 и нажать на клавишу «Enter». После ввода, на дисплее должно появиться
диалоговое окно «Введите координату х3». В данное диалоговое окно
пользователь должен ввести с клавиатуры координату х3 и нажать на клавишу
«Enter». После ввода, на дисплее в диалоговом окне должно быть выведено
сообщение «Ближайшая точка y=» и выведен результат.
5.1.3.4. Требования к корректности ввода данных
5.1.3.4.1. Требования к проверке при вводе исходных данных
При вводе исходных данных x1, x2, x3 разрешен ввод только
вещественных чисел (нельзя ввести текст, дату, символы и отрицательные
значения).
5.2. Проектирование программы
5.2.1. Декомпозиция задачи
Задача может быть решена в ходе последовательного выполнения трех
предопределенных процессов: ввод исходных данных, обработка данных,
вывод результата.
14
Таблица 10
Декомпозиция задачи
Описание псевдокодом
Алгоритм Общий вид решения
задачи
Вещественные x1, x2, x3, y
Начало
Процесс ввода координат x1, x2, x3
Процесс вычисления y
Процесс вывода результата y
Конец
Схема программы
Начало
Ввод
исходных
координат
x1, x2, x3
Вычисление
y
Вывод
Результата
y
Конец
15
Таблица 11
Процесс ввода исходных данных
Описание псевдокодом
Схема процесса
Алгоритм Процесс ввода
исходных координат
Начало
Вещественные х1, х2, х3 y;
Начало
Вывести "Введите
Вывести
«Введите
координату х1=".
координату
Задать х1
x1=»
Вывести "Введите
координату х2=".
Задать х2
Вывести: "Введите
Задать x1
координату х3=".
Задать х3
Конец
Вывести
«Введите
координату
x2=»
Задать х2
Вывести
«Введите
координату
х3=»
Задать х3
Конец
16
Таблица 12
Процесс обработки данных
Описание псевдокодом
Схема процесса
Алгоритм Процесс
вычисления
Начало
Вещественные x1, x2, x3, y
Начало
Если x1<x2
Да
то y=x1
Нет
х1<x2
иначе y=x2
конец-если
Если y<x3
то
иначе y=x3
y:=x1
y:=x2
конец-если
Конец
Да
y<x3
Нет
y:=x3
Конец
17
Таблица 13
Процесс вывода результата
Описание псевдокодом
Схема программы
Алгоритм Процесс вывода
результата.
Начало
Вещественные x1, x2, x3, y
Начало
Вывести сообщение: «Ближайшая
точка=»
Вывести
«Ближайшая
точка y=»
Вывести значение y
Конец
Вывести y
Конец
5.3 Текст программы
#include <cstdlib>
#include <iostream>
#include <Windows.h>
using namespace std;
int main(int argc, char *argv[])
{ int x1, x2, x3, y;
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
cout<<"Введите координату x1=";
cin>>x1;
cout<<" Введите координату х2=";
cin>>x2;
cout<<" Введите координату х3=";
cin>>x3;
18
if(x1<x2)
y=x1;
else
y=x2;
if(y<x3)
y=y;
else
y=x3;
cout<<"Ближайшая точка"<<y ;
system("PAUSE");
return EXIT_SUCCESS;}
5.4 Метод тестирования
5.4.1 Требования к программе
Программный продукт среды разработки DEV-C++ 5.11 должен:
1. При запуске файла «Primer 2» с расширением .exe открыть диалоговое
окно с сообщением "Введите координату х1=".
2. При вводе значения х1 с клавиатуры ввести на дисплей данное
значение.
3. При нажатии клавиши «Enter» вывести сообщение "Введите
координату х2=".
4. При вводе значения х2 с клавиатуры ввести на дисплей данное
значение.
5. При нажатии клавиши «Enter» вывести сообщение "Введите
координату х3=".
6. При вводе значения х3 с клавиатуры ввести на дисплей данное
значение.
7. При нажатии клавиши «Enter» вывести на дисплей сообщение
«Ближайшая точка y=» и результат на дисплей. Результатом вывода на
дисплей является вещественное число.
19
5.4.2 Требования к комплексу технических средств
Требования к комплексу технических средств указаны в разделе 2.
5.4.3 Порядок испытаний
Для данной программы проведем ручное тестирование объекта.
1. В поле 1 введем значение x1 равное 6
2. Нажмем на клавишу «Enter».
3. В поле 2 введем значение x2 равное 8
4. Нажмем на клавишу «Enter».
5. В поле 3 введем значение x2 равное 1
6. Нажмем на клавишу «Enter».
Результат значения y выведен в поле: Значение 1
5.4.4 Результаты испытаний
Результаты испытаний представляются в виде таблицы:
Таблица 14
Тестирование
Результаты
тестирования
Запуск диалогового окна с сообщением «Введите
Да
координату х1=»
Предоставление ввода цифрового значения
Да
Запуск диалогового окна с сообщением «Введите
Да
координату х2=»
Предоставление ввода цифрового значения
Да
Запуск диалогового окна с сообщением «Введите
Да
координату х3=»
Предоставление ввода цифрового значения
Да
Вывод сообщения: «Ближайшая точка =»
Да
Проверка правильности выведенного значения
Да
20
6. Разработка программы по заданию 2
6.1. Анализ требований к программе
6.1.1. Задание
Вычислить значение S  k 1
K

4k
k  x 2  5  x  10

k
при условиях
4
a
 1, k  
sk
x  5  x  10
2
6.1.2. Описание метода решения задачи
Решение задачи заключается в суммировании всех элементов ak.
6.1.3 Требования к программе
6.1.3.1.
Требования
к
информационной
и
программной
совместимости
Требования к информационной и программной совместимости указаны
в разделе 3.
6.1.3.2. Описание структуры данных
Переменные x, sk, ak, k, eps являются положительными вещественными
числами.
6.1.3.3. Требования к вводу исходных данных, представления и
хранения результата
Для решения задачи требуется запустить файл «Primer 3» с расширением
.exe. При запуске на дисплее должно появиться диалоговое окно «Задайте х=».
В данное диалоговое окно пользователь должен ввести с клавиатуры исходные
данные х и нажать на клавишу «Enter». После ввода, на дисплее в диалоговом
окне должны быть выведены сообщение «Сумма равна sk=», «Степень k=» и
выведены результаты.
21
6.1.3.4. Требования к корректности ввода данных
Данные должны быть введены в виде вещественных чисел.
6.1.3.4.1. Требования к проверке при вводе исходных данных
6.2. Проектирование программы
6.2.1. Декомпозиция задачи
Задача может быть решена в ходе последовательного выполнения трех
предопределенных процессов: ввод исходных данных, обработка данных,
вывод результата.
Таблица 15
Декомпозиция задачи
Описание псевдокодом
Алгоритм Общий вид решения
задачи
Вещественные x, sk, ak, eps, k
Начало
Процесс ввода данных x,
Процесс вычисления sk
Процесс вывода результата sk
Конец
Схема программы
Начало
Ввод
исходных
данных
x
Вычисление
sk
Вывод
Результата
sk
Конец
22
Таблица 15
Процесс ввода исходных данных
Описание псевдокодом
Схема процесса
Алгоритм Процесс ввода исходных
Начало
данных
Вещественные x, sk, ak, eps, k.
Начало
Вывести: «Задайте x»
Вывести
«Задайте х=»
Задать значение x
Конец
Задать x
Конец
23
Таблица 16
Процесс обработки данны
Описание псевдокодом
Алгоритм Вычисление суммы
Вещественные x, sk, ak, eps, k
Начало
Присваиваем значение eps=0.0001
Выполнять
{k=k+1
ak=

ak
k  x 2.  5  x  10

k
sk=sk+ak
Округление результата до восьми знаков
после запятой
Вывод полученного значения sk
Пока условие
Схема программы
Начало
eps=0.0001
Цикл 1
с постусловием
K=k+1
ak
 eps
sk
Конец
sk=sk+ak
cout.precision(8)
Вывод
полученного
значения sk
Цикл 1
Конец
24
Таблица 17
Процесс вывода результата
Описание псевдокодом
Схема программы
Алгоритм Процесс вывода
результата.
Начало
Вещественные x, sk, ak, eps, k
Начало
Вывести: «Сумма равна=»,
«Степень =»
Конец
Вывести
«Сумма равна=»
«Степень=»
Конец
6.3 Текст программы
#include <cstdlib>
#include <iostream>
#include <cmath>
#include <Windows.h>
#include <iomanip>
using namespace std;
double k=0, x, eps, sk, ak;
int main(int argc, char *argv[])
{
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
cout<< "Задайте x=";
25
cin>>x;
eps=0.0001;
do
{k=k+1;
ak=pow(4,k)/(k*(pow(x*x-5*x+10,k)));
sk=sk+ak;
cout.precision(8);
cout<<sk<<"\n";
}while(abs(ak/sk)>eps);
cout.precision(8);
cout<<"Сумма равна sk="<<sk<<"Степень k="<<k;
system("PAUSE");
}
6.4 Метод тестирования
6.4.1 Требования к программе
Программный продукт среды разработки DEV-C++ 5.11 должен:
1.
При запуске файла Primer3.exe открыть диалоговое окно с
сообщением “Задайте x=”;
2.
При вводе значения x с клавиатуры ввести на дисплей данное
значение.
3.
После нажатия на клавишу «Enter» вывести сообщения «Сумма
равна sk=» «Степень k=» и результат на дисплей. Результатом является сумма
и шаги итераций, а также конечные значения всех подстановок. Результатами
вывода на дисплей являются вещественные числа.
.
6.4.2 Требования к комплексу технических средств
Требования к комплексу технических средств указаны в разделе 2.
6.4.3 Порядок испытаний
Для данной программы проведем ручное тестирование объекта.
1.
В поле сообщения “Задайте x=” введём вещественное число 0,1;
26
2.
Нажмем на клавишу «Enter»;
3.
При нажатии клавиши «Enter» вывести на дисплей сообщения
«Сумма равна sk=» «Степень k=» и результаты на дисплей. Результатами
вывода на дисплей являются вещественные числа.
Результатом является список вычислений сумм при 9 циклах:
sk = 0,54575111;
k = 9.
6.4.4 Результаты испытаний
Результаты испытаний представляются в виде таблицы:
Таблица 18
Тестирование
Результаты
тестирования
Запуск диалогового окна с сообщением «Задайте x»
Да
Предоставление ввода цифрового значения
Да
Вывод промежуточно значения sk
Да
Вывод сообщения «Сумма равна sk=» «Степень k=»
Да
Проверка правильности выведенного значения
Да
27
Скачать