Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Функция записывает n элементов длиной size байт из буфера,заданного указателем p,в поток f. Возвращает число записанных элементов.





Основы алгоритмизации и программирования Вопросы, Ответы

1. Алгоритм, понятие, определение. Способы задания алгоритма. Примеры алгоритмов.

2. Основные свойства алгоритма. Характеристика.

3. Этапы разработки алгоритма решения задачи с помощью ЭВМ. Пример.

4. Основные алгоритмические конструкции: полное и неполное ветвление. Формат объявления на алгоритмическом языке и в виде блок-схем. Назначение. Порядок работы.

5. Основные алгоритмические конструкции: циклы. Формат объявления на алгоритмическом языке и в виде блок-схем. Назначение. Порядок работы.

6. Основные типы данных языка С++. Спецификаторы типов данных. Характеристика. Примеры объявления переменных различного типа.

7. Компиляторы и интерпретаторы. Назначение. Сравнительная характеристика.

8. Интегрированная система программирования. Понятие. Назначение. Визуальные среды быстрого проектирования. Понятие. Примеры.

9. Жизненный цикл программного продукта. Краткая характеристика этапов жизненного цикла.

10. Постановка задачи, спецификация программы. Характеристика обязательных разделов спецификации. Пример спецификации программы.

11. Показатели качества программного продукта. Краткая характеристика основных показателей.

12. Элементы языка С++, идентификатор, ключевые слова, комментарий. Примеры идентификаторов, комментария.

13. Структура программы С++. Пример.

14. Ввод/вывод на консоль. Чтение и запись символов. Примеры.

15. Ввод/вывод на консоль. Чтение и запись строк. Примеры.

16. Форматированный ввод/вывод на консоль. Функции printf(). Спецификаторы формата. Модификатор минимальной ширины поля. Модификатор точности. Примеры.

17. Форматированный ввод/вывод на консоль. Функции scanf(). Спецификаторы формата. Примеры.

18. Переменная. Определение. Спецификаторы класса памяти. Примеры.

19. Константы. Характеристика. Управляющие символьные константы. Примеры использования констант различных типов.

20. Операторы, операнды и операции. Понятия. Унарные операции. Примеры использования.

21. Бинарные операцию Примеры использования.

22. Логические операции. Примеры использования.

23. Операции присваивания. Назначение. Правила использования. Примеры.

24. Множественные присваивания. Назначение. Правила использования. Примеры.

25. Операция последовательного вычисления. Назначение. Правила использования. Примеры.

26. Составные операции. Назначение. Правила использования. Примеры.

27. Тернарная альтернатива. Формат объявления. Порядок работы. Пример использования.

28. Оператор языка С++: «выражение», составной, пустой. Формат объявления. Порядок работы. Пример использования.

29. Оператор безусловного перехода break. Формат объявления. Порядок работы. Пример использования.

30. Оператор безусловного перехода continue. Формат объявления. Порядок работы. Пример использования.



31. Оператор безусловного перехода return. Формат объявления. Порядок работы. Пример использования.

32. Условный оператор if. Формат объявления. Порядок работы. Пример использования.

33. Оператор множественного выбора switch. Формат объявления. Порядок работы. Пример использования.

34. Оператор цикла for. Формат объявления оператора. Порядок работы. Варианты цикла for. Пример использования.

35. Оператор цикла while. Формат объявления оператора. Порядок работы. Пример использования.

36. Оператор цикла do-while. Формат объявления оператора. Порядок работы. Пример использования.

37. Одномерный массив. Определение. Правила доступа к элементам одномерного массива. Примеры использования.

38. Двумерный массив. Определение. Правила доступа к элементам одномерного массива. Примеры использования.

39. Линейный метод сортировки одномерного массива. Понятие. Пример.

40. Метод пузырька сортировки одномерного массива. Понятие. Примеры.

41. Указатель. Понятие. Операторы для работы с указателями. Примеры использования.

42. Функции динамического распределения памяти. Динамическое распределение памяти для массивов. Примеры использования.

43. Строки. Функции для работы со строками. Инициализация массива символов. Примеры.

44. Функция. Объявление, определение и вызов функции. Примеры использования пользовательской функции.

45. Функция. Формальные и фактические параметры. Примеры объявления и использования формальных и фактических параметров.

46. Функция. Область видимости функции. Локальные и глобальные переменные. Примеры использования локальных и глобальных переменных.

47. Аргументы функции main(). Назначение. Примеры использования.

48. Рекурсия. Определение. Особенности формирования рекурсивных алгоритмов. Примеры использования.

49. Структуры. Формат объявления. Доступ к членам структуры. Пример.

50. Битовые поля. Особенности объявления. Пример использования битовых полей.

51. Объединения. Формат объявления. Правила доступа к членам объединения. Особенности, ограничения. Пример использования.

52. Перечисления. Правила работы с перечислениями. Примеры использования.

53. Файловая система языка С. Потоки и файлы. Функция ввода-вывода файловой информации(перечисление). Указатель файла. Пример объявления файловой переменной.

54. Файловая система языка С. Этапы работы с файлами. Функции открытия и закрытия файла. Примеры.

55. Текстовые файлы. Функции для записи символа в файл. Пример программы, записывающей символ в файл.

56. Текстовые файлы. Функции для чтения символа в файл. Пример программы, читающей символ в файл.

57. Текстовые файлы. Функции для записи строк в файл. Пример программы, записывающей строки в файл.

58. Текстовые файлы. Функции для чтения строк из файла. Пример программы, читающей строки из файла.

59. Бинарные файлы. Функции для чтения информации из бинарного файла. Пример использования.

60. Бинарные файлы. Функции для записи информации в бинарный файл. Пример использования.

 

1.Алгоритм, определения, способы представления. Алгоритм - четкое описание последовательности действий, которые необходимо выполнить при решении задачи. Можно сказать, что алгоритм описывает процесс преобразования исходных данных в результаты, т.к. для решения любой задачи необходимо:

1. Ввести исходные данные.

2. Преобразовать исходные данные в результаты (выходные данные).

3. Вывести результаты.

Способы представления алгоритма:

1. словесный;

2. табличный;

3. графический;

4. программа на алгоритмическом языке.

Графический способ представления алгоритма - это блок-схема (рассмотрим на следующем уроке) является наиболее наглядным. Схема алгоритма состоит из графических блоков.
Программа - изложение алгоритма специально для ЭВМ в понятных ей символах, словах и командах (иначе говоря - языком программирования). Четвёртый способ – единственный «понятный» компьютеру как автоматическому исполнителю. Первые три служат для понимания решения задачи самим человеком.

В любом алгоритмическом языке (языке программирования) можно выделить четыре основные конструкции (виды алгоритмов):

1. линейный алгоритм (образование последовательности из нескольких команд);

2. алгоритм ветвления (выбор одной или нескольких команд);

3. циклический алгоритм (повторение одной или нескольких команд с заданным количеством повторов или в зависимости от некоторого условия);

4. вспомогательный алгоритм (самостоятельный алгоритм, облегчающий реализацию модульного принципа составления программы).

2.Основные свойства алгоритма.Дискретность- разбиение процесса обработки информации на более простые этапы.

Детерминированность – точное предписание последовательности выполнения команд.

Определенность – совпадение получаемых результатов, независимо от пользователя, применяемых тех.средствами.

Выполнимость (результативность) – алгоритм должен привести к результату за конечное число шагов.

Массовость – возможность применения алгоритма к целому классу однотипных задач, различающихся конкретным значением.

3. Этапы решения задачи на ЭВМ 1. Записать –что дано в задаче и продумать, какие исходные данные и под какими именами будут введены данные в ячейки памяти. 2.Записать – что требуется найти и продумать, как и под какими именами в ячейках памяти разместятся полученные результаты (промеж и конечного). 3.Продумать основные шаги решения задачи. Сформулировать в форме приказа и записать цель выполнения каждого шага. Если задача сложная, то она разбивается на подзадачи, и действия этого пункта повторяются для каждой подзадачи. 4.Записать команды полученного алгоритма на выбранном языке. 5. Рассмотреть конкретный пример. 6.Отладить программу. 7.Получить результаты и провести иханализ.

