Тема: Обработка одномерных массивов. Поиск минимального и максимального элементов массива.
ПЛАН ЗАНЯТИЯ
Дисциплина: ОП.05 Основы программирования
Преподаватель: Машарова Р.В.
Курс: 2
Группа: 1 ПКС-20
Специальность: Программирование в компьютерных системах
Дата: 3.06.22
Время проведения: 13.00-14.20, 4 пара
Тема: Обработка одномерных массивов. Поиск минимального и максимального элементов массива.
Цель занятия:
Дидактическая: познакомиться с алгоритмом поиска минимального и максимального элементов одномерного массива
Развивающая: развивать логическое и критическое мышление, умение обобщать и синтезировать знания
Вид занятия лекция
Литература:
1. Павловская Т.А. С/С++. Программирование на языке высокого уровня. 2 изд. – Спб. Питер, 2011. – 464 с.: ил.
2. Павловская Т. А., Щупак Ю. А. C/C++. Структурное и объектно-ориентированное программирование. Практикум. – Спб. Питер, 2010. – 352 с.
3. Семакин И.Г., Шестаков А.П. Основы алгоритмизации и программирования: учебник для студентов учреждений сред.проф. образования – М.: издательский центр «Академия», 2013 – 400 с.
4. Семакин И.Г., Шестаков А.П. Основы алгоритмизации и программирования. Практикум: учебник для студентов учреждений сред.проф. образования – М.: издательский центр «Академия», 2013 – 400 с.
Тема: Обработка одномерных массивов. Поиск минимального и максимального элементов массива.
1. Поиск максимального элемента
2. Поиск минимального и максимального элементов массива
3. Нахождение суммы чётных положительных элементов.
Задача 1. Поиск максимального элемента.
Напишите программу поиска максимального элемента в заданном одномерном массиве. Элементы массива являются целыми числами.
Текст программы:
#include<stdio.h>#include <conio.h> int main (void) {inti, size, max; int A[ ] = {3, 5, 2, 8, 12, 0, -7, -3, -21};size = sizeof(A)/sizeof(A[0]);printf("\n\t The dimention of the array A is equal to: %d\n", size); max = A[0]; // Предполагаемый максимум for (i = 0; i< size; ++i) if (A[i] > max) max = A[i]; printf("\n\t Maximum array element: %d\n", max); printf("\n\n Press any key: "); _getch(); return 0; }
В программе использована инициализация безразмерного массива и определения его размерности с помощью функции sizeof().
Результат выполнения программы показан на рис. 1.
Рис. 1 Определение максимального элемента массива
Задача 2. Поиск минимального и максимального элементов массива
Дан вещественный массив: T = { ti }; i= . Поменять местами минимальный и максимальный элементы массива и вывести массив после обмена.
В этой задаче для осуществления обмена надо знать не только значения минимального и максимального элементов массива, но и их местоположение. Поэтому во время поиска минимального и максимального элементов необходимо фиксировать значения их индексов.
Введем обозначения:
min - минимальный элемент;
imin - индекс минимального элемента;
max - максимальный элемент;
imax - индекс максимального элемента.
Схема алгоритма:
Текст программы:
#include "stdafx.h"
#include<math.h>
int main()
{
float T[10] ; // описаниемассиваТ
int i, imin, imax;
float min, max;
printf("Введите массив Т\n");
for( i = 0;i<10;i++)
scanf("%f",&T[i]);
min =+1E6; //инициализация min очень большим числом
max =-1E6; //инициализация max очень маленьким числом
for( i = 0; i<10; i++) //цикл по всем значения индекса
{
if (T[i]<min)
{
min = T[i];
imin=i; // сохранение номера текущего min
}
if( T[i]>max)
{
max = T[i];
imax = i; // сохранение номера текущего max
}
}
T[imin]=max; //запись max на место min
T[imax]= min; //запись min на место max
for( i= 0; i<10; i++) //вывод массива Т после обмена
printf("%6.2f ",T[i]);
printf("\n");
return 0;
}
Задача 3. Нахождение суммы чётных положительных элементов.
Создать массив А(8), элементы которого ввести с клавиатуры, найти сумму четных положительных элементов и минимальный элемент массива.
Текст программы:
#include<stdio.h>
#include <conio.h>
#include <math.h>
//#include <stdlib.h>
int main (void) {
int A[8];
int i, sum,min;
printf("\n\t Vvedite massiv iz 8 chisel\n");
for (i = 0; i < 8; i++)
scanf("%i",&A[i]);
// Печать элементов исходного массива
printf("\n\t ishodniy massiv \n");
for (int i = 0; i < 8; i++)
printf("\n\t %5d element massiva %10d", i + 1, A[i]);
// Нахождение суммы четных положительных элементов
sum=0;min=A[0];
for (i = 0; i < 8; i++)
{ if((A[i]>0)&&(!(A[i]%2))) {sum=sum+A[i];}
if (A[i] < min) {min = A[i];}}
printf("\n\t Minimalniyelementmassiva %d\n", min);
// Печать найденной суммы
printf("\n\n\tSumma=:%10d\n",sum);
printf("\n\n Press any key: ");
_getch();
return 0;
}
Результат выполнения программы показан на рис. 2
Рис. 2. Окно обработки элементов массива
Схема алгоритма:
Контрольные вопросы
1. Понятие массива
2. Одномерные массивы
3. Описание одномерного массива
4. Индексированные переменные
5. Ввод-вывод одномерных массивов