Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему ПЯВУ. Основы программирования. Лекция 6

Содержание

Вопросы для повторенияНазовите 4 обязательных характеристики переменной?Что определяет типа данных?Зачем определены 2 числовых типа данных: int и double?Какие операции можно выполнять над строками?Как происходит сравнение строк?Опишите “время жизни” переменной.
ПЯВУ. Лекция 6.Основы программирования.А.М. Задорожный Вопросы для повторенияНазовите 4 обязательных характеристики переменной?Что определяет типа данных?Зачем определены 2 СодержаниеМассивы. Одномерные массивы Понятие алгоритма, запись алгоритмаПримеры простейших алгоритмовПоиск наибольшего/наименьшегоПоиск условного наибольшего/наименьшегоДополнительные МассивыВажнейшая структура данныхМассив – совокупность элементов данных одного типа, имеющих одно имя, Примерыint [] v = new int [16]; 		// 16 целыхdouble [] a Доступ к элементам массиваint [] v = new int [16];int x = Нумерация элементов массиваУ объекта–массива имеется свойство Length.int n = v.Length; // количество Перебор элементовdouble [] v = new double [16];//Заполнение массиваfor(int i = 0; Инициализация массиваМассивы можно инициализировать как и обычные переменные.int [] a = new Применения массивовВектора в математике в программировании задаются массивами.Задача. Найти скалярное произведение векторов Контрольные вопросыЧто такое массив?Могут ли элементы одного массива иметь разные типы?Какой номер АлгоритмАлгоритм – конечная последовательность выполнимых действий, которая приводит к решению задачи.Поваренная книга Текстовая запись алгоритмаЗадача. Найти скалярное произведение двух векторов одинаковой размерности.Обозначим вектора имени Поиск наибольшего/наименьшегоЗадача. Найти значение наибольшего элемента массива.Обозначим наибольшее значение aMax, а массив Программирование алгоритма//Присвоим aMax значение первого элемента массиваdouble aMax = a[0];//Цикл по элементам Поиск наибольшего/наименьшегоЗадача. Найти номер первого наибольшего элемента массива.Обозначим номер наибольшего элемента iMax, Программирование алгоритма//Присвоим iMax значение 0int iMax = 0;//Цикл по элементам массива начиная Усложнение задачиЗадача. Найти значение наибольшего элемента массива целых, среди элементов, делящихся на Укрупнение алгоритмаНайти первый элемент массива, который делится на 3 и присвоить его Уточнение алгоритмаБудем искать НОМЕР элементаПоместить в iMax значение -1Найти номер первого элемента Реализация алгоритмаint iMax = -1;for(int i = 0; i < a.Length; i++)if(a[i] Дополнительные операторы управления цикломbreak – прекращает выполнение циклаcontinue – переход к следующей Контрольные вопросыЧто такое алгоритм?Что значит: “Задача не имеет алгоритмического решения”?Что означает фраза: Многомерные массивыМожно создавать массивы более чем из одной размерности.int [,] m = Массив массивовЭлементами массива могут быть и массивы.int [][] a = new int Пример использования массива массивовУ массива массивов каждый элемент-массив может иметь свою длину. Применения многомерных массивовМатрицы в математике задаются двумерными массивами.Задача. Найти сумму 2-х матриц Контрольные вопросыКак можно задать двумерный массив?Чем двумерный массив отличается от массива массивов?О
Слайды презентации

Слайд 2 Вопросы для повторения
Назовите 4 обязательных характеристики переменной?
Что определяет

Вопросы для повторенияНазовите 4 обязательных характеристики переменной?Что определяет типа данных?Зачем определены

типа данных?
Зачем определены 2 числовых типа данных: int и

double?
Какие операции можно выполнять над строками?
Как происходит сравнение строк?
Опишите “время жизни” переменной.


Слайд 3 Содержание
Массивы. Одномерные массивы

Понятие алгоритма, запись алгоритма

Примеры простейших

СодержаниеМассивы. Одномерные массивы Понятие алгоритма, запись алгоритмаПримеры простейших алгоритмовПоиск наибольшего/наименьшегоПоиск условного

