Разветвляющиеся вычислительные процессы
Условие задачи 1
Ввести число x, выяснить что больше: целая часть числа x, или его дробная часть, умноженная на 10. Если первое, то число разделить на 10, если второе, то дробную часть от него отнять.
Тестовые примеры к задаче 1
1)
Входные данные: X = 3.08763
Выходные данные:
Целая часть числа равна 3
дробная часть числа равна 0.08763
целая часть больше
число после изменения x=30.8763
2)
Входные данные:X = 1.2345
Выходные данные:
Целая часть числа равна 1
дробная часть числа равна 0.2345
дробная часть, умноженная на 10 больше
удесятеренная дробная часть равна
2.345
число после изменения x=1
Блок-схема к задаче 1
2.4 Листинг программы на языке С++ к задаче 1
#include <iostream.h>
using namespace std;
int main()
{
float x;
cout<<"\nVvod x";
cin>>x;
float y,z;
// Рассчитываем целую часть
y=(int)x;
// Рассчитываем дробную часть
z=x-(int)x;
cout<<"\nCelaya chast="<<y;
cout<<"\nDrobnaya chast="<<z;
// Проверка условия
if (y>z*10)
{
cout<<"\nCelaya chast bolshe";
x=x*10;
}
else
{
cout<<"\nDrobnaya chast *10 bolshe";
x=x-z;
}
cout<<"\nx="<<x;
}
Условие задачи 2
Ввести четырёхзначное число, выяснить равны ли первая и последняя цифра в его записи. Если цифры равны и чётны, то разделить их на два. Если цифры не равны и первая цифра больше последней, то поменять их местами. Если цифры не равны и первая цифра меньше последней, то поменять местами вторую и третью цифры.
Тестовые примеры к задаче 2
|
|
1)
Входные данные:X = 4124
Выходные данные:
первая и последняя цифры четны и равны
в результате преобразований получено число X = 2122
2)
Входные данные:X = 2658
Выходные данные:
первая и последняя цифры не равны
в результате преобразований получено число X = 2568
3)
Входные данные:X = 8562
Выходные данные:
первая и последняя цифры не равны
в результате преобразований получено число X = 2568
4)
Входные данные:X = 5125
Выходные данные:
первая и последняя цифры равны, но они не четны
в результате преобразований получено число X = 5125
Блок-схема к задаче 2
2.8 Листинг программы на языке С++ к задаче 2
#include <iostream.h>
using namespace std;
int main()
{
int x,y,x1,x2,x3,x4;
cout<<"\Vvod x";
cin>>x;
// чтобы не потерять исходное число, копируем его в Y
y=x;
x1=y / 1000; // первая цифра
y= y % 1000; // отбрасываем первую цифру
x2=y / 100; // вторая цифра
y= y % 100; // отбрасываем вторую цифру
x3=y / 10; // третья цифра
x4= y % 10; // четвёртая цифра
// проверяем правильно ли мы разложили
// введённое число
y= 1000*x1 + 100*x2 + 10*x3 + x4;
cout<<"\nBilo x="<<x<<"\tStalo y="<<y;
cout<<"\nCifri:"<<x1<<"\t"<<x2<<"\t"<<x3<<"\t"<<x4;
if (x1==x4)
{
if (x1 % 2==0) // x4 не проверяем, т.к. x1=x4
{
|
|
cout<<"\n Cifri ravni";
x1=x1 / 2;
x4=x4 / 2;
}
else
cout<<"\n Cifri ravni no necetni";
}
else
{
cout<<"\n Cifri ne ravni";
if (x1>x4)
{
y=x1;
x1=x4;
x4=y;
}
else
{
y=x2;
x2=x3;
x3=y;
}
}
x= 1000*x1 + 100*x2 + 10*x3 + x4;
cout<<"\n Posle preobrazovaniy x="<<x;
}
Контрольные вопросы по теме «Разветвляющиеся вычислительные процессы»
1. Определение разветвляющегося вычислительного процесса.
2. Блок-схема условного оператора и порядок его исполнения.
3. Оператор, реализующий разветвляющийся вычислительный процесс.
4. Запись условий: понятие условия, выражения отношения, логические операции, логические выражения.
5. Запись условия попадания значения в интервал и вне интервала.
Дата добавления: 2019-11-16; просмотров: 460; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!