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

Алгоритм вычисления количества элементов (счетчик)

По сути это частный случай алгоритма накопления суммы, где в качестве слагаемого принимается единица. Также как и для нахождения суммы, до цикла задается начальное значение равное нулю для переменной, заданной для подсчета количество элементов. Известно, что количество элементов – это всегда целочисленное значение. Например, вы подсчитываете число студентов в вашей группе, присутствующих на занятии – целое число, подсчет машин определенной марки на автостоянке – целое число и т.д. Таким образом, до цикла задаем начальное значение переменной k=0, а в цикле при выполнении условия подсчета, увеличиваем значение переменной на единицу: k=k+1. Рассмотрим алгоритм нахождения количества элементов на примере.

Пример 4. Вычислить отрицательные значения функции y = cosx, если значение переменной x меняется в промежутке x с шагом изменения равным .

Код программы:

program COUNT ! название программы

pi = 3.14159 ! задание значения константы π

k = 0 ! начальное значение счетчика

h=pi/4. ! шаг изменения x

do x= -2*pi, 2*pi+h/10., h ! do начало арифметического цикла do

y = cos(x) ! вычисление переменной y

if (y <= 0) k = k + 1 ! увеличение счетчика на 1, если y отрицательно

print *, ‘x=’,x,’ y=’,y ! контрольный вывод значений x и y

enddo ! do конец цикла do

print *,’ k=’,k ! вывод результата

end ! конец программы

Программирование алгоритмов со структурой вложенных циклов

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

Правильной структурой построения программ с вложенными циклами является такая, при которой область действия каждого внутреннего цикла полностью находится в области действия внешнего по отношению к данному внутреннему. Допустимы следующие структуры записи программ:

а) правильная структура (скобками показано начало и конец циклов)

1. DO 1

……….

DO 2

………

DO 3

……….

3 ENDDO

………..

2 ENDDO

………….

1 ENDDO

2. DO 1

……….

DO 2

………

2 ENDDO

……….

DO 3

……….

3 ENDDO

………..

1 ENDDO

3. DO 1

……….

DO 1

………

DO 1

……….

1 CONTINUE

б) недопустимая структура

4. DO 1

……….

DO 2

………

1 ENDDO

……….

2 ENDDO

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

Пример 5. Составить программу табулирования следующей суммы:

на интервале изменения x с шагом изменения равным .

Заметим, что в этой задаче внешним циклом является цикл с параметром x, изменяющимся от 0,1 до 3 и шагом 0,3, а внутренним циклом – накопление суммы.

Код программы (вариант 1):

program PRIMER5_1

do X = 0.1, 3., 0.3 ! начало внешнего цикла по X

S = 0 ! начальное значение суммы S

P = X ! расчет степени X в каждом сомножителе как в примере 2а)

do j = 2, 13 ! начало внутреннего цикла по j

P = P * X ! накопление степени X

S = S + P / j ! расчет суммы S

enddo ! конец внутреннего цикла

print *, ‘x=’,x,’ S=’,S ! вывод результата

enddo ! конец внешнего цикла по X

end

Код программы (вариант 2, без использования цикла для подсчета степени X):

program PRIMER5_2

do X = 0.1, 3., 0.3 ! начало внешнего цикла по X

S = 0 ! начальное значение суммы S

do j = 2, 13 ! начало внутреннего цикла по j

S = S + X**j / j ! расчет суммы S

enddo ! конец внутреннего цикла

print *, ‘x=’,x,’ S=’,S ! вывод результата

enddo ! конец внешнего цикла по X

end

Подумайте, какой из вариантов программы будет работать быстрее и почему.

Соседние файлы в папке Лекции_фортран_текст