Язык программирования Си Строковые литералы, ввод-вывод Ветвления Югов Иван Олегович МОУ Гимназия 10, г. Тверь.

Презентация:



Advertisements
Похожие презентации
Лекция 2 Функции библиотек языка C. stdio.h Заголовочный файл стандартной библиотеки языка C. Содержит определения констант, объявления функций и типов.
Advertisements

Операции Условная операция ? : Если истинно, то результатом будет, иначе. Например, int x = a < b ? a : b вычисляет минимум из a и b.
Лекция 2 С => C++ => C# Большие и маленькие буквы различаются (main, Main, MAIN, mAin – разные имена) После каждого оператора ставится точка с запятой.
Константы Константы подразделяются, в зависимости от их типа, на 5 групп: целочисленные; перечисления; вещественные (с плавающей точкой); символьные; строковые.
Основы программирования. Типы данных Учебное пособие по курсу «Основы программирования» Преподаватель Алексеева Н.Н. Санкт-Петербургский колледж информационных.
Существует три разновидности комментариев: комментарии в одной строке, комментарии в нескольких строках, комментарии для документирования. Комментарии,
Практическое занятие Ввод-вывод информации Преподаватель: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ»
Язык программирования Си Приведение типов, операции Потоковый ввод-вывод Югов Иван Олегович МОУ Гимназия 10, г. Тверь.
Лекция 11 Файлы. Точного определения файла не существует. Файлом может быть: Объект файловой системы (файлы, папки и т.д.) Устройство ввода/вывода (клавиатура,
Введение в C++ Урок 1-2.
Элементы языка СИ Средства для написания простейших программ.
Лекция 3 ПЕРВЫЕ ПРОГРАММЫ, ВВОД/ВЫВОД В ЯЗЫКЕ С++
Лабораторная работа 7. Работа с динамической памятью, строками и файлами.
Практическое занятие Ввод-вывод информации Преподаватель: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ»
Составить программу вычисления периметра равнобедренного треугольника. Задача.
Лекция 2Лекция 2Структура программы Директивы препроцессора main () { Описания переменных Операторы }
Лекция 4 Программирование на Паскале. Элементы языка Турбо Паскаль 7.0. Типы данных. Управляющие конструкции.
Чтобы писать программы в среде программирования необходимо изучить его знаковую систему.
Тема урока Переменная. Тип данных. Ввод и вывод данных.
СТРОКИ В ПАСКАЛЕ. Строкой в Паскале называется последовательность из определенного количества символов. Количество символов последовательности называется.
Транксрипт:

Язык программирования Си Строковые литералы, ввод-вывод Ветвления Югов Иван Олегович МОУ Гимназия 10, г. Тверь

Строковые литералы Указываются в кавычках: "Test #2" ; "Press any key...". Пустая строка: "". В тексте литерала единичные кавычки недопустимы, а двойные игнорируются: "2º19'59" в. д." недопустимо; "Роман ""Тихий Дон""" Роман Тихий Дон. Кавычки нужно экранировать служебным символом «\»: "Роман \"Тихий Дон\"" Роман "Тихий Дон".

Строковые литералы Экранирование оформление служебных символов так, что они получают буквальное значение. Символ «\» экранируется самим собой: "C:\\bootlog.txt" C:\bootlog.txt. Символ «\» также экранирует конец строки: "Программирование \ на языке Си" обозначает строку Программирование на языке Си.

Строковые литералы Escape-последовательность (управляющая последовательность, УП) последовательность символов, имеющая особое значение. Используется для вставки служебных символов. Начинаются с «\»: \", \\, \'. Даёт возможность указывать символы по их восьмеричным (oct) и шестнадцатеричным (hex) кодам: \000, где 000 трёхзначный oct-код символа; \000, где 000 трёхзначный oct-код символа; \x0, где 0 hex-код символа (возможно несколько цифр). \x0, где 0 hex-код символа (возможно несколько цифр). "\065" 5 ; "\x35" 5 ; "\x74\145\x73\x74" test. В коде символов можно указывать меньше цифр, но нежелательно.

Строковые литералы Примеры: После символа \7 можно написать цифру 4: " \0074 ". После символа \7 можно написать цифру 4: " \0074 ". При записи " \74 " получится символ с кодом 64: >. При записи " \74 " получится символ с кодом 64: >. Hex-запись не органичивается каким-то количеством цифр: Hex-запись не органичивается каким-то количеством цифр: "\x445" предупреждение о переполнении строковой константы. Результат не определён.

Строковые литералы Как записать символ 5 сразу после символа \x44 ? "\x44""5"

Строковые литералы Стандартом также определены: УПСимволКод \a Сигнал (alarm) 7 \b Забой (backspace) 8 \f Новая страница (form feed) 13 \n Новая строка (line feed) 10 \r Возврат каретки (carriage return) 12 \t Горизонтальная табуляция 9 \v Вертикальная табуляция 11

Строковые литералы Примеры результата на экране: "Information\b\bcs" Informatics ; "A\tB\tC" A B C. Использование символа \n в литерале "Л. Н. Толстой\n\"Война и мир\"" даёт на экране переход на следующую строку: Л. Н. Толстой "Война и мир". Перед прочими символами «\» игнорируется: \h h, \N N.

Строковые литералы Каждый символ занимает в памяти 1 байт. Любая строковая константа заканчивается символом с кодом 0 («нуль- терминатором»). Все функции работы со строками это знают, поэтому не обрабатывают символы после первого же «нуль-терминатора» в строке. Явно указывать «нуль-терминатор» не нужно.

Строковые литералы Символьная константа в апострофах: 'A' ; '$' ; '\'' ; '\077' ; '\n'. Занимает 1 байт: не может быть пустым; не может быть пустым; «нуль-терминатором» не заканчивается. «нуль-терминатором» не заканчивается. Может храниться в переменной типа char : char P = 'A';

Строковые литералы Возможна поддержка «широких» (wide) символов и строк по 2 или 4 байта на символ. «Широкие» литералы с префиксом L : L'Ы' L"Lorem ipsum dolor sit amet..." «Широкий» символ может храниться в переменной int ( short, long ): short P = 'Ф';

Ввод-вывод Используется заголовочный файл stdio.h. Для его использования пишем в начале кода: #include #include Основные операции: ввод: scanf, fscanf, wscanf и т. п.; ввод: scanf, fscanf, wscanf и т. п.; вывод: printf, fprintf, wprintf и т. п. вывод: printf, fprintf, wprintf и т. п.

Вывод (printf) Функция printf выводит на стандартный поток вывода строковое выражение. Возвращает количество выведенных символов. printf("Hello world!\n"); Полный формат вызова printf : printf(Форматная строка, параметры); Форматная строка особая строковая константа, задающая формат вывода остальных параметров.

Вывод (printf) Пример вывода с форматной строкой: printf("Время: %d часов %d минут", H, M); В форматной строке символ «%» является служебным. Экранируется сам собой: printf("Загрузка завершена на 100%"); Со знака «%» начинаются УП, задающие формат вывода для каждого из остальных параметров: %ФлагиШиринаТочностьДлинаТип

Вывод (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 В форматных УП обязателен только Тип:

Вывод (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);

Вывод (printf) Ширина число: какой минимум знаков отвести под значение: printf("%6i", Value); Либо символ «*» количество знаков указано в дополнительном параметре перед основным: printf("%*i", Length, Value); Если число короче, то остаток заполняется пробелами (или нулями, если есть флаг 0 ): printf("[%12i]", 125); [ 125] Если число длиннее, то оно выводится целиком: printf("[%3i]", ); [142857]

Вывод (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]

Вывод (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 ).

Вывод (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 !!!

Вывод (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

Ввод (scanf) Полный формат вызова scanf : scanf(Форматная строка, параметры); Возвращает количество успешно считанных величин. Форматная строка как у printf. В УП указывается тип. Можно указать ширину (максимальное количество знаков для считывания) и длину значения. Остальные параметры соответствующее количество адресов (переменных), в которые будут считаны данные.

Ввод (scanf) Унарная операция & взятие адреса. Получает адрес, начиная с которого, в памяти хранится переменная: &A, &Result. scanf("%Lf %Lf %Lf", &x, &y, &z); Форматная строка может содержать другие символы кроме УП. Тогда необходимо водить и их: scanf("R%i", &N); (ожидается ввод, например, R12, R-46 …) Исключение пробелы, переводы строк, табуляции.

Ветвления Синтаксис ветвления: if(условие) команда1;elseкоманда2; Вычисляет значение условия. Если условие истинно (ненулевое), тогда выполняется команда 1, иначе команда 2.

Ветвления Раздел else может отсутствовать. Можно указать несколько команд в {} : if(условие) { командаA1; командаA2; командаA3;... }else { командаB1; командаB2; командаB3;...} Точка с запятой после команды обязательна, после операторных скобок нет.

Ветвления Пример: if(A == B || B == C || A == C) if(A == B && B == C) printf("Треугольник равносторонний\n"); else printf("Треугольник равнобедренный\n"); else printf("Треугольник общего вида\n");