Префиксная и постфиксная форма записи. 10 класс. | Презентация к уроку по информатике и икт (10 класс) на тему:
Слайд 1
Префиксная и постфиксная формы записи выражений
Слайд 2
Структура, в которой одни элементы, «подчиняются» другим, называется иерархией . В информатике иерархическую структуру называют деревом . корень лист лист лист лист лист
Слайд 3
Дерево состоит из узлов и связей между ними (они называются дугами) дуга корень листья промежуточные узлы
Слайд 4
A D B E F G C «Сыновья» А : B, C . «Родитель» B : A . «Потомки» А : B, C , D, E, F, G . «Предки» F : A, C . Корень – узел, не имеющий предков (A) . Лист – узел, не имеющий потомков (D, E, F, G) . Высота – наибольшее расстояние от корня до листа.
Слайд 5
Деревья – классификации Псовые Енотовые Медвежьи Кошачьи Гиеновые Мангустовые Псообразные Кошкообразные Хищные Глава 1. Псообразные 1.1. Псовые 1.2. Енотовые 1.3. Медвежьи … Глава 2. Кошкоообразные 2.
1 . Кошачьи 2.2 . Гиеновые 2.3. Мангустовые … многоуровневый список
Слайд 6
Иерархия – файловая система Документы Фотографии Доходы .doc Расходы . odt Отдых.txt Папа.jpg Мама.gif Тексты Документы Тексты Фотографии Доходы.doc Расходы.odt Отдых.txt Папа. jpg Мама. gif Документы Доходы.doc Расходы.odt Отдых.txt Тексты Фотографии Папа. jpg Мама. gif
Слайд 7
Деревья и арифметические выражения a 3 — + * 5 2 b * (a+3)*5-2*b (-(*(+(a,3),5) ,*(2,b) )) ( корень ( левое , правое )) — * + a 3 5 * 2 b Префиксная форма – операция перед данными. Двоичное дерево! ! левый сын правый сын
Слайд 8
Префиксная форма – вычисление с конца — * + a 3 5 * 2 b — * + a 3 5 ( 2 * b ) — * ( a+3) 5 ( 2 * b ) — ( a+3)*5 ( 2 * b ) ( a+3)*5 – (2 * b ) Скобки не нужны, вычисляется однозначно! ! Идём с конца, встретили знак операции – выполнили её.
Слайд 9
Префиксная форма – вычисление с конца (идём с конца, встретили знак операции – выполнили её). Операция записывается перед данными! Пример: ( a+3)* 5–( 2 * b ) -*+a35 * 2 b 1) — * + a 3 5 ( 2 * b ) 2) — * ( a+3) 5 ( 2 * b ) 3) — ( a+3)*5 ( 2 * b ) (корень (левое, правое))
Слайд 10
Постфиксная форма ( левое-правое-корень ) a 3 — + * 5 2 b * (a+3)*5-2*b a 3 + 5 * 2 b * — Вычисляется с начала! ! (a+3) 5 * 2 b * — (a+3)*5 2 b * — (a+3)*5 ( 2 * b ) — (a+3)*5 — ( 2 * b )
Слайд 11
Постфиксная форма .
Вычисляется с начала! (a+3)*5-2*b Пример: a3+5 *2b *- 1) (a+3 ) 5 * 2 b * — 2) (a+3 )*5 2 b * — 3) (a+3 )*5 ( 2 * b ) — левое, правое, корень Операция записывается после данных!
Слайд 12
Постфиксная форма для компьютера предпочтительней Когда программа на языке программирования высокого уровня переводится в машинные коды, математические выражения записываются в бесскобочной постфиксной форме, так и вычисляются. Когда программа доходит до знака операции, все данные для этой операции уже готовы. a 3 + 5 * 2 b * —
Слайд 13
Определите выражени е , соответствующее данному дереву, в «нормальном» виде со скобками (эту форму называют инфиксной – операция записывается между данными). Постройте постфиксную форму. Решение: a-( b+c )*d Постфиксная форма: abc+d *- b c — + a d *
Слайд 14
Записать выражение в префиксной форме: (2* a-3*d)*c+2*b + * — * 2 a * 3 d c * 2 b префиксная форма Идём с конца, встретили знак операции – выполнили её.
Слайд 15
Записать выражение в постфиксной форме: (2* a-3*d)*c+2*b 2 a * 3 d * — c * 2 b * + постфиксная форма Вычисляется с начала!
Слайд 16
(2* a-3*d)*c+2*b 2 * 3 d — c а * b + * 2 *
Слайд 17
Выполнить самостоятельно в тетради: задания 1б, 2а, 3а ( у чебник, стр.
49-50) Ответы: 1б — a-(b-(c-d)) a b c d — — — 2a * + a b + c * 2 d a b + c 2 d * + * 3a 66 (12+6)*(7-3-1)+12 + * + 12 6 — — 7 3 1 12
Слайд 18
Домашнее задание: Учебник стр. 38-40 читать Задания 1в, 2в, 3б,в письменно в тетради
Программа междисциплинарного государственного экзамена по специальности 230105 программное обеспечение вычислительной техники и автоматизированных систем
страница 1
УТВЕРЖДАЮ
Зав.кафедрой МПО ЭВС В.Г.Шаров
2013/2014 уч.год
ПРОГРАММА МЕЖДИСЦИПЛИНАРНОГО ГОСУДАРСТВЕННОГО ЭКЗАМЕНА ПО СПЕЦИАЛЬНОСТИ 230105 ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ И АВТОМАТИЗИРОВАННЫХ СИСТЕМ
-
Понятие дескриптора структуры данных.
Статические структуры данных. Методы размещения и доступ к отдельным элементам. -
Линейные динамические структуры данных. Разновидности списков. Способы реализации и основные операции. -
Нелинейные динамические структуры: деревья. Основные операции над бинарными деревьями. Идеально сбалансированное дерево. АВЛ дерево. Алгоритмы работы со сбалансированным деревом. -
Преобразование ключа. Методы доступа к данным с использованием хеш — функций. Основные определения, операции и алгоритмы. -
Виды записи выражений: префиксная, инфиксная, постфиксная, преимущества одной формы записи перед другой. Алгоритм преобразования инфиксного выражения в постфиксное. -
Логическое программирование. Пролог — язык логического программирования, область применения, принципиальное отличие от процедурных языков. Понятие Пролог-машины. Алгоритм согласования цели. Описание знаний в Прологе. Динамические базы данных.
-
Функциональные языки программирования. Области применения. Принципиальные отличия функциональных языков от процедурных. Рекурсивные функции.
-
Понятия транслятора, компилятора, интерпретатора. Типовая схема компиляции. Основные модули компилятора. -
Синтаксис и семантика языка программирования. Формальные способы описания синтаксиса. Понятие формальной грамматики, основные определения, классификация грамматик. -
Методы синтаксического анализа. Метод рекурсивного спуска. Определение LL-грамматик, синтаксический анализ по LL-грамматикам. -
Классификация операционных систем. -
Планирование процессов. -
Методы решения задач синхронизации процессов. -
Принципы построения файловых систем. -
Построение резидентных программ. -
Построение драйверов. -
Классификация архитектур вычислительных систем.
-
Принцип модульного программирования. -
Особенности программирования в средах «Си-Ассемблер» и «Паскаль-Ассемблер». -
Модели памяти языка Си. -
Жизненный цикл программного обеспечения, модели жизненного цикла. -
Объектно-ориентированный подход к проектированию программного обеспечения, методология RUP. -
Структурный подход к проектированию программного обеспечения. -
Надежность и тестирование программного проекта. -
Понятие компонентного программирования, технологии COM, ActiveX. -
Основные принципы объектно-ориентированного программирования: инкапсуляция, наследование, полиморфизм. -
Объектно-ориентированное программирование: внутренняя организация объекта. -
Объектно-ориентированное программирование: события и делегирование.
-
Обработка исключительных ситуаций; исключительные ситуации как объекты.
-
Данные в языках программирования: понятие типа данных, назначение типов, состав набора типов, способы реализации в языках программирования, принцип строгой типизации. -
Подпрограммы: назначение, виды подпрограмм, организация подпрограмм, передача информации с помощью параметров, реализация в языках программирования, приемы надежного использования. -
Динамические объекты в программах: назначение, модели, типовые действия, реализация в языках программирования, приемы надежного использования, сферы применения. -
Задача и алгоритмы сортировки. Оценка сложности. -
Задача и алгоритмы поиска. Оценка сложности. -
Реляционная модель представления данных. -
Концептуальное проектирование баз данных в СУБД. -
Основные средства языка SQL. -
Структура и функции СУБД. Механизмы реализации. -
Архитектура «клиент-сервер».
Модели и механизмы взаимодействия. -
Принципы построения видеоизображения. Видеосистемы. -
Алгоритмы построения 2D изображений. -
Алгоритмы построения 3D изображений. Перспективные изображения. -
Хранение графических изображений. -
Корректные и некорректные конфигурации ПАБС (параллельных асинхронных блок-схем). -
Параллельное программирование. Нити и потоки. -
Дискретная динамическая система как наиболее общая модель параллельных вычислений. -
Топология вычислительных сетей и их характеристика. Физические среды для передачи данных и их характеристики.
-
Эталонная модель взаимодействия открытых распределенных систем. Функции уровней модели. -
Технология FAST ETHERNET.Основные характеристики. -
Язык разметки гипертекста HTML. -
Технология PHP. -
Технологии Java и ActiveX.
-
Языки написания сценариев (VBScript, JavaScript). -
Объектные модели броузеров Internet Explorer. -
Internet Information Server как пример Web-сервера. -
Стек протоколов TCP/IP. -
Нейрокомпьютерные сети. Основные свойства и структуры. -
Методы обучения нейросетей. -
Задача математического программирования: постановка задачи и методы решения. -
Задача линейного программирования. -
Критерии качества человеко-машинного интерфейса. -
Методы защиты внешнего периметра локальной системы от несанкционированного доступа.
страница 1
Смотрите также:
Программа междисциплинарного государственного экзамена по специальности 230105 программное обеспечение вычислительной техники и автоматизированных систем
38.
17kb. 1 стр.
Методические указания по практическим занятиям и самостоятельной работе студентов по специальностям: 230105 «Программное обеспечение вычислительной техники и автоматизированных систем»
117.96kb. 1 стр.
Рабочая учебная программа для студентов специальности «Комплексное обеспечение информационной безопасности автоматизированных систем»
java — Использование постфиксных/префиксных выражений
Вопрос задан
Изменено 5 лет, 9 месяцев назад
Просмотрено 831 раз
1
Новинка! Сохраняйте вопросы или ответы и организуйте свой любимый контент.
Узнать больше.
Я понимаю в префиксе/постфиксе, не надо заморачиваться насчет старшинства операторов.
Но где мы используем префиксные/постфиксные выражения?
Они внутренне преобразованы компилятором?
Есть ли способ написать выражение в префиксе/постфиксе, и компилятор оценит его для меня?
- Java
- алгоритм
8
РЕДАКТИРОВАТЬ: Если вы на самом деле говорите о постфиксной (RPN) нотации, то нет, компилятор использует инфиксную нотацию для выражений. Вы можете написать алгоритм, который преобразует выражение RPN в инфиксное выражение, попробуйте этот
Постфиксные и префиксные операторы похожи на бинарные операторы, но они работают только с одним операндом.
Приращение постфикса (приращение происходит после оценки переменной):
целое х = 1; интервал у = х++; // y = 1, но после присваивания x = 2 интервал г = х; // г = 2
Приращение префикса:
int x = 1; интервал у = ++х; // y = 2 и до того, как произойдет присваивание x = 2 интервал г = х; // г = 2
Правила, применимые к оператору приращения, также применяются к оператору декремента.
Префикс НЕ (инвертирует логическое выражение):
логическое значение a = true; логическое значение b = !a; // б = ложь, а = истина
Я думаю, что правильно понял вопрос, но я не уверен, что вы имеете в виду, когда говорите, что компилятор «оценивает» их «для вас».
Я подозреваю, что префиксные и постфиксные операции и обозначения в наши дни в основном полезны для теорий, но они использовались «на самом деле». См., например. https://en.wikipedia.org/wiki/Stack_machine, https://en.wikipedia.org/wiki/Forth_%28programming_language%29, http://linux.about.com/library/cmd/blcmdl1_dc.htm, и https://en.wikipedia.org/wiki/Reverse_Polish_notation#Hewlett-Packard
Немногие языки используют постфиксную запись (единственный, о котором я знаю, это PostScript), но результирующие инструкции ЦП будут такими же, как и для инфиксной записи. :
а = (3 + 4) * 5
или
а = * + 3 4 5
Будет преобразовано (в воображаемом очень простом наборе инструкций):
добавить r0 3 4 # r0 = 3 + 4 мул r1 r0 5 # r1 = r0 * 5
Ваш ЦП не заботится об исходной нотации, все, что он принимает, это набор «базовых» инструкций, поэтому компилятор должен преобразовать используемую вами нотацию в инструкции, понятные вашему ЦП.
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
9Приращение 0000. Почему С++ принимает несколько префиксов, но не постфиксов для переменнойВопрос
Изменено 2 года, 8 месяцев назад
Просмотрено 2k раз
7
Новинка! Сохраняйте вопросы или ответы и организуйте свой любимый контент.
Узнать больше.
Изучая Можете ли вы иметь инкрементор и декрементор для одной и той же переменной в одном и том же операторе в c
Я обнаружил, что у одной переменной может быть несколько префиксных операторов увеличения/уменьшения, но только один постфикс
ex:
++--++foo; // действительный фу++--++; // инвалид --фу++; // инвалид
Почему это?
- c++
- приращение
- префикс
- декремент
- постфикс-оператор
Это связано с тем, что в C++ (но не в C) результатом lValue является значение
++3x 90 является назначаемым и, таким образом, может использоваться в цепочке.
Однако результатом x++ является НЕ lValue, а prValue, что означает, что его нельзя присвоить и, следовательно, нельзя связать.
0
В языке C++ префиксные операторы инкремента/декремента возвращают lvalue , а постфиксные операторы возвращают rvalue .
Между тем, все операторы модификации требуют аргументов lvalue. Это означает, что результат инкремента/декремента префикса может быть передан любому другому дополнительному оператору, который требует аргумента lvalue (включая дополнительные инкременты/декременты).
По той же причине в C++ вы можете написать такой код
int i = 0; интервал *p = &++i;
, что увеличит i и сделает p точкой i . Унарные и требуют операнда lvalue, поэтому он будет работать с результатом префикса ++ (но не с постфиксом).
Выражения с несколькими встроенными инкрементами/декрементами префикса, примененными к одному и тому же объекту, приводят к неопределенному поведению , но они, тем не менее, правильно сформированы (т. е. «компилируемые»).
Выражения типа ++foo-- недействительны, так как в C++ постфиксные операторы имеют более высокий приоритет, чем префиксные. Брекеты могут это изменить.
Статические структуры данных. Методы размещения и доступ к отдельным элементам.

Модели и механизмы взаимодействия.