Телескопы покупают здесь


A A A A Автор Тема: Астрономия на персональном компьютере. Исходники.  (Прочитано 19814 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Переменные окружения, необходимые для компилятора, прописаны? Попробуйте скомпилировать всё же компилятором для С++, который зовётся g++
И полезная ссылка по теме: http://stackoverflow.com/questions/329059/what-is-gxx-personality-v0-for
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн gashaАвтор темы

  • ****
  • Сообщений: 350
  • Благодарностей: 17
  • 61:45:28,6 N 34:21:39.5 E (134 + 15 этаж) м
    • Сообщения от gasha
    • Siä Karjalassa
Переменные окружения, необходимые для компилятора, прописаны? Попробуйте скомпилировать всё же компилятором для С++, который зовётся g++
И полезная ссылка по теме: http://stackoverflow.com/questions/329059/what-is-gxx-personality-v0-for

Огромное спасибо. Всё скомпилировалось на отлично.

:~/Portable/aaplus> g++ -c AA*.cpp
:~/Portable/aaplus> ar rc libAAPlus.a *.o
:~/Portable/aaplus> g++ AATest.cpp libAAPlus.a
:~/Portable/aaplus> ./a.out

БПЦ 15х50, Nikon Aculon 7x50, Celestron Advanced VX 8" N, Sky-Watcher BK 909AZ3, ТАЛ-65, Таир-3ФС, Canon EOS 60D, Sony Alpha NEX-3.

Оффлайн gashaАвтор темы

  • ****
  • Сообщений: 350
  • Благодарностей: 17
  • 61:45:28,6 N 34:21:39.5 E (134 + 15 этаж) м
    • Сообщения от gasha
    • Siä Karjalassa
Раз уж затеяли компиляция астроисходников, то возьмём на вооружение ещё одну библиотеку: libnova

Она есть по умолчанию во многих дистрибутивах. например, в openSUSE: sudo zypper in libnova-0_15-0

На сайте проекта возьмём пример: sun.c

/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Library General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

Copyright (C) 2003 Liam Girdwood <liam@gnova.org>


A simple example showing some solar calculations.

*/

#include <stdio.h>
#include <libnova/solar.h>
#include <libnova/julian_day.h>
#include <libnova/rise_set.h>
#include <libnova/transform.h>

void print_date (char * title, struct ln_zonedate* date)
{
        printf ("\n%s\n",title);
        printf (" Year    : %d\n", date->years);
        printf (" Month   : %d\n", date->months);
        printf (" Day     : %d\n", date->days);
        printf (" Hours   : %d\n", date->hours);
        printf (" Minutes : %d\n", date->minutes);
        printf (" Seconds : %f\n", date->seconds);
}

int main (int argc, char * argv[])
{
        struct ln_equ_posn equ;
        struct ln_rst_time rst;
        struct ln_zonedate rise, set, transit;
        struct ln_lnlat_posn observer;
        struct ln_helio_posn pos;
        double JD;
       
        /* observers location (Edinburgh), used to calc rst */
        observer.lat = 55.92; /* 55.92 N */
        observer.lng = -3.18; /* 3.18 W */
       
        /* get Julian day from local time */
        JD = ln_get_julian_from_sys(); 
        printf ("JD %f\n", JD);
       
        /* geometric coordinates */
        ln_get_solar_geom_coords (JD, &pos);
        printf("Solar Coords longitude (deg) %f\n", pos.L);
        printf("             latitude (deg) %f\n", pos.B);
        printf("             radius vector (AU) %f\n", pos.R);
       
        /* ra, dec */
        ln_get_solar_equ_coords (JD, &equ);
        printf("Solar Position RA %f\n", equ.ra);
        printf("               DEC %f\n", equ.dec);
       
        /* rise, set and transit */
        if (ln_get_solar_rst (JD, &observer, &rst) == 1)
                printf ("Sun is circumpolar\n");
        else {
                ln_get_local_date (rst.rise, &rise);
                ln_get_local_date (rst.transit, &transit);
                ln_get_local_date (rst.set, &set);
                print_date ("Rise", &rise);
                print_date ("Transit", &transit);
                print_date ("Set", &set);
        }
       
        return 0;
}

И компилируем:

:~/Portable/libnova> gcc sun.c -lnova
gasha@almukantarat:~/Portable/libnova> ./a.out
JD 2456378.004995
Solar Coords longitude (deg) 5.810619
             latitude (deg) 0.000375
             radius vector (AU) 0.997644
Solar Position RA 5.337263
               DEC 2.309609

Rise
 Year    : 2013
 Month   : 3
 Day     : 27
 Hours   : 9
 Minutes : 56
 Seconds : 3.719434

Transit
 Year    : 2013
 Month   : 3
 Day     : 27
 Hours   : 16
 Minutes : 17
 Seconds : 21.341391

Set
 Year    : 2013
 Month   : 3
 Day     : 27
 Hours   : 22
 Minutes : 39
 Seconds : 52.871337
БПЦ 15х50, Nikon Aculon 7x50, Celestron Advanced VX 8" N, Sky-Watcher BK 909AZ3, ТАЛ-65, Таир-3ФС, Canon EOS 60D, Sony Alpha NEX-3.

Оффлайн gashaАвтор темы

  • ****
  • Сообщений: 350
  • Благодарностей: 17
  • 61:45:28,6 N 34:21:39.5 E (134 + 15 этаж) м
    • Сообщения от gasha
    • Siä Karjalassa
Замахнёмся теперь на SOFA (Standards of fundamental astronomy)

Прямая ссылка
на библиотеку.

Всё компилируется без напильника:

:~/Portable/sofa/20120301_a/c/src> make
gcc -c -pedantic -Wall -W -O -o iauA2af.o a2af.c
gcc -c -pedantic -Wall -W -O -o iauA2tf.o a2tf.c
gcc -c -pedantic -Wall -W -O -o iauAf2a.o af2a.c
gcc -c -pedantic -Wall -W -O -o iauAnp.o anp.c
gcc -c -pedantic -Wall -W -O -o iauAnpm.o anpm.c
gcc -c -pedantic -Wall -W -O -o iauBi00.o bi00.c
gcc -c -pedantic -Wall -W -O -o iauBp00.o bp00.c
gcc -c -pedantic -Wall -W -O -o iauBp06.o bp06.c
gcc -c -pedantic -Wall -W -O -o iauBpn2xy.o bpn2xy.c
gcc -c -pedantic -Wall -W -O -o iauC2i00a.o c2i00a.c
gcc -c -pedantic -Wall -W -O -o iauC2i00b.o c2i00b.c
gcc -c -pedantic -Wall -W -O -o iauC2i06a.o c2i06a.c
gcc -c -pedantic -Wall -W -O -o iauC2ibpn.o c2ibpn.c
gcc -c -pedantic -Wall -W -O -o iauC2ixy.o c2ixy.c
gcc -c -pedantic -Wall -W -O -o iauC2ixys.o c2ixys.c
gcc -c -pedantic -Wall -W -O -o iauC2s.o c2s.c
gcc -c -pedantic -Wall -W -O -o iauC2t00a.o c2t00a.c
gcc -c -pedantic -Wall -W -O -o iauC2t00b.o c2t00b.c
gcc -c -pedantic -Wall -W -O -o iauC2t06a.o c2t06a.c
gcc -c -pedantic -Wall -W -O -o iauC2tcio.o c2tcio.c
gcc -c -pedantic -Wall -W -O -o iauC2teqx.o c2teqx.c
gcc -c -pedantic -Wall -W -O -o iauC2tpe.o c2tpe.c
gcc -c -pedantic -Wall -W -O -o iauC2txy.o c2txy.c
gcc -c -pedantic -Wall -W -O -o iauCal2jd.o cal2jd.c
gcc -c -pedantic -Wall -W -O -o iauCp.o cp.c
gcc -c -pedantic -Wall -W -O -o iauCpv.o cpv.c
gcc -c -pedantic -Wall -W -O -o iauCr.o cr.c
gcc -c -pedantic -Wall -W -O -o iauD2dtf.o d2dtf.c
gcc -c -pedantic -Wall -W -O -o iauD2tf.o d2tf.c
gcc -c -pedantic -Wall -W -O -o iauDat.o dat.c
gcc -c -pedantic -Wall -W -O -o iauDtdb.o dtdb.c
gcc -c -pedantic -Wall -W -O -o iauDtf2d.o dtf2d.c
gcc -c -pedantic -Wall -W -O -o iauEe00.o ee00.c
gcc -c -pedantic -Wall -W -O -o iauEe00a.o ee00a.c
gcc -c -pedantic -Wall -W -O -o iauEe00b.o ee00b.c
gcc -c -pedantic -Wall -W -O -o iauEe06a.o ee06a.c
gcc -c -pedantic -Wall -W -O -o iauEect00.o eect00.c
gcc -c -pedantic -Wall -W -O -o iauEform.o eform.c
gcc -c -pedantic -Wall -W -O -o iauEo06a.o eo06a.c
gcc -c -pedantic -Wall -W -O -o iauEors.o eors.c                                                                                                                                   
gcc -c -pedantic -Wall -W -O -o iauEpb.o epb.c                                                                                                                                     
gcc -c -pedantic -Wall -W -O -o iauEpb2jd.o epb2jd.c                                                                                                                               
gcc -c -pedantic -Wall -W -O -o iauEpj.o epj.c                                                                                                                                     
gcc -c -pedantic -Wall -W -O -o iauEpj2jd.o epj2jd.c                                                                                                                               
gcc -c -pedantic -Wall -W -O -o iauEpv00.o epv00.c                                                                                                                                 
gcc -c -pedantic -Wall -W -O -o iauEqeq94.o eqeq94.c                                                                                                                               
gcc -c -pedantic -Wall -W -O -o iauEra00.o era00.c                                                                                                                                 
gcc -c -pedantic -Wall -W -O -o iauFad03.o fad03.c                                                                                                                                 
gcc -c -pedantic -Wall -W -O -o iauFae03.o fae03.c                                                                                                                                                                                                                             
gcc -c -pedantic -Wall -W -O -o iauFaf03.o faf03.c                                                                                                                                                                                                                             
gcc -c -pedantic -Wall -W -O -o iauFaju03.o faju03.c                                                                                                                                                                                                                           
gcc -c -pedantic -Wall -W -O -o iauFal03.o fal03.c                                                                                                                                                                                                                             
gcc -c -pedantic -Wall -W -O -o iauFalp03.o falp03.c                                                                                                                                                                                                                           
gcc -c -pedantic -Wall -W -O -o iauFama03.o fama03.c                                                                                                                                                                                                                           
gcc -c -pedantic -Wall -W -O -o iauFame03.o fame03.c                                                                                                                                                                                                                           
gcc -c -pedantic -Wall -W -O -o iauFane03.o fane03.c                                                                                                                                                                                                                           
gcc -c -pedantic -Wall -W -O -o iauFaom03.o faom03.c                                                                                                                                                                                                                           
gcc -c -pedantic -Wall -W -O -o iauFapa03.o fapa03.c                                                                                                                                                                                                                           
gcc -c -pedantic -Wall -W -O -o iauFasa03.o fasa03.c                                                                                                                                                                                                                           
gcc -c -pedantic -Wall -W -O -o iauFaur03.o faur03.c                                                                                                                                                                                                                           
gcc -c -pedantic -Wall -W -O -o iauFave03.o fave03.c                                                                                                                                                                                                                           
gcc -c -pedantic -Wall -W -O -o iauFk52h.o fk52h.c                                                                                                                                                                                                                             
gcc -c -pedantic -Wall -W -O -o iauFk5hip.o fk5hip.c                                                                                                                                                                                                                           
gcc -c -pedantic -Wall -W -O -o iauFk5hz.o fk5hz.c                                                                                                                                                                                                                             
gcc -c -pedantic -Wall -W -O -o iauFw2m.o fw2m.c                                                                                                                                                                                                                               
gcc -c -pedantic -Wall -W -O -o iauFw2xy.o fw2xy.c                                                                                                                                                                                                                             
gcc -c -pedantic -Wall -W -O -o iauGc2gd.o gc2gd.c                                                                                                                                                                                                                             
gcc -c -pedantic -Wall -W -O -o iauGc2gde.o gc2gde.c                                                                                                                                                                                                                           
gcc -c -pedantic -Wall -W -O -o iauGd2gc.o gd2gc.c                                                                                                                                                                                                                             
gcc -c -pedantic -Wall -W -O -o iauGd2gce.o gd2gce.c                                                                                                                                                                                                                           
gcc -c -pedantic -Wall -W -O -o iauGmst00.o gmst00.c                                                                                                                                                                                                                           
gcc -c -pedantic -Wall -W -O -o iauGmst06.o gmst06.c                                                                                                                                                                                                                           
gcc -c -pedantic -Wall -W -O -o iauGmst82.o gmst82.c                                                                                                                                                                                                                           
gcc -c -pedantic -Wall -W -O -o iauGst00a.o gst00a.c                                                                                                                                                                                                                           
gcc -c -pedantic -Wall -W -O -o iauGst00b.o gst00b.c                                                                                                                                                                                                                           
gcc -c -pedantic -Wall -W -O -o iauGst06.o gst06.c                                                                                                                                                                                                                             
gcc -c -pedantic -Wall -W -O -o iauGst06a.o gst06a.c
gcc -c -pedantic -Wall -W -O -o iauGst94.o gst94.c
gcc -c -pedantic -Wall -W -O -o iauH2fk5.o h2fk5.c
gcc -c -pedantic -Wall -W -O -o iauHfk5z.o hfk5z.c
gcc -c -pedantic -Wall -W -O -o iauIr.o ir.c
gcc -c -pedantic -Wall -W -O -o iauJd2cal.o jd2cal.c
gcc -c -pedantic -Wall -W -O -o iauJdcalf.o jdcalf.c
gcc -c -pedantic -Wall -W -O -o iauNum00a.o num00a.c
gcc -c -pedantic -Wall -W -O -o iauNum00b.o num00b.c
gcc -c -pedantic -Wall -W -O -o iauNum06a.o num06a.c
gcc -c -pedantic -Wall -W -O -o iauNumat.o numat.c
gcc -c -pedantic -Wall -W -O -o iauNut00a.o nut00a.c
gcc -c -pedantic -Wall -W -O -o iauNut00b.o nut00b.c
gcc -c -pedantic -Wall -W -O -o iauNut06a.o nut06a.c
gcc -c -pedantic -Wall -W -O -o iauNut80.o nut80.c
gcc -c -pedantic -Wall -W -O -o iauNutm80.o nutm80.c
gcc -c -pedantic -Wall -W -O -o iauObl06.o obl06.c
gcc -c -pedantic -Wall -W -O -o iauObl80.o obl80.c
gcc -c -pedantic -Wall -W -O -o iauP06e.o p06e.c
gcc -c -pedantic -Wall -W -O -o iauP2pv.o p2pv.c
gcc -c -pedantic -Wall -W -O -o iauP2s.o p2s.c
gcc -c -pedantic -Wall -W -O -o iauPap.o pap.c
gcc -c -pedantic -Wall -W -O -o iauPas.o pas.c
gcc -c -pedantic -Wall -W -O -o iauPb06.o pb06.c
gcc -c -pedantic -Wall -W -O -o iauPdp.o pdp.c
gcc -c -pedantic -Wall -W -O -o iauPfw06.o pfw06.c
gcc -c -pedantic -Wall -W -O -o iauPlan94.o plan94.c
gcc -c -pedantic -Wall -W -O -o iauPm.o pm.c
gcc -c -pedantic -Wall -W -O -o iauPmat00.o pmat00.c
gcc -c -pedantic -Wall -W -O -o iauPmat06.o pmat06.c
gcc -c -pedantic -Wall -W -O -o iauPmat76.o pmat76.c
gcc -c -pedantic -Wall -W -O -o iauPmp.o pmp.c
gcc -c -pedantic -Wall -W -O -o iauPn.o pn.c
gcc -c -pedantic -Wall -W -O -o iauPn00.o pn00.c
gcc -c -pedantic -Wall -W -O -o iauPn00a.o pn00a.c
gcc -c -pedantic -Wall -W -O -o iauPn00b.o pn00b.c
gcc -c -pedantic -Wall -W -O -o iauPn06.o pn06.c
gcc -c -pedantic -Wall -W -O -o iauPn06a.o pn06a.c
gcc -c -pedantic -Wall -W -O -o iauPnm00a.o pnm00a.c
gcc -c -pedantic -Wall -W -O -o iauPnm00b.o pnm00b.c
gcc -c -pedantic -Wall -W -O -o iauPnm06a.o pnm06a.c
gcc -c -pedantic -Wall -W -O -o iauPnm80.o pnm80.c
gcc -c -pedantic -Wall -W -O -o iauPom00.o pom00.c
gcc -c -pedantic -Wall -W -O -o iauPpp.o ppp.c
gcc -c -pedantic -Wall -W -O -o iauPpsp.o ppsp.c
gcc -c -pedantic -Wall -W -O -o iauPr00.o pr00.c
gcc -c -pedantic -Wall -W -O -o iauPrec76.o prec76.c
gcc -c -pedantic -Wall -W -O -o iauPv2p.o pv2p.c
gcc -c -pedantic -Wall -W -O -o iauPv2s.o pv2s.c
gcc -c -pedantic -Wall -W -O -o iauPvdpv.o pvdpv.c
gcc -c -pedantic -Wall -W -O -o iauPvm.o pvm.c
gcc -c -pedantic -Wall -W -O -o iauPvmpv.o pvmpv.c
gcc -c -pedantic -Wall -W -O -o iauPvppv.o pvppv.c
gcc -c -pedantic -Wall -W -O -o iauPvstar.o pvstar.c
gcc -c -pedantic -Wall -W -O -o iauPvu.o pvu.c
gcc -c -pedantic -Wall -W -O -o iauPvup.o pvup.c
gcc -c -pedantic -Wall -W -O -o iauPvxpv.o pvxpv.c
gcc -c -pedantic -Wall -W -O -o iauPxp.o pxp.c
gcc -c -pedantic -Wall -W -O -o iauRm2v.o rm2v.c
gcc -c -pedantic -Wall -W -O -o iauRv2m.o rv2m.c
gcc -c -pedantic -Wall -W -O -o iauRx.o rx.c
gcc -c -pedantic -Wall -W -O -o iauRxp.o rxp.c
gcc -c -pedantic -Wall -W -O -o iauRxpv.o rxpv.c
gcc -c -pedantic -Wall -W -O -o iauRxr.o rxr.c
gcc -c -pedantic -Wall -W -O -o iauRy.o ry.c
gcc -c -pedantic -Wall -W -O -o iauRz.o rz.c
gcc -c -pedantic -Wall -W -O -o iauS00.o s00.c
gcc -c -pedantic -Wall -W -O -o iauS00a.o s00a.c
gcc -c -pedantic -Wall -W -O -o iauS00b.o s00b.c
gcc -c -pedantic -Wall -W -O -o iauS06.o s06.c
gcc -c -pedantic -Wall -W -O -o iauS06a.o s06a.c
gcc -c -pedantic -Wall -W -O -o iauS2c.o s2c.c
gcc -c -pedantic -Wall -W -O -o iauS2p.o s2p.c
gcc -c -pedantic -Wall -W -O -o iauS2pv.o s2pv.c
gcc -c -pedantic -Wall -W -O -o iauS2xpv.o s2xpv.c
gcc -c -pedantic -Wall -W -O -o iauSepp.o sepp.c
gcc -c -pedantic -Wall -W -O -o iauSeps.o seps.c
gcc -c -pedantic -Wall -W -O -o iauSp00.o sp00.c
gcc -c -pedantic -Wall -W -O -o iauStarpm.o starpm.c
gcc -c -pedantic -Wall -W -O -o iauStarpv.o starpv.c
gcc -c -pedantic -Wall -W -O -o iauSxp.o sxp.c
gcc -c -pedantic -Wall -W -O -o iauSxpv.o sxpv.c
gcc -c -pedantic -Wall -W -O -o iauTaitt.o taitt.c
gcc -c -pedantic -Wall -W -O -o iauTaiut1.o taiut1.c
gcc -c -pedantic -Wall -W -O -o iauTaiutc.o taiutc.c
gcc -c -pedantic -Wall -W -O -o iauTcbtdb.o tcbtdb.c
gcc -c -pedantic -Wall -W -O -o iauTcgtt.o tcgtt.c
gcc -c -pedantic -Wall -W -O -o iauTdbtcb.o tdbtcb.c
gcc -c -pedantic -Wall -W -O -o iauTdbtt.o tdbtt.c
gcc -c -pedantic -Wall -W -O -o iauTf2a.o tf2a.c
gcc -c -pedantic -Wall -W -O -o iauTf2d.o tf2d.c
gcc -c -pedantic -Wall -W -O -o iauTr.o tr.c
gcc -c -pedantic -Wall -W -O -o iauTrxp.o trxp.c
gcc -c -pedantic -Wall -W -O -o iauTrxpv.o trxpv.c
gcc -c -pedantic -Wall -W -O -o iauTttai.o tttai.c
gcc -c -pedantic -Wall -W -O -o iauTttcg.o tttcg.c
gcc -c -pedantic -Wall -W -O -o iauTttdb.o tttdb.c
gcc -c -pedantic -Wall -W -O -o iauTtut1.o ttut1.c
gcc -c -pedantic -Wall -W -O -o iauUt1tai.o ut1tai.c
gcc -c -pedantic -Wall -W -O -o iauUt1tt.o ut1tt.c
gcc -c -pedantic -Wall -W -O -o iauUt1utc.o ut1utc.c
gcc -c -pedantic -Wall -W -O -o iauUtctai.o utctai.c
gcc -c -pedantic -Wall -W -O -o iauUtcut1.o utcut1.c
gcc -c -pedantic -Wall -W -O -o iauXy06.o xy06.c
gcc -c -pedantic -Wall -W -O -o iauXys00a.o xys00a.c
gcc -c -pedantic -Wall -W -O -o iauXys00b.o xys00b.c
gcc -c -pedantic -Wall -W -O -o iauXys06a.o xys06a.c
gcc -c -pedantic -Wall -W -O -o iauZp.o zp.c
gcc -c -pedantic -Wall -W -O -o iauZpv.o zpv.c
gcc -c -pedantic -Wall -W -O -o iauZr.o zr.c
ar ru libsofa_c.a iauA2af.o iauA2tf.o iauAf2a.o iauAnp.o iauAnpm.o iauBi00.o iauBp00.o iauBp06.o iauBpn2xy.o iauC2i00a.o iauC2i00b.o iauC2i06a.o iauC2ibpn.o iauC2ixy.o iauC2ixys.o iauC2s.o iauC2t00a.o iauC2t00b.o iauC2t06a.o iauC2tcio.o iauC2teqx.o iauC2tpe.o iauC2txy.o iauCal2jd.o iauCp.o iauCpv.o iauCr.o iauD2dtf.o iauD2tf.o iauDat.o iauDtdb.o iauDtf2d.o iauEe00.o iauEe00a.o iauEe00b.o iauEe06a.o iauEect00.o iauEform.o iauEo06a.o iauEors.o iauEpb.o iauEpb2jd.o iauEpj.o iauEpj2jd.o iauEpv00.o iauEqeq94.o iauEra00.o iauFad03.o iauFae03.o iauFaf03.o iauFaju03.o iauFal03.o iauFalp03.o iauFama03.o iauFame03.o iauFane03.o iauFaom03.o iauFapa03.o iauFasa03.o iauFaur03.o iauFave03.o iauFk52h.o iauFk5hip.o iauFk5hz.o iauFw2m.o iauFw2xy.o iauGc2gd.o iauGc2gde.o iauGd2gc.o iauGd2gce.o iauGmst00.o iauGmst06.o iauGmst82.o iauGst00a.o iauGst00b.o iauGst06.o iauGst06a.o iauGst94.o iauH2fk5.o iauHfk5z.o iauIr.o iauJd2cal.o iauJdcalf.o iauNum00a.o iauNum00b.o iauNum06a.o iauNumat.o iauNut00a.o iauNut00b.o iauNut06a.o iauNut80.o iauNutm80.o iauObl06.o iauObl80.o iauP06e.o iauP2pv.o iauP2s.o iauPap.o iauPas.o iauPb06.o iauPdp.o iauPfw06.o iauPlan94.o iauPm.o iauPmat00.o iauPmat06.o iauPmat76.o iauPmp.o iauPn.o iauPn00.o iauPn00a.o iauPn00b.o iauPn06.o iauPn06a.o iauPnm00a.o iauPnm00b.o iauPnm06a.o iauPnm80.o iauPom00.o iauPpp.o iauPpsp.o iauPr00.o iauPrec76.o iauPv2p.o iauPv2s.o iauPvdpv.o iauPvm.o iauPvmpv.o iauPvppv.o iauPvstar.o iauPvu.o iauPvup.o iauPvxpv.o iauPxp.o iauRm2v.o iauRv2m.o iauRx.o iauRxp.o iauRxpv.o iauRxr.o iauRy.o iauRz.o iauS00.o iauS00a.o iauS00b.o iauS06.o iauS06a.o iauS2c.o iauS2p.o iauS2pv.o iauS2xpv.o iauSepp.o iauSeps.o iauSp00.o iauStarpm.o iauStarpv.o iauSxp.o iauSxpv.o iauTaitt.o iauTaiut1.o iauTaiutc.o iauTcbtdb.o iauTcgtt.o iauTdbtcb.o iauTdbtt.o iauTf2a.o iauTf2d.o iauTr.o iauTrxp.o iauTrxpv.o iauTttai.o iauTttcg.o iauTttdb.o iauTtut1.o iauUt1tai.o iauUt1tt.o iauUt1utc.o iauUtctai.o iauUtcut1.o iauXy06.o iauXys00a.o iauXys00b.o iauXys06a.o iauZp.o iauZpv.o iauZr.o
ar: создаётся libsofa_c.a

*** Now type 'make test'  to install the library and run tests ***
БПЦ 15х50, Nikon Aculon 7x50, Celestron Advanced VX 8" N, Sky-Watcher BK 909AZ3, ТАЛ-65, Таир-3ФС, Canon EOS 60D, Sony Alpha NEX-3.

Оффлайн gashaАвтор темы

  • ****
  • Сообщений: 350
  • Благодарностей: 17
  • 61:45:28,6 N 34:21:39.5 E (134 + 15 этаж) м
    • Сообщения от gasha
    • Siä Karjalassa
Швейцарские эфемериды, исходники и ссылка на сам архив с исходниками.

Все компилируется и работает вроде, но при компиляции много предупреждений:

:~/Portable/swe_unix_src_1.78.00/src> make
cc       -c -g -O9 -Wall           swetest.c     
swetest.c: In function ‘main’:
swetest.c:2080:9: warning: ‘ecl_type’ may be used uninitialized in this function [-Wmaybe-uninitialized]
swetest.c:1983:20: note: ‘ecl_type’ was declared here
cc       -c -g -O9 -Wall           swedate.c     
swedate.c: In function ‘swe_jdet_to_utc’:
swedate.c:530:16: warning: ‘dret’ may be used uninitialized in this function [-Wmaybe-uninitialized]
cc       -c -g -O9 -Wall           swehouse.c     
swehouse.c: In function ‘sidereal_houses_ssypl’:
swehouse.c:359:39: warning: variable ‘epst0’ set but not used [-Wunused-but-set-variable]
cc       -c -g -O9 -Wall           swejpl.c     
cc       -c -g -O9 -Wall           swemmoon.c     
cc       -c -g -O9 -Wall           swemplan.c     
cc       -c -g -O9 -Wall           swepcalc.c     
swepcalc.c: In function ‘nacalc’:
swepcalc.c:141:49: warning: ‘rspeed’ may be used uninitialized in this function [-Wmaybe-uninitialized]
cc       -c -g -O9 -Wall           sweph.c     
sweph.c: In function ‘swecalc’:
sweph.c:2686:8: warning: ‘xxsp[2]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
sweph.c:2550:19: note: ‘xxsp[2]’ was declared here
sweph.c:2686:8: warning: ‘xxsp[1]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
sweph.c:2550:19: note: ‘xxsp[1]’ was declared here
sweph.c:2686:8: warning: ‘xxsp[0]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
sweph.c:2550:19: note: ‘xxsp[0]’ was declared here
cc       -c -g -O9 -Wall           swepdate.c     
cc       -c -g -O9 -Wall           swephlib.c     
cc       -c -g -O9 -Wall           swecl.c     
swecl.c: In function ‘eclipse_where’:
swecl.c:607:10: warning: variable ‘xssv’ set but not used [-Wunused-but-set-variable]
swecl.c:606:23: warning: variable ‘erm’ set but not used [-Wunused-but-set-variable]
swecl.c: In function ‘eclipse_how’:
swecl.c:932:10: warning: variable ‘mdd’ set but not used [-Wunused-but-set-variable]
swecl.c: In function ‘swe_rise_trans_true_hor’:
swecl.c:3659:11: warning: variable ‘do_calc_twilight’ set but not used [-Wunused-but-set-variable]
swecl.c: In function ‘swe_sol_eclipse_when_glob’:
swecl.c:1336:20: warning: ‘dt2’ may be used uninitialized in this function [-Wmaybe-uninitialized]
swecl.c:1335:20: warning: ‘dt1’ may be used uninitialized in this function [-Wmaybe-uninitialized]
swecl.c: In function ‘swe_lun_occult_when_glob’:
swecl.c:1724:20: warning: ‘dt2’ may be used uninitialized in this function [-Wmaybe-uninitialized]
swecl.c:1723:20: warning: ‘dt1’ may be used uninitialized in this function [-Wmaybe-uninitialized]                                                                                                                                                                             
swecl.c: In function ‘swe_lun_eclipse_when’:                                                                                                                                                                                                                                   
swecl.c:3276:20: warning: ‘dt2’ may be used uninitialized in this function [-Wmaybe-uninitialized]                                                                                                                                                                             
swecl.c:3275:20: warning: ‘dt1’ may be used uninitialized in this function [-Wmaybe-uninitialized]                                                                                                                                                                             
swecl.c: In function ‘swe_lun_occult_when_loc’:                                                                                                                                                                                                                               
swecl.c:2421:17: warning: ‘dt2’ may be used uninitialized in this function [-Wmaybe-uninitialized]                                                                                                                                                                             
swecl.c:2222:15: note: ‘dt2’ was declared here                                                                                                                                                                                                                                 
swecl.c:2420:17: warning: ‘dt1’ may be used uninitialized in this function [-Wmaybe-uninitialized]                                                                                                                                                                             
swecl.c:2222:10: note: ‘dt1’ was declared here                                                                                                                                                                                                                                 
swecl.c: In function ‘swe_sol_eclipse_when_loc’:                                                                                                                                                                                                                               
swecl.c:2132:17: warning: ‘dt2’ may be used uninitialized in this function [-Wmaybe-uninitialized]                                                                                                                                                                             
swecl.c:1936:15: note: ‘dt2’ was declared here                                                                                                                                                                                                                                 
swecl.c:2131:17: warning: ‘dt1’ may be used uninitialized in this function [-Wmaybe-uninitialized]                                                                                                                                                                             
swecl.c:1936:10: note: ‘dt1’ was declared here                                                                                                                                                                                                                                 
cc       -c -g -O9 -Wall           swehel.c                                                                                                                                                                                                                                   
swehel.c: In function ‘SunRA’:                                                                                                                                                                                                                                                 
swehel.c:529:10: warning: variable ‘tjd_tt’ set but not used [-Wunused-but-set-variable]                                                                                                                                                                                       
swehel.c: In function ‘swe_heliacal_pheno_ut’:                                                                                                                                                                                                                                 
swehel.c:1813:10: warning: variable ‘OldestDeltaAlt’ set but not used [-Wunused-but-set-variable]                                                                                                                                                                             
swehel.c: In function ‘moon_event_arc_vis’:                                                                                                                                                                                                                                   
swehel.c:2061:53: warning: variable ‘i’ set but not used [-Wunused-but-set-variable]                                                                                                                                                                                           
swehel.c:2061:25: warning: variable ‘eventtype’ set but not used [-Wunused-but-set-variable]                                                                                                                                                                                   
swehel.c: In function ‘heliacal_ut_arc_vis’:                                                                                                                                                                                                                                   
swehel.c:2163:45: warning: variable ‘VR’ set but not used [-Wunused-but-set-variable]                                                                                                                                                                                         
swehel.c:2163:41: warning: variable ‘RH’ set but not used [-Wunused-but-set-variable]                                                                                                                                                                                         
swehel.c:2157:46: warning: variable ‘DayStep0’ set but not used [-Wunused-but-set-variable]                                                                                                                                                                                   
swehel.c: In function ‘get_heliacal_day’:                                                                                                                                                                                                                                     
swehel.c:2709:20: warning: variable ‘tsave’ set but not used [-Wunused-but-set-variable]                                                                                                                                                                                       
swehel.c: In function ‘time_limit_invisible’:                                                                                                                                                                                                                                 
swehel.c:2956:32: warning: variable ‘tjd_save’ set but not used [-Wunused-but-set-variable]                                                                                                                                                                                   
swehel.c: In function ‘get_acronychal_day’:                                                                                                                                                                                                                                   
swehel.c:2997:44: warning: variable ‘dtret_save’ set but not used [-Wunused-but-set-variable]                                                                                                                                                                                 
swehel.c: In function ‘moon_event_vis_lim’:                                                                                                                                                                                                                                   
swehel.c:3210:25: warning: variable ‘eventtype’ set but not used [-Wunused-but-set-variable]                                                                                                                                                                                   
swehel.c:3210:16: warning: variable ‘Daystep’ set but not used [-Wunused-but-set-variable]                                                                                                                                                                                     
swehel.c: In function ‘get_heliacal_day’:                                                                                                                                                                                                                                     
swehel.c:2825:23: warning: ‘direct_time’ may be used uninitialized in this function [-Wmaybe-uninitialized]                                                                                                                                                                   
swehel.c:2780:22: warning: ‘direct_day’ may be used uninitialized in this function [-Wmaybe-uninitialized]
swehel.c:385:10: warning: ‘is_rise_or_set’ may be used uninitialized in this function [-Wmaybe-uninitialized]
swehel.c:2707:9: note: ‘is_rise_or_set’ was declared here
swehel.c: In function ‘swe_heliacal_pheno_ut’:
swehel.c:1995:12: warning: ‘MinTAV’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ar r libswe.a   swedate.o swehouse.o swejpl.o swemmoon.o swemplan.o swepcalc.o sweph.o swepdate.o swephlib.o swecl.o swehel.o
ar: создаётся libswe.a
cc       -g -O9 -Wall      -o swetest swetest.o -L. -lswe -lm
gasha@almukantarat:~/Portable/swe_unix_src_1.78.00/src> ./swetest
./swetest
Date ?

date (dmy) 1.1.1900 greg.   0:00:00 ET          version 1.78.00
ET: 2415020.50000000000
Epsilon (true)    23°27' 5.9497
Nutation           0° 0'17.4334   -0° 0' 2.2902
Sun              280° 9'12.1822    0° 0' 0.2041    0.983266267    1° 1'11.4514
Moon             272°25' 0.1581    1° 6'30.3755    0.002462502   14°19'21.9967
Mercury          258°59'52.0883    1° 7'35.0715    1.142066975    1°16'35.7403
Venus            306°22'28.1243   -1°40'59.1483    1.464596025    1°14'36.6242
Mars             283°52' 3.9298   -0°55'31.4716    2.400963605    0°46'13.5220
Jupiter          241° 8' 9.2798    0°48'51.3604    6.113063963    0°11'44.2376
Saturn           267°43' 0.5218    1° 0'27.5983   11.024663757    0° 6'58.8954
Uranus           250° 8'21.1174    0° 3'48.2169   19.837816493    0° 3'19.2932
Neptune           85°13' 7.5043   -1°17'58.6637   28.920301444   -0° 1'37.9239
Pluto             75°15' 4.9136   -9°46'36.9420   46.078928294   -0° 1' 2.1633
mean Node        259° 9'40.7012    0° 0' 0.0000    0.002569555   -0° 3'10.4602
true Node        260°16' 2.2792    0° 0' 0.0000    0.002487206   -0° 0'56.0681
mean Apogee      154°19'57.9707   -4°58'29.6724    0.002710625    0° 6'43.3085

warning: SwissEph file 'sepl_18.se1' not found in PATH '.:/users/ephe2/:/users/ephe/'
using Moshier eph.;

Date ?

Отдельно компиляция swetest с использованием ранее скомпилированной библиотеки libswe.a:

t:~/Portable/swe_unix_src_1.78.00/src> gcc -lm swetest.c libswe.a
:~/Portable/swe_unix_src_1.78.00/src>

проходит без проблем, расчёты тестовой программы такие же.
БПЦ 15х50, Nikon Aculon 7x50, Celestron Advanced VX 8" N, Sky-Watcher BK 909AZ3, ТАЛ-65, Таир-3ФС, Canon EOS 60D, Sony Alpha NEX-3.

Оффлайн gashaАвтор темы

  • ****
  • Сообщений: 350
  • Благодарностей: 17
  • 61:45:28,6 N 34:21:39.5 E (134 + 15 этаж) м
    • Сообщения от gasha
    • Siä Karjalassa
В других темах уже выкладывал. Вот обновлённая версия архива с астроисходниками и базовыми руководствами.
Состав архива:
/APCe/ Оригинальные исходники из Монтенбрука, а также пофикшенная версия от fmman + проект на Qt Creator для библиотеки и всех программ из книги
/astro.com/ Швейцарские эфемериды: исходники и url для дополнительных файлов
/Книги/ Книги по теоретической астрономии))

