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

Правила:

Войти в конструкцию IF THEN ELSE можно лишь только через оператор IF в самом начале конструкции, т.е. запрещена передача управления из внешней части программы внутрь конструкции IF THEN ELSE (например, через оператор GO TO).

Передача управления из одного блока конструкции в другой запрещена.

Выйти из конструкции можно в любое, не запрещённое место программы с помощью операторов IF или GO TO.

Первый оператор конструкции IF THEN не может быть последним оператором в цикле DO.

Примечания:

  • Внутри любого блока конструкции могут содержаться свои законченные конструкции типа IF THEN ELSE.

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

Задача:

В одномерном массиве из Nэлементов выделить и записать в отдельные массивы:

1). Элементы, значения которых меньше нуля.

2). Элементы, значения которых лежат в пределах от 0 до 100.

3). Все элементы, значения которых больше 100.

Вывести, сколько процентов от общего количества составляет количество первого, второго, третьего массивов. При составлении программы использовать структуру IFTHENELSE.

DIMENSION A(1000),A1(1000),A2(1000),A3(1000)

  1. J=1 Переменные J,K,L служат счетчиками для количества элементов массива. Почему L=0 – разберитесь в программе ниже.

K=1

L=0

WRITE(6,*)’Введите количество элементов массива и их значения’

READ(5,*) N,(A(I),I=1,N)

DO 10 I=1,N

C Блок записи в массив А1 отрицательных элементов массива А:

IF(A(I).LT.0.) THEN

A1(J)=A(I) запоминается в массиве А1 отрицательное число

J=J+1 счетчик первого массива увеличиваем на 1

С В массив А2 записываем значения элементов массива А от 1 до 100.

ELSE IF (A(I).GE.0..AND.A(I).LE.100.) THEN

A2(K)=A(I)

K=K+1 счетчик второго массива увеличиваем на 1

С Блок записи в массив А3 элементов массива А, больших 100.

ELSE

L=L+1 поняли?

END IF

A3(L)=A(I)

END IF

  1. CONTINUE

C Вычисление процентных соотношений

P1=(J-1.)/N*100.

Если в выражении (J-1.) не поставить точку после единицы, то после вычисления этого выражения получится целое число. После деления целого на целое число N результат также будет целого типа, т.е. ноль.

P2=(K-1.)/N*100.

Другой способ записи: P2=100.*(K-1)/N – здесь точка после единицы не нужна, т.к. сначала вычислится целое К-1, а затем слева направо будут идти умножение вещественного 100 на целое К-1 и делиться на N. Но если у числа 100 не поставить точку, то результат будет искажен.

P3 = L * 100. / N Отметьте, что в этом выражении стоит просто L.

WRITE(6,*)’Количество отрицательных чисел, в %=’,P1

WRITE(6,*)’ Количество чисел в диапазоне от 0 до 100, в %=’,P2

WRITE(6,*)’ Количество чисел, значения которых больше 100’,P3

PAUSE

GO TO 15

STOP

END

Программа проанализирует каждый элемент массива А и, в зависимости от их величины, занесёт в разные массивы (в А1 – если число меньше нуля; в А2 – если число лежит в диапазоне от 0 до 100; в А3 – если число больше ста). Затем определит, какой процент от всех чисел массива А содержится в массивах А1, А2, А3 и выведет полученные значения на дисплей.

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