Как сделать проверку ввода на turbo pascal

Язык программирования TurboPascal

Файл – последовательность элементов одного типа, которой присвоено общее имя.

Количество элементов файла заранее не определяется. Максимальный размер файла, размещенного во внешней памяти, ограничивается лишь техническими возможностями вычислительной системы.

Различают дисковые файлы и логические устройства.

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

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

  • CON– консоль: при выводе данных соответствует экрану, при вводе – клавиатуре;
  • PRN– принтер;

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

Переход по элементам файла

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

В зависимости от способа представления информации различают три типа файлов:

  • типизированные файлы;
  • текстовые файлы;
  • нетипизированные файлы.

Текстовые файлы – это файлы, содержащие строки переменной длины. Доступ к каждой строке возможен лишь последовательно, начиная с первой. Одновременная запись и чтение запрещены.

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

Типизированные файлы

Типизированный файл – файл с объявленным типом элементов, т.е. файл с одной и той же структурой элементов.

В языке Турбо Паскаль ввод-вывод информации осуществляется через файловые переменные. Файловая переменная типизированного файла объявляется так:

1. Объявления в разделе переменных

Var
<имя файла>:file of ;<тип элементов>

2. Объявления в разделе типов

Работа с файлом включает:

  • инициализацию файловой переменной – установление связи файловой переменной с файлом операционной системы;
  • открытие файла – подготовку файла для выполнения операций ввода/ вывода;
  • обработку элементов файла – выполнение операций ввода-вывода;
  • закрытие файла.

Инициализация файловой переменной

В программе файл является переменной, называемой файловой переменной. Для установления связи между файловой переменной в программе и файлом операционной системы, используется стандартная процедура Assign .

Формат процедуры:

Assign(<имя файловой переменной>,<имя внешнего файла>),

здесь: имя внешнего файла – имя дискового файла, расположенного на внешнем носителе. Если файл находится в текущем каталоге, то достаточно указать имя файла и его расширение. В противном случае необходимо указать полное имя файла.

Пример

Установление соответствия между файловой переменной и дисковым файлом операционной системы означает, что все операции, выполняемые над файловой переменной, например, над f , будут выполняться над файлом, хранящимся на диске d:\ и, имеющем имя ‘data.txt’ .

Рассмотрим основные операции, выполняемые с фалами:

  • чтение файла,
  • запись в файл,
  • добавление элементов в файл.

Чтение файла

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

Для чтения файла необходимо выполнить следующие действия:

1. Открыть файл для чтения

Формат процедуры:

Reset(<имя файловой переменной>);

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

2. Прочитать данные из файла в файловую переменную

Формат процедуры:

Read(<имя файловой переменной> <переменная>);

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

3. Закрыть файл

Формат процедуры:

Close(<имя файловой переменной>);

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

Общая схема чтения файла:

Reset(<имя файловой переменной>);
Read(<имя файловой переменной>, <переменная>);
Close(<имя файловой переменной>);

Признак конца файла

Поскольку в файле число элементов не задается заранее, то в Турбо Паскале введен признак конца файла EOF – EndOfFile . Это логическая переменная возвращает TRUE – если достигнут конец файла и FALSE – конец файла не достигнут.

Формат процедуры:

EOF(<имя файловой переменной>);

Процедура возвращает:

TRUE (истина) – конец файла,
FALSE (ложь) – конец файла не достигнут .

Для определения конца файла используется оператор цикла

WhileNotEOF(<имя файловой переменной>) do оператор;

ЗАДАЧА 1. Разработать программу, которая выполняет чтение файла, содержащего целые числа.

Запись в файл

Для записи необходимо выполнить следующие действия:

1. Открыть файл для записи

Формат процедуры:

ReWrite (<имя файловой переменной>);

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

2. Записать данные в файл, при этом данные записываются поэлементно

Формат процедуры:

Write(<имя файловой переменной>, <элемент>);

3. Закрыть файл

После работы с файлом его закрытие обязательно.

Общая схема записи в файл:

ReWrite (<имя файловой переменной>);
Write(<имя файловой переменной>, <элемент>);
Close(<имя файловой переменной>);

ЗАДАЧА 2. Разработать программу, которая записывает в файл целые числа. Ввод чисел выполнить с клавиатуры.

Добавление элементов в файл

Для добавления элементов в файл необходимо выполнить следующие действия:

1. Открыть файл для чтения

Формат процедуры:

Reset(<имя файловой переменной>);

2. Переместить указатель в конец файла

Для перемещения указателя воспользуемся процедурой Seek .Процедура Seek(<имя файловой переменной>, N) перемещает текущий указатель на N-й элемент. Номер последнего элемента N в файле можно определить с помощью функции

