Что такое вывод в информатике

Что такое вывод в информатике

Рис.4.26.Фрагмент программы, обеспечивающей непрерывную индикацию строки символов

Что такое вывод в информатике. Смотреть фото Что такое вывод в информатике. Смотреть картинку Что такое вывод в информатике. Картинка про Что такое вывод в информатике. Фото Что такое вывод в информатике

Рис.4.27.Блок-схема программы, обеспечивающий вывод в режиме «бегущей строки»

Что такое вывод в информатике. Смотреть фото Что такое вывод в информатике. Смотреть картинку Что такое вывод в информатике. Картинка про Что такое вывод в информатике. Фото Что такое вывод в информатике

Рис.4.28.Структура буфера программы, обеспечивающий вывод в режиме бегущей строки

символы, семисегментные коды которых находятся в буфере. Числа около стрелок задают порядок пересылки кодов в процессе поворота. После поворота буфера вновь выполняется NN циклов индикации. Легко видеть, что при этом символы на дисплее будут последовательно смещаться влево и строка на нем «побежит». Скорость ее движения определяется числом циклов NN циклов индикации. Чем больше NN, тем медленнее бежит строка.

Что такое вывод в информатике. Смотреть фото Что такое вывод в информатике. Смотреть картинку Что такое вывод в информатике. Картинка про Что такое вывод в информатике. Фото Что такое вывод в информатике

Для поворота буфера имеющего N ячеек можно воспользоваться фрагментом программы, представленным на рис.4.30.

; ЧИСЛО СИМВОЛОВ В СТРОКЕ

; ЗАНЕСТИ В ПАРУ HL НАЧ.

; АДРЕС ИСТОЧНИКА КОДА

; ЗАНЕСТИ В ПАРУ DE НАЧ.

; АДРЕС ПРИЕМНИКА КОДА

; ВЫПОЛНИТЬ N ЦИКЛОВ

; ИСТОЧНИКА В ПРИЕМНИК

; ИСТОЧНИКА И ПРИЕМНИКА

; НЕТ, ПОВТОРИТЬ, ИНАЧЕ

Рис.4.30.Фрагмент программы, обеспечиваюший поворот буфера

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

Преобразование иллюстрирует подпрограмма BIS7 (рис.4.31), которая преобразует в семисегментный код младшую тетраду байта, находящегося в аккумуляторе.

; МАСКА МЛАДШЕЙ ТЕТРАДЫ

; ВЫДЕЛИТЬ МЛ. ТЕТРАДУ

; ОЧИСТИТЬ РЕГИСТР H

; ЗАГРУЗИТЬ МЛ. ТЕТРАДУ ВХ

; ЗАГРУЗИТЬ НАЧ. АДР.ТАБЛИЦЫ

; ВЫЧИСЛИТЬ АДРЕС ВЫХ. КОДА

; ЗАГРУЗИТЬ ВЫХ. КОД В РЕГ. А

; ВОЗВРАТИТЬСЯ В ОСНОВНУЮ

Рис.4.31. Текст подпрограммы BIS7

Начальный (базовый) адрес таблицы TAB7 складывается в подпрограмме с исходным кодом 0 F. При этом в регистровой паре HL получается адрес соответствующего семисегментного кода. Этот код извлекается из таблицы TAB7 командой MOV A, M и помещается в аккумулятор.

Ввод информации с кнопок и клавиатуры, подключенных к микро-ЭВМ обычно сопряжен с решением следующих специфических проблем:

защитой от дребезга контактов кнопок или клавиш;

идентификацией нажатой клавиши;

обеспечением нужного порядка срабатывания клавиш (при нажатии или при отпускании).

Защита от дребезга может быть обеспечена либо на аппаратном, либо на программном уровне.

Для идентификации клавиш обычно требуется комбинация определенных аппаратных и программных средств.

Нужный порядок срабатывания обычно обеспечивается соответствующим построением программы поддержки работы клавиатуры.

Проблема идентификации нажатой клавиши обычно решается в микро-ЭВМ в два этапа. На первом этапе обеспечивается генерация клавиатурой при нажатии каждой из клавиш уникального двоичного вода. Этот этап обеспечивается либо только аппаратными средствами, либо комбинацией аппаратных и программных средств. Второй этап всегда обеспечивается программными средствами. На этом этапе код нажатой клавиши вводится в микро-ЭВМ и сравнивается с заранее занесенной в память таблицей допустимых кодов. Результатом такого сравнения и является идентификация, опознание нажатой клавиши.

При малом количестве клавиш первый этап идентификации решается чисто аппаратно. Для приема сигнала с каждой из клавиш здесь выделяют отдельные разряды, биты в порте прямого ввода. Пример такого решения иллюстрирует схема клавиатуры, представленная на рис.4.32. Комбинация нажатых клавиш S0 S7 задает здесь уникальный код нажатой клавиши KNK1, который далее вводится в микро-ЭВМ через порт прямого ввода PIKNK1. Если количество клавиш больше числа разрядов порта ввода, можно включить между клавиатурой и портом шифратор с соответствующим количеством входов. При использовании шифратора, восьмиразрядный порт ввода может вводить информацию максимум от 255 клавиш.

Второй этап идентификации нажатой клавиши обеспечивается подпрограммой IDEN2, которая:

вводит в микро-ЭВМ код нажатой клавиши KNK1;

проверяет, содержится ли этот код в таблице допустимых кодов;

устанавливает признак недопустимого ввода Z = 1, если эта проверка не успешна. Некорректный ввод возможен, например, при одновременном нажатии нескольких клавиш;

Устанавливает признак управляющей клавиши С = 1, если нажата управляющая клавиша;

преобразует код нажатой клавиши KNK1 в другой — KNK2, более удобный для последующего использования.

Что такое вывод в информатике. Смотреть фото Что такое вывод в информатике. Смотреть картинку Что такое вывод в информатике. Картинка про Что такое вывод в информатике. Фото Что такое вывод в информатике

Рис.4.32.Подключение клавиатуры к микро-ЭВМ

Для цифровых клавиш, коды KNK2 должны соответствовать их маркировке. Для управляющих клавиш удобно использовать в качестве кодов KNK2 последовательность четных шестнадцатеричных чисел, начинающуюся с 00Н. Код KNK2 получается в подпрограмме из промежуточного кода CKNK2. Младшая тетрада кода CKNK2 есть код KNK2 нажатой клавиши. Старшая тетрада равна 0H для цифровых и 8H для управляющих клавиш. Такая структура кода CKNK2 позволяет одновременно использовать его как для формирования KNK2, так и признака управляющей клавиши.

В случае, если на рис.4.32 клавиши S0 S3 — цифровые, а S4 S7 — управляющие, подпрограмма IDEN2 может иметь вид, представленный на рис.4.33.

Основу подпрограммы составляет цикл, в котором последовательно устанавливаются адреса всех восьми строк таблиц ТАВ1 (KNK1) и ТАВ2 (CKNK2) и идет сравнение кода из таблицы ТАВ1 с кодом нажатой клавиши. Если введенного кода нет в таблице ТАВ1, то есть имел место некорректный ввод, происходит выход из подпрограммы с установленным некорректного ввода Z=1. Этот признак устанавливается командой DCR B при завершении цикла. Если же введенный код опознан в одном из кодов ТАВ1, следует выход из цикла к метке М1. Регистровая пара DE содержит в этом случае адрес кода CKNK2 в таблице ТАВ2. Далее этот код извлекается из ТАВ2 командой LDAX D.

; ДЛИНА ТАБЛИЦЫ КОДОВ

; МАСКА МЛАДШЕЙ ТЕТРАДЫ

; ЗАГРУЗИТЬ ДЛИНУ ТАБЛИЦЫ

; ЗАГРУЗ. НАЧ. АДРЕС ТАБЛИЦЫ

; КОДОВ KNK1 В ПАРУ HL

; ЗАГРУЗ. НАЧ. АДРЕС ТАБЛИЦЫ

; КОДОВ СKNK2 В ПАРУ DE

; KNK1 СОВПАДАЕТ СО СТРОКОЙ

