Программирование на BASIC / Visual Basic / Лабораторная работа №6 вариант 14 / Лабораторная работа №6
.docЛабораторная работа №6
по информатике
Вариант 14.
Решение задач с одномерными массивами
Задание:
Составить программу, которая:
-
вводит из файла в массив 12 вещественных чисел и выводит этот массив в результирующий файл. Среди чисел должны быть отрицательные, положительные и равные нулю. Дополнительные параметры, если они упоминаются в тексте задания, ввести с клавиатуры.
-
вычисляет значения всех переменных, которые входят в состав выражения, и значение самого выражения.
-
выводит значения всех полученных переменных с пояснениями.
-
для проверки вычислить указанные величины повторно, используя новые возможности Ф-90 по работе с массивами
-
красиво оформить результаты, ипользуя форматный вывод
В отчете привести текст задания, блок-схему программы, распечатки программы и результатов.
Справочная информация:
Средние значения действительных чисел а1, а2, а3, …, аn
Среднее арифметическое |
|
Среднее геометрическое |
|
Среднее квадратическое |
|
Среднее гармоническое |
|
Примечание: вычисление среднего гармонического должно производиться только для ненулевых элементов массива.
Задание:
№ |
Выражение |
Определение переменных |
|
14 |
(U+T)(S+2) |
S T U |
среднее квадратичное элементов с четным номером наибольший элемент сумма модулей отрицательных элементов |
Текст программы:
!Лабораторная работа №6 Вариант №14
!Студент: Захарченко Борис Анатольевич, группа: 1321
Program Lab2
Implicit None
Real M(1:12), U, T, S, F
Integer i,n
Open(1,FILE='In.txt') ! файл с исходным массивом
Open(2,FILE ='Out.txt') ! результирующий файл
Read(1,*)M ! ввод массива
Write(2,11) M ! вывод массива для контроля
! среднее квадратичное элементов с четным номером
n=0
S=0
Do i=2,12,2
S=S+M(i)**2
n=n+1
EndDo
S=Sqrt(S/n)
Write(2,1)S, SQRT(Sum(M(2:12:2)**2)/6)
! Наибольший элемент
T=M(1)
Do i=2,12
If (T<M(i)) T=M(i)
EndDo
Write(2,2)T, MaxVal(M)
! Сумма модулей отрицательных элементов
U=0
Do i=1,12
If (M(i)<0) U=U+Abs(M(i))
EndDo
Write(2,3)U, SUM(Abs(M), mask=M<0)
!Выражение
F=(U+T)/(S+2)
Write(2,4)F
!Форматный вывод
11 format('Исходный массив в 2 колонки:'/&
2x,'Нечетные:',1x,'Четные:'/&
2(2x,F7.2))
1 format(2(1x,'S =',F7.2),' (Среднее квадратичное элементов с четным номером)')
2 format(2(1x,'T =',F7.2),' (Наибольший элемент)')
3 format(2(1x,'U =',F7.2),' (Сумма модулей отрицательных элементов)')
4 format(1x,'F =',F7.2,' (Выражение)')
End
Результат:
Исходный массив в 2 колонки:
Нечетные: Четные:
-9.15 9.00
3.00 -7.10
-1.00 .00
.20 8.90
2.00 -4.00
-5.72 6.00
S = 6.62 S = 6.62 (Среднее квадратичное элементов с четным номером)
T = 9.00 T = 9.00 (Наибольший элемент)
U = 26.97 U = 26.97 (Сумма модулей отрицательных элементов)
F = 4.17 (Выражение)