GSEG.tar.gz
Пример проекта по использованию dll швейцарских эфемерид. Заброшен. Как программа не работает. Оставлен из сентиментальных чувств))
jpl_eph.tar.gz Работа с интегрированными эфемеридами JPL NASA
libAAplus.tar.gz Алгоритмы из Меёса. Проект в Qt Creator
novasc3.1.tar.gz Эфемериды и много больше от Naval. Сам с этими исходниками не работал.
sofa.tar.gz Standards of Fundamental Astronomy. И этим всё сказано)
vsop87.tar.gz Эфемериды на основе теории VSOP87
xephem-3.7.7-RC2.tar.gz Да-да, он самый. Библиотека libAstro

СКАЧАТЬ
« Последнее редактирование: 04 Апр 2013 [00:56:26] от gasha »

БПЦ 15х50, Nikon Aculon 7x50, Celestron Advanced VX 8" N, Sky-Watcher BK 909AZ3, ТАЛ-65, Таир-3ФС, Canon EOS 60D, Sony Alpha NEX-3.

Оффлайн gashaАвтор темы

  • ****
  • Сообщений: 350
  • Благодарностей: 17
  • 61:45:28,6 N 34:21:39.5 E (134 + 15 этаж) м
    • Сообщения от gasha
    • Siä Karjalassa
Возвращаясь к Монтенбруку с Пфлегером.

Пытаюсь скомпилировать Numint:

Numint.cpp:-1: In function 'int main(int, char**)':
Numint.cpp:342: предупреждение: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
Numint.cpp:359: предупреждение: suggest braces around empty body in an 'if' statement [-Wempty-body]

В файле APC_IO.cpp даётся определение функции:

void GetFilenames( int argc, char* argv[],
                   char* DefInputFile,
                   char* InputFile,  bool& FoundInputFile,
                   char* OutputFile, bool& FoundOutputFile )


В самом Numint.cpp:

В начале функции main (int main(int argc, char* argv[])) объявляется переменная:

 char OutputFile[APC_MaxFilename] = "";

...

 // Find input and optional output files
 GetFilenames( argc, argv, "Numint.dat", InputFile, FoundInputfile, OutputFile, FoundOutputfile );

...

// Redirect output if output file shall be created
if (FoundOutputfile) {
OutFile.open(OutputFile);
if (OutFile.is_open());
//cout = OutFile;
}

С такими ошибками программа компилируется, но при передаче в качестве параметра имени файла для записи, он получается пустым.

Чую, что проблема кроется в указателях, но не получается разрулить. Компиляторы g++ и в Qt Creator дают одинаковую ошибку.
БПЦ 15х50, Nikon Aculon 7x50, Celestron Advanced VX 8" N, Sky-Watcher BK 909AZ3, ТАЛ-65, Таир-3ФС, Canon EOS 60D, Sony Alpha NEX-3.

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
if (OutFile.is_open());
//cout = OutFile;

