- •(Последовательно выполняемые операторы)
- •Имя функции ( список фактических параметров);
- •Void main ()
- •Операторы управления работой программы
- •If (выражение) оператор 1 else оператор 2
- •If (выражение) оператор
- •Int lt (char*stroka)
- •1)… Char letter;
- •Goto идентификатор метки;
- •3) Оператор выхода из цикла или переключателя:
- •4) Оператор перехода к следующей итерации :
- •Void main ()
Goto идентификатор метки;
запрет : нельзя передавать управление через описание, содержащее инициализацию объекта
можно перескакивать через вложенные блоки (с описанием с инициализацией)
Ex.1
goto A; - ошибка
float x = 1.2;
goto A; - допустимо
{int n=2;
x*=n;}
A: cout <<x;
Рекомендации:
не входить внутрь блока извне;
не входить внутрь условного оператора;
не входить внутрь переключателя;
не передавать управление внутрь цикла;
Применение:
выход из вложенных циклов или переключателей;
к одному участку программы необходимо перейти из разных мест функции;
2) Оператор возврата из функции. Форма:
return выражение;
return ;
Значение выражения (только скалярного) возвращает функция.
Если функция типа void ,то в return нет выражения, или return отсутствует.
3) Оператор выхода из цикла или переключателя:
break;
Осуществляет передачу управления к следующему за циклом или переключателем оператору.
Если циклы (или переключатели) вложенные позволяет выйти из внутреннего цикла во внешний цикл.
4) Оператор перехода к следующей итерации :
continue:
завершает текущую итерацию цикла ( используется только в циклах ) и начинается проверка условия продолжения цикла (следующей итерации)
равносилен передаче управления на пустой оператор в самом конце тела цикла
#define n 100
Void main ()
{ int k, i ;
float x [n] = { …} , s ;
for ( s=0.0 , k = 0, i = 0 ; i < n ; i++ )
{ if ( x[i] <=0.0) continue ;
k++ ; //количество только положительных элементов
s + = x[i]; // сумма положительных элементов
}
Функции 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”