/* proba _1_1. cpp
вывод в стиле С */
#include <stdio.h> // заголовочный файл для функции printf()
#include <conio.h> // заголовочный файл для функции _getch()
// определение функции main(): заголовок функции и в { } ее тело
int main()
{
printf("Ivanov Ivan \n ");
printf("Ok \ n ");
_getch(); // функция ввода с клавиатуры одного символа:
// приостанавливает выполнение программы до нажатия клавиши,
// позволяет задержать на экране результат вывода
return 0;
}
Результат вывода:
Ivanov Ivan
Ok
-----------------------------------------------------------------------------------------
//пример 2.
/ * proba_ 2.cpp
вывод в стиле С и с использованием функции system() */
#include <stdio.h>
#include <cstdlib> // директива подключения заголовочного файла
// с прототипом функции system()
int main()
{
printf("Ivanov Ivan \n ");
printf("Ok \ n ");
system("pause"); // вызов функции system() приостанавливает
// выполнение программы до нажатия любой клавиши
return 0;
}
Результат вывода:
Ivanov Ivan
Ok
-----------------------------------------------------------------------------------------
//пример 3.
/ * proba_ 3.cpp
инициализация и вывод целочисленных переменных в стиле С в разных системах счисления */
#include <stdio.h>
#include <conio.h>
int main(){
// определение и инициализация переменных
// в разных системах счислений (16, 8, 10)
int i = 0 x abcd, j = 04567, k (1);
int ix = 1,
iy = 1,
iz = 1;
short shl = 4,
shm = 4;
unsigned long ulx (12345678);
// вывод значений в разных системах счислений
printf("%x %o %d \ n ", i, j, k); // преобразование i,j,k при выводе (16,8,10)
printf("%d %d %d \n ", ix, iy, iz);
printf("%d %d \n ", shl, shm);
printf("%ld \n ", ulx);
_getch();
return 0;
}
Результат вывода:
abcd 4567 1
1 1 1
4 4
12345678
-----------------------------------------------------------------------------------------
//пример 4.
/ * proba_ 4.cpp
инициализация и вывод в стиле С вещественных переменных */
#include <stdio.h>
#include <conio.h>
int main()
{ /*определение и инициализация переменных*/
float x = 4.7; /* или float x(4.7); обратить внимание на warning */
/* при компиляции программы, объяснить его и сделать
необходимые исправления в операторе (4.7 f)*/
double y = 3.141592,
z = 0.6E-02;
Float fx(3.0f);
Double dy(3.141592);
printf("%f %lf %lf \n ", x, y, z);
printf("%f %lf \n ", fx, dy);
_getch();
return 0;
}
Результат вывода:
4.700000 3.141592 0.006000
3.000000 3.141592
-----------------------------------------------------------------------------------------
//пример 5.
/ * proba_ 5.cpp
инициализация и вывод в стиле С логических переменных */
#include <stdio.h>
#include <conio.h>
int main() {
// определение и инициализация логических переменных
Bool ba (true);
Bool bc (1);
bool bp = false;
bool bb = bool (-25);
printf("%d %d \n ", ba, bc);
printf("%d %d \n ", bp, bb);
_getch();
return 0;
}
Результат вывода:
1 1
0 1
-----------------------------------------------------------------------------------------
//пример 6.
/ * proba_ 6.cpp
использование кириллицы при выводе */
#include <stdio.h>
#include <conio.h>
#define PI 3,14159265359
int main()
{
setlocale(LC_ALL, "RUS"); //для использования кириллицы
int number = 7;
float pies = 12.75;
int cost = 7800;
printf("%d человек съели %f пирожков. \n ", number, pies);
printf("Значение pi равно %f. \n ", PI);
printf("Ваши услуги обходятся: (%c%d). \n ", '$', 2 * cost);
_getch();
return 0;
}
-----------------------------------------------------------------------------------------
//пример 7.
/ * proba_ 7.cpp
форматирование при выводе в С */
#include <stdio.h>
#include <conio.h>
int main()
{
int int1 = 45,
int2 = 15;
float f = 3.621f;
printf("int1 =%d | int1(3) =%3d | int1(-4) =%-4d | \n ", int1,int1,int1);
printf("int2 = %X | int2(3) = %3x | int2(4) = %4o | \n ", int2,int2,int2);
printf("f = %f | f = %4.2f | f = %6.1f | \n ", f, f, f);
f = 3123456.621f;
printf("f = %f | f = %4.2f | f = %6.1f | \n ", f, f, f);
_getch();
return 0;
}
Результат вывода:
int1 =45 | int1(3) = 45 | int1(-4) =45 |
int2 = F | int2(3) = f | int2(4) = 17 |
f= 3.621000 | f = 3.62 | f = 3.6 |
f= 3123456. 5 00000 [10] | f = 3123456. 5 0 | f = 3123456. 5 |
-----------------------------------------------------------------------------------------
//пример 8.
/ * proba_ 8.cpp
форматирование при выводе в С */
#include <stdio.h>
#include <conio.h>
int main()
{
float f = 3.621f;
double db1 = 2.23;
char ch = 'z';
char *str = "aaaabbbbbcc";
printf("f=%g | f=%5g | f =%e | f =%+15E | \n ", f, f, f, f);
printf("db1=%5.2lf | db1 =%e | db1 =%4.1G | \n ", db1, db1, db1);
db1 = 212345.23123;
printf("db1=%5.2lf | db1 =%e | db1 =%4.1G | \n ", db1, db1, db1);
printf("ch=%c | ch =%03c | ch =%-03c | \n ", ch, ch, ch);
printf("str= %014s | \n str = %-014s | \n str = %s | \n ", str, str, str);
_getch();
return 0;
}
Результат вывода:
f=3.621 | f=3.621 | f =3.621000e+000 | f = +3.621000E+000 |
db1= 2.23 | db1 =2.230000e+000 | db1 = 2 |
db1=212345.23 | db1 =2.123452e+005 | db1 =2E+005 |
ch=z | ch =00z | ch =z |
str= 000aaaabbbbbcc |
str = aaaabbbbbcc |
str = aaaabbbbbcc |
-----------------------------------------------------------------------------------------
//пример 9.
В спецификаторе формата функции printf() вместо ширины и точности можно указывать символ * (чтобы задать ширину и точность как значения целых переменных, которые можно вычислить, например, во время выполнения программы). Рассмотрим пример:
//ширина и точность вывода заданы как переменныеfloat number = -12.3;int w = 10, // ширина вывода p = 4; // точность вывода printf("%0 *. * f\n", w, p, number); // новая ширина и точностьw = 15;p = 5; printf("%0 *. * f\n", w, p, number);
Вывод:
-0012.3000
-00000012.30000
!!! Переменные для ширины и точности должны задаваться в списке аргументов первыми после форматной строки, иначе программа зациклится.
-----------------------------------------------------------------------------------------
//пример 10.
Вводим с клавиатуры значение переменной х и вычисляем значение переменной y по формуле:
/ * proba_ 10.cpp
ввод/вывод в стиле С */
#include <stdio.h>
#include <conio.h>
int main()
{
Double x, y;
printf("x -?: \n ");
scanf_s("%lf", &x);
if (x < -2) y = 0;
else if (x >= -2 && x < 1) y = x;
else y = -x + 2;
printf("x = %lf, y = %lf \n ", x, y);
_getch();
return 0;
}
!!! Разобраться с написанием условия и запомнить: в случае множественного выбора используем форму if()..... else if ().....
Результаты работы:
x?:
11.22
x = 11.220000, y = -9.220000
-----------------------------------------------------------------------------------------
//пример 11.
/ * proba_ 11.cpp
ввод/вывод в стиле С */
#include <stdio.h>
#include <conio.h>
int main()
{
Unsigned short x;
Bool b;
printf("x=? ");
scanf("%hu", &x);
b = bool(x);
printf("b = %d \n ", b);
// если х == 0, то bool(x) даст значение false и будет выведен 0,
// если х!= 0, то bool(x) даст значение true и будет выведена 1,
_getch();
return 0;
}
Результаты работы:
x=? 2
b = 1
-----------------------------------------------------------------------------------------
Вывод в стиле С++ [11]
//пример 12.
/* proba _12. cpp
вывод в стиле С++ без использования стандартного пространства имен std */
# include < iostream > // заголовочный файл для потоков ввода/вывода С++
# include < conio. h > // заголовочный файл для функции _ getch ()
Int main()
{
std::cout << "Ivanov Ivan\n";
std::cout << "Ok" << std::endl;
_getch();
Return 0;
}
Результат вывода:
Ivanov Ivan
Ok
-----------------------------------------------------------------------------------------
//пример 13.
/ * proba_1 3.cpp
вывод в стиле С++ с использованием стандартного пространства имен std */
#include <iostream>
#include <conio.h>
using namespace std; //!!!!
Int main()
{
cout << "Ivanov Ivan\n";
cout << "Ok" << endl;
_getch();
return 0;
}
Результат вывода:
Ivanov Ivan
Ok
-----------------------------------------------------------------------------------------
//пример 14.
/ * proba_1 4.cpp
вывод в стиле С++ с использованием стандартного пространства имен std */
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
cout << "Ivanov Ivan \n ";
cout << "Ok \n ";
_getch();
return 0;
}
Результат вывода:
Ivanov Ivan
Ok
-----------------------------------------------------------------------------------------
//пример 15.
Выполнение в одном операторе нескольких операций << называется сцеплением или каскадированием операции передачи в поток.
/ * proba_1 5.cpp
инициализация и вывод в стиле С++ символов */
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
char ch1 (':'),
symbol ='d';
char c1 = 58; //код символа ‘:’
/* но!!! указывая явно числовой код символа мы уменьшаем или даже
вообще ликвидируем такое свойство программы, как «переносимость»*/
//преобразование переменных при выводе???
cout << c1 << " " << ch1 << endl; //выведет::
cout << symbol << endl; //выведет d
char first = '\n'; //esc-последовательности помогают
char ch2 = '\''; //задавать управляющие символы
cout << ch2 << endl; // выведет '
char ch3 = 0x3f; //код символа? в 16-ичной с/с
char c3('?');
cout << ch3 << " " << c3<< endl; //выведет??
//строка с управляющими символами
cout << "\x 3f \? "; //выведет??
cout << "\x 3f \n \? \n "; //выведет? и? на новой строке
_getch();
return 0;
}
-----------------------------------------------------------------------------------------
//пример 16.
/ * proba_1 6.cpp
форматирование вывода в стиле С++ */
#include <iostream>
#include <iomanip> //для setw
#include <conio.h>
using namespace std;
int main()
{
cout << 1990 << setw(8) << 135 << endl
<< 1991 << setw(8) << 7290 << endl
<< 1992 << setw(8) << 11300 << endl
<< 1993 << setw(8) << 16200 << endl;
_getch();
return 0;
}
Результат вывода:
1990 135
1991 7290
1992 11300
1993 16200
-----------------------------------------------------------------------------------------
//пример 17.
Для обеспечения вывода в разных системах счисления (десятичной, шестнадцатеричной или восьмеричной) можно использовать манипуляторы dec, hex, oct. Выбор будет оставаться в силе до завершения программы или до использования другого манипулятора.
/ * proba_1 7.cpp
форматирование вывода в стиле С++ */
#include <iostream>
#include <iomanip> //для использования манипуляторов форматирования
#include <conio.h>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS"); //для использования кириллицы
cout << "Восьмеричный: " << oct << 10 << ' ' << 20 << endl;
cout << "Шестнадцатеричный: " << hex << 10 << ' ' << 20 << endl;
cout << "Десятичный: " << dec << 10 << ' ' << 20 << endl;
_getch();
return 0;
}
Результат вывода:
Восьмеричный: 12 24
Шестнадцатеричный: а 14
Десятичный: 10 20
-----------------------------------------------------------------------------------------
Для обеспечения вывода основания системы счисления (0 – для восьмеричной, 0х – для шестнадцатеричной) можно использовать флаг showbase, для использования символов верхнего регистра – флаг uppercase, для задания ширины поля вывода – метод width(w) класса ios.
//пример 18.
/ * proba_1 8.cpp
форматирование вывода в стиле С++ */
#include <iostream>
#include <iomanip> //для использования манипуляторов и флагов форматирования
#include <conio.h>
using namespace std;
int main()
{
long a = 1000,
b = 077;
double d = 0.12,
c = 1.3e-4;
cout.width (7); //установить ширину вывода результата = 7 позиций
//в 16-ичной с/с, показать ее основание большими буквами
cout << hex << showbase << uppercase << a;
cout.width(7); //установить ширину вывода результата = 7 позиций
cout << b << endl; //продолжить вывод в той же строке
cout.width(12); //установить ширину вывода результата = 12 позиций
cout.setf (ios:: right); //установить выравнивание вправо
cout << d << endl;
cout.width(12); //установить ширину вывода результата = 12 позиций
cout.setf (ios:: right); //установить выравнивание вправо
cout << c << endl;
cout << d << endl;
cout << c << endl;
_getch();
return 0;
}
Результат вывода:
0X3E8 0X3F
0.12
0.00013
0.12
0.00013
-----------------------------------------------------------------------------------------
//пример 19.
/ * proba_1 9.cpp
форматирование вывода вещественных чисел в стиле С++ */
#include <iostream>
#include <iomanip> //для использования манипуляторов и флагов форматирования
#include <conio.h>
using namespace std;
int main()
{
Double x,
y;
cout << "enter a real number x:\n";
if (cin >> x) { // ввод значения с клавиатуры
y = x * x;
cout << "\nfor x=";
cout.width(9); //ширина поля вывода 9 позиций для х
cout << setiosflags(ios::fixed)<< setprecision(6) << x;
//форма вывода «с фикс.точкой» и точность 6 позиций для х
cout << setw(8); //ширина поля вывода 8 для " y="
cout << " y = ";
cout << setprecision(8); //количество знаков 8 после запятой для y
cout.width(15); //ширина поля вывода 15 для y
cout << y << endl;
}
_getch();
return 0;
}
Результат вывода:
enter a real number x:
1.2345
for x=1.234500y=1.52399025
-----------------------------------------------------------------------------------------
Ввод в стиле С++
//пример 20.
/ * proba_ 20.cpp
ввод в стиле С++ */
#include <iostream>
#include <conio.h>
#include <iomanip> //для использования манипуляторов и флагов форматирования
using namespace std;
int main()
{
Double x, y;
cout << "vvedite x " << endl;
if (cin >> x) { //преобразование х при вводе???
if (x < -2) {y = 0;}
else if (x >= -2 && x < 1) {y = x;}
else {y = -x + 2;}
cout << setiosflags(ios::fixed) << setprecision(6);
cout << "x= " << x;
cout << " y= " << y << endl;
}
_getch();
return 0;
}
Результаты работы:
vvedite x
11.22
x= 11.220000, y= -9.220000
-----------------------------------------------------------------------------------------
//пример 21.
/ * proba_ 21.cpp
определение и ввод/вывод строк в стиле С++ */
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
char str1[10],
str2[20],
str3[30];
cout << " Input string:\n"; //приглашение к вводу
//преобразование переменных при вводе???
cin >> str1 >> str2 >> str3; //вводим строку ”odin dwa try”
cout << "str1=" << str1 << " "
<< "str2=" << str2<< " "
<< "str3=" << str3 << endl;
_getch();
return 0;
}
Результат работы:
Input string:
odin dwa try
str1= odin str2=dwa str3=try
-----------------------------------------------------------------------------------------
//пример 22.
/ * proba_ 22.cpp
ввод в цикле символов до некоторого ограничителя (в данном случае х) */
// с помощью цикла do while
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
Char ch;
cout << "Input char (end - x)\n";
do {
cout << ":"; //приглашение к вводу
cin >> ch; //ввод символа завершаем нажатием <enter>
cout << ch << endl;
} while (ch!= 'x');
cout << " <x> - end " << endl;
_getch();
return 0;
}
Результат работы:
Input char (end - x)
:q
:w
:e
:r
:t
:a
:s
:x
<x> - end
-----------------------------------------------------------------------------------------
// с помощью цикла while
//пример 23.
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
char ch;
cout << "Input char (end - x)\n";
while (cout << ":", cin >> ch, ch!= 'x')
{
cout << ch << endl;
}
cout << " <x> - end " << endl;
_getch();
return 0;
}