Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Технология работы.






Входные данные 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

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.01 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал