Лекция №5 - Форум Регистрация Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Лекция №5
inqusiionДата: Четверг, 07.04.2011, 16:11 | Сообщение # 1
Лейтенант
Группа: Администраторы
Сообщений: 47
Награды: 0
Репутация: 0
Статус: Offline
Решение самой простой задачи на ЭВМ не обходится без процедур ввода-вывода информации. Ввод данных - это передача информации от внешнего носителя в оперативную память для обработки. Вывод данных - процесс передачи информации после обработки из оперативной памяти на внешний носитель. Внешним носителем может быть дисплей, принтер, плоттер (графопостроитель), дискета, винчестер, магнитная лента и т.д.
В языке ТР стандартным средством общения человека и ЭВМ являются предопределенные файлы Input и Output, которые по умолчанию являются параметрами программы. Программа получает входные данные из файла Input и помещает результат обработки в файл Output. Стандартно файлу Input назначена клавиатура, а файлу Output - экран монитора.
Для выполнения операций ввода-вывода в языке ТР имеются четыре процедуры: read, readln, write и writeln.
Процедура чтения read обеспечивает ввод числовых данных, символов, строк и т.д. для их обработки программой.

Формат записи:
read (х1, х2, ... , хn);
или
read (FV, x1, x2, ... , xn);,
где x1, ... ,xn - переменные допустимых типов данных;
FV - переменная, связанная с файлом, откуда будет выполнятся чтение.
После прочтения процедуры read программа приостанавливается и ЭВМ ожидает ввода данных. Значения х1, ... хn набираются минимум через один пробел. После набора данных для одной процедуры read нажимается клавиша ввода. Значения переменных должны вводится в строгом соответствии с синтаксисом языка ТР. При нарушении синтаксиса возникают ошибки ввода-вывода. Сообщение об ошибке имеет вид: I/O error NN, где NN - код ошибки. Пояснительный текст поможет определить причину программного прерывания.
Пример.
Var
i: integer;
r: real;
c: char;
Begin
read(i, r, c); {ввод данных}

 
СообщениеРешение самой простой задачи на ЭВМ не обходится без процедур ввода-вывода информации. Ввод данных - это передача информации от внешнего носителя в оперативную память для обработки. Вывод данных - процесс передачи информации после обработки из оперативной памяти на внешний носитель. Внешним носителем может быть дисплей, принтер, плоттер (графопостроитель), дискета, винчестер, магнитная лента и т.д.
В языке ТР стандартным средством общения человека и ЭВМ являются предопределенные файлы Input и Output, которые по умолчанию являются параметрами программы. Программа получает входные данные из файла Input и помещает результат обработки в файл Output. Стандартно файлу Input назначена клавиатура, а файлу Output - экран монитора.
Для выполнения операций ввода-вывода в языке ТР имеются четыре процедуры: read, readln, write и writeln.
Процедура чтения read обеспечивает ввод числовых данных, символов, строк и т.д. для их обработки программой.

Формат записи:
read (х1, х2, ... , хn);
или
read (FV, x1, x2, ... , xn);,
где x1, ... ,xn - переменные допустимых типов данных;
FV - переменная, связанная с файлом, откуда будет выполнятся чтение.
После прочтения процедуры read программа приостанавливается и ЭВМ ожидает ввода данных. Значения х1, ... хn набираются минимум через один пробел. После набора данных для одной процедуры read нажимается клавиша ввода. Значения переменных должны вводится в строгом соответствии с синтаксисом языка ТР. При нарушении синтаксиса возникают ошибки ввода-вывода. Сообщение об ошибке имеет вид: I/O error NN, где NN - код ошибки. Пояснительный текст поможет определить причину программного прерывания.
Пример.
Var
i: integer;
r: real;
c: char;
Begin
read(i, r, c); {ввод данных}


Автор - inqusiion
Дата добавления - 07.04.2011 в 16:11
inqusiionДата: Четверг, 07.04.2011, 16:11 | Сообщение # 2
Лейтенант
Группа: Администраторы
Сообщений: 47
Награды: 0
Репутация: 0
Статус: Offline
....
Верный ввод:
156 67.98 'h'

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

