Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 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 равен нулю.

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных