Способы ввода данных в программу

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

В данный момент вы не можете посмотреть или раздать видеоурок ученикам

Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет.

Получите невероятные возможности

1. Откройте доступ ко всем видеоурокам комплекта.

Индикаторы в BSC Designer Online — способы ввода данных

2. Раздавайте видеоуроки в личные кабинеты ученикам.

3. Смотрите статистику просмотра видеоуроков учениками.
Получить доступ

Конспект урока «Оператор присваивания. Ввод и вывод данных»

На этом уроке мы с вами изучим оператор присваивания, вспомним, как происходит ввод и вывод данных, узнаем, что такое линейная программа.

Команда присваивания служит для задания или изменения значений переменной.

То есть присваивание – это действие, в результате которого переменная величина получает определённое значение. В программе Pascal существует 3 способа присваивания значения переменной. Давайте рассмотрим их. Первый, при помощи самого оператора присваивания. Этот оператор записывается следующим образом: := .

Сначала идёт имя переменной, затем сам знак присваивания – двоеточие равно –, после чего записываем выражение. Знак присваивания читается как «присвоить значение». Давайте рассмотрим примеры:

В первом и втором примерах переменным a и b присваиваются значения, равные 4 и 25 соответственно. Они будут целого типа.

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

В четвёртом примере приведён пример логического оператора. Переменная d будет равна значению True. Она будет логического типа boolean.

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

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

Ввод данных. Эффективные способы быстрого ввода данных. Теория

Также существуют ещё 2 способа присваивания: при помощи оператора ввода данных и передача значения через параметры подпрограмм.

Сейчас мы с вами рассмотрим, как происходит присваивание значения переменной при помощи оператора ввода. Перейдём к рассмотрению ввода и вывода данных. Для ввода/вывода данных используются стандартные процедуры Read и Write. Давайте разберёмся более подробно.

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

Как говорилось ранее для ввода данных используется операция Read, которая при переводе с английского обозначает «читать». То есть при помощи этой операции происходит чтение данных с внешнего устройства. Для вывода информации используется операция Write, которая обозначает «писать», то есть запись данных на внешнее устройство.

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

Все данные на внешних устройствах организованы в файлы.

Файл, для внешних запоминающих устройств (ВЗУ) – это поименованная область памяти запоминающего устройства. С файлами можно производить операции записи и считывания при помощи уже известных вам операций. На одном внешнем запоминающем устройстве может храниться большое количество файлов, ограничение которых связано с объёмом памяти самого устройства. Правила именования файлов на запоминающий устройствах определяются операционной системой. Если же файл создаёт пользователь, то, соответственно, он же и задаёт имя файла.

Устройства ввода с клавиатуры и вывода на экран монитора являются однофайловыми устройствами. Операция ввода означает перепись данных с внешнего устройства (из входного файла Input) в основную память ЭВМ.

В свою очередь операция вывода – это пересылка данных из основной памяти на внешнее устройство (в выходной файл Output).

Читайте также:
Программа чтобы отделить звук от видео

Для ввода данных с клавиатуры необходимо обратиться к стандартной процедуре Read. Её нужно записывать в следующем формате:

Сначала записывается служебное слово Read, а далее в скобках идёт список ввода. То есть перечисляются имена переменных, которые нужно ввести.

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

Давайте разберёмся на примере: написать программу, при помощи которой нужно ввести с клавиатуры 3 целых числа.

Начинаем программу со слова program и имени программы, например, pr1.

Далее после служебного слова var объявим три переменных, например, a, b, c, которые будут целого типа – integer. Затем начинаем нашу программу при помощи служебного слова begin. После него запишем команду ввода – Read, а в скобках через запятую запишем все наши переменные. Завершаем программу словом end с точкой.

