Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ayaip_1kurs_1semestr_operatory_cpp.doc
Скачиваний:
3
Добавлен:
21.04.2019
Размер:
91.14 Кб
Скачать

Goto идентификатор метки;

запрет : нельзя передавать управление через описание, содержащее инициализацию объекта

можно перескакивать через вложенные блоки (с описанием с инициализацией)

Ex.1

goto A; - ошибка

float x = 1.2;

goto A; - допустимо

{int n=2;

x*=n;}

A: cout <<x;

Рекомендации:

  1. не входить внутрь блока извне;

  2. не входить внутрь условного оператора;

  3. не входить внутрь переключателя;

  4. не передавать управление внутрь цикла;

Применение:

  1. выход из вложенных циклов или переключателей;

  2. к одному участку программы необходимо перейти из разных мест функции;

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…) ;

  1. первый параметр всегда символьная строка, содержащая некоторые символы и команды (спецификаторы) формата сообщающие какие данные надо вводить или как надо выводить аргументы.

Спецификаторы задаются с помощью знака % с буквами и цифрами

  1. последующие параметры (их переменное число)- аргументы

для 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. 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

Форматирование чисел с плавающей точкой

  1. число указывает общее количество символов для вывода

  2. число указывает количество символов справа от десятичной точки

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”

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]