7. Компиляторы и интерпретаторы. Компиляторы — это программа на проверку синтаксиса, семантику. Полученный код, называемый исполняемой программой, можно устанавливать и запускать на нужном компьютере без дополнительных преобразований. Интерпретаторы выполняют аналогичную функцию, но делают это построчно всякий раз во время исполнения программы. Байт-код — это промежуточный подход, при котором программа преобразуется в промежуточный двоичный вид, интерпретируемый некой «виртуальной машиной» во время исполнения.

Основные типы данных.

Тип данных определяет:-Внутреннее представление данных в памяти компа, кол-во байт выдает под переменную в оперативную память. -Множество значений, которые могут принимать величины этого типа. - Операции и функции, которые можно применить к величинам этого типа.

Типы: простые( целые, вещественные, перечисления); сложные (массивы, массивы символов, структуры, объединения, файлы, классы(С++)); указатели.

Основные типы данных: int(целый), char(символьный), float(вещественный), double(вещественные с двойной точностью), void(неопределенный), wchar_t(расширенный символьный), bool(логический).

Спецификаторы типов: short(короткий), long(длинный), signed(знаковый), un signet(беззнаковый).

Примеры: char ch; wchar_t wis; bool si; float f, a, b; int a.

 

 

4. 5.Алгоритмически конструкции. Данный блок имеет один вход и один выход. Из простых команд и проверки условий образуются составные команды, имеющие более сложную структуру и тоже один вход и один выход.
Структурный подход к разработке алгоритмов определяет использование только базовых алгоритмических структур (конструкций): следование, ветвление, повторение, которые должны быть оформлены стандартным образом. Рассмотрим основные структуры алгоритма.
Команда следования состоит только из простых команд. На рисунке простые команды имеют условное обозначение S1 и S2. Из команд следования образуются линейные алгоритмы. Примером линейного алгоритма будет нахождение суммы двух чисел, введенных с клавиатуры.

Команда ветвления - это составная команда алгоритма, в которой в зависимости от условия Р выполняется или одно S1, или другое S2 действие. Из команд следования и команд ветвления составляются разветвляющиеся алгоритмы (алгоритмы ветвления). Примером разветвляющегося алгоритма будет нахождение большего из двух чисел, введенных с клавиатуры.

Команда повторения - это составная команда алгоритма, в которой в зависимости от условия Р возможно многократное выполнение действия S. Из команд следования и команд повторения составляются циклические алгоритмы (алгоритмы повторения). На рисунке представлена команда повторения с предусловием. Называется она так потому, что вначале проверяется условие, а уже затем выполняется действие. Причем действие выполняется, пока условие соблюдается. Пример циклического алгоритма может быть следующий. Пока с клавиатуры вводятся положительные числа, алгоритм выполняет нахождение их суммы.
Команда повторения с предусловием не является единственно возможной. Разновидностью команды повторения с предусловием является команда повторения с параметром. Она используется тогда, когда известно количество повторений действия. В блок-схеме команды повторения с параметром условие записывается не в ромбе, а в шестиугольнике. Примером циклического алгоритма с параметром будет нахождение суммы первых 20 натуральных чисел. Цикл с предусловием – выполнение тела цикла повторяется пока условие истинно. Цикл применяется, если не известно число повторений.

