Файл: Лабораторная работа 1 по дисциплине информатика формирование и обработка одномерных массивов Выполнил Злотников С. В.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 05.05.2024

Просмотров: 16

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Министерство цифрового развития, связи и
массовых коммуникаций Российской Федерации

Сибирский государственный университет телекоммуникаций и информатики

Лабораторная работа № 1

по дисциплине: ИНФОРМАТИКА

Формирование и обработка одномерных массивов


Выполнил: Злотников С.В.

Группа: МИТ-23

Вариант: 12

Проверила: Лебеденко Людмила Федоровна
Новосибирск, 2023

Задание к лабораторной работе

Разработать алгоритм обработки элементов массива и написать программу в соответствии со схемой.

Исходные данные: Массив Х[20] нецелых элементов вводят с клавиатуры.

Действия по обработке массива: Найти минимальный элемент и заменить его суммой элементов, стоящих в массиве после него.

Схема алгоритма решения задачи

Программа на языке Си

#include

#include

#define ARRAY_SIZE 20

double sum(const double *array, int length) {

double sum = 0;

for (int i = 0; i < length; i++) {

sum += array[i];

}

return sum;

}

int minIndex(const double *array, const int length) {

// DBL_MAX - максимальное нецелое число, гарантированно больше любого другого,

// чтобы сравнение работало независимо от того, насколько большие введены

// числа

double min = DBL_MAX, minIndex = 0;

for (int i = 0; i < length; i++) {

const double current = array[i];

// если текущее меньше минимального, пометить текущее как минимальное

if (current < min) {

min = current;

minIndex = i;

}

}

return minIndex;

}

void readArray(double *array, const int length) {

for (int i = 0; i < length; i++) {

scanf("%lf", array + i);

}

}

void printArray(const double *array, const int length) {

for (int i = 0; i < length; i++) {

printf("%g ", array[i]);

}

}

int main() {

// массив чисел

double array[ARRAY_SIZE] = {0};

// считать числа из ввода в массив

readArray(array, ARRAY_SIZE);

// найти индекс числа с минимальным значением

const int minInd = minIndex(array, ARRAY_SIZE);

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

const double s = sum(array + minInd + 1, ARRAY_SIZE - minInd - 1);

// записать сумму по индексу

array[minInd] = s;

// вывести массив

printArray(array, ARRAY_SIZE);

}
Скрины экранов с результатами выполнения программы


Контрольные вопросы


  1. Какие ограничения накладываются на индексы элементов массивов?

  2. Способы описания массивов на языке Си. Понятие размерности массива, описание размерности массивов.


  3. Задание типов элементов массива. Могут ли элементы массива иметь разный тип?


  4. Как располагаются элементы массива в памяти?


  5. Чем отличаются алгоритмы поиска максимального и минимального элемента массива?

  6. Чем отличаются алгоритмы расчета суммы и подсчета числа элементов массива.