Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемНаталия Яшина
1 Язык программирования Си Строковые литералы, ввод-вывод Ветвления Югов Иван Олегович МОУ Гимназия 10, г. Тверь
2 Строковые литералы Указываются в кавычках: "Test #2" ; "Press any key...". Пустая строка: "". В тексте литерала единичные кавычки недопустимы, а двойные игнорируются: "2º19'59" в. д." недопустимо; "Роман ""Тихий Дон""" Роман Тихий Дон. Кавычки нужно экранировать служебным символом «\»: "Роман \"Тихий Дон\"" Роман "Тихий Дон".
3 Строковые литералы Экранирование оформление служебных символов так, что они получают буквальное значение. Символ «\» экранируется самим собой: "C:\\bootlog.txt" C:\bootlog.txt. Символ «\» также экранирует конец строки: "Программирование \ на языке Си" обозначает строку Программирование на языке Си.
4 Строковые литералы Escape-последовательность (управляющая последовательность, УП) последовательность символов, имеющая особое значение. Используется для вставки служебных символов. Начинаются с «\»: \", \\, \'. Даёт возможность указывать символы по их восьмеричным (oct) и шестнадцатеричным (hex) кодам: \000, где 000 трёхзначный oct-код символа; \000, где 000 трёхзначный oct-код символа; \x0, где 0 hex-код символа (возможно несколько цифр). \x0, где 0 hex-код символа (возможно несколько цифр). "\065" 5 ; "\x35" 5 ; "\x74\145\x73\x74" test. В коде символов можно указывать меньше цифр, но нежелательно.
. При записи " \74 " получится символ с кодом 64: >. Hex-запись не ор" title="Строковые литералы Примеры: После символа \7 можно написать цифру 4: " \0074 ". После символа \7 можно написать цифру 4: " \0074 ". При записи " \74 " получится символ с кодом 64: >. При записи " \74 " получится символ с кодом 64: >. Hex-запись не ор" class="link_thumb"> 5 Строковые литералы Примеры: После символа \7 можно написать цифру 4: " \0074 ". После символа \7 можно написать цифру 4: " \0074 ". При записи " \74 " получится символ с кодом 64: >. При записи " \74 " получится символ с кодом 64: >. Hex-запись не органичивается каким-то количеством цифр: Hex-запись не органичивается каким-то количеством цифр: "\x445" предупреждение о переполнении строковой константы. Результат не определён. . При записи " \74 " получится символ с кодом 64: >. Hex-запись не ор"> . При записи " \74 " получится символ с кодом 64: >. Hex-запись не органичивается каким-то количеством цифр: Hex-запись не органичивается каким-то количеством цифр: "\x445" предупреждение о переполнении строковой константы. Результат не определён."> . При записи " \74 " получится символ с кодом 64: >. Hex-запись не ор" title="Строковые литералы Примеры: После символа \7 можно написать цифру 4: " \0074 ". После символа \7 можно написать цифру 4: " \0074 ". При записи " \74 " получится символ с кодом 64: >. При записи " \74 " получится символ с кодом 64: >. Hex-запись не ор">
6 Строковые литералы Как записать символ 5 сразу после символа \x44 ? "\x44""5"
7 Строковые литералы Стандартом также определены: УПСимволКод \a Сигнал (alarm) 7 \b Забой (backspace) 8 \f Новая страница (form feed) 13 \n Новая строка (line feed) 10 \r Возврат каретки (carriage return) 12 \t Горизонтальная табуляция 9 \v Вертикальная табуляция 11
8 Строковые литералы Примеры результата на экране: "Information\b\bcs" Informatics ; "A\tB\tC" A B C. Использование символа \n в литерале "Л. Н. Толстой\n\"Война и мир\"" даёт на экране переход на следующую строку: Л. Н. Толстой "Война и мир". Перед прочими символами «\» игнорируется: \h h, \N N.
9 Строковые литералы Каждый символ занимает в памяти 1 байт. Любая строковая константа заканчивается символом с кодом 0 («нуль- терминатором»). Все функции работы со строками это знают, поэтому не обрабатывают символы после первого же «нуль-терминатора» в строке. Явно указывать «нуль-терминатор» не нужно.
10 Строковые литералы Символьная константа в апострофах: 'A' ; '$' ; '\'' ; '\077' ; '\n'. Занимает 1 байт: не может быть пустым; не может быть пустым; «нуль-терминатором» не заканчивается. «нуль-терминатором» не заканчивается. Может храниться в переменной типа char : char P = 'A';
11 Строковые литералы Возможна поддержка «широких» (wide) символов и строк по 2 или 4 байта на символ. «Широкие» литералы с префиксом L : L'Ы' L"Lorem ipsum dolor sit amet..." «Широкий» символ может храниться в переменной int ( short, long ): short P = 'Ф'; 12 Ввод-вывод Используется заголовочный файл stdio.h. Для его использования пишем в начале кода: #include #include Основные операции: ввод: scanf, fscanf, wscanf и т. п.; ввод: scanf, fscanf, wscanf и т. п.; вывод: printf, fprintf, wprintf и т. п. вывод: printf, fprintf, wprintf и т. п.
13 Вывод (printf) Функция printf выводит на стандартный поток вывода строковое выражение. Возвращает количество выведенных символов. printf("Hello world!\n"); Полный формат вызова printf : printf(Форматная строка, параметры); Форматная строка особая строковая константа, задающая формат вывода остальных параметров.
14 Вывод (printf) Пример вывода с форматной строкой: printf("Время: %d часов %d минут", H, M); В форматной строке символ «%» является служебным. Экранируется сам собой: printf("Загрузка завершена на 100%"); Со знака «%» начинаются УП, задающие формат вывода для каждого из остальных параметров: %ФлагиШиринаТочностьДлинаТип
15 Вывод (printf) %c для символов K %d или %i для целых знаковых чисел 240 %u для целых беззнаковых чисел 75 %o для целых беззнаковых чисел (oct) 176 %x или %X для целых беззнаковых чисел (hex) 4d3, 4D3 %f для вещественных чисел (обычная форма записи) %e или %E для вещественных чисел (экспоненциальная форма записи) e+2, E+2 %g или %G для вещественных чисел (более краткая форма записи из двух) %s для строк Yes В форматных УП обязателен только Тип:
16 Вывод (printf) - выравнивать значение по левому краю в пределах предоставленного места (по умолчанию по правому) + выводить знак у положительных чисел пробел выводить пробел перед положительными числами # для %o, %x и %X выводить соответственно с 0, 0x и 0X впереди для ненулевых значений; для %o, %x и %X выводить соответственно с 0, 0x и 0X впереди для ненулевых значений; для %f, %e, %E, %g и %G выводить десятичную точку, даже если нет дробной части; для %f, %e, %E, %g и %G выводить десятичную точку, даже если нет дробной части; для %g и %G также выводить лидирующие нули для %g и %G также выводить лидирующие нули 0 дополнять числа нулями слева Флаги определяют параметры вывода: Пример: printf("Value %+i at %#X", Val, Cell); Флаги можно комбинировать: printf("%#+X", U);
17 Вывод (printf) Ширина число: какой минимум знаков отвести под значение: printf("%6i", Value); Либо символ «*» количество знаков указано в дополнительном параметре перед основным: printf("%*i", Length, Value); Если число короче, то остаток заполняется пробелами (или нулями, если есть флаг 0 ): printf("[%12i]", 125); [ 125] Если число длиннее, то оно выводится целиком: printf("[%3i]", ); [142857]
18 Вывод (printf) Точность точка и следующее за ним число: для целых ( %i, %d, %u, %o, %x, %X ) минимум знаков под значение, остаток заполняется нулями; точность 0 означает вывод пустой строки для нулевого значения; для целых ( %i, %d, %u, %o, %x, %X ) минимум знаков под значение, остаток заполняется нулями; точность 0 означает вывод пустой строки для нулевого значения; для %f, %e, %E число десятичных знаков; для %f, %e, %E число десятичных знаков; для %g, %G максимальное число значащих цифр; для %g, %G максимальное число значащих цифр; для %s только указанное количество первых символов. для %s только указанное количество первых символов. Точность по умолчанию.1. Символы «.*» означают задание точности отдельным параметром. Примеры: printf("[%3.2d] [%.2f]", 3, 5.376); [ 03] [5.38] printf("[%.0d] [%.*f]", 0, 1, 2.39); [] [2.4]
19 Вывод (printf) Длина уточняет длину типов: h для целых ( %i, %d, %u, %o, %x, %X ), тип «короткий» ( short ); h для целых ( %i, %d, %u, %o, %x, %X ), тип «короткий» ( short ); l для целых ( %i, %d, %u, %o, %x, %X ), тип «длинный» ( long ); l для целых ( %i, %d, %u, %o, %x, %X ), тип «длинный» ( long ); ll для целых ( %i, %d, %u, %o, %x, %X ), тип «очень длинный» ( long long ); ll для целых ( %i, %d, %u, %o, %x, %X ), тип «очень длинный» ( long long ); L для вещественных ( %f, %e, %E, %g, %G ), тип «длинный» ( long double ). L для вещественных ( %f, %e, %E, %g, %G ), тип «длинный» ( long double ).
20 Вывод (printf) Пример: char A = -1; unsigned char B = 1; short C = -2; unsigned short D = 2; long E = -3; unsigned long F = 3; long long G = -4; unsigned long long H = 4; double I = 5.0; long double J = 6.0; char K = 'a'; printf("%d %u %hd %hu %li %lu %lli %llu %f %Lf \ %c %s", A, B, C, D, E, F, G, H, I, J, K, "!!!"); Вывод на экран: a !!!
21 Вывод (printf) Пример: printf("%+07.*lF\n", 2, ); printf("%.4s\n", "Computer"); printf("%c%c%c\n", 65, 66, 67); printf("%f %f\n", 0.0 / 0.0, 5.0 / 0.0); Вывод на экран: CompABC -nan inf
22 Ввод (scanf) Полный формат вызова scanf : scanf(Форматная строка, параметры); Возвращает количество успешно считанных величин. Форматная строка как у printf. В УП указывается тип. Можно указать ширину (максимальное количество знаков для считывания) и длину значения. Остальные параметры соответствующее количество адресов (переменных), в которые будут считаны данные.
23 Ввод (scanf) Унарная операция & взятие адреса. Получает адрес, начиная с которого, в памяти хранится переменная: &A, &Result. scanf("%Lf %Lf %Lf", &x, &y, &z); Форматная строка может содержать другие символы кроме УП. Тогда необходимо водить и их: scanf("R%i", &N); (ожидается ввод, например, R12, R-46 …) Исключение пробелы, переводы строк, табуляции.
24 Ветвления Синтаксис ветвления: if(условие) команда1;elseкоманда2; Вычисляет значение условия. Если условие истинно (ненулевое), тогда выполняется команда 1, иначе команда 2.
25 Ветвления Раздел else может отсутствовать. Можно указать несколько команд в {} : if(условие) { командаA1; командаA2; командаA3;... }else { командаB1; командаB2; командаB3;...} Точка с запятой после команды обязательна, после операторных скобок нет.
26 Ветвления Пример: if(A == B || B == C || A == C) if(A == B && B == C) printf("Треугольник равносторонний\n"); else printf("Треугольник равнобедренный\n"); else printf("Треугольник общего вида\n");
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.