(4,5)В команде повторения с постусловием вначале выполняется действие S и лишь затем, проверяется условие P. Причем действие повторяется до тех пор, пока условие не соблюдается. Примером команды повторения с постусловием будет уменьшение положительного числа до тех пор, пока оно неотрицательное. Как только число становится отрицательным, команда повторения заканчивает свою работу. Цикл с постусловием – сначала выполняется тело цикла, затем проверяется условие, если оно верно, то тело цикла выполняется снова и т.д. до тех пор пока условие не станет ложным.
Циклический алгоритм. Цикл с параметром ( со счетчиком) – повторное выполнение тела цикла происходит до тех пор пока параметр i пробегает множество всех значений от начального до конечного. Цикл применяется, если известно число повторений( шагов, интераций). Блок-схема состоит из следующих базовых структур: две составные команды (команда следования и команда повторения с предусловием), далее простая команда. Все команды соединены последовательно.
Пунктирные стрелки в таблице отражают последовательность выполнения технологической цепочки. После записи алгоритма в виде блок-схемы каждая команда переводится на школьный алгоритмический язык, а уже затем на язык программирования.
8.Интегрированная система программирования. Включает в себя следующее:
• редактор для подготовки и редактирования текстов программ;
• компилятор для преобразования программы, написанной по правилам языка, в машинный код. При этом выполняется анализ программы на наличие относительно простых синтаксических ошибок;
• компоновщик для сборки всех подпрограмм, стандартных и “своих”, в единый программный модуль;
• отладчик для выполнения программы, поиска так называемых логических ошибок.
Отладчик позволяет:
• выполнять программу в пошаговом режиме (команды Step Over, Trace Into, Run to Cursor и др. из раздела меню Run);
• следить за значениями переменных во время пошагового выполнения програм-мы, изменять их (команды Add Watch, Evalute/Modify из раздела меню Run);
• работать с точками останова (команда Add Breakpoint из того же раздела меню Run).
Визуальные среды быстрого проектирования. Из универсальных языков программирования сегодня наиболее популярны следующие: Бейсик (Basic), Паскаль (Pascal), Си++ (C++), Ява (Java).

9. Жизненный цикл программных продуктов – это период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации. Этапы жизненного цикла: a) маркетинг рынка программных средств, спецификация требований к программному продукту (для изучения требований к создаваемому программному продукту); b) проектирование структуры программного продукта (связано с алгоритмизацией процесса обработки данных, детализацией функций обработки, разработкой структуры программного продукта, структуры информационной базы задачи, выбором методов и средств создания программ- технологии программирования.); c) программирование (создание программного кода), тестирование, автономная и комплексная отладка программ(являются технической реализацией проектных решений и выполняются с помощью выбранного инструментария разработчика); d) документирование программного продукта, подготовка эксплуатационной и технологической документации(является обязательным видом работ, выполняемых, как правило, не самим разработчиком, а лицом, связанным с распространением и внедрением программного продукта.); e) выход на рынок программных средств, распространение программного продукта(связан с организацией продаж массовому пользователю.); f) эксплуатация программного продукта пользователями(идет параллельно с его сопровождением, при этом эксплуатация программ может начинаться и в случае отсутствия сопровождения или продолжаться в случае завершения сопровождения еще какое-то время.); g) сопровождение программного продукта; h) снятие программного продукта с продажи, отказ от сопровождения(происходят, как правило, в случае изменения технической политики фирмы-разработчика, неэффективности работы программного продукта, наличия в нем неустранимых ошибок, отсутствия спроса).

13.Структура программы С++.Директивы предпроцессора, которые подключают заголовочные файлы. объявление базовых классов объявление произвольных классов объявление глобальных переменных прототипы обычных функций тип_возвращаемого_значения main (список параметров) { последовательность операторов } тип_возвращаемого_значения (список параметров) { последовательность операторов } тип_возвращаемого_значения fn Пример: #include <stdio.h> /* Это определение функции служит ее прототипом */ void f (int a, int b) { printf (“%d \n”, a %b); } int main (void) { f(10,3); //вызов функции с фактическим парам-ми(10 и 3)

return 0; //оператор исп-ся для возврата управления из функции.

