
- •Введение
- •Переменные и константы
- •Типы данных
- •Числовые функции
- •Класс Random
- •Линейные алгоритмы
- •Условные операторы
- •Оператор if...Else
- •Оператор выбора switch
- •Оператор цикла с параметром
- •Сумма конечного ряда
- •Обработка данных во время ввода
- •Циклы с постусловием и предусловием
- •Дополнительные задачи
- •Массивы
- •Одномерные массивы Пример
- •Инициализация массива
- •Обработка элементов массива
- •Задания на определение суммы и количества элементов одномерного массива, соответствующих определенному условию
- •Задания на нахождение максимального и минимального элемента в одномерном числовом массиве
- •Работа с двумя массивами
- •Условный оператор после обработки массива
- •Самостоятельные задания по теме «Одномерные массивы»
- •Двумерные массивы Простейшие задачи
- •Сравнение (анализ) элементов
- •Расчётные задачи
- •Простейшие задачи
- •Поиск в текстовом файле
- •Работа с несколькими файлами
- •Текстовые файлы
- •Функции и процедуры
- •Библиографический список
Дополнительные задачи
В некотором году (назовём его условно первым) на участке в 100 гектаров средняя урожайность ячменя составила 20 центнеров с гектара. После этого каждый год площадь участка увеличивалась на 5%, а средняя урожайность – на 2%. Определить:
в каком году урожайность превысит 22 центнера с гектара;
в каком году площадь участка станет больше 120 гектаров;
в каком году общий урожай, собранный за всё время, начиная с первого года, превысит 800 центнеров.
В некоторой стране используются денежные купюры достоинством в 1, 2, 4, 8, 16, 32 и 64. Дано натуральное число n. Как наименьшим количеством таких денежных купюр можно выплатить сумму n (указать количество каждой из используемых для выплаты купюр)? Предполагается, что имеется достаточно большое количество купюр всех достоинств.
Дано натуральное число. Определить номер цифры 3 в нём, считая от конца числа. Если такой цифры нет, ответом должно быть число 0, если таких цифр в числе несколько – должен быть определён номер самой первой из них.
Дано натуральное число. Определить сумму m его последних цифр.
Определить:
является ли заданное число степенью числа 3;
является ли заданное число степенью числа 5.
Дано натуральное число. Определить:
две его максимальные цифры;
две его минимальные цифры.
Известна масса каждого груза, загружаемого в автомобиль. Выяснить, не превысила ли общая масса всех грузов грузоподъёмность автомобиля.
Массивы
Вставить другую информацию или дополнить из лекций - ?
В C Sharp имеется три основных типа массивов: одномерные, многомерные и неровные(jagged):
Одномерные массивы декларируются:
int[] array = new int[10];
int[] array = {1, 2, 3, 4, 5};
Доступ к элементам производится с помощью оператора []:
int element = array[0];
Элементы нумеруются индексами от 0 до N - 1, где N - размер массива.
Многомерные массивы представляют собой многомерные кубы значений. Элементы таких массивов идентифицируются набором индексов - "координат" в многомерном пространстве. Каждое измерение имеет свою размерность, не зависящую от других.
При декларации размерность указывается через запятую:
int[,] array = new int[10, 20, 30];
int[,] array = {{1, 2}, {3, 4}};
Доступ к элементам производится с помощью оператора [], в котором индексы также указываются через запятую:
int element = array[0, 1, 2];
Элементы нумеруются наборами индексов, каждый из которых может принимать значение от 0 до N - 1, где N - размер соответствующего измерения массива.
Неровные (jagged) массивы - это, можно сказать, массивы массивов. Формы декларации и доступа:
int array[][] = new int[2];
array[0] = new int[4];
array[1] = new int[20];
int element = array[0][1];
Неровные массивы похожи на многомерные, но их размеры могут различаться даже в одном измерении. В приведенном примере существует элемент array[1][15], но не существует элемента array[0][15].
Одномерные массивы Пример
static void Main(string[] args)
{
//Заполнить массив из восьми элементов следующими значениями: первый элемент массива равен 37, второй – 0, третий – 50, четвёртый – 46, пятый – 34, шестой – 46, седьмой – 0, восьмой – 13.
int[] arrInt = new int[8]; //Объявление массива
arrInt[0] = 37;//Занесение данных в элементы массива
arrInt[1] = 0;
arrInt[2] = 50;
arrInt[3] = 46;
arrInt[4] = 34;
arrInt[5] = 46;
arrInt[6] = 0;
arrInt[7] = 13;
for (int i=0; i<8; i++) //Печать массива
Console.WriteLine("{0} элемент массива = {1} ", i,arrInt[i]);
Console.ReadLine();
}
static void Main()
{
//Заполнить массив из десяти элементов значениями, вводимыми с клавиатуры в ходе выполнения программы.
int[] arrInt = new int[10]; //Объявление массива
for (int i=0; i<10; i++) //Цикл заполнения массива
{
Console.Write("Введите {0} элемент массива: ", i);
arrInt[i]=int.Parse(Console.ReadLine());
}
for (int i=0; i<10; i++) //Печать массива
Console.WriteLine("{0} элемент массива = {1} ", i,arrInt[i]);
Console.ReadLine();
}
static void Main()
{
//Заполнить массив из пятнадцати элементов случайным образом вещественными значениями, лежащими в диапазоне от 0 до 1.
float[] arrInt = new float[15]; //Объявление массива
for (int i=0; i<15; i++) //Цикл заполнения массива
{
Console.Write("Введите {0} элемент массива: ", i);
arrInt[i]=float.Parse(Console.ReadLine());
}
for (int i=0; i<10; i++) //Печать массива
Console.WriteLine("{0} элемент массива = {1} ", i,arrInt[i]);
Console.ReadLine();
}
static void Main()
{
//Массив предназначен для хранения значений ростов двенадцати человек. С помощью датчика случайных чисел заполнить массив целыми значениями, лежащими в диапазоне от 163 до 190 включительно.
int[] arrInt = new int[13]; //Объявление массива
Random rnd = new Random(); //Генератор случайных чисел
for (int i=1; i<13; i++) //Цикл заполнения массива
arrInt[i] = rnd.Next(28) + 163;
for (int i=1; i<13; i++) //Печать массива
Console.WriteLine("Рост {0} человека = {1} ", i,arrInt[i]);
Console.ReadLine();
}
static void Main()
{
//Составить программу вывода на экран любого элемента массива.
int[] arrInt = new int[10]; //Объявление массива
Random rnd = new Random(); //Генератор случайных чисел
int vivod;
for (int i=0; i<10; i++) //Цикл заполнения и печати массива
{
arrInt[i] = rnd.Next(10);
Console.Write("{0} ", arrInt[i]);
}
Console.WriteLine();
//Запрос номера элемента массива
Console.Write("Введите номер элемента массива: ");
vivod=int.Parse(Console.ReadLine());
for (int i=0; i<10; i++) //Вывод требуемого элемента
if (i == vivod) Console.WriteLine("{0} элемент массива = {1} ", i,arrInt[i]);
Console.ReadLine();
}
static void Main()
{
//Вывести элементы массива на экран в обратном порядке.
int[] arrInt = new int[10]; //Объявление массива
Random rnd = new Random(); //Генератор случайных чисел
for (int i=0; i<10; i++) //Цикл заполнения и печати массива
{
arrInt[i] = rnd.Next(10);
Console.Write("{0} ", arrInt[i]);
}
Console.WriteLine();
for (int i=9; i>-1; i--) //Печать массива в обратном порядке
Console.Write("{0} ", arrInt[i]);
Console.ReadLine();
}