Скачиваний:
0
Добавлен:
22.09.2026
Размер:
577 Кб
Скачать
☆
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Факультет информационных технологий и программной инженерии (ИТПИ)
Кафедра программной инженерии и вычислительной техники (ПИиВТ)
Дисциплина: «Алгоритмические основы программной инженерии»
Практическая работа №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
Вывод программы:
Соседние файлы в папке Практики