Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Серым выделены операции, которые нам в этом семестре не понядобятся.Стр 1 из 5Следующая ⇒
Лекция 3 Приоритеты всех операций, определенных в языке С: Направление выполнения: → слева направо ß справа налево Серым выделены операции, которые нам в этом семестре не понядобятся.
Знак операции () – используется при вызове функции и для изменения приоритета. Знак операции [] – используется при обращении к элементу массива. Операции -> и. используются для обращения к элементам структур. Операция Sizeof используется для вычисления размера объекта. Операция * - операция косвенная адресация (разыменование), обращение к объекту по его адресу; & - получение адреса объекта. Операция запятая используется, например, в операторе for при перечислении. ~ тильда – операция битовая инверсия. единиц. Организация данных Данные определяются в программе с помощью типов. Данные можно подразделить на базовые, модифицированные и производные типы. Данныев программе могут быть представлены в виде переменных и констант. Для представления данных используется понятие идентификатор (имя). Это последовательность букв, цифр и символа подчеркивания, которая начинается не с цифры. Прописные и строчные буквы различаются. Максимальная длина идентификатора зависит от версии.
Константы – это объекты программы, которые не могут изменять свое значение в процессе ее выполнения. Различают явные (буквальные, неименованные) и символические (именованные ) константы. Буквальные константы не имеют адресов и могут быть представлены в виде целых и вещественных чисел, символов или строк. В языке Си константы могут быть одного из 4 базовых типов: целые, вещественные, символьные и строковые. Целые константы могут быть заданы в десятичной (31), восьмеричной (037) и шестнадцатеричной системе счисления (0X1F или (0x1f)). Например, десятичное число 31, в 8-ой СС запишется 037, в 16-ой СС – 0 X 1 F (0 x 1 f) Вещественные константы могут записываться в программе в естественной и в экспоненциальной форме. Например, неименованные вещественные: –5.1, -4.8, –0.1e4, -0.00001. Символьная константа это один символ таблицы ASCII (значением символьной константы является числовое значение кода символа в этом наборе). ’a’, ‘8’ – символьные константы; Среди символьных констант различают управляющие (‘\ t ’ горизонтальная табуляция, ‘\ n ’ переход к новой строке ). Они транслируются как один символ. Символьные константы, состоящие из одного символа, занимают в памяти один байт и имеют стандартный тип char. Двухсимвольные константы занимают два байта и имеют тип int Строковые константы (строковый литерал) – это последовательность любых символов, заключенных в двойные кавычки. Например, ” Привет” – строковая константа. Форматная строка в функциях ввода/ вывода является примером строковой константы. #include <stdio.h> int main(void) { printf("\n\tПростой тест"); return 0; } Символические ( именованные) константы В языке СИ символические (именованные) константы определяются в директиве препроцессора # define. Тип константы определяется ее значением. Символическое имя может использоваться в любом месте программы, где требуется значение этой константы. Перед компиляцией программы препроцессор заменяет все имена символических констант их значениями. Имена символических констант принято записывать прописными буквами, а имена переменных – строчными. Между именем константы и ее значением должен быть пробел.
# define <имя> <значение> #define PI 3.14159, #define N 10, #define S ’a’, #define ST ”строка” Одна из функций препроцессора – макроподстановка (в тексте программы будет произведена замена символического имени на соответствующую строку или фрагмент). Кроме того, константы могут быть заданы квалификатором const int k =10; Переменная это объект программы, обладающий именем (идентификатором), типом и значением, которое может изменяться в процессе выполнения программы. Или, что для Си более характерно Переменная э то область памяти, которая имеет адрес, имя, тип и значение. Данные, находящиеся по данному адресу памяти называются значением переменной. Тип определяет: · Внутреннее представление данных в памяти компьютера. · Множество значений, которое может принимать переменная. · Операции, которые допустимы над данными этого типа. · Размер ячейки памяти. Все переменные до их использования должны быть объявлены. Объявление типов данных В зависимости от типа переменной компилятор выделяет место в памяти компьютера, необходимое для размещения переменной данного типа. <имя типа> < имя 1>, < имя 2>, …, < имя n >; Как уже упоминалось, в языке Си существует 4 базовых типа данных: int (целое со знаком), char (трактуется как целое однобайтовое целоечисло со знаком), double (вещественное число с двойной точностью 8 байт), float (вещественное число с одинарной точностью). Это спецификаторы типа. Размер типа зависит от конкретного компилятора. Базовые типы данных (кроме void) могут иметь различные модификаторы, которые записываются перед идентификатором типа при объявлении типа (signed- со наком, unsigned – без знака, только положительные, long - длинное, short - короткое ). Например, базовый тип int может быть модифицирован каждым из этих спецификаторов, например, short int – короткое целое 2 байта. Модификаторы типа позволяют изменить способ кодирования целого числа (изменить форму представления числа). Модификатором является и const. Размеры типов для определенного компилятора можно посмотреть, используя операцию sizeof (тип). Максимальное и минимальное значения типа можно тоже посмотреть, используя символические константы (подключить для этого стандартный заголовочный файл < limits. h >): например, INT _ MAX, INT _ MIN, DBL _ MAX, DBL _ MIN Размеры типов и их диапазоны приведены в таблицах.
При работе с вещественными числами отдается предпочтение типу double, т.к. у float большая погрешность. Различные типы данных по-разному представляются в памяти. Посмотрим, как целые и вещественные числа представляются в памяти компьютера. Представление целых чисел Считается, что в форме с фиксированной точкой десятичная точка зафиксирована после младшего цифрового разряда, т.е. в числе нет дробной части. Целые числа могут занимать в компьютере 1 байт (полуслово), 2 байта (16 разрядов - слово), 4 байта (32 разряда –двойное слово) или 8 байтов (64 разряда – расширенное слово). Каждый из этих форматов может быть знаковым – для положительных и отрицательных чисел и беззнаковым для положительных.
Разные целочисленные типы отличаются разным диапазоном значений и бывают знаковыми (int, shot, long int) и без знаковыми (с модификатором unsigned) В компьютерной технике применяются три формы кодирования целых чисел со знаком: прямой код, обратный и дополнительный. Положительные числа в прямом, обратном и дополнительном кодах изображаются одинаково. Обратный и дополнительный коды служат для упрощения и удешевления арифметико-логического устройства (АЛУ), позволяя исключить операцию вычитания. Чтобы закодировать целое число, достаточно перевести его в двоичную систему счисления, дополнить слева нулями (прижать к правому краю разрядной сетки) и добавить знаковый разряд. Системы счисления Для автоматизации работы с данными, которые относятся к разным типам, унифицируют их форму представления. Это можно сделать с помощью кодирования данных на единой основе. Система счисления (CC) – способ представления чисел (правило записи и получения чисел) с помощью фиксированного набора символов, обозначающих цифры. Системы счисления разделяются на позиционные и непозиционные. десятичная СС использует 10 цифр: 0, 1, 2,… 9; двоичная использует 2 цифры: 0, 1; восьмеричная – 8 цифр: 0, 1, 2,… 7; шестнадцатеричная – 16 цифр. Кроме привычных 10 цифр требуется еще 6 символов, в качестве которых используются латинские буквы: 0, 1… 9, A, B, C, D, E, F. При работе с компьютером иногда наряду с двоичной используются также восьмеричная и шестнадцатеричная системы счисления. 8-ричная и 16-ричная системы используются для более короткой и удобной записи двоичных значений. Представление целых чисел Считается, что в форме с фиксированной точкой десятичная точка зафиксирована после младшего цифрового разряда, т.е. в числе нет дробной части. Целые числа могут занимать в компьютере 1 байт, 2 байта (16 разрядов), 4 байта (32 разряда) или 8 байт (64 разряда). Разные целочисленные типы отличаются разным диапазоном значений и бывают знаковые (int, short int, long int) и беззнаковые (с модификатором unsigned).
Чтобы закодировать знаковое целое число, достаточно перевести его в двоичную систему счисления, дополнить слева нулями (прижать к правому краю разрядной сетки) и добавить знаковый разряд. Рассмотрим структуру разрядной сетки 2-байтового представления (16 разрядов):
1 000000001111101
Для упрощения арифметических действия с отрицательными числами, как правило, используется или обратный, или дополнительный код. Отрицательные числа преобразуются в обратный код инвертированием всех битов двоичного числа, кроме знакового, а дополнительный можно получить прибавлением единицы к обратному коду числа. 11110=11011112 В 8 байтовой ячейке: 0 1101111 Число -111 будет представлено: Прямой 1 1101111 Обратный 1 0010000 +1 Доп-ый 1 0010001 При 2-байтовой кодировке, когда под значащую часть числа отводится 15 разрядов, максимально возможное целое число, которое может поместиться в отведенную ячейку, составляет 215 - 1 = 32767. Число с большим значением не поместится в такую ячейку. В таком случае говорят о переполнении. Переполнение разрядной сетки - это ситуация, когда число, которое требуется сохранить, не умещается в отведенном количестве разрядов памяти вычислительного устройства. Последствия такой ситуации могут быть разными в зависимости от программы, в которой она случилась: от прерывания программы с выводом сообщения об ошибке до получения неверного результата. Переполнение связано с количеством разрядов устройства, выделяемых для хранения числа. Арифметические действия с целыми числами выполняются точно. Для деления существуют операции определения целой части частного и остатка от деления. Инициализация переменных. Переменной может быть присвоено начальное значение при объявлении: <тип> <имя пер.>=<начальное значение>; Int a=10, n=20; Лекция 4 Выражения Выражение задает правило вычисления. Э то любая синтаксически допустимая последовательность операндов и операций, позволяющая вычислить значение. или Выражение – это совокупность операндов, соединенных знаками операций и скобками, регулирующих порядок действий (выражение состоит из операндов, операций и круглых скобок). Любое выражение, заканчивающееся точкой с запятой, рассматривается как оператор, выполнение которого заключается в вычислении этого выражения. Частным случаем выражения является пустой оператор; (точка с запятой) Оператор - это наименьшая исполняемая единица программы. Для обозначения конца оператора в языке Си используется точка с запятой. Объекты, над которыми производится действие, называются операндами. Действия над операндами это операции. В качестве операндов в выражениях могут быть: константы (буквальные или именованные), переменные, элементы массива, функции, возвращающие значение и указатели. Знак операции — это один символ или комбинация символов, определяющих арифметические, логические или другие действия над операндами.
Каждое выражение принимает какое-либо значение. Тип результата в выражении определяется операциями и типом операндов, которые входят в выражение. Порядок выполнения операций в выражении определяется приоритетом (рангом) операции и правилами ассоциативности. Для изменения порядка выполнения операций используют круглые скобки. Над объектами в Си могут выполняться следующие операции: арифметические, логические, поразрядные и операции отношения. Кроме них, есть также специальная операция - присваивание. В языке Си различают одиночное присваивание, оптимизированная форма присваивания и множественное присваивание. Для каждой операции определено количество операндов. В зависимости от этого операции делятся на унарные, бинарные и тернарные ( условная). Например: -5 унарная (один операнд:); 2+х бинарная (два операнда); ?: тернарная (три операнда). Это условная операция, например: x = 10; x>9? 100: 200; В таблице, рассмотренной ранее приведены все знаки операций, определенные стандартом языка и разбитые на группы в соответствии с их приоритетом (рангом). Все операции в языке СИ имеют приоритет и направление выполнения. Операции 1 ранга имеют наивысший приоритет выполнения. Операции одного ранга имеют одинаковый приоритет, и если их в выражении несколько, то они выполняются в соответствии с правилами ассоциативности либо слева на право, либо справа налево. Например, x = y = z =5; y = x -10+5; Каждая бинарная операция имеет определенный порядок выполнения: слева направо или слева направо. Например, если есть несколько сложений, то они выполняется слева направо, а присваивание справа налево. В программировании ассоциативностью операторов называется последовательность их выполнения (или направление вычисления), реализуемое, когда операторы имеют одинаковый приоритет и отсутствует явное (с помощью скобок) указание на порядок их выполнения. Различают левую ассоциативность, при которой вычисление выражения происходит слева-направо, и правую ассоциативность — справа-налево. Операторы, осуществляющие эти операции, называют левоассоциативными и правоассоциативными. Выражение может содержать несколько операций одного приоритета. Когда несколько операций одного и того же уровня приоритета появляются в выражении, то они применяются в соответствии с их ассоциативностью — либо справа налево, либо слева направо. В общем случае, унарные операции, условная операция и операции присваивания правоассоциативны, а остальные операции левоассоциативны: выражение x = y = z; означает x = (y = z); а выражение x+ y –z; означает (x + y) – z. Арифметические операции: +, -, *, /, %, ++, --; Арифметические операции ассоциируются слева направо. a+b -c Приоритет: ++, --, одноместный + или -; *, /, %,+, -, Язык С предоставляет пользователю операции ++ (инкремент) и -- (декремент). Они увеличивают или уменьшают значение переменной на 1. Например, x++; //это означает, x=x+1; или x--; // это означает, x=x-1; Они могут следовать до операнда ++ x (префиксная форма) или после x ++ (постфиксная форма). Префиксная и постфиксная формы отличаются при использовании их в выражениях. Если оператор инкремента или декремента предшествует операнду, то сама операция выполняется до использования результата в выражении. Если же оператор следует за операндом, то в выражении значение операнда используется до выполнения операции инкремента или декремента. ++ x в выражении означает, что сначала a увеличивается на 1, и ее новое значение будет использоваться в выражении. x ++ в выражении означает, что сначала a используется в выражении, а затем ее значение увеличивается на 1. Выражение x=x+1, можно записать как в виде ++x;так и в виде x++; Значения x будут увеличены на 1 всегда, но использование их в выражениях разное. Например, y =2; x = ++ y +5; Сначала при вычислении выражения y увеличится на 1 (y=y+1), станет равным 3 (y =3); затем, будет выполнено действие 3+5, результат 8 будет записан в переменную x. Значение выражения будет 8. Это равносильно: y =2; у=у+1; x = y +5; А если выражение записать в виде: y =2; x = y ++ +5; то сначала при вычислении выражения к у будет прибавлено 5 (2+5=7) и это значение будет записано в переменную x (x =7). И только, когда выражение будет вычислено, y увеличится на 1, станет=3.Это равносильно y =2; x = y +5; у=у+1;Префиксная форма переменной в выражении обладает самым высоким приоритетом среди всех арифметических операций. Постфиксная форма переменной в выражении обладает самым низким приоритетом, ниже присваивания. Операция деления / применяется к операндам числового типа. При делении целого на целое результатом будет целая часть от деления. Например, 3/2 результат 1, 2/3 – 0. При делении если хотя бы один операнд вещественный, то результат будет вещественный. Например, int a=5; double b=2, c; c=a/b; (2.5) c=5./2; или с=5/2.; результат тоже вещественный. Операция % применяется к операндам целого типа и означает остаток от целочисленного деления. Например, 2%3 результат 2; 5%2 результат 1; Операции отношения (сравнения): >, <, <=, >=,!=, ==; Операции отношения — это операции, в которых значения двух переменных сравниваются друг с другом. Между логическими операциями и операциями отношения существует тесная связь: результаты операций отношения часто являются операндами логических операций. Логические операции:!, &&, || Результатом логического выражения или выражения отношения в Си является целочисленное значение 0 – ложь, или любо е целое число (ненулевая величина) – истина. Обычно это 1. 2>3 результат 0, т.е. ложь; 2==2 результат 1, т.е. истина; x=2; x>0<1 результат 0 x =2; x >0==1 результат 1 В стандартах С89 и в С99 значение ИСТИНА представлено любым отличным от нуля числом, а ЛОЖЬ — нулем. В стандарте С99 дополнительно определен тип данных _ b ооl, переменные которого могут принимать значение только 0 или 1. Приоритет операций отношения и логических операций: ! > >= < <= ==!= && || Присваивание В языке Си операция присваивания записывается знаком (=). В этой операции действие выполняется справа налево. Оператор присваивания может присутствовать в любом выражении языка Си. Этим Си отличается от большинства других языков программирования (Pascal, FORTRAN), в которых присваивание возможно только в отдельном операторе. Общая форма оператора присваивания: имя_переменной = выражение; В языке Си различают: одиночное присваивание, оптимизированное присваивание, и множественное присваивание. В языке Си существуют следующие операции присваивания: =, +=, -=, *=, /=, %=; x=5 – одиночное присваивание. y=(x=5)+b; 1) x=5 2)y= x+b Можно записать многократное (множественное) присваивание: a = b = c = x * y. Сначала вычисляется x*y, затем это значение присваивается c, затем b и a. Для выражений вида: n=n+2; n=n*2; n=n/2; n=n%2 существует другая форма записи (компактная или оптимизированная форма). n=n+2; n+=2; n=n*2; n*=2; n=n/2; n/=2; n = n %2; n %=2; //остаток от деления, только для целых Или выражение x=x*(y+1) эквивалентно x*=y+1; Подключение библиотек Библиотеки позволяют использовать разработанный ранее программный код в различных программах. Программист может не разрабатывать часть кода для своей программы, а воспользоваться тем, что входит в состав библиотек. В языке программирования Cи код библиотек представляет собой функции, размещенные в файлах, которые скомпилированы в объектные файлы, а те, в свою очередь, объединены в библиотеки. В одной библиотеке объединяются функции, решающие определенный тип задач. Например, существует библиотека математических функций. У каждой библиотеки должен быть свой заголовочный файл, в котором должны быть описаны прототипы (объявления) всех функций, содержащихся в этой библиотеке. С помощью заголовочных файлов программист сообщает, какие библиотечные функции необходимы и как их использовать. Библиотеки бывают двух видов — статические и динамические. Код статических библиотек при компиляции полностью входит в состав исполняемого файла, что делает программу легко переносимой. Код динамических библиотек не входит в исполняемый файл, он содержит лишь ссылку на библиотеку. Если динамическая библиотека будет удалена или перемещена в другое место, то программа работать не будет. С другой стороны, использование динамических библиотек позволяет сократить размер исполняемого файла. Также если в памяти находится две программы, использующие одну и туже динамическую библиотеку, то последняя будет загружена в память лишь единожды. Чтобы подключить к программе библиотеку, надо подключить заголовочный файл (# inckude <имя заголовочного файла. h >). Существуют 15 заголовочных файлов. stdio. h (вв/выв), math. h ( матем. функции ), stdlib. h (генератор случ чисел, функции выделения и освобождения памяти), time (функции для работы с системным временем) и т.д. Ввод/вывод Для организации ввода/ вывода в языке Си используются функции стандартной библиотеки. Для подключения к программе этих функций используется директива препроцессора, например, #include <stdio.h >. Каждая стандартная функция имеет прототип в заголовочном файле. Прототипы функций ввода/вывода находятся в файле stdio.h.. Функция форматированного вывода printf Функция printf() предназначена для преобразования и вывода данных (значений переменных, констант и выражений) в стандартный поток вывода (по умолчанию - на экран) согласно строке формата. Функция printf() возвращает количество (число ) выведенных символов или отрицательное значение в случае ошибки. Функция printf() переводит данные из внутреннего представления в символьное и выводит результат этого преобразования на экран дисплея. При этом имеется возможность вывести данные в определенном виде, т.е форматировать данные. Общий вид: Printf (<”форматная_строка”>,<список_аргументов>); Форматная (управляющая) строка ограничена кавычками и содержит 2 типа объектов. Может включать произвольный текст (последовательность символов), которые копируются в поток вывода, управляющие символы и спецификации преобразования данных. Список (аргументов) вывода может отсутствовать, например: Printf (“Hello world!\n”). Функция вывода в этом примере содержит только форматную строку. В форматной строке могут быть указаны управляющие символы ‘\n, \ t Например, ‘\n’ – перевод курсора на новую строку. Текст, заключенный в кавычки, выводится на экран, а управляющий символ \ n переводит курсор на новую строку. Управляющий символ табуляция \ t. Табуляция находится на 1, 9, 17, 25 позиции Строка формата содержит 2 типа объектов: поясняющий текст, который копируется в поток вывода и спецификацию формата, которая задает правила преобразования и вывод очередного значения из списка аргументов (вывода). Спецификации преобразования данных предназначены для управления формой внешнего представления значений аргументов функции printf (). Каждая спецификация формата начинается с символа % и заканчивается символом типа преобразования. Форматная строка имеет вид: [поясн.текст][ % флажки ширина_поля.точность модификатор и спецификатор] Спецификаций должно быть столько же, сколько объектов в списке вывода. Каждая спецификация формата начинается с символа %. Кроме формата, можно указать дополнительные опции: флаги и модификаторы. Между символом % и спецификатором типа (d,fl, f) могут быть помещены флаги. Флаги: - (знак минус) задает выравнивание аргумента по левому краю его поля; + (знак плюс) требует обязательного знака у выводимого числа; пробел – при отсутствии знака перед числом должен стоять пробел; 0 задает дополнение нулями поля слева до заданной ширины при выводе числа. К спецификаторам формата могут быть добавлены модификаторы длины, которые изменят формат вывода. Например, lf – означает, что аргумент имеет тип long. Для символьных и целочисленных данных может быть задана ширина поля вывода. Для вещественных чисел - ширина поля, точка, точность. По умолчанию вещественные числа выводятся с точностью 6 знаков после десятичной точки. Среди элементов спецификации преобразования обязательными являются только два – символ ‘%’ и спецификатор преобразования. В таблице указаны основные форматы. Спецификаторы формата
Для типа double на вводе используют спецификатор lf. В форматной строке список форматов может быть разделен поясняющим текстом. В список вывода (аргументов) функции printf() включают объекты, значения которых должны быть выведены на экран. Это могут быть выражения, переменные, константы, обращения к функциям. Список форматов должен соответствовать по количеству и типам списку аргументов. Пример: int y = 7; float x = 3.1415; printf(“x = %f\ty = %d\n”, x, y); На экране: Для вывода числовых значений в спецификации преобразования часто используют «ширина_поля» и «точность». Ширина_поля – целое положительное число, определяющее количество знакомест на экране для представления выводимого значения. Для целочисленных данных используется только ширина поля вывода. Точность – целое положительное число, определяющее количество цифр в дробной части внешнего представления вещественного числа (с фиксированной точкой) или его мантиссы (при использовании формы с плавающей точкой). Пример: int y = 7; float x = 3.1415; printf(“x = %.2f\ty = %4d\n”, x, y); На экране: Пример: int a=37,m=5,n=2; double x=178.946, y=12e-9; printf("a=%d\n\n\n x=%f",a,x);
printf("a=%6d\ty=%g",a,y); a выодится в поле 6 знакомест и прижимается к правому краю.
printf("x=%+-10.2f\ty=%e",x,y);
Вывелся знак у числа и число прижалось к левому краю поля вывода из 10 знако-мест. printf("x=%+-10.2f\ty=%g",x,y); Изменили формат с e на g. Число отобразилось в более короткой форме.
Функция форматированного ввода scanf Для ввода данных с клавиатуры в программе используют функцию scanf(). Эта функция преобразует вводимые данные во внутренний формат в соответствие со спецификацией и помещает их в переменные из списка ввода. Функция возвращает количество успешно считанных, преобразованных и помещенных по определенному адресу данных. С помощью этой функции можно ввести данные любого скалярного типа и строки. Scanf (”<форматная_строка>”,<список ввода>); Для функции scanf форматная строка и список аргументов (ввода) обязательны. В форматной строке можно использовать знак % соответствующий вводимому данному спецификатор и знак \ n. Количество и тип спецификаторов форматов в управляющей строке должны совпадать с количеством и типом переменных в списке ввода. При выполнении программы разделителями между вводимыми данными являются пробелы, нажатие клавиши Enter или символ табуляции. Исходные данные, введенные с клавиатуры, после нажатия клавиши Enter помещаются в специально выделенную операционной системой область памяти – в буфер клавиатуры и одновременно отображаются на экране в виде строки ввода. В отличие от функции printf() аргументами для функции scanf() могут быть только адреса объектов программы, обычно это адреса переменных (указатели ). В форматной строке в списке ввода может быть записано несколько аргументов, они перечисляются через запятую: & аргумент 1, & аргумент 2 & аргумент n. Выражение для получения адреса переменной будет таким: &имя_переменной. Знак & это операция вычисления адреса. Например, int x; float y; /* или scanf (“%d%f”, &x, &y);*/ scanf(“\n%d”, &x); scanf(“%f”, &y); Если тип вводимого аргумента double, то спецификатор lf. Пример Пример int x,y,z; scanf("%d%d%d",&x,&y,&z); printf("viv=%d_%d_%d",x,y,z);
int a; scanf (“%d”, &a); ввели 12345 scanf (“%2d”, &a); Будет считано 12 Оставшиеся остаются в потоке ввода, при следующем scanf могут быть считаны int a, b; ввели 12345 678 scanf (“%d%d”, &a, &b); Изменили формат scanf (“%3d%7d”, &a, &b); Еще раз изменили формат scanf (“%7d%5d”, &a, &b); Лекция 3 Приоритеты всех операций, определенных в языке С: Направление выполнения: → слева направо ß справа налево Серым выделены операции, которые нам в этом семестре не понядобятся.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2020-11-23; просмотров: 152; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.238.70 (0.192 с.) |