АЛГОхитрости. Типовые алгоритмические приёмы работы с массивами

Содержание

Слайд 2

АЛГОхитрости Типовые алгоритмические приёмы с массивами Одномерные массивы. Считывание содержимого массива

АЛГОхитрости
Типовые алгоритмические приёмы с массивами

Одномерные массивы. Считывание содержимого массива
Считывание – вывод

на экран, в файл, на печать содержимого массива – реализуется обычно с использованием простого цикла ДЛЯ начиная с первого элемента до конца массива. Max – размерность массива.

И+ПРГ

Слайд 3

АЛГОхитрости Типовые алгоритмические приёмы с массивами Одномерные массивы. Сумма элементов массива

АЛГОхитрости
Типовые алгоритмические приёмы с массивами

Одномерные массивы. Сумма элементов массива
Все элементы массива

целых чисел Mas суммируются в переменную S, которая затем выводится на экран. Max – размерность массива.

И+ПРГ

Слайд 4

АЛГОхитрости Типовые алгоритмические приёмы с массивами Одномерные массивы. Среднее значение элементов

АЛГОхитрости
Типовые алгоритмические приёмы с массивами

Одномерные массивы. Среднее значение элементов массива
Для определения

среднего значения элементов массива сначала вычисляется их сумма и потом делится на количество элементов. Max – размерность массива. MMid– среднее значение.

И+ПРГ

Слайд 5

АЛГОхитрости Типовые алгоритмические приёмы с массивами Одномерные массивы. Наибольший (наименьший) элемент

АЛГОхитрости
Типовые алгоритмические приёмы с массивами

Одномерные массивы. Наибольший (наименьший) элемент массива
Определение наибольшего

элемента массива начинается с помещения значения первого элемента массива в переменную Maximum (Minimum), затем значение этой переменной поочерёдно сравнивается со всеми элементами массива и если находится большее (меньшее) значение в элементе массива, то оно заменяет значение переменной. Max – размерность массива.

И+ПРГ

Слайд 6

Задание: Введите с клавиатуры одномерный массив из 6 элементов, найдите и

Задание: Введите с клавиатуры одномерный массив из 6 элементов, найдите и

выведите на печать минимальный элемент массива

C / С++

// Поиск минимального элемента массива
#include
#define MS 6 //размер массива
void main ()
{
int a[MS]; // одномерный массив
int min, i; // min – минимальный элем. массива
printf ("\n Введите элементы массива – ");
printf ("%i", MS);
printf (" целых чисел в одной строке \n через пробел и нажмите Enter -> ");
for (i = 0; i < MS; i++)
scanf ("%i", &a[i]);
min = a[0]; // назнач. мин. первый элем. массива
// Сравниваем остальные элементы с мин.
for (i = 0; i < MS; i++)
if (a[i] < min) min=a[i];
printf ("Минимальный элемент массива");
printf ("= %i ", min);
}

Элементы ЯПВУ

МАССИВЫ

Практическое занятие

И+ПРГ

Слайд 7

АЛГОхитрости Типовые алгоритмические приёмы с массивами Одномерные массивы. Диапазон значений элементов

АЛГОхитрости
Типовые алгоритмические приёмы с массивами

Одномерные массивы. Диапазон значений элементов массива
Определяются наименьший

и наибольший элементы массива, они являются границами диапазона значений элементов массива.

И+ПРГ

Слайд 8

АЛГОхитрости Типовые алгоритмические приёмы с массивами Определить является ли введённое число палиндромом И+ПРГ

АЛГОхитрости
Типовые алгоритмические приёмы с массивами

Определить является ли введённое число палиндромом

И+ПРГ


Слайд 9

АЛГОхитрости Типовые алгоритмические приёмы с массивами Определить является ли введённое число

АЛГОхитрости
Типовые алгоритмические приёмы с массивами

Определить является ли введённое число палиндромом

//

Определить палиндром ли введенное число
#include
#define SZ 5
main() {
int n, m, i=0, j, P[SZ];
printf("\nВведите целое число (до 32 767) n=");
scanf("%D", &n);
m=n;
while(m!=0)
{ P[i] = m % 10; m = (int) m / 10; i++; }
printf("Число %d", n);
for (j=0; j <= (int)i/2; j++)
if (P[j] != P[i-1])
{
printf(" НЕ ");
break;
}
else i--;
printf(" палиндром");
return 0;
}