а это что такое? Открыли файл - и фиг с ним?
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн gashaАвтор темы

  • ****
  • Сообщений: 350
  • Благодарностей: 17
  • 61:45:28,6 N 34:21:39.5 E (134 + 15 этаж) м
    • Сообщения от gasha
    • Siä Karjalassa
if (OutFile.is_open());
//cout = OutFile;

а это что такое? Открыли файл - и фиг с ним?

В том то и дело, что всё. Подобный код встречается в программе Gauss. Там тоже на выходе создаётся пустой файл.
БПЦ 15х50, Nikon Aculon 7x50, Celestron Advanced VX 8" N, Sky-Watcher BK 909AZ3, ТАЛ-65, Таир-3ФС, Canon EOS 60D, Sony Alpha NEX-3.

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
И это явная ошибка. Поток вывода не был переадресован.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн gashaАвтор темы

  • ****
  • Сообщений: 350
  • Благодарностей: 17
  • 61:45:28,6 N 34:21:39.5 E (134 + 15 этаж) м
    • Сообщения от gasha
    • Siä Karjalassa
Чтобы организовать вывод в файл, нужно подключить #include <fstream>, объявить поток для записи ofstream OutFile и привязать поток к файлу OutFile.open(OutputFile).

Всё это в программе есть. Но после проверки (удалось ли открыть файл для вывода) следует закомментированный код:  //cout = OutFile

Если обычно для вывода на экран используется конструкция cout << что-то, то здесь подразумевается подмена cout на поток, связанный с открытым файлом. Если комментарий снять, то куча ошибок и ничего не компилируется.

Вот лог с закомментированным кодом:

"/usr/bin/gmake" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
gmake[1]: Вход в каталог `/home/gasha/NetBeansProjects/libAPC/Numint'
"/usr/bin/gmake"  -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/numint
gmake[2]: Вход в каталог `/home/gasha/NetBeansProjects/libAPC/Numint'
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/Numint.o.d
g++    -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/Numint.o.d -o build/Debug/GNU-Linux-x86/Numint.o Numint.cpp
Numint.cpp: In function ‘int main(int, char**)’:
Numint.cpp:341:98: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
mkdir -p dist/Debug/GNU-Linux-x86
g++     -o dist/Debug/GNU-Linux-x86/numint build/Debug/GNU-Linux-x86/Numint.o ../APC/dist/Debug/GNU-Linux-x86/libapc.a
gmake[2]: Выход из каталога `/home/gasha/NetBeansProjects/libAPC/Numint'
gmake[1]: Выход из каталога `/home/gasha/NetBeansProjects/libAPC/Numint'


СОБРАТЬ SUCCESSFUL (общее время: 566ms)