10.Постановка задачи, спецификация программы -означает точное, полное и понятное описание того, что происходит при выполнении конкретной программы. Характеристики Хорошей Постановки Задачи: Точность, т.е. исключение любой неоднозначности. Не должно возникать вопросов относительно того, каким будет вывод программы при каждом конкретном вводе. Полнота, т.е. рассмотрение всех вариантов для заданного ввода, включая ошибочный или непредусмотренный ввод, и определение соответствующего вывода. Ясность, т.е. она должна быть понятной и пользователю и системному аналитику, поскольку постановка задачи - это единственный контракт между ними. Пример. Постановка задачи в стандартной форме: НАЗВАНИЕ - Сортировка трех целых чисел; ОПИСАНИЕ - Ввод и вывод трех целых чисел, отсортированных от меньшего числа к большему; ВВОД - Вводятся три целых числа по одному числу на строке. При этом целым числом является одна или несколько последовательных десятичных цифр, которым может предшествовать знак плюс «+» или знак минус «-»; ВЫВОД - Выводятся три введенных целых числа, причем все три выводятся на одной строке. Смежные числа разделяются пробелом. Числа выводятся от меньшего к большему, слева направо; ОШИБКИ - 1) Если введено менее трех чисел, программа ждет дополнительного ввода. 2) Строки ввода, кроме первых трех, игнорируются. 3) Если какая-либо из первых трех строк содержит более одного целого числа, то программа завершает работу и выдает сообщение; ОШИБКА ВВОДА - допускается только одно целое число на строке.

11.Показатели качества программного продукта.Функциональные возможности -способность программного средства обеспечивать решение задач, удовлетворяющих сформулированные потребности заказчиков и пользователей при применении комплекса программ в заданных условиях. Функциональная пригодность -набор и описания субхарактеристики и ее атрибутов, определяющие назначение, номенклатуру, основные, необходимые и достаточные функции программного средства, соответствующие техническому заданию и спецификациям требований заказчика или потенциального пользователя. Правильность (корректность) - способность программного средства обеспечивать правильные или приемлемые для пользователя результаты и внешние эффекты. Способность к взаимодействию - свойство программных средств и их компонентов взаимодействовать с одной или большим числом компонентов внутренней и внешней среды. Защищенность - способность компонентов программного средства защищать программы и информацию от любых негативных воздействий. Надежность - обеспечение комплексом программ достаточно низкой вероятности отказа в процессе функционирования программного средства в реальном времени. Эффективность - свойства программного средства, обеспечивающие требуемую производительность решения функциональных задач, с учетом количества используемых вычислительных (11)ресурсов в установленных условиях. Практичность (применимость) - свойства программного средства, обусловливающие сложность его понимания, изучения и использования, а также привлекательность для квалифицированных пользователей при применении в указанных условиях. и функций. Мобильность - подготовленность программного средства к переносу из одной аппаратно-операционной среды в другую.

12. Элементы языка С++, идентификатор, ключевые слова, комментарий. Идентификатор – имена констант, переменных, меток, типов, объектов, классов, свойств, функций, модулей, программ, полей в структурах и т.д. Правило формирования идентификатора: 1.Может содержать строчные и прописные латинские буквы и знак _. 2.Не должен начинаться с цифры и знака _. 3.Никакие другие символы, в том числе пробелы, не могут входит в состав идентификатора (abc, ABCa, A12_8B, a128b). Ключевые слова – зарезирвированные идентификаторы, которые наделены определенным смыслом (and, auto,const, case). Комментарий – набор символов, размещенный между парами символов /* и */, который игнорируется компилятором. В языке С++ добавляется возможность однострочного комментария с помощью символов //.

14.Система ввода/вывода на С++. Чтение и запись символов. Int getchar (void)-прототип функции. Функция считывает символ с клавиатуры. Функция getchar() возвращает целое число. В его младшем байте содержится код символа, соответствующего нажатой клавиши. Int putchar (int c) – выводит символ на экран в точку определенную текущим положением курсора. getch() – после нажатия клавиши функция немедленно возвращает результат, введенный символ на экране не отображается. getche() – введенный символ отображается на экране.

# include <stdio.h> - подключает заголовочный файл # include <ctype.h> int main (void) { char ch; - объявлена переменная символьного типа (только одна) printf (“Введите символ (для выхода введите точку) . \n”); do { - начало цикла с пост условием ch=getchar (); if (islower (ch)) ch=toupper (ch); - преобразует строчные в прописные elso ch = tolower (ch); - преобразует большие в маленькие putchar (ch); } while (ch!= ‘ . ’); return();

 

 

15.Система ввода/вывода на консоль. Чтение и запись строк.gets() – считывает строку символов, введенных с клавы, и размещает их по адресу, указанному в аргументе после нажатия Enter. puts() – распознает последовательность, пример “\n”, предназначена для перехода на новую строку. Может выводить лишь строки, но не числа, и не форматирует вывод.

# include <stdio.h> - подключает заголовочный файл # include <ctype.h> int main (void) { char str[80]; puts(“Привет! Напиши что-нибудь”); gets(str); printf (“Длина массива = %d”, strlen (str)); - длина строк return (0); }

16. Форматированный ввод/вывод на консоль. Функции printf().
Для форматированного ввода используются функции scanf() и fscanf().
Для преобразования текстовой строки можно использовать scanf(). Она работает аналогично fscanf(), но данные берет из сроки, а не из файла. printf (const char * управляющая строка) – функция возвращает кол-во записанных ею символов, а в случае ошибки – отрицательное число. Управляющая строка состоит из элементов двух видов: - символов, которые выводятся на экран; - спецификаторов формата, начинающихся со знака % , за которым следует код формата. Спецификаторы формата: %с – символ; %d-десятичное целое число со знаком; % e- научный формат, %f – число с плавающей точкой, %s – строка символов; %g – в зависимости от того, какой формат короче; %o – восьмеричное число без знака; %x – шестнадцатеричное число без знака; %u – десятичное целое число без знака. Модификатор минимальной ширины поля. Целое число, размещенное между символом % и кодом формата задает минимальную ширину поля (%10f). Если строка короче, то она дополняется пробелом, если длиннее – выводится полностью. Спецификатор %5d – дополняет число, кол-во цифр которого меньше 5 ведущими нулями. Так что в результате оно будет состоять из 5 цифр. Модификатор точности – указывается после модификатора ширины поля и состоит из точки, за которой следует целое число. Для чисел с форматом %е, %f, %E он означает кол-во значащих цифр дробной части после точки. %10. 4f – определяет вывод на экран числа состоящего из 10 цифр, 4 из которых расположены после дробной части. Для строк модификатор точности задает максимальную длину поля (%5.7s- строка состоит из 5 цифр, но не больше 7). Для целых типов модификатор точности задает минимальное кол-во цифр из которых должно состоять число, если это число < , то оно дополняется ведущими нулями, а если > , то вводится полностью.

 

 

17. Форматированный ввод/вывод на консоль. Функции scanf()-int scanf (const char * управляющая_строка, …) Параметр управляющая_строка определяет порядок считывания значений и присваивания их переменным, указанным в списке аргументов. Управляющая строка состоит из символов: - спецификаторы формата; - разделители; - символы, не являющиеся разделителями. Аргументы scanf должны передаваться по ссылке (пример: scanf (“%d”, &i); ). Спецификаторы те же что у функции printf, плюс еще %[ ] – набор сканируемых символов; % % - знак %.

18.Переменная. Определение. Спецификаторы класса памяти.Формат объявления переменной [спецификатор – класса памяти] спецификатор – типа описатель [ = инициатор] [, описатель [= инициатор] ]..Спецификатор переменной – определяется одним из 4-х слов exstern(определяет глобальную переменную), static, register, auto(определяет локальную переменную и определенно по умолчанию) и указывает каким образом будет распределятся память под переменную с одной стороны и какова область видимости переменной с другой стороны. Спец-р типа – определяет тип переменной, описатель – идентификатор переменной, инициатор – задает начальное или список начальных значений.

* - операция разадресация(косвенная адресация) оператор определяет объявление указателя на переменную какого – либо типа, таким образом указатель может содержать только адрес переменной заданного типа int count(целое число), *m(указатель). char *ch – указатель на строку.

& - вычисление адреса( адресация)

19.Константы. Если переменная объявлена с ключевым словом const, значит, она не должна меняться. После определения константной переменной вы уже не сможете изменить ее значение или передать ее в качестве аргумента функции, которая не гарантирует ее неизменности. Рассмотрим простой пример с константной целой переменной.

const int j = 17; // Целая константа

j = 29; // Нельзя, значение не должно меняться.