N = Filesize(<имя файловой переменной>),

где N — количество элементов в файле.

В этом случае, функция Seek может быть записана так:

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

Seek(<имя ф.переменной>,Filesize(<имя ф.переменной>));

3. Выполнить запись элемента

Формат процедуры:

Write(<имя файловой переменной>, <элемент>);

4. Закрыть файл

Формат процедуры:

Close(<имя файловой переменной>);

Общие характеристики файловых процедур

1. После выполнения процедур открытия файла для чтения, записи ( Reset, Rewrite ) указатель установлен на первый элемент файла (элемент с номером 0 ).

Язык программирования TurboPascal

Для ввода данных в языке Турбо Паскаль предусмотрены стандартные операторы (процедуры) – READ и READLN , которые предназначены для чтения данных, как с клавиатуры, так и из файла. В данном разделе рассматривается ввод данных только с клавиатуры. Добавление к оператору READ символов LN обеспечивает автоматический переход курсора после ввода данных на новую строку.

Формат оператора:

Здесь a1,a2,a3. an – переменные, которым последовательно присваиваются значения. Если в тексте программы встречается оператор READ , компьютер приостанавливает работу и ожидает ввода значений переменных с клавиатуры. Когда все значения переменных, перечисленных в операторе ввода, введены, процесс выполнения программы продолжается.

Допускается использование оператора ввода без параметров

который выполняет переход на новую строку при вводе данных.

При вводе данных с помощью оператора READ нужно иметь в виду следующие основные правила:

  • логические данные в Турбо Паскале вводить не разрешается;
  • при вводе числовых данных, числа разделяются пробелом или символом окончания ввода (клавиша ENTER). Ввод всегда заканчивается нажатием клавиши ввода – ENTER;
  • пробелы перед числом и между числами игнорируются, поэтому их можно ставить в любом количестве;
  • если переменная описана как Integer , ее значение вводится как целое число, т.е. не допускается использование точки после числа;
  • если переменная описана как вещественная ( Real ), а ее значение является целым числом, то можно вводить число как целое (т.е. без точки) и как вещественное число – с точкой. Преобразование целого числа к вещественному числу будет выполнено автоматически;
  • ввод символьных данных имеет особенности. Поскольку пробел является символом, как и любой другой символ языка Турбо Паскаль, то символьные данные необходимо вводить сплошной строкой;
  • одной символьной переменной можно присвоить значение только одного символа;
  • нажатие клавиши ENTER воспринимается как символ, поэтому для правильного ввода символьных данных рекомендуется перед каждым оператором ввода символьных данных ставить оператор перехода на новую строку READLN , чтобы их ввод осуществлялся с новой строки.

ЗАДАЧА. Ввод данных.

Введем в программу следующие исходные данные:

Обозначим символом ris121пробел при вводе. При вводе числа будем разделять пробелом. Между числами допускается любое количество пробелов. Тогда экран монитора при вводе данных может выглядеть следующим образом:

Введите a, b, c:ris121ris121ris121ris1212ris121ris121ris1213

Введите x, y, z:44.4ris12147.5ris121ris121ris12176 ris121

Введите s1,s2,s3:A B C

Вывод данных

Для вывода данных из памяти компьютера на экран монитора предназначен оператор Write .

Здесь a1,a2,a3. an могут быть либо переменными, либо строкой символов, заключенной в апострофы. Все элементы перечисляются через запятую. Добавление к оператору WRITE символов LN обеспечивает автоматический переход курсора после вывода данных на новую строку.

Допускается использование оператора ввода без параметров

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

Параметрами оператора WRITE могут быть данные целого, вещественного, логического, символьного, а также типа string .

Расположение данных на экране монитора может быть задано параметрами оператора WRITE , тогда вывод называется выводом с форматами данных. Если в операторе WRITE форматы не используются, вывод называется бесформатным выводом или стандартной формой вывода.

Бесформатный вывод. Форма представления выводимых данных зависит от типа данных:

  • значения логического типа выводятся в виде логических значений TRUE и FALSE ;
  • значения символьных переменных выводятся в виде соответствующих символов;
  • символьная константа выводится в том виде, как она записана, но без апострофов;
  • значения величин целого типа выводятся как целые числа;
  • значения величин вещественного типа выводятся в формате с плавающей точкой.

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

ПРИМЕР. Рассмотрим фрагмент программы:

Оператором write(n,m); на экран монитора выводятся целые числа: n=1234 и m=7890 . Поскольку используется вывод без форматов данных, результат будет иметь вид:

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