При выполнении такой программы, когда компьютер доходит до слова Read, происходит прерывание исполнения, после чего пользователь должен ввести необходимые данные, соответствующие типам переменных, отделяя друг от друга пробелами или нажимаю клавишу «Enter». Все вводимые переменные мы можем видеть на экране. Ввод заканчивается нажатием клавиши «Enter» после последнего элемента. Значения следует вводить в строгом соответствии с синтаксисом языка Pascal. То есть, если бы нам нужно было ввести переменные вещественного типа, то целую часть от дробной нужно разделять точкой, в обратном случае программа прервётся и выдаст ошибку.

Если в программе есть несколько подряд идущих операторов Read, то данные для них можно вводить последовательно, при этом отделяя пробелом. На экране они также будут отображаться. После ввода всех данных нужно нажать клавишу «Enter».

И снова давайте разберёмся на примере и посмотрим, как это работает.

Написать программу для ввода с клавиатуры двух вещественных и двух целых чисел.

Начало будет такое же, как и в предыдущем примере. Назовём программу pr2. Далее объявим все четыре переменных: a, b, c, d – 2 типа real, 2 – integer. После слова begin, запишем две операции Read. При помощи первой будем вводить данные a и b, при помощи второй – c и d. Запустим программу и введём все данные через пробел и нажимаем клавишу «Enter».

Есть ещё один варианта формы записи оператора ввода с клавиатуры:

Readln, далее в скобках список ввода.

Если у нас идут подряд несколько операторов Read, то все данные можно вводить через пробел. Если же у нас идёт несколько операторов Readln, то после ввода переменных первого оператора обязательно нужно нажать клавишу «Enter», а затем вводить значения для переменных второго оператора. То есть данные при выполнении следующего оператора ввода будут отражаться на экране с начала новой строки.

Давайте заменим во втором примере операцию Read на Readln и запустим программу.

При вводе данных вводим значения двух первых переменных через пробел, затем обязательно нажимаем клавишу «Enter» и снова вводим значения оставшихся переменных через пробел. Снова нажимаем «Enter».

А сейчас давайте рассмотрим операцию вывода на экран. Данная операция происходит при обращении к стандартной процедуре Write.

Записывается процедура Write, а затем список вывода. Элементами списка могут быть выражения различных типов, в том числе и константы или переменные.

Давайте напишем программу для вывода на экран произведения переменных a и b, которые равны 3 и 10 соответственно.

Снова пишем program и имя программы, например, pr3. Затем объявим наши переменных целочисленного типа. Далее, после служебного слова begin, присвоим переменной a значение 3, а переменной b – 10. При выводе на экран мы должны получить следующую фразу: «Произведение трёх и десяти равно тридцати».

Для того, чтобы вывести на экран слова, необходимо заключать их в одинарные кавычки, то есть мы должны записать так: Write, затем открываем скобку и одинарную кавычку, далее слово «Произведение» и пробел, закрываем одинарную кавычку, ставим запятую, пишем переменную a. Снова ставим запятую, открываем одинарную кавычку, ставим знак «+», закрываем кавычку, ставим запятую, пишем переменную b, снова ставим запятую, открывает одинарную кавычку, пишем знак «=», закрываем кавычку, ставим запятую и пишем a*b, которое программа посчитает автоматически. Закрываем скобку.

Основные методы ввода-вывода (I/O)

io input-output

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

I/O в аппаратном обеспечении

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

Читайте также:
Обзор программ для мака

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

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

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

I/O в программном обеспечении

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

Блокирующий метод

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

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

Неблокирующий метод

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

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

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

Мультеплексированный метод

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

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

Но что, если программе не нужно выполнять сложные вычисления? Ей просто нужно прочесть файл A и одновременно файл B. Пока ПО ожидает завершения обработки файла А, оно делает неблокирующий вызов чтения содержимого файла В. Во время ожидания обработки программе больше нечего делать, потому она входит в бесконечный цикл опроса, проверяя, готово ли A и готово ли B, снова и снова. Это либо нагрузит процессор проверками состояния ваших неблокирующих вызовов, либо вам придётся вручную добавить какое-то произвольное время, которое ваш поток будет «спать», а значит, программа немного позже заметит, что ввод-вывод готов, что отрицательно скажется на пропускной способности ПО.

