- •Билет 20 Объявление типов и использование имен типов для описания данных.
- •Процедуры вывода write и writeln. Управление форматом вывода числовых и текстовых величин.
- •Билет 21
- •Особенности использования массивов в качестве параметров процедур и функций.
- •Билет 22 Открытые и динамические массивы. Запрос и освобождение памяти во время работы программы.
- •Цикл repeat.
- •Билет 23 Раздел констант.
- •Типизированные "константы" в Паскале.
- •Присвоение переменным начальных значений.
- •Специфика Object Pascal.
- •Процедуры ввода read, readln
- •Билет 25 Управление форматом выводимых данных с помощью. Процедуры Format
- •Операторы цикла. Назначение операторов break и continue.
- •Билет 26 Управление файлами в стиле Windows. Управление файлами в стиле Windows
- •В чем разница между выборкой данных из текстового файла по операторам read и readln.
Процедуры ввода read, readln
Операторы ввода данных Read и Readln.
Программирование для начинающих – это подготовка и ввод исходных данных.
Для чтения данных из файлов и ввода с клавиатуры используются стандартные операторы Turbo Pascal Read и Readln. Они отличаются характером считывания данных. В случае чтения из файла, процедура Read считывает данные последовательно, значение за значением, а процедура Readln - построчно.
Программирование для начинающих – это анализ вводимых данных.
В случае ввода с клавиатуры последовательные процедуры Read могут считывать данные как из одной строки значений, так и из нескольких, а для каждой процедуры Readln значения считываются с новой строки (после нажатия клавиши ).
Проиллюстрируем это на примере. Предположим необходимо ввести с клавиатуры значения двух переменных (назовем их А и В) типа integer с использованием двух процедур Read: Read(А); Read(В).
Например, рассмотрим следующую последовательность нажатия клавиш для ввода данных:
12 100
Enter
12
Enter
100
Enter
12 Tab 100
Enter
Программирование для начинающих – это использование процедур ввода по назначению.
Другими словами, для последней процедуры Read ввод данных обязательно должен завершаться нажатием клавиши , а для первой - не обязательно, так как вторая процедура может продолжать считывать данные из той же строки введенных значений.
Заменим в этом примере процедуры Read на процедуры Readln: Readln(А); Readln(В); В этом случае при вводе данных, после каждого введенного значения, обязательно необходимо нажимать клавишу : 12 100. Это объясняется тем, что каждая процедура Readln считывает значения, с новой строки.
Программирование для начинающих – это ввода и вывод данных для файлов.
Процедуры Read и Readln имеют два формата записи. Первый используется при считывании данных из файлов: Read(f, a1,..,aN) - где f - это переменная, связанная с файлом, а a1..aN - список переменных, для которых считываются данные.
Подробно работа с файлами рассматривается в других разделах. Второй формат используется для ввода данных с клавиатуры: Read(a1,..,aN) – где a1,..,aN - список переменных, значения которых вводятся пользователем. Значения переменных должны вводиться в строгом соответствии с их типами.
Например, если переменная имеет тип integer, а вводится символьное значение, то будет выдано сообщение об ошибке ввода-вывода.
Билет 25 Управление форматом выводимых данных с помощью. Процедуры Format
Синтаксис
function Format(const Format: string; const Args: array of const): string;
Описание
Функция Format возвращает форматированную строку. Аргумент Format указывает, как формировать строку, используя аргументы из вариантного открытого массива Args. Строка Format копируется в результирующую строку, при этом разворачиваются спецификаторы формата, обозначенные знаком процента (%). Для того чтобы определить знак процента как литерал, повторите его: %%. Все спецификаторы формата имеют следующий синтаксис:
% [index :] [ - ] [~width] [.precision] type
index -это индекс в массиве Args, где первый аргумент обозначается нулем. Без указания индекса каждый спецификатор формата соответствует следующему элементу массива Args. Если указан индекс, можно несколько раз повторять один и тот же аргумент в одной строке формата. Планируя локализовать приложение, следует использовать спецификатор индекса для всех аргументов, т. к. в другом языке может потребоваться другой порядок аргументов.
width определяет минимальное количество символов для форматируемого поля. Если фактическая форматируемая величина меньше, чем width символов, она дополняется пробелами слева. Если перед width указан знак "минус", число выравнивается слева и дополняется пробелами справа.
Разные типы форматов по-разному используют precision. Подробности рассмотрены в описаниях каждого из форматов.
Можно жестко указать числовые значения index, width и precision в строке формата (например %1:10.2f) или использовать звездочку для любого или всех этих значений (например %*:*. * f). Тогда для данного значения будет использован следующий аргумент из массива Args. Значение Args должно быть целым.
Тип формата (type) обозначается одним символом в верхнем или нижнем регистре:
d
Форматирует десятичное целое со знаком. Precision определяет минимальное число выводимых цифр; по необходимости число дополняется нулями. Значение Args должно быть целым.
е Форматирует вещественное число в соответствии с экспоненциальной нотацией. Precision определяет общее число цифр в форматированной строке. По умолчанию равно 15. Значение Args должно быть числом с плавающей точкой или Currency.
f
Форматирует вещественное число в соответствии с фиксированной нотацией. Precision определяет количество цифр после десятичного разделителя. По умолчанию равно 2. Значение Args должно быть числом с плавающей точкой или Currency.
g
Форматирует вещественное число в соответствии с общей нотацией. Precision определяет количество значащих цифр. Значение Args должно быть числом с плавающей точкой или Currency.
m
Форматирует значение типа Currency. Precision определяет количество знаков после десятичной точки. Значение по умолчанию определяется переменной CurrencyDecimals, а формат валюты-переменными CurrencyFornat и NegCurrFormat. Значение Args должно быть числом с плавающей точкой или Currency.
n
Форматирует вещественное число в соответствии с числовой нотацией, т. е. по правилам фиксированной нотации с разделителем ThousandSeparator для групп из трех цифр. Значение Args должно быть числом с плавающей точкой или Currency.
р
Форматирует указатель как шестнадцатеричное число. Значение Args должно быть указателем.
s
Форматирует символ или строку. Precision определяет максимальное число выводимых символов. Значение Args должно иметь тип AnsiChar, AnsiString, PChar, PWideChar, ShortString, Variant или WideStririg. Тип WideChar не допускается. Variant преобразуется в строку и затем форматируется.
u
Форматирует целое десятичное число без знака. Precision определяет минимальное число выводимых десятичных цифр; число дополняется по необходимости нулями. Значение Args должно быть целым.
х
Форматирует шестнадцатеричное целое без знака. Регистр спецификатора типа определяет регистр символов шестнадцате-ричного числа. Precision определяет минимальное число выводимых цифр, при необходимости дополняется нулями. Значение Args должно быть целым.
Если строка формата содержит ошибки или если type не совпадает с типом соответствующего аргумента массива Args, Format генерирует исключительную ситуацию EConvertError.
function FormatBuf(var Buffer; BufLen: Cardinal; const Format; FmtLen: Cardinal; const Args: array of const): Cardinal;
Описание
Функция FormatBuf форматирует строку и записывает результат в Buffer. В 6iffer записывается не более BufLen символов, включая завершающий байт #0. Длина форматированной строки задается в FmtLen. Возвращается длина результирующей строки. Дополнительную информацию можно найти в описании функции Format.
function FormatCurr(const Format: string; Value: Currency): string;
Описание
Функция FormatCurr форматирует величину типа Currency в строку в соответствии с аргументом Format. Дополнительная информация приведена в описании функции FloatToTextFmt.
function FormatDateTime(const Format: string; DateTime: TDateTime): string;
Описание
Функция FormatDateTime форматирует дату и время в виде строки. Параметр Format подробно рассмотрен в описании функции DateTimeToString.
function FormatFloat(const Format: string; Value: Extended): string;
Описание
Функция FormatFloat форматирует число с плавающей точкой в строку в соответствии с аргументом Format. Дополнительные сведения содержатся в описании функции FloatToTextFmt.
