Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 10.11.2011, 15:25   #1 (permalink)
Su-34
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
Миниатюры
12345.jpg  
Su-34 вне форума   Ответить с цитированием

Старый 10.11.2011, 15:25
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

В ранее созданных темах можно найти важный ответ

Функция
Есть ли в биосе такая функция?
Функция

Старый 10.11.2011, 16:26   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Su-34 Посмотреть сообщение
Что неправильного в кодах?
Во-первых, ни к селу, ни к городу затесавшаяся (явно из предыдущей задачи) строка
Цитата:
Сообщение от Su-34 Посмотреть сообщение
r=f**2
Во-вторых, тут так. Действительно, нужно просчитать порознь 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<+∞
причем (ВАЖНО!) параметр t не должен принимать нулевого значения, иначе возникнет ошибка.
Vladimir_S вне форума   Ответить с цитированием
Старый 10.11.2011, 16:52   #3 (permalink)
Su-34
Member
 
Регистрация: 10.11.2011
Сообщений: 65
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 9
По умолчанию

Т.е. надо несколько циклов задавать?? Можете показать
Su-34 вне форума   Ответить с цитированием
Старый 10.11.2011, 17:10   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Su-34 Посмотреть сообщение
Т.е. надо несколько циклов задавать?? Можете показать
Ох, да не знаю я Вашего Фортрана! Просто скопируйте еще три раза фрагмент вычисления значений и записи в файл, меняя параметры a и b.
Vladimir_S вне форума   Ответить с цитированием
Старый 10.11.2011, 17:25   #5 (permalink)
Su-34
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
Su-34 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 11.11.2011, 14:48   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 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.
Миниатюры
lab_2.jpg  
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 15:39.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.