Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть 2.doc
Скачиваний:
16
Добавлен:
04.11.2018
Размер:
4.01 Mб
Скачать

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

Тема: Разработка и реализация программ с использованием массивов

Цель работы:

  • получить навыки составления и реализации программ с одномерными и двумерными массивами, используя средства языка Фортран.

Задания к лабораторной работе

Задание 4.1 Представить математическую запись фрагмента программи й вычислить значение переменной Х посля его выполнения, если элементи массива определяются по формуле a(i)=mod(37*a(i-1)+3, 64), где a(1) равно номеру варианта..

Фрагмент програми

Фрагмент програми

1,2

T=2

N=3

X=a(1)

Do j=1,N

X=X*T+a(j+1)

End do

7,8

N=4

X=a(N)

Do j=N-1,1,(-1)

X=a(j)+1/x

End do

3,4

N=4

X=a(1)

Do j=2,N

If (a(j)<x) then

X=a(j)

End if

End do

9,10

T=3

N=3

X=a(N+1)

Do j=1,N

X=X+a(j)*exp((N-j-1)*log((T))

End do

5,6

N=4

M=int(N/2)

K=N

Do j=2,M

Y=a(j)

a(j)=a(K)

a(K)=Y

K=K-1

End do

11,12

N=4

X=0

K=0

Do j=1,N

If (a(j)>0) then

X=X+a(j)

K+K+1

End if

End do

If (k/=0) then

X=X/K

End if

Задание 4.2 Составить программу вычисления следующих величин при условии, что элементы массива вычисляются по формуле a(i)=mod(37*a(i-1)+3,64), где a(1) равно номеру варианта. Количество элементов массива 20. Исходный массив и результаты вычислений вывести на экран.

№ вар.

Условие

1,20

Наибольшего элемента массива А и его порядкового номера; количество элементов с нечетными номерами, меньших D, (где D – целое число [1, 63]).

2,19

Суммы элементов массива А, значения которых кратны N (номеру варианта); произведение элементов с нечетными номерами.

3,18

Суммы элементов массива А, значения которых четные числа; произведение элементов со значениями из интервала [т, п] (т, п –целые числа из интервала [1, 63]).

4,17

Среднего арифметического положительных элементов массива А; значение максимального элемент с четным номером и его порядковый номер.

5,16

Суммы элементов массива А, значения которых нечетные числа; максимальный по модулю элемент и его порядковый номер.

6,15

Среднего геометрического положительных элементов массива А; минимальный по модулю элемент и его порядковый номер.

7,14

Суммы элементов массива а, значения которых двузначные четные числа; максимальный элемент среди элементов массива а, значения которых двузначные четные числа.

8,13

Произведения наибольшего и наименьшего элементов массива А; среднего арифметического элементов массива А.

9,12

Суммы элементов массива а, значения которых двузначные нечетные числа. Сформировать из таких элементов новый массив В.

10,11

Модуля вектора а/3. Сформировать из элементов массива больших, чем модуль вектора а/3 новый массив В.

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

№ вар.

Условие

Дан двумерный массив чисел размерности не более 10×15. Составить программу определения максимального значения среди нечетных столбцов.

Дан двумерный массив чисел размерности . Определить номер строки, содержащей максимальное число элементов, удовлетворяющих условию . Вывести на экран этот номер и исходный массив.

Дан двумерный массив чисел размерности . Найти минимальный элемент в каждой из строк этого массива. Создать из найденных элементов одномерный массив . Вывести на экран массивы и .

Найти количество элементов двумерного массива размерности , удовлетворяющих условию . Вывести на экран эти элементы и исходный массив.

Составить программу для замены четных строк матрицы А на соответствующие строки матрицы В. Матрицы имеют одинаковую размерность, не превышающую 8×12.

Даны два двумерных массива и порядка . Сформировать массив , элементы которого определяются по формуле . Вывести на печать массив .

Проверить диагональность квадратной матрицы порядка . Матрица диагональна, если при . Напечатать сообщение “МАТРИЦА ДИАГОНАЛЬНА” или “МАТРИЦА НЕДИАГОНАЛЬНА”. Исходный массив вывести на печать.

Исключить из матрицы порядка отрицательные элементы, записав на их место нули. Подсчитать количество произведенных замен. Вывести на печать получившуюся матрицу.

Составить программу для вычисления матрицы С , элементы которой определяются по формуле

Подсчитать количество столбцов в матрице размерности которые содержат только положительные элементы. Вывести результат подсчета и исходную матрицу на экран.

Разработать программу, вычисляющую сумму отрицательных элементов в каждом столбце матрицы А размером до 9×12. Результаты записать в одномерный массив.

Дана квадратная матрица порядка . Определить максимальный по модулю элемент каждой строки. Результаты записать в одномерный массив.

Дана квадратная матрица порядка . Найти сумму элементов матрицы, расположенных над главной диагональю. Вывести на экран исходный массив и величину вычисленной суммы.

Найти количество элементов двумерного массива размерности , удовлетворяющих условию и количество элементов, удовлетворяющих условию . Вывести результат подсчета и исходную матрицу на экран.

Даны два одномерных массива и которые содержат по элементов. Образовать двумерный массив размерности , элементы которого определяются соотношением , где max – максимальный элемент массива В.

Найти минимальный элемент главной диагонали квадратной матрицы порядка , разделить на него все элементы матрицы, образовав новую матрицу той же размерности. Вывести исходную и новую матрицы на экран.

Найти среднее арифметическое положительных элементов двумерного массива чисел размерности . Массив и значение среднего арифметического вывести на экран.

Найти минимальный элемент в двумерном массиве чисел размерности . Записать на место всех элементов строки, содержащей минимальный элемент, нули. Исходную и полученную матрицы вывести на экран.

Дан двумерный массив чисел размерности . Вычислить сумму элементов четных и сумму элементов нечетных строк массива. Вывести на экран исходный массив и вычисленные суммы.

В двумерном массиве чисел размерности найти количество элементов, которые равны . Вывести на экран исходный массив и координаты этих элементов.

Образец выполнения работы

Задание 4.1 Согласно заданию элементы массива определяются по формуле a(i)=mod(37*a(i-1)+3, 64). Значение a(1) равно номеру варианта по списку групи.

Пусть номер варианта 10. Тогда a(1) =10;

Mod – функция вычисляющая остаток от деления. Аргументы и результат функции целые числа.

Например mod(5, 2), результат 1; mod(10, 4) результат 2.

N=4

X=a(1)

Do j=2, N

If (a(j)>x) then

X=a[j]

Endif

enddo

Исходя из условия, задания вычислим элементы массива:

a(2)=mod(37*a(1)+3,64)=mod(37*10+3,64)=mod(373,64)=53

a(3)=mod(37*a(2)+3,64)=mod(37*53+3,64)=mod(1961,64)=41

a(4)=mod(37*a(3)+3,64)=mod(37*41+3,64)=mod(1517,64)=45

Представим схему алгоритма фрагмента программы из задания 4.1. (рис. Л4.1).

Рис. Л4.1 Блок-схема фрагмента программы задания 4.1.

N=4, x=a(1)=10

Входим в цикл

J=2

A(2)>x ?

53>10 = True. Условие выполняется x=a(2)=53

J=3

A(3)>x?

41>53 = False Условие не выполняется

J=4

A(4)>x ?

45>53=False Условие не выполняется. Выход из цикла. После выполнения фрагмента программы x=53.

Фрагмент программы реализует алгоритм поиска максимального элемента в массиве.

Задание 4.2 Составить программу нахождения в одномерном массиве суммы элементов расположенных между первым и вторым отрицательными элементами массива. Ввести элементы массива А с клавиатуры.

Алгоритм решения задания 4.2. приведен на рис. Л4.2.

Рис. Л4.2 Блок-схема решения задания 4.2.

Программная реализация задачи 4.2:

Program lr4

Integer, parameter :: n=10

Real, dimension (1:n) :: a

Integer I,k1,k2

Real S

Do i=1, n

Write(*,’(a,i2,a,$)’),‘Enter a(’,I,’) =’

Read(*,*),a(i)

Enddo

I=1

Do while (a(i)>=0)

I=i+1

enddo

K1=i+1

i=k1

do while a(i)>=0

I=i+1

enddo

K2=i-1

S=0

do I=k1, k2

S=s+a(i)

enddo

Write(*,’(a,i2,a,i2,a,f5.1)’),‘1stnegative element number=’, k1,’ 2nd negative element number=’,k2,’ sum=’,s

End

Р

K2=i-1; s=0

езультаты работы программы:

A(1) = 2

A(2) = 3

A(3) = -3

A(4) = 7

A(5) = 9

A(6) = -3

A(7) = 5

A(8) = 14

A(9) = -23

A(10) = 8

1st negative element number= 3, 2nd negative element number= 6, sum= 16.0

Задание 4.3 Дан двумерный массив чисел размерности . Если сумма всех элементов массива меньше , то все отрицательные элементы необходимо заменить на положительные, в противном случае все отрицательные элементы уменьшить в два раза. Ввести исходный массив с клавиатуры. Вывести на экран исходный и преобразованный массивы.

Схема алгоритма решения задания 4.3 приведена на рис. Л4.3.

Рис. Л4.3 Блок-схема решения задания 4.3

Программная реализация задачи 4.3:

Program lr5

Integer, parameter :: n=3

Real, dimension (1..n,1..n) :: a

Real Sum, s

real I,j

Sum=0

!ввод и суммирование элементов массива

do i=1, N

do j=1, N

Write (*,10),‘a(’,I,’,’,j,’)=’

10 format(a,i2,a,i2,a)

Read(*,*), a(I,j)

Sum=sum+a(I,j)

Enddo

Enddo

!ввод числа S

Write(‘s=’);

Read(*,*),s

If (sum<s) then

!если сумма элементов меньше S меняем знак у !отрицательных элементов

do i=1, N

do j=1, N

If (a(I,j)<0) then

A(I,j)=abs(a(I,j))

else

do i=1, N

do j=1, N

If (a(I,j)<0) then

A(I,j)=a(I,j)/2

do i=1, N

Write(*,20),(a(I,j),j=1,n)

enddo

20 format(nf2.0)

End

Результаты работы программы

A( 1, 1)=1

A( 1, 2)=-2

A( 1, 3)=3

A( 2, 1)=-4

A( 2, 2)=5

A( 2, 3)=-6

A( 3, 1)=7

A( 3, 2)=-8

A( 3, 3)=9

S=23

1 2 3

4 5 6

7 8 9

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]