
1. Составить блок схему алгоритма и написать программу вычисления факториала, используя цикл
do..while, с проверкой вводимого значения на ноль и на отрицательное значение. 2. Сделать описание программы. 3. Отчет оформить в документе WORD. Факториа́л — функция, определённая на множестве неотрицательных целых чисел. Название происходит от лат. factorialis — действующий, производящий, умножающий; обозначается n! Факториал натурального числа n определяется как произведение всех натуральных чисел от 1 до n включительно: n!=1*2*3*4* ….*n

Ответы на вопрос

Ответ:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int x, faktorial;
faktorial = 1;
cout << "vvedite x" << endl;
cin >> x;
if(x <= 0)
{
cout << "x dolgen bit' > 0" << endl;
return 0;
}
cout << "faktorial " << x " = "; //выводим заготовку для результата, так как x будет меняться
do
{
faktorial *= x; //faktorial = faktorial * x;
}
//если в условие цикла подставить число, то 0 преобразуется к "ложь", а ненулевое значение к "истина"
while(--x);//уменьшаем x на 1, затем проверяем его на 0
cout << faktorial << endl;
return 0;
}
Объяснение:




Давайте начнем с составления описания программы для вычисления факториала с использованием цикла do..while
и проверкой вводимого значения на ноль и отрицательное значение.
Описание программы:
Программа будет запрашивать у пользователя ввод натурального числа (целого числа больше либо равного нулю). Затем она вычислит факториал этого числа с использованием цикла do..while
, учитывая проверки на корректность ввода. Если пользователь введет отрицательное число или ноль, программа сообщит об ошибке. Иначе она вычислит факториал и выведет результат.
Блок-схема алгоритма:
sql+-------------------------+
| Ввод числа n |
+-------------------------+
|
v
+-------------------------+
| Проверка n на отрицательное |
| или нулевое значение |
+-------------------------+
|
v (неверное значение)
+-------------------------+
| Вывод сообщения об ошибке |
+-------------------------+
|
v
+-------------------------+
| Инициализация переменной |
| result = 1 |
+-------------------------+
|
v
+-------------------------+
| Цикл do..while |
| result = result * n |
| n = n - 1 |
| Пока n > 1 |
+-------------------------+
|
v
+-------------------------+
| Вывод результата |
+-------------------------+
Программа на языке C++:
cpp#include <iostream>
int main() {
int n;
std::cout << "Введите натуральное число: ";
std::cin >> n;
if (n < 0) {
std::cout << "Ошибка: введено отрицательное число." << std::endl;
} else if (n == 0) {
std::cout << "Факториал 0 равен 1." << std::endl;
} else {
int result = 1;
int originalN = n; // сохраняем оригинальное значение n
do {
result *= n;
n--;
} while (n > 1);
std::cout << "Факториал " << originalN << " равен " << result << "." << std::endl;
}
return 0;
}
Этот код позволяет пользователю ввести натуральное число, проверяет его на корректность, вычисляет факториал с помощью цикла do..while
и выводит результат. В случае отрицательного числа выводится сообщение об ошибке, а для нуля выводится результат факториала 0.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili