В предыдущей статье Вывод данных на экран и ввод данных с клавиатурымы подробно рассмотрели эту тему. Пришло время практики – так как нам предстоит много трудиться, чтобы наработать определённые навыки, необходимые программисту и развивать потихоньку своё логическое мышление.
1. Создайте 4 переменные с разными типами данных и предложите пользователю ввести в них значения. После ввода, отобразите их на экране.
Показать код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
usingnamespacestd;
intmain()
{
setlocale(LC_ALL,"rus");
intdigit=0;
doubledigit2=0;
charsymbol=0;
booltrueOrFalse=0;
cout<<"Введите целое число: ";
cin>>digit;
cout<<"Введите вещественное число: ";
cin>>digit2;
cout<<"Введите символ: ";
cin>>symbol;
// в переменную типа bool с помощью cin можно ввести
// только числа 0 (интерпретируется как false) и 1 (true)
cout<<"Введите 0 или 1: ";
cin>>trueOrFalse;
cout<<endl<<endl;
cout<<"Целое число: "<<digit<<endl;
cout<<"Вещественное число: "<<digit2<<endl;
cout<<"Символ: "<<symbol<<endl;
cout<<"bool: "<<trueOrFalse<<endl;
return0;
}
Результат:
2. Создайте 5 переменных типа char, предложите пользователю ввести слово из пяти букв и покажите эти символы (слово) на экран. (Символы вводить латиницей, т.к. кирилица будет отображаться некорректно. Почему? Это мы рассмотрим в одном из наших следующих уроков)
В будущем, мы научимся с вами работать со строками и нам не придется хранить слова в разных переменных и выводить их на экран по буквам.
3. Вывести на экран текст в таком виде:
4. Пользователь должен ввести 2 числа. Вам надо показать на экран произведение этих чисел, сумму и разницу. Покажите так же среднее арифметическое этих введенных чисел.
Показать код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
usingnamespacestd;
intmain()
{
setlocale(LC_ALL,"rus");
floatnum1=0;
floatnum2=0;
cout<<"Введите первое число: ";
cin>>num1;
cout<<"Введите второе число: ";
cin>>num2;
cout<<num1<<" + "<<num2<<" = "<<num1+num2<<endl;
cout<<num1<<" - "<<num2<<" = "<<num1-num2<<endl;
cout<<num1<<" * "<<num2<<" = "<<num1*num2<<endl;
cout<<"Средне арифметическое: ";
cout<<num1<<" + "<<num2<<" / "<<2<<" = ";
cout<<(num1+num2)/2<<endl;
cout<<endl;
return0;
}
Вопросы задавайте в комментариях.
4.5
55
74 thoughts on “Задачи: ввод и вывод данных”
ахах___)) интересная цитата!) но всё же, почему: “кирилица будет отображаться некорректно.”
все по тому, что функция setlocale(LC_ALL, “rus”); позволяет корректно отображать только вывод кириллицы на экран. За ввод она не отвечает. Мы рассмотрим, как настроить консоль на корректную работу в одной из статей. Наберитесь терпения ))) Спасибо, что не даёте мне расслабиться. Записываю в мой блокнот жирным шрифтом все пожелания читателей ))
int main() { setlocale(0, ""); cout < < "А почему в ресторане ей никогда не нравится то,\n"
<< "что заказала она, и всегда нравится то, что заказал я?\n"
<< "И она начинает есть у меня из тарелки. Я ей говорю: Зачем?\n"
<< "Она говорит: Я только попробую...\n"
<< "И съедает половину!\n"
<< "// к.ф \"О чем говорят мужчины\" //" << endl; getch();
return 0;
}
int main() { setlocale(LC_ALL, "rus"); std::cout << "\t \t А почему в ресторане ей никогда не нравится то, \n"; std::cout << "\t \t что заказала она, и всегда нравится то, что заказал я? \n"; std::cout << "\t \t И она начинает есть у меня из тарелки. Я ей говорю: \n"; std::cout << "\t \t \"Закажи себе то же самое \". Она говорит: \"Зачем? \n"; std::cout << "\t \t Я только попробовать \". И съедает половину. \n"; std::cout << "\t \t \t //к.ф. \"О чем говорят мужчины \" // \n"; return 0; }
Усовершенствованный код решения первой задачи. Посмотрите кому интересно.
#include using namespace std;
int main() { setlocale(LC_ALL, "rus"); long long value0(0LL); double value1(0); int value2(0); char value3(0); const int max(45); char indicator(0); char trial[9][max] { "Продолжить (y/n)? ", //[0] "Введите целое число: ", //[1] "Введите нецелое число: ", //[2] "Введите целое число не больше 2-х млрд.: ",//[3] "Введите символ: ", //[4] "Значение типа long long = ", //[5] "Значение типа double = ", //[6] "Значение типа int = ", //[7] "Значение типа char = " //[8]
ахах___)) интересная цитата!)
но всё же, почему: “кирилица будет отображаться некорректно.”
все по тому, что функция setlocale(LC_ALL, “rus”); позволяет корректно отображать только вывод кириллицы на экран. За ввод она не отвечает. Мы рассмотрим, как настроить консоль на корректную работу в одной из статей. Наберитесь терпения )))
Спасибо, что не даёте мне расслабиться. Записываю в мой блокнот жирным шрифтом все пожелания читателей ))
а где третья задача?? Д/З?
Вот сделайте и добавьте код в комментарии! Пусть все увидят, что вам эта задача под силу )))
Можно немного усовершенствовать калькулятор дописав этот код
cout << num1 << " / " << num2 << " = " << num1 / num2 << endl;
#include
#include
using namespace std;
int main()
{
setlocale(0, "");
cout < < "А почему в ресторане ей никогда не нравится то,\n" << "что заказала она, и всегда нравится то, что заказал я?\n" << "И она начинает есть у меня из тарелки. Я ей говорю: Зачем?\n" << "Она говорит: Я только попробую...\n" << "И съедает половину!\n" << "// к.ф \"О чем говорят мужчины\" //" << endl; getch(); return 0; }
1) Почему не везде применяешь endl? Или наоборот последний endl не заменил на \n?
2) getch() это из conio? Рекомендую заменить на cin.get() во имя феншуя.
3 задача у меня получилась так:
#include
int main()
{
setlocale(LC_ALL, "rus");
std::cout << "\t \t А почему в ресторане ей никогда не нравится то, \n";
std::cout << "\t \t что заказала она, и всегда нравится то, что заказал я? \n";
std::cout << "\t \t И она начинает есть у меня из тарелки. Я ей говорю: \n";
std::cout << "\t \t \"Закажи себе то же самое \". Она говорит: \"Зачем? \n";
std::cout << "\t \t Я только попробовать \". И съедает половину. \n";
std::cout << "\t \t \t //к.ф. \"О чем говорят мужчины \" // \n";
return 0;
}
Только все эти 6 операторов std::cout вы может записать в одном операторе std::cout .
Усовершенствованный код решения первой задачи.
Посмотрите кому интересно.
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
long long value0(0LL);
double value1(0);
int value2(0);
char value3(0);
const int max(45);
char indicator(0);
char trial[9][max]
{
"Продолжить (y/n)? ", //[0]
"Введите целое число: ", //[1]
"Введите нецелое число: ", //[2]
"Введите целое число не больше 2-х млрд.: ",//[3]
"Введите символ: ", //[4]
"Значение типа long long = ", //[5]
"Значение типа double = ", //[6]
"Значение типа int = ", //[7]
"Значение типа char = " //[8]
};
do
{
cout << value0;
if (value0 > 10000000000)
{
cout << "Вы ввели значение больше 10-ти млрд.\n";
cout << "По умолчанию изменено на 0.\n";
value0 = 0;
}
cout << value1;
cout << value2;
if (value2 > 2000000000)
{
cout << "Это число больше 2-х млрд.\n";
cout << "По умолчанию изменено на 0.\n";
value2 = 0;
}
cout << value3;
cout << trial[5] << value0 << "\n";
cout << trial[6] << value1 << "\n";
cout << trial[7] << value2 << "\n";
cout << trial[8] << value3 << "\n";
cout <> indicator;
} while ((indicator == 'y') || (indicator == 'Y'));
Console::ReadLine();
return 0;
}
Мой вариант решения задач
#include
#include
#define line cout << "---------------------------------------" << endl;
#define taskcls system("cls");
using namespace std;
int main()
{
setlocale(0, "russian");
/* 1 задача */
int integer;
double doubleVar;
bool boolVar;
char charVar;
cout << integer;
cout << doubleVar;
cout << boolVar;
cout << charVar;
cout << "Integer: " << integer
<< "\nDouble: " << doubleVar
<< "\nFloat: " << boolVar
<< "\nChar: " << charVar;
cout << endl;
taskcls
/* 2 задача */
char var1, var2, var3, var4, var5;
cout << var1 >> var2 >> var3 >> var4 >> var5;
cout << var1 << var2 << var3 << var4 << var5;
cout << endl;
system("pause");
taskcls
/* 4 задача */
int n1, n2, result;
cout << n1 >> n2;
result = n1 * n2;
cout << "Произведение чисел n1 и n2: \t" << result << endl;
line
result = n1 + n2;
cout << "Сумма чисел n1 и n2: \t\t" << result << endl;
line
result = n1 - n2;
cout << "Разность чисел n1 и n2: \t" << result << endl;
line
_getch();
return 0;
}
#include
#include
using namespace std;
int main()
{
setlocale (LC_ALL,"Russian");
double a,b,c;
cout << "Введите a:" <> a;
cout << "Введите b:" <> b;
cout << "Введите c:" <> c;
double D, x1, x2;
D = b * b - 4*a*c;
cout << "Дискриминант =" << D << endl;
x1 = (-b + sqrt(D))/(2*a);
x2 = (-b - sqrt(D))/(2*a);
if (D < 0) {
cout << "Дискриминант меньше нуля, корней нет." << endl;
} else if (D == 0) {
cout << "Дискриминант равен нулю, 1 корень." << x1 << endl;
} else {
cout << "Дискриминант больше нуля, два корня." << endl;
cout << "x1=" << x1 << endl;
cout << "x2=" << x2 << endl;
}
return 0;
}
Можно ли по возможности усовершенствовать эту программу?