А вот с cout = OutFile:

"/usr/bin/gmake" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
gmake[1]: Вход в каталог `/home/gasha/NetBeansProjects/libAPC/Numint'
"/usr/bin/gmake"  -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/numint
gmake[2]: Вход в каталог `/home/gasha/NetBeansProjects/libAPC/Numint'
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/Numint.o.d
g++    -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/Numint.o.d -o build/Debug/GNU-Linux-x86/Numint.o Numint.cpp
Numint.cpp: In function ‘int main(int, char**)’:
Numint.cpp:341:98: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
/usr/include/c++/4.7/bits/ios_base.h: In member function ‘std::basic_ios<char>& std::basic_ios<char>::operator=(const std::basic_ios<char>&)’:
In file included from /usr/include/c++/4.7/ios:43:0,
                 from /usr/include/c++/4.7/istream:40,
                 from /usr/include/c++/4.7/fstream:40,
                 from Numint.cpp:20:
/usr/include/c++/4.7/bits/ios_base.h:791:5: error: ‘std::ios_base& std::ios_base::operator=(const std::ios_base&)’ is private
In file included from /usr/include/c++/4.7/ios:45:0,
                 from /usr/include/c++/4.7/istream:40,
                 from /usr/include/c++/4.7/fstream:40,
                 from Numint.cpp:20:
