W Cat - Описание языка PascalABC.NET

Тут можно читать онлайн W Cat - Описание языка PascalABC.NET - бесплатно полную версию книги (целиком) без сокращений. Жанр: Детская образовательная литература. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

W Cat - Описание языка PascalABC.NET краткое содержание

Описание языка PascalABC.NET - описание и краткое содержание, автор W Cat, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru


PascalABC.NET — это язык программирования Паскаль нового поколения, включающий классический Паскаль, большинство возможностей языка Delphi, а также ряд собственных расширений. Он реализован на платформе Microsoft.NET и содержит все современные языковые средства: классы, перегрузку операций, интерфейсы, обработку исключений, обобщенные классы и подпрограммы, сборку мусора, лямбда-выражения, средства параллельного программирования.


PascalABC.NET является мультипарадигменным языком: на нем можно программировать в структурном, объектно-ориентированном и функциональном стилях.


PascalABC.NET — это также простая и мощная интегрированная среда разработки, поддерживающая технологию IntelliSense, содержащая средства автоформатирования, встроенный отладчик и встроенный дизайнер форм.

Описание языка PascalABC.NET - читать онлайн бесплатно полную версию (весь текст целиком)

Описание языка PascalABC.NET - читать книгу онлайн бесплатно, автор W Cat
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать
Ввод всех исходных данных без создания требуемого файла

Изменим программу, заменив в заголовке цикла число 3 на 4, и вновь запустим программу. Теперь все данные, необходимые для выполнения задания, введены в программу (это видно по индикатору ввода). Однако задание не выполнено, поскольку результирующий файл не создан. Поэтому решение опять признано ошибочным с диагностикой Результирующий файл не найде н ":

Пример программы приводящей к ошибке времени выполнения Добавим в тело цикла - фото 93
Пример программы, приводящей к ошибке времени выполнения

Добавим в тело цикла после процедуры Assign вызов процедуры Reset, обеспечивающий открытие существующего файла:

usesPT4;

var

i: integer;

s: string;

f: array[1..4] of file ofinteger;

begin

Task('File48');

fori := 1 to4 do

begin

read(s);

Assign(f[i], s);

Reset(f[i]);

end;

end.

Теперь запуск программы приведет к сообщению об ошибке Error System.IO.FileNotFoundExceptio n ":

Сообщение начинающееся со слова Error означает что при работе программы - фото 94

Сообщение, начинающееся со слова Error , означает, что при работе программы произошла ошибка времени выполнения (Runtime Error). После слова Error указывается имя этой ошибки (в данном случае System.IO.FileNotFoundException , то есть ошибка ввода-вывода, связанная с тем, что файл не найден) и краткое ее описание на английском языке.

Сообщение об ошибке времени выполнения появится и в разделе Список ошибок" окна PascalABC.NET:

Создание пустого результирующего файла Для того чтобы избежать ошибки времени - фото 95
Создание пустого результирующего файла

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

usesPT4;

var

i: integer;

s: string;

f: array[1..4] of file ofinteger;

begin

Task('File48');

fori := 1 to4 do

begin

read(s);

Assign(f[i], s);

ifi < 4 thenReset(f[i])

elseRewrite(f[i]);

end;

{ * }

fori := 1 to4 do

Close(f[i]);

end.

Комментарий { * } расположен в том месте программы, в котором можно выполнять операции ввода-вывода для всех четырех файлов: они уже открыты процедурами Reset или Rewrite и еще не закрыты процедурой Close.

Запуск этого варианта программы не приведет к ошибке времени выполнения; более того, результирующий файл будет создан. Однако созданный файл останется пустым, то есть не содержащим ни одного элемента. Поэтому при запуске программы на информационной панели появится сообщение Ошибочное решени е ", а в строке, которая должна содержать элементы результирующего файла, появится текст EOF: (особое значение EOF для указателя текущей файловой позиции означает, что данный файл существует, но не содержит ни одного элемента):

Пример программы использующей неправильные типы для файловых данных Во всех - фото 96
Пример программы, использующей неправильные типы для файловых данных

Во всех ранее рассмотренных вариантах программы мы не использовали операции ввода-вывода для файлов. Поэтому тип файлов не играл никакой роли: вместо типа file ofinteger мы могли использовать любой другой файловый тип, например, file ofreal, и результат выполнения программы был бы тем же самым.

Тип файловых элементов становится принципиально важным, если в программе используются операции ввода-вывода для данного файла. Чтобы продемонстрировать это на примере нашей программы, внесем в нее следующие изменения: в описании массива f файловых переменных тип integer заменим на real, в раздел описаний добавим описание переменной a типа real, в раздел операторов (в позицию, помеченную комментарием { * }) добавим следующий фрагмент:

fori := 1 to3 do

begin

read(f[i], a);

write(f[4], a);

end;

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

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

Судя по экранной строке с содержимым результирующего файла в него будут - фото 97

Судя по экранной строке с содержимым результирующего файла, в него будут записаны не три, а шесть элементов , по два начальных элемента из каждого исходного файла. Объясняется это тем, что после связывания файлов с файловыми переменными типа file ofreal элементами файлов стали считаться вещественные числа (занимающие в памяти по 8 байтов), тогда как на самом деле", то есть по условию задания, элементами файлов являются целые числа (занимающие в памяти по 4 байта). Поэтому считывание из файла и последующая запись в файл одного "вещественного элемента" фактически приводит к считыванию и записи блока данных размером 8 байтов, содержащего два последовательных целочисленных элемента исходного файла.

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

Исправление ошибки, связанной с неверными типами файловых данных

Заменим в нашей программе все описания real на integer:

usesPT4;

var

i: integer;

s: string;

f: array[1..4] of file ofinteger;

a: integer;

begin

Task('File48');

fori := 1 to4 do

begin

read(s);

Assign(f[i], s);

ifi < 4 thenReset(f[i])

elseRewrite(f[i]);

end;

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


W Cat читать все книги автора по порядку

W Cat - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Описание языка PascalABC.NET отзывы


Отзывы читателей о книге Описание языка PascalABC.NET, автор: W Cat. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x