Пример.
...
read (a, b);
read (c, d);
...
С клавиатуры набираем:
1254 32.5 <Enter> 547 -5.169 <Enter>

На экране это будет выглядеть так:
1254 2.5 547 -5.169.
Процедура чтения readln аналогична процедуре read, единственное отличие заключается в том, что после считывания последнего значения переменной из списка, указанного в процедуре readln, курсор переводится на начало новой строки.
Пример.
...
readln (a, b);
readln (c, d);
...
С клавиатуры набираем:
1254 32.5 <Enter> 547 -5.169 <Enter>

На экране это будет выглядеть так:
1254 32.5
547 -5.169.

 
Сообщение....
Верный ввод:
156 67.98 'h'

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

Пример.
...
read (a, b);
read (c, d);
...
С клавиатуры набираем:
1254 32.5 <Enter> 547 -5.169 <Enter>

На экране это будет выглядеть так:
1254 2.5 547 -5.169.
Процедура чтения readln аналогична процедуре read, единственное отличие заключается в том, что после считывания последнего значения переменной из списка, указанного в процедуре readln, курсор переводится на начало новой строки.
Пример.
...
readln (a, b);
readln (c, d);
...
С клавиатуры набираем:
1254 32.5 <Enter> 547 -5.169 <Enter>

На экране это будет выглядеть так:
1254 32.5
547 -5.169.


Автор - inqusiion
Дата добавления - 07.04.2011 в 16:11
inqusiionДата: Четверг, 07.04.2011, 16:12 | Сообщение # 3
Лейтенант
Группа: Администраторы
Сообщений: 47
Награды: 0
Репутация: 0
Статус: Offline
Процедура записи write производит вывод числовых данных, символов, строк и булевских значений.

Формат записи:
write (Y1, Y2, ... ,Yn);
или
write (FV, Y1, Y2, ... , Yn);

где Y1, Y2, ... , Yn - выражения типа integer, byte, real, char, boolean и т.д.
FV - имя файла, куда производится вывод. Например, для того, чтобы вывести данные на принтер FV равно Lst.