; ДА, ПЕРЕЙТИ К М1, ИНАЧЕ

; КОДОВ В ТАВ1 И ТАВ2

; ПРОСМОТРЕНА ВСЯ ТАВ1?

; НЕТ, ПОВТОРИТЬ, ИНАЧЕ

; ВЫБРАТЬ CKNK2 ИЗ ТАВ2

; СОХРАНИТЬ В РЕГИСТРЕ В

; ВЫБРАТЬ CKNK2 ИЗ ТАВ2

; ПЕРЕНЕСТИ СТАРШИЙ БИТ CKNK2

; В БИТ С РЕГИСТРА F

; ВОССТАНОВИТЬ KNK2 В

; ВОЗВРАТ С Z=0 И С=1 / 0

0FEH, 0FDH, 0FBH, 0F7H

0EFH, 0DFH, 0BFH, 7FH

Рис.4.33.Текст подпрограммы IDEN2

В микро-ЭВМ часто используют так называемую матричную клавиатуру. Такая клавиатура представляет собой прямоугольную проводную матрицу, в узлах которой включены контакты клавиш. Принципиальная схема одного из реальных вариантов матричной клавиатуры приведена на рис.4.34

Работу клавиатуры поддерживают порт прямого ввода POKWR и порт прямого ввода PIKAR. Легко видеть, что к каждой из четырех активных линий порта ввода здесь подключено по 6 контактов клавиатуры. Понятно, что эти контакты не могут быть опрошены микро-ЭВМ одновременно. Поэтому в процессе идентификации нажатой клавиши используется процедура последовательного опроса вертикальных рядов клавиш. Эту процедуру, осуществляемую специальной подпрограммой, часто называют сканированием клавиатуры.

Порт POKWR предназначен для выбора ряда клавиш, опрашиваемых в данный момент времени. В этот порт выводится код выбора ряда KWR. Единичный бит этого кода обеспечивает активацию, выбор одного из вертикальных рядов клавиш, задавая на вертикальном проводнике матрицы уровень логического нуля. В невыбранных рядах вертикальные проводники имеют уровень логической единицы. Поэтому замыкание контактов клавиатуры в невыбранных рядах не меняет единичного состояния входов D6, D5, D4 и D2 порта PIKAR. Замыкание же контактов в выбранном ряду приводит к появлению уровня логического нуля на одном или нескольких входах этого порта. Таким образом, формируется код активного ряда KAR, который может ввести в микро-ЭВМ через порт PIKAR.

Последовательный выбор рядов клавиш меняющимся в цикле кодом KWR и ввод кода KAR соответствующего ряда осуществляет специальный блок подпрограммы идентификации IDEN. Байтовые коды KWR и KAR составляют вместе уникальный шестнадцатиразрядный код нажатой клавиши, который используется на втором этапе идентификации. Так, например, если этот код равен 0170H, то нажата клавиша «пробел».

Для рассматриваемого варианта клавиатуры коды KWR и KAR можно объединить в байтовый код нажатой клавиши KNK, используя соотношение

KNK = KWR / 2 + KAR х 2.

Это соотношение может быть реализовано фрагментом программы, приведенным на рис.4.35. Здесь предполагается, что код KWR содержится в регистре С.

Часто нужно определить, нажата ли какая-либо (неважно какая) из клавиш клавиатуры. В этом случае следует выбрать все шесть рядов клавиш одновременно, выдав в порт POKWR код KWR = 3FH. Порт PIKAR будет при этом принимать код KAR = 74H только в том случае, если не нажата ни одна из клавиш.

Процессы сканирования матричной клавиатуры и динамического управления семисегментным дисплеем имеют много общего. Поэтому их часто интегрируют, объединяют на аппаратном (клавиатура и дисплей обычно имеют общий порт выбора ряда POKWR) и (или) на программном уровне.

Что такое вывод в информатике. Смотреть фото Что такое вывод в информатике. Смотреть картинку Что такое вывод в информатике. Картинка про Что такое вывод в информатике. Фото Что такое вывод в информатике

Рис.4.34.Принципиальная схема матричной клавиатуры

