Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Ввод/вывод информации на экран↑ ⇐ ПредыдущаяСтр 2 из 2 Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Система ввода/вывода Си++ действует через так называемые потоки (streams). Поток ввода/вывода – это логическое устройство, которое выдает и принимает пользовательскую информацию. Образно говоря потоки ввода/вывода – это органы чувств программы. Как у человека есть уши, чтобы слышать и голосовые связки, чтобы говорить, так и у программы есть поток ввода для получения информации извне и поток вывода для записи информации во внешнее устройство, например, на экран. Поток связан с физическим устройством с помощью системы ввода/вывода Си++. Поскольку все потоки ввода/вывода действуют одинаково, то, несмотря на то, что программисту приходится работать с совершенно разными по характеристикам устройствами, система ввода/вывода предоставляет для этого единый удобный интерфейс. Например, функция, которая используется для записи информации на экран монитора, вполне подойдет как для записи в файл, так и для вывода на принтер. Если программа на Си++ начинает выполняться, открываются четыре потока:
В дальнейшем нас пока будут интересовать потоки cin, cout. Для использования стандартных функций ввода/вывода вам необходимо подключить к вашей программе библиотеку iostream. Собственно ввод/вывод осуществляется в Си++ двумя операторами: << и >>. С помощью оператора вывода << можно вывести данные любого базового типа Си++. Вот некоторые примеры.
cout << “Эта строка выводится на экран.\n”
cout << 100.99;
Для считывания значения с клавиатуры, используйте оператор ввода >>. Например, в этом фрагменте целая величина вводится в num.
int num. cin >> num;
Рассмотрим несколько вариантов использования приведенных операторов ввода/вывода.
/*Программа вывода строки, двух целых чисел и одного числа с плавающей запятой*/
#include <iostream.h> // Подключение стандартной // библиотеки ввода/вывода
void main(void) { int i, j; // Объявление трех переменных double d; // i, j, d i = 10; // j = 20; // Их инициализация d = 99.101; //
// Вывод данных на экран cout << “Вот несколько чисел: ”; cout << i; cout << ‘ ‘; cout << j; cout << ‘ ‘; cout << d }
Ниже представлен результат работы программы.
Вот несколько чисел: 10 20 99.101
В одном выражении ввода/вывода можно выводить более одной величины. Например, программу представленную в листинге 2 можно модифицировать следующим образом:
/*Модифицированная программа вывода строки, двух целых чисел и одного числа с плавающей запятой*/
#include <iostream.h> // Подключение стандартной // библиотеки ввода/вывода
void main(void) { int i, j; // Объявление трех переменных double d; // i, j, d i = 10; // j = 20; // Их инициализация d = 99.101; //
// Вывод данных на экран cout << “Вот несколько чисел: ” << i << ‘ ‘ << j << ‘ ‘ << d; }
Результат ее работы будет точно таким же, как и для предыдущей программы. В листинге 4 представлен пример программы, позволяющей пользователю вводить число.
/*Программа, позволяющая осуществить ввод одного числа*/
#include <iostream.h> // Подключение стандартной // библиотеки ввода/вывода
void main(void) { int i; // Объявление переменной cout << “Введите число: ”; cin >> i; cout << “Вот ваше число: ” << i << “\n”; }
В ряде случаев у вас может возникать задача вывода данных в заданном формате. Для этого можно использовать функцию printf(). Так как printf() не является встроенным элементом языка Си++, то до запуска программы к ней необходимо с помощью оператора #include подключить файл-заголовок, содержащий описание функции printf(). В данном случае это файл stdio.h. Мы уже использовали функцию printf() ранее (см. листинг 1) и теперь рассмотрим ее более подробно.
Прототип: int printf(const char * format [, argument ] ... ); Описание: Осуществляет форматированный вывод. Параметры: format – форматная строка; argument – последовательность аргументов. Возвращаемое значение: Каждый вызов этой функции возвращает количество напечатанных символов, либо отрицательное значение в случае возникновения ошибки. Объявлен в файле-заголовке: stdio.h Пример использования:
printf(“One string”); Вывод: One string
printf(“%s %s”, “One”, “string”); Вывод: One string
printf(“%s\n%s”, “Two”, “string”); Вывод: Two string
printf(“[%d: %d]”, 1, 0); Вывод: [1: 0]
Форматная строка содержит два вида объектов: обычные символы, копируемые на экран, и спецификации преобразования, которые вызывают преобразование и печать остальных аргументов в том порядке, как они перечислены. Каждая спецификация преобразования начинается с % и заканчивается символом-спецификатором преобразования. В общем случае спецификация преобразования имеет следующий вид: % [флаги] [ширина] [. точность] [{ h | l | I64 | L }]тип
Подробное описание всех параметров спецификации вы можете найти в приложении В 1.2 конспекта лекций. Мы же будем использовать упрощенный вариант спецификации: % тип
Символы-спецификаторы и разъяснение их смысла приведены в таблице 1. Если за % нет правильного символа-спецификатора, результат не определен.
Таблица 1. Преобразования printf
Чаще всего на печать мы выводим числа и строки. Поэтому из представленного выше списка для вас являются важными символы-спецификаторы d, g и s.
Пример Рассмотрим следующий вызов функции printf():
printf(“I am %s\n %d: %d\n”, “fine!”, 1, 0);
В результате выполнения данной строки на экране выведется:
I am fine! 1: 0
Форматная строка начинается со слов «I am». Так как, перед этими словами нет «%», они выводятся на экран без каких-либо преобразований. Далее следуют символы «%s». Они означают, что следует вывести в виде последовательности символов переданный аргумент «fine!». Следует отметить, что символ «\n» следующий далее в форматной строке не относятся к символам-спецификаторам форматной строки. Это специальный символ, используемый при выводе текстовой информации. В таблице 2 приведено описание некоторых специальных символов.
Таблица 2. Некоторые специальные символы
Таким образом, символ «\n» говорит о необходимости начать новую строку. Далее в форматной строке заданы символы «%d: %d». Они говорят о том, что следующие аргументы (в данном случае 1 и 0) являются целыми числами и их следует вывести на экран, разделив последовательностью символов «:». Заканчивается форматная строка еще одним символом «\n».
Генератор случайных чисел
Многие задачи лабораторного практикума требуют ввода различных исходных данных. В случае, когда надо ввести одно два числа это можно осуществить вручную. Но если требуется ввести в качестве исходных данных большое количество чисел, например, матрицу, целесообразно использовать генератор случайных чисел. Для работы с генератором случайных чисел Си++ предоставляет две функции: srand() и rand() описанные в библиотеке stdlib. Перед началом работы генератор случайных чисел необходимо проинициализировать. Для этого надо вызвать функцию srand() с любым целым положительным аргументом. Каждый вызов функции rand() позволяет получить целое случайное число в диапазоне от 0 до величины RAND_MAX. Численное значение этой величины нас не интересует. В листинге 5 представлен пример программы печатающей на экране два случайных числа.
/*Программа вывода на экране двух случайных чисел при постоянном аргументе функции srand ()*/
#include <iostream.h> // Подключение стандартной // библиотеки ввода/вывода # include <stdlib.h> // Подключение библиотеки содержащей // описание функций srand() и rand()
void main(void) { srand (2); // Инициализация генератора // Вывод на экран случайных чисел cout << rand() << ‘\n’; cout << rand() << ‘\n’; }
Обратите внимание на то, что при каждом вызове программы (листинг 5) вы получаете одинаковую последовательность чисел. Это связано с тем, что мы инициализируем генератор случайных чисел одним и тем же числом srand(2). Если вы желаете получать каждый раз другую последовательность, то вам надо соответственно менять значение аргумента функции srand() при каждом новом запуске программы. Для этого можно, например, использовать системные часы. В листинге 6 представлен модифицированный вариант программы печатающей два случайных числа.
/*Программа вывода на экране двух случайных чисел при случайном аргументе функции srand ()*/
#include <iostream.h> // Подключение стандартной // библиотеки ввода/вывода # include <stdlib.h> // Подключение библиотеки содержащей // описание функций srand() и rand() # include <time.h> // Подключение библиотеки содержащей // описание функций работы с системными часами void main(void) { srand ((unsigned) time(NULL)); // Инициализация генератора // Вывод на экран случайных чисел cout << rand() << ‘\n’; cout << rand() << ‘\n’; }
Теперь при каждом вызове программы вы будете получать новую последовательность чисел.
Задание к лабораторной работе
Набрать, откомпилировать и запустить следующие программы:
/*Вывод с использованием функции printf()*/
#include <stdio.h> void main(void) { printf(“I love \” Algorithmization and programming!\”\n”); }
/*Вывод с использованием оператора <<*/
#include <iostream.h> void main(void) { cout << “I love\n”; cout << “\”Algorithmization and programming!”\n”); }
/*Форматированный вывод с использованием функции printf() Программа выводит: фамилию, имя, группу и порядковый номер по списку*/
#include <stdio.h> void main(void) { printf(“I am %s\nGroup: %s\nOrder number: %d\n”, “Ivanov Ivan”, “TA-0113”, 1); }
Примечание! В программе представленной в листинге 9, каждый студент должен вписать свои данные.
/*Ввод/вывод с использованием операторов << >> программа ожидает ввода элементов матрицы 2х2, а затем выводит матрицу на экран*/
#include <iostream.h> void main(void) { int a, b, c, d; cout << "Input elements\n"; cin >> a >> b >> c >> d; cout << “Matrix 2x2\n”; cout << a << ‘\t’ << b << ‘\n’; cout << c << ‘\t’ << d << ‘\n’; }
После запуска данной программы на экране появляется строка:
Input elements
Далее вам необходимо ввести четыре целых числа. Ввод очередного числа завершается нажатием клавиши Enter.
/*Модифицированный вариант программы листинг 10. Элементы матрицы формируются при помощи генератора случайных чисел*/
#include <iostream.h> # include <stdlib.h> # include <time.h> void main(void) { srand ((unsigned) time(NULL)); int a, b, c, d; a = rand(); b = rand(); c = rand(); d = rand(); cout << “Matrix 2x2\n”; cout << a << ‘\t’ << b << ‘\n’; cout << c << ‘\t’ << d << ‘\n’; }
В протоколе необходимо привести листинги всех набранных программ. Каждый листинг должны быть снабжен комментариями. Контрольные вопросы
1) Вы хотите создать проект. Ваши действия? 2) Вы написали программу и хотите ее откомпилировать. К сожалению, программа содержит ошибки. Ваши действия? 3) Вы добились безошибочной компиляции вашей программы. Теперь вы хотите запустить ее и просмотреть результат ее работы. Ваши действия? 4) При помощи чего осуществляется ввод/вывод информации? 5) Зачем нужны библиотеки и как они подключаются к программе? 6) Вы хотите использовать в программе генератор случайных чисел. Ваши действия?
Лабораторная работа №2
Цель: Изучить возможности выполнения арифметических и логических вычислений с использованием языка Си++.
Задачи: 1) Разработать программу, решающую задачу из области арифметики. 2) Разработать программу, использующую разветвления. 3) Разработать программу, использующую цикл.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-07-16; просмотров: 455; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.128.31.76 (0.011 с.) |