Generowanie programów potrzebna pomoc

Odpowiedz Nowy wątek
Świetny Terrorysta
2016-01-09 15:44
Świetny Terrorysta
0

Witam,
mam do napisania program, który generuje i zapisuje do pliku funkcje: sinus, trójkąt i prostokąt, ktore potem możemy odczytać i modyfikować. Z wygenerowaniem i zapisaniem do pliku sinusa i prostokąta problemów nie miałem. Problemy mam dwa:

  1. Nie za bardzo radzę sobie z generowaniem trójkąta.
  2. Problem większy. Nie umiem odczytać z pliku .csv zapisanych danych. Są one zapisane tak, że w kolumnie A mam czas, a w kolumnie B wartość funkcji. Potrzebuje w prosty sposób wczytać wartości funkcji aby móc następnie zastosować filtrację.

Jeżeli jakaś dobra dusza dałaby radę pomóc to będę bardzo wdzięczny
Pozdrawiam

Pozostało 580 znaków

kq
2016-01-09 15:46
kq
Moderator C/C++

Rejestracja: 6 lat temu

Ostatnio: 8 godzin temu

Lokalizacja: Szczecin

0

W jakim języku ma być ten program i funkcje? Niby jest tag c, ale nie wiadomo do którego się to odnosi.


Pozostało 580 znaków

Świetny Terrorysta
2016-01-09 15:49
Świetny Terrorysta
0

W języku C

Pozostało 580 znaków

2016-01-09 15:51

Rejestracja: 14 lat temu

Ostatnio: 2 dni temu

1

@kq - podejrzewam że chodzi raczej o wykres w semigrafice.
@Świetny Terrorysta - może napisz to jeszcze raz bez użycia skrótów myślowych i najlepiej z przykładem tego co chcesz osiągnąć.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
Możliwe, że masz rację, ale w takim razie opis do bani ;) - kq 2016-01-09 15:57
Jak widać - też nie mam racji, ale jestem nieco bliżej ;) - _13th_Dragon 2016-01-09 16:08

Pozostało 580 znaków

kq
2016-01-09 15:55
kq
Moderator C/C++

Rejestracja: 6 lat temu

Ostatnio: 8 godzin temu

Lokalizacja: Szczecin

0

Dobra, zakładam, że obie mają być w C. W takim razie, przykładowo:

#include <stdio.h>

int main()
{
    FILE* f =fopen("prostokat.c", "w");
    char const * func = "void prostokat(){\n"
                        "\tprintf(\"prostokat\");\n"
                        "}\n";
    fprintf(f, "%s", func);
    fclose(f);
}

Ta funkcja utworzy plik prostokat.c o poniższej zawartości. Oczywiście, zgodnie z wymaganiami, można go "odczytać i modyfikować".

void prostokat(){
    printf("prostokat");
}

edytowany 1x, ostatnio: kq, 2016-01-09 15:56

Pozostało 580 znaków

Świetny Terrorysta
2016-01-09 15:58
Świetny Terrorysta
0

Ok.
Program ma za zadanie utworzyć plik z wartościami liczbowymi funkcji, które podałem wyżej
np.

        for (n = 0; n < N; n++)

        wynik = ((A*sin(2 * PI*f / fp*n*s)) + (rand() / (RAND_MAX + 1.0) * a));

Wynik jest zapisywany do pliku .csv. Razem z wartością "s", która u mnie oznacza skok czasu. Dzięki temu Excel jest mi w stanie zrobić wykres sinusoidy.
I to mam.

Teraz potrzebuję napisać taką fukcję jak wyżej, ale zamiast sinusa muszę utworzyć sygnał trójkątny.

A drugi mój problem polega na tym, że:
Muszę ten plik csv wczytać do programu i filtrować jego wartości. Nie umiem tego zrobić.
Mam nadzieje, że wyjaśniłem, jeśli nie to będę się starał inaczej.

Pozostało 580 znaków

Świetny Terrorysta
2016-01-09 16:03
Świetny Terrorysta
0
 int main()
{
    FILE * plik;

    double wynik;
    float  lT, t, N, T, n, fp, f, s;
    int i, a, A;
    srand(time(NULL));
    printf("Aby wybrac rodzaj sygnalu wybierz:\n 1 dla sinusa\n 2 dla prostokata\n 3 dla trojkota\n");
    scanf("%d", &i);
    switch (i)
    {
    case 1:
        printf("Podaj czas trwania okresu w milisekundach\n");
        scanf("%f", &T);
        printf("Podaj liczbe okresow\n");// T*iT musi byc >N
        scanf("%f", &lT);
        printf("Podaj liczbe probek\n");
        scanf("%f", &N);
        printf("Podaj amplitude sinusa\n");
        scanf("%d", &A);
        printf("Podaj amplitude szumu\n");
        scanf("%d", &a);

        t = T*lT;
        f = 1000 / T;
        s = t / N;
        fp = f*N;

        for (n = 0; n < N; n++)
        {
            wynik = ((A*sin(2 * PI*f / fp*n*s)) + (rand() / (RAND_MAX + 1.0) * a));

            if ((plik = fopen("mojplik.csv", "a")) == NULL)
            {
                printf("Nie mogę otworzyć pliku mojplik.txt do zapisu!\n");
                exit(1);
            }
            fprintf(plik, "%f %f \n  ", s*n, wynik);

            fclose(plik);

        }
        plik = fopen("mojplik.csv", "r");

póki co stworzyłem tyle

Pozostało 580 znaków

2016-01-09 16:06

Rejestracja: 14 lat temu

Ostatnio: 2 dni temu

0
  1. Nie nadużywaj inkrenmentacji przyrostkowej: http://4programmers.net/Forum/1101404
  2. Wczytywanie:
    unsigned s;
    double A;
    fscanf(file,"%u ; %lf", &s,&A);
  3. Trójkąt: wynik=A*(n%s)/(s-1);

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

Świetny Terrorysta
2016-01-09 16:14
Świetny Terrorysta
0

Dzięki wielkie.
Teraz za to mam ciekawy problem. Ściągnąłem właście Visuala 2015 na kompa i cały czas wywala mi mnóstwo błędów w bibliotece math.h.
Zastanawiam się jeszcze nad tym trójkątem. Muszę móć ustawić ilość okresów i czas ich trwania. I nie jestem pewien czy z tego wzoru co podałeś da się to zrobić.
Co gorsza nie mogę tego sprawdzić przez te ciągłe błędy w math.h

Jeśli oczekujesz pomocy z błędami to wypadałoby je przytoczyć... - kq 2016-01-09 16:15

Pozostało 580 znaków

Świetny Terrorysta
2016-01-09 16:20
Świetny Terrorysta
0

Wywala mi ich ponad 2000

Severity Code Description Project File Line Suppression State
Error (active) variable "using" is not a type name ConsoleApplication2 c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\cmath 661

Severity Code Description Project File Line Suppression State
Error (active) expected a ';' ConsoleApplication2 c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\cmath 17

Severity Code Description Project File Line Suppression State
Error (active) identifier "typename" is undefined ConsoleApplication2 c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits 838

w sumie te 3 tylko powtarząjące się mnóstwo razy

Pokaż również kod który kompilujesz. na Moje oko zapisałeś kod w C++ do pliku *.c - stąd ten problem. - _13th_Dragon 2016-01-09 16:23

Pozostało 580 znaków

2016-01-09 16:21

Rejestracja: 14 lat temu

Ostatnio: 2 dni temu

0
s=czas_trwania;
ilosc_okresow=N/s;

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0