Ввод данных с клавиатуры в Си
Для форматированного ввода данных в Си используется оператор scanf
Чтобы ввести записать информацию в переменную с клавиатуры в си с помощью оператора scanf необходимо указать сообщение и переменную, в которую будет записываться с клавиатуры значение
scanf (“формат ввода”,&имя переменной )
В формате ввода используется
%d ввод целого числа (переменная типа int)
%f ввод вещественного числа (переменная типа float)
%с ввод одного символа (переменная типа char)
Например:
scanf (“%d”, &a); // ввод с клавиатуры значения для целочисленной переменной a
Пример программы 3. Программа в си запрашивает ввод с клавиатуры двух целых чисел, выводит их сумму на экран
#include <stdio.h>
#include <conio.h>
main()
{
int a,b,c;
printf(«Введите первое целое число\n»);
scanf(«%d», &a); // ввод переменной a с клавиатуры
printf(«Введите второе целое число\n»);
scanf(«%d», &b); // ввод переменной b с клавиатуры
c=a+b; // присваиваем переменной с значение a+b
printf(«%d+%d= %d\n», a,b,c); // форматированный вывод выражения a+b =c
getch(); // ждем нажатия кнопки
}
Для ввода строки в си с помощью оператора scanf необходимо объявить строку и считать ее с помощью scanf()
char имя строки[ длина строки];
scanf(“%s”, имя строки);
Пример программы 4. Программа запрашивает ввод имени и отчества с клавиатуры и выводит на экран приветствие с обращением по имени и отчеству
#include <stdio.h>
#include <conio.h>
main()
{
char n[50];// объявляем строковую переменную n для имени
char sn[50];// объявляем строковую переменную sn для отчества
printf(«Как Ваше имя ?\n»);
scanf(«%s», n); // ввод строки n имени
printf(«Как Ваше отчество ?\n»);
scanf(«%s», sn);// ввод строки sn отчества
printf(«Здравствуйте, %s %s!\n», n, sn); // форматированный вывод Здравствуйте, n sn!
getch();
}
Вернуться к содержанию
Поделиться
Комментарии ()
Нет комментариев. Ваш будет первым!
Тесты с ответами по алгоритмизации для колледжей, ВУЗов. Будут полезны как для организации учебного процесса, тестирования по теме алгоритмизация, так и для подготовке студентов отдельно по выбранным темам упорядочено.
Ниже публикую уникальные Тесты с ответами по алгоритмизации, которые вы можете скачать бесплатно и без регистрации.
1. Первая версия языка Паскаль была разработана в.
а) 1968
2. В каком году были выпущены два пакета основанных на языке Паскаль: Borland Pascal 7.0 и Turbo Pascal 7.0.
а) 1992
3. Точное предписание, определяющее процесс перехода от исходных данных к результату.
а) алгоритм
4. Основные свойства алгоритма.
а) однозначность, массовость, результативность
5. Алгоритм решения задачи может быть представлен в виде.
а) блок — схемы
6. Идентификатор это — …
а) имя любого объекта языка
7. Переменная это-…
а) параметры программы, которые могут менять свое значение в процессе ее выполнения
8. Программирование – это…
а) процесс создания программы, который может быть представлен как последовательность шагов
9. Отладка — это …
а) процесс поиск и устранение ошибок в программе;
10. В качестве, каких цифр допустимо использовать 10 арабских цифр.
а) от 0 до 9
11. Какой геометрической фигурой обозначается условный блок в блок- схеме.
a) ромб
12.Что такое программа…
a) это последовательность команд, исполняемая ЭВМ
13. Алгоритм пользования междугородным телефоном.
«Можно говорить» -1; «Поднять трубку» -2; «Нажать кнопку переговоров» -3; «Набрать цифру 8» -4; «Ждать ответа абонента» -5; «Ждать непрерывного гудка» -6; «Набрать номер телефона абонента» — 7; «Набрать код нужного города» -8.
a) 24687531
14. Суть такого свойства алгоритма как массовость заключается в том, что:
a) алгоритм должен обеспечивать решение не одной конкретной задачи, а некоторого класса задач данного типа
15. Алгоритм включает в себя ветвление, если:
a) если ход его выполнения зависит от истинности тех или иных условий
16. Инструкция присваивания.
а) write
17. Инструкция, предназначенная для вывода на экран монитора.
а) write
18. Инструкция, предназначенная для ввода с клавиатуры значений переменных.
а) read
19. Условный оператор имеет вид.
а) IF<условие>THEN<оператор1>[ELSE<оператор2>];
20. Каким символом обозначаются комментарии в TURBO PASCAL.
a) {}
21. Раздел объявления переменных.
а) var
22. С какого слова начинается тело программы.
а) BEGIN;
23. В языке Pascal условие это…
а) Выражение логического типа.
24. При помощи, какой команды осуществляется компиляция программы.
а) Compile
25. Функция ln (x).
а) Натуральный логарифм значений величины
26. Инструкция Repeat используется если…
а) Когда нужно провести некоторые повторяющиеся вычисления
27. Программа, которая проверяет текст программы на отсутствие синтаксических ошибок.
а) компиляция
28. Каким свойством обладает алгоритм.
а) Однозначность
29. Выражение это…
а) Присваивание переменной
30. Какие типы переменных используются для обработки отдельных символов.
а) Longint
31. Какой тип данных описывает служебное слово Boolean.
а) логический
32. В блок-схеме, внутри символа (ромб) следует написать.
a) X>=Y
33. Каким символом заканчивается строка заголовка программы, написанной на языке Паскаль:
a) ;
34. Укажите правильный вариант описания переменных в программе, написанной на Паскаль:
a) var
a, b, c, k: real;
y: integer;
35. Какой из следующих операторов присваивания, используемых в теле программы, написанной на языке Паскаль, представлен без ошибок:
a) a:=b*c;
36. Какой из представленных ниже комментариев соответствуют правилам Паскаль:
a) {это комментарий};
37. Укажите этап, на котором устраняются синтаксические ошибки в программе:
a) отладка программы;
38. С какого зарезервированного слова начинается список подключаемых разработчиком программы библиотек в тексте программы:
a) uses;
39. Что понимается под алфавитом языка Паскаль:
a) совокупность допустимых символов;
40. Укажите группу зарезервированных слов на языке Паскаль:
a) program, var, const, begin, end;
41. С какого зарезервированного слова начинается раздел описания констант в тексте программы:
a) const;
42. Какой оператор не относится к группе операторов ввода – вывода языка Паскаль:
a) PrintLN;
43. Какой тип циклов не существует в языке Паскаль:
a) GPR;
44. В каком из условных операторов допущена синтаксическая ошибка:
a) if B=0 then Writeln (‘Деление на нуль невозможно’);
45. Какого раздела не существует в программе, написанной на языке Паскаль:
a) Примечание
46. Аргумент стандартной функции:
a) заключается в круглые скобки
47. В блок-схеме, внутри символа наклоненный квадрат следует написать:
a) Вывести X
48. Многократное исполнение одного и того же участка программы называется…
a) Циклом
49. Компилятор используется при программировании…
a) На языке машинных команд
50. Понятием «переменная» в традиционных языках программирования называется:
a) Именованная область памяти, в которой хранится некоторое значение;
51. Процесс устранения ошибок в программе принято называть…
a) Отладкой;
52. В чем заключается основное отличие компиляторов от интерпретаторов?
a) Компиляторы генерируют целевой код, а интерпретаторы – нет;
53. Оператор write (вывод на экран) на блок-схеме отображается в виде…
a) Овала
54. В любом языке программирования отсутствуют выражения
a) Физические
55. Символом круг обозначается:
a) Начало алгоритма
56. Что обозначается шестиугольником в блок- схеме:
a) цикл с параметром
57. Какой фирмой была создана последняя версия 7.0
а) Borland;
58. Операция div выполняет следующие действия:
a) целочисленное деление
59. Инструкция CASE позволяет.
a) позволяет реализовать множественный выбор
60. Многократное использование одного и того же участка программы называется…
a) Циклом
61. Служебное слово LABEL в программе на языке Паскаль фиксирует:
a)начало раздела программы, содержащего список меток
62. Чтобы перевести курсор в любое место экрана необходимо использовать процедуру
a) go to xy (m.n).
63. Процесс перехода от инструкции функции к инструкции программы называется?
а) возврат из функции
64. Последовательность инструкции имеющее имя и результат это…
а) Функция
65. Рекурсия — это способ организации вычислительного процесса, при котором происходит…
a) Удаление подпрограммой самой себя
66. Основные функции Турбо Паскаль:
а) стандартные фунции, функции программиста, библиотечные функции.
67. Параметры, определяемые при описании процедуры или функции:
а) формальные параметры
68. Параметры, задаваемые при вызове процедуры или функции:
а) фактические параметры
69. Переменные, объявленные в основной программе:
а) глобальные переменные
70. Переменные, объявленные в процедуре или функции программиста:
а) локальные переменные
71. Зарезервированное слово языка Паскаль, обозначающее, что далее следует объявление процедуры:
а) procedure
72. Имя имеющая последовательность инструкции, предназначенная для решения определенной задачи:
а) процедура
73. Массив это…
а) Набор переменных одинакового типа
74. Максимальная длина строки равна:
a) 255 символов
75. Укажите правильное обращение к элементу одномерного массива а:
a) a
76. Какого типа может быть массив:
a) любого
77. Отметьте не правильное обращение к полям записи:
a) A. Fam.name.age
78. Служебное слово Record используется для:
a) Описания типа записи;
79. Для описания массива используется служебное слово:
a) Array of. ;
80. Что такое массив?
а) это структура данных, которую можно рассматривать как набор переменных одинакового типа и имеющих общее имя.
81. Под сортировкой массива подразумевается?
а) Процесс перестановки элементов.
82. Действие не относящиеся к типичным действиям массива:
а) Обработка массива;
88. Укажите правильный метод сортировки массива:
а) метод прямого выбора;
89. Укажите правильное обращение к элементу двумерному массива а:
a) a [1..5];
90. Ключевое слово обозначение символьного типа:
a) Char;
Урок № Дата:
Тема урока: Операторы ввода-вывода, оператор присваивания.
Задача урока: Обеспечить прочное, сознательное овладение учащимися основами знаний о работе операторов ввода-вывода, присваивания.
Цели урока:
- Развить мышление учащихся;
- Способствовать приобретению навыков сознательного и рационального использования компьютеров в учебной и производственной деятельности;
- Способствовать развитию информационной культуры учащихся.
Тип урока: изучение нового материала.
Методы: объяснительно-иллюстративный, репродуктивный, частично-поисковый.
Ход урока:
- Организационный момент: приветствие, психологический настрой.
Здравствуйте, дорогие ребята!
На предыдущих занятиях мы с вами познакомились с оболочкой программирования Паскаль, а также со структурой Паскаль-программы. Сегодня у нас новая тема «Операторы ввода-вывода, оператор присваивания».
- Актуализация знаний: проверка домашнего задания
- Изложение теоретических знаний:
Понятие переменной
Это центральное в любом языке программирования. Для описания переменной (величины, которая изменяется в процессе работы программы) следует указать имя переменной, ее тип и значение. Следует соблюдать следующий принцип: «Использовать переменную можно лишь тогда, когда она описана и ей присвоено некоторое значение». Это позволит Вам избежать многочисленных ошибок в работе программ.
Величина – это объект, который имеет имя и значение определенного типа.
Константа – это постоянная величина, значение которой не изменяется в процессе работы программы. Значение константы определяет сам программист. Переменная – величина, которая в процессе выполнения программы может менять свое значение по необходимости.
Команда присваивания используется для изменения значений переменных. В языке Паскаль эта команда обозначается так:
<имя переменной>:=<выражение>
При этом значение выражения из правой части команды присваивания заменяет текущее значение переменной из левой части. Тип значение выражения должен совпадать с типом переменной.
Пример:
а:=2; b:=8;
S:=а+b;
После выполненных последовательно данных трех команд переменная S принимает значение равное 10.
Команды вывода на экран текста или (и) значения переменных
WRITE ( ); — выводит на экран, указанные в скобках параметры, курсор остается в этой же строке.
WRITELN ( ); — выводит на экран, указанные в скобках параметры, после вывода курсор переходит в начало следующей строки экрана.
В качестве параметров в круглых скобках может быть указан текст сообщения (текст записывается в апострофах ‘ ‘) и имя переменной (записывается без апострофов), значение которой нужно вывести. Между выводимыми элементами ставится запятая.
Команда WRITELN; без параметров только переводит курсор в начало следующей строки экрана.
Примеры
Writeln(‘Мне16лет’); На экране появится: Мне 16 лет
a:=11;
Writeln(‘Я учусь в ‘, а,’ классе’); На экране появится: Я учусь в 11 классе
х:=3;у:=6;
Writeln(х+у,’ рублей’); На экране появится: 9 рублей
Если в одной команде выводится несколько чисел подряд, то чтобы числа не сливались в одну строку, необходимо выводить между ними пробел ‘ ‘ или указывать количество позиций выделяемых под это число.
Пример
а:=1; b:=2; с:=3;
Writeln (а, b, с);
Writeln(а,’ ‘, b ,’ ‘, с);
Writeln(a:3, b:3, c:3);
{Число, указанное после двоеточия, (в нашем примере это 3) обозначает количество позиций выделяемых под вывод значения переменной. Если переменная занимает меньше позиций, то в оставшихся позициях перед значением переменной выводятся пробелы}
На экране появится:
123
1 2 3
1 2 3
Задача. Найти сумму двух чисел
Program N1;
Var а, b: Integer; {переменные а и b целого типа}
S: Longint; {переменная S типа длинное целое}
Веgin
а:=7; {присваивание значения первому числу а}
b:=4; {присваивание значения второму числу b}
S:=а+b; {вычисление суммы S чисел а и b}
{вывод результата работы программы на экран}
Writeln (‘ сумма ‘, а ,’ и ‘, b ,’ равна ‘, S);
End.
Команда ввода (считывания) с клавиатуры значения переменных во время работы программы
READ ( ); или READLN ( ); — считываетв перечисленные в скобках переменные значения, введенные с клавиатуры (через пробел или после каждого значения нажимают Enter) Если значения вводились через пробел, то после ввода следует нажать Enter.
В качестве параметров в круглых скобках через запятую указываются имена переменных, значения которых считываются.
При работе с простыми переменными рекомендуется использовать команду Readln ( );
Перед каждой командой ввода рекомендуется выводить на экран поясняющий текст с информацией о том, что именно нужно ввести.
Пример. Запросить с клавиатуры значение переменной а.
Var a : Integer;
…
Write (‘a=’);
Readln(а);
На экране появится а= и после знака равно будет мигать курсор в ожидании ввода с клавиатуры целого числа. После ввода числа необходимо нажать Enter.
Для того, чтобы не переходить к окну с результатами работы программы (Alt+F5) после запуска программы на выполнение, последней командой в любой программе перед End. записывается команда Readln; (Программа ждет нажатия Enter).
Задача. Найти произведение двух чисел.
Program N2;
Var a, b :Integer;
p: Longint;
Begin
Writeln(‘ Введите два числа ‘);
Readln(а,b);
р:=а*b;
Writeln (‘ произведение ‘, а ,’ и ‘, b ,’ равно’, р);
Readln;
End.
- Практическое решение задач на компьютерах.
Операторы ввода-вывода встречаются в каждой программе, так как позволяют ввести необходимые для работы программы, данные с клавиатуры, из текстового файла или вывести на экран, в текстовый файл ответы, полученный в ходе выполнения программы.
Рассмотрим следующий пример.
1.Написать программу приветствия и запроса даты рождения.
Var a,b,c: integer; {Переменные для даты рождения}
Name: string; {Переменная для имени}
BEGIN
Writeln (‘Привет. Как тебя зовут?’);
Readln (name);
Writeln (‘Введи день рождения’);
Readln (a);
Writeln (‘Введи месяц рождения’);
Readln (b);
Writeln (‘Введи год рождения’);
Readln (с);
Write (‘Тебя зовут – ’ , name, ‘. Ты родился: ’, a, ‘.’,b, ‘.’,c);
Readln;
END.
2, Какие значения приобретут переменные а, b и с после выполнения следующих операторов, если начальные значения а=1, b=2, с=39. Как изменится результат, если в приведенном фрагменте последний оператор переставить на первое место?
a:=b;
b:=c;
c:=a;
3,Найти и исправить все ошибки, допущенные в этой программе. Запишите программу без ошибок.
Program Task 8;
Var a; b; c: Integer;
Begin
Writeln (‘ Введите число’, а);
Readln(a)
b=5
c:=ab;
Writeln(‘ произведение ’a и b ’ равно ’,S);
Readln(a);
End
- Подведение итогов.
Итак, сегодня мы познакомились с операторами ввода-вывода и присваивания.
Ребята, что нужно помнить при решении задач с использованием операторов ввода-вывода? А оператора присваивания?
При решении задач с использованием оператора ввода следует помнить, что:
- для ввода с клавиатуры во время работы программы исходных данных (значений переменных) предназначена инструкция readln;
- используя одну инструкцию readln, можно ввести значения нескольких переменных;
При решении задач с использованием оператора вывода следует помнить, что:
- инструкции write и writein предназначены для вывода на экран монитора сообщений и значений переменных;
- одна инструкция write (writein) может вывести на экран значения нескольких переменных и (или) несколько сообщений;
- инструкция writein без параметров переводит курсор в начало следующей строки экрана.
При решении задач с использованием оператора присваивания следует помнить, что:
- инструкция присваивания используется для изменения значений переменных, в том числе и для вычислений по формулам;
- тип выражения, находящегося в правой части инструкции присваивания, должен соответствовать типу переменной, имя которой стоит слева от символа инструкции присваивания (при нарушении соответствия типа переменной и выражения компилятор выводит сообщение об ошибке Type miss match — несоответствие типов).
А теперь запишите домашнее задание:
Задача 1. Написать программу, которая выводит на экран четверостишие:
Унылая пора! Очей очарованье!
Приятна мне твоя прощальная краса —
Люблю я пышное природы увяданье,
В багрец и золото одетые леса.
А. С. Пушкин
Приложения
Раздаточный материал
Для рассмотрения операторов ввода-вывода
|
Var a,b,c: integer; {Переменные для даты рождения} Name: string; {Переменная для имени} BEGIN Writeln (‘Привет. Как тебя зовут?’); Readln (name); Writeln (‘Введи день рождения’); Readln (a); Writeln (‘Введи месяц рождения’); Readln (b); Writeln (‘Введи год рождения’); Readln (с); Write (‘Тебя зовут – ’ , name, ‘. Ты родился: ’, a, ‘.’,b, ‘.’,c); Readln; END. |
|
Var a,b,c: integer; {Переменные для даты рождения} Name: string; {Переменная для имени} BEGIN Writeln (‘Привет. Как тебя зовут?’); Readln (name); Writeln (‘Введи день рождения’); Readln (a); Writeln (‘Введи месяц рождения’); Readln (b); Writeln (‘Введи год рождения’); Readln (с); Write (‘Тебя зовут – ’ , name, ‘. Ты родился: ’, a, ‘.’,b, ‘.’,c); Readln; END. |
|
Var a,b,c: integer; {Переменные для даты рождения} Name: string; {Переменная для имени} BEGIN Writeln (‘Привет. Как тебя зовут?’); Readln (name); Writeln (‘Введи день рождения’); Readln (a); Writeln (‘Введи месяц рождения’); Readln (b); Writeln (‘Введи год рождения’); Readln (с); Write (‘Тебя зовут – ’ , name, ‘. Ты родился: ’, a, ‘.’,b, ‘.’,c); Readln; END. |
Для рассмотрения оператора присваивания
|
Var f,x: real; BEGIN Writeln (‘Введите значение х’); Readln (х); f:=- 2,7*x*х+0,23*x-1,4 Writeln (‘Значение функции f равно ’, f:0:2); Readln; END. |
|
Var f,x: real; BEGIN Writeln (‘Введите значение х’); Readln (х); f:=- 2,7*x*х+0,23*x-1,4 Writeln (‘Значение функции f равно ’, f:0:2); Readln; END. |
|
Var f,x: real; BEGIN Writeln (‘Введите значение х’); Readln (х); f:=- 2,7*x*х+0,23*x-1,4 Writeln (‘Значение функции f равно ’, f:0:2); Readln; END. |
|
Var f,x: real; BEGIN Writeln (‘Введите значение х’); Readln (х); f:=- 2,7*x*х+0,23*x-1,4 Writeln (‘Значение функции f равно ’, f:0:2); Readln; END. |
|
Var f,x: real; BEGIN Writeln (‘Введите значение х’); Readln (х); f:=- 2,7*x*х+0,23*x-1,4 Writeln (‘Значение функции f равно ’, f:0:2); Readln; END. |
Решение домашнего задания
Задача 1.
begin
writeln(‘Унылая пора! Очей очарованье!’);
writeln(‘Приятна мне твоя прощальная пора.’);
writeln(‘Люблю я пышное природы увяданье,’);
writeln{‘В багрец и золото одетые леса.1); writeln;
writeln(‘ А.С.Пушкин’);
readln;
end.
Светило науки — 6 ответов — 0 раз оказано помощи
Ответ:
1
Serial.write ()
Записывает двоичные данные в последовательный порт. Эти данные отправляются в виде байта или серии байтов; чтобы отправить символы, представляющие цифры номера, используйте вместо этого функцию print ().
Serial.print ()
Печатает данные на последовательный порт в виде удобочитаемого текста ASCII.
2
Тег <input> является одним из разносторонних элементов формы и позволяет создавать разные элементы интерфейса и обеспечить взаимодействие с пользователем.
Инструкция read предназначена для ввода с клавиатуры значений переменных (исходных данных). … Программа приостанавливает свою работу и ждет, пока на клавиатуре будут набраны нужные данные и нажата клавиша <Enter>.
3
Системный вызов close — это системный вызов, используемый ядром для закрытия файлового дескриптора. Для большинства файловых систем программа завершает доступ к файлу в файловой системе, используя системный вызов close. Это очищает файловые буферы, обновляет метаданные файлов, которые могут включать в себя индикатор конца файла в данных; освобождает ресурсы, связанные с файлом (включая дескриптор файла), и обновляет общесистемную таблицу используемых файлов. Некоторые языки программирования поддерживают структуру данных файлов, открываемых их библиотекой времени выполнения, и могут закрыться при завершении программы. Эта практика известна как инициализация получения ресурсов (RAII). Некоторые операционные системы будут вызывать закрытие файлов, хранящихся в программе, если она завершается. Некоторые операционные системы вызывают системный вызов close как часть восстановления операционной системы в результате сбоя системы
Компьютерные программы обрабатывают (изменяют) различные данные. Программа получает данные, что-то делает с ними и выводит их в измененной форме или выводит другие данные.
Следовательно, любой язык программирования должен иметь инструменты как для ввода данных, так и их вывода. В Паскале ввод осуществляется с помощью процедур read и readln, а вывод — благодаря write и writeln. Процедуры, которые имеют окончание ln, после своего выполнения переводят указатель на новую строку.
Откуда или с помощью чего можно ввести данные в программу? Обычно это можно сделать с помощью клавиатуры или из файлов.
Куда можно вывести данные? На экран, в файл, на принтер, передать по сети.
Стандартным устройством ввода является клавиатура, а вывода — монитор. Стандартные — значит «работающие по-умолчанию»; то есть если не указано ничего иного, то программа будет считывать данные с клавиатуры, а выводить их на монитор. Вместе клавиатуру и монитор называют консолью. Таким образом консоль представляет собой стандартное устройство ввода-вывода.
Вывод данных на экран. Форматированный вывод
Вывод данных на экран и в файл в языке программирования Pascal осуществляется с помощью процедур write и writeln. Здесь будет рассмотрен вывод только на экран.
Допустим, нам требуется отобразить на экране пару фраз. Если мы хотим, чтобы каждая из них начиналась с новой строки, следует использовать writeln, если нет – то write.
Write нередко используется, когда надо вывести для пользователя сообщение на экран, после чего получить данные, не переводя курсора на новую строку. Например, выводим на экран "Введи число: " и не переводим курсор на новую строку, а ждем ввода.
Еще один пример. В памяти компьютера хранятся данные. Из программы мы обращаемся к ним с помощью переменных num, fl и st. Вывести их значения на экран можно по-разному.
Во втором случае мы видим, что процедуры вывода, как write, так и writeln, позволяют конструировать выводимую информацию из различных частей (строковых литералов и переменных).
В третьем случае был осуществлен так называемый форматированный вывод. При этом для выводимого значения указывается ширина поля вывода (количество знакомест). Если мы выводим дробное значение, то вторым числом через двоеточие указывается количество знаков после запятой. Если для вещественных чисел не осуществлять форматирование, то они отобразятся так, как определено для данного компьютера. Если указать только число знакомест без фиксирования дробной части, то вывод будет в экспоненциальной форме.
Ввод данных с клавиатуры
Ввод данных в языке программирования Паскаль обеспечивается процедурами read и readln. Ввод данных осуществляется либо с клавиатуры, либо из файла. Здесь рассматривается только ввод с клавиатуры.
Когда данные вводятся, то они помещаются в ячейки памяти, доступ к которым обеспечивается с помощью механизма переменных. Поэтому, когда в программе на Pascal используется процедура read или readln, то в качестве фактического параметра (аргумента) ей передается имя переменной, которая будет связана с вводимыми данными. Потом эти данные можно будет использовать в программе или просто вывести на экран.
В процедуры ввода можно передавать не один фактический параметр, а множество.
При вводе данных их разделяют пробелом, табуляцией или переходом на новую строку (Enter). Данные символьного типа не разделяются или разделяются переходом на новую строку.
Существуют особенности ввода данных с помощью операторов read и readln. Если используются подряд несколько read, то вводимые данные можно разделять всеми допустимыми способами. При использовании нескольких вызовов readln каждый последующий срабатывает только после нажатия Enter. Программа ниже иллюстрирует это. Комментарии поясняют последовательность возможных действий при вводе данных.
var
a, b, c, d: integer;
begin
read(a); // a -> Пробел или Tab или Enter -> b
read(b);
writeln(a, ' ', b);
readln(c); // c -> только Enter -> d
readln(d);
writeln(c, ' ', d);
read(a, b); // a -> Пробел или Tab или Enter -> b
writeln(a, ' ', b);
readln(c, d); // c -> Пробел или Tab или Enter -> d
writeln(c, ' ', d);
end.
Ввод данных — это передача информации от внешних устройств в оперативную память. Вводятся, как правило, исходные данные решаемой задачи.
Ввод исходных данных, над которыми должны выполняться преобразования в программе, можно организовать различными способами.
Рассмотрим эти способы.
Ввод с клавиатуры
Процедура ввода с клавиатуры имеет следующий формат:
Read (<список ввода>);
Здесь <список ввода> — это последовательность имен переменных, разделенных запятыми, a Read (читать) — оператор обращения к стандартной процедуре ввода. Например:
Read (а, b, с, d);
При выполнении этого оператора работа компьютера прерывается, после чего пользователь набирает на клавиатуре значения переменных а, b, с, d, отделяя их друг от друга пробелами. При этом вводимые значения высвечиваются на экране. В конце набора нажимают клавишу <Enter>: Ввод значений должен выполняться в строгом соответствии с синтаксисом языка Паскаль.
Например, при выполнении ввода в программе
Var T : Real; J: Integer; К: Char; Begin Read (T, J, K); на клавиатуре следует набрать 253.98 100 G [Enter].
Если в программе имеется несколько операторов Read, то данные для них вводятся потоком, т.е. после считывания значений переменных для одного оператора Read данные для следующего оператора до окончания строки считываются из той же строки на экране, что и для предыдущего затем происходит переход на следующую строку. Например, при выполнении ввода в программе
Var А, В : Integer; С, D : Real; Begin Read(А, В); Read(С, D); на клавиатуре следует набрать 18758 34[Enter] 2.62Е-02 1.54Е+01[Enter]. Оператор ввода с клавиатуры также может иметь вид: Readln (<список ввода>);
Здесь ReadLn (от read line) — считать строку. В отличие от оператора Read после считывания последнего в списке значений для одного оператора ReadLn данные для следующего оператора ReadLn будут считываться с начала новой строки. Если в предыдущем примере заменить оператор Read на ReadLn, т.е. записать
ReadLn(А, В); ReadLn(С, D); ввод значений будет происходить из двух строк: 18758 34 [Enter] 2.62Е-02 1.54Е+01 [Enter]
Эти операторы позволяют выполнять программу с различными значениями исходных данных.
Данные логического типа вводить с клавиатуры нельзя.
Ввод с помощью константы
В разделе объявления констант происходит одновременное определение типа данных и их значений:
Const <имя>=<значение>; {именованная} или Const <имя>:<тип>=<значение>; {типизированная}
Типизированная константа в отличие от простой константы может изменять свое значение в программе.
Пример. program post; const h=7; {константа целого типа} y=5.87; {константа вещественного типа} x:real=6.98799; {типизированная константа} t='*'; {константа символьного типа} r='информатика'; {константа строкового типа} n:boolean=false; {константа логического типа} begin x:=x+h*y; end.
Ввод с помощью оператора присваивания
Оператор присваивания (:=) является основным оператором языка; он предназначен для изменения значения данных. Его обобщенный вид:
<переменная>:=<значение>;
при этом тип переменной и тип значения должны совпадать.
Пример. program prisv; var y: integer; k,x: real; v: char; s: string; log: boolean; begin y:=4+188; k:=6.8; x:=6.767Е-02-k; v:='*'; log:=true; s:='информатика'; end.
Обратите внимание: каждое объявление и каждый оператор заканчиваются знаком «;».
Ввод с помощью датчика случайных чисел
Датчик случайных чисел используется в программах для генерации случайных значений.
Для того, чтобы в результате всегда выводились разные случайные числа в начале программы, вызывается стандартная процедура Randomize.
Затем в разделе операторов вызывается функция Random или Random (Р), где P – целое число.
Например:
Х:=random(40);
Y:=random;
В этом случае переменная Х примет в качестве своего значения целое случайное число в диапазоне от 0 до 39, а переменная Y – случайное число в диапазоне от 0 до 1.
Пример. program datchik; var a: integer; b,c: real; begin randomize; a:=random(20); b:=10*random; c:=random; end.





