Типы данных языка программирования TP 7.0 . Логический тип
Оценка 5

Типы данных языка программирования TP 7.0 . Логический тип

Оценка 5
Рабочие тетради
doc
информатика +1
10 кл—11 кл +1
25.04.2017
Типы данных языка программирования TP 7.0	.  Логический тип
Занятие строится таким образом, что после прослушивания теоретического материала (10 –15 мин.), учащимся предлагается практическое задание, которое выполняется ими за 20 - 30 мин. и корректируется в процессе изучения материала в более сложную задачу по изучаемой теме. Автор сознательно избегал сложных примеров, будучи убежденными, в том, что гораздо важнее для учащихся понимание алгоритмов предлагаемых задач, приобретение навыков разработки алгоритмов, их программирования и выполнения на компьютере в течение одного занятия. Такой подход к изучению языка программирования позволяет сосредоточить внимание на самом процессе программирования, который в данном случае более важен для изучения языка, чем решение сложной задачи, наверняка трудной большинству учащихся. Такие задачи, по мнению авторов, неоправданно занимают большое количество учебного времени, превращая учителя из инициатора процесса обучения в диктатора.
Занятие 3ч1.doc
Типы данных языка программирования TP 7.0 .  Логический тип        Занятие 3 1. Урок 1. Логический (булевский) тип данных. Условный оператор. 2. Урок 2. Оператор   выбора.    Исследование   по   логическим операциям. 3. Урок 3. Логические операции над целыми числами. 4. Контрольные вопросы и упражнения. Урок  1. Типы данных языка программирования Turbo Pascal 7.0 1.1. Логический  (булевский) тип данных. Определение логического выражения. 1.2. Условный оператор if … then … else 1.3. Практический пример. 1.1. Логический   (булевский)   тип   данных.    Определение    логического выражения Переменные типа  boolean, ByteBool,  WordBool   и  LongBool  являются логическими переменными и могут принимать только два значения  True   (истина) и  False  (ложь).  Логические переменные используются для хранения результатов   логических   выражений.   Для   переменных   имеют   место   операции   отношений,   и   логические   операции, указанные   в   таблицах   1   и   2,   результатом   которых   являются   булевские   переменные.   Эти   переменные   неявно используются в условных операторах  if … then … else  и  case. Наименование     Таблица 1 Операции отношения = <> > >= < <= Равно Неравно Больше Больше или равно Меньше Меньше или равно Логические операции Наименование NOT AND OR XOR Логическое  НЕ  (инверсия или отрицание) Логическое  И (логическое умножение, конъюнкция) Логическое  ИЛИ  (логическое сложение, дизъюнкция) Логическое исключающее  ИЛИ  (неравнозначность)          Таблица 2 Приоритет выполнения логических операций 1 2 3 4 Логические операции в таблице 2 указаны в порядке  уменьшения приоритета  их выполнения в  Pascal  ­ программе. Операции отношения и логические операции (или те и другие вместе) над переменными могут быть записаны в Pascal­программе в виде логического условия или логического выражения. Логическим условием назовем запись, состоящую из одного или двух операндов и знака операции отношения или логической операции. Например: a > b;  a or b;  c and d;  k <> d;  (a + c) = (b * d);  not  Second  и т.д.   Логическим   выражением  назовем   запись,   состоящую   из   логических   условий   и   логических   операций, производимым над ними. Например:  (a + b ) and (a + c ) and (c + b);   (a + b > c) and (a + c >= b)  or (c + b <> a)  и т.д. Результатом выполнения логического условия или выражения являются значения  True  (истина) или   False (ложь). Далее происходит передача управления для выполнения соответствующих этим условиям операторов. Аргументы (операнды) логических операций  должны иметь один тип.  Приведенная ниже программа позволяет получить результат логической операции   and  (и) для логических операндов  p_true  и  p_false   и  сохранить его в логической переменной result. Program V1L04P1; {Булевская операция and (и)} Uses Crt; {Вызов библиотечного модуля для работы с экраном дисплея} {Блок описания констант и переменных} Const p_true=true;       p_false=false; {Блок операторов} begin {Постоянные логические значения} 19 Логический (булевский) тип данных.  Оператор выбора. Исследование по логическим операциям.  Логические операции над целыми числами ClrScr; WriteLn('TRUE and FALSE = ', p_true and p_false); ReadKey; end. {Очистить экран} {Результат логической операции} {Ожидание нажатия любой клавиши} Результат работы программы TRUE and FALSE = FALSE 2. Условный    оператор Наименование оператора говорит само за себя потому, что в него входит логическое условие  или логическое выражение. Условный оператор может быть  полным  (альтернативным) и  неполным   (без альтернативы) и имеет следующий формат: if  <Логическое условие (выражение)>  then  <Оператор 1>  else  <Оператор 2> или if  <Логическое условие (выражение)>  then  <Оператор 1> <Логическое условие (выражение)>   ­  логическое условие или выражение, которое может быть записано в где операторе явно или вычислено в программе и присвоено логической переменной; <Оператор 1>,  <Оператор 2>  ­  простые или составные операторы. В случае составного оператора (группы операторов) следует применять операторные скобки begin и end. Алгоритм работы условного оператора  if … then … else  следующий. Если  (if)  <Логическое   условие  (выражение)>  принимает  значение  True  (истина),   то  (then)    выполняется <Оператор 1> и далее следует выполнение операторов программы,  иначе (else) выполняется <Оператор 2> и далее следует выполнение  операторов программы.   ложного   (False)   значения  <Логическое   условие   (выражение)>  не   выполняет  <Оператор   1>,   а   переходит   к   выполнению   операторов   программ,  следующих  за условным оператором. Неполный   формат   условного   оператора   в   случае   Ниже приводится практический пример, в котором присутствуют операции отношения и логические операции. Определить существует ли треугольник, стороны которого заданы целыми значениями a, b, c. Program V1L04P2; {Определение возможности существования треугольника} Uses Crt; Var a,b,c :integer; {} begin ClrScr; Write('Введи значения сторон треугольника через пробел : '); ReadLn(a,b,c); {Ввод числовых значений с клавиатуры} {Логическое условие с альтернативой} if (a+b>c)and(a+c>b)and(b+c>a) then WriteLn('Треугольник существует') else WriteLn('Треугольник не существует'); {} ReadKey; end. Логические операторы могут быть вложены друг в друга.  Такая конструкция показана ниже. Program V1L04P3; {Определение возможности существования треугольника} Uses Crt; Label 100,200; Var a,b,c :integer; {} begin ClrScr; Write('Введи значения сторон треугольника через пробел: '); ReadLn(a,b,c); {Вложенные логические операторы} if a+b7) then WriteLn('Номер дня недели введен неверно !'); {} ReadKey end. {Условие правильности введения дня недели} {Ожидание нажатия любой клавиши} Из   текста   программы   видно,   что   для   решения   поставленной   задачи   потребовалось   восемь   условных операторов, с помощью которых осуществляется выбор названия дня недели по равенству введенного значения номера дня недели с записанными данными в логических условиях. В TP 7.0  подобные задачи решаются с помощью оператора выбора  case … of. 2.1. Оператор выбора  case … of Оператор   выбора  case  …  of   является   обобщением   условного   оператора  if  …  then  …  else.     Он   дает возможность выполнить одно из нескольких действий в зависимости от значения переключателя и имеет следующий полный (альтернативный) формат: case  <Переключатель>  of <Список констант 1>: <Оператор 1>; <Список констант 2>: <Оператор 2>; 21 Логический (булевский) тип данных.  Оператор выбора. Исследование по логическим операциям.  Логические операции над целыми числами . . . <Список констант N >: <Оператор N>     или (неполный формат) else  <Оператор A> end; case  <Переключатель>  of <Список констант 1>: <Оператор 1>; <Список констант 2>: <Оператор 2>; . . .     <Список констант N >: <Оператор N> где: вычислена в программе; end; <Переключатель>  ­  переменная типа integer, boolean, char, record, которая может быть записана явно или <Список   констант   …>    ­     список   констант   через   запятую,   который   должен   иметь   тот   же   тип,   что   и <Переключатель>  (например,  100, 10. 2:); <Оператор …>  ­  оператор или группа операторов;   <Оператор A>  ­  альтернативный оператор или группа операторов. Алгоритм  работы условного оператора   case  …  of  следующий. Вычисленное или заданное явно значение <Переключатель> определяет, какой из операторов должен быть выполнен, при этом значение <Переключатель> должно совпадать с одной из констант <Список констант …>. В противном случае выполняется <Оператор A>. В случае неполного формата оператора выбора case … of и несовпадения переключателя ни с одним значением списков констант выполняется следующий за end; оператор. Примером использования оператора выбора case … of может служить приведенная ниже программа. Program V1L04P5; {Печать названия дня недели по его номеру} Uses Crt; Var n :integer; {} begin ClrScr; Write('Введи номер дня недели: ');ReadLn(n); {} case n of 1: WriteLn(n,'­ ый день недели ­ понедельник и самый тяжелый'); 2: WriteLn(n,'­ ой день недели ­ вторник'); 3: WriteLn(n,'­ ий день недели ­ среда'); 4: WriteLn(n,'­ ый день недели ­ четверг'); 5: WriteLn(n,'­ ый день недели ­ пятница'); 6: WriteLn(n,'­ ой день недели ­ суббота'); 7: WriteLn(n,'­ ой день недели ­ воскресенье'); else WriteLn('Номер дня недели введен неверно!'); end; {} ReadKey end. Результаты работы программ Вариант 1 Введи номер дня недели:  3 3 ­ ий день недели ­ среда Вариант 2 Введи номер дня недели:  10 Номер дня недели введен неверно При сравнении программ vv8 и vv9 можно заметить, что vv9 имеет меньшее количество ключевых слов языка программирования. 2.2. Исследование по логическим операциям  (практическая работа) Используя  приведенную выше программу   vv5, составить таблицу булевских операций (таблицу истинности) для различных значений операндов в виде:    Операнды a b 22 NOT a (инверсия) a AND b (конъюнкция) a OR b (дизъюнкция) a XOR b (исключающее ИЛИ, неравнозначность) Результат         Таблица 3 False True False False True True ­ ­ False True False True True ­ ­ ­ ­ ­ False ­ False ­ False Операнды   и   операции   изменять   коррекцией   в   соответствующих   строках   программы   или   продолжить записывать строки программы с различными операндами и операциями. Преподавателю показать на доске часть таблицы с операндами, а учащиеся, при выполнении задания, должны получить результат для соответствующих операндов и операций и заполнить пустые столбцы таблицы. Аналогично заполнить таблицу 4, которая представляет собой таблицу истинности следующих логических операций:  импликация  (условие: если … то),  эквивалентность  (равнозначность),  штрих Шеффера  (отрицание конъюнкции) и стрелка Пирса  (отрицание дизъюнкции). a    b NOT a  OR  b (импликация) False Результат a    b a     b a    b (a AND b)  OR  ((NOT a) AND (NOT b))  (эквивалентность, если … то) NOT (a AND b) (штрих Шеффера) NOT (a OR b) (Стрелка Пирса) True False True            Таблица 4 Операнды a b False False True True False True False True Урок 3.  Логические операции над целыми числами Логические операции могут выполняться не только над логическими операндами, но и над целыми числами. В этом случае выполняются соответствующие побитовые операции с учетом двоичного двухбайтового представления операндов. Алгоритм выполнения операций над целыми числами следующий: ­ ­ ­ осуществляется перевод  пары целых десятичных чисел в  двоичную систему счисления. Двоичные числа записываются в двухбайтовом формате.   затем   выполняется   указанная   логическая   операция   с   каждой   соответствующей   парой   цифр двоичных чисел. При этом отрицательные двоичные числа записываются в дополнительном коде;  полученный результат в виде двоичного числа переводится  в  исходную систему счисления.   Если результатом является отрицательное двоичное число (знаковый разряд =1), то значит, что это число записано  в   дополнительном   коде.   Для   перевода   дополнительного   кода   в   число   заданной   системы   счисления выполняются следующие операции: ­ ­ ­ инвертируются значащие разряды двоичного числа; прибавляется  1  к младшему разряду; переводится полученный результат в исходную систему счисления и заменяется   1   знакового разряда на знак " ­ ".  При выполнении операций отношения,  пара операндов  должна быть  одного и того же типа  (например, integer). Допускается лишь одно исключение ­ один из операндов может иметь вещественный тип (real). Пример программы выполнения логических операций над целыми числами, указанных в табл. 2 приведен ниже. Program V1L04P6; {Выполнение логических операций над целыми числами} Uses Crt; Var a,b,c :integer; {} begin ClrScr; Write('Введи первый операнд '); Read(a); Write('Введи второй операнд '); Read(b); {}      {Инверсия} WriteLn; 23 Логический (булевский) тип данных.  Оператор выбора. Исследование по логическим операциям.  Логические операции над целыми числами WriteLn('Инверсия'); c:=not a; WriteLn('   not', a,' = ',c:4); c:=not b; WriteLn('   not', b,' = ',c:4); {}      {Конъюнкция} WriteLn; WriteLn('Конъюнкция'); c:=a and b; WriteLn('   ',a,' and ',b,' = ',c:4); {Dizjnkcij} WriteLn; WriteLn('Дизъюнкция'); c:=a or b; WriteLn('   ',a,' or ',b,' = ',c:4); {}       {Исключающее ИЛИ} WriteLn; WriteLn('Исключающее ИЛИ'); c:=a xor b; WriteLn('   'a,' xor ',b,' = ',c:4); {} ReadKey end. Результаты работы программы Вариант 2 Введи первый операнд ­13 Введи второй операнд +11 Вариант 1 Введи первый операнд 12 Введи второй операнд 10 Инверсия    not a =  ­13    not b =  ­11  Вариант 3  Введи первый операнд ­14  Введи второй операнд ­12 Инверсия    not a =   12    not b =  ­12             Инверсия    not a =   13    not b =   11 Конъюнкция    12 and 10 =   8 Конъюнкция    ­13 and 11 =   3        Конъюнкция    ­14 and ­12 =  ­16 Дизъюнкция    12 or 10  =  14    ­13 or 11  =  ­5      Дизъюнкция   Исключающее ИЛИ   12 xor 10  =   6   ­13 xor 11  =  ­8      Исключающее ИЛИ   Дизъюнкция    ­14 or ­12  =  ­10 Исключающее ИЛИ    ­14 xor ­12  =   6 Анализируя   полученные   результаты   с   логической   операцией  NOT,   имеем   некую   закономерность,   которая выражается формулой:   где  x ­ целое положительное или отрицательное число. NOT (x) =   ­ (x + 1), Примеры выполнение алгоритма побитовых операций над целыми числами с исходными данными программы V1L04P6,  указанной выше. В двоичных числах жирным шрифтом указаны знаковые разряды. Инверсия not  1210  =  ­(12  +  1)10  =  ­13 not  1010  =  ­(11  +  1)10  =  ­11 not ­1310  =  ­(­13 +  1)10  =   12  not  1110  =  ­( 11 +  1)10  =  ­12 not ­1410  =  ­(­14  +  1)10 =   13 not ­1210  =  ­(­12  +  1)10 =   11 Вариант 1 Вариант 2 Вариант 3 24 Вариант 1 Конъюнкция 12 and 10 and Вариант 2         ­13 and 11 1210  1010  ­­­ 810 and  0 0000000000011002   0 0000000000010102 ­­­­­­­­­­­­­­­­­ 0 0000000000010002 Вариант 3         ­14 and ­12 ­1310    прямой  код    дополнительный код 1 0000000000011012 1 1111111111100102     +    обратный код  1110   ­­­   310 and  0 0000000000000012 ­­­­­­­­­­­­­­­­­­ 1 1111111111100112 0 0000000000010112 ­­­­­­­­­­­­­­­­­­ 0 0000000000000112 ­1410    прямой  код    дополнительнй код 1 0000000000011102 1 1111111111100012     +      0 0000000000000012 ­­­­­­­­­­­­­­­­­­   обратный код      1 1111111111100102 ­1210    прямой  код    дополнительный код 1 0000000000011002 1 1111111111100112     +        обратный код and обратный код результата его инверсия   ­162   +  0 0000000000000012 ­­­­­­­­­­­­­­­­­­ 1 1111111111101002 1 1111111111100102 ­­­­­­­­­­­­­­­­­­ 1 1111111111100002 1 0000000000011112 0 0000000000000012 ­­­­­­­­­­­­­­­­­­ 1 0000000000100002 → → and ­1210 ­1410 Расчет остальных логических операций производится аналогично. Контрольные вопросы и упражнения 1. Сколько значений может принимать логическая переменная, назовите их? 2. Какие действия производятся над логическими переменными? 3. Как работает полный (альтернативный) условный оператор? 4. Как работает неполный условный оператор? 5. Как работает полный и неполный оператор выбора? 6. Что называется логическим условием? 7. Что называется логическим выражением? 8. Определить   существует   ли   треугольник,   стороны   которого   заданы   целыми   значениями  a,  b,  c.     Если существует, то какой треугольник: ­ ­ ­ ­ произвольной формы; равносторонний; равнобедренный; прямоугольный. Пояснение. Использовать для решения задачи свойства перечисленных треугольников 25 Логический (булевский) тип данных.  Оператор выбора. Исследование по логическим операциям.  Логические операции над целыми числами 9. Определить   существует   ли   треугольник,   стороны   которого   заданы   целыми   значениями  a,  b,  c.     Если существует, то какой треугольник: ­ ­ остроугольный; тупоугольный. Пояснение. Использовать для решения задачи теорему косинусов:  c  2  =   a  2   +  b  2  ­  2ab * Cos   по знаку косинуса определить форму треугольника (+ тр­к  остроугольный,  ­  тупоугольный ). Для решения задач использовать программу  vv6,  приведенную выше в качестве примера. 10. Напишите программу вычисления логических операций : импликация, эквивалентность штрих Шеффера и стрелка Пирса для целых чисел (см. табл. 4). Пояснение. Использовать для решения задачи программу vv10.  Для заметок, вопросов и ответов ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ ______________________________________________________________________________________________________ 26

Типы данных языка программирования TP 7.0 . Логический тип

Типы данных языка программирования TP 7.0	.  Логический тип

Типы данных языка программирования TP 7.0 . Логический тип

Типы данных языка программирования TP 7.0	.  Логический тип

Типы данных языка программирования TP 7.0 . Логический тип

Типы данных языка программирования TP 7.0	.  Логический тип

Типы данных языка программирования TP 7.0 . Логический тип

Типы данных языка программирования TP 7.0	.  Логический тип

Типы данных языка программирования TP 7.0 . Логический тип

Типы данных языка программирования TP 7.0	.  Логический тип

Типы данных языка программирования TP 7.0 . Логический тип

Типы данных языка программирования TP 7.0	.  Логический тип

Типы данных языка программирования TP 7.0 . Логический тип

Типы данных языка программирования TP 7.0	.  Логический тип

Типы данных языка программирования TP 7.0 . Логический тип

Типы данных языка программирования TP 7.0	.  Логический тип
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.