Тема: Обработка одномерных массивов. Поиск минимального и максимального элементов массива.

ПЛАН ЗАНЯТИЯ

Дисциплина: ОП.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. Ввод-вывод одномерных массивов