Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Otvety_po_informatike

.doc
Скачиваний:
6
Добавлен:
02.06.2015
Размер:
183.3 Кб
Скачать

Билет №1

Типы данных 1. Простые: для них возможные значения данных неделимы

Сложные: одно значение этого типа состоит из множества значения данных, которые организуют сложный тип

2. встроенные и определенные программистом (способы создания – базисные, т.е. встроены в язык)

3.Статические: память отводится в момент объявления, требующий размер памяти известен в момент объявления

Динамические: размер данных в момент объявления неизвестен, память выделяется по запросу в процессе выполнения программы

4. Значимые (логическая, арифметическая, перечисление, структура): значение переменной – неотъемлемая собственность, которой является память, необходимая для определенного значения, при этом значение может изменяться

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

Встроенные:

  1. int, uint; short, ushort; long, ulong, sbyte, byte (целый);

  2. char (символьный);

  3. wchar_t (расширенный символьный);

  4. bool (логический);

  5. float (вещественный), double (вещественный с двойной точностью);

  6. decimal (финансовый)

  7. string (строковый)

  8. object

Билет №2

Типы C# и классы MFC. Некоторые классы порождаются непосредственно от CObject. Наиболее широко используемыми среди них являются CCmdTarget, CFile, CDC, CGDIObject и CMenu. Класс ССmdTarget предназначен для обработки сообщений. Класс СFile предназначен для работы с файлами. Класс CDC обеспечивает поддержку контекстов устройств. Об контекстах устройств мы будем говорить несколько позднее. В этот класс включены практически все функции графики GDI. CGDIObject является базовым классом для различных DGI-объектов, таких как перья, кисти, шрифты и другие. Класс СMenu предназначен для манипуляций с меню. От класса CCmdTarget порождается очень важный класс CWnd. Он является базовым для создания всех типов окон, включая масштабируемые ("обычные") и диалоговые, а также различные элементы управления. Наиболее широко используемым производным классом является CFrameWnd. Как Вы увидите в дальнейшем, в большинстве программ главное окно создается с помощью именно этого класса.

От класса CCmdTarget, через класс CWinThread, порождается, наверное, единственный из наиболее важных классов, обращение к которому в MFC-программах происходит напрямую: CWinApp. Это один из фундаментальных классов, поскольку предназначен для создания самого приложения. В каждой программе имеется один и только один объект этого класса. Как только он будет создан, приложение начнет выполняться.

Билет №3

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

Операнд (константы, переменные, обращения к функций) – величины и выражения, над которыми производится действие

Операции определяют действия, которые надо выполнить над операндами. Операции – унарные (над одной операцией) и бинарные

Переменные – величины, которые меняют свое значение в процессе выполнения программы

Константы – элементы данных, значение которых находится в описательной части программы и не изменяется в процессе выполнения программы

Арифметические операции выполняют арифметические действия в выражениях над значениями операндов целочисленных и вещественных типов. Они перегружены; операции «+», «-» м.б. как бинарными, так и унарными; операции деления осуществляют деления над целыми типами; для типов с плавающей или с фиксированной точкой осуществляется обычное деление.

Операции отношения: = =, > =, <=, >, <, !=

Билет №4:

1)Логические операции. бинарные лог. операции: условное «или»; определены только на bool. Операции условные, т.к. вычисления 2го операнда зависит от вычисления значения 1го. В операции условного «или», если 1й операнд true, 2й операнд в этом случае не вычисляется, результат всей операции – true. Ценность условных лог. операций заключается в их эффективности выполнения по времени, также они позволяют вычислить лог. выражение, в котором 2й операнд неизвестен.

2)Операция new: Ключевое слово «new» в языке C# в зависимости от контекста используется по-разному. Оно может задавать модификатор метода или операцию в выражениях. Операция new предназначена для создания объектов. Поскольку каждая реальная программа немыслима без объектов, то операция new встречается практически во всех программах, хотя зачастую в неявной форме. Синтаксически эта операция имеет вид:

new <вызов конструктора объекта>

Чаще всего эта операция встречается в инициализаторах объекта в момент его объявления. Но допустимы и другие способы применения этой операции, например, в качестве фактического аргумента при вызове метода класса. Приведу совсем экзотический пример, где new встречается в арифметическом выражении:

