Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
билеты по информатике.docx
Скачиваний:
46
Добавлен:
18.04.2015
Размер:
341.85 Кб
Скачать

* 24.5. Отображение числовой информации в графическом режиме

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

Приведем с краткими комментариями порядок вывода числовой информации в Паскале:

STR (числовая переменная, строка);

Преобразование числа в строку

OutText (строка); или

OutTextXY (X, Y, строка);

Вывод строки

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

STR (T, S); OutText (S);

Здесь требуется описание переменных: Т – целого или вещественного типа, S – STRING.

Пример 1. Заданы значения двух переменных. Требуется в графическом режиме вывести их сумму, разность, произведение и частное.

Program Graph_Output;

Uses Graph;

Var a, b, m, n : Integer; S, R, P : LongInt; C : Real;

Sa, Sb, SS, SR, SP, SC : String;

Begin

Writeln ('Введите два натуральных числа');

Write ('a='); Readln (a);

Write ('b='); Readln (b);

S:=a+b; R:=a-b; P:=a*b;

STR (a, Sa); STR (b, Sb); STR (S, SS);

STR (R, SR); STR (P, SP);

m:=Detect; Initgraph (m, n, '');

OutTextXY (200, 150, Sa+'+'+Sb+'='+SS);

OutTextXY (200, 170, Sa+'-'+Sb+'='+SR);

OutTextXY (200, 190, Sa+'*'+Sb+'='+SP);

If b<>0 Then

Begin

C:=a/b; STR (C, SC);

OutTextXY (200, 210, Sa+'/'+Sb+'='+SC)

End

Else OutTextXY (200, 210, 'На нуль делить нельзя!');

Readln;

CloseGraph

End.

Напишите программы решения задач:

* 1. Реализуйте модель запуска ракеты: программа должна запросить время до старта (в секундах), изобразить ракету, направленную в небо, и рядом отсчитывать время до старта; когда время закончится, ракета должна подняться вертикально вверх и исчезнуть с экрана.

* 2. Напишите программу «Таймер»: программа должна запросить текущее время, изобразить на экране электронное табло, на котором отображать посекундное изменение времени (модификация: через определенное время раздается звуковой сигнал).

9 Вопрос

Логический тип

Логический, булев (англ. Boolean или logical data type) тип данных — примитивный тип данных в информатике, которые могут принимать два возможных значения, иногда называемых правдой (true) и ложью (false). Присутствует в подавляющем большинстве языков программирования как самостоятельная сущность или реализуется через численный тип. В подавляющем большинстве языков за истину полагается единица, за ложь — ноль.

Название Boolean получило своё название в честь английского математика и логика Джорджа Буля, среди прочего, занимавшегося вопросами математической логики в середине 19 века.

Реализация

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

Доступные операции

К этому типу данных применимы следующие операции:

  • И (логическое умножение) (AND, &, *),

  • ИЛИ (логическое сложение) (OR, |, +),

  • исключающее ИЛИ (умножение с переносом) (xor, NEQV, ^),

  • эквивалентность (равенство) (EQV, =, ==)

  • инверсия (NOT, ~, !)

  • сравнение (>, <, <=, >=)

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

Применение

Традиционным применением булева типа данных являются значения «да»/«нет» в отношении результата более сложных операций.

Все операции сравнения двух величин (равно, больше, меньше), операции вхождения элемента в множество и проверка на пересечение множеств возвращают в качестве результата булев тип.

Реализация в различных языках программирования

Ada

Язык программирования Ada определяет Boolean в пакете Standard как нумерованный тип со значениями False и True в котором False < True.

type Boolean is (False, True);

p : Boolean := True;

if p then

...

end if;

Родственные операторы (=, /=, <, <=, >, >=) применяются ко всем нумерованым типам, включая Boolean. Булевы операторы and, or, xor и not применимы к типу Boolean и любым объявленным подтипам. Булевы операторы также применимы к массивам, содержащим значения Boolean.

Algol

Algol 60 имеет тип данных boolean и соответствующие операторы, установленные в спецификации Algol 60. Тип данных был сокращён до bool в ALGOL 68.

C

В языке программирования C, который не предоставлял булевых значений в C89 (но вводит в C99) вместо значений true/false было установлено сравнение значения с нулём. Для примера, код

if (bool_variable) printf("True!\n");

else printf("False!\n");

равнозначен коду

if (bool_variable != 0) printf("True!\n");

else printf("False!\n");

Это было честно для целочисленного типа данных (integer); тем не менее, бинарные значения чисел с плавающей запятой (floating-point) были приближёнными к выводимым на экран десятичным значениям и это давало ошибки при сравнении. Традиционно, целое содержало одну (или более) булеву переменную (одну на каждый разряд целого).

Python

В языке Python булев тип данных обозначается как bool, для приведения других типов данных к булеву существует функция bool(), работающая по следующим соглашениям:

  • строки: пустая строка — ложь, непустая строка истина.

  • числа: нулевое число — ложь, ненулевое число (в том числе и меньшее единицы) — истина.

  • списки и кортежи: пустой список (кортеж) — ложь, непустой (даже содержащий один элемент, например пустой кортеж) — истина.

  • функции — всегда истина.

Для других объектов результат рассчитывается через метод __nonzero__, который в идеале должен возвращать значения True/False.

Булев тип приводится к следующим типам данных:

  • строковый: 'True' для истины, 'False' для лжи.

  • числовой (встроеные типы int, long, float): 1 для истины, 0 для лжи.

К другим типам данных булев тип не приводится.

Pascal

Описание переменных:

var a, b : Boolean

Арифметических операций нет, но допустимы логические операции: Not, And, Or, Xor, операции отношения =, <> и функции Ord, Pred, Succ.

var

A, B: Byte;

C, D, E, F: Boolean;

begin

A := Ord(False); {A=0}

B := Ord(True); {B=1}

C := Pred(False); {ошибка}

D := Pred(True); {D=False}

E := Succ(False); {E=True}

F := Succ(True); {ошибка}

end.

Ruby

В Ruby булев тип представлен двумя предопределенными переменными: true и false. Появляется логический тип в результате логических операций или вызова логических методов. По традиции, имя логических методов (то есть методов, которые возвращают значение true или false) заканчивается на «?».

В качестве false может выступать nil, а в качестве true — любой объект, в том числе переменная со значением «0» или пустая строка, что часто является неожиданностью для новичков.