- •Уровни языков программирования
- •Язык c#
- •Переменные и константы
- •Числа без знака
- •Числа со знаком
- •Числа с плавающей точкой
- •Текстовые символы
- •Логический тип данных
- •Выражения и операторы с#
- •Составные операторы
- •Поразрядные операторы
- •Логические операторы
- •Операторы отношения
- •Приоритеты операторов
- •Работа с консолью
- •Преобразование типов
- •Оператор явного преобразования типов
- •Преобразование типов констант
- •Алгоритмизация и решение задач Понятие алгоритма
- •Словесное описание
- •Блок-схема
- •Описание Блоков
- •Псевдокод
- •Реализация алгоритмических конструкций в с# Следование
- •Ветвление
- •Ветвление и условный оператор
- •Вложенные условия
- •Применение логических операций
- •Цикл Пока
- •Цикл Делать-Пока
- •Цикл с параметром
- •Прерывание и возобновление цикла
- •Оператор goto
- •Особые виды циклов
- •Сложные типы данных – массивы чисел и символов Одномерные массивы
- •Использование оператора foreach
- •Типы задач обработки одномерных числовых массивов
- •Многомерные массивы
- •Типы задач обработки двумерных числовых массивов
- •Невыровненные (ступенчатые) массивы
- •Обработка массива символов
- •Работа с текстовыми строками
- •Базовые операции со строками
- •Методы типа string
- •Форматирование текстовых строк
- •Функции
- •Описание и использование функций
- •Возвращаемые значения
- •Передача параметров
- •Массивы параметров
- •Передача параметров по ссылке и по значению
- •Выходные параметры
- •Область действия переменных
- •Глобальные переменные
- •Область действия переменных и управляющие конструкции
- •Рекурсия
- •Структуры
- •Работа с текстовыми файлами
- •Работа с двоичными файлами
Сложные типы данных – массивы чисел и символов Одномерные массивы
Массив это последовательность элементов.
Объявление массивов:
int[] massiv1;
double[] massiv2;
char[] massiv3;
Пара символов [ ] в этом контексте обозначает массив, перед скобками указывается тип элементов.
Перед тем как использовать массив его необходимо инициализировать, т.е создать и заполнить начальными значениями.
int[] myIntArray;
myIntArray = new int [5];
Размер может быть константой, переменной или выражением. По умолчанию массив после создания массив заполняется нулями.
Так же при создании можно описать полное содержимое в виде списка констант:
int[] myIntArray;
myIntArray = new int[] {5, 9, 10, 2, 99};
После инициализации можно начинать работу с элементами массива.
Обращение к элементам осуществляется по индексу, т.е. по их позиции в списке. Индекс первого элемента в массиве равен 0. Индекс последнего в таком случае получается равным размеру массива-1.
myIntArray[3]=777;
Присваивание значения 4му по счету элементу массива.
Работа с отдельным элементом массива ведется абсолютно так же как и с обычным целым числом.
Для того что бы обрабатывать несколько элементов массива подряд обычно используются циклы. При этом изменяющаяся переменная цикла используется как индекс элемента в массиве.
int [] Numbers = new int [10];
for(i = 0 ; i < 10; i++)
{
Console.WriteLine(Numbers[i]);
}
Цикл пройдет 10 раз и выведет элементы от Numbers[0] до Numbers[9]. При этом все эти элементы будут равны 0, т.к массив был заполнен по умолчанию.
Массив можно заполнить значиниями несколькими способами. При небольшом количестве элементов массив можно инициализировать константами или ввести с клавиатуры.
int [] Numbers = new int [10];
for(i = 0 ; i < 10; i++)
{
Numbers[i]=Convert.ToInt32(Console.ReadLine());
}
Так же массив можно заполнить случайными числами(в лабе)
Использование оператора foreach
Хотя для циклической обработки массивов можно использовать любые циклические операторы, удобнее всего применять специализированный оператор foreach.
К программе, описанной в предыдущем разделе и предназначенной для вывода на консоль содержимого массива, добавим цикл подсчета суммы элементов этого массива:
int sum = 0;
foreach(int number in Numbers)
{
sum += number;
}
WriteLine("Summa = {0}", sum);
На блок-схеме оператор foreach изображается так же, как обычный цикл с параметром с шагом, равным единице. В псевдокоде допускается запись данного цикла в виде:
Для-Каждого number В Numbers
sum += number
Все-Для-Каждого
Обратите внимание, что для вычисления суммы достаточно знать только идентификатор массива Numbers, но нет необходимости знать его длину. К сожалению, оператор foreach не позволяет изменять содержимое элементов массива, но для просмотра массива (и, как вы узнаете позже, для просмотра содержимого контейнеров объектов других типов) он очень удобен. Как только вы попытаетесь изменить элемент массива в цикле foreach вы получите сообщение компилятора от ошибке:
Типы задач обработки одномерных числовых массивов
Задачи, связанные с обработкой одномерных массивов чисел, чрезвычайно разнообразны. В курсах, посвященных изучению основ программирования, этим задачам уделяется достаточно много внимания, так как считается, что знания, получаемые при изучении данного раздела и навыки разработки и отладки соответствующих программ многократно используются в дальнейшем при изучении прочих разделов.
Попытаемся выделить основные типы задач, решаемых в рамках данного раздела. Рассмотрим алгоритмы решения элементарных задач, из которых, как правило, состоит решение реальных задач, встречающихся на практике.
Подсчет суммы или произведения элементов
Подсчет количества элементов, отвечающих заданному условию
Поиск элемента в массиве
Поиск последовательности элементов, отвечающих заданному условию
Перестановка элементов в массиве
Сдвиг элементов массива
Удаление и вставка элементов массива
Упорядочение элементов массива
Создание одного массива из другого
Поиск одинаковых и различных элементов массива
Слияние двух массивов в один