алгоритмов
Поиск наибольшего/наименьшего
Поиск условного наибольшего/наименьшего

Дополнительные операторы управления циклом (break и

continue)

Массивы. Многомерные массивы




Слайд 4 Массивы
Важнейшая структура данных

Массив – совокупность элементов данных одного

МассивыВажнейшая структура данныхМассив – совокупность элементов данных одного типа, имеющих одно

типа, имеющих одно имя, доступ к которым выполняется по

номеру элемента.

Массив – новый тип данных. Абстрактный. Контейнер.

Слайд 5 Примеры
int [] v = new int [16]; //

Примерыint [] v = new int [16]; 		// 16 целыхdouble []

16 целых

double [] a = new double [4]; //

4 double

Массивы могут быть образованы из данных любого определенного ранее типа.

В общем виде:
<тип> [] <имя массива> = new <тип>[<количество>];

Слайд 6 Доступ к элементам массива
int [] v = new

Доступ к элементам массиваint [] v = new int [16];int x

int [16];

int x = v[3]; // чтение элемента массива
v[1]

= x; // изменение элемента


Слайд 7 Нумерация элементов массива
У объекта–массива имеется свойство Length.

int n

Нумерация элементов массиваУ объекта–массива имеется свойство Length.int n = v.Length; //

= v.Length; // количество элементов

Нумерация элементов всегда начинается с

0;

//Какой тип данных напоминает?

Слайд 8 Перебор элементов
double [] v = new double [16];
//Заполнение

Перебор элементовdouble [] v = new double [16];//Заполнение массиваfor(int i =

массива
for(int i = 0; i < v.Length; i++)
{
v[i] =


}

Слайд 9 Инициализация массива
Массивы можно инициализировать как и обычные переменные.

int

Инициализация массиваМассивы можно инициализировать как и обычные переменные.int [] a =

[] a = new int[3] {1, 2, 3};

Для числовых

типов, если массив не инициализирован, все его элементы равны 0;
Для логических – false;
Для строковых – пустой строке.

Слайд 10 Применения массивов
Вектора в математике в программировании задаются массивами.
Задача.

Применения массивовВектора в математике в программировании задаются массивами.Задача. Найти скалярное произведение

Найти скалярное произведение векторов a(0,1,1) и b(1,1,0)

double [] a

= new double[3]{0,1,1};
double [] b = new double[3]{1,1,0};

double dp = 0;
for(int i = 0; i < a.Length; i++)
{
dp += a[i] * b[i];
}
//Здесь в dp содержится скалярное произведение векторов

Слайд 11 Контрольные вопросы
Что такое массив?

Могут ли элементы одного массива

Контрольные вопросыЧто такое массив?Могут ли элементы одного массива иметь разные типы?Какой

иметь разные типы?

Какой номер имеет последний элемент массива v?

Чему

равен элемент массива v с номером 1?
int [] v = new int [3] {1, 2, 3};

Что общего между массивом символов и строкой?

В чем различие между массивом символов и строкой?




Слайд 12 Алгоритм

Алгоритм – конечная последовательность выполнимых действий, которая приводит

АлгоритмАлгоритм – конечная последовательность выполнимых действий, которая приводит к решению задачи.Поваренная

к решению задачи.

Поваренная книга - пример сборника алгоритмов: имеется

задача, исходные данные, указана последовательность действий для достижения цели.

Слайд 13 Текстовая запись алгоритма
Задача. Найти скалярное произведение двух векторов

Текстовая запись алгоритмаЗадача. Найти скалярное произведение двух векторов одинаковой размерности.Обозначим вектора

одинаковой размерности.

Обозначим вектора имени a и b, а результат

dp.

Занулить аккумулятор dp (dp = 0)
Цикл по элементам вектора a. (i-тый компонент)
Увеличить аккумулятор dp на произведение i-тых (текущих) компонентов векторов a и b.
Конец цикла 2

В dp содержится скалярное произведение a и b.