Строковые константы состоят из нуля или более символов, заключенных в двойные кавычки. Cимвольные константызаключаются в апострофы (кавычки). Константы с плавающей точкой (называемые вещественными) состоят из цифр, десятичной точки и знаков десятичного порядка е или Е.(1. 2e1 .1234 .1e3). Константы целого типа могут задаваться в десятичной, двоичной, восьмеричной или шестнадцатеричной системах счисления.

 

20. Операнд ― аргумент операции; данные, которые обрабатываются командой; Оператор -совокупность символов, указывающих операцию и значения, либо местонахождение, ее элементов. Классифицировать операторы можно по нескольким признакам:
• по форме записи. Могут быть символьными и операторами-словами. Символьные операторы, такие как «+», «-», «%», зачастую являются аналогами математических операторов (или составлены из них).
• по количеству принимаемых операндов. Бывают унарные (instanceof, void), (бинарные (почти все математические), тернарные (оператор «?:»);
• по выполняемым функциям. операторы присваивания, арифметические операторы, операторы сравнения, логические операторы, побитовые операторы и служебные операторы;
• по приоритету. Он определяет, какой из операторов в выражении должен быть выполнен раньше. • по особенностям синтаксиса. Бывают операторы постфиксные, префиксные и инфиксные. Постфиксные операторы предполагают, что операнды задаются до знака или слова, их обозначающего. В ActionScript к ним относятся «[]», «.» — операторы доступа к свойствам, «()» — оператор вызова функции, «++» и «--» — постфиксное инкрементирование и декрементирование. Префиксные операторы задаются до обрабатываемых ими операндов. Примеры: «!» — логическое отрицание, «—» — унарный минус, typeof — определение типа объекта данных. Инфиксные операторы являются наиболее многочисленными. Обозначающий их знак или сочетание знаков располагается между операндами. Например: /(деление), == (логическое равно), instanceof (оператор определения принадлежности объекта к классу). Все операторы, принимающие два или более операнда, являются инфиксными. Операция — конструкция в языках программирования, аналогичная по записи математическим операциям, то есть специальный способ записи некоторых действий. Наиболее часто применяются арифметические, логические и строковые операции. Унарной операцией или одноместной операцией на множестве называется отображение множества в себя , которое каждому элементу множества , называемому операндом, ставит в соответствие некоторый элемент того же множества, называемый результатом.

Унарную операцию принято обозначать знаком действия, который ставится перед или над операндом. Например, для унарной операции «–» результат её применения к элементу записывается в виде .

Унарная операция, обратная самой себе, называется инволюцией.

Простыми словами: Унарная операция — это операция над одним операндом (побитовое отрицание, унарный минус — меняет знак числа).

 

21. Бинарные операции — это такие операции, которые получают результат на основе значений двух операндов. Все архитектуры команд содержат команды для сложения и вычитания целых чисел. Кроме того, практически во всех архитектурах имеются команды умножения и деления целых чисел.

Бинарная операция может быть определена или как функция член, получающая один параметр, или как функция друг, получющая два параметра. Рассмотрим следующие примеры:
class X (* // друзья
friend X operator-(X); // унарный минус friend X operator-(X,X); // бинарный минус friend X operator-(); // ошибка: нет операндов
friend X operator-(X,X,X); // ошибка: тернарная
// члены (с неявным первым параметром: this)
X* operator amp;(); // унарное amp; (взятие адреса) X operator amp;(X); // бинарное amp; (операция И) X operator amp;(X,X); // ошибка: тернарное
*);
Когда операции ++ и – перегружены, префиксное использвание и постфиксное различить невозможно.

22. Логические операции:
1) Логическая операция И "&&",
2) Логическая операция ИЛИ "||";
3) Логическая операция НЕ "!" или логическое отрицание.

Логические операции образуют сложное (составное) условие из нескольких простых (два или более) условий. Эти операции упрощают структуру программного кода в несколько раз.

23. Операции присваивания — механизм, позволяющий динамически изменять связи объектов данных (как правило, переменных) с их значениями. Порядок выполнения: сначала находится значение выражения стоящего справа, затем это значение помещается в ячейку оперативной памяти, связанный с именем переменной стоящей слева.