Результат:

Результат:

Форматный вывод. Для вывода вещественных чисел необходимо указать в операторе WRITE формат представления числа, который имеет вид:

где: m – целое число, указывающее общее количество позиций отводимое под значение переменной, включая позицию под знак числа, точку и количество цифр дробной части; n – целое число, определяющее количество цифр дробной части.

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

Пример. Выведем значение переменной A , равное 401.3 оператором write(A:8:2) . На экран монитора будет выведено:

ris121ris121401,30
ris108
8 позиций

Символом ris121обозначен пробел.

Вывод вещественных чисел выполняется по следующим правилам:

  1. Если число имеет меньшую длину, чем m , то оно будет дополнено слева пробелами.
  2. Если число имеет большую длину, чем m , то параметр m игнорируется и число будет выведено полностью.
  3. Если дробная часть больше, чем параметр n , то число округляется. Округление не изменяет самого значения переменной, меняется только представление числа на мониторе.
  4. Если параметр n не указан, то ни дробная часть числа, ни десятичная точка не выводятся. Вывод осуществляется в формате с плавающей запятой.

В качестве примера рассмотрим печать вещественного числа в различных форматах.

Результат работы программы:

Печать вещественного числа

Печать в фиксированном формате

Печать в плавающем формате

Для вывода целых чисел необходимо указать в операторе WRITE формат представления числа, который имеет вид:

k – целое число, указывающее общее количество позиций, отводимое под значение переменной.

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

Первая программа на Turbo Pascal. Скачать и установить приложение

В этом посте мы напишем с Вами первую программу на языке Турбо-Паскаль, и полностью разбирём её. А так-же установим сам язык программирования паскаль на Windows 10.

Скачиваем и устанавливаем приложение

Скачать Turbo Pascal для Windows 10,8,7,XP:

Версия x32:

Версия x64:

Когда вы выбрали нужный вам файл, его нужно установить:

  1. Распаковываем архив.
    • Для системы x32: установочного файла нет &#8212; после извлечения архива, зайдите в папку BIN и запускайте Turbo.exe.
    • Для системы x64: после распаковки &#8212; запустите установочный файл. Turbo Pascal установится на вашу систему &#8212; на рабочем столе появится ярлык для запуска программы.
    • Установка завершена.

    Вы можете скачать сборку (среда программирования и задачник) PascalABC.NET которая до сих пор поддерживается и обновляется.

    Более подробно об этой вресии можно почитать на сайте авторов .

    Ничего сложного, как видите нет. После установки Turbo Pascal, мы можем начать писать нашу первую программу.

    Первая программа на Pascal

    Текст Вашей первой программы приведен ниже. Наберите его в окне программы о котором мы говорили в предыдущем посте, стараясь не допускать ошибок.

    Пример 1

    Что же делает эта программа?

    Для того чтобы узнать это, нужно откомпилировать ее и запустить. Посмотрите на строку подсказки и Вы сразу же вспомните, что откомпилировать программу можно нажав клавишу F9 (или Alt+F9). Откомпилируйте сей шедевр, сохраните его на всякий случай (F2) и запустите на выполнение. Запустить программу можно через меню Run|Run или нажав клавишу Ctrl+F9.

    Если программа была набрана правильно, то после запуска она попросит Вас ввести Ваше имя. Наберите имя и нажмите Enter. Теперь программа поприветствует Вас лично. В данный момент экран Вашего компьютера должен выглядеть примерно так, как изображено ниже на рисунке.

    Чтобы вернуться к окну с текстом программы, нажмите Enter.

    Первая порграмма написанная на языке программирования TurboPascal

    Посмотрите ещё программы на паскале, которые мы разбирали в других статьях: про типы данных языка паскаль, про логический оператор IF, про опертор FOR. На нашем сайте ещё много написанных программ на паскале.

    Разберём нашу первую программу на Паскаль

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

    Первая строка программы начинается зарезервированным словом PROGRAM и содержит объявление имени программы: наша программа имеет имя Prog1. На самом деле, объявление имени программы необязательно, поэтому в дальнейшем эту строку мы будем опускать.

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

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

    В третьей строке Вы видите единственное слово var, означающее, что далее будут описаны одна или несколько переменных. Переменными в языке называют «ячейки» памяти, которые могут хранить какоенибудь значение. Описать переменную в Турбо-Паскале – значит указать ее имя и тип.

    В следующей строке программы описана переменная по имени Name. После двоеточия указан ее тип: string[10]. Это означает, что в программе будет использоваться переменная Name является строкой из десяти символов.

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

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

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

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