- •Лабораторная работа № 1. Интегрированная среда ms Visual Studio 2008. Работа с консольными приложениями. Цель: знакомство с интерфейсом интегрированной среды. Задачи
- •Начало работы с интегрированной средой ms Visual Studio 2008
- •Создание простейшей программы.
- •Вывод кириллицы на экран
- •Вывод результатов в файл и чтение данных из файла
- •Математические функции. Получение справки с использованием msdn
- •Индивидуальные задания:
Создание простейшей программы.
Составить
программу для вычисления выражений
используя (при необходимости) только
константы, переменные, скобки и знаки
арифметических операций. Программа
должна запрашивать с клавиатуры все
необходимые числовые данные и сообщать
результат. Процессы ввода и вывода
числовой информации должны сопровождаться
текстовыми комментариями, позволяющими
избежать путаницы. Отделить на экране
входную информацию от выходной пустой
строкой и строкой из повторяющихся
символов (например, дефисов или
астерисков).
Технология работы.
Входные данные a и b могут быть как целыми, так и дробными. Результатом работы программы являются переменные x и y, представляющие собой действительные числа. Поэтому предпочтительнее объявить все эти переменные одним из вещественных типов (float или double). Можно объявить все переменные одновременно в начале блока, но допустимо объявить только входные переменные, а выходные объявлять при вычислении (объявление с инициализацией). В программах небольшого размера особой разницы нет, но при создании больших программ удобнее объявлять переменные по мере необходимости.
Условия задачи таковы, что не требуют подключения никаких библиотек и модулей, за исключением стандартной библиотеки ввода и вывода в поток
#include <iostream>
а также использования стандартного пространства имён
using namespace std;
Тогда ввод данных может производиться с использованием операции ввода из потока cin>>, а вывод будет происходить в поток с использованием операции cout<<. Для удобства работы с программой перед тем, как вводить значение переменной, следует вывести на экран строковую константу (несколько подряд идущих символов, размещённых внутри кавычек, кавычки при этом в константу не входят и на экран не выводятся), поясняющую, какие переменные и в каком порядке должны быть введены. Можно вводить обе переменные сразу, разделяя их при этом пробелом и нажав <ENTER> в конце
cout<<"Enter a b:"; cin>>a>>b;
но вероятность ошибок при вводе снизится, если переменные вводить по одной:
cout<<"Enter a:"; cin>>a;
cout<<"Enter b:"; cin>>b;
При
вычислении арифметических выражений
следует обратить внимание на порядок
действий и на то, что в математике знак
умножения не является обязательным, а
дробная черта означает деление. Пара
символов ab,
которой в математике обозначают
произведение двух переменных, в языках
программирования образует новый
идентификатор, и транслятор сообщит об
ошибке «необъявленная переменная».
Правильная запись произведения выглядит
как a*b.
Комбинация символов 2,5а,
которая в математике также означает
умножение, не является таковой в
программировании, и для вычисления
этого произведения следует написать
2.5*а,
обозначив умножение астериском,
десятичную запятую – точкой. Для
соблюдения правильного порядка действий
необходимо заключить в скобки выражения,
вычисляющие значения числителя и
знаменателя для переменной
:
x=(2.5*a+b)/((a-3)*(b+1.0/7));
Иначе, например, при такой записи:
x=2.5*a+b/(a-3)*(b+1.0/7);
в
ячейку x попадёт значение совсем другого
выражения:
,
поскольку значение выражения вычисляется
слева направо и умножение (деление)
имеет более высокий приоритет, чем
сложение (вычитание).
Внимание! В выражении для вычисления значения дроби 1/7 (и любых других, где происходит деление двух целочисленных констант) необходимо одну из них записать как вещественную константу 1.0, иначе происходит деление нацело и результатом будет не вещественное число 0.142857, а целое число 0
|
Переменная
может быть подсчитана, например, так:
y=x*x*x/a/a-1.0/3*a*b;
или так:
y=x*x*x/a/a-a*b/3;
После получения результатов их необходимо вывести на экран. Пустой строки можно добиться несколькими способами:
cout<<endl;
или
cout<<'\n';
но, поскольку нам ещё необходимо вывести строковую константу, наберём следующую строку:
cout<<"\n*************************\n";
Эта команда сначала переведёт курсор на новую строку в результате воздействия так называемой escape-последовательности \n, стоящей после открывающей кавычки, затем выведет на экран строковую константу *************************, после чего курсор снова будет переведён на новую строку (вторая escape-последовательность, перед закрывающей кавычкой).
Escape-последовательность (иначе – управляющая последовательность) начинается с обратной косой черты (бэкслэша), предназначена для кодов, не имеющих графического представления и специальных символов, например:
\a – звуковой сигнал;
\n – перевод курсора в начало новой строки;
\t – горизонтальная табуляция;
\b – возврат на одну позицию влево;
\\ – бэкслэш;
\" – кавычка;
\' – апостроф;
а также ряд других. Escape-последовательность считается одним символом и может быть заключена как в апострофы (отдельно расположенный символ), так и в кавычки (строка, состоящая из нескольких символов, или из одного символа).
Выходные данные можно вывести в том же операторе:
cout<<"\n*************************\nx="<<x<<" y="<<y<<endl;
а можно отдельным оператором:
cout<<"\n*************************\n";
cout<<"x="<<x<<" y="<<y<<endl;
результат будет одинаков.
Внимание! Если в операторе cout должны быть выведены несколько величин (строковые константы "x=", и " y=", переменные x и y, а также манипулятор endl, то перед каждым из них должны располагаться операции помещения в поток << . Точно так же при вводе – перед именем каждой переменной необходимо расположить операцию чтения из потока >>
|
Примерный текст программы: |
#include <iostream> //подключение заголовочных файлов
using namespace std; //стандартное пространство имён /*============================================================ это многострочный комментарий, в данной программе используется для отделения директив препроцессора от главной функции ============================================================*/ int main() //главная функция { float a, b; //входные переменные, вещественные cout<<"Vvedite a: "; cin>>a; //ввод а cout<<"Vvedite b: "; cin>>b; //ввод b float x=(2.5*a+b)/((a-3)*(b+1.0/7)); //вычисление х float y=x*x*x/a/a-a*b/3; //вычисление у cout<<"\n*****************************\n"; cout<<"x="<<x<<" y="<<y<<endl; //вывод результатов system("pause"); //задержка консоли return 0; }
|
Результат выполнения |
|
Результат выполнения программы с ошибкой в записи дробей 1/7 и 1/3 |
|
