47824 (Операторы ввода и вывода в языке программирования Си++)

2016-07-28СтудИзба

Описание файла

Документ из архива "Операторы ввода и вывода в языке программирования Си++", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "47824"

Текст из документа "47824"


Лабораторная №1 “Операторы ввода и вывода в языке программирования Си++”

1. Теоретические сведения

1.1 Структура программы

Цель работы: изучить операторы ввода и вывода, форматы, используемые в этих операторах. Оформить законченную программу с применением этих операторов.

В языке СИ любая программа состоит из одной или более функций, задающих действия, которые нужно выполнить. Выполнение любой программы начинается с функции main. Далее идет текст программы, заключенный в фигурные скобки. Таким образом, структура программы имеет вид:

main ( )

{

Тело программы

}

В самом простом случае функция main не имеет аргументов, поэтому в скобках ничего не содержится. Для работы программы, обеспечивающей ввод и вывод информации, перед функцией main необходимо поместить строку:

#include

1.2 Алфавит языка и типы данных

Алфавит языка включает латинские прописные и строчные буквы, цифры и специальные знаки. К последним относятся: . (точка), , (запятая), ‘ (апостроф), : (двоеточие) и др.

Важным понятием языка является идентификатор, который используется в качестве имени объекта, например, переменной, функции и т.п. Идентификатор может содержать до 32 символов и состоит из букв и цифр, но начинается обязательно с буквы. Строчные буквы отличаются от прописных, поэтому идентификаторы SIGMA и sigma считаются разными.

В языке СИ существует несколько типов данных. Каждый тип данных определяется одним из следующих ключевых слов:

  1. int (целый) – задает значения, к которым относятся все целые числа. Диапазон возможных целых значений лежит в пределах от –32768 до 32767, переменная типа int занимает 16 бит;

  2. short (короткий целый) – соответствующие объекты не могут быть больше, чем int, переменные этого типа занимают 16 бит;

  3. long (длинный целый) – соответствующие объекты не могут быть меньше, чем int. Переменная типа long занимает 32 бита и позволяет представить целые числа от –2147483648 до 2147483647;

  4. char (символьный) – задает значения, которые представляют различные символы;

  5. unsigned (беззнаковый) – в языке СИ можно объявлять некоторые типы (char, short, int, long) беззнаковыми с помощью модификатора unsigned (например, unsigned short). Это значит, что соответствующие переменные не будут иметь отрицательных значений. В результате они могут принимать большие положительные значения, чем переменные знаковых типов. В случае типа int объявления вида «unsigned int a;» можно записать «unsigned a;»;

  6. float (вещественный) – задает значения, к которым относятся вещественные числа, имеющие дробную часть, отделяемую точкой. Вещественные числа могут быть записаны также в экспоненциальной форме. Например, -1.58е+2 (что равно -1,58·102 ). В языке СИ переменная типа float занимает 32 бита. Она может принимать значения в диапазоне от +3.4е-38 до +3.4е+38;

  7. double (двойная точность) – определяет вещественные переменные, занимающие в два раза больше места, чем переменная типа float. Переменная типа double занимает 64 бита. Она может принимать значения в диапазоне от +1.7е-308 до +1.7е+308.

1.3 Ввод и вывод информации

1.3.1 Форматный вывод

Вначале рассмотрим функцию, определяющую форматный вывод:

printf("управляющая строка", аргумент1, аргумент2, ... );

Управляющая строка содержит объекты трех типов: обычные символы, которые просто выводятся на экран дисплея, спецификации преобразования, каждая из которых вызывает вывод на экран значения очередного аргумента из последующего списка и управляющие символы-константы.

Каждая спецификация преобразования начинается со знака % и заканчивается некоторым символом, задающим преобразования.

