КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Сам товар
Do //прописываем инструкции, которые необходимо выполнить { Console.WriteLine(a); a = a + 1; }
//прописываем условие, при выполнении которого цикл должен остановиться while (a <= 10);
//ждем от пользователя нажатия на любую клавишу для завершения работы программы Console.ReadKey(); } } }
Рис. 14
В данном примере цикл Do … While срабатывает столько же раз, сколько в предыдущем примере. Разница лишь в том, что если при инициализации переменной «а» мы бы указали значение больше 10 (вместо значения 0), например 12, то цикл Do …While вывел бы в консоль число 12 и закончил бы работу. А цикл While вообще бы не сработал, так как условие при первой же проверке оказалось бы равным false, и программа бы не смогла перейти к выполнению следующих инструкций.
Оператор цикла с параметром for
Если посмотреть внимательно на операторы while, do…while, то можно заметить, что в их работе есть повторяющиеся операции: сначала происходит инициализация переменной, далее наращивание переменной, затем проверка переменной на выполнение определенного условия. С помощью цикла for можно объединить эти операции в одной инструкции. Оператор for имеет следующую структуру: for (a = 0; a < 10; а ++) { инструкции; } В цикле for инициализируется переменная «а», равная 0, затем идет проверка выполнения условия (а<10). Если условие имеет значение true, то происходит наращивание переменной «а» на единицу (а++) и переход к выполнению инструкций в теле цикла. После выполнения всех инструкций в теле цикла, программа снова возвращается к проверке условия. Как только значение условия становится false, цикл останавливается. Можно использовать любой шаг наращивания переменной. Для этого необходимо вместо выражения а++, написать, например, а+=2 – наращивание переменной на 2 единицы.
Пример использования цикла for Напишем программу, которая выводит в консоль числа от 0 до 10. using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace ConsoleApplication8 { class Program { static void Main(string[] args) { int a;
//в цикле for происходит инициализация переменной «а», проверка //условия а<11 и наращивание переменной «а» на единицу for (a = 0; a < 11; a++) {
//вывод на экран значения переменной «а» Console.WriteLine("a = "+a); }
//ждем от пользователя нажатия на любую клавишу для оконочания рабоыт программы Console.ReadKey(); } } }
Результат работы программы: Вывод в консоль строки: «а = 0» Вывод в консоль строки: «а = 1» … Вывод в консоль строки: «а=10»
Рис. 15 Цикл foreach
Цикл foreach (англ. - для каждого) используется для обработки массивов, коллекций и других контейнеров, в которых хранится множество данных. Оператор foreach имеет следующую структуру:
Foreach («элемент» in «контейнер») { инструкции; } Если записать эту структуру словами, то получится что-то вроде этого: Для каждого элемента в контейнере исполнить следующие инструкции (которые находятся в теле цикла). Контейнер – это некоторое хранилище данных. Элемент – это элемент данных из контейнера (например, элемент массива).
Пример использования цикла foreach Напишем программу, которая создает массив из 50 элементов, наполняет его случайными целыми числами и находит Сумму элементов, а также максимальный и минимальный элементы. Некоторые моменты в этом приложению еще не знакомы читателю: использование массивов, создание объектов определенного класса и использование его методов. Об этих моментах будет сказано в следующих главах.
using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace ConsoleApplication3 { class Program { static void Main(string[] args) { // Создаем массив на 50 целых чисел int[] mas = new int[50];
// Создаем объект rnd класса Random, с помощью которого будем //наполнять массив случайными числами Random rnd = new Random();
// Наполняем массив for (int i = 0; i < 50; i++) { mas[i] = rnd.Next(); }
// Сумма элементов long S = 0;
// Инициализируем максимальный и минимальный // элементы. Полагаем, что это первый элемент массива int Min = mas[0], Max = mas[0];
// Цикл перебора элементов массива. Использование цикла foreach foreach (int i in mas) { //Расчет суммы элементов. Идет перебор элементов массива. //Каждый последующий прибавляется к предыдущему S += i;
//Находим максимальный элемент массива if (i > Max) Max = i;
//Находим минимальный элемент массива else if (i < Min) Min = i;
}
//Выводим результат на экран Console.WriteLine("Сумма = {0}\nМинимальный элемент = {1}\nМаксимальный элемент = {2}", S, Min, Max);
//Ждем от пользователя нажатия на любую клавишу для завершения //работы программы Console.ReadKey(); } } }
Результат работы программы показан на рисунке 16. В консоль выводится три строки: «Сумма =» «Минимальный элемент =» «Максимальный элемент =»
Рис. 16 Массивы Массивы – это набор данных, состоящий из некоторого фиксированного числа элементов, структурированных по типу. Синтаксис массивов в C# несколько отличается от синтаксиса других С-подобных языков. Приведем пример задания одномерного массива: int [ ] mas = new int [3]; //задание массива с именем mas, состоящего из 3-х целых чисел. Задать элементы массива можно следующим образом: mas [0] = 5; mas [1] = -7; mas [2] = 89; //нумерация элементов в массиве начинается с 0. Следующая запись позволяет вывести элементы массива в консоль (на экран): Console.WriteLine (mas[1].ToString ()); //вывод второго элемента массива на экран. Элементы массива можно также задать следующим способом: int [ ] mas = new int {5, -7, 89}; //задание элементов при объявлении массива Задать двумерный массив можно следующим образом: int [ ] mas = new int [ 2, 2 ]; //задание двумерного массива (две строки и два столбца). В данном массиве четыре элемента. Нумерация первого элемента mas[0,0], нумерация последнего элемента mas [1,1]. Заполнить двумерный массив можно так: mas [ 0, 0] = 5; mas [0, 1] = -9 и т.д.; //задание элементов двумерного массива.
Перебор элементов одномерного массива происходит в цикле. Для двумерного массива придется использовать два цикла for, один вложен в другой.
Рассмотрим пример использования одномерного массива Программа создает одномерный массив, заполняет его случайными числами и находит сумму элементов массива. using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace ConsoleApplication3 { class Program { static void Main(string[] args) { // Массив на 50 целых чисел int[] arr = new int[50]; // Случайное целое число Random rnd = new Random();
// Наполняем массив for (int i = 0; i < 50; i++) { arr[i] = rnd.Next(); }
// Сумма элементов long S = 0;
// Инициализируем максимальный и минимальный // элементы. Полагаем, что это первый элемент массива = минимальному и //максимальному
int Min = arr[0], Max = arr[0];
//Цикл перебора элементов массива foreach (int i in arr) { //Расчет суммы элементов. Идет перебор элеменов массива //каждый последующий прибавляется к предыдущему S += i; }
//выводим в консоль сумму элементов массива Console.WriteLine("Сумма элементов массива = {0}", S);
//ожидаем от пользователя нажатия любой клавиши для завершения работы программы Console.ReadKey(); } } } Результат работы программы представлен на рисунке 17. Рис. 17 Рассмотрим еще один пример с использованием массивов. В массив записаны заработные платы работников некоторого предприятия. Определить количество работников, заработная плата которых ниже средней заработной платы по предприятию, и вывести на экран номера элементов массива, которые соответствуют таким работникам. using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace ConsoleApplication1 { class Program { static void Main(string[] args)
//заводим массив, состоящий из заработных плат работников int[] mas = { 14553, 16756, 19522, 23456, 22858, 11256, 14552, 18673, 12400 };
//инициализируем переменные для хранения суммы элементов массива //и среднего значения double sum = 0; double av = 0;
//начинаем перебор элементов массива для расчета суммы его элементов for (int i = 0; i < mas.Length; i++) { //находим сумму элементов массива sum += mas[i]; }
//находим среднее значение элементов массива av = sum / mas.Length;
//выводим в консоль значение средней заработной платы Console.WriteLine("Средняя заработная плата по предприятию: {0}", av);
//начинаем перебор элементов массива для определения номеров //элементов, значение которых ниже среднего значения for (int i = 0; i < mas.Length; i++) { if (mas[i] < av) { //выводим в консоль номера элементов, занчение которых ниже среднего значния Console.WriteLine("Номер работника: {0}", i); }
}
//ожидаем от пользователя нажатия любой клавиши для завершения работы программы Console.ReadKey();
} } }
Результат работы программы представлен на рисунке 18. Рис. 18 Введение в классы
Определение, назначение и состав классов Классы - основа любого объектно-ориентированного языка. Класс представляет собой некоторый шаблон, по которому будут создаваться объекты определенного типа. Внутри класса содержатся какие-либо данные и методы их обработки. По существу, класс - это ряд схематических описаний способа построения объекта. Важно понимать, что класс является логической абстракцией. То есть, физическое представление класса появится в оперативной памяти только после создания объекта этого класса. Если говорить терминами объектно-ориентированного программирования, то класс - это инкапсуляция данных и методов обработки этих данных. Общая форма определения класса содержит Данные и Функции. Данными класса могут быть: поля, константы, события. Поля - это любые переменные, относящиеся к классу. Константы - могут быть ассоциированы с классом так же, как и переменные. При объявлении константы используется ключевое слово сonst. События - это члены класса, которые уведомляют программный код о том, что случилось что-то важное, заслуживающее внимания, например, изменилось какое-либо свойство класса или произошло взаимодействие с пользователем. Функциями класса могут быть: методы, конструкторы, свойства, операции, финализаторы. Методы - это функции, определяющие поведение объектов класса. Методы служат для обработки данных. Свойства - это видимые извне признаки класса. Если провести параллель с человеком, то свойствами могут быть цвет глаз и волос, рост, вес, возраст и т.д. Конструкторы - специальные функции, используемые для инициализации объектов класса в процессе их реализации. Финализаторы - функции, которые вызываются, когда среда CLR определяет, что объект больше не нужен. Имя этих функций совпадает с именем класса. Невозможно сказать, когда будет вызван финализатор. Операции - это простейшие действия типа сложения или вычитания. В языке С# имеется возможность указать, как существующие операции будут взаимодействовать с пользовательскими классами (это еще называют перегрузкой операций).
Модификаторы доступа Модификаторы доступа используются для задания степени видимости или доступности какого-либо члена класса для кода программы, который находится за пределами класса. Модификаторы доступа могут быть следующих видов: public - член класса доступен вне определения класса и в производных классах. protected - член класса не видим за пределами класса, но к нему могут обращатся производные классы. private - член класса не доступен за пределами класса. При этом доступ к этим членам для производных классов также закрыт. internal - члена класса доступен только в пределах текущей единицы компиляции. В языке С# для членов класса по умолчанию используется модификатор доступа private. То есть, если явно не указать модификатор доступа переменной, то будет использован модификатор private.
Инициализация классов и конструкторы Рассмотрим синтаксис определения класса. Ниже представлено определение класса, который содержит только переменные и методы:
class имя_класса { // Объявление переменных экземпляра. доступ тип переменная1; доступ тип переменная2; //... доступ тип переменнаяA; // Объявление методов. доступ возращаемый_тип метод1 (параметры) { // тело метода } доступ возращаемый_тип метод2 (параметры) { // тело метода } //... }
Рассмотрим пример определения класса, описывающего некоторого студента вуза. Код будет выглядеть следующим образом:
using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace ConsoleApplication12 { class Student { //описываем характеристики объекта класса //характеристики доступны только внутри данного класса private string name; private string sename; private int kurs; private string adress; private int tel;
//определяем конструктор класса для создания объектов данного класса //в скобках указаны параметры, которые передаются методу для создания //объекта с //указанными свойствами
public Student(string name, string sename, int kurs, string adress, int tel) { this.name = name; this.sename = sename; this.kurs = kurs; this.adress = adress; this.tel = tel; } //определяем метод для объекта класса (его поведение) //метод будет выводить на экран информацию о студенте
public void Print() { Console.WriteLine("Имя\t"+name+"\nФамилия\t"+sename+"\nКурс\t"+kurs+"\nАдрес\t"+adress+"\nТелефон\t"+tel+"\n"); } }
class Program { static void Main(string[] args) { //создаем первый объект нашего класса Student St1 = new Student("Иван","Иванов",1,"Ленина, 50-25",3251565); //создаем второй объект нашего класса Student St2 = new Student("Петр", "Петров", 2, "Мира, 15-3", 2256580);
//используем метод вывода на экран информации о студентах, //определенный ранее в классе
St1.Print(); St2.Print(); Console.ReadKey();
} } }
Результат работы программы показан ниже. Рис. 19 Литература
1. Герберт Шилдт, "C# 3.0, 4.0. Полное руководство", 2011. 2. Герберт Шилдт, "С# 3.0: руководство для начинающих", 2009. 3. Герберт Шилдт, "Полный справочник по C#", 2004. 4. Эндрю Троелсен, "С# и платформа.NET", 2004. 5. Карли Уотсон, "Visual C# 2008. Базовый курс", 2009. 6. Нейгел Крис и др., "C# 4.0 и платформа.NET 4 для профессионалов", 2009. 7. Интернет-издательство «Вильямс», Microsoft ASP.NET 2.0 с примерами на C# 2005 для профессионалов. 8. Интернет-издательство «Вильямс» - Язык программирования С# 2005 и платформа.NET 2.0.2007. 9. Джесс Либерти Создание.NET приложений Программирование на C#, 2003. [U1]Рекомендуется оформить титульный лист по образцу из Методических инструкций Наиболее эффективно продаются товары, которые нельзя купить в обычных магазинах. Либо товар должен быть представлен так, как будто он уникален.
Дата добавления: 2014-01-07; Просмотров: 397; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |