
- •Технология разработки
- •Программного обеспечения
- •Часть 2. Основы языка Си
- •Методические указания
- •К выполнению курсовых работ
- •Часть 2. Основы языка Си 1
- •Общие требования к выполнению заданий.
- •Примечание:
- •Тестирование Теоретическая база Формирование множества комп-чисел Float-Point процессоров стандарта ieee-754.
- •Топология множества комп-чисел Float-Point процессоров стандарта ieee-754.
- •Метрологическая оценка ошибки кмд типа float. (оценка ошибки «отображение – воспроизведение»)
- •Задачи для самостоятельного решения
- •Курсовое проектирование Общие положения
- •Правила оформления пояснительной записки
- •Содержание пояснительной записки
- •Общие требования к программной документации Текст листинга
- •Инструкция программиста
- •Тестирование
- •Тематика курсовых работ
Министерство образования и науки РФ
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
Санкт-Петербургский
государственный университет аэрокосмического приборостроения
Технология разработки
Программного обеспечения
Часть 2. Основы языка Си
Методические указания
К выполнению курсовых работ
Санкт-Петербург
2012
ТЕХНОЛОГИЯ РАЗРАБОТКИ 1
Часть 2. Основы языка Си 1
Общие требования к выполнению заданий. 3
Задача 1. Основы программирования на С++. Часть 1 3
Примечание: 3
Вариант 3. Машинный ноль и машинный эпсилон 4
Задание 4
решение 4
Решение задачи 3. «Машинный ноль и машинный эпсилон» 6
Тестирование 6
Теоретическая база 7
Формирование множества комп-чисел Float-Point процессоров стандарта IEEE-754. 7
Топология множества комп-чисел Float-Point процессоров стандарта IEEE-754. 8
Метрологическая оценка ошибки КМД типа float. (оценка ошибки «отображение – воспроизведение») 8
Задачи для самостоятельного решения 12
Курсовое проектирование 13
Общие положения 13
Правила оформления пояснительной записки 13
Содержание пояснительной записки 13
Общие требования к программной документации 15
Текст листинга 15
Инструкция программиста 15
тестирование 15
Тематика курсовых работ 16
Общие требования к выполнению заданий.
К решениям предлагаемых задач предъявляются следующие требования:
1) все исходные данные вводятся пользователем;
2) при вводе данных пользователю выдается указание того, какую информацию он в данный момент вводит (например, сообщение «Введите размерность массива:» и только после этого – непосредственно ввод);
3) результат работы программы выводится на экран с соответствующими пояснениями (например, сообщение «Площадь прямоугольника равна» и следующее за ним значение площади);
4) все программы оформляются с учетом правил хорошего стиля,
Формулировки задач предполагают наличие у студента элементарных знаний по основным дисциплинам (математика, физика, информатика) и при внимательном прочтении трактуются однозначно. В связи с этим наиболее простые понятия в них не объясняются (например, при использовании слова «между» или «интервал» предполагается, что границы в диапазон не включаются, а при использовании слова «отрезок» – включаются). Перед выполнением задания из какого-либо раздела следует ознакомиться с замечаниями, расположенными в его начале.
Полностью задания по вычислительной практике и методические указания по их выполнению содержатся в [9].
Задача 1. Основы программирования на С++. Часть 1
Написать программу, которая запрашивает у пользователя длины сторон прямоугольника, рассчитывает площадь и выводит результат вычисления на экран. При составлении программы учесть, что длины сторон прямоугольника – положительные величины.
Примечание:
все операции производятся в функции main().
Если в задании не указан явно тип операндов, предполагается использование вещественных чисел.
В данном блоке заданий приведены условия, которые программа должна проверять при вводе пользовательских данных.
Программа должна также выявлять другие исключительные ситуации
(например, деление на ноль и ситуацию переполнения) и корректно реагировать на них.
В последующих блоках заданий студентам предлагается определять эти условия самостоятельно, исходя из постановки задачи.
Вариант 3. Машинный ноль и машинный эпсилон
Задание
Напишите программу, которая находит машинный ноль и машинный эпсилон для данного вещественного типа данных.
Перейти к решению
решение
Решение задачи 3. «Машинный ноль и машинный эпсилон»
Перейти к условию
#include <stdio.h>
#include <conio.h>
float calc_mz() //функция вычисления машинного нуля
{
float nextmz=1;
float mz;
do
{
mz=nextmz;
nextmz/=2;
}
while (nextmz>0);
return mz;
}
float calc_me() //функция вычисления машинного эпсилон
{
float nextme=1;
float mepsilone;
float me;
do
{
me=nextme;
nextme/=2;
mepsilone =nextme+1;
}
while (mepsilone >1);
return me;
}
void test()
{
float mz = calc_mz()/2;
if( mz != 0 )
printf(“Ошибка при вычислении машинного нуля”);
float me = 1 + calc_me()/2;
if( me != 1 )
printf(“Ошибка при вычислении машинного епсилон”);
}
void main()
{
printf("MZ=%g ME=%g\n", calc_mz(), calc_me());
while (!getch())
;
}