|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 (permalink) |
Member
Регистрация: 10.11.2011
Сообщений: 65
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 9
|
![]() x=(t+1/t)/2 y=(t-1/t)/2 в Visual Fortran. Как задать промежуток a,b или их должно быть несколько ввиду разрывности? Что неправильного в кодах? program lab1 real a,b,h,x,y integer i,N open(10,file='lab1.txt') a=?? b=?? N=31 h=(b-a)/(N-1) do i=1,N t=a+h*i r=f**2 x=(t+1/t)/2 y=(t-1/t)/2 print*,x,y write(10,*)x,y end do end |
![]() |
![]() |
![]() |
|
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
В ранее созданных темах можно найти важный ответ Функция Есть ли в биосе такая функция? Функция |
![]() |
#2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]()
Во-первых, ни к селу, ни к городу затесавшаяся (явно из предыдущей задачи) строка
Во-вторых, тут так. Действительно, нужно просчитать порознь 4 ветви функции. Вот перечень диапазонов изменения параметра t и координат x, y: Код:
1<t<+∞ 1<x<+∞ 0<y<+∞ 0<t<1 +∞>x>1 -∞<y<0 -∞<t<-1 -∞<x<-1 -∞<y<0 -1<t<0 -1>x>-∞ 0<y<+∞ |
![]() |
![]() |
![]() |
#5 (permalink) |
Member
Регистрация: 10.11.2011
Сообщений: 65
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 9
|
![]()
Ну я пытаюсь. Но вот это тоже вроде не то.....
![]() program lab1 real a,b,h,x,y integer i,N open(10,file='lab1.txt') a=-8 b=-1 N=31 h=(b-a)/(N-1) do i=1,N t=a+h*i x=(t+1/t)/2 y=(t-1/t)/2 print*,x,y write(10,*)x,y END DO a=-5 b=-1 N=31 h=(b-a)/(N-1) do i=1,N t=a+h*i x=(t+1/t)/2 y=(t-1/t)/2 print*,x,y write(10,*)x,y END DO a=1 b=5 N=31 h=(b-a)/(N-1) do i=1,N t=a+h*i x=(t+1/t)/2 y=(t-1/t)/2 print*,x,y write(10,*)x,y END DO a=1 b=8 N=31 h=(b-a)/(N-1) do i=1,N t=a+h*i x=(t+1/t)/2 y=(t-1/t)/2 print*,x,y write(10,*)x,y end do end |
![]() |
![]() |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
#6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]()
В общем - так. Опять же переписал программу на привычный мне Паскаль и результат построил в ORIGIN'е. Всё получилось, только возникла паразитная соединительная линия, проходящая через начало координат. Чтобы этого избежать, нужно разбить файл пополам и строить две серии порознь. Не знаю, можно ли сделать такое в Excell'е - никогда графиков в нем не строил.
Код:
var a,b,h,x,y,t:real; i,N:integer; ff:Text; BEGIN Assign(ff,'D:\lab2.dat'); Rewrite(ff); a:=0.05; b:=0.95; N:=18; h:=(b-a)/N; for i:=0 to N do begin t:=a+h*i; x:=(t+1/t)/2; y:=(t-1/t)/2; writeln(ff,t:6:2,x:12:3,y:12:3); end; a:=1; b:=11; N:=20; h:=(b-a)/N; for i:=0 to N do begin t:=a+h*i; x:=(t+1/t)/2; y:=(t-1/t)/2; writeln(ff,t:6:2,x:12:3,y:12:3); end; a:=-11; b:=-1; N:=20; h:=(b-a)/N; for i:=0 to N do begin t:=a+h*i; x:=(t+1/t)/2; y:=(t-1/t)/2; writeln(ff,t:6:2,x:12:3,y:12:3); end; a:=-0.95; b:=-0.05; N:=18; h:=(b-a)/N; for i:=0 to N do begin t:=a+h*i; x:=(t+1/t)/2; y:=(t-1/t)/2; writeln(ff,t:6:2,x:12:3,y:12:3); end; Close(ff); END. |
![]() |
![]() |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
Опции темы | |
Опции просмотра | |
|
|