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

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

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

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

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

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

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

Begin

For P:=False To True Do

For Q:=False To True Do

For R:=False To True Do

For T:=False To True Do

Begin

F:=P And Not (Q Or T) And T

Write(‘P=’,P,’Q=’,Q,’R=’,R,’T=’,T);

Write(‘F=’,F);

writeln;

End;

End.

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

В языке Паскаль нельзя записать двухстороннее неравенство 1< X <2. Вместо этого надо воспользоваться логическим выражением: (X>1) And (X<2).

Нельзя записать X = Y = Z, а надо: (X = Y) And (X = Z).

Если надо записать, что Х не лежит в диапазоне от - 2 до +2, то:

Not ((X>-2) And (X>=2)) или (X<=-2) Or (X>=2)

Стандартные идентификаторы True и False можно использовать в качестве логических констант. Равноправные операторы.

If P Then S;

If P=True Then S;

Функция Odd(x) = True при X=2n-1, n=1,2,3,...

False при X=2n

2.4. Символьный тип

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

‘A’, ‘R’,’+, ‘7’

В описании констант:

Const Sim = ‘A’;

A = ‘A’;

S = ‘+’;

D1 = ‘;’;

Символьная переменная принимает значение одного символа. Она описывается в разделе переменных как CHAR.

Var Bukwa: Char;

B1, B2, R: Char;

В операторе присваивания:

Bukwa : = ‘+’;

R: = Bukwa;

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

Ввод символьных данных имеет особенности: символьные данные вводят сплошной строкой, без пробелов, т.к. пробел - это тоже символ!!!

Var S1, S2, S : Char;

Read (S1 , S2 , S3 )

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

ABC —> S1 = ‘A’ , S2 = ‘B’ , S3 = ‘C’

A_B_C_ —> S1 = ‘A’ , S2 = _ , S3 = ‘B’

Формат: X : M

‘_’ : 7 - вывод семи пробелов.

Результатом операции сравнения является логическая константа True или False. ‘A’<’B’

Встроенные функции:

Ord(x) - определяет порядковый номер символа Х, например, ORD(‘R’) = 82.

Chr(x) - определяет символ, стоящий по порядковому номеру Х, например, CHR(68)= ‘D’.

Эти две функции носят название функций преобразования.

Очевидно , что Chr(Ord(S)) = S; Ord(chr(68)) = 68.

Если С1 и С2 - переменные символьного типа, то С1<С2 , если Ord(C1) < Ord(C2)

Pred(x) - дает предыдущий символ но относительно к Х, например,. Pred(‘N’) = ‘M’.

Succ(x) - определяет следующий за Х символ, например,. Succ(‘R’) = ‘S’, Succ(‘9’) = ‘:’

Справедливы равенства:

Ord (false) = 0 Ord (True) = 1

Succ (False) =True Pred (True) = False

2.4.1. Символьные строковые константы

Символьные строки - последовательность любого, в том числе и равного нулю количества символов, заключенных в апострофы. Символы - из набора ASCII.

‘Номер’ , ‘Summa’ , ‘_ _ ‘ , ‘A+B’

‘Д’’АРТАНЬЯН’ - внутри апостроф - двойной

Const C1 = ‘ ‘;

C2 = ‘РЕЗУЛЬТАТ’;

К строкам применимы операции отношения. Результат: True или False, сравнение происходит посимвольно слева направо .

‘ABC’>=’ACB’результат False , т.к. ‘B’<’C’

Переменной нельзя присвоить значение строки!!! Ограничение - максимальный размер строки, воспринимаемый компилятором, - не более 126 символов. Строка, состоящая из одного символа, называется символьной константой. Если между апострофами нет ни одного символа, то такая строка называется пустой (см. далее раздел «Регулярные типы»).

Для включения в строку символов, не имеющих физического изображения, используется их ASCII-код с символом # перед ним, например, A = ‘#31’ - это  - управляющий символ.

Задания

1. Можно ли выполнить / (деление) над переменными целого типа?

2. Определить:Odd(15) Odd(26) Succ(137) Pred(26)

3. Найти ошибки в записи вещественных чисел.

4. .0Е – 2 - 71 - 6.1 0.1Е – 5 А56 2.1

5. Вычислить:Trunc(5.61) Round(17.16) Round(- 17.16)

6. Что не правильно?

Odd(17.1) Cos(32.1) Cos(5) Sin(0.2) Succ(3.2) Pred(7)

7. Найти:

Ord(chr(49)) = 49 Chr(ord(‘+’)) = +

Pred(‘B’) = ‘A’ Succ(‘B’) = ‘C’

8. Вычислить при A = 2, B = 3, C = 4, M = 5, X = 6, E = True

а) (A+B)/C*M = (2+3)/4*5 =

б) 2+X*X/(X+(A+B)/5) = 2+6*6/(6+(2+3)/5) = 2+36/7 =

в) (A<B) and (X+A-<B) or (C<M) or E =

9. Записать:

а) A не принадлежит отрезку [0;3]

б) A принадлежит отрезку [- 2,0]

в) A принадлежит промежуткам [- 5,- 4] или [0,2) или (3.2,7]

3. НЕСТАНДАРТНЫЕ ПРОСТЫЕ ТИПЫ (ОПРЕДЕЛЯЕМЫЕ ПОЛЬЗОВАТЕЛЕМ)

Мы установили, что тип данных задает набор значений, которые могут принимать данные. Например,. данные целого типа могут принимать значения целых чисел. от -32768 до 32767, данные логического типа - значения True и False. Задание типа данных устанавливает и ограниченный набор операций, которые могут выполняться над этими данными. Например, над данными вещественного типа можно выполнять операции +, - , * , / , но нельзя производить операции Div и Mod, которые предназначены для данных целого типа.

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

3.1. Перечисляемый тип

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

Пример. Type Colour = (Red , Orange , Green) ;

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

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

Язык Паскаль представляет программисту широкие возможности для задания дополнительных типов, характеристики которых программист может определить самостоятельно. Новые типы описываются в специальном разделе типов или определяются непосредственно при описании переменных.

Описание перечисляемого типа имеет вид:

Type Имя типа = (Список констант);

Var : Имя переменной: имя типа;

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

В общем виде:

Type T = (A1, A2,...,An);

Пример. Type Year = (Winter , Spring , Summer , Autumn);

Var A:Year;

Здесь Year - имя перечисляемого типа:

Зима, Весна, Лето, Осень - константы;

A - переменная, которая может принимать значение любой из констант.

Объект, указанный в списке ,может присутствовать только в одном описании.

Пример. Type T1 = (One , two , three);

T2 = (Tree , four , five);

Эти два задания типов несовместимы.

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

Пример. Var A: (Winter , Sprihg , Summer , Autumn);

Но лучше использовать описание данных с использованием раздела Type.

Нельзя присваивать переменной одного типа значения из имени другого типа.

Пример .

Type Name =(Jon , Tom , Nick) ;

Color =(Red , Blue , Black);

Var X , Y , Z : Name ;

C1 , C2 : Color ;

Каждая из констант имеет порядковый номер, счет начинается с нуля. Упорядоченность констант позволяет применять к ним операции отношения (сравнения): < ,<= ,= , <>, >, >=. Результат операции будет логического типа (Type , False). Winter < Spring < Summer < Autumn (Зима < Весна< Лето< Осень)

Свойства перечисляемого типа:

1) Ai <> Aj, если i ><j (различимость).

2) Ai < Aj, если i < j (упорядоченность).

3) Значениями типа Т могут быть только А1, А2, ... Аn.

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

Ord (x) - нахождение порядкового номера,

Pred (x) - нахождение предыдущего элемента,

Succ (x) - нахождение последующего элемента.

Succ (Ai) = Ai +1 для i= 1,2,...n-1 - последующий член .

Pred (Ai) = Ai- 1 для i = 1,2,3...n - предыдущий член .

Ord (Ai) = i -1 - функция определения порядкового номера Аi. Нумерация условно начинается с нуля.

Пример.

Имеется перечень зверей: лиса, волк, заяц, зубр, тигр, лев, медведь, косуля, олень, барс. Определить порядковый номер тигра (N1) и порядковый № зверя после косули (N2)

Program Zver;

Type Zver = (lisa,volk,zaiac,zubr,tigr,lev,medved,kosulia,olen,bars);

Var P1,P2: Zver;

N1,N2 : Integer;

Begin

P1 : = tigr;

P2 : = Succ (kosulia);

N1 : = Ord(P1)+1;

N2 : = Ord(P2)+1;

Writeln (‘N1 = ‘, N1:2);

writeln (‘N2 = ‘, N2 : 2);

End.

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

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

Program Den;

Type Week = (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);

Var Day: Week;

Begin

For Day : = Monday To Sunday Do

If (Day : = (Wednesday) Or (Day = Friday)

Then Writeln (‘Study’)

Else If (Day : = (Saturday) Or (Day = Sunday)

Then Writeln (‘Nothing’)

else Writeln (‘Work’)

End.

Результат будет такой: Work

Work

Study

Work

Study

Nothing

Nothing

В языке Paskal нельзя вводить и выводить данные перечислимого типа с помощью операторов Read и Write.

3.2. Ограниченный тип (диапазон, интервал)

Множество значений простых типов упорядоченно и конечно (разумеется, кроме вещественного типа). Если программисту необходимо сузить диапазон значений, принимаемых некоторым объектом скалярного типа, то он осуществляет это в явном виде наложением ограничения на стандартный или определенный ранее перечислимый тип, который в этом случае называется базовым. Если какая-то переменная принимает не все значения своего типа, а только значения, содержащиеся в некотором ограниченном диапазоне, то ее можно рассматривать как переменную ограниченного типа (иногда говорят интервальный тип или тип диапазон).

Пример.Type Day = (Mo , Tu , We , Th , Fr , Sa , Su);

Mom = 10...25

Sss = ` C`...`X`;

Wd = SA...SU;

Для ограниченного типа Mom базовым является целый тип, для SSS - символьный, для Wd - определённый ранее перечислимый тип Day.

Попытка присвоить переменной ограниченного типа значение \, не входящее в заданный диапазон, приведёт к возникновению ошибки при счёте.

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

Пусть, например, в разделе описания указан перечислимый тип Год:

Type Year = ( Jan, Febr, Mart, Apr, May, Jun, Jul, Aug, Sent, Okt, Nov, Dec);

А нам предстоит решать задачи, связанные только с весенним временем года. Тогда можно ввести ограниченный тип: Spring Sum = Маy .. Aug; который является частью перечислимого типа.

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