Слайд 14 Поиск наибольшего/наименьшего
Задача. Найти значение наибольшего элемента массива.

Обозначим наибольшее

Поиск наибольшего/наименьшегоЗадача. Найти значение наибольшего элемента массива.Обозначим наибольшее значение aMax, а

значение aMax, а массив a.
Присвоим aMax значение первого элемента

массива;
Цикл по элементам массива начиная со второго
Очередной элемент массива ai сравниваем с aMax
Если ai больше aMax, то присвоить значение ai в aMax
Конец цикла 2

В aMax содержится значение наибольшего элемента массива a.

Что изменится, если нужно найти наименьший?

Слайд 15 Программирование алгоритма
//Присвоим aMax значение первого элемента массива
double aMax

Программирование алгоритма//Присвоим aMax значение первого элемента массиваdouble aMax = a[0];//Цикл по

= a[0];
//Цикл по элементам массива начиная со второго
for(int i

= 1; i < a.Length; i++)
{
//Очередной элемент массива ai сравниваем с aMax
if(a[i] > aMax)
{
//Если ai больше aMax, то присвоить значение ai в aMax
aMax = a[i];
}
//Конец цикла 2
}


Слайд 16 Поиск наибольшего/наименьшего
Задача. Найти номер первого наибольшего элемента массива.

Обозначим

Поиск наибольшего/наименьшегоЗадача. Найти номер первого наибольшего элемента массива.Обозначим номер наибольшего элемента

номер наибольшего элемента iMax, а массив a.
Присвоим iMax значение

0;
Цикл по элементам массива начиная со второго
Очередной элемент массива ai сравниваем с aiMax
Если ai больше aiMax, то присвоить значение i в iMax
Конец цикла 2

В iMax содержится номер первого наибольшего элемента массива a.

Как изменится, если нужен номер последнего наибольшего?

Слайд 17 Программирование алгоритма
//Присвоим iMax значение 0
int iMax = 0;
//Цикл

Программирование алгоритма//Присвоим iMax значение 0int iMax = 0;//Цикл по элементам массива

по элементам массива начиная со второго
for(int i = 1;

i < a.Length; i++)
{
//Очередной элемент массива ai сравниваем с aiMax
if(a[i] > a[iMax])
{
//Если ai больше aiMax, то присвоить значение i в iMax
iMax = i;
}
//Конец цикла 2
}


Слайд 18 Усложнение задачи
Задача. Найти значение наибольшего элемента массива целых,

Усложнение задачиЗадача. Найти значение наибольшего элемента массива целых, среди элементов, делящихся

среди элементов, делящихся на 3.

Исходная задача решалась так:

int aMax

= a[0];
for(int i = 1; i < a.Length; i++)
{
if(a[i] > aMax)
aMax = a[i];
}

Как ее изменить?



Слайд 19 Укрупнение алгоритма
Найти первый элемент массива, который делится на

Укрупнение алгоритмаНайти первый элемент массива, который делится на 3 и присвоить

3 и присвоить его в aMax.

Применить алгоритм “поиск наибольшего”

к оставшимся элементам массива, пропуская те, которые не делятся на 3.

Что произойдет, если у в массиве не будет элементов, которые делятся на 3?

Слайд 20 Уточнение алгоритма
Будем искать НОМЕР элемента
Поместить в iMax значение

Уточнение алгоритмаБудем искать НОМЕР элементаПоместить в iMax значение -1Найти номер первого

-1

Найти номер первого элемента массива, который делится на 3

и присвоить его в iMax.

Если в массиве нет будет элементов, которые делятся на 3, то iMax будет равно -1. На этом решение задачи завершено. Искомого элемента нет!

Применить алгоритм “поиск наибольшего” к последующим (iMax) элементам массива, пропуская те, которые не делятся на 3.

Если в массиве не будет элементов, которые делятся на 3, то iMax будет равно -1. Если такие элементы есть, то iMax равно номеру наибольшего элемента

Слайд 21 Реализация алгоритма
int iMax = -1;
for(int i = 0;

Реализация алгоритмаint iMax = -1;for(int i = 0; i < a.Length;

i < a.Length; i++)
if(a[i] % 3 == 0)
{
iMax =

i;
break;
}
//Здесь известен номер первого элемента, который делится на 3
if(iMax >= 0)
{
for(int i = iMax + 1; i < a.Length; i++)
if(a[i] % 3 == 0 && a[i] > a[iMax])
iMax = i;
}
// Здесь iMax или равно -1 или равно номеру наибольшего элемента массива, среди тех, которые делятся на 3.

Слайд 22 Дополнительные операторы управления циклом
break – прекращает выполнение цикла
continue

Дополнительные операторы управления цикломbreak – прекращает выполнение циклаcontinue – переход к

– переход к следующей итерации

for(int i = 0; i

< 100; i++)
{
if(i%5 == 0) continue;

}


Слайд 23 Контрольные вопросы
Что такое алгоритм?
Что значит: “Задача не имеет

Контрольные вопросыЧто такое алгоритм?Что значит: “Задача не имеет алгоритмического решения”?Что означает

алгоритмического решения”?
Что означает фраза: “Степень детализации алгоритма”?
Для чего применяется

ключевое слово break?
Для чего применяется ключевое слово continue?
Как будет выглядеть алгоритм задачи:
“Найти среднее арифметическое элементов массива”?
7. В чем отличие алгоритма и программы, которые вы разрабатываете для реализации алгоритма?



Слайд 24 Многомерные массивы
Можно создавать массивы более чем из одной

Многомерные массивыМожно создавать массивы более чем из одной размерности.int [,] m

размерности.

int [,] m = new int[3, 3] {{1, 2,

3}, {4,5,6}, {7,8,9}};
У такого массива свойство Length говорит об общем количестве элементов. (в примере m.Length == 9)

Чтобы узнать размер массива по одному из измерений нужно пользоваться методом GetLength(n), где n – целое число, номер измерения.

Нумеруются измерения с 0, т.е. m.GetLength(0) вернет количество строк матрицы m, а m.GetLength(1) – количество столбцов.

Элемент такого массива определяется 2-мя индексами

m[1,2] = …
int t = m[0,2]

Слайд 25 Массив массивов
Элементами массива могут быть и массивы.
int [][]

Массив массивовЭлементами массива могут быть и массивы.int [][] a = new

a = new int [3][];
Пользоваться таким массивом еще нельзя.

Нужно задать каждый из его элементов.
for(int i = 0; I < a.Length; i++)
a[i] = new int[3];
Теперь задана матрица, которая состоит из 3 строк по 3 элемента в каждой.


Слайд 26 Пример использования массива массивов
У массива массивов каждый элемент-массив

Пример использования массива массивовУ массива массивов каждый элемент-массив может иметь свою

может иметь свою длину. Вот как можно выяснить длину

каждого элемента.

for(int i = 0; i < a.Length; i++)
Console.WriteLine(“Элемент {0} имеет длину {1}.”,
i, a[i].Length);
for(int i = 0; i < a.Length; i++)
for(int j = 0; j < a[i].Length; j++)
a[i][j] = i+j;

Слайд 27 Применения многомерных массивов
Матрицы в математике задаются двумерными массивами.
Задача.

Применения многомерных массивовМатрицы в математике задаются двумерными массивами.Задача. Найти сумму 2-х

Найти сумму 2-х матриц одинаковой размерности.

double [,] a =

new double[3,3]{{0,1,1}, {1,1,1}, {0,1,1}};
double [,] b = new double[3,3]{{1,1,0}, {2,0,0}, {3,1, 0}};

double [,] ab = new double[a.GetLength(0), a.GetLength(1)];

for(int i = 0; i < a.GetLength(0); i++)
for(int j = 0; j < a.GetLength(1); j++)
ab[i, j] = a[i, j] + b[i, j];

//Здесь в ab содержится сумма двух матриц a и b.

  • Имя файла: pyavu-osnovy-programmirovaniya-lektsiya-6.pptx
  • Количество просмотров: 106
  • Количество скачиваний: 0