- •Информатика как наука. Основные понятия.
- •Понятие информации. Свойства, измерение, обработка.
- •История развития эвм и пк. Принципы фон Неймана.
- •Основные устройства пк, их назначения и характеристики: 1. Микропроцессор. 2. Внутренняя память. 3. Контроллеры и адаптеры. 4. Системная шина. 5. Монитор. 6. Клавиатура.
- •Микропроцессор
- •5. Типы по. Эволюция языков программирования.
- •Понятие алгоритма. Основные свойства. Формы записи. Машина Тьюринга.
- •Системы счисления. Двоичная и 16-ая системы. Правила перевода чисел из одной системы счисления в другую.
- •Двоичная арифметика. Форматы положительных и отрицательных чисел.
- •Типы данных c#. Внутренний формат, распределение памяти.
- •Приоритет операций в выражениях c#. Стандартные операторы консольного ввода-вывода.
- •Организация условных переходов: условный оператор и оператор выбора.
- •Операторы цикла. Понятие составного оператора.
- •Способы сортировки массивов: вставкой, обменом, выбором. Простые сортировки
- •Сортировка простыми вставками
- •Сортировка бинарными вставками
- •Сортировка простым выбором
- •Сортировка простыми обменами
- •Организация функций. Механизм передачи параметров в функцию. Формальные и фактические параметры.
- •Рекурсия функций.
- •Динамическая организация данных. Линейные списки.
- •Характеристики
- •Динамическая организация данных. Двоичные деревья.
- •Основные принципы ооп. Конструкторы и деструкторы.
Операторы цикла. Понятие составного оператора.
Циклы While
Цикл while (выражение) является универсальным видом цикла, включаемым во все языки программирования. Тело цикла выполняется до тех пор, пока остается истинным выражение while. В языке C# у этого вида цикла две модификации - с проверкой условия в начале и в конце цикла.
Первая модификация имеет следующий синтаксис:
while(выражение) оператор Эта модификация соответствует стратегии: "сначала проверь, а потом делай". В результате проверки может оказаться, что и делать ничего не нужно. Тело такого цикла может ни разу не выполняться. Конечно же, возможно и зацикливание. В нормальной ситуации каждое выполнение тела цикла - это очередной шаг к завершению цикла.
Цикл, проверяющий условие завершения в конце, соответствует стратегии: "сначала делай, а потом проверь". Тело такого цикла выполняется, по меньшей мере, один раз. Вот синтаксис этой модификации:
do
оператор
while(выражение);
Пример:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _1
{ class Program {
static void Main(string[] args)
{ Console.WriteLine("Введите число");
int i = Convert.ToInt16(Console.ReadLine());
int j = 0, s;
Console.WriteLine("Цикл с постусловием");
do
{
s = i * j;
Console.WriteLine(i + "*" + j + "=" + s);
j++;
}
while (j < 10);
Console.WriteLine("Цикл с предусловием");
j = 0; while (j < 10)
{
s = i * j;
Console.WriteLine(i + "*" + j + "=" + s);
j++;
}
Console.ReadKey();
}
}
}
Цикл с параметром FOR
Цикл с параметром имеет следующую структуру:
for ( <инициализация>; <выражение>; <модификация>) <оператор>;
Инициализация используется для объявления и/или присвоения начальных значений величинам, используемым в цикле в качестве параметров (счетчиков). В этой части можно записать несколько операторов, разделенных запятой. Областью действия переменных, объявленных в части инициализации цикла, является цикл и вложенные блоки. Инициализация выполняется один раз в начале исполнения цикла. Выражение определяет условие выполнения цикла: если его результат истинен, цикл выполняется. Истинность выражения проверяется перед каждым выполнением тела цикла, таким образом, цикл с параметром реализован как цикл с предусловием. Модификация выполняется после каждой итерации цикла и служит обычно для изменения параметров цикла. В части модификация можно записать несколько операторов через запятую. Оператор (простой или составной) представляет собой тело цикла. Любая из частей оператора for (инициализация, выражение, модификация, оператор) может отсутствовать, но точку с запятой, определяющую позицию пропускаемой части, надо оставить.
Пример
static void Main()
{
Console.Write("N= ");
int n=int.Parse(Console.ReadLine());
for (int i=1; i<=n;) //блок модификации пустой
Console.Write(" " + i++);
}
С помощью фигурных скобок несколько операторов языка (возможно, перемежаемых объявлениями) можно объединить в единую синтаксическую конструкцию, называемую блоком или составным оператором:
{ оператор_1 … оператор_N }
Массивы, синтаксис описания и использования в C#. Двумерные и многомерные массивы.
Можно объявить массив из пяти целых чисел, как показано в следующем примере:
int[] array = new int[5];
Массив содержит элементы с array[0] по array[4]. Оператор newслужит для создания массива и инициализации элементов массива со значениями по умолчанию. В данном примере элементы массива инициализируются значением 0.
Массив, в котором хранятся строковые элементы, можно объявить таким же образом. Пример.
string[] stringArray = new string[6];
Инициализация массива
Массив можно инициализировать при объявлении. В этом случае спецификация ранга не нужна, поскольку она уже предоставлена по числу элементов в списке инициализации. Пример.
int[] array1 = new int[] { 1, 3, 5, 7, 9 };
Строковый массив можно инициализировать таким же образом. Ниже приведено объявление строкового массива, в котором каждый элемент инициализируется названием дня:
string[] weekDays = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
При инициализации массива при объявлении можно использовать следующие сочетания клавиш:
int[] array2 = { 1, 3, 5, 7, 9 };
string[] weekDays2 = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
Можно объявить переменную массива без инициализации, но при присвоении массива этой переменной нужно использовать оператор new. Пример.
int[] array3;
array3 = new int[] { 1, 3, 5, 7, 9 }; // OK
//array3 = {1, 3, 5, 7, 9}; // Error
Многомерные массивы
Помимо простых одномерных массивов C# поддерживает также многомерные массивы, которые в свою очередь делятся на две категории. К первой категории относятся массивы, количество элементов каждой строки которых состоит из одинакового количества элементов. Таким образом, массив можно рассматривать как прямоугольник, а сами такие массивы называют "прямоугольными". Ко второй категории относятся массивы, количество элементов в строках у которых не одинаково. Такие массивы образуют прямоугольник, у которого одна сторона представляет ломаную линию, поэтому такие массивы называют "ломаными" или “ступенчатыми”. Объявление и заполнение прямоугольного массива производится стандартным способом (для двумерного массива организуется два цикла, для 3-мерного – три и т.д.):
Random rnd = new Random();
int[,] Matrix = new int[5, 4]; // двумерный массив
for (int i = 0; i < 5; i++)
for (int j = 0; j < 4; j++)
Matrix[i, j] = rnd.Next(201) – 100; //случайное целое от -100 до 100
При необходимости вывода значений элементов массива на экран также организуются вложенные циклы, позволяющие последовательно перебирать все элементы массива:
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 4; j++)
Console.Write(Matrix[i, j].ToString() + " ");
Console.WriteLine();
}
Результат работы программы показан ниже.
60 50 48 98
45 25 12 36
15 75 85 65
22 40 89 53
12 35 55 69
Ступенчатые массивы объявляются так:
int[][] а = new int[3][]; // объявление массива из трех строк
(столбцы пока не определены)
а[0] = new int[5]; // в 0-й строке будет 5 элементов
а[1] = new int[3]; // в 1-й строке будет 3 элемента
а[2] = new int[4]; // в 2-й строке будет 4 элемента
К любому элементу ступенчатого массива обращаются так:
а[0][1] = ...
Особенностью ступенчатых массивов (кроме разного количества элементов в пределах одного измерения) является то, что можно производить их сечение, т.е. отбрасывая попарно справа квадратные скобки, можно получить массив меньшей размерности, например: Имеем вышеописанный ступенчатый массив из 3 строк и 5,3,4 элементов соответственно в строках. Доступ к элементу такого массива: y = а[1][2]; // переменная y типа int Сечение такого массива может быть таким: y=а[2]; // переменная y типа массив Таким образом, при сечении двумерного ступенчатого массива мы получили одномерный массив, состоящий только из элементов 2-й строки. Из-за этой особенности ступенчатый массив иногда называют массивом массивов.