Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
21
Добавлен:
02.05.2014
Размер:
113.15 Кб
Скачать

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

по информатике

Вариант 14.

Решение задач с одномерными массивами

Задание:

Составить программу, которая:

  1. вводит из файла в массив 12 вещественных чисел и выводит этот массив в результирующий файл. Среди чисел должны быть отрицательные, положительные и равные нулю. Дополнительные параметры, если они упоминаются в тексте задания, ввести с клавиатуры.

  2. вычисляет значения всех переменных, которые входят в состав выражения, и значение самого выражения.

  3. выводит значения всех полученных переменных с пояснениями.

  4. для проверки вычислить указанные величины повторно, используя новые возможности Ф-90 по работе с массивами

  5. красиво оформить результаты, ипользуя форматный вывод

В отчете привести текст задания, блок-схему программы, распечатки программы и результатов.

Справочная информация:

Средние значения действительных чисел а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 (Выражение)