Слайд 2
ПЛАН ЗАНЯТИЯ
Строковые массивы (массивы символов)
Массив
Многомерные массивы
Ступенчатые массивы
Пример работы
с массивами
Задания
Слайд 3
Для объявления в программе константной строки вам необходимо
заключить содержимое строки в двойные кавычки ("My string").
Вы
можете делать это практически в любом месте программы: в передаче параметров функции, в инициализации переменных. Мы уже неоднократно применяли строковые константы при выводе данных на экран.
System.Console.WriteLine("Самые большие мониторы имеют размер: {0}", (int) Screens.SuperLarge);
Здесь в качестве одного из параметров функции используется строка "Самые большие мониторы имеют размер: {0}".
string strMessage = "Здравствуй Мир!";
В данном случае константная строка «Здравствуй Мир!» инициализирует переменную strMessage.
СТРОКОВЫЕ КОНСТАНТЫ
Слайд 4
int [ ] к; //к - массив (ссылка на массив)
k=new int [3]; //Определяем массив из 3 целых
к[0]=-5; //Задаем элементы массива
к[1]=4;
к[2]=55;
//Выводим третий элемент массива
Console.WriteLine(к[2] .ToString ());
Элементы массива можно задавать сразу при
объявлении. Например:
int [] к = {-5, 4, 55} ;
МАССИВЫ
Слайд 5
int k[]; //Неверно!
int k [3]; //Неверно!
int [3] к; //Неверно!
МАССИВЫ
Слайд 6
Двумерный массив:
int [ ] k = new int [2, 3];
Обратите внимание, что пара квадратных скобок
только одна. В нашем примере у массива 6 (=2*3)
элементов (к[0,0] — первый, к[1,2] — последний).
Трехмерный массив:
int [ ] к = new int [10,10,10];
А вот так можно сразу инициализировать многомерные массивы:
int [,] k = {{ 2, -2 }, { 3, -22 }, { 0, 4 }};
МНОГОМЕРНЫЕ МАССИВЫ
Слайд 7
//Объявляем 2-мерный ступенчатый массив
int[][] k = new int
[2][];
//Объявляем 0-й элемент нашего ступенчатого массива
//Это опять массив и
в нем 3 элемента
k[0]=new int[3];
//Объявляем 1-й элемент нашего ступенчатого массива
//Это опять массив и в нем 8 элементов
k[1]=new int[8];
k[1][7]=100; //записываем 100 в последний элемент массива
Обратите внимание, что у ступенчатых массивов мы задаем несколько пар квадратных скобок (по размерности массива).
Самая важная и интересная возможность ступенчатых массивов — это их «непрямоугольность». Так, в приведенном выше примере в первой «строке» массива к три целых числа, а во второй — восемь. Часто это оказывается очень кстати.
СТУПЕНЧАТЫЕ МАССИВЫ
Слайд 8
РАБОТА С ГЕНЕРАТОРОМ ПСЕВДОСЛУЧАЙНЫХ ЧИСЕЛ
Random x = new
Random(); //активируем генератор случайных чисел
int t1 = x.Next(); //возвращает
неотрицательное случайное число
int t2 = x.Next(30); // возвращает неотрицательное случайное число до 30
int t3 = x.Next(10, 30); //возвращает случайное число от 10 до 30
double t4 = x.NextDouble(); //возвращает вещественное случайное число от 0 до 1
Слайд 9
ПРИМЕР РАБОТЫ С МАССИВАМИ
Создать матрицу чисел, случайного размер,
заполненного случайными числами.
Посчитать сумму элементов по строкам.
Посчитать произведение по
столбцам.
Слайд 10
ПРИМЕР РАБОТЫ С МАССИВАМИ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using
System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Random x = new Random();
int t1 = x.Next(1,10); //количество строк
int t2 = x.Next(1,15); // количество столбцов
Слайд 11
ПРИМЕР РАБОТЫ С МАССИВАМИ
int i, j;
int[,] mas = new int[t1, t2];
// заполняем массив случайными числами от 0 до 99
for (i = 0; i < t1; i++)
for (j = 0; j < t2; j++)
mas[i, j] = x.Next(99);
//подсчитаем сумму по строкам
int [] row = new int [t1];
for (i = 0; i < t1; i++)
{
row[i] = 0;
for (j = 0; j < t2; j++)
row[i] += mas[i, j];
}
Слайд 12
ПРИМЕР РАБОТЫ С МАССИВАМИ
//произведение по столбцам
int[] col = new int[t2];
for (j = 0; j < t2; j++)
{
col[j] = 0;
for (i = 0; i < t1; i++)
{
col[j] += mas[i, j];
}
}
Слайд 13
ПРИМЕР РАБОТЫ С МАССИВАМИ
// вывод массива с результатом расчетов
for (i = 0; i < t1; i++)
{
for (j = 0; j < t2; j++)
{
Console.Write(mas[i, j].ToString() + " ");
}
Console.WriteLine(" | {0}",row[i]);
}
Console.WriteLine("------------------------");
for (i = 0; i < t2; i++)
{
Console.Write(col[i].ToString()+" ");
}
}
}
}
Слайд 14
ЗАДАНИЕ 1. ИНИЦИАЛИЗАЦИЯ МАССИВА И ВЫВОД ЕГО НА
ЭКРАН
Слайд 15
ЗАДАНИЕ 2
Определить:
а) сумму всех элементов массива;
б) произведение всех
элементов массива;
в) сумму квадратов всех элементов массива;
г) сумму шести
первых элементов массива;
д) сумму элементов массива с k1-го по k2-й (значения k1 и k2 вводятся с клавиатуры; k2 > k1);
е) среднее арифметическое всех элементов массива;
ж) среднее арифметическое элементов массива с s1-го по s2-й (значения s1 и s2 вводятся с клавиатуры; s2 > s1).
Слайд 16
ЗАДАНИЕ 3
В массиве хранится информация о численности книг
в каждом из 35 разде-лов библиотеки. Выяснить, верно ли,
что общее число книг в библиотеке
есть шестизначное число.
Слайд 17
ЗАДАНИЕ 4
Дан массив целых чисел. Найти:
а) сумму нечетных
элементов;
б) сумму элементов, кратных заданному числу;
в) сумму элементов массива,
кратных a или b.
Выяснить:
а) верно ли, что сумма элементов, которые больше 20, превышает 100;
б) верно ли, что сумма элементов, которые меньше 50, есть четное число.
Найти число пар соседних элементов массива, являющихся четными числами.
Слайд 18
ЗАДАНИЕ 5
В поезде 18 вагонов, в каждом из
которых 36 мест. Информация о продан-ных на поезд билетах
хранится в двумерном массиве, номера строк которых соответствуют номерам вагонов, а номера столбцов — номерам мест. Если билет на то или иное место продан, то соответствующий элемент массива имеет значение 1, в противном случае — 0. Составить программу, опреде-ляющую число свободных мест в любом из вагонов поезда.
Слайд 19
ЗАДАНИЕ 6
Дан двумерный массив. Определить:
а) номер столбца,
в котором расположен минимальный элемент четвертой строки массива. Если
элементов с минимальным значением в этой строке не-сколько, то должен быть найден номер столбца самого левого из них;
б) номер строки, в котором расположен максимальный элемент третьего столбца массива. Если элементов с максимальным значением в этом столбце несколько, то должен быть найден номер строки самого нижнего из них.
Слайд 20
ЗАДАНИЕ 7
Дан двумерный массив. Составить программу:
а) которая определяет,
является ли последовательность элементов некоторой строки массива упорядоченной по
неубыванию;
б) которая определяет, является ли последовательность элементов некоторого столбца массива упорядоченной по невозрастанию.
В случае отрицательного ответа в обеих задачах должны быть напечатаны координаты первого элемента, нарушающего указанную упорядоченность.