Flatik.ru

Перейти на главную страницу

Поиск по ключевым словам:

страница 1

Помощь в решении задач по информатике и другим предметам www.diplomant-spb.ru

Фортран. Задачи.

Задача 1


Дана программа
real x(100) ,y(100) ,h,a,b

write (*/*)' Введите значения a,b,h'

read(*,*) a,b,h

n=(b-a)/h+l

x(1)=a

do i=2 , n

x(i)=x(i-l)+h

enddo

do i=l,n

if (x(i) .It. (-1.)) y(i) = (x(i)+l)**4

if (x(i) .ge. (-1. ) .and.x(i) . lt.1. ) y(i)=l+cos (3.14*(x(i)**2))

if (x(i) .ge. (1.)) у (i)=(- (x(i)-l) **2. )

enddo

do i=l,n

write(*,*) i,x(i),y(i)

enddo

end
Промежуток расчета: от -1,5 до 1,5 Шаг расчета: 0,25

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


Решение


При известном промежутке расчета и шаге изменения переменной х можно разбить цикл в исходной программе на три цикла, соответствующие трём веткам вычисления. Поскольку промежуток и шаг расчета заданы явно, можно обойтись без ввода этих величин.
real x(100) ,y(100) ,h,a,b

a=-1.5

b=1.5

h=0.25

n=(b-a)/h+l

x(1)=a

do i=2 , n

x(i)=x(i-l)+h

enddo

n1=(-1-a)/h

do i=l,n1

y(i) = (x(i)+l)**4

enddo

n2=(1-(-1))/h

do i=nl+1,n2

y(i)=l+cos (3.14*(x(i)**2))

enddo

n3=(b-1)/h+1

do i=n2+1,n3

у (i)=(- (x(i)-l) **2. )

enddo

do i=l,n

write(*,*) i,x(i),y(i)

enddo

end

схема алгоритма



Задача 3


Дана программа

real x,n,eps,summa,k

write(*,*) 'Введите значение х'

read(*,*) x

if (abs(x).ge.1) then

write(*,*) 'error'

goto 20

else

write(*,*) 'Введите значение eps1

read(*,*) eps

n=l

k=x

summa=(l+x)**(0.5)

10 k={(-1)**(n-1))*(x**n)*((2*n-3)/(2*n))

sumna=summa+k

n=n+l

if(abs(k).gt.eps) goto 10

write(*,*) summa

endif

20 end
Программа должна вычислять функцию

Задание: найти ошибки


Решение


  • Начальное значение переменной summa устанавливается сразу в искомое значение заданной функции

  • При вычислении общего члена ряда вместо факториала вычисляется лишь последний множитель.

Исправленный текст приведен ниже



real x,n,eps,summa,k

write(*,*) 'Введите значение х'

read(*,*) x

if (abs(x).ge.1) then

write(*,*) 'error'

goto 20

else

write(*,*) 'Введите значение eps1

read(*,*) eps

n=2

k=x/2.

summa=1+x/2.

10 k=k*(-1)*x*((2*n-3)/(2*n))

sumna=summa+k

n=n+l

if(abs(k).gt.eps) goto 10

write(*,*) summa

endif

20 end

схема алгоритма



Задача 4


Дана программа

real x, summa

write(*,*) 'Введите значение х'

read(*,*) x

if (abs(x).ge.1) then

write(*,*) 'error'

goto 20

else

write(*,*) 'Введите значение eps1

summa=sum(x)

write(*,*) summa

endif

20 end
real function sum(m)

real n,k,m,eps

read(*,*) eps

n=l

k=l

sum=l

10 k=((-1)**(n-1))*(m**n)*((2*n-3)/(2*n))

sum=sum-k

n=n+l

if(abs(k).gt.eps) goto 10

return

end
Программа должна вычислять функцию

Задание: найти ошибки


Решение


  • Главная программа написана правильно, хотя решение разместить приглашение к вводу eps в главной программе, а сам ввод – в функции несколько экстравагантно.

  • В функции осталась ошибка из задачи 3 – неправильное вычисление общего члена ряда

Исправленный текст приведен ниже



real function sum(m)

real n,k,m,eps

read(*,*) eps

n=2

k=m/2.

sum=1+m/2.

10 k=k*(-1)*x*((2*n-3)/(2*n))

sum=sum+k

n=n+l

if(abs(k).gt.eps) goto 10

return

end


схема алгоритма



Задача 5


Заданы векторы A(ab a2,..., aw) и В(в10, В9,..., b1). Задание: составить подпрограмму, задающую матрицу C вида


Решение


В описании задачи вектор b расположен в обратном порядке, на что следует обратить внимание.

Воспользуемся представлением двумерного массива как одномерного.


subroutine zzz(n,a,b,c)

integer n

real a(*),b(*),c(*)

integer k,l

do k=1,n

do l=1,n

c((l-1)*n+k)=a(k)*b(n-l+1)

enddo

enddo

схема алгоритма





Задача 1 Дана программа real x(100),y(100),h,a,b write (*/*)' Введите значения a,b,h' read(*,*) a,b,h

Задание: изменить текст программы так, чтобы не использовался логические блоки

41.5kb.

14 12 2014
1 стр.


Ручки сенатор бизнес от 60 до 100 руб

Цена из расчета на партию в 100 шт (при заказе партии менее 100 шт цена может увеличиться)

62.99kb.

09 10 2014
1 стр.


Участковый пункт милиции №1, ул

Широтная, 100, 100/1, 100/2, 100/3, 100/4, 102, 104, 104/1, 104/2, 104/3, 104/4, 104/5, 104/6

563.77kb.

10 10 2014
6 стр.


Технические характеристики двухбаллонного эндоскопа

Направление обзора Прямое Прямое Глубина резкости 5 ~ 100 мм 4 ~ 100 мм 3 ~ 100 мм Угол поля зрения 120° 140°

414.18kb.

18 12 2014
1 стр.


Лабораторная работа №10 Инструмент «Поиск решения» в ms excel. Создайте на диске D: папку LabExcel

Для этого создайте таблицу значений функции. В столбце А, начиная с 1-й строки введите значения Х: 0, 0,2, 0,4, …, в ячейку В1 введите формулу для вычисления значения функции

21.3kb.

14 12 2014
1 стр.


2012 жылдың шілде айындағы Астана қаласының инфляция деңгейі

Тұтыну бағаларының индексі 2012 жылдың шілде айында өткен аймен салыстырғанда 100,1 құрады, оның ішінде азық – түлік тауарларына бағалар индексі 100,2 %, азық – түлік емес тауарлар

75kb.

17 12 2014
1 стр.


Рабочая программа для студентов направления подготовки 050 100. 62 «Педагогическое образование»

«История, теория, методика и технологии музыкального образования». Учебно-методический комплекс. Рабочая программа для студентов направления подготовки 050 100. 62 «Педагогическое

817.32kb.

04 09 2014
3 стр.


106,875 2 Солдатова Александра

Калабина Анастасия 2000 одсоо"Русь"-Москов обл. 23,100 23,050 23,075 21,875 91,100

178.42kb.

09 10 2014
1 стр.