Навигация по странице:
|
ЛАБ_ПРОГР. Программирование линейных алгоритмов. Работа с отладчиком
Разработал Кашпар А.И
Лабораторная работа № 1
Тема: «Программирование линейных алгоритмов. Работа с отладчиком»
-
Цель работы
Освоение простейшей структуры программы на языке Си.
Получение навыков в организации ввода-вывода на Языке Си.
-
Техническое обеспечение
Персональная ЭВМ
Клавиатура.
Дисплей.
Печатающее устройство.
-
Программное обеспечение
Операционная система Windows
Система программирования Visual C++ версия 6.0 или Borland C++ версия 3.1 и более поздние версии.
Постановка задачи
Написание простейшей программы с обработкой данных.
-
Содержание отчета
Тема и цель работы.
Постановка задачи.
Текст программ.
Результаты выполнения программ.
Схемы алгоритма программ.
Общие сведения
5.1 Линейная программа
Если в программе все операторы выполняются последовательно, один за другим, такая программа называется линейной. Рассмотрим в качестве примера программу, вычисляющую результат по заданной формуле.
Задача 1.1. Расчет по формуле
Написать программу, которая переводит температуру в градусах по Фаренгейту в градусы Цельсия по формуле:
C =5/9 (F-32),
где С - температура по Цельсию, a F — температура по Фаренгейту.
Перед написанием любой программы надо четко определить, что в нее требуется ввести и что мы должны получить в результате.
В данном случае:
- в качестве исходных данных выступает одно вещественное число, представляющее собой температуру по Цельсию,
- в качестве результата — другое вещественное число.
Перед написанием программы откроем интегрированную среду Visual C++:
Пуск/Программы/Microsoft Visual Studio/ Microsoft Visual C++ 6.00
Далее создадим проект. Для этого:
File > New...
В открывшемся окне:
- выберите тип Win32 Console Application;
- введите имя проекта в текстовом поле Project Name;
- введите (выберете с помощью кнопки …) имя каталога размещения файлов проекта в текстовом поле Location, например G:/ASOIZ/
- щелкните левой кнопкой мыши на кнопке ОК.
открывается диалоговое окно Win32 Console Application — Stepl of 1 и в нем:
- выберите тип An empty project;
- щелкните на кнопке Finish.
После щелчка появится окно New Project, в котором щелкните на кнопке ОК.
Далее создадим файл:
1) File > New.... В результате откроется диалоговое окно New.
2) На вкладке Files:
выберите тип файла (в данном случае: C++ Source File);
в текстовом поле File Name введите нужное имя файла;
флажок Add to project должен быть включен;
щелкните на кнопке ОК.
Набираем следующий текст программы:
Рассмотрим каждую строку программы отдельно.
В начале программы записана директива препроцессора, по которой к исходному тексту программы подключается заголовочный файл . Это файл, который содержит описания операторов ввода-вывода cin и cout.
Любая программа на С++ состоит из функций, одна из которых должна иметь имя main, указывающее, что именно с нее начинается выполнение программы. После круглых скобок в фигурных скобках { } записывается тело функции, т.е. те операторы, которые требуется выполнить.
Любая заготовка при написании программы имеет вид:
#include <�…>
#include <�…>
int main()
{
объявление переменных;
ввод исходных данных;
расчет результата;
вывод результата;
return 0;
}
Для хранения исходных данных и результатов надо выделить достаточно места в оперативной памяти. Для этого служит оператор 2. В нашей программе требуется хранить два значения: температуру по Цельсию и температуру по Фаренгейту, поэтому в операторе определяются две переменные. Одна, для хранения температуры по Фаренгейту, названа fahr, другая (по Цельсию) — cels. Имена переменным дает программист, исходя из их назначения. Имя может состоять только из латинских букв, цифр и знака подчеркивания и должно начинаться не с цифры.
При описании любой переменной нужно указать ее тип. Поскольку температура может принимать не только целые значения, для переменных выбран вещественный тип float.
Основные типы:
int (short, unsigned) – целочисленные,
float (double, long double) – вещественные
char – символьный
bool – логический
Для того, чтобы пользователь программы знал, в какой момент требуется ввести с клавиатуры данные, применяется так называемое приглашение к вводу (оператор 3). На экран выводится указанная в операторе cout строка символов, и курсор переводится на следующую строку. Для перехода на следующую строку используется endl.
В операторе 4 выполняется ввод с клавиатуры одного числа в переменную fahr. Для этого используется стандартный объект cin и операция извлечения (чтения) >>. Если требуется ввести несколько величин, используется цепочка операций >>.
В операторе 5 вычисляется выражение, записанное справа от операции присваивания (обозначаемой знаком =), и результат присваивается переменной cels, то есть заносится в отведенную этой переменной память. Cначала целая константа 5 будет поделена на целую константу 9, затем результат этой операции умножен на результат вычитания числа 32 из переменной fahr.
Для вывода результата в операторе 6 применяется объект cout. Выводится цепочка, состоящая из пяти элементов. Это строка " По Фаренгейту:", значение переменной fahr, строка ", в градусах Цельсия:" , значение переменной cels и оператор перехода на новую строку endl.
Последний оператор (оператор 7) этой программы предназначен для возврата из нее и передачи значения во внешнюю среду.
Далее компилируем программу. Для этого нажимаем кнопку на панели инструментов либо комбинацию клавиш Ctrl+F7. В окне вывода (внизу экрана) должно вывестись сообщение 0 error(s), 0 warning(s) (0 ошибок, 0 предупреждений). Если есть ошибки - сверьте с оригиналом.
Для запуска программы нажимаем кнопку на панели инструментов либо комбинацию клавиш Ctrl+F5.
При запуске программы вместо русских символов видим ???, что вызвыно различными стандартами кодировки символов кириллицы в операционных системах MS DOS-и Windows. Для исправления добавим в программу функцию CharToOem (дополнения для наглядности выделены красным цветом)
#include
#include
char buf[256];
char* RUS(const char* text)
{
CharToOem(text, buf);
return buf;
}
int main()
{
float fahr, cels;
cout<<
cin>>fahr;
cels=5/9 * (fahr - 32);
cout<<
cout<<
return 0;
}
Функцию Rus() нельзя использовать более одного раза в цепочке операций << для одного объекта cout, поэтому мы разбили его на два.
Как вы можете видеть, результат выполнения программы со стабильностью оказывается равным нулю! Это происходит из-за способа вычисления выражения. Давайте вновь обратимся к оператору 4. Константы 5 и 9 имеют целый тип, поэтому результат их деления также целочисленный. Естественно, что результат дальнейших вычислений не может быть ничем, кроме нуля. Исправить эту ошибку просто — достаточно записать хотя бы одну из констант в виде вещественного числа, например:
cels = 5. / 9 * (fahr - 32);
Задания1
Напишите программу для расчета по двум формулам. Предварительно подготовьте тестовые примеры по второй формуле с помощью калькулятора (результат вычисления по первой формуле должен совпадать со второй). Для использования математических функций необходимо подключить к программе заголовочный файл
Функция
|
Выполняемые действия
|
Abs(n)
|
Возвращаемый модуль целого числа
|
fabs (x)
|
Возвр. модуль вещественного числа
|
acos(x)
asin(x)
atan (x)
atan 2(x)
|
Arcos x
Arsin x
Arctg x
Возвращаем arctg x/y
|
cos(x)
sin(x)
tan(x)
exp(x)
log(x)
log10(x)
pow(x,y)
sqrt(x)
|
Cos x
Sin x
Tag x
Степень числа е
Натуральный логарифм
Логарифм по основанию 10
Возводит число х в степень у
Квадратный корень из числа
|
1
2
3 10
4
5
6
7
8
|
|
|