Добавил:
coffee4ek
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Отчёты Ерофеев / Практики / Отчёт_практ14
.pdf
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Факультет информационных технологий и программной инженерии (ИТПИ)
Кафедра программной инженерии и вычислительной техники (ПИиВТ)
Дисциплина: «Алгоритмические основы программной инженерии»
Практическая работа №4.
Выполнил: Студент группы ИКПИ-41
Летягина Е. А.
Подпись
Принял: Доцент кафедры ПИиВТ
Ерофеев Сергей Анатольевич
Подпись
«_____»________ 2024
г. Санкт-Петербург
2025 г.

Задание: разработать скрипт в среде Bash
в одномерном массиве, состоящем из n целочисленных элементов,
вычислить:
1) номер максимального по модулю элемента массива;
2) сумму элементов массива, расположенных после первого
положительного элемента.
Код программы:
#!/bin/bash
# Ввод массива (через пробел)
read -p "Введите элементы массива через пробел: " -a arr
n=${#arr[@]}
if [ "$n" -eq 0 ]; then
echo "Массив пуст!"
exit 1
fi
# 1) Номер (индекс) максимального по модулю элемента
max_index=1
max_value=${arr[0]}
for ((i = 0; i < n; i++)); do
current=${arr[i]}
# Вычисляем модуль
if (( current < 0 )); then
current_abs=$(( -current ))
else
current_abs=$current
fi
if (( max_value < 0 )); then
max_abs=$(( -max_value ))
else
max_abs=$max_value
fi
if (( current_abs > max_abs )); then
max_abs=$current_abs
max_index=$((i+1))
max_value=${arr[i]}
fi
done
echo "Индекс максимального по модулю элемента: $max_index"
# 2) Сумма элементов после первого положительного
sum=0
found_positive=0
for ((i = 0; i < n; i++)); do
if (( found_positive == 1 )); then
sum=$((sum + arr[i]))
elif (( arr[i] > 0 )); then
found_positive=1
fi
done
if (( found_positive == 1 )); then
echo "Сумма элементов после первого положительного: $sum"
else
echo "Нет положительных элементов в массиве."
Fi
Вывод программы:

Соседние файлы в папке Практики