Пример.
write ( 248 ); { выводится число 248 }
write ( A-B*2 ); { выводится результат выражения }
write (Lst, ‘результат =', Y ); { вывод значения Y на принтер }

Процедура writeln аналогична процедуре write, но после вывода последнего в списке значения для текущей процедуры writeln происходит перевод курсора к началу следующей строки. Процедура writeln, записанная без параметров, вызывает перевод строки.
форматы вывода
В процедурах вывода write и writeln имеется возможность записывать выражение, определяя ширину поля вывода.
Для записи форматов, определим обозначения:
I, p, q целочисленное выражение;
R выражение вещественного типа;
B выражение булевского типа;
Ch выражение символьного типа;
S выражение строкового типа;
# цифра;
* знак "+" или "-";
_ пробел.

 
СообщениеПроцедура записи write производит вывод числовых данных, символов, строк и булевских значений.

Формат записи:
write (Y1, Y2, ... ,Yn);
или
write (FV, Y1, Y2, ... , Yn);

где Y1, Y2, ... , Yn - выражения типа integer, byte, real, char, boolean и т.д.
FV - имя файла, куда производится вывод. Например, для того, чтобы вывести данные на принтер FV равно Lst.

Пример.
write ( 248 ); { выводится число 248 }
write ( A-B*2 ); { выводится результат выражения }
write (Lst, ‘результат =', Y ); { вывод значения Y на принтер }

Процедура writeln аналогична процедуре write, но после вывода последнего в списке значения для текущей процедуры writeln происходит перевод курсора к началу следующей строки. Процедура writeln, записанная без параметров, вызывает перевод строки.
форматы вывода
В процедурах вывода write и writeln имеется возможность записывать выражение, определяя ширину поля вывода.
Для записи форматов, определим обозначения:
I, p, q целочисленное выражение;
R выражение вещественного типа;
B выражение булевского типа;
Ch выражение символьного типа;
S выражение строкового типа;
# цифра;
* знак "+" или "-";
_ пробел.


Автор - inqusiion
Дата добавления - 07.04.2011 в 16:12
inqusiionДата: Четверг, 07.04.2011, 16:12 | Сообщение # 4
Лейтенант
Группа: Администраторы
Сообщений: 47
Награды: 0
Репутация: 0
Статус: Offline
I - выводится десятичное представление величины I, начиная с позиции, в которой находится курсор.
Значение I Выражение Результат
345 write (I) 345
657 write (I, I, I) 657657657

I: p - выводится десятичное представление величины I в крайние правые позиции поля шириной p.
Значение I Выражение Результат
345 write (I: 5) _ _345
1 write (I: 10) _ _ _ _ _ _ _ _ _ 1
68 write (I+I: 6) _ _ _ _ 136

R - в поле шириной 18 символов выводится десятичное представление величины R в формате с плавающей точкой.
Если R >= 0.0, используется формат - _#.##########Е*##.
Если R <= 0.0, формат имеет вид _-#.##########Е*##.
Значение R Выражение Результат
345.76 write ® __3.4576000000E+02
-1.919E+01 write ® _-1.9190000000E+01
567.986 write (R/2) __2.8399300000E+02

R: p - в крайние правые позиции поля шириной р символов выводится десятичное представление значения R в формате с плавающей точкой.
Если R >= 0.0, используется формат _..._#.#...#Е*##, причем минимальная длина поля вывода составляет 7 символов.
Если R <= 0.0, формат имеет вид _..._-#.#...#Е*##. Минимальная длина поля вывода 8 символов. После десятичной точки выводится по крайней мере одна цифра.

Значение R Выражение Результат
345.87 write (R: 10) 3.4500E+02
-345.87 write (R: 10) -3.450E+02
-67.8 write (-R: 8) -6.780E+02

 
СообщениеI - выводится десятичное представление величины I, начиная с позиции, в которой находится курсор.
Значение I Выражение Результат
345 write (I) 345
657 write (I, I, I) 657657657

I: p - выводится десятичное представление величины I в крайние правые позиции поля шириной p.
Значение I Выражение Результат
345 write (I: 5) _ _345
1 write (I: 10) _ _ _ _ _ _ _ _ _ 1
68 write (I+I: 6) _ _ _ _ 136

R - в поле шириной 18 символов выводится десятичное представление величины R в формате с плавающей точкой.
Если R >= 0.0, используется формат - _#.##########Е*##.
Если R <= 0.0, формат имеет вид _-#.##########Е*##.
Значение R Выражение Результат
345.76 write ® __3.4576000000E+02
-1.919E+01 write ® _-1.9190000000E+01
567.986 write (R/2) __2.8399300000E+02

R: p - в крайние правые позиции поля шириной р символов выводится десятичное представление значения R в формате с плавающей точкой.
Если R >= 0.0, используется формат _..._#.#...#Е*##, причем минимальная длина поля вывода составляет 7 символов.
Если R <= 0.0, формат имеет вид _..._-#.#...#Е*##. Минимальная длина поля вывода 8 символов. После десятичной точки выводится по крайней мере одна цифра.

Значение R Выражение Результат
345.87 write (R: 10) 3.4500E+02
-345.87 write (R: 10) -3.450E+02
-67.8 write (-R: 8) -6.780E+02


Автор - inqusiion
Дата добавления - 07.04.2011 в 16:12
inqusiionДата: Четверг, 07.04.2011, 16:13 | Сообщение # 5
Лейтенант
Группа: Администраторы
Сообщений: 47
Награды: 0
Репутация: 0
Статус: Offline
R: p: q - в крайние правые позиции поля шириной р символов выводится десятичное представление значения R в формате с фиксированной точкой, причем после десятичной точки выводится q цифр (0<= q <=24), представляющих дробную часть числа. Если q=0, ни дробная часть, ни десятичная точка не выводятся. Если q > 24, то при выводе используется формат с плавающей точкой.
Значение R Выражение Результат
345.55 write (R: 8: 5) 345.5500
-45.67 write (R: 7: 2) _-45.67
-45.67 write (R: 9: 4) _-45.6700

Ch - начиная с позиции курсора выводится значение Ch.
Значение Ch Выражение Результат
'X' write (Ch) X
'Y' write (Ch) Y
'!’ write (Ch, Ch, Ch) !!!

Ch: p - в крайнюю правую позицию поля шириной р выводится значение Ch.
Значение Ch Выражение Результат
'X' write (Ch: 5) _ _ _ _X
'Y' write (Ch: 3) _ _ _Y
'!' write (Ch: 2, Ch: 3) _ !_ _!

S - начиная с позиции курсора выводится значение S (строка или массив символов, если его длина соответствует длине строки).
Значение S Выражение Результат
'book' write (S) book
'xxxyyy' write (S, S) xxxyyyxxxyyy

S: p - значение S выводится в крайние правые позиции поля шириной р символов.
Значение S Выражение Результат
'book' write (S: 5) _book
'xxxyyy' write (S: 7, S: 7) _xxxyyy_xxxyyy

B - выводится результат выражения B True или False, начиная с текущей позиции курсора.

 
СообщениеR: p: q - в крайние правые позиции поля шириной р символов выводится десятичное представление значения R в формате с фиксированной точкой, причем после десятичной точки выводится q цифр (0<= q <=24), представляющих дробную часть числа. Если q=0, ни дробная часть, ни десятичная точка не выводятся. Если q > 24, то при выводе используется формат с плавающей точкой.
Значение R Выражение Результат
345.55 write (R: 8: 5) 345.5500
-45.67 write (R: 7: 2) _-45.67
-45.67 write (R: 9: 4) _-45.6700

Ch - начиная с позиции курсора выводится значение Ch.
Значение Ch Выражение Результат
'X' write (Ch) X
'Y' write (Ch) Y
'!’ write (Ch, Ch, Ch) !!!

Ch: p - в крайнюю правую позицию поля шириной р выводится значение Ch.
Значение Ch Выражение Результат
'X' write (Ch: 5) _ _ _ _X
'Y' write (Ch: 3) _ _ _Y
'!' write (Ch: 2, Ch: 3) _ !_ _!

S - начиная с позиции курсора выводится значение S (строка или массив символов, если его длина соответствует длине строки).
Значение S Выражение Результат
'book' write (S) book
'xxxyyy' write (S, S) xxxyyyxxxyyy

S: p - значение S выводится в крайние правые позиции поля шириной р символов.
Значение S Выражение Результат
'book' write (S: 5) _book
'xxxyyy' write (S: 7, S: 7) _xxxyyy_xxxyyy

B - выводится результат выражения B True или False, начиная с текущей позиции курсора.


Автор - inqusiion
Дата добавления - 07.04.2011 в 16:13
inqusiionДата: Четверг, 07.04.2011, 16:14 | Сообщение # 6
Лейтенант
Группа: Администраторы
Сообщений: 47
Награды: 0
Репутация: 0
Статус: Offline
Значение В Выражение Результат
True write (B) True
False write (B, not cool FalseTrue

B: p - в крайние правые позиции поля шириной р символов выводится результат булевского выражения В True или False.
Значение В Выражение Результат
True write (B: 5) _True
False write (B: 7, not B: 7) __False__True

 
СообщениеЗначение В Выражение Результат
True write (B) True
False write (B, not cool FalseTrue

B: p - в крайние правые позиции поля шириной р символов выводится результат булевского выражения В True или False.
Значение В Выражение Результат
True write (B: 5) _True
False write (B: 7, not B: 7) __False__True


Автор - inqusiion
Дата добавления - 07.04.2011 в 16:14
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2024.