Источник

Устройства ввода и вывода информации

Компьютер является всесторонним устройством для переработки данных. Компьютеру для того чтобы переработать данные, нужно каким либо из способов ввести туда. Чтобы реализовать ввод данных, человек создал специальные устройства, первая из них была клавиатура. Оказываясь в компьютере, информация обрабатывается и после этого создается право вывода текущей информации, т.е. вы имеет право визуального понимания информации. Основными устройствами для того чтобы вывести данные стали –монитор, видеоадаптер и принтер. Жесткий диск был создан для того чтобы было куда сохранять обработанные данные после ввода, после этого были созданы магнитные диски и средства оптического хранения.

Устройства вывода информации

Устройства вывода информации – это те устройства, которые переводят информацию с компьютерного языка в формы, понятные для человека. Монитор принтер видеокарта проектор и плоттер, это именно те устройства которые следует отнести к устройствам вывода данных. Чтобы ввести информацию в компьютер нужно пользоваться устройствами ввода Главное их роль – создать воздействие на компьютер. Множества выпускаемых устройств ввода повлекли за собой целые технологии от осязаемых до голосовых. И хотя они функционируют по разному, но предназначение у них одно – дать пользователю связаться с компьютером. Именно благодаря своей компактности и наглядности представления информации человеком было создано устройства ввода графической информации. Основными сторонами использования устройств ввода графической информации являются системы автоматизированного проектирования, обработки изображений, обучения, управление процессами, мультипликации и многие другие.

Монитор

При помощи монитора между человеком и компьютером обеспечивается информационная связь. Первые микрокомпьютеры были с небольшими блоками, в которых не существовало средств представления. У человека был только набор мигающих светодиодов или право распечатки результатов на принтере. Первый компьютерные мониторы были очень примитивны в сравнении с нынешними мониторами. Когда были первые мониторы, текст отображался только в зеленом цвете, но в те годы это считалось очень большим прорывом, потому что человек приобрел возможность в режиме “life” выводить и вводить данные.

Принтер

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

Плоттер

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

Проектор

Лампа перераспределяющая свет вместе с концентрацией светового потока на маленькой плоскости называется проектор. Основным элементом данного прибора является лампа, свет которой, поступает через определенные элементы, поступает на экран и создает картинку. Лампа в проекторе является самым основным элементом, свет которого проходит через определенные элементы, поступает на экран и после этого мгновенно создает картинку. На сегодняшний день лампы проектора разделяют на LCD и DLP на основе оттого через какие элементы должен проходить свет. Компактность, а также менее негативное влияние на зрение, вот главные достоинства жидкокристаллических проекторов. Их недостатком является менее насыщенный чёрный цвет. Качественная картинка – это достоинство микрозеркальных проекторов. Утомляемость зрения при продолжительном просмотре – вот главная их слабая сторона

Колонки

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

Устройства ввода информации.

Устройства при помощи, которых можно ввести данные в компьютер называется устройства ввода. Осуществить воздействие на компьютер, вот одна из главных задач устройств ввода. Разнообразие выпускаемых устройств ввода повлекли за собой целые технологии от осязаемых до голосовых. И хотя они служат для разного, но предназначены лишь для одного–дать пользователю связаться с компьютером. Благодаря своей компактности и наглядности человек создал устройства ввода.

Клавиатура

Клавиатура является одним из самых основных устройств ввода данных.

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

Мышь нужна для ввода данных или одиночных команд, выбираемых из меню. Мышь является небольшой коробочкой с двумя или тремя клавишами, с легкостью передвигающийся в любом направлении. Мышь присоединяется к компьютеру благодаря шнуру и нуждается в особой программной поддержки. Мыши нужна плоская поверхность, для этого были созданы специальные коврики. Мышь – это механический манипулятор, преобразующий движения в управляющий сигнал. В частности сигнал может быть использован для позиционного курсора или прокрутки страниц

Сканеры

Для того чтобы читать графическую информацию с бумажного используется оптические сканеры. Сканируемое изображение считывается и изменяется в цифровую форму элементами дополнительного устройства: CCD – чипами. Сканеры– это устройство, которое, анализируя какой–либо объект, создает цифровую копию изображения объекта, этот процесс называется сканированием.

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

