Файл: Лабораторная работа 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);
}
Скрины экранов с результатами выполнения программы
Контрольные вопросы
-
Какие ограничения накладываются на индексы элементов массивов? -
Способы описания массивов на языке Си. Понятие размерности массива, описание размерности массивов. -
Задание типов элементов массива. Могут ли элементы массива иметь разный тип? -
Как располагаются элементы массива в памяти? -
Чем отличаются алгоритмы поиска максимального и минимального элемента массива? -
Чем отличаются алгоритмы расчета суммы и подсчета числа элементов массива.