Какая операция будет выполняться первой в выражении b b d
Основная идея реляционной алгебры состоит в том, что коль скоро отношения являются множествами, то средства манипулирования отношениями могут базироваться на традиционных теоретико-множественных операциях, дополненных некоторыми специальными операциями, специфичными для баз данных.
- объединения отношений;
- пересечения отношений;
- взятия разности отношений;
- прямого произведения отношений.
- ограничение отношения;
- проекцию отношения;
- соединение отношений;
- деление отношений.
Кроме того, в состав алгебры включается операция присваивания, позволяющая сохранить в базе данных результаты вычисления алгебраических выражений, и операция переименования атрибутов, дающая возможность корректно сформировать заголовок (схему) результирующего отношения.
5.1.1. Общая интерпретация реляционных операций
- При выполнении операции объединения двух отношений производится отношение, включающее все кортежи, входящие хотя бы в одно из отношений-операндов.
- Операция пересечения двух отношений производит отношение, включающее все кортежи, входящие в оба отношения-операнда.
- Отношение, являющееся разностью двух отношений включает все кортежи, входящие в отношение — первый операнд, такие, что ни один из них не входит в отношение, являющееся вторым операндом.
- При выполнении прямого произведения двух отношений производится отношение, кортежи которого являются конкатенацией (сцеплением) кортежей первого и второго операндов.
- Результатом ограничения отношения по некоторому условию является отношение, включающее кортежи отношения-операнда, удовлетворяющее этому условию.
- При выполнении проекции отношения на заданный набор его атрибутов производится отношение, кортежи которого производятся путем взятия соответствующих значений из кортежей отношения-операнда.
- При соединении двух отношений по некоторому условию образуется результирующее отношение, кортежи которого являются конкатенацией кортежей первого и второго отношений и удовлетворяют этому условию.
- У операции реляционного деления два операнда — бинарное и унарное отношения. Результирующее отношение состоит из одноатрибутных кортежей, включающих значения первого атрибута кортежей первого операнда таких, что множество значений второго атрибута (при фиксированном значении первого атрибута) совпадает со множеством значений второго операнда.
- Операция переименования производит отношение, тело которого совпадает с телом операнда, но имена атрибутов изменены.
- Операция присваивания позволяет сохранить результат вычисления реляционного выражения в существующем отношении БД.
Поскольку результатом любой реляционной операции (кроме операции присваивания) является некоторое отношение, можно образовывать реляционные выражения, в которых вместо отношения-операнда некоторой реляционной операции находится вложенное реляционное выражение.
5.1.2. Замкнутость реляционной алгебры и операция переименования
Как мы говорили в предыдущей лекции, каждое отношение характеризуется схемой (или заголовком) и набором кортежей (или телом). Поэтому, если действительно желать иметь алгебру, операции которой замкнуты относительно понятия отношения, то каждая операция должна производить отношение в полном смысле, т.е. оно должно обладать и телом, и заголовком. Только в этом случае будет действительно возможно строить вложенные выражения.
Заголовок отношения представляет собой множество пар . Если посмотреть на общий обзор реляционных операций, приведенный в предыдущем подразделе, то видно, что домены атрибутов результирующего отношения однозначно определяются доменами отношений-операндов. Однако с именами атрибутов результата не всегда все так просто.
Например, представим себе, что у отношений-операндов операции прямого произведения имеются одноименные атрибуты с одинаковыми доменами. Каким был бы заголовок результирующего отношения? Поскольку это множество, в нем не должны содержаться одинаковые элементы. Но и потерять атрибут в результате недопустимо. А это значит, что в этом случае вообще невозможно корректно выполнить операцию прямого произведения.
Аналогичные проблемы могут возникать и в случаях других двуместных операций. Для их разрешения в состав операций реляционной алгебры вводится операция переименования. Ее следует применять в любом случае, когда возникает конфликт именования атрибутов в отношениях — операндах одной реляционной операции. Тогда к одному из операндов сначала применяется операция переименования, а затем основная операция выполняется уже безо всяких проблем.
В дальнейшем изложении мы будем предполагать применение операции переименования во всех конфликтных случаях.
5.1.3. Особенности теоретико-множественных операций реляционной алгебры
Хотя в основе теоретико-множественной части реляционной алгебры лежит классическая теория множеств, соответствующие операции реляционной алгебры обладают некоторыми особенностями.
Начнем с операции объединения (все, что будет говориться по поводу объединения, переносится на операции пересечения и взятия разности). Смысл операции объединения в реляционной алгебре в целом остается теоретико-множественным. Но если в теории множеств операция объединения осмысленна для любых двух множеств-операндов, то в случае реляционной алгебры результатом операции объединения должно являться отношение. Если допустить в реляционной алгебре возможность теоретико-множественного объединения произвольных двух отношений (с разными схемами), то, конечно, результатом операции будет множество, но множество разнотипных кортежей, т.е. не отношение. Если исходить из требования замкнутости реляционной алгебры относительно понятия отношения, то такая операция объединения является бессмысленной.
Все эти соображения приводят к появлению понятия совместимости отношений по объединению: два отношения совместимы по объединению в том и только в том случае, когда обладают одинаковыми заголовками. Более точно, это означает, что в заголовках обоих отношений содержится один и тот же набор имен атрибутов, и одноименные атрибуты определены на одном и том же домене.
Если два отношения совместимы по объединению, то при обычном выполнении над ними операций объединения, пересечения и взятия разности результатом операции является отношение с корректно определенным заголовком, совпадающим с заголовком каждого из отношений-операндов. Напомним, что если два отношения «почти» совместимы по объединению, т.е. совместимы во всем, кроме имен атрибутов, то до выполнения операции типа соединения эти отношения можно сделать полностью совместимыми по объединению путем применения операции переименования.
Заметим, что включение в состав операций реляционной алгебры трех операций объединения, пересечения и взятия разности является очевидно избыточным, поскольку известно, что любая из этих операций выражается через две других. Тем не менее, Кодд в свое время решил включить все три операции, исходя из интуитивных потребностей потенциального пользователя системы реляционных БД, далекого от математики.
Другие проблемы связаны с операцией взятия прямого произведения двух отношений. В теории множеств прямое произведение может быть получено для любых двух множеств, и элементами результирующего множества являются пары, составленные из элементов первого и второго множеств. Поскольку отношения являются множествами, то и для любых двух отношений возможно получение прямого произведения. Но результат не будет отношением! Элементами результата будут являться не кортежи, а пары кортежей.
Поэтому в реляционной алгебре используется специализированная форма операции взятия прямого произведения — расширенное прямое произведение отношений. При взятии расширенного прямого произведения двух отношений элементом результирующего отношения является кортеж, являющийся конкатенацией (или слиянием) одного кортежа первого отношения и одного кортежа второго отношения.
Но теперь возникает второй вопрос — как получить корректно сформированный заголовок отношения-результата? Очевидно, что проблемой может быть именование атрибутов результирующего отношения, если отношения-операнды обладают одноименными атрибутами.
Эти соображения приводят к появлению понятия совместимости по взятию расширенного прямого произведения. Два отношения совместимы по взятию прямого произведения в том и только в том случае, если множества имен атрибутов этих отношений не пересекаются. Любые два отношения могут быть сделаны совместимыми по взятию прямого произведения путем применения операции переименования к одному из этих отношений.
Следует заметить, что операция взятия прямого произведения не является слишком осмысленной на практике. Во-первых, мощность ее результата очень велика даже при допустимых мощностях операндов, а во-вторых, результат операции не более информативен, чем взятые в совокупности операнды. Как мы увидим немного ниже, основной смысл включения операции расширенного прямого произведения в состав реляционной алгебры состоит в том, что на ее основе определяется действительно полезная операция соединения.
По поводу теоретико-множественных операций реляционной алгебры следует еще заметить, что все четыре операции являются ассоциативными. Т. е., если обозначить через OP любую из четырех операций, то (A OP B) OP C = A (B OP C), и следовательно, без введения двусмысленности можно писать A OP B OP C (A, B и C — отношения, обладающие свойствами, требуемыми для корректного выполнения соответствующей операции). Все операции, кроме взятия разности, являются коммутативными, т.е. A OP B = B OP A.
5.1.4. Специальные реляционные операции
В этом подразделе мы несколько подробнее рассмотрим специальные реляционные операции реляционной алгебры: ограничение, проекция, соединение и деление.
Операция ограничения
Операция ограничения требует наличия двух операндов: ограничиваемого отношения и простого условия ограничения. Простое условие ограничения может иметь либо вид (a comp-op b), где а и b — имена атрибутов ограничиваемого отношения, для которых осмысленна операция сравнения comp-op, либо вид (a comp-op const), где a — имя атрибута ограничиваемого отношения, а const — литерально заданная константа.
В результате выполнения операции ограничения производится отношение, заголовок которого совпадает с заголовком отношения-операнда, а в тело входят те кортежи отношения-операнда, для которых значением условия ограничения является true.
- A WHERE comp1 AND comp2 обозначает то же самое, что и (A WHERE comp1) INTERSECT (A WHERE comp2)
- A WHERE comp1 OR comp2 обозначает то же самое, что и (A WHERE comp1) UNION (A WHERE comp2)
- A WHERE NOT comp1 обозначает то же самое, что и A MINUS (A WHERE comp1)
С использованием этих определений можно использовать операции ограничения, в которых условием ограничения является произвольное булевское выражение, составленное из простых условий с использованием логических связок AND, OR, NOT и скобок.
На интуитивном уровне операцию ограничения лучше всего представлять как взятие некоторой «горизонтальной» вырезки из отношения-операнда.
Операция взятия проекции
Операция взятия проекции также требует наличия двух операндов — проецируемого отношения A и списка имен атрибутов, входящих в заголовок отношения A.
Результатом проекции отношения A по списку атрибутов a1, a2, . an является отношение, с заголовком, определяемым множеством атрибутов a1, a2, . an, и с телом, состоящим из кортежей вида 1:v1, a2:v2, . an:vn> таких, что в отношении A имеется кортеж, атрибут a1 которого имеет значение v1, атрибут a2 имеет значение v2, . атрибут an имеет значение vn. Тем самым, при выполнении операции проекции выделяется «вертикальная» вырезка отношения-операнда с естественным уничтожением потенциально возникающих кортежей-дубликатов.
Операция соединения отношений
Общая операция соединения (называемая также соединением по условию) требует наличия двух операндов — соединяемых отношений и третьего операнда — простого условия. Пусть соединяются отношения A и B. Как и в случае операции ограничения, условие соединения comp имеет вид либо (a comp-op b), либо (a comp-op const), где a и b — имена атрибутов отношений A и B, const — литерально заданная константа, а comp-op — допустимая в данном контексте операция сравнения.
Тогда по определению результатом операции сравнения является отношение, получаемое путем выполнения операции ограничения по условию comp прямого произведения отношений A и B.
Если внимательно осмыслить это определение, то станет ясно, что в общем случае применение условия соединения существенно уменьшит мощность результата промежуточного прямого произведения отношений-операндов только в том случае, когда условие соединения имеет вид (a comp-op b), где a и b — имена атрибутов разных отношений-операндов. Поэтому на практике обычно считают реальными операциями соединения именно те операции, которые основываются на условии соединения приведенного вида.
Хотя операция соединение в нашей интерпретации не является примитивной (поскольку она определяется с использованием прямого произведения и проекции), в силу особой практической важности она включается в базовый набор операций реляционной алгебры. Заметим также, что в практических реализациях соединение обычно не выполняется именно как ограничение прямого произведения. Имеются более эффективные алгоритмы, гарантирующие получение такого же результата.
Имеется важный частный случай соединения — эквисоединение и простое, но важное расширение операции эквисоединения — естественное соединение. Операция соединения называется операцией эквисоединения, если условие соединения имеет вид (a = b), где a и b — атрибуты разных операндов соединения. Этот случай важен потому, что (a) он часто встречается на практике, и (b) для него существуют эффективные алгоритмы реализации.
Операция естественного соединения применяется к паре отношений A и B, обладающих (возможно составным) общим атрибутом c (т.е. атрибутом с одним и тем же именем и определенным на одном и том же домене). Пусть ab обозначает объединение заголовков отношений A и B. Тогда естественное соединение A и B — это спроектированный на ab результат эквисоединения A и B по A/c и BBC. Если вспомнить введенное нами в конце предыдущей главы определение внешнего ключа отношения, то должно стать понятно, что основной смысл операции естественного соединения — возможность восстановления сложной сущности, декомпозированной по причине требования первой нормальной формы. Операция естественного соединения не включается прямо в состав набора операций реляционной алгебры, но она имеет очень важное практическое значение.
Операция деления отношений
Эта операция наименее очевидна из всех операций реляционной алгебры и поэтому нуждается в более подробном объяснении. Пусть заданы два отношения — A с заголовком 1, a2, . an, b1, b2, . bm> и B с заголовком 1, b2, . bm>. Будем считать, что атрибут bi отношения A и атрибут bi отношения B не только обладают одним и тем же именем, но и определены на одном и том же домене. Назовем множество атрибутов j> составным атрибутом a, а множество атрибутов j> — составным атрибутом b. После этого будем говорить о реляционном делении бинарного отношения A(a,b) на унарное отношение B(b).
Результатом деления A на B является унарное отношение C(a), состоящее из кортежей v таких, что в отношении A имеются кортежи такие, что множество значений включает множество значений атрибута b в отношении B.
Предположим, что в базе данных сотрудников поддерживаются два отношения: СОТРУДНИКИ ( ИМЯ, ОТД_НОМЕР ) и ИМЕНА ( ИМЯ ), причем унарное отношение ИМЕНА содержит все фамилии, которыми обладают сотрудники организации. Тогда после выполнения операции реляционного деления отношения СОТРУДНИКИ на отношение ИМЕНА будет получено унарное отношение, содержащее номера отделов, сотрудники которых обладают всеми возможными в этой организации именами.
Какая операция будет выполняться первой в выражении b b d
[an error occurred while processing this directive]
─SRP 5 ─PL70 ─TM0 ─HM2 ─DH//-|P-// ─LM5 │. < |||/ Нестандартные ключевые слова языка Бейсик BBC/||| Эта глава содержит детальное описание нестандартных слов, которые Бейсик "понимает". Такие слова называются "ключевыми". Из-за ограниченного объема руководства, некоторые операторы, описанные в других главах, здесь опущены. Каждое описание состоит из нескольких частей: |||/КЛЮЧЕВОЕ СЛОВО/||| /Назначение/ Описание действия слова. Этот раздел предназначен для изучающих Бейсик. /Примеры/ Этот раздел содержит несколько примеров использования слова (но не законченные программы). |||/Описание/||| В этом разделе слово описывается на нормальном компьютерном жаргоне. |||/Синтаксис/||| Следующие символы используются для описания синтаксиса ключевых слов: <>обозначает возможность повторения содержимого скобок ноль или больше раз. [] обозначает возможность использования содержимого скобок. | обозначает альтернативы, одна из которых должна быть использована. обозначает численную константу, такую как "4.5" или "127" обозначает численную переменную, такую как "X" или "length" обозначает или или , или комбинацию их в выражении, например: "4*X+6" обозначает символьную строку заключенную в кавычки, например "GAVINMOUNT" обозначает символьную переменную, такую как A¤ или NAME¤ обозначает или или , или выражение, такое как A¤+"WOMBAT" обозначает что-нибудь, принимающее значение TRUE (истинно) или FASLE (ложно) обознчает любой оператор Бейсика, например, PRINT или GOSUB или PROC. обозначает последовательность букв или цифр, которая соответствует правилам составления имен переменных. ─PE |||/ ABS/||| абслоютное значение /Назначение/ Эта функция преобразовывет отрицательные числа в эквивалентные положительные, остабляя положительные числа без изменений. Например абсолютное значение -9.75 есть 9.75, а абсолютное значение 4.56 ест 4.56. Функция ABS часто используется при вычеслении разницы между двумя значениями если Вы не знаете, которе из них больше другого. Так (K-L) будте положительным, если K больше чем L, и будет отрицательным, если L больше K. Например, если K=9 и L=12, то (K-L) будет равно -3. Однако значение ABS(K-L) будет всегда положительным. В нашем примере ABS(K-L) будет равно 3. /Примеры/ 205 error=ABS(DIFFERENCE) 100 DIFF=ABS(X20-X1) PRINT ABS(temp%-50) |||/Описание/||| Функция возвращает абсолютное значение своего аргумента. |||/Синтаксис/||| =ABS () ---------------------------------------------------------- |||/ ACS/||| арккосинус /Назначение/ Для вычисления угла по значеню его косинуса. Значение угла возвращается в радианах. Для преобразования радиан в градусы используйте функцию DEG. /Примеры/ 10 X=ACS(Y) 1205 angle=DEG (ACS(0.5678)) 330 OUT=ACS(.234) PRINT ACS (0.5) |||/Описание/||| Функция возвращает арккосинус от аргумента. Результат представляется в радианах. |||/Синтаксис/||| =ACS() ----------------------------------------------------------- |||/ ADVAL/||| преобразование аналогового значения в цифровое /Назначение/ Аналоговый сигнал может принимать любые значения, включая дробные. В это заключается его принципиальное отличие от цифрового сигнала, который может принимать только дискретные (фиксированные) значения. Вес воды в емкости - это аналоговое значение, а количество судов в порту - дискретное. Имеется два аналоговых входа в Агате, которые позволяют преобразовывать аналоговое значение подключенного на вход сопротивления в дискретное значение. Как правило в качестве аналоговых устройств используются игровые пульты или джойстики. Цифра в скобках после слова ADVAL указывает номер опрашиваемого входа (1 или 2). ADVAL(0) позволяет определять состояние кнопок на пультах. Для этого надо выделить два младших бита возвращаемого значения X=ADVAL(0) AND 3 после чего полученные значения будут иметь следющую интерпретацию: Х=0 ни одна из кнопок не нажата Х=1 нажата 1-я кнопка Х=2 нажата 2-я кнопка Х=3 нажаты обе кнопки /Примеры/ 980 X=ADVAL(2) 125 TEMP=ADVAL(X) INTENSITY=ADVAL(1) |||/Синтаксис/||| =ADVAL() |||/Описание/||| Функция, возвращающая значение аналогового входа. Имеется два аналоговых входа дискретизируемых на 256 уровней. Однако возвращаемое значение принимает значения от 0 до 65535 (т.е. умноженное на 16). ----------------------------------------------------------- |||/ AND/||| /Назначение/ AND может быть использована как логический оператор, или как "по-битный" оператор. Как логический оператор AND используется для определения выполнени нескольких событий. Например IF X=9 AND Y=0 THEN PRINT "HELLO" Логический AND часто используется как часть конструкции IF. AND. THEN. Побитный AND сравнивает первый бит одного числа с первым битом другого числа. Есле оба бита равны единице, первый бит возвращаемого значения так же устанавливается в еденицу. Эта операция повторяется для всех 32-х битов. Например результат 14 AND 7 равен 6, это хорошо видно из бинарного представления операции 14 0000 0000 0000 0000 0000 0000 0000 1110 7 0000 0000 0000 0000 0000 0000 0000 0111 6 0000 0000 0000 0000 0000 0000 0000 0110 /Примеры/ 300 IF length>9 AND wt>9 THEN PRINT "YES" 100 IF X=2 AND cost>5 AND J=12 THEN PRINT "NO!!" В последнем примере NO!! напечтается только при выполнении всех трех условий. |||/Описание/||| Операция логического "И". |||/Синтаксис/||| = AND = AND ---------------------------------------------------------- |||/ ASC/||| Американский Стандартный Код (ASCII) /Назначение/ Имеется два широко используемых метода представления символов (элементов типа А, Б, 5, ?, и т.д.). Для большинства это просто символы! Так мы можем сказать, что D¤="H" означает "поместить букву H в область памяти, помеченную D¤". Компьютер не может поместить в память просто символ, так как он оперирует только с байтами (т.е. с числами от 0 до 255). Вместо символа он помещает число соответстующее сохраняемому символу ( символу H соответствует число 72). Каждый символ имеет уникальное соответствующее только иму значение, называемое ASCII кодом. Иногда бывает нужно определить, какое значение соответствует конкретному символу. Вы можете псмотреть требуемое значение в конце этой книги или Вы можете сказать компьютеру PRINT ASC("H") Функция ASC возвращает код первого символа в строке аргумента. Так PRINT (ASC("Good") возвращает 71, ASCII код символа "G". Обратный процесс преобразования кода в символ выполняется функцией CHR¤. /Примеры/ 25 X=ASC ("Today") 650 value5=ASC(A¤) |||/Описание/||| Функция возвращает ASCII код первого сивола строки аргумента. Если строка пустая, возвращается значение -1. |||/Синтаксис/||| =ASC() ---------------------------------------------------------- |||/ ASN/||| арксинус /Назначение/ Вычисление угла по синусу. Значение возвращается в радианах, однако его можно перевести в градусы с помощью функции DEG. 1 радиан приблизительно равен 57 7градусам. Математики часто предпочитают работать с радианами. /Примеры/ 340 J=ASN(0.3456) 30 angle=DEG(ASN(.7654)) PRINT ASN(.5) |||/Описание/||| Функция возвращает арксинус от аргумента. Резльтат представляется в радианах. |||/Синтаксис/||| =ASN() ---------------------------------------------------------- |||/ ATN/||| арктангенс /Назначение/ Вычисление угла по тангенсу. Значение возвращается в радианах, однако его можно перевести в градусы с помощью функции DEG. /Примеры/ 1250 X=ATN(Y) 240 value=DEG(ATN(2.31)) |||/Описание/||| Функция возвращает арктангенс от аргумента. Результат представляется в радианах ---------------------------------------------------------- |||/ AUTO/||| автоматический /Назначение/ При вводе программы на Бейсике в память компьютера первая строка как правило имеет номер 10, вторая - номер 20 и т.д. Чтобы не вводить номера строк в ручную используется команда AUTO, которая нумерует строки автоматически. По умолчанию AUTO присваивает первой строке номер 10, следующим 20, 30, 40 и т.д. Команда AUTO 455 присвоит первой строке номер 455, затем 465, 475, 485 и т.д. Другой параметр позволяет пользователю задавть шаг нумерации, который по умолчанию равен 10. Таким образом команда AUTO 465,2 будет нумеровать строки 465, 467, 469, 471 и т.д. Максимальный размер шага равен 255. Для прекравщения автоматического ввода пользователь должен нажать клавишу РЕД. Режим автоматического ввода прерывается, если компьютер пытается сгенерировать строку с номером больше 32767. /Примеры/ AUTO AUTO 220 AUTO 105,5 |||/Синтаксис/||| AUTO[[,]] |||/Описание/||| AUTO - это команда, позволяющая пользователю вводить строки программы не нумеруя их. Так как AUTO - команда, она не может использоваться в составной строке. Режим AUTO прерывается при нажатии клавиши РЕД или при достижении строки превышающей 32767. AUTO может иметь два параметра. Первый параметр указывает номер первой строки, а второй параметр указывает шаг нумерации строк. ---------------------------------------------------------- |||/ BGET#/||| взять байт из файла /Назначение/ Числа и слова могут быть записаны на дискетте. Функция BGET# позволяет считывать одиночные символы или числа в память компьютера с дискетты или по локальной сети. Перед использованием этого оператора необходимо открыть файл с помощью оператора OPENIN, в противном случае будет выдано сообщение об ошибке. Когда файл открыт оператором OPENIN для обращения к файлу выделяется уникальный номер. Этот номер используется во всех последующих операциях с открытым файлом, например прич чтении или при записи в новый файл. /Примеры/ 6000 character=BGET# (channel) 340 next_letter%=BGET#C |||/Описание/||| Функция, берущая байт из открытого ранее файла. Аргумент функции является номером открытого файла. |||/Синтаксис/||| =BGET# ----------------------------------------------------------- |||/ BPUT#/||| поместить байт в файл /Назначение/ Для сохранения байта на дискетте. Число, помещаемое в файл должно иметь значение от 0 до 255. Если вы попытаетесь поместить в файл число, превышающее 255, из него будет вычитаться значение 256 до тех пор, пока разность не станет меньше 256. Полученный результат будет помещен в файл. (Этот оператор предназначен толко бля сохранения байтов - небольших чисел. Для больших и отрицательных чисел используйте оператор PRINT#.) Также, как и дл BGET# файл должен быть педварительно открыт, но оператором OPENOUT. /Примеры/ 30 BPUT# channel,number 700 BPUT#N,32 450 BPUT# STAFF_FILE,A/256 |||/Описание/||| Оператор, который помещает байт в файл. Аргумет является номером файл. Файл необходимо предварительно открыть. |||/Синтаксис/||| BPUT#, ---------------------------------------------------------- |||/ CALL/||| передача управления машинной подпрограмме /Назначение/ Этот оператор приказывает компьютеру выполнить фрагмент машинного кода, который пользователь предварительно поместил в память. Прежде чем воспользоваться этим мощным средством, Вы должны хорошо разобраться в принципах работы компьютера и программировании на ассемблере, так как некорректное использоваие этого оператора может не только уничтожить Вашу программу, но и "завесить" компьютер. К сожалению, из-за ограниченного размера данного руководства здесь не приводится подробное описание на ассемблере. Однако в 14-й главе приведена информация по программированию на ассемблере специфичная для этой версии Бейсика. Для изучения ассемблера рекомендуется изучить соответствующую документацию ПЭВМ АГАТ; описание "Диалоговый Отладочный Комплекс (ДОК) программной системы "Школьница" для ПЭВМ "АГАТ"" (автор В.А.Цикоза); книгу "Язык Ассемблера для персонального компьютера ЭПЛ" (автор У.Морер), а также другую литературу по программированию процессора 6502. /Примеры/ 50 rotate=&0270 60 CALL rotate,J,K,L 200 CALL 1234,A¤,M,J¤ |||/Описание/||| Оператор обращения к машинной подпрограмме. Число параметров переменно, и может быть равно нулю. Прараметры являются переменными, и могут быть изменены в процессе выполнения подпрограммы. Адреса параметров передаются в Блоке Параметров начинающегося с &600. При входе в подпрограмму регистрам процессора A, X, Y, присваиваются значения младших значащих байт переменных A%, X% и Y%. Флаг переноса устанавливается в ссответствии с состоянием младшего значащего бита переменной C%. Перед вызовом подпрограммы компьютер создает Блок Параметров, содержащий следующие данные: Количество параметров - 1 байт адрес 1-го параметра - 2 байта тип 1-го параметра - 1 байт адрес 2-го параметра - 2 байта тип 2-го параметра - 1 байт . - . адрес N-го параметра - 2 байта тип N-го параметра - 1 байт |||/Типы параметров/||| 0- 8 бит байт (например ?X) 4- 32 бит целая переменная (например !X или X%) 5- 40 бит число с плавающей запятой (например V) 128- Строка с заданным адресом (например ¤X-оканчивающаяся &0D) 129- Символьная переменная (например A¤) В случае символьной переменной адрес параметра содержит адрес Информационного Блока Строки, который содержит стартовый адрес, количество выделенных байт и текущую длину строки. |||/Синтаксис/||| CALL ,<,|> -----------------------------------------------------------
[an error occurred while processing this directive]
Какая операция будет выполняться первой при выражении: А v A*C ?
Какая операция будет выполняться первой при выражении: А v A*C ?
2 ответа
умножение конечно. если даже математически написать будет а+а*б. что первее в этом выражении?
Если * это умножение то оно, так как первый знак это логическое или (+)
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.
Какая операция будет выполняться первой в выражении BvB*D
B*D
BvB*D
BvB

Выбери, какие основные угрозы существуют в Интернете Общение с незнакомыми людьми в чатах или по электронной почте Поиск развлечений (например, игр) в … Интернете Угроза заражения вредоносным программным обеспечением (ПО) Установка нелицензионного программного обеспечения
які об‘єкти табличного процесора Excel ви знаєте? які їх властивості
Введи оценку (0 — остановить ввод): >>> 5 Введи балл (0 — остановить ввод): >>> 4 Введи балл (0 — остановить ввод): >>> 2 В … веди балл (0 — остановить ввод): >>> 3 Введи балл (0 — остановить ввод): >>> 0 Список оценок: [5, 4, 2, 3] Успеваемость: 75.0