И+ПРГ

// Вариант цикла проверки на палиндром
for (j=0; j <= (int)i/2; j++, i--)
if (P[j] != P[i-1])
{
printf(" НЕ ");
break;
}
else continue;

Слайд 10

АЛГОхитрости Типовые алгоритмические приёмы работы с массивами Одномерные массивы. Слияние двух

АЛГОхитрости
Типовые алгоритмические приёмы работы с массивами

Одномерные массивы. Слияние двух упорядоченных массивов

в третий упорядоченный. Max – размерность массива.

И+ПРГ

Слайд 11

C МАССИВЫ Практическое занятие Слить два упорядоченных по возрастанию массива целых

C

МАССИВЫ

Практическое занятие

Слить два упорядоченных по возрастанию массива целых чисел введённых

с клавиатуры в один упорядоченный по возрастанию и вывести новый массив на печать.

#include
#include
#define SZ 5 //Размер исходных массивов
void main() {
int a[SZ], b[SZ]; // исходные массивы
int c[SZ*2]; // массив-результат
int k,i,m; // индексы массивов a, b и c
printf ("Слияние двух упорядоченных массивов в один,\n");
printf ("ввод элементов через пробел, завершение: Enter\n");
printf ("\nВведите первый массив %i -> ", SZ);
for (k=0; kprintf ("Введите второй массив %i -> ", SZ);
for (i=0; i k=i=m=0;
do { if (a[k] < b[i]) c[m++] = a[k++];
else if (a[k] > b[i]) c[m++] = b[i++];
else { c[m++] = a[k++]; c[m++] = b[i++]; } }
while ((k < SZ) && (i < SZ));
while (k < SZ) /*есть элем. массива А не переписанные в С*/
c[m++] = a[k++];
while (i < SZ) /* есть элементы B не переписанные в С */
c[m++] = b[i++];
printf("Массив-результат: \n");
for (i=0; i<2*SZ; i++) printf ("%i ", c[i]);
printf("\nДля завершения работы нажмите Enter\n");
getch(); }

И+ПРГ

АЛГОхитрости

Слайд 12

АЛГОхитрости Типовые алгоритмические приёмы с массивами Двумерные массивы. Считывание содержимого массива

АЛГОхитрости
Типовые алгоритмические приёмы с массивами

Двумерные массивы. Считывание содержимого массива
Считывание – вывод

на экран, в файл, на печать содержимого массива – реализуется обычно с использованием циклов ДЛЯ начиная с первого элемента до конца массива. Первый индекс (i) определяет номер строки, второй индекс (j) – номер столбца. Max_i – количество строк массива, Max_j – количество столбцов.

Для смещения по каждому индексу массива выделяется отдельный цикл. Циклы вложены один в другой.
Внешний цикл (по индексу - i) смещается по строкам (выбирает строку) и передает управление внутреннему циклу.
Внутренний цикл (по индексу - j) смещается по столбцам – выбира-ет в текущей строке ячейку, соответствующую столбцу массива (таблицы).
Затем управление возвращается внешнему циклу, происходит переход к следующей строке массива.
И так пока не прочитается весь массив.

И+ПРГ

Слайд 13

Двумерные массивы. Загрузка содержимого массива с клавиатуры и вывод его на

Двумерные массивы. Загрузка содержимого массива с клавиатуры и вывод его на

экран (пример вывода двумерного массива на экран)

// Заполнение двумерного массива
#include
// Количество строк массива
#define SIZE_i 5
// Количество столбцов массива
#define SIZE_j 5
void main ()
{
int a[SIZE_i][SIZE_j]; // Двумерный массив
int i, j; // индексы массива
printf("\nВведите элементы массива\n");
см. продолжение

Продолжение
// Ввод элементов массива с клавиатуры
printf("После ввода числа - Enter\n");
for (i=0; i for (j=0; j {
printf ("a[%i][%i] = ",i,j);
scanf ("%i",&a[i][j]);
}
// Вывод массива на экран
for (i=0; i {
for (j=0; j printf("%4i \n",a[i][j]);
printf("\n");
}
}

C / С++

Массивы

И+ПРГ

АЛГОхитрости
Типовые алгоритмические приёмы с массивами