3) Операции приведения к типу. Относятся к 1му приоритету (type <унарное выражение>). Задает явные преобразования типа опр. выражения к типу, указанному в скобках. Существуют явные преобразования внутри арифметического типа, но не существует явного преобразования ариф. типа в тип bool. При определении пользовательских типов задаются явные преобразования во встроенные типы.

4)Условные выражения. Можно заменить условным операндом. Условное выражение начинается с условия, которое заключено в круглые скобки, после которого следует «?» и пара выражений, разделенных «:». Условие является выражением типа bool. Если условие истинное – из пары выражений выбирается 1е. В обратном случае результатом является 2е выражение.

Билет №5

1) Оператор присваивания: Оператор – предложение языка программирования, задающее полное описание некоторого действия, которое необходимо выполнять. Оператор присваивания (:=) предписывает вычислить выражение, заданное в его правой части, и присвоить результат вычисления переменной, идентификатор которой расположен слева от символа присваивания. Переменная и результат вычисления выражения должны иметь совместимые типы данных.

2) Составной оператор объявляет некоторую последовательность операторов в виде одного оператора. Это необходимо при использовании последовательностей операторов в других управляющих операторах. 

Формат составного оператора:

Begin   [<оператор>;]

end;

Билет№6

Оператор if. Должно заключаться в круглые скобки и boolевский тип. Выражения должны давать значения true или false. Каждый из операторов м.б. блоком. Ветви else и if, которые позволяют организовать выбор, могут отсутствовать, м.б. допущена заключительная ветвь else. Краткая форма оператора if задает альт. выбор, выполнять или не выполнять then оператор. Выражение if проверяется в порядке его написания, как только получено значение true, проверка прекращается и выполняется оператор, следующий за выражением, получившем значение true

Билет №7

Оператор switch. Является частным случаем оператора if. Позволяет выбрать из нескольких вариантов, когда выбор варианта определяется значением опр. выражения. Ветвь default может отсутствовать, синтаксически допустимо, чтобы после «:» шла пустая последовательность операций. Константное выражение case должно иметь тот же тип, что switch-выражение. Вначале вычисляется switch-выражение, затем полученное выражение сравнивается с конст. выражениями на совпадение. Как только оно достигается, выполняется соотв. последовательность операторов case ветви. Т.к. последовательный оператор является оператором перехода, он завершает выполнение оператора switch. В случае совпадения конст. выражения со значение switch-ветви будут выполняться case-ветви. Если значение switch-выражения е совпадает ни с одним конст. выражением, то выполняется последовательность оператора ветви default. Заканчивается каждая case-ветвь оператором break, оператор goto в этом случае не принимается. Когда разбор случаев предполагает проверку значения в некотором диапазоне, используется оператор if для формирования спец. значения.

Билет №8

Операторы перехода. Оператор break. Стоит в теле цикла и завершает case-ветвь в операторе switch. При выполнении оператора dreak в теле цикла завершается выполнение внутр. цикла. При этом оператор break помещается в одну из ветвей if, который проверяет условия преждевременного завершения цикла.

Оператор continue используется только в теле цикл. В отличие от оператора break, который завершает внутр. цикл, оператор continue осуществляет переход к следующему циклу.

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

Оператор goto имеет простой синтаксис и семантику: goto [метка|case константное_выражение|default];

Все операторы языка C# могут иметь метку - уникальный идентификатор, предшествующий оператору и отделенный от него символом двоеточия. Передача управления помеченному оператору - это классическое использование оператора goto. Два других способа использования goto (передача управления в case или default-ветвь) используются в операторе switch

Билет №9

Оператор цикла while.Тело цикла выполняется до тех пор, пока выражение while истинно. Имеет 2 модификации с проверкой условия в начале и в конце цикла. Стратегия 1й модификации: «сначала проверить, потом сделать». Каждое выполнение тела цикла – очередной шаг к завершению цикла. Синтаксис 1й модификации: while (выражение) оператор

Билет №10

Оператор цикла do while. Тело цикла выполняется до тех пор, пока выражение while истинно. Имеет 2 модификации с проверкой условия в начале и в конце цикла. Стратегия 2й модификации: «сначала сделать, потом проверить». Тело такого цикла выполняется 1 раз. Синтаксис 2й модификации: do оператор while (выражение)

Билет №11

Оператор цикла for: Обобщает конструкцию типа ариф. прогрессии. Оператор, стоящий после закрытия скобок задает тело цикла является блок. Количество раз выполнения тела цикла зависит от 3х направленных элементов, которые задаются в круглых скобках.

for (инициализаторы; условия; список выражений, оператор)

Инициализаторы задают начальное значение одной или нескольких переменных, которые называются счетчиками или переменными циклами. В большинстве случаев цикл for имеет всего лишь один счетчик. Условие задает окончание цикла. Выражение, получаемое при вычислении, принимает значение true или false. Список выражений задается через запятую, показывает как меняются счетчики на каждом шаге выполнения. Если условие цикла – истина, то выполняется тело цикла, затем значение счетчиков меняется и условие вновь проверяется. Как только условие становится ложным, цикл завершает свою работу. В цикле for тело цикла может ни разу не выполняться, если тело цикла является ложным после инициации. В цикле for может происходить зацикливание, если условие всегда истинно. При нормальных условиях тело цикла выполняется конечное число раз. Счетчики цикла объявляются инициаторами и являются переменными, т.к. после завершения цикла они перестают существовать. В тех случаях, когда предусматривается возможность преждевременного завершения цикла при использовании одного из операторов перехода, счетчики объявляются до цикла. Это позволяет анализировать значение счетчиков при выходе из цикла. Если телом цикла является циклическая структура – ложные циклы. Все операторы внутр. цикла должны располагаться в теле внешнего цикла.

Билет №12

Оператор цикла foreach. Удобен при работе с массивами

Синтаксис: foreach(тип идентификатор in контейнер) оператор

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

Серьезным недостатком циклов foreach является то, что цикл работает только на чтение, но не на запись элементов. Так что наполнять контейнер элементами приходится с помощью других операторов цикла.

Билет №13

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

Процедура – часть программы с именем, которую можно вызвать по имени для опр. действий. Процедура не может выступать как операнд в выражении. Упоминание этого имени в тексте программы приводит к активизации процедуры и называется ее вызовом.

Функция аналогична процедуре, но имеет 2 отличия: 1) функция передает в точку вызова скалярное выражение; 2) функцию можно использовать как операнд

Методы класса – процедуры и функции, связанные с классом, обеспечивающие функционирование данных класса. Гл. роль в программной системе играют данные, а функции лишь служат данным. Библиотека классов FCL существенно расширяет возможности языка С #. Framework Class Library. Знание класса этой библиотеки необходимо для практического применения на языке С #.

Особенности процедуры: процедура возвращает формальный результат void; вызов процедуры – оператор языка; процедура имеет входные и выходные элементы

Описание методов (процедур и функций). Синтаксис

Синтаксически в описании метода различают две части - описание заголовка и описание тела метода:

заголовок_метода

тело_метода

Рассмотрим синтаксис заголовка метода:

[атрибуты][модификаторы]{void| тип_результата_функции}

имя_метода([список_формальных_аргументов])

Имя метода и список формальных аргументов составляют сигнатуру метода. В сигнатуру не входят имена формальных аргументов и тип возвращаемого результата. Модификатор доступа имеет 4 возможных значения. Модификатор public показывает, что метод открыт и доступен для вызова клиентами и потомками класса. Модификатор private говорит, что метод предназначен для внутреннего использования в классе и доступен для вызова только в теле методов самого класса. Если модификатор доступа опущен, то по умолчанию предполагается, что он имеет значение private и метод является закрытым для клиентов и потомков класса.

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

Методы A и B являются закрытыми, а метод С - открыт. Методы A и С реализованы процедурами, а метод B - функцией, возвращающей целое значение.

Билет №14

Список формальных аргументов может содержать фикс. число аргументов, разделенных символом «;»

Синтаксис: [ref | out | params] тип_аргументы имя_аргументы

Обязательным является указание типа и имени аргумента, ограниченных типов аргументов нет. Тип м.б. массивом, классом, структурой, перечислением, функциональным типом. Несмотря на фикс. число аргументов, есть возможность использовать, передавать. Для реализации в списке формальных аргументов необходимо задать ключевое слово – params. Оно задается 1 раз и указывается только для последнего аргумента в списке. При вызове метода этому формальному аргументу соответствует произвольное число фактических элементов. Аргументы метода разделяются на три группы: входные, выходные и обновляемые. Аргументы первой группы передают информацию методу, их значения в теле метода только читаются. Аргументы второй группы представляют собой результаты метода, они получают значения в ходе работы метода. Аргументы третьей группы выполняют обе функции. Их значения используются в ходе вычислений и обновляются в результате работы метода. Выходные аргументы всегда должны сопровождаться ключевым словом out, обновляемые - ref. Что же касается входных аргументов, то, как правило, они задаются без ключевого слова, хотя иногда их полезно объявлять с параметром ref, о чем подробнее скажу чуть позже. Если аргумент объявлен как выходной с ключевым словом out, то в теле метода обязательно должен присутствовать оператор присваивания, задающий значение этому аргументу. В противном случае возникает ошибка еще на этапе компиляции.

Вызов метода. метод может вызываться в выражениях или быть вызван как оператор. В качестве оператора может использоваться любой метод - как процедура, так и функция. Конечно, функцию разумно вызывать как оператор, только если она обладает побочным эффектом. В последнем случае она вызывается ради своего побочного эффекта, а возвращаемое значение никак не используется. Подобную роль играет использование некоторых выражений с побочным эффектом в роли оператора, классическим примером является оператор x++ ;.

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

Сам вызов метода, независимо от того, процедура это или функция, имеет один и тот же синтаксис:

имя_метода([список_фактических_аргументов])

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

[ref|out]выражение

  Билет №15

План:

  1. создание нового проекта;

  2. разработка элемента управления;

  3. добавление пользовательского свойства в элемент управления;

  4. добавление проекта для тестирования элемента управления;

  5. размещение элемента управления в приложении;

  6. запуск приложения

Организация интерфейса. Создание и выполнение Windows-проекта. По умолчанию Windows-проект содержит класс Form1 - наследника класса Form. Этот класс содержит точку входа в проект - процедуру Main, вызывающую статический метод Run класса Application, который создает объект класса Form1 и открывает форму - видимый образ объекта - для интерактивной работы пользователя. Открываемая форма содержит пользовательский интерфейс - окошки, кнопки, списки, другие элементы управления, меню. Все эти элементы способны реагировать на события, возникающие при выполнении пользователем каких-либо действий - нажатии кнопок, ввода текста, выбора пунктов меню.

Доступные элементы управления, отображаемые на специальной панели (Toolbox), перетаскиваются на форму. Этот процесс поддерживается особым инструментарием - дизайнером форм (Designer Form)

Представление кода с файлом Form1.cs — содержит файл, в который записывается код формы. Здесь можно, например, добавить обработчик событий к кнопке.

Представление кода с файлом Program.cs. Этот файл содержит стандартный метод Main() и код для автоматического создания экземпляра класса Form. За запуск всей программы отвечает именно этот файл. В случае приложений Windows этот файл обычно не изменяется.

Билет №16

Форма и элементы управления. Иерархия классов элементов управления. Свойства и обработчики событий.

Чаще всего, форму элементов управления создают вручную в режиме проектирования. Доступные элементы управления, отображаемые на специальной панели (Toolbox), перетаскиваются на форму. Этот процесс поддерживается особым инструментарием - дизайнером форм (Designer Form). Как только на этапе проектирования вы сажаете на форму элемент управления, немедленно в тексте класса появляются соответствующие строки кода (в лекции 2 об этом подробно рассказано). Конечно, все можно делать и программно - появление соответствующих строк кода приводит к появлению элементов управления на форме. Нужно понимать, что форма - это видимый образ класса Form, а элементы управления, размещенные на форме - это видимые образы клиентских объектов соответствующих классов, наследников класса Control. Так что форма с ее элементами управления есть прямое отражение программного кода.

Каждый вид элементов управления описывается собственным классом. Библиотека FCL содержит большое число классов, задающих различные элементы управления. Одним из типов проектов, доступных на C#, является проект, создающий элемент управления, так что ничто не мешает создавать собственные элементы управления и размещать их на формах наряду со встроенными элементами. Многие фирмы специализируются на создании элементов управления - это один из видов повторно используемых компонентов.

Классы являются потомками прародителя - класса Object. Класс Control в иерархии классов занимает довольно высокое положение, хотя и у него есть два важных родительских класса - класс Component, определяющий возможность элементам управления быть компонентами, и класс MarshalByRefObject, задающий возможность передачи элементов управления по сети. Класс Control задает важные свойства, методы и события, наследуемые всеми его потомками. Все классы элементов управления являются наследниками класса Control. Чаще всего, это прямые наследники, но иногда они имеют и непосредственного родителя, которым может быть абстрактный класс - это верно для кнопок, списков, текстовых элементов управления. Может показаться удивительным, но класс Form является одним из потомков класса Control, так что форма - это элемент управления со специальными свойствами. Будучи наследником классов ScrollableControl и ContainerControl, форма допускает прокрутку и размещение элементов управления.

Билет №17

Взаимодействие форм. Для показа формы служит метод Show этого класса, вызываемый соответствующим объектом; для скрытия формы используется метод Hide. Реально методы Show и Hide изменяют свойство Visible объекта, так что вместо вызова этих методов можно менять значение этого свойства, устанавливая его либо в true, либо в false.

Hide делает форму невидимой, но сам объект остается живым и невредимым. Метод Close отбирает у формы ее ресурсы, делая объект отныне недоступным; вызвать метод Show после вызова метода Close невозможно, если только не создать объект заново. Открытие и показ формы всегда означает одно и то же - вызов метода Show. У формы есть метод Close, но нет метода Open. Формы, как и все объекты, создаются при вызове конструктора формы при выполнении операции new.

Форма, открываемая в процедуре Main при вызове метода Run, называется главной формой проекта. Ее закрытие приводит к закрытию всех остальных форм и завершению Windows-приложения. Завершить приложение можно и программно, вызвав в нужный момент статический метод Exit класса Application. Закрытие других форм не приводит к завершению проекта

Можно создавать формы как объекты класса Form. Чаще всего создается специальный класс FormX - наследник класса Form. Как правило, каждая форма в проекте - это объект собственного класса. Возможна ситуация, когда вновь создаваемая форма во многом должна быть похожей на уже существующую, и тогда класс новой формы может быть сделан наследником класса формы существующей.

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

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

Если такой глобальный объект создается в главной форме, то можно передавать не объект, требуемый другим формам, а содержащий его контейнер - главную форму. Это удобнее, поскольку при этом можно передать несколько объектов, можно не задумываться над тем, какой объект передавать той или иной форме. Иметь ссылку на главную форму часто необходимо, хотя бы для того, чтобы при закрытии любой формы можно было бы открывать главную, если она была предварительно скрыта.

Билет № 18

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

Элемент управления ListBox позволяет собрать в виде списка некоторое множество объектов и отобразить для каждого объекта связанную с ним строку. Он дает возможность пользователю выбрать из списка один или несколько элементов. Других методы и свойства ListBox - MultiColumn, с помощью которого можно организовать показ элементов списка в нескольких столбцах; свойство HorizontalScrollBar, задающее горизонтальный скроллинг; методы BeginUpdate и EndUpdate, позволяющие повысить эффективность работы со списком

Билет №21

Элемент управления Windows Forms TabControl используется для отображения нескольких вкладок, аналогичных разделителям в записной книжке или меткам в наборе папок картотечного блока. Вкладки могут содержать рисунки и другие элементы управления. Используйте элемент управления TabControl для создания страниц свойств.

Билет №22

Элемент PictureBox предназначен для отображения рисунков и других графических объектов. При этом графическое окно является фактически “формой внутри формы”, в которой можно помещать элементы управления, выводить текст и рисовать при помощи графических методов. Оно имеет больше возможностей, чем элемент Image, но требует больше памяти и времени на обработку. Они больше подходят для динамических объектов, когда, например, нужно перемещать значки или картинку.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]