Лекции.Орг


Поиск:




Список используемых информационных источников. Получить навыки программирования разветвляющихся алгоритмов на языке C++.

ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ

Цель работы

Получить навыки программирования разветвляющихся алгоритмов на языке C++.

Постановка задачи

Составить программу для вычисления функции:

a, b, с – определить (инициировать) в программе,

x – ввести с клавиатуры,

y – вывести на экран.

 

 

Описание алгоритма

 

 


false

 

 


true

       
   
 
false
 

 

 


               
   
     
 
 
false
   
 

 

 


           
   
     
 
 
false
 

 

 


 
 

 


 


 
 
false

 


Рис. 1. Схема алгоритма.

 

Текст исходного кода программы с комментариями

#include <iostream>

#include <cmath>

#include <math.h>

using namespace std;

 

int main()

{

setlocale(LC_ALL, "Russian"); //русификация

int a = 2, b = 3, c = 5, answer; //инициализация a, b, c

double y, x; //инициализация x,y

 

cout << "Введите значение x от 1, но меньше 6: ";

cin >> x; //ввод x

if (x<1 || x>=6 || cin.fail()) //проверка на диапазон значений и тип переменной

cout << "Неверно. Введите число от 1, но меньше 6." << endl;

cin.clear(); //очистка потока вводных данных, предотвращающая циклический вывод предупреждения

cin.ignore(cin.rdbuf()->in_avail()); //игнорирование (ignore) колличества символов (avail) буфера (rdbuf)

while (x<1 || x >= 6) {

cout << "Введите число: ";

cin >> x;

if (x<1 || x >= 6 || cin.fail())

cout << "Неверно. Введите число от 1, но меньше 6." << endl;

cin.clear();

cin.ignore(cin.rdbuf()->in_avail());

}

 

//различные варианты функции при соответсвующих значениях х

if (x >= 1 && x < 2)

y = a + b*x + c*x*x;

 

if (x >= 2 && x < 3)

y = pow((a*sin(b*x)), 2);

 

if (x >= 3 && x < 4)

y = sqrt(abs(a + b*pow(x, 2))) + c;

 

if (x >= 4 && x < 5)

y = a*log(abs(b + (c / (2 * x))));

 

if (x >= 5 && x < 6)

y = exp(a*sin(x)) + pow(c, 3);

 

cout << "Значение y: " << y << endl; //вывод y

cout << endl;

cout << "Желаете завершить работу прогаммы? Нажмите 1 для выхода из программы и 0 для передачи управления ОС."<< endl;

cin >> answer;

if (answer > 1) cout << "Неверный ответ. Нажмите 1 для выхода из программы и 0 для передачи управления ОС." << endl;

while (answer > 1) { //проверка на введенный ответ

cout << "Сделайте выбор: ";

cin >> answer;

if (answer > 1) cout << "Неверный ответ.Нажмите 1 для выхода из программы и 0 для передачи управления ОС." << endl;

}

//выбор окончания программы

switch (answer) {

case 1:

exit(0);

break;

case 0:

system("Pause");

break;

}

return 0;

}

Контрольный прогон программы

Тест №1 – ввод значений, не удовлетворяющих допустимому диапазону значений. Последующий ввод корректного значений x (5).

Рис. 2. Результат теста №1.

Тест №2 – ввод значений, не удовлетворяющих допустимому диапазону значений, включая символы. Последующий ввод корректного значений x (4).

Рис. 3. Результат теста №2.

Вывод

Задание дает представление о написании ветвящихся алгоритмов на языке С++. Так же программа позволила мне не только освоить проверку введённых с клавиатуры значений, но и создать конструкцию, позволяющую проверять как диапазон введенных значений, так и их тип. Она будет использоваться мной в будущих программах. Так же была изучена функция извлечения корня (sqrt()). Было реализовано завершение программы по выбору пользователя через функцию выхода (exit(0)).

Список используемых информационных источников

1. Павловская Т.А. С/С++. Программирование на языке высокого уровня- Санкт-Петербург. Питер, 2006.

2. Интернет-ресурс: http://www.programmersforum.ru/showthread.php?t=98038

3. Интернет-ресурс: https://cppstudy.wordpress.com/2009/03/27/cin-get-and-co/

4. Единая система программной документации (ЕСПД) ГОСТ 19.701-90

5. Сыромятников В.П. «Программирование», МТУ МИРЭА, лекции, 2016/2017.



<== предыдущая лекция | следующая лекция ==>
Существуют определенные требования к организации дидактических игр. | II квартал (декабрь-январь-февраль)
Поделиться с друзьями:


Дата добавления: 2016-12-05; Мы поможем в написании ваших работ!; просмотров: 508 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Самообман может довести до саморазрушения. © Неизвестно
==> читать все изречения...

1032 - | 878 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.