Во избежание этого можно использовать мультиплексированный ввод-вывод. Он тоже блокирует поток на операциях ввода-вывода, но вместо того, чтобы производить блокировку по очереди, вы можете запланировать все операции ввода-вывода, которые вам нужно сделать, и блокировать их все. Операционная система разбудит поток, когда какая-нибудь из операций завершится. В некоторых реализациях мультиплексированного ввода-вывода можно даже точно указать, что вы хотите, чтобы поток разбудили, только когда заданный набор операций ввода-вывода будет завершён, например, когда файлы A и C, или файлы B и D будут готовы.

Таким образом ПО делает неблокирующий вызов чтения файла A, потом неблокирующий вызов чтения файла B, и наконец говорит ОС: усыпи мой поток, и разбуди его, когда A и B будут оба готовы, или когда один из них будет готов.

Читайте также:
Лучшая программа для чтения манги на Андроид на русском

Асинхронный метод

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

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

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

Многопоточность или однопоточность?

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

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

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

Источник: tproger.ru

13.2. Операторы присваивания и способы ввода данных Оператор присваивания

— выражение может быть арифметическим, логическим или строковым. Функционирование оператора — вычисляет выражение и присваивает его значение имени переменной. Переменная в левой части и выражение в правой части должны быть одного типа. Исключением является переменная типа Variant, которая принимает тип переменной, стоящей справа.

Примеры: s:= (a+b)*h/2 ; с:= d > 7.5

Способы ввода данных

1. Ввод данных с помощью оператора присваивания:

V=2.5 — таким образом, в ячейку V будет введено число 2.5

2. Ввод данных с помощью функция InputBox(), которая записывается в операторе присваивания. Синтаксис сокращенного представления функции :

Рис. 13.1. Диалоговое окно

Для ввода

Переменной V присваивается результат работы функции InputBox;

приглашение – обязательная текстовая переменная или константа.

Запишем фрагмент программы ввода:

Dim V As String

V= InputBox (“Введите слово”)

При работе функции выводится диалоговое окно с приглашением на ввод информации в текстовом поле (рис. 13.1). После ввода данных функция возвращает их как строчные данные. Если мы ввели строку Начало работы в 8.00, то переменной V будет присвоена эта строка.

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

Запишем фрагмент программы ввода:

Dim a As single

a= Val(inputBox( » Введите значение а «))

Синтаксис полного представления функции inputBox(), включает н

Рис. 13.2. Ввод числа 13.65

[ввод по умолчанию ] , [гориз. расположение окна ] , [верт. расположение окна ] , [помощь ] , [ контекст ].

3. Фрагмент программы ввода данных с помощью окна TextBox на форме (

Рис. 13.3. Ввод в окно TextBox

Dim a As single

a= Val(TextBox1.Text)

13.3. Способы вывода данных

  1. В Рис. 13.4. Окно отладки Immediate ывод переменной а в текстовое окно TextBox1 формы UserForm:

TextBox1.text= a

  1. Вывод переменной а в окно отладки Immediate (рис. 13.4).

Debug.Print «a left»> Синтаксис оператора:

Рис. 13.5. Окно MsgBox

ebug.Print [ список вывода с разделителями ] Debug – отладчик; Print – метод вывода в отладочное окно; разделители — , ;

Некоторые значения константы: 0 — вывод кнопки ОК; 1 — вывод кнопок ОК

и Отмена; 16 -значок об ошибке.

Рис.13.6. Окно MsgBox

апример, (рис. 13.6):

MsgBox » Значение а= » Вычисление длины «

ример 13.1. Линейная программа . Даны переменные а, с . Вычислить у=а+в. Вывести у с точностью до 2-х знаков после запятой с применением функции Format (рис. 13.7):

Private Sub CommandButton1_Click()

Dim a, b, y As Single

a = 223.2345: b = 3.45678

Источник: studfile.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru