
- •1. Понятие алгоритма. Свойства алгоритма. Способы записи алгоритмов. Блок-схема как графический способ записи алгоритма. Основные элементы блок-схемы.
- •4. Основные принципы ооп. Полиморфизм.
- •. Объектно-ориентированное программирование
- •5.Основные принципы ооп. Наследование. Управление доступом к членам классов (предка и потомка).
- •Объектно-ориентированное программирование
- •6.Понятие класса, объекта. Члены класса – поля и методы. Создание объекта. Область видимости объекта
- •7.Понятие метода в c#. Формальные и фактические параметры. Способы передачи параметров
- •10.Булевские переменные в c#. Возможные значения. Операции над булевскими переменными. Использование логических выражений.
- •11.Строковые и символьные переменные в c#. Возможные значения и операции со строковыми и символьными переменными.
- •Цикл while
- •17. Одномерные массивы в c#. Способы объявления и использования. Доступ к элементам массива.
- •19. Понятие потока. Система ввода-вывода в c#.
- •20. Понятие файла. Файлы последовательного доступа. Режимы работы с файлом последовательного доступа.
- •2 Сорта доступа: последовательный доступ и
6.Понятие класса, объекта. Члены класса – поля и методы. Создание объекта. Область видимости объекта
Класс - шаблон, который определяет форму
объекта. Он задает как данные, так и код,
который оперирует этими данными. C#
использует спецификацию класса для создания
объекта. Объекты - экземпляры класса. Таким
образом, класс - это множество намерений
(планов), определяющих, как должен быть
построен объект. Важно четко понимать
следующее: класс - логическая
абстракция. О ее реализации нет смысла говорить
до тех пор, пока не создан
объект класса, и в памяти не появилось физическое
его представление.
И еще. Вспомните, что методы и переменные,
составляющие класс, называются
членами класса.
Общая форма определения класса
Определяя класс, вы определяете данные, которые
он содержит, и код,
манипулирующий этими данными. Несмотря на то
что очень простые классы могут
включать только код или только данные,
большинство реальных классов содержат и
то, и другое.
Данные содержатся в переменных экземпляров,
определяемых класCOM, а код - в
методах. Однако важно с самого начала отметить,
что класс определяет также ряд
специальных членов данных и методов-членов,
например статические переменные,
константы, конструкторы, деструкторы, индекса
торы, события, операторы и свойства. Пока мы
ограничимся рассмотрением переменных экземпляров
и методов класса, а к концу главы познакомимся с
конструкторами и деструкторами. Остальные
типы членов класса описаны в последующих главах.
Класс создается с помощью ключевого слова class.
Общая форма определения класса,
который содержит только переменные экземпляров и
методы, имеет следующий вид:
class имя_класса
{
Объявление переменных экземпляров.
доступ тип переменная!;
доступ тип переменная2;
...
доступ тип переменная n;
}
Область видимости - часть текста программы,
в которой может быть использован данный объект.
Объект считается видимым в блоке или в исходном
файле, если в этом блоке или файле известны имя и
тип объекта.Объект может быть видимым в пределах
блока, исходного файла или во всех исходных файлах,
образующих программу. Это зависит от того, на каком
уровне объявлен объект: на внутреннем, т.е. внутри
некоторого блока, или на внешнем, т.е. вне всех
блоков. Если объект объявлен внутри блока, то он
видим в этом блоке, и во всех внутренних блоках.
Если объект объявлен на внешнем уровне, то он
видим от точки его объявления до конца данного
исходного файла. Объект может быть сделан глобально
видимым с помощью соответствующих объявлений во
всех исходных файлах, образующих программу.
7.Понятие метода в c#. Формальные и фактические параметры. Способы передачи параметров
Методы - подпрограммы, которые управляют
данными, определенными в классе, и во многих
случаях обеспечивают доступ к данным. Обычно
остальные части программы взаимодействуют с
классом при помощи его методов. Метод содержит
один или несколько операторов. В профессионально
написанном C#- коде каждый метод выполняет только
одну задачу. В качестве имени метода может
использоваться любой действительный модификатор.
Ключевые слова не могут быть именами методов,
имя Main ( ) является зарезервированным для метода,
с которого начинается выполнение программ.
Общий синтаксис метода выглядит так:
access ret-type name (parameter-list)
{
тело метода
}
access - модификатор, который указывает, какие части
вашей программы могут иметь доступ к методу.
ret-type - указывает тип данных, возвращаемых методом.
name - имя метода.
Если метод не возвращает никакого значения,
он должен быть указан как имеющий тип void.
parameter-list (список параметров) - последовательность
разделенных запятыми пар «тип - идентификатор».
С помощью параметров методу передаются из
программы значения, тип которых обязательно должен
быть указан. Параметрами в основном являются
переменные, которые принимают значения аргументов,
передаваемых методу его вызове. Если метод не имеет
параметров, то список параметров будет пустым.
Различают формальные и фактические параметры.
Формальные параметры располагаются в подпрограмме.
Они определяют, как будет происходить обработка
конкретных значений этих параметров. Фактические
параметры указываются при обращении к подпрограмме.
При вызове подпрограммы значения фактических
параметров автоматически передаются в переменные,
являющиеся формальными параметрами. После чего
начинается выполнение подпрограммы.
Общий вид заголовка процедуры:
Procedure <имя> (<список переменных>);
Существует несколько способов передачи параметров
в подпрограмму.
Передача параметров по значению.
Формальному параметру присваивается значение
фактического параметра. В этом случае формальный
параметр будет содержать копию значения,
имеющегося в фактическом, и никакое воздействие,
производимое внутри подпрограммы на формальные
параметры, не отражается на параметрах фактических.
Передача параметров по ссылке.
В формальный параметр может быть помещён сам
фактический параметр (обычно это реализуется
путём помещения в формальный параметр
ссылки на фактический). При этом любое изменение
формального параметра в подпрограмме
отразится на фактическом параметре —
оба параметра во время вызова подпрограммы суть
одно и то же. Параметры, передаваемые по ссылке,
дают возможность не только передавать параметры
внутрь подпрограммы, но и возвращать вычисленные
значения в точку вызова. Для этого параметру
внутри подпрограммы просто присваивается
нужное значение, и после возврата из подпрограммы
переменная, использованная в качестве фактического
параметра, получает это значение.
8.Целые типы данных в C#. Ограничения по значению.
C# определены девять целочисленных типов
данных: char, byte, sbyte, short , ushort, int, uint, long,
ulong. Тип данных char в основном применяется
для представления символов.
Byte 8 От 0 до 255
Sbyte 8 От -121 до 127
Short 16 От -32768 до 32767
Ushort 16 От 0 до 65535
Int 32 От -2147483648 до 2147483647
Uint 32 От 0 до 4294967295
Long 64 От -92233720368554775808 до
92233720368554775807
Ulong 64 От 0 до 18446774073709551615
В C# определены как знаковые, так и без знаковые
варианты целочисленных типов. Различие между
ними состоит в способе интерпретации старшего
типа целого числа. Если указывается знаковое целое,
то компилятор будет генерировать код, в котором
предполагается интерпретация старшего бита целого
числа как флага знака. Если флаг знака 0, то это
положительное число: если флаг знака 1, то число
отрицательное. Отрицательные числа практически
всегда представлены с использованием метода
двоичного дополнения. В этом методе все биты числа
(за исключением флага знака) инвертируются, затем
к этому числу прибавляется единица, в завершение
флагу знака дается значение 1.
Знаковые целые важны для очень многих алгоритмов,
но они имеют только половину абсолютной величины
соответствующих беззнаковых целых. Например,
запишем в двоичном представлении число типа
short 32767: 01111111 11111111
Поскольку это знаковый тип, при задании старшему
биту значения 1 число будет интерпретировано как -1
(если использовать метод двоичного дополнения). Но
если вы объявляете его тип как ushort, то при задании
старшему биту значения 1 число будет
интерпретировано как 65535. Пожалуй, наиболее часто
используемый целочисленным типом является int.
Переменные типа int часто применяют для управления
циклами, для индексации массивов и в различных
математических вычислениях. При работе с
целочисленными значениями, большими, чем те,
которые могут быть представлены типом int , в C#
используют типы uint, long, ulong, а при работе с
беззнаковым целым - тип uint.
Для больших значений со знаком применяют тип long,
для еще больших положительных чисел
(беззнаковых чисел) - тип ulong.
byte и sbyte - наименьшие целочисленные типы.
Значение типа byte может находиться в диапазоне
от 0 до 255. Переменные типа byte особенно полезны
при использовании необработанных двоичных данных,
таких как поток байтов данных, сгенерированный
каким-либо устройством. Для небольших знаковых
целых применяется тип sbyte.
9.Числа с плавающей точкой в C#. Ограничения по точности.
. Типы данных с плавающей точкой могут
представлять числа, имеющие дробные части.
В C# существует два типа данных с плавающей
точкой, float и double, представляющие числа с
одинарной и двойной точностью соответственно.
Для представления данных типа float выделяются
32 бита, что позволяет присваивать переменные
значения чисел, находящихся в диапазоне от
1,5Е-45 до 3,4Е+38. Для представления данных
типа double выделяются 64 бита, что расширяет
диапазон используемых чисел до величин из
диапазона от 5Е-324 до 1,7Е+308. Чаще всего
применяется тип double. Одна из причин этого
в том, что многие математические функции в
библиотеке классов C#(которой является библиотека
.NET Framework) используют значения, имеющие
тип double. Например, метод Sqrt ( ), определенный
в стандартном классе System.Matr., возвращает
значение типа double, являющейся квадратным
корнем его аргумента, также имеющего тип double.
Метод Sqrt .( ) является членом класса Math. Обратите
внимание на способ вызова метода Sqrt . ( ) -
имя метода отделено точкой от имени класса, членом
которого он является. Не все стандартные методы
нужно вызывать, указав вначале имя класса, в котором
определен данный метод, но некоторые методы
требуют именно такого вызова