Урок № 3. C# Теория
Циклы
for, while и do. Циклы for в си шарп
for ([инициализация счетчика]; [условие цикла]; [изменение счётчика]) { // повторяющийся код }
for (int i = 0 ; i < 10; i++) { // тело цикла } |
В указанном примере:
i = 0; это инициализация счетчика,
i < 10; это условие цикла, и
i++ это изменение счётчика.
Foreach цикл
Рассмотрим итерацию по коллекции или массиву значений. При использовании цикла For необходимо знать, сколько элементов находится в коллекции или массиве. Но иногда коллекции или массивы могут быть динамическими и не иметь размера во время компиляции. Если размер коллекции или массива изменяется во время выполнения, лучше использовать цикл foreach.
Пример использования цикла foreach для итерации строкового массива:
string[] names = new string[10]; // Process each name in the array. foreach (string name in names) { // Code to execute. } |
Задания и лабораторные си шарп
Выполнить: Запросить пользователя ввести число (N). Создайте простой цикл for с N повторениями, который отображает значения счетчика цикла.
Пример выполнения:
Введите число 3 Результат: Счетчик: 1 Счетчик: 2 Счетчик: 3
Введите число 1 Результат: Счетчик: 1
[Название проекта: Lesson_3Lab1, название файла L3Lab1.cs]
✍ Алгоритм:
- Запустите Visual Studio.
- Создайте консольное приложение, назовите проект
Lesson_3Lab1. - В окне Solution Explorer (Обозреватель решений) найдите файл
Program.csи переименуйте его вL3Lab1.cs. - Установите курсор непосредственно после открытой скобки функции
Main, щелкните enter, чтобы перейти на новую строку. - Попросите пользователя ввести число, используйте метод
ReadLine(): - Присвойте введенное значение переменной
N. Конвертируйте переменнуюNв целое значение: - Создайте цикл for с
Nколичеством итераций. В качестве счетчика цикла используйте переменную с идентификаторомcounter(для быстрого создания цикла используйте for + Tab(дважды)) - Output the values of the variable
counterwithin the loop: - Используйте горячие клавиши
CTRL+F5для запуска приложения без отладки. - Откроется консольное приложение с запросом на ввод числа.
- Форматировать код с отступами можно, последовательно нажимая
Ctrl+AзатемCtrl+KиCtrl+F. - Поэкспериментируйте, вводя различные значения и наблюдая результат.
- Не забудьте скопировать текст задания и оформить его в виде комментария до основного кода.
static void Main(string[] args) { Console.WriteLine("Введите число"); } |
... int N = Int32.Parse(Console.ReadLine()); ... |
... for(int counter = 1; counter <= N; counter++) { ... } ...
...
for(int counter = 1; counter <= N; counter++)
{
Console.WriteLine($"Счетчик: {counter}");
}
...
Выполнить: Выведите в консоль последовательность чисел -3 0 3 6 9 12 15 18 21 24. Выполните задание, используя цикл FOR. Изменение счетчика должно соответствовать увеличению его на 3.
Указание: Изменение шага цикла на 3, можно выполнить следующим образом:
counter+=3
[Название проекта: Lesson_3Task1, название файла L3Task1.cs]
Пример выполнения:
Последовательность : -3 0 3 6 9 12 15 18 21 24
Выполнить: Выведите в консоль следующую последовательность: 1 2 3 4 . . . 99 100 99 . . . 3 2 1.
Указание 1: Создайте два цикла for: один - для последовательности 1 2 3 4 . . . 99 100 и второй - для последовательности 99 . . . 3 2 1 (с шагом цикла i-- для счетчика второго цикла).
Чтобы вывести все значения в одну строку, следует использовать метод:
Console.Write($"{i} "); |
Пример выполнения:
Последовательность : 1 2 3 4 5 . . . 99 100 99 . . . 4 3 2 1
[Название проекта: Lesson_3Task2, название файла L3Task2.cs]
Выполнить: Запросите ввести 10 целых чисел. Необходимо вывести количество положительных и отрицательных чисел среди введенных.
Указание 1: Для ввода чисел создайте цикл for. В теле цикла проверяйте, положительное ли число введено или отрицательное. Используйте две переменных-счетчика (увеличивающихся на единицу) для подсчета количества положительных и отрицательных чисел.
Указание 2: Не забудьте конвертировать переменную с вводимым числом в тип integer (Int32.Parse(...)).
Пример выполнения:
1 -5 -12 2 3 9 -1 9 5 -8 => количество положительных = 6, количество отрицательных = 4
[Название проекта: Lesson_3Task3, название файла L3Task3.cs]
Выполнить: Запросите ввести 10 целых чисел. Выведите сумму введенных чисел.
Указание 1: Создайте цикл for для ввода чисел. Для подсчета суммы используйте переменную с идентификатором sum.
Указание 2: Не забудьте преобразовать переменную с числами в тип integer (Int32.Parse(...)).
The result example:
1 -5 -12 2 3 9 -1 9 5 -8 => сумма = 3
[Название проекта: Lesson_3task4, название файла L3Task4.cs]
Выполнить: Программа должна считать сумму 10 чисел следующей последовательности: 1 + 3 + 5 + 7 + 9 + 11 + 13 + 15 + 17 + 19 (числа последовательности НЕ вводятся, а получаются в цикле).
Указание: Для подсчета суммы используйте переменную сидентификатором sum.
[Название проекта: Lesson_3task5, название файла L3Task5.cs]
Пример выполнения:
1 + 3 + 5 + 7 + 9 + 11 + 13 + 15 + 17 + 19 => сумма = 100
Выполнить: Вводятся 10 вещественных чисел. Вывести их произведение.
Указание 1: Для ввода чисел используйте цикл for. Для подсчета произведения используйте переменную с идентификатором product.
Указание 2: Не забудьте инициализировать переменную product значением вещественного типа (double product = 1.0;). Переменную для вводимых чисел конвертируйте также в вещественный тип (Double.Parse(Console.ReadLine())).
[Название проекта: Lesson_3Task6, название файла L3Task6.cs]
Пример выполнения:
1,1 2,4 5,1 7,2 6,4 8,1 6,7 3,2 3,3 2,4 => произведение = 853338,921998746
Выполнить: Используйте вложенный цикл for для нахождения всех простых чисел, меньших 100 (начиная с 2).
Пример выполнения:
Простые числа: 2 3 5 7 11 ... 97
[Название проекта: Lesson_3Lab2, название файла L3Lab2.cs]
✍ Алгоритм:
- Выполните первые три пункта точно так же, как вы их сделали для предыдущей лабораторной работы. Назовите проект в соответствии с заданием.
- Выведите в консоль фразу "Простые числа: ":
- Объявите две переменные, которые будут использованы в качестве счетчиков циклов:
- Создайте внешний цикл
forсо счетчикомouter. Этот цикл будет просматривать все числа в диапазоне [2,99] (можно использовать сочетание клавиш для быстрого создания кода for + Tab(дважды)): - Создайте вложенный цикл
for(внутри предыдущего) со счетчикомinner. Данный цикл будет проверять каждое число диапазона, является ли оно простым. Если оно является таковым, то его значение выводится в консоль: - Простое число - это натуральное число большее 1, которое не может быть получено путем умножения двух меньших натуральных чисел.
- Например, 5 - это простое число, потому что его можно получить только выполнив следующие произведения:
1 × 5или5 × 1 - А вот strong>6 можно получить произведением двух чисел -
2 × 3, которые меньше, чем 6. - Все составные числа, которые могут быть разложены на множители, представлены произведением простых чисел; то есть все их множители — простые числа. Ибо, если найти множитель, который не является простым числом, он всегда может быть разложен и представлен двумя или более простыми числами.
- Запустите приложение без отладки
CTRL+F5. - Не забудьте скопировать текст задания и оформить его в виде комментария до основного кода.
static void Main(string[] args) { Console.WriteLine("Простые числа: "); } |
... int outer; int inner; ...
... for (outer = 2; outer < 100; outer++) { ... } ...
... for (outer = 2; outer < 100; outer++) { for (inner = 2; inner <= (outer / 2); inner++) { if ((outer % inner) == 0) break; // if factor found, not prime } if (inner > (outer / inner)) { Console.WriteLine("{0} is prime", outer); } } ...
Выполнить: Для каждого x в интервале [2;8] найдите значение функции z(x,y) = xy. Переменная y изменяется в интервале [2;5].
Указание 1: Создайте два цикла for (один из них - вложенный). Переменнаяx должна изменяться во внешнем цикле, тогда как переменнаяy должна меняться во внутреннем.
Указание 2: Чтобы посчитать степень числа, необходимо подключить класс Math:
using static System.Math; ... Math.Pow(x,y); |
Пример выполнения:
z(x,y) = 2^2 = 4 z(x,y) = 2^3 = 8 z(x,y) = 2^4 = 16 z(x,y) = 3^2 = 9 z(x,y) = 3^3 = 27 z(x,y) = 3^4 = 81 z(x,y) = 4^2 = 16 z(x,y) = 4^3 = 64 z(x,y) = 4^4 = 256 z(x,y) = 5^2 = 25 z(x,y) = 5^3 = 125 z(x,y) = 5^4 = 625 ... и т.д.
[Название проекта: Lesson_3Task7, название файла L3Task7.cs]
Выполнить: Для каждого x в интервале [30;33] найдите значение функции z(x,y) = x - y. Переменная y изменяется в интервале [1;5].
Указание: Создайте два цикла for (один из них - вложенный). Переменнаяx должна изменяться во внешнем цикле, тогда как переменнаяy должна меняться во внутреннем.
Пример выполнения:
z(x,y) = 30-1=29 z(x,y) = 30-2=28 z(x,y) = 30-3=27 z(x,y) = 30-4=26 z(x,y) = 30-5=25 z(x,y) = 31-1=30 ... и т.д.
[Название проекта: Lesson_3Task8, название файла L3Task8.cs]