rysowanie wykresów funkcji przy użyciu znaków ASCI

0

Witam!
Mam do napisania projekt, którym jest program w języku C, jednak nie wiem jak się w ogóle do tego zabrać.
Są to moje początki z językiem C, miałam trochę styczności z C++, jednak były to bardzo podstawowe programy.
Treść zadania:
Danymi wejściowymi do programu jest ciąg liczb rzeczywistych. Zakładamy, że liczby tworzące ten ciąg zmieniają się wokół jakiejś wartości i większość tych liczb mieści się w przedziale
(m-kd, m+kd), gdzie m jest wartością średnią, a d odchyleniem
standardowym. k jest jakimś arbitralnie przyjętym współczynnikiem
zależnym od rozkładu (np. dla rozkładu normalnego zwykle
przyjmuje się k=3). Zakładamy jednak, że w ciągu mogą czasem
pojawiać się tzw. ekscesy - dane leżące daleko poza tym przedziałem.

Program ma wykonać dwa wykresy: danych surowych oraz danych
z usuniętymi ekscesami. Usunięcie ekscesu oznacza zastąpienie
go wartością interpolowaną z sąsiednich próbek.

Wykresy powinny być wykonane wyłącznie przy użyciu znaków ASCI.

0

A jak brzmi pytanie?

0

Dział praca niżej. Tutaj nie robimy zadań domowych za darmo. :-(

Przyjęło się, że musisz coś samemu zrobić a następnie wrócić tutaj z pytaniami. Jak to się stało, że na początki z C dostałeś takie zadanie? Jeżeli ogólnie pojmujesz programowanie przemyśl ten program w kategoriach ogólnych a nie konkretnego języka, dopiero potem przełóż projekt na język.

0

Nie chodzi mi o rozwiązanie tego zadania za mnie. Liczyłam na jakieś wskazówki jakie komendy mogą być ew przydatne, ukierunkowanie bardziej:)

0

Np tak:

     │
 1.0 ┤    ***                 ***
     │   *   *               *   *
 0.5 ┤  *     *             *     *
     │ *       *           *       *
 0.0 ┼────────────────────────────────────
     │           *       *           *
-0.5 ┤            *     *             *
     │             *   *               *
-1.0 ┤              ***                 **
     │
0

Myślę, że i z samych gwiazdek czy kropek wykres wystarczy.

Z "komend" przyda ci się zwyczajne wypisywanie tekstu na ekran (printf/puts/putchar).

Musisz przeliczyć sobie wszystko, wyznaczyć w którym miejscu mają pojawić się kropki, odpowiednio wszystko przeskalować żeby się mieściło na ekranie. Do odpowiedniego przeskalowania musisz wyszukać maksimum i minimum.

Znaki na ekranie wypisuje się wierszami. Natomiast dane będziesz mieć kolumnami (jeśli oś X ma być poziomo). Dlatego zanim namalujesz gwiazdki trzeba wyznaczyć wcześniej wszystkie ich pozycje. Dlatego proponuję wypełnić dwuwymiarową tablicę znaków. W puste miejsca wstawić spacje a tam gdzie mają być punkty wpisać gwiazdki/kropki. Jak cała tablica będzie gotowa to dopiero wtedy przenieść ją na ekran (puts/printf).

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