Урок № 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
counter
within 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
]