Слайд 1Основы программирования
ФИСТ 1 курс
Власенко
Олег
Федосович
Лекция 6.2
Массивы в Си
Простейшие операции
над массивами
Слайд 3Где нужны массивы?
Список группы.
Журнал с оценками
Журнал с отметками о посещаемости.
Ведомость
о получении стипендии/зарплаты
Поле для компьютерной игры (тетрис, поле сапера и
т.п.)
Колода карт в компьютерной игре
Изображение (Картинка) на экране монитора
Звук
Видеоизображение
Слайд 4Чем можно заменить массивы?
Задача: Было 4 контрольных. Нужно хранить в
программе информацию об оценках за эти 4 контрольные. Найти и
напечатать min из оценок.
void main() {
// инициализация
int a1 = 3;
int a2 = 4;
int a3 = 3;
int a4 = 5;
// Вывод
printf("%d ", a1);
printf("%d ", a2);
printf("%d ", a3);
printf("%d ", a4);
Слайд 5Чем можно заменить массивы?(2)
// поиск min и печать
{
int min
= a1;
if (a2 < min) {
min = a2;
}
if (a3
min) {
min = a3;
}
if (a4 < min) {
min = a4;
}
printf("min = %d ", min);
}
}
Слайд 6А если через массив?
void main() {
int arr[4];
arr[0] = 3;
arr[1] =
4;
arr[2] = 3;
arr[3] = 5;
// Вывод
printf("%d ", arr[0]);
printf("%d ", arr[1]);
printf("%d
", arr[2]);
printf("%d ", arr[3]);
Слайд 7А если через массив? (2)
// поиск min и печать
{
int
min = arr[0];
if (arr[1] < min) {
min = arr[1];
}
if (arr[2]
< min) {
min = arr[2];
}
if (arr[3] < min) {
min = arr[3];
}
printf("min = %d ", min);
}
}
Слайд 8А если в массиве больше элементов?
Если элементов 18? (количество занятий
в семестре)
А если элементов 44100 (за одну секунду – как
в Audio CD)?
Слайд 9Обработка массивов – основные алгоритмы
void main() {
// инициализация
int arr[4] =
{ 3, 4, 3, 5 };
int i;
// Вывод
i = 0;
do
{
printf("%d ", arr[i]);
i++;
} while (i < 4);
Слайд 10Обработка массивов – основные алгоритмы
// поиск min и печать
{
int
min = arr[0];
i = 1;
do {
if (arr[i] < min) {
min
= arr[i];
}
i++;
} while (i < 4);
printf("min = %d ", min);
}
}
Слайд 11Обработка массивов – основные алгоритмы
Блок-схемы
// Вывод
i = 0;
do {
printf("%d ",
arr[i]);
i++;
} while (i < 4);
Слайд 12Обработка массивов – основные алгоритмы
Блок-схемы (2)
// поиск min и печать
int min = arr[0];
i = 1;
do {
if (arr[i] < min)
{
min = arr[i];
}
i++;
} while (i < 4);
printf("min = %d ", min);
Слайд 13Найти среднее арифметическое элементов
Блок-схема + Трассировка
void main() {
int arr[4] =
{ 3, 4, 3, 5 };
int i;
int S = 0;
double
sr;
// поиск среднего арифметического
i = 0;
do {
S = S + arr[i];
i++;
} while (i < 4);
sr = S / 4.0;
printf("sr = %lf ", sr);
}
Слайд 14Количество четных элементов
Блок-схема + трассировка
void main() {
int arr[4] = {
6, 4, 6, 5 };
int i;
int cnt = 0;
// подсчет
количества четных элементов
i = 0;
do {
if (arr[i] % 2 == 0) {
cnt++;
}
i++;
} while (i < 4);
printf("cnt = %d ", cnt);
}
Слайд 15Ввод массива с клавиатуры
void main() {
int arr[4];
int i;
// Ввод элементов
с клавиатуры
i = 0;
do {
scanf("%d", &arr[i]);
i++;
} while (i < 4);
Слайд 16Домашнее задание
Собрать и запустить на компьютере все полные примеры
Переделать все
примеры через while() {}
3. Для реализации через while сделать блок-схемы
и выполнить ручную трассировку.
4. Все реализации через while запустить на компьютере
5*. Переделать все примеры через for() {}