Источник

Ввод-Вывод

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

Другой тип устройств ввода-вывода — символьные устройства. Символьное устройство принимает или предоставляет поток неструктурированных символов. Оно не является адресуемым и не выполняет операцию поиска. Принтеры, сетевые адаптеры, мыши и большинство других устройств, не похожих на диски, можно считать символьными устройствами.

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

Часто интерфейс между устройством и контроллером является интерфейсом низкого уровня. С диска в контроллер поступает последовательный поток битов, начинающийся с заголовка сектора
(преамбулы), за которым следует 4096 бит в секторе, и контрольная сумма, называемая кодом исправления ошибок ЕСС ( Error Correcting Code ). Заголовок сектора записывается на диск во время форматирования. Он содержит номера цилиндра и сектора, размер сектора, коды синхронизации и другую служебную информацию.

Работа контроллера заключается в конвертировании последовательного потока битов в блок байтов и коррекцию ошибок. Обычно байтовый блок накапливается в буфере контроллера. Затем проверя-
ется контрольная сумма блока, и если она совпадает с указанной в заголовке сектора, то блок считается принятым без ошибок. После этого блок копируется в оперативную память.

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

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

Тесно связан с концепцией независимости от устройств принцип единообразного именования. Имя файла или устройства должно быть просто текстовой строкой или целым числом. Оно никак не
должно зависеть от физического устройства.

Другим важным аспектом ПО ввода-вывода является обработка ошибок. Ошибки должны обрабатываться как можно ближе к аппаратуре. Если контроллер обнаружил ошибку чтения, он должен по возможности исправить эту ошибку сам. Если он не может это сделать, то ошибку должен обработать драйвер устройства. Многие ошибки бывают временными, например ошибки чтения, вызванные пылинками на читающих головках. Такие ошибки исчезают при повторном чтении блока. Только если нижний уровень не может сам справиться с проблемой, о ней следует информировать верхний уровень. Во многих случаях восстановление может осуществляться на
нижнем уровне, так, что верхние уровни даже не будут знать о наличии ошибок.

Одним из ключевых вопросов является способ переноса данных — синхронный (блокирующий) или асинхронный (управляемый прерываниями). Большинство операций ввода-вывода на физическом
уровне являются асинхронными — ЦП запускает перенос данных и переключается на другой процесс, пока не придет прерывание.

Еще одним аспектом ПО ввода-вывода является буферизация. Часто данные, поступающие с устройства, не могут быть сохранены там, куда они направлены. Например, когда пакет приходит по сети, ОС не знает, куда его поместить, пока не будет проанализировано его содержимое. Буферизация предполагает копирование данных в больших количествах, что часто является основным фактором снижения производительности операций ввода-вывода.

И последним понятием, которое связано с вводом-выводом, является понятие выделенных устройств и устройств коллективного использования. С некоторыми устройствами, такими как диски, может одновременно работать большое количество пользователей. При этом не должно возникать проблем при одновременном открытии на одном и том же диске нескольких файлов. Другие устройства, такие как накопители на магнитной ленте, предоставляются в монопольное
пользование. Пока не завершит свою работу один пользователь накопитель не может быть предоставлен другому пользователю. ОС должна уметь управлять как устройствами общего доступа, так и выделенными устройствами.

Существуют три различных способа осуществления операций ввода-вывода. Простейший вид ввода-вывода состоит в том, что всю работу выполняет центральный процессор. Этот метод называется
программным вводом-выводом. ЦП вводит или выводит каждый байт или слово, находясь в цикле ожидания готовности устройства ввода-вывода. Второй способ представляет собой управляемый прерываниями ввод-вывод, при котором ЦП начинает передачу ввода-вывода для символа или слова, после чего переключается на другой процесс, пока прерывание от устройства не сообщит ему об окончании операции ввода-вывода. Третий способ заключается в использовании прямого доступа к памяти ( DMA — Direct Memory Access ), при котором отдельная микросхема управляет переносом целого блока данных и инициирует прерывание только после окончания операции переноса блока.

