31201512-23
.docxМинистерство образования Республики Беларусь
Белорусский национальный технический университет
Строительный факультет
Кафедра "Строительная механика"
Контрольная работа № 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.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 с.