Вопросы к зачету по информатике (37 пунктов)
Чтобы открыть весь пост, нажимаем на заголовок
Вопросы с ответами выделены так
Недоделки выделены так
Когда все будет сделано, появится цыль на файл
ВНИМАНИЕ
36 готовых ответов в формате TXT
если кому-то ещё нужно
http://narod.yandex.ru/disk/34897831001/y.rar
ВНИМАНИЕ
36 готовых ответов в формате TXT
если кому-то ещё нужно
http://narod.yandex.ru/disk/34897831001/y.rar
В помощь: лекции -> http://lewdsaddead8.blogspot.com/2011/11/blog-post_15.html
учебник бьерна страуструпа онлайн: http://lib.ru/CPPHB/cpptut.txt
всевозможные учебники: http://www.studfiles.ru/dir/cat32/subj1104.html
1. Языки программирования. Язык С++. Общая характеристика.
2. Среда С++ Builder. Создание интерфейса в этой среде. Основные визуальные компоненты.
3. Визуальные компоненты и их свойства. События и их обработка.
4. Компоненты Edit, Label, Button и их свойства.
5. Программа и алгоритм. Структура программы на С++.
6. Основные правила записи операторов. Комментарии.
7. Директивы препроцессора.
8. Компилятор и компоновщик.
7. Директивы препроцессора.
8. Компилятор и компоновщик.
9. Ошибки и предупреждения. Виды ошибок.
10.Переменные и константы в С++. Основные типы данных в С++. Область действия переменных.
11. Арифметические операции в С++ (сложение, вычитание, умножение, деление, возведение в степень).
12. Оператор присваивания в С++. Операторы сравнения в С++ (равно, не равно, больше, меньше).
13.Логические операции в С++ (И, ИЛИ).
14.Условный оператор в С++. Компоненты CheckBox и RadioButton.
15. Расширенный условный оператор в С++.
16. Оператор передачи управления go to.
17. Оператор множественного выбора switch.
18. Цикл «со счетчиком» в С++.
19.Цикл с постпроверкой в С++.
20.Цикл с предпроверкой в С++.
21. Возможности выхода из цикла в С++.
22.Одномерные массивы в С++.
23.Многомерные массивы в С++.
23.Многомерные массивы в С++.
24.Работа с символьными данными в С++. Класс AnsiString.
25.Строки в С++. Вырезание подстроки. Вычисление длины строки.
26. Виды форм в С++ Builder. Создание многооконных приложений.
27. Функции в С++. Объявление функций, область видимости функций. Функции пользователя.
28. Указатели в С++ и работа с ними.
29. Структуры и объединения в С++.
29. Структуры и объединения в С++.
30. Классы в С++. Конструкторы и деструкторы. Встроенные переменные, встроенные функции.
31. Классы в С++. Инкапсуляция, наследование, полиморфизм.
32. Работа с графикой в С++ Builder. Компоненты Image и Shape.
33.Работа с графикой в С++ Builder. Canvas, Pen, Brush.
34. Анимация в С++ Builder. Организация анимации с помощью циклов. Компонент Timer.
35. Работа со звуком в С++ Builder.
36. Работа с текстовыми файлами в С++ Builder. Компоненты Memo и RichEdit.
37. Работа с компонентами OLE в С++ Builder.
Ответы - когда будет сделано все, появится ссылка на файл
Вопрос 1. Языки программирования. Язык С++. Общая характеристика.
§ главное окно, которое состоит из настраиваемой инструментальной панели и палитры компонентов;
§ окно инспектора объектов (Object Inspector);
§ окно объекта просмотра дерева приложения (Object TreeView);
§ окно формы нового приложения (Form1);
§ окно редактора кода (Unit1.cpp).
Язык программирования – формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования представляет собой набор лексических, семантический и синтаксических правил, которые задают внешний вид программы, и которые исполняет компьютер. Со времени создания первых программируемых машин человечество придумало более двух с половиной тысяч языков программирования и каждый год их число увеличивается.
Языки программирования бывают высокого и низкого уровня
Низкоуровневый язык программирования (язык программирования низкого уровня) — язык программирования, близкий к программированию непосредственно в машинных кодах используемого реального или виртуального (например, Java, Microsoft .NET) процессора. Для обозначения машинных команд обычно применяется мнемоническое обозначение. Это позволяет запоминать команды не в виде последовательности двоичных нулей и единиц, а в виде осмысленных сокращений слов человеческого языка (обычно английских).
Высокоуровневый язык программирования — язык программирования, разработанный для быстроты и удобства использования программистом. Основная черта высокоуровневых языков — это абстракция, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде (или другом низкоуровневом языке программирования) очень длинны и сложны для понимания.
Так, высокоуровневые языки стремятся не только облегчить решение сложных программных задач, но и упростить портатирование программного обеспечения. Использование разнообразных трансляторов и интерпретаторов обеспечивает связь программ, написанных при помощи языков высокого уровня, с различными операционными системами и оборудованием, в то время как их исходный код остаётся, в идеале, неизменным.
Примеры: C, C++, Java, Python, PHP, Ruby, Perl, PureBasic, Delphi, Lisp. Языкам высокого уровня свойственно умение работать с комплексными структурами данных. В большинстве из них интегрирована поддержка строковых типов,объектов, операций файлового ввода-вывода и т. п.
C++ компилируемый статически типизированный язык программирования общего назначения. Поддерживая разные парадигмы программирования, сочетает свойства как высокоуровневых, так и низкоуровневых языков. Наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования. Название «C++» происходит от названия языка C, в котором унарный оператор
++
обозначает инкремент переменной.Являясь одним из самых популярных языков программирования, C++ широко используется для разработки программного обеспечения. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (например, видеоигры). Существует несколько реализаций языка C++ — как бесплатных, так и коммерческих.
При создании C++ Бьёрн Страуструп стремился сохранить совместимость с языком C. Множество программ, которые могут одинаково успешно транслироваться как компиляторами C, так и компиляторами C++, довольно велико — отчасти благодаря тому, что синтаксис C++ был основан на синтаксисе C.
Вопрос 2. Среда С++ builder. Создание интерфейса в этой среде. Основные визуальные компоненты.
C++ Builder — программный продукт, инструмент быстрой разработки приложений , интегрированная среда программирования , система, используемая программистами для разработки программного обеспечения на языке C++.
Изначально разрабатывался компанией Borland Software, а затем её подразделением CodeGear, ныне принадлежащем компании Embarcadero Technologies.
Изначально разрабатывался компанией Borland Software, а затем её подразделением CodeGear, ныне принадлежащем компании Embarcadero Technologies.
C++ Builder объединяет в себе комплекс объектных библиотек , компилятор, отладчик, редактор кода и многие другие компоненты. C++ Builder содержит инструменты, которые при помощи drag-and-drop действительно делают разработку визуальной, упрощает программирование благодаря встроенному редактору интерфейса и пр.
Среда разработки C++ Builder
C++ Builder представляет собой оконное приложение, состоящее из следующих окон:§ главное окно, которое состоит из настраиваемой инструментальной панели и палитры компонентов;
§ окно инспектора объектов (Object Inspector);
§ окно объекта просмотра дерева приложения (Object TreeView);
§ окно формы нового приложения (Form1);
§ окно редактора кода (Unit1.cpp).
Компоненты C++ Builder
Свойства компонентов
Событие (Event) — это то, что происходит во время работы программы. В C++ Builder каждому событию присвоено имя. Например, щелчок кнопкой мыши — это событие Onclick, двойной щелчок мышью — событие OnDblClick.
Страница событий (Events) инспектора объектов показывает список событий, распознаваемых компонентом (программирование для операционных систем с графическим пользовательским интерфейсом, в частности, для Windows 95 или Windows NT предполагает описание реакции приложения на те или иные события, а сама операционная система занимается постоянным опросом компьютера с целью выявления наступления какого-либо события). Каждый компонент имеет свой собственный набор обработчиков событий. В C++ Builder следует писать функции, называемые обработчиками событий, и связывать события с этими функциями. Создавая обработчик того или иного события, вы поручаете программе выполнить написанную функцию, если это событие произойдет.
Для того, чтобы добавить обработчик событий, нужно выбрать на форме с помощью мыши компонент, которому необходим обработчик событий, затем открыть страницу событий инспектора объектов и дважды щелкнуть левой клавишей мыши на колонке значений рядом с событием, чтобы заставить C++ Builder сгенерировать прототип обработчика событий и показать его в редакторе кода. При этом автоматически генерируется текст пустой функции, и редактор открывается в том месте, где следует вводить код. Курсор позиционируется внутри операторных скобок { ... }. Далее нужно ввести код, который должен выполняться при наступлении события. Обработчик событий может иметь параметры, которые указываются после имени функции в круглых скобках.
Вопрос 6. Основные правила записи операторов. Комментарии
Правила записи операторов.
Операторы разделяются точкой с запятой. Точка с запятой является разделителем операторов, и ее отсутствие между операторами является ошибкой.
Отметим, что лишняя точка с запятой в разделе описаний и объявлений является синтаксической ошибкой.
/* это комментарий */
, так и однострочные
// вся оставшаяся часть строки является комментарием
, где // обозначает начало комментария, а ближайший последующий символ новой строки, который не предварён символом \ (либо эквивалентным ему обозначением ??/), считается окончанием комментария.
Директива #include
Компоненты разделяются на видимые (визуальные) и невидимые (невизуальные) (в некоторых средах их классическим примером может послужить таймер). Визуальные компоненты появляются во время выполнения точно так же, как и во время проектирования. Примерами являются кнопки и редактируемые поля. Невизуальные компоненты появляются во время проектирования как пиктограммы на форме. Они никогда не видны во время выполнения, но обладают определенной функциональностью (например, обеспечивают доступ к данным, вызывают стандартные диалоги Windows 95 и др.)
Для добавления компонента в форму можно выбрать мышью нужный компонент в палитре и щелкнуть левой клавишей мыши в нужном месте проектируемой формы. Компонент появится на форме, и далее его можно перемещать, менять размеры и другие характеристики.
Каждый компонент C++ Builder имеет три разновидности характеристик: свойства, события и методы.
Если выбрать компонент из палитры и добавить его к форме, инспектор объектов автоматически покажет свойства и события, которые могут быть использованы с этим компонентом. В верхней части инспектора объектов имеется выпадающий список, позволяющий выбирать нужный объект из имеющихся на формеДля добавления компонента в форму можно выбрать мышью нужный компонент в палитре и щелкнуть левой клавишей мыши в нужном месте проектируемой формы. Компонент появится на форме, и далее его можно перемещать, менять размеры и другие характеристики.
Каждый компонент C++ Builder имеет три разновидности характеристик: свойства, события и методы.
Вопрос 3 Визуальные компоненты и их свойста. Обработка событий в С++
Свойства компонентов
Свойства являются атрибутами компонента, определяющими его внешний вид и поведение. Многие свойства компонента в колонке свойств имеют значение, устанавливаемое по умолчанию (например, высота кнопок). Свойства компонента отображаются а странице свойств (Properties). Инспектор объектов отображает опубликованные (published) свойства компонентов. Помимо published-свойств, компоненты могут и чаще всего имеют общие (public), опубликованные свойства, которые доступны только во время выполнения приложения. Инспектор объектов используется для установки свойств во время проектирования. Список свойств располагается на странице свойств инспектора объектов. Можно определить свойства во время проектирования или написать код для видоизменения свойств компонента во время выполнения приложения.
При определении свойств компонента во время проектирования нужно выбрать компонент на форме, открыть страницу свойств в инспекторе объектов, выбрать определяемое свойство и изменить его с помощью редактора свойств (это может быть п остое поле для ввода текста или числа, выпадающий список, раскрывающийся список, диалоговая панель и т.д.).
Событие (Event) — это то, что происходит во время работы программы. В C++ Builder каждому событию присвоено имя. Например, щелчок кнопкой мыши — это событие Onclick, двойной щелчок мышью — событие OnDblClick.Страница событий (Events) инспектора объектов показывает список событий, распознаваемых компонентом (программирование для операционных систем с графическим пользовательским интерфейсом, в частности, для Windows 95 или Windows NT предполагает описание реакции приложения на те или иные события, а сама операционная система занимается постоянным опросом компьютера с целью выявления наступления какого-либо события). Каждый компонент имеет свой собственный набор обработчиков событий. В C++ Builder следует писать функции, называемые обработчиками событий, и связывать события с этими функциями. Создавая обработчик того или иного события, вы поручаете программе выполнить написанную функцию, если это событие произойдет.
Для того, чтобы добавить обработчик событий, нужно выбрать на форме с помощью мыши компонент, которому необходим обработчик событий, затем открыть страницу событий инспектора объектов и дважды щелкнуть левой клавишей мыши на колонке значений рядом с событием, чтобы заставить C++ Builder сгенерировать прототип обработчика событий и показать его в редакторе кода. При этом автоматически генерируется текст пустой функции, и редактор открывается в том месте, где следует вводить код. Курсор позиционируется внутри операторных скобок { ... }. Далее нужно ввести код, который должен выполняться при наступлении события. Обработчик событий может иметь параметры, которые указываются после имени функции в круглых скобках.
Вопрос 4. Компоненты Edit, Label, Button и их свойства
Edit – поле редактирования текста
Свойство | Определяет (задает) |
Name | Имя компонента. Используется в программе для доступа к компоненту и его свойствам, в том числе к тексту, который находится в поле редактирования |
Text | Текст, который находится в поле ввода/редактирования |
Left | Расстояние от левой границы компонента до левой границы формы |
Top | Расстояние от верхней границы компонента до верхней границы формы |
Height | Высоту поля |
Width | Ширину поля |
Font | Шрифт, используемый для отображения вводимого текста |
ParentFont | Признак |
Label – поле вывода текста
Свойство | Определяет (задает) |
Name | Имя компонента. Используется в программе для доступа к свойствам компонента |
Caption | Отображаемый текст |
Font | Шрифт, используемый для отображения текста |
ParentFont | Признак наследования шрифта родительского компонента |
AutoSize | Признак того, что размер поля определяется его содержимым |
Left | Расстояние от левой границы поля вывода до левой границы формы |
Top | Расстояние от верхней границы поля вывода до верхней границы формы |
Height | Высоту поля вывода |
Width | Ширину поля вывода |
Wordwrap | Признак того, что слова, которые не помещаются в текущей строке, автоматически переносятся на следующую строку (значение свойства AutoSize должно быть false) |
Button – командная кнопка
Свойство | Описание |
Name | Имя компонента. Используется в программе для доступа к компоненту и его свойствам |
Caption | Текст на кнопке |
Enabled | Признак доступности кнопки. Кнопка доступна, если значение свойства равно true, и недоступна, если значение свойства равно false |
. Left | Расстояние от левой границы кнопки до левой границы формы |
Top | Расстояние от верхней границы кнопки до верхней границы формы |
Height | Высота кнопки |
Width | Ширина кнопки |
Вопрос 5. НЕ ДОДЕЛАНО Программа и алгоритм. Структура программы на С++
1) Алгоритм -- одно из фундаментальных понятий информатики. Этим словом обозначают точное и безотказное предписание действий, которые должны быть выполнены. Т.е. мы можем считать алгоритмом любую инструкцию, если:
- ее команды не допускают различных вариантов исполнения;
- указания предусмотрены для всех возможных вариантов развития событий.
Алгоритмы составляют для решения тех или иных задач, т.е. получения необходимых результатов по заданным исходным данным. Вид алгоритма, да и сама возможность его написания зависят от исполнителя (это может быть и человек, и автоматическое устройство), или точнее, от его системы команд (т.е. набора инструкций, которые он "умеет" выполнять). Поэтому, в дальнейшем мы будем пользоваться следующим определением.
Алгоритм решения задачи -- это последовательность допустимых команд исполнителя, определяющих его действия по переходу от исходных данных к искомому результату.
Какими свойствами должен обладать алгоритм? Перечислим их:
- дискретность -- алгоритм делится на отдельные элементарные шаги;
- определенность -- каждая команда однозначно определяет действие исполнителя;
- конечность(результативность) -- алгоритм должен завершаться за конечное число шагов.
Существует много разных способов записи алгоритмов: графические (например, в виде блок-схем), с помощью естественного языка, какими-нибудь условными знаками идр. Но если мы хотим, чтобы алгоритм был исполнен компьютером, он должен быть обязательно записан на особом языке. Такая запись называется программой, а язык -- языком программирования.
Вся информация в компьютере представляется в виде двоичных кодов. В кодах, каждый из которых обозначал одно простейшее действие (вроде, "перенести число из одной ячейки памяти в другую"), приходилось писать и программы для первых ЭВМ. Но это занятие очень сложное и кропотливое, а кроме того, требующее глубокого знания особенностей конкретной машины. Поэтому были придуманы языки программирования высокого уровня. Программа на таком языке -- это последовательность команд, обозначаемых словами естественного языка или их сокращениями. Каждая из них соответствует последовательности из десятков, а то и сотен машинных команд. В результате запись получается гораздо более компактной и понятной.
Но процессор не понимает команд языков высокого уровня, поэтому их предварительно нужно "перевести". Для этого служат особые программы -- трансляторы.
2) Сама по себе программа на языке С++ представляет собой текстовый файл, в котором представлены конструкции и операторы данного языка в заданном программистом порядке. Следующий шаг – это компиляция исходного кода. Под компиляцией понимают процесс, при котором содержимое текстового файла преобразуется в исполняемый машинный код, понимаемый процессором компьютера. Однако компилятор создает не готовую к исполнению программу, а только объектный код (файл с расширением *.obj). Этот код является промежуточным этапом при создании готовой программы. Для того чтобы итоговая исполняемая программа содержала все необходимые реализации функций, используется компоновщик объектных кодов. Компоновщик – это программа, которая объединяет в единый исполняемый файл объектные коды создаваемой программы, объектные коды реализаций библиотечных функций и стандартный код запуска для заданной операционной системы. В итоге и объектный файл, и исполняемый файл состоят из инструкций машинного кода. Однако объектный файл содержит только результат перевода на машинный язык текста программы, созданной программистом, а исполняемый файл – также и машинный код для используемых стандартных библиотечных подпрограмм и для кода запуска.
НЕ ДОДЕЛАНО Вопрос 6. Основные правила записи операторов. Комментарии
Правила записи операторов.
Операторы разделяются точкой с запятой. Точка с запятой является разделителем операторов, и ее отсутствие между операторами является ошибкой.
Отметим, что лишняя точка с запятой в разделе описаний и объявлений является синтаксической ошибкой.
Комментарии
С++ поддерживает, как комментарии в стиле C/* это комментарий */
, так и однострочные
// вся оставшаяся часть строки является комментарием
, где // обозначает начало комментария, а ближайший последующий символ новой строки, который не предварён символом \ (либо эквивалентным ему обозначением ??/), считается окончанием комментария.
Вопрос 7
Директивы препроцессора
Директивы препроцессора представляют собой инструкции, записанные в тексте программы на СИ, и выполняемые до трансляции программы. Директивы препроцессора позволяют изменить текст программы, например, заменить некоторые лексемы в тексте, вставить текст из другого файла, запретить трансляцию части текста и т.п. Все директивы препроцессора начинаются со знака #. После директив препроцессора точка с запятой не ставятся.
Существует строго определенный набор возможных директив, который включает в себя следующие определения:
#define, #elif, #else, #endif, #if, #ifdef, #ifndef, #include, #undef.
Директива #include
Директива #include включает в текст программы содержимое указанного файла. Эта директива имеет две формы:
#include "имя файла"
#include <имя файла>
#include "имя файла"
#include <имя файла>
Директива #define
Директива #define служит для замены часто использующихся констант, ключевых слов, операторов или выражений некоторыми идентификаторами. Идентификаторы, заменяющие текстовые или числовые константы, называют именованными константами. Идентификаторы, заменяющие фрагменты программ, называют макроопределениями, причем макроопределения могут иметь аргументы.
Директива #undef
Директива #undef используется для отмены действия директивы #define. Синтаксис этой директивы следующий #undef идентификатор
Директива отменяет действие текущего определения #define для указанного идентификатора. Не является ошибкой использование директивы #undef для идентификатора, который не был определен директивой #define.
Пример:
Директива #define имеет две синтаксические формы:
#define идентификатор текст
#define идентификатор (список параметров) текст
Директива #undef
Директива #undef используется для отмены действия директивы #define. Синтаксис этой директивы следующий #undef идентификатор
Директива отменяет действие текущего определения #define для указанного идентификатора. Не является ошибкой использование директивы #undef для идентификатора, который не был определен директивой #define.
Пример:
#undef WIDTH
#undef MAX
Вопрос 8 компиллятор и компоновщик
Вопрос 9. Ошибки и предупреждения. Виды ошибок.
#undef MAX
Вопрос 8 компиллятор и компоновщик
Сама по себе программа на языке С++ представляет собой текстовый файл, в котором представлены конструкции и операторы данного языка в заданном программистом порядке. Следующий шаг – это компиляция исходного кода. Под компиляцией понимают процесс, при котором содержимое текстового файла преобразуется в исполняемый машинный код, понимаемый процессором компьютера. Однако компилятор создает не готовую к исполнению программу, а только объектный код (файл с расширением *.obj). Этот код является промежуточным этапом при создании готовой программы. Для того чтобы итоговая исполняемая программа содержала все необходимые реализации функций, используется компоновщик объектных кодов. Компоновщик – это программа, которая объединяет в единый исполняемый файл объектные коды создаваемой программы, объектные коды реализаций библиотечных функций и стандартный код запуска для заданной операционной системы. В итоге и объектный файл, и исполняемый файл состоят из инструкций машинного кода. Однако объектный файл содержит только результат перевода на машинный язык текста программы, созданной программистом, а исполняемый файл – также и машинный код для используемых стандартных библиотечных подпрограмм и для кода запуска.
Вопрос 9. Ошибки и предупреждения. Виды ошибок.
Ошибки, которые могут быть в программе, принято делить на три группы:
синтаксические\орфографические;
ошибки при выполнении программы;
алгоритмические.
Синтаксические \ орфографические - только их может найти компилятор.
типа lable вместо label
Алгоритмические - неправильно написана прога (неправильный порядок, типа сначала ищешь сумму, а потом обьявляешь переменную)типа lable вместо label
Ошибки при выполнении проги- наприм, обращение к файлу которого нет, к выключенному оборудованию
Вопрос 10. Переменные и константы в С++. Основные типы данных в С++. Область действия переменных.
int - целочисленный тип данных.
float - тип данных с плавающей запятой.
double - тип данных с плавающей запятой двойной точности.
bool - логический тип данных.
Переменная – это определенное место в памяти, имеющее имя, по которому мы его используем. Переменная имеет значение (текущее значение), грубо говоря, это то, что записано сейчас по определенному месту в памяти. Переменная также имеет тип, описывающий, какого рода значения в ней хранятся.
Единственное отличие констант от переменных, что после инициализации их нельзя изменить.
Локальные переменные представляют собой переменные, объявленные внутри функции.
Локальные переменные известны только той функции, внутри которой они объявлены.
Несколько функций могут использовать одно и то же имя для локальной переменной без каких-либо конфликтов.
Глобальная переменная представляет собой переменную, чье имя и значение известны на протяжении всей программы.
Чтобы объявить глобальную переменную, объявите переменную в начале вашего исходного файла вне какой-либо функции.
Вопрос 11. Арифметические операции в С++ (сложение, вычитание, умножение, деление, возведение в степень).
В языке С к арифметическим операциям относятся следующие операции:
- вычитание;
+ сложение;
* умножение;
/ деление;
** возведение в степень;
+ сложение;
* умножение;
/ деление;
** возведение в степень;
Операции сложения, вычитания, умножения и деления действуют так же, как в большинстве алгоритмических языков программирования. операции выполняются так: сначала вычисляется значение левого выражения (операнда), затем вычисляется значение выражения, стоящего справа от знака действия.
Далее, в том случае, когда операнды имеют общий тип данных, этот же тип имеет и результат. Поэтому, если применяется деление "/" к целым числам, например, 11/3, то результат тоже будет целым, то есть в данном случае 3. А выражение 1/2 в этом случае будет равно нулю.
Вопрос 12. Оператор присваивания в С++. Операторы сравнения в С++ (равно, не равно, больше, меньше).
< меньше
Вопрос 12. Оператор присваивания в С++. Операторы сравнения в С++ (равно, не равно, больше, меньше).
< меньше
<= меньше или равно
> больше
>= больше или равно
== равно
!= не равно
Вопрос 13. Логические операции в С++ (И, ИЛИ).
Иногда нужно проверить одновременно не одно, а несколько условий. Например, проверить, является ли данное число четным , можно при помощи условия n%2==0 (остаток от деления n на 2 равен 0), а если необходимо проверить, что два данных целых числа n и m являются четными, необходимо проверить справедливость обоих условий: n%2==0 и m%2==0, для чего их необходимо объединить при помощи оператора && (логическое И): n%2==0 && m%2==0.
В C++ существуют стандартные логические операторы: логическое И, логическое ИЛИ, логическое отрицание.
Логическое И является бинарным оператором (то есть оператором с двумя операндами: левым и правым) и имеет вид && (два знака амперсанда). Оператор && возвращает true тогда и только тогда, когда оба его операнда имеют значение true.
Логическое ИЛИ является бинарным оператором и возвращает true тогда и только тогда, когда хотя бы один операнд равен true. Оператор "логическое ИЛИ" имеет вид || (два знака вертикальной черты).
Логическое НЕ (отрицание) является унарным (то есть с одним операндом) оператором и имеет вид ! (восклицательный знак), за которым следует единственный операнд. Логическое НЕ возвращает true, если операнд равен false и наоборот.
Вопрос 14.Условный оператор в С++. Компоненты CheckBox и RadioButton.
В этой программе используется условная инструкция if (если). После слова if в обязательных круглых скобках указывается проверяемое условие (x>0). После этого в фигурных скобках идет блок (последовательность) инструкций, который будет выполнен, если условие истинно, в нашем примере это вывод на экран величины x. Затем идет слово else (иначе) и после него блок инструкций, который будет выполнен, если проверяемое условие неверно.
Вложенные- одна if в другой
Компоненты CheckBox и RadioButton позволяют в приложении настроить какие-либо параметры или выбрать из списка.
Вопрос 15. Расширенный условный оператор в С++.
Оператор If может быть вложенным, т. е. находиться внутри блоков операторов. Для проверки более одного условия и выполнения одного из нескольких блоков операторов используется расширенный условный оператор вида:
If <условие 1> Then
<блок операторов 1>
Elself <условие 2> Then
<блок операторов 2>
Elself <условие n> Then
<блок операторов n>
[Else
<блок операторов Else>]
End If
Для выбора одного из значений в зависимости от выполнения или невыполнения некоторого условия используется условная функция IF, имеющая следующий синтаксис:
If (<условие>, <значение1>, <значение2>)
Эта функция возвращает значение1, если условие истинно, и значение2, если условие ложно.
В качестве условия можно использовать логическое выражение, возвращающее значение True (Истина) или False (Ложь), или любое арифметическое выражение (нулевое значение эквивалентно False, а ненулевое — True).
Вопрос 16. Оператор передачи управления go to.
Оператор goto передаёт управление на заданную метку. Метка должна находиться в той же функции.Оператор GoTo может передавать управление только в строки процедуры, в которой он находится. Строка должна иметь метку строки, на которую может сослаться GoTo. Можно осуществлять безусловную передачу управления с помощью оператора
goto идентификатор ;
Идентификатор должен быть меткой, расположенной в текущей функции.
Вопрос 17. Оператор множественного выбора switch.
Оператор switch используется вместо нескольких операторов if else.
switch ( выражение ) оператор
Выражение должно быть целого типа или типа указателя. Любой оператор внутри оператора может быть помечен одним или более префиксом case следующим образом:
case константное_выражение :
где константное выражение должно иметь тот же тип что и выражение- переключатель; производятся обычные арифметические преобразования. В одном операторе switch никакие две константы, помеченные case, не могут иметь одинаковое значение.
Может также быть не более чем один префикс оператора вида
default :
Когда выполнен оператор switch, проведено вычисление его выражения и сравнение его с каждой case константой. Если одна из констант равна значению выражения, то управление передается на выражение, следующее за подошедшим префиксом case. Если никакая case константа не соответствует выражению, и есть префикс default, то управление передается на выражение, которому он предшествует. Если нет соответствующих вариантов case и default отсутствует, то никакой из операторов в операторе switch не выполняется.
Префиксы case и default сами по себе не изменяют поток управления, который после задержки идет дальше, перескакивая через эти префиксы. Для выхода из switch используется оператор break.
Обычно зависящий от switch оператор является составным. В голове этого оператора могут стоять описания, но инициализации автоматических и регистровых переменных являются безрезультатными.
Если соответствующая метка case не найдена, производится переход на метку default, если она сущствует и выход из оператора в противном случае
Вопрос 18. Цикл «со счетчиком» в С++.
Оператор for предназначен для повторного выполнения оператора или группы операторов заданное количество раз.
for - оператор цикла с известным числом повторений.
Формат:
for (начальное выражение; контрольное выражение ; счетчик)
{блок из одного или нескольких операторов}
Оператор for работает следующим образом:
Перед выполнением цикла вычисляется начальное выражение.
Проверяется контрольное выражение.
Если контрольное выражение истинное, то выполняется блок из одного или нескольких операторов, рассчитывается выражение счетчик, возврат к пункту 2.
А если ложно, то оператор for заканчивает свою работу.
Если нам известно количество действий цикла, то в этом случае нам поможет цикл FOR. Синтаксис его выглядит примерно так:
for (действие до начала цикла;
условие продолжения цикла;
действия в конце каждой итерации цикла) {
инструкция цикла;
инструкция цикла 2;
инструкция цикла N;
}
Вопрос 19.Цикл с постпроверкой в С++.
Оператор do имеет вид
do оператор while (выражение);
Выполнение подоператора повторяется до тех пор, пока значение выражения не станет нулем. Проверка выполняется после каждого выполнения оператора.
do...while - это цикл с постусловием.
Цикл do ... while - цикл с неизвестным числом повторений. В отличие от цикла while условие проверяется в конце цикла. Поэтому тело цикла выполняется хотя бы один раз
do
{блок из одного или нескольких операторов}
while (условие)
Цикл "пока" с постусловием отличается от цикла с предусловием тем, что сначала выполняется блок цикла, а потом проверяется условие. Если условие истинно, то цикл будет выполнен еще раз, и так до тех пор, пока условие будет истинно. Синтаксис цикла с постусловием такой (обратите внимание на обязательную точку с запятой после условия):
Вопрос 20.Цикл с предпроверкой в С++.
Цикл while - цикл с неизвестным числом повторений
while (условие)
{блок из одного или нескольких операторов}
Если условие истинно (принимает не нулевое значение), то выполняется блок из одного или нескольких операторов и происходит возврат на проверку условия. Если условие ложно, происходит выход из цикла. Условие может быть составлено из нескольких выражений, с использованием || (логическое сложение "или") и &&(логическое умножение "и")
Оператор while имеет вид
while ( выражение ) оператор
Выполнение подоператора повторяется, пока значение выражения остается ненулевым. Проверка выполняется перед каждым выполнением оператора.
Оператор называют телом цикла.
При выполнении такого оператора сначала вычисляется значение выражения. Если оно равно 0, то оператор не выполняется и управление передается оператору, следующему за ним. Если значение выражения отлично от 0, то выполняется оператор, затем снова вычисляется выражение и т.д.
Цикл while с предусловием позволяет выполнить одну и ту же последовательность действий пока проверяемое условие истинно. При этом условие записывается до тела цикла и проверяется до выполнения тела цикла.
При выполнении цикла while сначала проверяется условие. Если оно ложно, то цикл не выполняется и управление передается на следующую инструкцию после тела цикла while. Если условие истинно, то выполняется инструкция, после чего условие проверяется снова и снова выполняется инструкция. Так продолжается до тех пор, пока условие будет истинно. Как только условие станет ложно, работа цикла завершится и управление передастся следующей инструкции после цикла.
Вопрос 21. Возможности выхода из цикла в С++.
Оператор
break ;
прекращает выполнение ближайшего охватывающего while, do, for или switch оператора; управление передается на оператор, следующий за законченным. Команда break используется для выхода из текущего цикла или switch.
Команда break может находиться в любом месте программы, однако обычно break ставиться в теле операторов while или do... while.
Continue
Прога переходит на следующий цикл. Оператор continue прерывает выполнение очередного шага цикла и заставляет компьютер начать выполнять новый шаг цикла
Return
Оператор return завершает выполнение функции, в которой он задан, и возвращает управление в вызывающую функцию, в точку, непосредственно следующую за вызовом.
Goto
Оператор gotо (переход к метке)
Можно осуществлять безусловную передачу управления с помощью оператора
goto идентификатор ;
Идентификатор должен быть меткой, расположенной в текущей функции. Осуществляет переход куда угодно. Если хотим выйти из цикла, то метку надо ставить после цикла
Вопрос 22.Одномерные массивы в С++.
Вопрос 23.Многомерные массивы в С++.
Массив-сложный тип данных, который состоит из одного вида данных с разными индексами.
Одномерные( перечень, список)
Двумерные (таблица)
Массив, в свою очередь - это, так сказать, оболочка, объединяющая определенное количество переменных строго одного типа. То количество переменных, которое созданный массив будет объединять, задается при объявлении и указывается в квадратных скобках.
В C++ имя массива представляет собой не только имя, которое вы используете в своих программах, но и является адресом, по которому в памяти находится первый элемент массива.
Многомерные массивы - это массивы с более чем одним индексом.
Чаще всего используются двумерные массивы.
В памяти многомерные массивы представляются как одномерный массив, каждый из элементов которого, в свою очередь, представляет собой массив.
Вопрос 25. Строки в С++. Вырезание подстроки. Вычисление длины строки.
Вопрос 25. Строки в С++. Вырезание подстроки. Вычисление длины строки.
Длина строки: AnsiString A="корoва"; int B; B=A.Length(); Label1->Caption=B; B=6.
Вырезание подстроки: AnsiString A="корoва"; AnsiString B; B=A.SubString(1;3);
char str1[10] = "string1"; // объявление строки с помощью массива
- Строку можно определить как массив символов или как указатель на символ.
- Любая строка заканчивается нулевым символом. (Благодаря этому свойству Вы всегда можете определить конец строки, если у Вас строка занимает меньшее количество символов, чем то количество, которое было указано в квадратных скобках при обявлении массива).
- Для строк возможна упрощенная начальная инициализация (в сравнении с не символьными массивами).
В языках С/С++ нет встроенного строкового типа данных. Для работы со строками используется массив данных типа char.
Вычисление длины строки:
int k;
k = strlen(s);
здесь k — это текущая длина строки, то есть количество полезной информации (формально — количество элементов до нуль-символа). К примеру, для строки
char s[6] = "ABC";
k будет равно 3.
Вопрос 26 Виды форм в С++ Builder. Создание многооконных приложений.
В проект можно добавлять дополнительные формы, что позволяет создавать многооконные приложения. Для этого используются методы
Form1->Hide(); - скрыть форму
Form1->Show(); показать форму
формы есть модальные(пока не закроем,с другим работать не можем) и немодальные(ну наоборот)).
Form1->ShowModal(); показать форму как модальную.
ВАЖНО:
в текущем файле Unit1.cpp доступа ко второй форме пока нет. Его надо организовать явно - добавить в начало файла инструкцию подключения заголовочного файла Unit2.h : в директиве препроцессора #include
Вопрос 27. Функции в С++. Объявление функций, область видимости функций. Функции пользователя.
Любая функция имеет тип, также, как и любая переменная.
Функция может возвращать значение, тип которого в большинстве случаев аналогично типу самой функции.
Если функция не возвращает никакого значения, то она должна иметь тип void (такие функции иногда называют процедурами)
При объявлении функции, после ее типа должно находиться имя функции и две круглые скобки - открывающая и закрывающая, внутри которых могут находиться один или несколько аргументов функции, которых также может не быть вообще.
после списка аргументов функции ставится открывающая фигурная скобка, после которой находится само тело функции.
В конце тела функции обязательно ставится закрывающая фигурная скобка.
Встроенные-уже написанные, сложенные в библиотеке
Пользовательские-пользователь пишет сам, не возвращает никаких значений
IntToStr преобразует аргумент из целого числа в строку символов
StrToInt наоборот
FloatToStr из числа с плавающей запятой в строку символов
StrToFloat
Void фун-ия невозвращающая никакого значения
Одну функцию в другой определять нельзя
Глобальная область видимости
объявление функции устанавливает ее имя, а также тип возвращаемого значения и список параметров. Определение функции, помимо этой информации, задает еще и тело – набор инструкций, заключенных в фигурные скобки. Функция должна быть объявлена перед вызовом.
При включении прототипа в прог. код функцию можно объявлять где угодно.
Напомним, что объявление и определение - разные вещи.
Объект может быть много раз объявлен, но только один раз определён. Прототип функции при этом играет роль объявления функции. В объявлении функции сосредоточена вся необходимая транслятору информация о функции - о списке её параметров и типе возвращаемого значения. И это всё, что в момент трансляции вызова необходимо транслятору для осуществления контроля над типами. Несоответствия типов параметров в прототипе и определении функции выявляются на стадии окончательной сборки программы. Несоответствие спецификации возвращаемого значения в объявлении прототипа и определении функции также является ошибкой.
Чтобы изменить порядок описания функций необходимо использовать прототип функций. Прототип функции выглядит так же как ее заголовок, только с точкой запятой в конце.
Вопрос 28. Указатели в С++ и работа с ними.
Указатель-переменная, в значении которой хранится адрес другой переменной.
На всё, что можно хранить в памяти, можно придумать указатель.
Тип данных*(указатель) имя указателя
Операция адресации
Prt=&A присвоить переменной prt адрес переменной а. для любых типов переменных
Операция косвенной адресации
В=* Prt присвоить переменной в значение, лежащие по адресу Prt/ для всех, кроме void
Переменные и указатели must have 1 тип
Prt=null указатель пока ни на что не указывает
Имя массива – указатель на его первый элемент
Вопрос 29. Структуры и объединения в С++.
Структура-сложный тип данных, определяемый пользователем, который может содержать в себе данные других типов.
Объединения C++ очень похожи на структуры, за исключением того, как C++ хранит их в памяти; кроме того, объединение может хранить значение только для одного элемента в каждый момент времени.
Объединение представляет собой структуру данных, подобную структуре C++, и состоит из частей, называемых элементами.
Объединение определяет шаблон, с помощью которого программы далее объявляют переменные.
Для обращения к определенному элементу объединения ваши программы используют оператор C++ точку.
Чтобы изменить значения элемента объединения внутри функции, ваша программа должна передать переменную объединения в функцию с помощью адреса.
Анонимное объединение представляет собой объединение, у которого нет имени (тэга).
Объединения используются когда необходимо получить доступ к одним и тем же данным разными способами.
Вопрос 30. Классы в С++. Конструкторы и деструкторы. Встроенные переменные, встроенные функции.
Класс-сложный тип данных, определяемый пользователем, который может содержать в себе какие то данные( функции или методы), свойства, события.
Встроенные AnsiString
Пользовательские классы объявляются в заголовочном файле unit1.h, а расписываются в файле модуля unit1.cpp
Конструктор-встроенная функция класса, которая инициализирует внутренние элементы класса при создании экземпляра класса.
Конструктор в классе не обязателен. Имя конструктора совпадает с именем класса.
Деструктор-это функция, которая стирает из памяти динамически размещённый там экземпляр класса, при уничтожении этого экземпляра.
Имя деструктора совпадает с именем класса, но перед ним ставится ~.
Деструктор не обязателен
Вопрос 31. Классы в С++. Инкапсуляция, наследование, полиморфизм.
3 фундаментальных принципа создания классов
1). Инкапсуляция. Принцип сокрытия инфы в классе
Инкапсуляция (encapsulation) - это механизм, который объединяет данные и код, манипулирующий зтими данными, а также защищает и то, и другое от внешнего вмешательства или неправильного использования. Внутри объекта коды и данные могут быть закрытыми (private). Закрытые коды или данные доступны только для других частей этого объекта. Таким образом, закрытые коды и данные недоступны для тех частей программы, которые существуют вне объекта.
Вопрос 32 Работа с графикой в С++ Builder. Компоненты Image и Shape.
с помощью Image проще, чем при непосредственном рисовании на канве формы, расположить в окне приложения несколько изображений и управлять ими. При этом отпадает необходимость сложных и нудных расчетов координат канвы формы, Но помимо этих возможностей у компонента Image имеются свойства, позволяющие работать с различными типами графических файлов.
Memo осуществляет работу с TXT
Rich - с RTF соответственно
Преимущество работы с этими компонентами закл. в том, что они имеют свойство LINES, позволяющее обращаться к содержимому ПОСТРОЧНО. ( это удобно при использовании массива, позволяет обратиться к каждому отдельному элементу массива)
Нередко возникает потребность украсить приложени какими-то картинками.это может быть графическая заставка,фотографии.
Компонент Imageс помощью Image проще, чем при непосредственном рисовании на канве формы, расположить в окне приложения несколько изображений и управлять ими. При этом отпадает необходимость сложных и нудных расчетов координат канвы формы, Но помимо этих возможностей у компонента Image имеются свойства, позволяющие работать с различными типами графических файлов.
Компонент Shape только условно может быть отнесен к средствам отображения графической информации, поскольку просто представляет собой различные геометрические фигуры, соответствующим образом заштрихованные.
Вопрос 33 Работа с графикой в С++ Builder. Canvas, Pen, Brush.
Многие компоненты в С++ имеют свойство canvas,представляющее собой область компонента,на которой можно рисовать или отображать готовые изображения. Canvas содержит св-ва и методы существенно упрощающие графику в С++
У канвы имеется св-во pen-перо.Этот объект,в свою очередь имеющий ряд свойства.Одно из них Color-цвет,которым наносится рисунок.Второе- width(ширина,линия)Ширина задается в пикселах.По умолч.=1Другое существенное свойство компонента — Brush (кисть). Это свойство определяет фон и заполнение замкнутых фигур на канве. Brush-объект,имеющий в свою очередь ряд св-в. Color-определяет цвет заполения и Style-заливки фигуры.
Вопрос 34. Анимация в С++ Builder. Организация анимации с помощью циклов. Компонент Timer.
Компонент Timer позволяет задавать в приложении интервалы времени. Таймер — невизуальный компонент, который может размещаться в любом месте формы. Он имеет два свойства, позволяющие им управлять: Interval — интервал времени в миллисекундах и Enabled — доступность. Свойство Interval задает период срабатывания таймера. Через заданный интервал времени после предыдущего срабатывания таймер срабатывает, вызывая событие OnTimer. Если задать Interval = 0 или Enabled = false, то таймер перестает работать. Чтобы запустить отсчет времени надо или задать Enabled = true, если установлено положительное значение Interval, или задать положительное значение Interval, если Enabled = true.
Например, если требуется, чтобы через 5 секунд после запуска приложения закрылась форма ,на ней надо разместить таймер, задать в нем интервал Interval = 5000, а в обработчик события OnTimer вставить оператор Close, закрывающий окно формы.
Таймер не будет работать, пока в момент, когда нужно запустить таймер, не выполнится оператор
Timer1.Interval := 5000;
Через 5 секунд после этого наступит событие OnTimer. В его обработчике надо задать оператор
Timer1.Interval := 0;
который отключит таймер, после чего можно выполнять требуемые операции.
В момент, когда надо запустить таймер выполняется оператор
Timer1.Enabled := true;
В обработчик события OnTimer, которое наступит через 5 секунд после запуска таймера, можно вставить оператор
Timer1.Enabled:=false;
который отключит таймер.
Вопрос 35 Работа со звуком в С++ Builder.
35. Помимо графических файлов,существует немало файлов звуковых и мультимедиа.
Наиболее простым звуковым файлов явл волновой файл wav.
Наиболе простой процедурой,управляющей звуком,явл процедура Beep.Она не имеет параметров и воспроизводит стандартный звуковой сигнал,установленный в Windows,при наличи звуковой карты.
Если ее нет,звук воспроизводится через динамик компьютера просто в виде короткого щелчка.
Beep()
Более серьезной процедурой явл функция MessageBeep
MB_Iconexlamation-восклицание
MB_Hand-критическая ошибка
MB_Iconquestion-вопрос
MB_OK-стандартный звук
Если невозможно воспроизвести указанный звук,делается попытка воспр-ти стандартный системный звук,уставновленный по умолчанию.Если и это невозможно,то воспр-ся стандартный сигнал через динамик.
MessageBeep(MB_OK)
Мы услышим стандартный звук, что и при выполнении процедуры Веер.Или услышит тихий щелчок,если стандартный звук не установлен
Вопрос 36 Работа с текстовыми файлами в С++ Builder. Компоненты Memo и RichEdit.
C++ Builder также поддерживает работу с текстовыми файлами - .txt .rtf Memo осуществляет работу с TXT
Rich - с RTF соответственно
Преимущество работы с этими компонентами закл. в том, что они имеют свойство LINES, позволяющее обращаться к содержимому ПОСТРОЧНО. ( это удобно при использовании массива, позволяет обратиться к каждому отдельному элементу массива)
+ существуют методы LoadFromFile и SaveToFile, позволяющие соответственно загрузить из файла или сохранить в файл. для этих опреаций нужно указывать полный путь к файлу "D:\Program Files..." итд, если только используемый файл не лежит в папке с вашим проектом.
ОБЯЗАТЕЛЬНО указывать расширение файла.
OLE ― технология управления и обмена информацией между программным интерфейсом других приложений. Связывание и внедрение объектов (Object Linking and Embedding).
OLE позволяет создавать объекты (рисунки, чертежи и текст) в одном приложении, а затем отображать эти объекты в билдере. Например, при помощи технологии OLE можно создать диаграмму в электронной таблице, а затем отобразить ее в C++ Builder. Объекты, помещенные в приложение, использующее OLE, называются OLE-объектами. Для того, чтобы технология OLE действовала, приложение, используемое для создания OLE-объекта, и приложение, в которое помещается OLE-объект, должны поддерживать режим OLE.
Технология в нашем билдере поддерживает работу с файлами Exel, PowerPoint, Word
ВОТ ТУТ Я НЕ ОЧЕНЬ УВЕРЕНА
сохранение может происходить как из билдера ( методом SaveToFile) - тогда документ сохранится в формате .ole и открыть его первоначальным приложением будет нельзя, и его можно будет повторно открыть только билдером в таком же ole-контейнере;
а так же из системы (методом SaveToDocument) - указать формат!! (doc xls ppt) - тогда документ можно открыть из системы первоначальным приложением
ОБЯЗАТЕЛЬНО указывать расширение файла.
Вопрос 37 . Работа с компонентами OLE в С++ Builder.
OLE ― технология управления и обмена информацией между программным интерфейсом других приложений. Связывание и внедрение объектов (Object Linking and Embedding).
OLE позволяет создавать объекты (рисунки, чертежи и текст) в одном приложении, а затем отображать эти объекты в билдере. Например, при помощи технологии OLE можно создать диаграмму в электронной таблице, а затем отобразить ее в C++ Builder. Объекты, помещенные в приложение, использующее OLE, называются OLE-объектами. Для того, чтобы технология OLE действовала, приложение, используемое для создания OLE-объекта, и приложение, в которое помещается OLE-объект, должны поддерживать режим OLE.
Технология в нашем билдере поддерживает работу с файлами Exel, PowerPoint, Word
ВОТ ТУТ Я НЕ ОЧЕНЬ УВЕРЕНА
сохранение может происходить как из билдера ( методом SaveToFile) - тогда документ сохранится в формате .ole и открыть его первоначальным приложением будет нельзя, и его можно будет повторно открыть только билдером в таком же ole-контейнере;
а так же из системы (методом SaveToDocument) - указать формат!! (doc xls ppt) - тогда документ можно открыть из системы первоначальным приложением