Разработка расчетной программы
Ознакомится с возможностями форматированного ввода и вывода данных с применением функций scanf и printf. Под руководством преподавателя подготовить программу шаблон для вывода различных числовых значений в различных форматах. Изучив пример данный в листинге 1, создать программу, которая выводит заданные в заголовочных файлах limits. h и float. h ограничения (максимальные и минимальные значения… Читать ещё >
Разработка расчетной программы (реферат, курсовая, диплом, контрольная)
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, молоді та спорту УКРАЇНИ Національний аерокосмічний університет ім. М.Є. Жуковського
«Харківський авіаційний інститут»
Кафедра комп’ютерних систем та мереж Лабораторна робота з дисципліни «Програмування»
Розробка розрахункової програми Виконав Момот О.О.
Перевірив Шпак О. С.
- Задание № 1
- Цель работы
- Ход работы
- Алгоритм преобразования градусы — радианы
- Тесты для проверки корректности преобразований
- Код программы преобразования градусы — радианы
- Результат тестов программы на проверку корректности преобразований
- Задание № 2
- Цель работы
- Ход работы
- Код программы ограничения (максимальные и минимальные значения) для целочисленных и вещественных типов данных
- Алгоритм по решению расчетной задачи
- Код программы расчета математических выражений на основе вводимых пользователем данных
- Вывод
- Задание № 1
Цель работы
Изучить принципы построения линейных алгоритмов и простых расчетных программ на языке программирования C, а также овладеть навыками создания консольных приложений в среде Microsoft Visual Studio.
Ход работы
1. Сформулировать задание на разработку программы преобразования единиц измерения градусы — радианы (Вариант № 11). Найти и записать формулу (коэффициенты) для преобразования.
2. Разработать в Microsoft Visio алгоритм по решению задачи преобразования единиц измерения.
3. Разработать от 5 до 8 тестов для проверки корректности преобразований, согласно разработанному алгоритму (для расчетов могут использоваться Microsoft Excel и программа Convert). Как минимум 3 теста должны быть направлены на выявление заведомо ошибочного поведения программы (при делении на ноль, при работе с очень большими или очень маленькими числами, при вводе некорректных данных).
4. Разработать программу преобразования единиц измерения согласно номеру варианта. Программа должна содержать комментарии поясняющие операторы или группы операторов программы (желательно наличие комментариев, соответствующих текстовым описаниям из алгоритма).
5. Провести тестирование программы с использованием тестов, разработанных в пункте 3.
6. Оформить отчет в редакторе Microsoft Word, используя для рисования схем редактор Microsoft Visio.
7. Отчет сдать преподавателю.
Алгоритм преобразования градусы — радианы
Рисунок 1. Алгоритм преобразования единиц измерения градусы — радианы
Тесты для проверки корректности преобразований
Таблица 1. Тесты для проверки корректности преобразований
№ теста | Угол в градусах | Ожидаемый результат в радианах | |
3,141 592 654 | |||
6,283 185 307 | |||
20,94 395 102 | |||
87,2 664 626 | |||
Код программы преобразования градусы — радианы
#include
#include
#define _USE_MATH_DEFINES
#include
#include
int main ()
{
//локальные переменные для хранения исходных данных
float a, x;
// включить русский язык
printf («M_PI = %.16lfn», M_PI);
setlocale (LC_CTYPE, «rus»);
// ввод данных
printf («Введите угол в градусах: «);
scanf («%f», &a);
// пересчет угла
x = a * M_PI / 180;
// расчет и вывод результата
printf («%f», x);
system («pause»);
return 0;
}
программирование расчетный линейный консольный
Результат тестов программы на проверку корректности преобразований
Таблица 2. Результат тестов программы на проверку корректности преобразований
№ теста | Угол в градусах | Ожидаемый результат в радианах | Результат | Вывод | |
3,141 592 654 | 3,141 593 | Тест пройден | |||
Тест пройден | |||||
6,283 185 307 | 6,283 185 | Тест пройден | |||
20,94 395 102 | 20,943 951 | Тест пройден | |||
87,2 664 626 | 87,2664 | Тест пройден | |||
Задание № 2
Цель работы
Изучить стандартные типы данных языка С (их диапазоны значений и другие ограничения связанные с объемом выделяемой для хранения памяти), получить навыки разработки расчетных программ с использованием стандартных библиотек языка С (библиотеки ввода-вывода, математических функций и т. д.).
Ход работы
1.Ознакомится с возможностями форматированного ввода и вывода данных с применением функций scanf и printf. Под руководством преподавателя подготовить программу шаблон для вывода различных числовых значений в различных форматах.
2.Изучив пример данный в листинге 1, создать программу, которая выводит заданные в заголовочных файлах limits. h и float. h ограничения (максимальные и минимальные значения) для целочисленных и вещественных типов данных.
Номер варианта | Целочисленные типы данных | Вещественный тип данных | |
short, unsigned short, int | double | ||
3. Вывод информации организовать в виде двух таблиц, формируемых с использованием функции printf (). Для целочисленных типов данных в таблице должны отражаться размер в байтах, минимальные и максимальные значения в десятичной и шестнадцатеричной системе. Вторая таблица для чисел с плавающей точкой показывает длину переменной в байтах, минимальные и максимальные ее значения в десятичной системе счисления.
4. Разработать в Microsoft Visio алгоритм по решению расчетной задачи.
Номер варианта | Вычисляемые функции | Формат вывода результатов | |
Форма представления чисел: Десятичное с плавающей точкой Точность: знаков после десятичной точки | |||
5. Разработать программу расчета математических выражений на основе вводимых пользователем данных (задание из таблицы 2). За основу программы можно взять пример приведенный в листинге 2. Для хранения данных в программе нужно использовать только локальные переменные.
Код программы ограничения (максимальные и минимальные значения) для целочисленных и вещественных типов данных
#include
#include
#include
#include
#include
int main ()
setlocale (LC_CTYPE, «rus»);
printf («Таблица для целочисленных типов данныхn»);
printf («+———————+——-+—————-+————-+—————-+—————-+n»);
printf («|Type |Bytes| Min DEC | Min HEX | Max DEC | Max HEX |n»);
printf («+———————+——-+—————-+————-+—————-+—————-+n»);
printf («|short»);
printf («|%d |%d |%x |%d |%x |n», sizeof (short), SHRT_MIN, SHRT_MIN, SHRT_MAX, SHRT_MAX);
printf («+———————+——-+—————-+————-+—————-+—————-+n»);
printf («|unsigned short»);
printf («|%d | | |%u |%x |n», sizeof (unsigned short), USHRT_MAX, USHRT_MAX);
printf («+———————+——-+—————-+————-+—————-+—————-+n»);
printf («|int»);
printf («|%d |%d|%x |%d |%x |n», sizeof (int), INT_MIN, INT_MIN, INT_MAX, INT_MAX);
return 0;
}
Алгоритм по решению расчетной задачи
Рисунок 2. Алгоритм по решению расчетной задачи
Код программы расчета математических выражений на основе вводимых пользователем данных
#include
#include
#define _USE_MATH_DEFINES
#include
#include
int main ()
{
// локальные переменные для хранения исходных данных
double a; // угол в градусах
double x; // угол в радианах
double z, w;
// включить русский язык
setlocale (LC_CTYPE, «rus»);
printf («M_PI = %.16lfn», M_PI);
// ввод данных
printf («Введите угол в градусах: «);
scanf («%if», &a);
// пересчет угла
x = a * M_PI / 180;
// расчет и вывод результатов
printf («sin (%lg) = %lgn», a, sin (x));
printf («cos (%lg) = %lgn», a, cos (x));
printf («tg (%lg) = %lgn», a, tan (x));
printf («ctg (%lg) = %lgn», a, 1.0/tan (x));
z = (1 — 2 * (sin (x)*sin (x))) / (1 + sin (2*(x)));
w = (1 — tan (x)) / (1 + tan (x));
printf («Z1 = %lfn», z);
printf («Z2 = %lfn», w);
system («pause»);
return 0;
}
Вывод
Я изучил принципы построения линейных алгоритмов и простых расчетных программ на языке программирования C, а также овладел навыками создания консольных приложений в среде Microsoft Visual Studio, стандартные типы данных языка С (их диапазоны значений и другие ограничения связанные с объемом выделяемой для хранения памяти), получить навыки разработки расчетных программ с использованием стандартных библиотек языка С (библиотеки ввода-вывода, математических функций и т. д.).
Ограничения изученных типов данных и проблем (ошибок в расчетах), которые могут возникнуть в следствие этих ограничений:
1) вещественные типы данных в языке С не могут быть без знаковыми.
2) при выполнении арифметических операций и присваиванья целых значений возможен выход за приделы значений. Такое нарушение в работе называется целочисленным переполнением.
3) числам с плавающей точкой свойственно округление значений при вычислениях. В некоторых случаях могут быть получены некорректный результат вычислений по причине переполнения и потери значимости.
4) ошибки в программе могут возникнуть при явном и не явном преобразовании типов.