Источник

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

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

РубрикаПрограммирование, компьютеры и кибернетика
Видконтрольная работа
Языкрусский
Дата добавления26.05.2013
Размер файла25,9 K

Что такое вывод в информатике. Смотреть фото Что такое вывод в информатике. Смотреть картинку Что такое вывод в информатике. Картинка про Что такое вывод в информатике. Фото Что такое вывод в информатике

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ФИНАНСОВЫЙ УНИВЕРСИТ ПРИ ПРАВИТЕЛЬСТВЕ РФ

КОНТРОЛЬНАЯ РАБОТА № 1


по дисциплине: «Информатика и программирование»

1. Ввод и вывод данных

Существует несколько способов консольного ввода и вывода.

Для работы с операторами cin и cout необходимо подключить библиотеку директивой #include (табл. 2.1).

Функции и операторы ввода/вывода информации

Функции ввода/вывода printf() и scanf()

Рассмотрим шесть наиболее распространенных функций ввода информации с клавиатуры и ее вывода на экран (консольный ввод-вывод): getchar, putchar (для ввода-вывода символа); gets, puts (для ввода-вывода строки); scanf, printf (для форматированного ввода-вывода ); и функцию flush очистки буфера stdin.

данные оператор контейнер алгоритм

/* Ввод-вывод с использованием функций getchar, putchar, gets, puts */

char nf[40]; int ch; clrscr();

put («Введите Ваше имя и фамилию»);

puts(«Вас зовут»); puts(nf);

puts(«Введите любой символ»); ch=getchar();

puts(«Вы ввели символ»); putchar(ch);

getch(); /*Организации задержки смены экрана*/

Функция printf предназначена для вывода форматированной последовательности данных. Может иметь один или несколько параметров, первым из которых является строка, называемая форматной строкой. За форматной строкой следует список вывода, который может содержать переменные, константы, выражения разных типов. Форматная строка задает способ преобразования и представления на печати элементов списка вывода, а также определяет, сколько элементов содержит список вывода и какого они типа.

Функция scanf предназначена для вывода форматированной последовательности данных

Формат функции ввода:

Основным отличием применения функции scanf() от функции printf() является знак & перед именем переменной, в которую записываются результаты ввода.

Функция scanf() может работать сразу с несколькими переменными. Предположим, что необходимо ввести два целых числа с клавиатуры. Формально для этого можно дважды вызвать функцию scanf(), однако лучше воспользоваться такой конструкцией:

Функция scanf() возвращает число успешно считанных элементов. Если операции считывания не происходило, что бывает в том случае, когда вместо ожидаемого цифрового значения вводится какая-либо буква, то возвращаемое значение равно 0.

2. Определение последовательного контейнера

STL предоставляет два вида контейнеров:

o последовательные и

Последовательные контейнеры предназначены для обеспечения последовательного или произвольного доступа к своим членам (или элементам).

Ассоциативные контейнеры получают доступ к своим элементам по ключу.

Все контейнерные классы библиотеки STL определены в пространстве имен std.

Последовательные контейнеры


Это означает, что для элементов контейнера определены понятия первый, последний, предыдущий и следующий. К этому виду контейнеров принадлежат


o векторы,


o списки,


o Деки,


o строки типа string.


Векторы

Библиотека STL предоставляет контейнерный класс vector, определенный в заголовочном файле и доступный в пространстве имен std.

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


По умолчанию память для элементов вектора распределяется и освобождается глобальными операторами new() и delete (). Таким образом, для создания нового элемента вектора вызывается конструктор класса Т. Для встроенных типов данных векторы можно определить следующим образом:

//Вектор целых чисел

//Вектор чисел типа

double vector vDbls;

Обычно пользователь знает, сколько элементов будет содержаться в векторе. В этом случае он может зарезервировать память в векторе для нужного числа элементов, указав его после имени объекта в круглых скобках, например:

Количество элементов в векторе можно узнать с помощью функции-члена size ():

size_type size() const;