В С++ существует пять операций присваивания, не считая основную операцию присваивания: “=”. Операции присваивания в С++:

1. +=операция присваивания-сложения;

2. -=операция присваивания-вычитания;

3. *=операция присваивания-умножения;

4. /=операция присваивания-деления(результат деления зависит от числителя)

5. %=операция присваивания-остатка от деления;

 

24.Множественное присваивание – присваивание нескольким переменным одного и того же значения. Операция последовательного вычисления связывает в одно несколько выражений. Символом этой операции явл-ся запятая, вычисления вычисляются слева направл.

Например:
a=b=c=0;

25. Операция последовательного вычисления «,» обычно используется для вычисления нескольких выражений в ситуациях, где по синтаксису допускается только одно выражение. Однако, запятая, разделяющая параметры функции, не является операцией последовательного вычисления. Порядок вычислений подвыражений внутри выражений не определён. В частности, не стоит предполагать, что выражения вычисляются слева направо. Операция последовательного вычисления обеспечивает вычисление своих операндов по очереди, слева направо.

26. Составное присваивание. Операция составного присваивания состоит из простой операции присваивания, скомбинированной с какой-либо другой арифметической операцией. При составном присваивании вначале выполняется действие, специфицированное бинарной операцией, а затем результат присваивается левому операнду. Оператор n += 5 эквивалентен оператору n = n + 5, но при этом первый оператор легче для понимания и выполняется быстрее.( инкремент ++, декремент --, сдвиг двоич. числа вправо >>=)

 

27. Тернарный оператор (Условная операция) Структура оператора : Выражение_1?Выражение_2:Выражение_3;

Порядок выполнения: Сначала вычисляется выражение_1, которое должно быть целого, вещественного типа или указателем. Если он истинно, то вычисляется выражение_2 и его значение становится результатом всего оператора. Если выражение_1 ложно, то вычисляется выражение_3 и его значение становится результатом оператора.

   

В С++ любое выражение не равное 0, считается истинным

Тернарную альтернативу легко заменить условным оператором.

 

 

28. Оператор языка С++: «выражение», составной, пустой. Оператор выражения – это любое выражение, которое заканчивается «;» . Составной оператор(блок) – это группа логически связанных между собой операторов, рассматриваемых как единое целое, заключенных в {} .Объявление: {[ объявление] оператор; [оператор]; … }. Составной оператор чаще всего исп-ся как составная часть условного оператора, но может быть и самостоятельной единицей. Пустой оператор состоит из пробела и «;» Обычно он исп-ся в операторах циклов и условном операторе, когда действие выполнять не требуется, но по синтаксису требуется хотя бы один оператор; и при необходимости пометить фигурную скобку.

29. Операторы безусловного перехода break. Оператор разрыва прерывает выполнение операторов while, do, for и switch. Он может содержаться только в теле этих операторов. Управление передается оператору программы, следующему за прерванным. Если оператор разрыва записан внутри вложенных операторов while, do, for, switch, то он завершает только непосредственно охватывающий его оператор. Оператор break применяется в двух случаях. Во-первых, в операторе switch с его помощью прерывается выполнение последовательности case (см. раздел "Оператор выбора — switch" ранее в этой главе). В этом случае оператор break не передает управление за пределы блока. Во-вторых, оператор break используется для немедленного прекращения выполнения цикла без проверки его условия, в этом случае оператор break передает управление оператору, следующему после оператора цикла. Когда внутри цикла встречается оператор break, выполнение цикла безусловно (т.е. без проверки каких-либо условий.) прекращается и управление передается оператору, следующему за ним. Оператор break часто используется в циклах, в которых некоторое событие должно вызвать немедленное прекращение выполнения цикла. В следующем примере нажатие клавиши прекращает выполнение функции look_up(): void look_up(char *name){ do { /* поиск имени 'name' */ if(kbhit()) break; } while(!found); /* process match */









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2018 zdamsam.ru Размещенные материалы защищены законодательством РФ.