Массивы - решение простых задач

Содержание

Слайд 2

Этапы решения Козьминых Н.М. Сокращенная форма: ввод исходных данных; решение задачи;

Этапы решения

Козьминых Н.М.

Сокращенная форма:
ввод исходных данных;
решение задачи;
вывод результата на экран.
Развернутая форма

для задач с массивами:
ввод (считывание)количества элементов массива из программы;
инициализация массива под необходимое количество элементов массива;
определение значений элементов массива;
вывод исходного массива на экран;
выполнение алгоритма;
вывод результата на экран.
Слайд 3

Задание 1 Козьминых Н.М. Задание - вычислить среднее значение массива

Задание 1

Козьминых Н.М.

Задание - вычислить среднее значение массива

Слайд 4

Задание 1 Программный код Козьминых Н.М. private void btn_Click(object sender, EventArgs

Задание 1 Программный код

Козьминых Н.М.

private void btn_Click(object sender, EventArgs e) {

Random rand = new Random();
int[] a = new int[12]; int i, S = 0; double avar;
for (i = 0; i < a.Length; i++)
a[i] = rand.Next(-10, 10);
grv.Rows.Clear();
grv.RowCount = 1;
grv.ColumnCount = a.Length;
for (i = 0; i < a.Length; i++)
{
grv.Columns[i].Name = (i + 1).ToString();
grv.Columns[i].Width = 30;
grv.Rows[0].Cells[i].Value = (a[i]).ToString();
}
for (i = 0; i < a.Length; i++)
S += a[i];
avar = (double)S / a.Length;
lbl.Text = "Среднее значение: " + avar.ToString("0.####");
}
Слайд 5

Задание 2 Козьминых Н.М. Каждый третий элемент массива возвести в квадрат

Задание 2

Козьминых Н.М.

Каждый третий элемент массива возвести в квадрат

Слайд 6

Козьминых Н.М. private void btn_Click(object sender, EventArgs e) { int n;

Козьминых Н.М.

private void btn_Click(object sender, EventArgs e) {
int n;

try {
n = Convert.ToInt32(txtN.Text);
}catch{
MessageBox.Show("Введите число"); txtN.Focus(); return;
}
int[] a = new int[n];
Random rand = new Random(); int i;
for (i = 0; i < a.Length; i++)
a[i] = rand.Next(-10, 10);
vivod(a, grv1);
for (i = 2; i < a.Length; i += 3)
a[i] = (int)Math.Pow(a[i], 2);
vivod(a, grv2);
}
private void vivod(int[] x, DataGridView grid) {
grid.Rows.Clear();
grid.RowCount = 1;
grid.ColumnCount = x.Length;
for (int i = 0; i < x.Length; i++) {
grid.Columns[i].Name = (i + 1).ToString();
grid.Columns[i].Width = 30;
grid.Rows[0].Cells[i].Value = (x[i]).ToString();
}
}
Слайд 7

Анализ смысла программы. 1. Переменная счетчик Козьминых Н.М. Переменная считает количество

Анализ смысла программы. 1. Переменная счетчик

Козьминых Н.М.

Переменная считает количество появлений в программе

того или иного события
Пример - количество положительных элементов
m=0;
for(i=0; i if(A[i] > 0)
m++;
Слайд 8

Анализ смысла программы. 2. Переменная признак Козьминых Н.М. Переменная фиксирует факт

Анализ смысла программы. 2. Переменная признак

Козьминых Н.М.

Переменная фиксирует факт наступления какого-либо события

в программе.
Пример - суммирование элементов массива до первого отрицательного элемента включительно
int s, k, i;
for (s=0, k=0, i=0; i s+=A[i];
if (A[i]<0)
k=1;
}
Слайд 9

Анализ смысла программы. 2. Переменная признак Козьминых Н.М. Пример - суммирование

Анализ смысла программы. 2. Переменная признак

Козьминых Н.М.

Пример - суммирование элементов массива до

первого отрицательного элемента включительно
С использованием и без использования переменной признака
Без переменной признака не - использование оператора break
Слайд 10

Анализ смысла программы. 2. Переменная признак Козьминых Н.М. Пример - подсчитать

Анализ смысла программы. 2. Переменная признак

Козьминых Н.М.

Пример - подсчитать количество пар элементов

вида «отрицательный – положительный»
int s, k, i;
for (i=0, s=0, k=0; i<10; i++)
if (A[i]<0)
k=1;
else{
if (k==1)
s++;
k=0;
}
Слайд 11

Анализ смысла программы. 3. Переменная накопитель Козьминых Н.М.

Анализ смысла программы. 3. Переменная накопитель

Козьминых Н.М.

Слайд 12

Анализ смысла программы. 4. Переменная минимум/максимум Козьминых Н.М. Пример 1 –

Анализ смысла программы. 4. Переменная минимум/максимум

Козьминых Н.М.

Пример 1 – найти значение максимального

элемента массива
Пример 2 – найти индекс максимального элемента
Слайд 13

Анализ смысла программы. 5. Смысл переменных при завершении цикла Козьминых Н.М.

Анализ смысла программы. 5. Смысл переменных при завершении цикла

Козьминых Н.М.

for (i=0; i

i++)
if (A[i]<0)
break;
if (i==n) ... // отрицательный элемент не найден
Здесь два варианта завершения цикла:
зафиксирован в заголовке цикла по достижении переменной i значения n;
выход из цикла по break происходит при обнаружении отрицательного значения элемента массива.