Символ преобразования связан с типом переменных. приведем символы преобразования:

  1. d – значением аргумента является десятичное целое число;

  2. o – значением аргумента является восьмеричное целое число;

  3. x – значением аргумента является шестнадцатеричное целое число;

  4. c – значением аргумента является символ;

  5. s – значением аргумента является строка символов;

  6. e – значением аргумента является вещественное число в экспоненциальной форме;

  7. f – значением аргумента является вещественное десятичное число с плавающей точкой;

  8. u – значением аргумента является беззнаковое целое число;

  9. p – значением аргумента является указатель (адрес).

Если после знака % записан не символ, то он выводится на экран. Функция printf использует управляющую строку, чтобы определить, сколько всего аргументов и каковы их типы.

Например, в результате работы программы получены переменная i, имеющая значение 100, и переменная j, имеющая значение 25. Обе переменные целого типа. Для вывода этих переменных на экран в виде

i=100 j=25

необходимо применить функцию

printf(“i=%d j=%d”,i,j);

Как было описано выше, в кавычках задается формат вывода. перед знаком % записываются символы, которые будут непосредственно выданы на экран. После знака % применена спецификация d, т.к. переменные i и j имеют целый тип. Сами i и j приведены через запятую в списке аргументов. Если результат должен быть представлен в виде

i=100; j=25

необходимо применить функцию

printf(“i=%d; j=%d, i, j);

Если после знака % стоит цифра, то она задает поле, в котором будет выполнен вывод числа. Приведем несколько функций printf, которые будут обеспечивать вывод одной и той же переменной S целого типа, имеющей значение 336.

Функция printf(“%2d”, S); выдает на экран:

336

В этом примере ширина поля ( она равна двум) меньше, чем число цифр в числе 336, поэтому поле автоматически расширяется до необходимого размера.

Функция printf(“%6d”, S);

выдаст на экран:

_ _ _336

(6 позиций)

То есть, в результате работы функции число сдвинуто к правому краю поля, а лишние позиции перед числом заполнены пробелами.

Функция printf(“%-6d”, S);

выдаст на экран:

336_ _ _

(6 позиций)

Знак «минус» перед спецификацией приводит к сдвигу числа к левому краю поля.

Рассмотрим вывод вещественных чисел.

Если перед спецификацией f ничего не указано, то выводится число с шестью знаками после запятой. при печати числа с плавающей точкой перед спецификацией f тоже могут находиться цифры.

Рассмотрим на конкретном примере три возможные ситуации:

%6f – печать числа с плавающей точкой в поле из шести позиций;

%.2f – печать числа с плавающей точкой с двумя цифрами после десятичной точки;

%6.2f – печать числа с плавающей точкой в поле из шести позиций и двумя цифрами после десятичной точки.

Например, в результате работы программы получены переменные вещественного типа а=3,687 и b=10,17.

Если для вывода значений использована функция

printf(“%7f %8f”,a,b);

то результат будет представлен в виде строки:

_ _ 3.687 _ _ _ _10.17

(7 поз.) (8 позиций)

Как видно из примера, лишние позиции заполняются пробелами. Если для вывода значений использована функция

printf(“%.2f %/2f”, a, b);

то результатом будет строка:

3.69 10.17,

из которой следует, что в первом числе третья цифра после десятичной точки отброшена с округлением, т.к. указан формат числа с двумя цифрами после десятичной точки.

Если для вывода значений использована функция

printf(“%7.2f e”,a,b);

то будет выведена строка:

_ _ _ 3.681.010000е+01

(7 позиций)

Поскольку для вывода значения переменной b применена спецификация е, то результат выдан в экспоненциальной форме. Следует отметить, что , если ширина поля меньше, чем число цифр в числе, то поле автоматически расширяется до необходимого размера.

Как было отмечено выше, в управляющей строке могут содержаться управляющие символьные константы. Среди управляющих символьных констант наиболее часто используются следующие:

  1. \a – для кратковременной подачи звукового сигнала;

  2. \b – для перевода курсора влево на одну позицию;

  3. \n – для перехода на новую строку;

  4. \r – для перевода курсора в начало текущей строки;

  5. \t – для горизонтальной табуляции;

  6. \v – для вертикальной табуляции.

