Главная » Все файлы » Просмотр файлов из архивов » Документы » Организация данных в ЭВМ и основы программирования

Организация данных в ЭВМ и основы программирования, страница 12

2017-07-08СтудИзба

Описание файла

Документ из архива "Организация данных в ЭВМ и основы программирования", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "информатика" в общих файлах.

Онлайн просмотр документа "Организация данных в ЭВМ и основы программирования"

Текст 12 страницы из документа "Организация данных в ЭВМ и основы программирования"

Writeln(chislo[1,1,1],’=7’);

End.

8.2.2. Типизированная константа записи

Пример:

Type chislo = Record

a,b,c: Integer

end;

Zvet = (Krasn, Gelt, Zelen, sin);

Tkan = (Sherst, Shelk, Hlopok);

Platye = Record

Dizain : Array [1..4] of Zvet;

Material : Tcan

end;

Const Nomer : chislo = (a:0, b:0, c:0);

Model:Platye=(dizain: (krasn, gelt, zelen, sin); Material: Hlopok);

Matrica: Array[1..3] of

chislo = ((a:1, b:4,c:5), (a:13,b:8,c:55), (a:200,b:16,c:-65));

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

Если константа записи содержит варианты, то программист сам отвечает за то, чтобы специфицировались лишь блоки данных достоверной переменной.

Если переменная содержит массив метки, то нужно специфицировать и значение переменной.

8.2.3. Типизированная константа множества.

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

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

Пример:

Type Propisnoy = Set of ‘A’..’Z’;

Strochny = Set of ‘a’..’z’;

Const PropBukw : Propis =[‘A’..’Z’];

StrochnBukw : Stroch =[‘a’, ’e’, ‘l’, ‘c’, ‘u’];

Simvol : Set of char = [‘’..’/’, ‘:’..’?’, ‘[‘..’^’, ‘{‘..’~’];

9. ПРЕОБРАЗОВАНИЕ ТИПОВ

Тип переменной позволяет не только установить длину ее внутреннего представления, но и контролировать те действия, которые осуществляются над ней в программе. Контроль за использованием переменных еще на этапе компиляции программы – важное преимущество Турбо Паскаля перед другими языками программирования, в которых допускается автоматическое преобразование типов. Фактически именно та вольность, с какой, например, PL/1 преобразует по умолчанию различные типы данных, послужила объектом наиболее сильной его критики.

9.1. Неявные преобразования типов

В Паскале почти невозможны неявные (автоматические) преобразования типов. Исключение сделано только в отношении констант и переменных типа Integer, которые разрешается использовать в выражениях типа Real.

Пример:

Var X : Integer;

Y : Real;

Y:=X+2 - правильно, хотя справа от знака присваивания стоит целочисленное выражение, а слева – вещественная переменная. Компилятор сделает необходимые преобразования автоматически.

X=2.0 – неверно, так как автоматическое преобразование типа Real в тип Integer в Паскале запрещено.

9.2. Использование стандартных функций для преобразования

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

В частности, для преобразования Real в Integer имеются две встроенные функции:

Round округляет Real до ближайшего целого,

Trung усекает Real путем отбрасывания дробной части.

X:=Y/X – нельзя,

X:=round(Y/X) – можно.

Ord преобразует Char в Integer,

Chr преобразует Integer в Char.

Пример. Программа выводит на экран символ и соответствующий ему внутренний код.

Var simvol : char;

Begin readln (simvol);

Writeln (simvol, ‘=’, ord(simvol));

End.

9.3. Явные преобразования типов

Наличие двух операций деления есть еще одно появление основополагающего принципа языка программирования Паскаль: программист должен явно подтверждать компилятору, что он готов к возможным последствиям преобразования типов. Если, например, в Фортране используется выражение 1/2, то результат этого действия будет зависеть от того, переменной какого типа он будет присвоен:

если X – целое,

Y - действительное,

то фортрановское присваивание дает:

X = 1/2  0

Y = 1/2  0.5

В языке программирования Паскаль такой двусмысленности нет: выражение 1/2 всегда имеет значение 0.5 и поэтому оператор X:=1/2 для целого Х просто недопустим. В то же время

Var Y : Real;

--------------

Y : = 1 div 2;

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

Еще две функции для целого типа:

Dec (X[,N]) – уменьшение значения X на N; если N не задан, то на 1,

Inc (X[,N]) – увеличение.

Пример: А,В, С – типа integer.

А = В and С < 0 где ошибка?

Надо (А = В) and (С < 0) так как логические операции имеют более высокий приоритет, чем операции отношения:

  1. not

  2. * / div mod and chr chi

  3. + - or xor

  4. = <> < > <= >= in.

9.5. Совместимость типов

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

Два типа считаются совместимыми, если:

  1. оба они есть один и тот же тип,

  2. оба они действительные,

  3. оба они целые,

  4. один тип есть тип – диапазон второго типа,

  5. оба они являются типами – диапазонами одного и того же базового типа,

  6. оба они являются множествами, составленными из элементов одного и того же базового типа,

  7. оба они являются упакованными строками (определены предшествующим словом Packed) одинаковой максимальной длины,

  8. один тип есть тип – строка, а другой тип – строка, упакованная строка или символ,

  9. один тип есть любой указатель, а другой – не типизированный указатель,

  10. оба они есть процедурные типы с одинаковым типом результатом (для типа - функции), одинаковым количеством параметров и одинаковым типом взаимно соответствующих параметров.

10. ФАЙЛОВЫЕ ТИПЫ

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

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

- формировать большие массивы данных,

- своевременно их корректировать,

- транспортировать их в другие программы

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

10.1. Определение файлового типа

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

исходные данные;

программа;

результаты;

любые тексты

Файл в операционной системе представляет собой последовательность элементов одного типа, расположенных на внешнем уровне.

Различают три основных вида файлов:

- последовательные;

- прямого доступа

- индексированные (файлы с ключами).

В двух последних типах данных поиск необходимых данных может осуществляться по адресам данных.

Турбо-Паскаль работает с последовательными файлами.

Последовательности во многих случаях служат самыми простыми структурами. Специалисты часто пользуются термином «последовательный файл» для описания последовательностей.

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

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

Файловый тип в Паскале - это единственный тип значений, посредством которого данные, обрабатываемые программой, могут быть получены извне, а результаты переданы во внешний мир.

10.2. Структура файла

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

Если число компонент равно нулю, файл называется пустым. Итак, мы видим, что файл отличается от массивов, записей и множеств, т.к. это структура последовательного доступа, все компоненты которой относятся к одному и тому же типу: любому, кроме типа «файл». Нельзя создать файл файлов!

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

Характеристики файла:

последовательный доступ;

переменная длина;

существование буферной переменной, –

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

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

Для определения признака конца файла используется встроенная стандартная функция EOF (файловая переменная);

Она определяет, достигнут или нет конец файла.

EOF = True, если конец файла достигнут;

EOF = False, если нет.

Если файл не имеет компонентов, то он называется пустым и функция EOF = True для пустого файла.

Функцию EOF можно использовать в логических выражениях и в частности, в операторах цикла.

Пример: While Not EOF ( имя ) Do Begin

…….

End;

Если буферная переменная сдвинута за пределы конца файла (end of file), стандартная логическая функция eof (F) = true, в противном же случае – false.

Файловый тип – единственный тип значений, который связывает программу с внешним устройством (ввод-вывод данных).

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

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

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

двоичные файлы;

текстовые файлы

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

Текстовые файлы состоят из символов (char), а кроме того, каждый текстовый файл делится на строки. Каждая строка состоит из любого числа байтов и заканчивается символом конца строки. Файл завершается символом окончания файла. Таким образом, текстовые файлы – это файлы, состоящие из символов, причём не все байты представляют собой печатаемые символоы. Компонентами текстового файла являются строки различной длины, разделённые управляющими символами.

10.3. Имя файла

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

Имя файла – это любое выражение строкового типа, которое строится по правилам определения имён в дисковой операционной системе (DOS):

- имя содержит до восьми разрешённых символов (буквы, цифры и знаки подчеркивания);

- за именем может следовать расширение – последоватенльность до трёх разрешенных символов;

- расширение, если оно есть, отделяется от имени точкой.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
426
Средний доход
с одного платного файла
Обучение Подробнее