/usr/include/c++/4.7/bits/basic_ios.h:64:11: error: within this context
/usr/include/c++/4.7/ostream: In member function ‘std::basic_ostream<char>& std::basic_ostream<char>::operator=(const std::basic_ostream<char>&)’:
In file included from /usr/include/c++/4.7/istream:41:0,
                 from /usr/include/c++/4.7/fstream:40,
                 from Numint.cpp:20:
/usr/include/c++/4.7/ostream:56:11: note: synthesized method ‘std::basic_ios<char>& std::basic_ios<char>::operator=(const std::basic_ios<char>&)’ first required here
Numint.cpp: In function ‘int main(int, char**)’:
Numint.cpp:359:35: note: synthesized method ‘std::basic_ostream<char>& std::basic_ostream<char>::operator=(const std::basic_ostream<char>&)’ first required here
gmake[2]: *** [build/Debug/GNU-Linux-x86/Numint.o] Ошибка 1
gmake[2]: Выход из каталога `/home/gasha/NetBeansProjects/libAPC/Numint'
gmake[1]: *** [.build-conf] Ошибка 2
gmake[1]: Выход из каталога `/home/gasha/NetBeansProjects/libAPC/Numint'
gmake: *** [.build-impl] Ошибка 2


СОБРАТЬ FAILED (значение выхода 2,, общее время: 372ms)
БПЦ 15х50, Nikon Aculon 7x50, Celestron Advanced VX 8" N, Sky-Watcher BK 909AZ3, ТАЛ-65, Таир-3ФС, Canon EOS 60D, Sony Alpha NEX-3.

Оффлайн Михаил ФМ

  • **
  • Сообщений: 82
  • Благодарностей: 8
    • Сообщения от Михаил ФМ
Если обычно для вывода на экран используется конструкция cout << что-то, то здесь подразумевается подмена cout на поток, связанный с открытым файлом. Если комментарий снять, то куча ошибок и ничего не компилируется.

Для вывода в файл необходимо указать выходной поток  - объект класса basic_ofstream, производный от базового шаблона класса basic_ostream.
cout тоже производится от от basic_osteram, но не от basic_ofstream. Лет 20 назад, судя по cout = чему-то, объекты были совместимы по меткам доступа, а сейчас всё строже. Вроде так.
Сейчас попробую сделать рабочий пример.

Оффлайн gashaАвтор темы

  • ****
  • Сообщений: 350
  • Благодарностей: 17
  • 61:45:28,6 N 34:21:39.5 E (134 + 15 этаж) м
    • Сообщения от gasha
    • Siä Karjalassa
Пока задачу вывода в файл решил так. Решение взято отсюда.

В начале main объявляем:  streambuf* sbuf = cout.rdbuf();

И видоизменяем проверку на существование файла для вывода:

  // Redirect output if output file shall be created
  if (FoundOutputfile)
  {
    OutFile.open(OutputFile);
    if (OutFile.is_open()) cout.rdbuf(OutFile.rdbuf());
  }

При таком раскладе, если Numint запускается без параметров, то расчёт выводится на экран, если с параметрами (./Numint Numint.dat Numint.txt), то в консоли пусто и вся информация в файле Numint.txt

С одной стороны задача решена. Но хотелось бы, чтобы и на экран тоже выводилось. И не хотелось бы дублировать код.
БПЦ 15х50, Nikon Aculon 7x50, Celestron Advanced VX 8" N, Sky-Watcher BK 909AZ3, ТАЛ-65, Таир-3ФС, Canon EOS 60D, Sony Alpha NEX-3.

Оффлайн Михаил ФМ

  • **
  • Сообщений: 82
  • Благодарностей: 8
    • Сообщения от Михаил ФМ
При таком раскладе, если Numint запускается без параметров, то расчёт выводится на экран, если с параметрами (./Numint Numint.dat Numint.txt), то в консоли пусто и вся информация в файле Numint.txt

