• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Табулирование функции, полярные координаты

  • Автор темы Автор темы Su-34
  • Дата начала Дата начала

Su-34

Новые
Регистрация
10 Ноя 2011
Сообщения
65
Реакции
0
Баллы
0
Табулирование функции, полярные координаты

Помогите пжлста. Мне надо затабулировать функцию р=sin(f/2), заданную полярными координатами с помощью Visual Fortran.
Что я не так сделал, что нужно исправить чтобы в екселе получился график 2). Пока он мне рисует только правую часть 1)

program lab1
real a,b,h,x,y
integer i,N
open(10,file='lab1.txt')
a=-7
b=1
N=31
h=(b-a)/(N-1)
do i=1,N
f=a+h*i
r=sin(f/2)
x=r*cos(f)
y=r*sin(f)
print*,x,y
write(10,*)x,y
end do
end
 

Вложения

  • екс.webp
    екс.webp
    14.7 KB · Просмотры: 327
  • воль.webp
    воль.webp
    7.1 KB · Просмотры: 175
А почему Вы берёте такие странные пределы? Ведь справа указано: от 0 до 4π, т.е от 0 до где-то 12.57. Такие и надо брать.
Переписал Вашу программу с VF на Паскаль, практически ничего в ней не меняя:
Код:
var
 a,b,h,x,y,r,f:real;
 i,N:integer;
 ff:TEXT;
begin
 Assign(ff,'D:\lab1.dat');
 ReWrite(ff);
 a:=0;
 b:=Pi*4;
 N:=100;
 h:=(b-a)/N;
 for i:=0 to N do
  begin
   f:=a+h*i;
   r:=sin(f/2);
   x:=r*cos(f);
   y:=r*sin(f);
   writeln(ff,x:8:5,'  ',y:8:5);
  end;
 Close(ff);
end.
запустил и - пожалуйста (построено в пакете ORIGIN):
Lab_1.webp
Так что всё дело только в правильной установке пределов.
 
Можно еще вопрос? То же самое надо сделать с р=(phi)^2. Ведь должна получиться парабола? Тогда надо писать:
program lab1
real a,b,h,x,y
integer i,N
open(10,file='lab1.txt')
a=-1
b=1
N=31
h=(b-a)/(N-1)
do i=1,N
f=a+h*i
r=f**2
x=r*cos(f)
y=r*sin(f)
print*,x,y
write(10,*)x,y
end do
end

Что не так?:tehnari_ru_117:
 
Назад
Сверху