Функция resize изменяет величину вектора. Она имеет следующий прототип:

void resize(size_type sz);

Если новая величина вектора sz больше текущей, то в конец вектора добавляется нужное число элементов класса Т. Если же новая величина вектора меньше текущей, вектор усекается с конца.

void pop_back(); //удаляет последний элемент вектора.

Обращаться к элементам вектора можно по индексам. Значения индекса начинаются с нуля. Например, присвоить значение четвертому элементу объявленного выше вектора можно следующим образом:


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


Добавить элемент в конец вектора можно с помощью функции-члена push_back(), однако она требует, чтобы в классе хранимых в контейнере объектов был определен конструктор копирования (эта функция добавляет в контейнер копию элемента). Она имеет следующий прототип:

void push_back(const Т& х); //Добавить элемент в конец вектора

Проверить, не является ли контейнер пустым, можно с помощью функции-члена empty ():

bool empty() const; //является ли контейнер пустым

Она принимает значение true, если контейнер пуст.

Функция clear (), имеющая следующий прототип:

void clear(); //удаляет все элементы из вектора.

Функция at () работает подобно оператору индексирования ( [ ] ), но является более безопасной, поскольку проверяет, попадает ли переданный ей индекс в диапазон допустимых значений. Если индекс вне диапазона, она генерирует исключение out_of _range.

Функция insert () вставляет один или несколько элементов, начиная с указанной позиции в векторе. Функция pop_back () удаляет из вектора последний элемент. Кроме того, для класса vector определены обычные операции сравнения.

Рассмотри теперь функции-члены шаблонного класса vector.

size_type capacity() const; возвращает величину распределенной для вектора памяти в виде числа элементов, которые могут быть сохранены в векторе.

void reserve(size_type n); добавляет емкость вектору в предположении, что к вектору будут добавляться новые элементы.

После вызова этой функции последующие операции добавления элементов не будут вызывать перераспределения памяти, пока величина вектора не превзойдет n. Перераспределение памяти не появляется, если n не превосходит значения capacity(). Если происходит перераспределение памяти, то все итераторы и ссылки, указывающие на элементы вектора, становятся неверными.

reference back(); возвращает ссылку на последний элемент

reference front(); возвращает ссылку на первый элемент вектора.

функция reference at(size_type n); возвращает ссылку на элемент со значением индекса n.

Функция

iterator insert (iterator position, const T& x);

вставляет элемент x перед элементом, позиция которого задана параметром position. Возвращаемое значение указывает на вставленный элемент.

Кроме обычных итераторов, в контейнере определены обратные (или реверсивные) итераторы, которые имеют тип reverse_iterator. Такие итераторы используются для прохода последовательного контейнера в обратном направлении, то есть от последнего элемента к первому.


reverse_iterator rbegin(); возвращает обратный итератор произвольного доступа, который указывает на область памяти за последним элементом.

reverse_iterator rend(); возвращает обратный итератор произвольного доступа, который указывает на первый элемент.

Библиотека STL содержит контейнерный класс list, предоставляющий в распоряжение двусвязный (двунаправленный) список. Он определен в заголовочном файле в пространстве имен std.


Этот класс имеет такие же функции, как вектор и ряд дополнительных функций.

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

explicit list(const Allocator& alloc = Allocator() )

создает список, не содержащий элементов, причем список использует для распределения памяти объект alloc.

explicit list(size_type n);

создает список длины n, содержащий копии значения по умолчанию объектов типа Т. Тип Т должен иметь конструктор по умолчанию. Список использует для распределения памяти объект alloc.


Конструктор list(size_type n, const T& value, const Allocator & alloc = Allocator()); создает список длины n, содержащий копии значения value объектов типа Т. Тип Т должен иметь конструктор по умолчанию. Список использует для распределения памяти объект alloc. В классе list определены дополнительные функции. Функции void push_front(const T& x); и void pop_front(); аналогичны функциям push_back() и pop_back(), однако осуществляют добавление и удаление элементов в начале списка. Функция void remove(const Т& value); удаляет элемент из списка.

Вызвав функцию sort (), можно отсортировать список: void sort();

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *