КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Логический тип Boolean
Придумываем типы данных END. BEGIN s:=0; for i:=1 to k do s:=s+t[i]; WriteLn(s/k) Здесь в круглых скобках задается список начальных значений переменной t, а именно: t[1] равно -14, t[2] равно -12 и т.д. В разделе операторов эти значения можно менять. Двумерным массивам начальные значения придаются аналогично. Так в программе из 12.3 вместо двенадцати присвоений можно было записать так: Const k =3; n=4; t: array [1..k,1..n] of Integer = ((-8,-14,-19,-18), (25, 28, 26, 20), (11, 18, 20, 25)); ....... Обратите внимание на расстановку скобок. Паскаль предоставляет возможность не только пользоваться стандартными типами данных, но также именовать их по-другому и даже создавать свои типы. Запись TYPE bukva = Char означает: ТИП bukva "равен" (эквивалентен) типу Char, то есть мы просто придумали типу Char еще одно название "bukva". Теперь все равно, как записать: VAR a,b:Char или VAR a,b:bukva.
Еще примеры: type Vector = array [1..10] of Integer; matritsa = array [1..8] of Vector; var a,b:Vector; c:matritsa; d: array [1.. 8] of Vector; Здесь мы создали два новых типа с именами Vector и matritsa. Очевидно, переменные c и d описаны одинаково. Обратите внимание, что вместо type matritsa = array [1.. 8] of Vector можно записать type matritsa = array [1.. 8] of array [1..10] of Integer или type matritsa = array [1..8,1..10] of Integer.
Зачем нужны новые типы? Вот две из нескольких причин. Одна – наглядность и удобство. Другая - чисто грамматическая - Паскаль разрешает в определенных конструкциях записывать лишь имена типов, а не их определения. Например, когда мы изучим процедуры с параметрами, мы узнаем, что писать procedure p(a: array[1..10] of Integer) неправильно, а писать procedure p(a: Vector) правильно.
В операторах if, while, repeat мы привыкли писать выражения вида a>b, i<=0, c=’крот’, 3>2, (a>b)AND(a>c) и т.п. Про каждое из этих выражений можно сказать, истинно оно в данный момент или ложно. Например, выражение 3>2 истинно всегда, а выражение i<=0 ложно в тот момент, когда i равно, скажем, 2. Такие выражения называются логическими выражениями. Говорят, что логическое выражение 3>2 имеет значение “истина” (по-английски true - “тру”), а логическое выражение i<=0 имеет значение “ложь” (по-английски false - “фолс”). Внутренняя идеология построения языка Паскаль требует определить новый тип переменных - логический тип Boolean. Запись VAR a:Booleanозначает, что переменная aможет принимать всего два значения - true и false. Так, мы можем записать a:=false. Слова true и false являются логическими константами и их можно употреблять в логических выражениях или вместо них. Например, if a=true then... Конструкцию if (a>b)=false then... можно перевести “если неправда, что a больше b, то...”. Значения true и false удобно применять для организации бесконечных циклов: while true do....... repeat........... until false Решим конкретный пример на этот тип. Задача: В группе - 6 студентов. Сколько из них сдали зачет по физике? Сначала напишем программу без использования типа Boolean. В ней единицей я обозначил зачет, нулем - незачет. Массив Zachet из 6 элементов хранит информацию о зачете. CONST Zachet: array [1..6] of Integer = (1,1,0,1,1,1); Теперь напишем программу с использованием типа Boolean. В ней через true я обозначил зачет, через false - незачет. CONST Zachet: array [1..6] of Boolean = (true,true, false, true, true, true); Отличие второй программы от первой в том, что выражение zachet[i] = true (зачет равен истина) выглядит естественнее и понятнее, чем zachet[i] = 1 (зачет равен единице, то есть колу?). В общем, чуть-чуть нагляднее. Кстати, вполне правильно было бы написать и if zachet[i] then.... Ведь условием после слова if может стоять любое логическое выражение, имеющее значением true или false.
Дата добавления: 2014-12-27; Просмотров: 435; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |