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

23 / 31201512-23

.docx
Скачиваний:
17
Добавлен:
31.05.2015
Размер:
219.28 Кб
Скачать

Министерство образования Республики Беларусь

Белорусский национальный технический университет

Строительный факультет

Кафедра "Строительная механика"

Контрольная работа № 2

по дисциплине "Информатика"

на тему "Программирование алгоритмов с линейной,

разветвляющейся и циклической структурами

на алгоритмическом языке Фортран"

Выполнила: студентка Серехан В.С.

группа 31201512

зачетная книжка № 31201512-23

Проверил:

Минск 2013

Содержание

1. Задание 1

1.1. Блок-схема алгоритма задачи

1.2. Программный код проекта

1.3. Экранная форма с результатами расчета

2. Задание 2

2.1. Блок-схема алгоритма задачи

2.2. Программный код проекта

2.3. Тестовый пример и экранная форма с результатами расчета

Литература

1. Задание 1

Условие. Задана функция . На оси X задан участок [-19.2; -4.5], который разбивается на N–1 отрезков с одинаковым шагом , .

Разработать алгоритм и приложение, в котором необходимо:

а) предусмотреть вывод на экран фамилию студента, шифр и номер задания;

б) вычислить шаг и вывести значение на экран;

в) вычислить и вывести на экран в виде таблицы номер, абсциссу и ординату каждого расчетного узла;

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

1.1. Блок-схема алгоритма задачи

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

Для решения задачи будем использовать линейную и разветвляющуюся алгоритмические конструкции.

Блок-схема алгоритма задачи приведена на рис. 1.1.

Начало

n=14; a= -19.2; b= -4.5;

dx= (b-a)/(n-1)

Цикл по x пока (x <= b)

y=fn(x)

( y > ymax )

да

ymax=y xmax=x

xmax=x

xmax=x

xmax=x

да

( y < ymin )

ymin=y xmin=x

xmax=x

xmax=x

xmax=x

Конец цикла

fn =(sin(0.2*(abs(k))))**3 + (7+0.1*(k**2))**(1/3)

Конец

Рисунок 1.1 Блок-схема алгоритма задачи

1.2. Программный код проекта

program zadanie1

!blok opicaniya peremennih

real a,b,dx,x,y

real ymin,ymax,xmin,xmax

integer n,i

!blok opicaniya peremennih

!opisanie funkcii

INTERFACE

Function fn(k)

real,intent(in) :: k; real fn

end Function fn

END INTERFACE

!opisanie funkcii

!konstanti

n=14; a=-19.2; b=-4.5;

x=a; i=1;

!konstanti

dx= (b-a)/(n-1); !nahojdenie shaga

xmax=a; ymax=fn(x) !pervonach max

xmin=a; ymin=fn(x) !pervonach min

!vivod lichnih dannih

print *, 'Serehan V.S '

print *, 'Shifr 31201512-23'

print *, 'Zadanie 1'

print *, 'Shag =',dx

print *, 'Znacheniya funkcii '

print *, ' i', ' x', ' y'

!vivod lichnih dannih

!poshagovoe opredelenie i vivod funkcii

do while(x <= b)

y=fn(x)

print *, i, x, y

!poshagovoe opredelenie i vivod funkcii

!opredelenie max

if(y>ymax) then

ymax=y

xmax=x

end if

!opredelenie max

!opredelenie min

if(y<ymin) then

ymin=y

xmin=x

end if

!opredelenie min

x=x+dx !sled znach x

i=i+1 !sled znach i

end do

!vivod rezultata na ekran

print *, 'xmax=',xmax, 'ymax=',ymax

print *, 'xmin=',xmin, 'ymin=',ymin

!vivod rezultata na ekran

read*

end program zadanie1

!Opredelenie funkcii

Function fn(k)

real,intent(in) :: k; real fn

fn =(sin(0.2*(abs(k))))**3 + (7+0.1*(k**2))**(1/3)

end Function fn

!Opredelenie funkcii

1.3. Экранная форма с результатами расчета

Рисунок 1.2 Форма с результатами расчета

2. Задание 2

Задание 2. Разработать алгоритм и приложение на языке Фортран, позволяющее для последовательности элементов массива M с использованием циклов вычислить значение Z, определяемое из таблицы. Алгоритм представить в виде блок-схемы. Предусмотреть вывод на экран фамилию студента, шифр и номер задания.

Где:

А – произведение отрицательных элементов

B – количество элементов со значениями из интервала [K,

L]

C – среднее арифметическое N последних элементов

2.1. Блок-схема алгоритма задачи

Для решения задачи будем использовать циклическую алгоритмическую конструкцию.

Блок-схема алгоритма задачи приведена на рис. 2.1.

Начало

Ввод mas(i), i=1,...,15

N; K; L

a=1

Цик по і от 1 до 15

да

(mas(i)<0)

a=a*mas(i)

Конец цикла по i

(a==(-10))

нет

да

b=0

Eror!!!!!!!

Цик по і от 1 до 15

(mas(i)>=k .and. mas(i)<=l )

да

b=b+1

Конец цикла по i

c=0; dx=15-q+1

Цик по і от (15-q+1) до 15

c=c+mas(i)

Конец цикла по i

c=c/q

z=c+a/10+b/(10+a)

Конец

Рисунок 2.1 Блок-схема алгоритма задачи

2.2. Программный код проекта

program zadanie2

!blok opicaniya peremennih

real a,b,dx,z,k,l,c,q

integer i

integer, parameter :: n = 15

real :: mas(n)

!blok opicaniya peremennih

!vivod lichnih dannih

print *, 'Serehan V.S '

print *, 'Shifr 31201512-23'

print *, 'Zadanie 2'

!vivod lichnih dannih

!vvod dannih

do i = 1, 15

print*,'vvedite elementi masiva',i

read(1, *) mas(i)

end do

print*,'Vvedite nachalo intervala k'

read*,k

print*,'Vvedite konec intervala l'

read*,l

print*,'Vvedite n'

read*,q

!vvod dannih

!nayti a-proizv otric elem

a=1

do i = 1, 15

if(mas(i)<0) then

a=a*mas(i)

end if

end do

!nayti a-proizv otric elem

if (a==(-10)) then !proverka deleniya na nol

print*, 'Eror!!!!!!! delenie na nol'

else

!b- kolich elem iz intervala

b=0

do i = 1, 15

if(mas(i)>=k .and. mas(i)<=l ) then

b=b+1

end if

end do

!b- kolich elem iz intervala

!opredelenie c

c=0

dx=15-q+1

do i = dx, 15

c=c+mas(i)

end do

c=c/q

!opredelenie c

!nahojdenie i vivod resultata

z=c+a/10+b/(10+a)

print*,'rezultat z=',z

!nahojdenie i vivod resultata

end if

read*

end program zadanie2

2.3. Тестовый пример и экранная форма с результатами расчета

Зададим 15 элементов массива:

-5, 3, 8, -0.3, 5, 3, 0, 1, -0.2, 9.3, 5, 8, 0, 1, -7

K=-3; L=5; N=5.

Рисунок 2.2 Форма разработанного приложения

Литература

1. ГОСТ 19.701-90 ЕСПД. Схемы алгоритмов, программ, данных и систем. Обозначения условные и правила выполнения.

2. Задания и требования к выполнению контрольной работы № 1 по дисциплине «Информатика» для студентов заочной формы обучения // Автор: А.В. Стрелюхин – Минск: БНТУ, 2012. – 19 с.

3. Трепачко В.М. Краткий курс программирования на алгоритмическом языке Fortran Power Station: методическое пособие по дисциплине "Информатика" для студентов специальности 1-70 02 11 "Промышленное и гражданское строительство" – Мн.: БНТУ, 2006. – 113 с.

4. Павловец В.В. Информатика: программирование на Фортране. – Мн.: Асконто, 2006. – 205 с.

Соседние файлы в папке 23