ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Лабораторная работа №2 Программирование циклов.
Цель работы: Изучить синтаксис языка C# по программированию циклов в приложениях
Время: 4часа
Вопросы, изучаемые на занятии:
1. Ознакомление синтаксиса циклических структур языка программирования 2. Разработка консольных приложений (циклические структуры for, while, do..while
1. Ознакомление синтаксиса циклических структур языка
В языке C# имеются следующие разновидности операторов цикла: - Цикл с предусловием while, - Цикл с постусловием do... while, - Цикл for, - Цикл foreach. Цикл с предусловием. while(условие_выполнения_тела_цикла) { // тело цикла } Цикл с постусловием do { //тело цикла } while(условие_выполнения_тела_цикла);
Цикл foreach позволяет выполнять тело цикла для элементов массива (в общем случае – для коллекции): foreach (тип идентификатор in имя_массива) { //тело цикла } В циклах можно использовать операторы break; (прервать выполнение цикла) и а в цикле for оператор Continue; (перейти к следующему шагу). Для иллюстрации работы с циклами for и foreach рассмотрим следующий пример: задан двумерный массив. Сформировать одномерный массив из положительных его элементов и найти для них значения квадратных корней. static void Main(string[] args) { double[,] a; int n, m, kolpol=0; Console.Write("Rows? "); n = Convert.ToInt32(Console.ReadLine()); Console.Write("Columns? "); m = Convert.ToInt32(Console.ReadLine()); a = new double[n, m]; for(int i=0; i<=a.GetUpperBound(0);i++) for (int j = 0; j <= a.GetUpperBound(1); j++) { Console.Write("a[" + i + "," + j + "]="); a[i, j] = Convert.ToDouble(Console.ReadLine()); } for(int i=0; i<a.GetLength(0); i++) for(int j=0;j<a.GetLength(1);j++) if(a[i,j]>0) kolpol++; double[] pol = new double[kolpol]; int k = 0; if (pol.Length == 0) Console.WriteLine("No positives"); else { for (int i = 0; i < a.GetLength(0); i++) for (int j = 0; j < a.GetLength(1); j++) if (a[i, j] > 0) pol[k++]=a[i,j]; foreach (double x in pol) // цикл выполняется для всех // элементов массива pol Console.WriteLine("x=" + x + " f(x)={0:##.####}", Math.Sqrt(x)); } Console.ReadLine(); }
Обратим внимание на следующие моменты: - Присвоение начальных значений переменным обязательно (в том числе и нулей), использование в выражениях неинициализированных переменных является синтаксической ошибкой. - Функции a.GetLength(0)и a.GetUpperBound(0)возвращают количество элементов по измерению и максимальное значение индекса соответственно, учтите это при определении границ параметра цикла. - В операторе цикла foreach (double x in pol)объявление типа переменной х должно быть только в самом операторе, но не в числе других объявлений. - При отсутствии положительных элементов под массив pol память не выделяется и pol.Length равен нулю.
Не нашли, что искали? Воспользуйтесь поиском:
|