Именно так у них и задумано.
Вот другое, абсолютно очевидное решение. В качестве примера взял Comet.cpp.
Чтобы пример работал даже без командной строки, заменяем стр.183
char      OutputFile[APC_MaxFilename] = "TestComet.dat";

Перед строкой
// Redirect output if output file shall be created
пишем:
FoundOutputfile = true;

Копируем Header в файл (после/до аналогичного cout<<...):
OutFile << endl << endl
       << "    Date     ET   Sun     l      b     r"
       << "       RA          Dec      Distance " << endl
       << setw(43) << " " << "   h  m  s      o  '  \"     (AU) " << endl;

Копируем вывод в файл (после/до соответствующего cout<<...):
OutFile << DateTime(Date,HHh)
         << fixed << setprecision(1)
         << setw(7) << Deg*R_Sun[phi]
         << setw(7) << Deg*r_helioc[phi]
         << setw(6) << Deg*r_helioc[theta]
         << setprecision(3) << setw(7)  << r_helioc[r]
         << setprecision(1) << setw(12) << Angle(Deg*r_equ[phi]/15.0,DMMSSs)
         << "  " << showpos << setw(9)  << Angle(Deg*r_equ[theta],DMMSS)
         << noshowpos << setprecision(6) << setw(11) << dist
         << endl;

Получаем одновременный вывод в консоль и файл, что выглядит, на мой взгляд, даже лучше, чем "переключать" потоки.
Если хотите все же именовать выходной файл из командной строки, верните стр.183.
Во вложении пример для кометы Галлея.
Для других тестовых примеров из книги делаем всё аналогично или, вообще-то, как хотим. Например:
FILE* outfile;
и никаких потоков!

AK1962

  • Гость
Чтобы организовать вывод в файл, нужно подключить #include <fstream>, объявить поток для записи ofstream OutFile и привязать поток к файлу OutFile.open(OutputFile).

  Необязательно знание Си для вывода в файл. Можно просто работать как с DOS-программой и функцией Shell (запуск DOS-программы). Необязательно и управление потоками. Вот как это делалось в VB:
     
   MainID = Shell("cmd.exe /k numint.exe >111.txt", 1) ' с выводом в файл >111.txt

Просто-напросто используются возможности cmd.exe, встроенной в Windows

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
С одной стороны задача решена. Но хотелось бы, чтобы и на экран тоже выводилось. И не хотелось бы дублировать код.
А вот так обычно не делают.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Чтобы организовать вывод в файл, нужно подключить #include <fstream>, объявить поток для записи ofstream OutFile и привязать поток к файлу OutFile.open(OutputFile).

  Необязательно знание Си для вывода в файл. Можно просто работать как с DOS-программой и функцией Shell (запуск DOS-программы). Необязательно и управление потоками. Вот как это делалось в VB:
     
   MainID = Shell("cmd.exe /k numint.exe >111.txt", 1) ' с выводом в файл >111.txt

Просто-напросто используются возможности cmd.exe, встроенной в Windows
Всё это конечно замечательно, но речь о том, что возможность перенаправления вывода заложена в самих прогах, а с ней есть косяки.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн gashaАвтор темы

  • ****
  • Сообщений: 350
  • Благодарностей: 17
  • 61:45:28,6 N 34:21:39.5 E (134 + 15 этаж) м
    • Сообщения от gasha
    • Siä Karjalassa
Столкнулся с непонятной вещью(

Пытаюсь получить координаты Солнца, используя Швейцарские эфемериды:

/*
 * File:   Ephemeris.cpp
 * Author: gasha
 *
 * Created on 15 Апрель 2013 г., 15:59
 */

#include <iostream>
#include "./swephexp.h"

using namespace std;

/*
 *
 */
int main(int argc, char** argv)
{
    swe_set_ephe_path("./");
    //Тут мы указали программе, что файлы с эфемеридами надо искать в той же директории, где и сама программа
    swe_set_jpl_file("lnxm3000p3000.406");
    //Показали программе какой файл с JPL надо использовать
    char *sp, sdate[AS_MAXCH], snam[40], serr[AS_MAXCH];
    int jday = 15, jmon = 4, jyear = 2013;
    double jut = 0.0;
    double tjd_ut, te, x2[6];
    long iflag, iflgret;
    int p=SE_SUN;
    //Просим сделать расчёт для Солнца
    iflag = SEFLG_JPLEPH|SEFLG_SPEED|SEFLG_EQUATORIAL;
    //Говорим, что надо использовать именно JPL, а также расчитать и компоненты скорости. И пусть всё будет в экваториальных координатах.
    tjd_ut = swe_julday(jyear,jmon,jday,jut,SE_GREG_CAL);
    //Вычисляем юлианскую дату
    iflgret = swe_calc_ut(tjd_ut, p, iflag, x2, serr);
    void swe_close(void);
    //Собственно расчёт
    cout << "" << endl;
    cout << tjd_ut  << endl;
    cout << "" << endl;
    cout << "   R.A. " << "   Dec " << "     R " << endl;
    cout << " " << x2[0] << " " << x2[1] << " " << x2[2] << endl;

    return 0;
}


Компиляция:

:~/NetBeansProjects/astro.com> g++ Ephemeris.cpp -L. -lswe -o test
Ephemeris.cpp: In function ‘int main(int, char**)’:
Ephemeris.cpp:18:27: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
Ephemeris.cpp:20:41: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

Запуск:

:~/NetBeansProjects/astro.com> ./test

2.4564e+06

   R.A.            Dec             R
 23.3425   9.74587   1.00326

Почему так отображаются данные? 2.4564e+06 - это Юлианская дата, которая должна была отобразиться как 2456397.5

И координаты тоже как-то округлены. Что такое?

БПЦ 15х50, Nikon Aculon 7x50, Celestron Advanced VX 8" N, Sky-Watcher BK 909AZ3, ТАЛ-65, Таир-3ФС, Canon EOS 60D, Sony Alpha NEX-3.

Оффлайн xd

  • *****
  • Сообщений: 17 977
  • Благодарностей: 378
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от xd
    • Белорусская любительская астрономическая сеть
Такие настройки форматирования при выводе, очевидно.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн gashaАвтор темы

  • ****
  • Сообщений: 350
  • Благодарностей: 17
  • 61:45:28,6 N 34:21:39.5 E (134 + 15 этаж) м
    • Сообщения от gasha
    • Siä Karjalassa
Такие настройки форматирования при выводе, очевидно.

Оффтоп для данной темы. А в каком месте вкралось округление до 7 знаков? Компилятор? Сама консоль?

#include <iostream>
using namespace std;

int main(int argc, char** argv)
{
 
cout << 1256.256 / 5689.23654 << endl;

return 0;
}

Такая тестовая программулька выдаёт результат: 0.220813
БПЦ 15х50, Nikon Aculon 7x50, Celestron Advanced VX 8" N, Sky-Watcher BK 909AZ3, ТАЛ-65, Таир-3ФС, Canon EOS 60D, Sony Alpha NEX-3.