- •Форма оператора ввода (ввод данных с внешнего устройства в оп):
- •Форма оператора вывода (вывод данных из оп на внешнее устройство):
- •Операторы управления работой программы
- •Условный оператор
- •If (выражение) оператор 1 else оператор 2;
- •If (выражение) оператор
- •Вложенные условные операторы
- •Оператор switch
- •Форма переключателя:
- •Форма альтернативного выбора:
- •Операторы цикла.
- •Вложенные циклы
- •Операторы передачи управления
- •Оператор выхода из цикла или переключателя break.
- •Материал для самостоятельного изучения. Функции printf () и scanf ()
Материал для самостоятельного изучения. Функции printf () и scanf ()
осуществляют форматированный вывод и ввод в стандартные потоки (по умолчанию на консоль)
прототипы в файле STDIO.H
int printf ( char * управляющая строка , arg… );
int scanf ( char * управляющая строка , arg…) ;
первый параметр всегда символьная строка, содержащая некоторые символы и команды (спецификаторы) формата сообщающие какие данные надо вводить или как надо выводить аргументы.
Спецификаторы задаются с помощью знака % с буквами и цифрами
последующие параметры (их переменное число)- аргументы
для printf – это значения выражений, в частности числа, переменные, константы, строки.
для scanf – это список адресов переменных типы которых, указанных в строке формата для каждого аргумента последовательно (первый формат соответствует первому аргументу, второй – второму и т. д.)
printf
Функция printf() возвращает общее число выводимых значений при успешном выводе
int result;
result =printf (“ … \n”, …)
int
%d , %i – для вывода десятеричных значений;
%0 - в восьмеричном формате;
% x, % X –в шестнадцатеричном;
int v = 255;
printf (“ значение %d в восьмеричном формате %0\n”, v, v )
printf('' значение %d в шестн. формате %x и %X\n’’, v, v,v)
значение 255 в восьмеричном формате 377
значение 255 в шестн. формате ff и FF
unsigned int
%u unsigned int a = 42000
printf (“%u % d\n’’, a, a ) 42000
-23536
long float shot unsigned long double
long int % ld % f % hu % lf
символы % и 0 и x ,X
%% %#0 %#x %#X
char
% c printf ( “ буква %c\n’’ , ‘A’); буква А
printf ( “ буква %c\n’’ , 65); буква А
Вывод чисел с плавающей точкой в экспоненциальном виде: %e или %E
float a=3.14159 , b= 2.0031;
printf (‘’ %e %E” , a, b )
3.14159e +00 2.0031E+00
на усмотрение машины %g
printf ( “ %g\n’’, 0.1234) ; printf (“%g\n”,0.000001234)
1.234e-06
Строки
%s char t [255]=” Pascal”;
printf ( “ Название-%s\n”, t)
Название – Pascal
Вывод указателей
%p , %n
int v ; printf(“Адрес переменной=%p\n”, &v)
Адрес переменной= FFF4
Вывод числа со знаком(положительным и отрицательным)
%+d %+f int a=5, b=-5; float c= 1.5, d=-1.5;
printf(“%+d %+d %+f %+f ” , a, b , c , d );
+5 -5 +1.5 -1.5
Количество символов- мест для вывода
int v = 5;
printf( “%1d \n”,v) 5
printf( “%2d \n”,v) 5
printf( “%3d \n”,v) 5
Если дано меньше, чем надо для вывода целого, символьной строки, добавляется необходимые места
Вывод целых с ведущими нулями
printf( “ %01d\n”, v) 5
printf( “ %02d\n”, v) 05
Форматирование чисел с плавающей точкой
число указывает общее количество символов для вывода
число указывает количество символов справа от десятичной точки
float f =1.23456;
printf( “ %8.1f\n”,f) _ _ _ _ _ 1.2
printf( “ %8.3f\n”,f) _ _ _ 1.235
форматирование экспоненциального представления аналогично:
printf( “ %12.1 e\n”, f) _ _ _ _ _ 1.2e+00
printf( “ %12.5 e\n”, f) _ 1.23456e+00
Выравнивание влево и вправо:
Printf ( “ %5d , 5) _ _ _ _ 5
Printf ( “ %-5d , 5) 5 _ _ _ _
scanf()
Функция производит ввод данных с клавиатуры в переменные, адреса которых задаются аргументами (arg)
Возвращаемое значение функцией – количество успешно введенных и присвоенных значений
Управляющая строка содержит спецификации формата, пробелы и др. символы.
Спецификации:
%c - чтение символа
%d – чтение десятичного целого
%i – чтение десятичного целого
%e- чтение числа типа float
%h- чтение числа типа short int
%0- чтение восьмеричного числа
%s- чтение строки
%x- чтение шестнадцатеричного числа
%p- чтение указателя
-Спецификация формата не содержит пробелов.
Пробельные символы - пробелы ( _ ), символы табуляции ( ‘\t’) , новой строки ('\n') перевода каретки ('\r’) - разделители между двумя вводимыми символами. Символы очередного значения выделяются до первого пробельного символа.
Другие символы (ненулевые) указывают на чтение и отбрасывание этих символов, это любые символы, которые надо игнорировать.
scanf(“%dplus%d” , &i , &j) поток символов 5plus10
i=5 , j = 10
Переменные должны указываться адресом:
scanf(“%d %d “, &i , & j);
scanf(“%5s “, str)
Возможно задать множество поиска - список символов в квадратных скобках
char s[10],t[10];
scanf (“%[0123456789]%s’’,s ,t )
Поток ввода : 123прлаы456
S= “123” t= “прлаы456”