Предположим, в результате работы программы переменная i получила значение 50. В результате записи инструкции вызова функции

printf(“\t ЭВМ\n%d\n”,i);

сначала выполнится горизонтальная табуляция (\t), т.е. курсор сместится от края экрана на 8 позиций, затем на экран будет выведено слово “ЭВМ”, после этого курсор переместится в начало следующей строки (\n), затем будет выведено целое значение i по формату d, и окончательно курсор перейдет в начало новой строки (\n). Таким образом, результат работы этой функции на экране будет иметь вид:

_ _ _ _ _ _ _ _ ЭВМ

50

1.3.2 Ввод данных

Для форматного ввода данных используется функция

scanf(«управляющая строка», аргумент1, аргумент2,...);

Если в качестве аргумента используется переменная, то перед ее именем записывается символ &.

Управляющая строка содержит спецификации преобразования и используется для установления количества и типов аргументов. спецификации для определения типов аргументов такие же, как и для функции printf. Перед символами d,o,x,f может стоять буква l. В первых трех случаях соответствующие переменные должны иметь тип long, а в последнем double.

Рассмотрим пример. Требуется ввести значения для переменных i (целого типа) и a (вещественного типа). Эту задачу выполнит функция:

scanf(“%d%f”,&i,&a);

В управляющей строке спецификации трех типов могут быть отделены друг от друга различными знаками, в том числе и пробелом. Следовательно, при занесении значений переменных необходимо использовать указанный разделитель. Если спецификации не отделены одна от другой никакими значениями, то значения переменных заносятся через пробел.

В языке СИ есть две очень удобные функции puts и gets, позволяющие вводить и выводить строку символов. Пример их использования показан ниже:

#include

main()

{

char q[40]; /*объявление строки символов*/

puts(“Введите строку символов”);

gets(q); /*ввод строки символов*/

puts(q); /*вывод строки символов*/

}

В результате работы программы вначале на экране появится текст:

Введите строку символов,

после чего следует ввести какую-либо строку символов. Эта информация при помощи оператора gets будет присвоена элементам символьного массива q. Оператор puts выведет строку символов.

    1. Операторы и выражения

Выражения широко используются в программах на языке СИ и представляют собой формулы для вычисления переменных. Они состоят из операндов (переменные, константы и др.), соединенных знаками операций (сложение, вычитание, умножение и др.). Порядок выполнения при вычислении значения выражения определяется их приоритетами и может регулироваться с помощью круглых скобок. Наиболее часто арифметические выражения используются в операторе присваивания. Этот оператор заменяет значение переменной в левой части оператора на значение выражения, стоящего в правой части, и имеет следующую форму:

переменная = выражение;

В языке СИ может быть использован модификатор const, запрещающий какие бы то ни было переопределения константы: ее уменьшение, увеличение и т.п. Модификатор const, используемый отдельно, эквивалентен const int. Приведем примеры:

const float a=3.5;

const j=47;

В таблице 1 приведены арифметические операции, используемые в языке СИ.

Таблица 1

Знак операции

Выполнение действия

+

Сложение

Вычитание

*

Умножение

/

Деление

%

Деление по модулю

Результатом деления по модулю является остаток от деления. Например, если b=5, c=2, то при выполнении операции

а=b%c,

переменная а получит значение 1.

Широкое распространение находят также выражения с еще одной нетрадиционной терпарной операцией ?: . В выражении

у=х?а:b,

у=а, если х не равно нулю, и у=b, если х равно нулю. Следующее выражение

у=(а>b)?a:b;

позволяет присвоить переменной y значение большей переменной (а или b), т.е. y=max(a,b).

В таблице 2 приведены некоторые функции, применяемые при программировании на СИ.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5209
Авторов
на СтудИзбе
430
Средний доход
с одного платного файла
Обучение Подробнее