Funkcja w klasie - nieznana wartosc

Funkcja w klasie - nieznana wartosc
ulQuiorra
  • Rejestracja:około 11 lat
  • Ostatnio:prawie 11 lat
  • Postów:25
0

Witam, mam do napisania program ktory z podanych danych wypisze ich sume w danym przedziale, oraz parametry statystyczne jak modalna, srednia etc. Ale o tamte na razie mniejsza bo obecnie głowie sie nad jedna rzecza.
Otoz po zrobieniu funkcji zliczajacej odpowiednie dane w przedzialach wypisuje ja potem w programie glownym. Niestety funkcja wypisuje jakas liczbe ktora kompletnie niewiem skad sie wziela i jak temu zaradzic.
Daje moj kod:

Kopiuj
#include <iostream>

using namespace std;

class Zaklad1 {
    public:
        int tab_Z1[55]={22, 26, 27, 27, 9,
                        11, 29, 33, 27, 28,
                        30, 31, 14, 33, 30,
                        16, 20, 18, 34, 33,
                        34, 30, 29, 24, 29,
                        29, 27, 42, 54, 60,
                        52, 36, 37, 43, 57,
                        39, 40, 36, 50, 44,
                        33, 31, 42, 49, 32,
                        36, 41, 32, 48, 31,
                        26, 36, 38, 37, 38};
        int przedzial_z1();
};

class Zaklad2 {
    public:
        int tab_Z2[65]={38, 37, 22, 31, 64,
                        39, 30, 26, 42, 44,
                        46, 41, 27, 34, 39,
                        16, 46, 60, 37, 36,
                        30, 26, 36, 51, 27,
                        32, 26, 20, 41, 27,
                        40, 44, 26, 19, 18,
                        54, 49, 28, 42, 43,
                        39, 38, 41, 50, 24,
                        33, 38, 36, 18, 53,
                        50, 59, 40, 36, 16,
                        36, 39, 48, 46, 58,
                        33, 43, 37, 44, 40};
        int przedzial_z2();
};


int Zaklad1::przedzial_z1()
{
    int suma_15=0;
    int suma_25=0;
    int suma_35=0;
    int suma_45=0;
    int suma_55=0;
    int suma_65=0;
    for (int i=0;i<55;i++)
    {
        if (tab_Z1[i]<15)
            suma_15=suma_15+1;
        else
            if (tab_Z1[i]<25)
            suma_25=suma_25+1;
        else
            if (tab_Z1[i]<35)
            suma_35=suma_35+1;
        else
            if (tab_Z1[i]<45)
            suma_45=suma_45+1;
        else
            if (tab_Z1[i]<55)
            suma_55=suma_55+1;
        else
            if (tab_Z1[i]<65)
            suma_65=suma_65+1;
    }
    cout<<"Przedzial dla Zakladu I"<<endl;
    cout<<"5 - 15: "<<suma_15<<endl;
    cout<<"15 - 25: "<<suma_25<<endl;
    cout<<"25 - 35: "<<suma_35<<endl;
    cout<<"35 - 45: "<<suma_45<<endl;
    cout<<"45 - 55: "<<suma_55<<endl;
    cout<<"55 - 65: "<<suma_65<<endl;
}

int Zaklad2::przedzial_z2()
{
    int suma_15=0;
    int suma_25=0;
    int suma_35=0;
    int suma_45=0;
    int suma_55=0;
    int suma_65=0;
    for (int i=0;i<65;i++)
    {
        if (tab_Z2[i]<15)
            suma_15=suma_15+1;
        else
            if (tab_Z2[i]<25)
            suma_25=suma_25+1;
        else
            if (tab_Z2[i]<35)
            suma_35=suma_35+1;
        else
            if (tab_Z2[i]<45)
            suma_45=suma_45+1;
        else
            if (tab_Z2[i]<55)
            suma_55=suma_55+1;
        else
            if (tab_Z2[i]<65)
            suma_65=suma_65+1;
    }
    cout<<"Przedzial dla Zakladu II"<<endl;
    cout<<"5 - 15: "<<suma_15<<endl;
    cout<<"15 - 25: "<<suma_25<<endl;
    cout<<"25 - 35: "<<suma_35<<endl;
    cout<<"35 - 45: "<<suma_45<<endl;
    cout<<"45 - 55: "<<suma_55<<endl;
    cout<<"55 - 65: "<<suma_65<<endl;
}



int main()
{
    Zaklad1 zI;
    Zaklad2 zII;
//Wypisuje dane Zakladu I
    cout<<"Zaklad I: ";
    for (int i=0;i<55;++i)
       {
            if (i%5!=0)
            cout<<zI.tab_Z1[i]<<" ";
            else
            {
                cout<<"\n";
                cout<<zI.tab_Z1[i]<<" ";
            }
       }
//Wypisuje dane Zakladu II
    cout<<endl<<endl<<"Zaklad II: ";
    for (int i=0;i<65;++i)
       {
            if (i%5!=0)
            cout<<zII.tab_Z2[i]<<" ";
            else
            {
                cout<<"\n";
                cout<<zII.tab_Z2[i]<<" ";
            }
       }

    cout<<endl<<endl<<endl<<"Podzial na 6 przedzialow od 5 do 65 i zsumowanie wartosci tych przedzialow"<<endl<<endl;
    cout<<zI.przedzial_z1()<<endl<<endl;
    cout<<zII.przedzial_z2()<<endl;


    cout<<endl<<endl;
    return 0;
}

I tak, powinno wypisac wylacznie to co jest w funkcji tzn 5-15: itd, okej wypisuje ale na samym koncu wypisuje 7znakowa liczbe.

Co jest tu nie tak i co nalezaloby poprawic? Bede bardzo wdzieczny za pomoc.

n0name_l
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 4 lata
  • Postów:2412
2

Co jest tu nie tak i co nalezaloby poprawic?

Wszystko: duplikacje kodu, mieszanie interfejsu z logika, niezrozumienie idei klas, magiczne cyferki w kodzie, drabinki ifow, drabinki nic nie mowiacych zmiennych, drabinki coutow, nazewnictwo, niekonsekwencje w formatowaniu, masa niepotrzebnych flushowan strumienia.

ulQuiorra
  • Rejestracja:około 11 lat
  • Ostatnio:prawie 11 lat
  • Postów:25
0

Wszystko: duplikacje kodu, - gdzie niby duplikacja kodu? mam pisac osobna funkcje dla wyswietlenia przedzialow? bez przesady.
mieszanie interfejsu z logika, - czyli?
niezrozumienie idei klas, - rozumiem idee klas :)
magiczne cyferki w kodzie, - nie w kodzie tylko w wyniku pojawiaja sie magiczne cyferki :) czytanie ze zrozumieniem.
drabinki ifow, - to zrob mi podzial danych z tablicy na przedzialy bez drabinki ifow :)
drabinki nic nie mowiacych zmiennych, - pokaz mi te zmienne bo ja ich nie widze :)
drabinki coutow, - zrob to bez drabinki :)
nazewnictwo, - jest takie aby bylo mozna sie polapac co jest co, jesli twoje nazewnictwo polega na x y z to ci wspolczuje
niekonsekwencje w formatowaniu, - czyli?
masa niepotrzebnych flushowan strumienia - czyli?

edytowany 1x, ostatnio: ulQuiorra
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

gdzie niby duplikacja kodu?

Widziałeś metody przedzial_z1 oraz przedzial_z2?
Są prawie identyczne, więc po co dwie osobne klasy do tego?

mieszanie interfejsu z logika, - czyli?

Czyli: dlaczego przedzial_z1 oraz ta druga cokolwiek wyświetlają? Powinny tylko zwracać wartość.

to zrob mi podzial danych z tablicy na przedzialy bez drabinki ifow

Mapa oraz druga statyczna tablica 15, 25, 35 (...) albo pojedynczy if. Nasuwa Ci się już rozwiązanie?

niekonsekwencje w formatowaniu, - czyli?

Ponownie zapytam: widziałeś metody przedzial_z1 oraz przedzial_z2?

masa niepotrzebnych flushowan strumienia - czyli?

Chodzi mu o endl, z tego co widzę.


edytowany 1x, ostatnio: Patryk27
ulQuiorra
  • Rejestracja:około 11 lat
  • Ostatnio:prawie 11 lat
  • Postów:25
0

2 klasy dla 2 osobnych Zakladow. To jest dopiero poczatek kodu wiec 2 klasy musza byc.
Jesli nie maja wypisywac czegokolwiek tylko zwracac to tu jest moje pytanie - jak? Jesli w programie glownym wtedy wstawie couty przedzialowe z funkcji to jak do danego przedzialu zwrocic po kolei suma_15 suma_25 itd? Probowalem - nie potrafie dlatego zrobilem couty w funkcji.
Co do drabinki ifow nie, nie nasuwa mi wlasnie rozwiazanie...
Chciałbym jeszcze tylko dodać, ze to moje początki z programowaniem na studiach dlatego nic mi nie mowi pojecie mapy ;/

Ale ponownie powiem czytanie ze zrozumieniem, nie chcialem abyscie mi wytykali co gdzie zle tylko dlaczego pokazuje w programie wartosc ktorej wgl nie ma ?

edytowany 1x, ostatnio: ulQuiorra
szweszwe
  • Rejestracja:ponad 11 lat
  • Ostatnio:4 dni
  • Lokalizacja:Kraków
  • Postów:1694
1

Błąd o który Ci chodzi to:

Kopiuj
cout<<zI.przedzial_z1()<<endl<<endl;
cout<<zII.przedzial_z2()<<endl;

Nie rób cout tylko je normalnie wywołaj bo w nich wypisujesz.
Coś takiego

Kopiuj
zI.przedzial_z1();
zII.przedzial_z2()

Ewentualnie między nie wstaw znak nowej linii.

ulQuiorra
  • Rejestracja:około 11 lat
  • Ostatnio:prawie 11 lat
  • Postów:25
0

szweszwe dzięki, ze ja na to nie wpadłem ;/. już wszystko jest okej dzieki :)

Sopelek
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 8 lat
  • Lokalizacja:Kraków
  • Postów:467
0

niezrozumienie idei klas, - rozumiem idee klas :)
...
2 klasy dla 2 osobnych Zakladow. To jest dopiero poczatek kodu wiec 2 klasy musza byc.

No czyli nie rozumiesz. Nie powinno się tak projektować klas. Powinna być jedna klasa tego typu, bo obie realizują to samo. Dane powinny być podawane do funkcji/obiektu, a nie trzymane na sztywno w klasie.

drabinki ifow, - to zrob mi podzial danych z tablicy na przedzialy bez drabinki ifow :)
drabinki coutow, - zrob to bez drabinki :)

Wystarczy prosta pętla w tym przypadku.

niekonsekwencje w formatowaniu, - czyli?

głównie wcięcia

duplikacje kodu, - gdzie niby duplikacja kodu? mam pisac osobna funkcje dla wyswietlenia przedzialow?

Troche to ironicznie brzmi, bo właśnie to zrobiłeś w swoim kodzie.

Więcej pokory by ci się przydało

edytowany 3x, ostatnio: Sopelek
ulQuiorra
  • Rejestracja:około 11 lat
  • Ostatnio:prawie 11 lat
  • Postów:25
0

na razie obie realizuja to samo, w dalszej czesci kodu czeka nieco wiecej zabawy dlatego mam 2 klasy. Dodatkowo chce oprocz zrobienia samego programu pocwiczyc na nim klasy dlatego nie widze innego rozwiazania.
W przypadku tych ifow jak ta petla powinna wyglad? Osobiscie nic mi do glowy nie przychodzi to jedyny sposob na jaki wpadlem. A co do wciec to niewiem w czym problem? Wciecia robie tak aby kod byl czytelny uwzgledniajac wszystko po kolei, przeciez nie bede pisal wszystko linia pod linia...

Bylbys w stanie mi pokazac jak zrobic ta petle dla ifow i coutow i ewentualnie jak zrobic zwracanie z tych funkcji zamiast wypisywania?

n0name_l
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 4 lata
  • Postów:2412
0

gdzie niby duplikacja kodu?

Spojrz na swoje: pola, klasy, metody, main.

niezrozumienie idei klas, - rozumiem idee klas :)

Kod mowi co innego, komu mam uwierzyc?

magiczne cyferki w kodzie

A 65 przy for w main to nie jest magiczna cyferka?

pokaz mi te zmienne bo ja ich nie widze :)

Kopiuj
    int suma_15=0;
    int suma_25=0;
    int suma_35=0;
    int suma_45=0;
    int suma_55=0;
    int suma_65=0;

drabinki coutow, - zrob to bez drabinki :)

Prymitywnie badz Nie

nazewnictwo, - jest takie aby bylo mozna sie polapac

zI, i od razu wiadomo co autor mial na mysli.

niekonsekwencje w formatowaniu

Spojrz na for w main i for w metodzie.

masa niepotrzebnych flushowan strumienia - czyli?

W programowaniu, jak i w medycynie, przed uzyciem nalezy skonsultowac sie z trescia ulotki.

nie chcialem abyscie mi wytykali co gdzie zle tylko dlaczego pokazuje w programie wartosc ktorej wgl nie ma

To czemu w Twoim poscie, jest tylko jedno pytanie, ktore mowi o czyms zupelnie innym?

ulQuiorra
chce sie czegos nauczyc co podkreslilem juz kilka razy ale widac nie czytales ze zrozumieniem. kazdy potrafi przyjsc powiedziec tu i tu jest zle i nie powiedziec nic wiecej, za taka pomoc to ja dziekuje :)
n0name_l
Dostales informacje, zeby uzyc mapy, zeby nie wywolywac cout/endl milion razy z dosc obszernym wyjasnieniem czemu. Napisalem, ze zI to kpina, a nie czytelna nazwa, i ze zadna wartosc stala poza przypisaniem do identyfikatora nie powinna wystepowac w kodzie. Dostales informacje, ze nie rozumiesz klas i, ze masz nierowne wciecia w roznych miejscach kodu. Jakiej wiec pomocy oczekujesz? Ma ktos za ciebie myslec, czytac, czy pisac? Bo tylko te czynnosci zostaly do wykonania, zeby wywalic to z pierwszego postu i napisac jeszcze raz, tym razem z glowa.
ulQuiorra
  • Rejestracja:około 11 lat
  • Ostatnio:prawie 11 lat
  • Postów:25
0

Rozumiem idee klas powiem jeszcze raz, ale probuje nauczyc sie jak te klasy dzialaja bo dopiero sie one pojawily na moich zajeciach dlatego chce na nich operowac nawet jesli jest to bez sensu wg was. 65 nie jest magiczna cyferka :) Wystarczy zwrocic uwage na tablice. Co do tych linkow ktore podales to niestety ale tego nie rozumiem...
I tak jak mowisz zI i Od razu wiadomo co autor mial na mysli chyba nie ma w tym nic dziwnego ? :) No i nic dziwnego nie widze w tych forach gdzie tam niby jest zle formatowanie?
A co do zmiennych....wklep to do kompilatora i usun zmienne to zobaczysz czy sa niepotrzebne...

edytowany 1x, ostatnio: ulQuiorra
n0name_l
Znwou dalem sie nabrac, myslac, ze ktos sie chce czegos nauczyc :( Anyway, milego studiowania/whatever.
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 miesiące
2

Tak na szybko jak to można zrobić mniej więcej obiektowo:

Kopiuj
#include <iomanip>
#include <iostream>
#include <algorithm>
using namespace std;

class RangeCount
  {
   private:
   int first,step;
   unsigned count;
   int *tb;
   public:
   RangeCount(int first,int step,unsigned count):first(first),step(step),count(count),tb(new int[count]) {}
   ~RangeCount() { delete[] tb; }
   void proceed(int data[],unsigned datasize)
     {
      for(unsigned i=0;i<count;++i) tb[i]=0; // ewentualnie memset
      for(unsigned i=0;i<datasize;++i) ++tb[max(0,min((int)count-1,(data[i]-first-1)/step))];
     }
   int operator[](unsigned i)const { return tb[i]; }
   unsigned size()const { return count; }
   int range(unsigned nr)const { return first+step*nr; }
  };

void Analize(RangeCount &rc,const char *What,const char *Stat,int tb[],unsigned size)
  {
   cout<<What<<endl;
   for(unsigned i=0;i<size;++i) cout<<setw(3)<<tb[i]<<("\n"+(i%5<4));   
   rc.proceed(tb,size);
   cout<<endl<<Stat<<endl;
   for(unsigned i=0;i<rc.size();++i) cout<<setw(2)<<rc.range(i)<<" - "<<setw(2)<<(rc.range(i+1)-1)<<": "<<setw(3)<<rc[i]<<endl;
  }

int main()
  {
   int zz1[]=
     {
      22, 26, 27, 27, 9,
      11, 29, 33, 27, 28,
      30, 31, 14, 33, 30,
      16, 20, 18, 34, 33,
      34, 30, 29, 24, 29,
      29, 27, 42, 54, 60,
      52, 36, 37, 43, 57,
      39, 40, 36, 50, 44,
      33, 31, 42, 49, 32,
      36, 41, 32, 48, 31,
      26, 36, 38, 37, 38
     };                  
   int zz2[]=
     {
      38, 37, 22, 31, 64,
      39, 30, 26, 42, 44,
      46, 41, 27, 34, 39,
      16, 46, 60, 37, 36,
      30, 26, 36, 51, 27,
      32, 26, 20, 41, 27,
      40, 44, 26, 19, 18,
      54, 49, 28, 42, 43,
      39, 38, 41, 50, 24,
      33, 38, 36, 18, 53,
      50, 59, 40, 36, 16,
      36, 39, 48, 46, 58,
      33, 43, 37, 44, 40
     };   
   RangeCount rc(5,10,6);
   Analize(rc,"Zaklad I:","Przedzial dla Zakladu I",zz1,sizeof(zz1)/sizeof(*zz1));
   cout<<endl;
   Analize(rc,"Zaklad II:","Przedzial dla Zakladu II",zz1,sizeof(zz2)/sizeof(*zz2)); 
   return 0;
  }

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 1x, ostatnio: _13th_Dragon
ulQuiorra
  • Rejestracja:około 11 lat
  • Ostatnio:prawie 11 lat
  • Postów:25
0

Dragon doceniam pomoc ale niestety niezbyt to rozumiem w obecnej chwili :(
Programowanie obiektowe dopiero co zaczałem i wielu rzeczy w twoim kodzie nie rozumiem ale miejmy nadzieje z czasem sie to mieni.
na razie probuje to taka metoda robic.

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 miesiące
0

Masz tu zrozumieć to że nie tworzysz klasy metodą Kopiego Pejsta zaś metodą przemyśleń i uniwersalizacji.
Masz zrozumieć że jedyny kto ci tu naprawdę próbował pomóc to @n0name_l a wszystko co on napisał powinieneś wykuć na pamięć.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 1x, ostatnio: _13th_Dragon
ulQuiorra
  • Rejestracja:około 11 lat
  • Ostatnio:prawie 11 lat
  • Postów:25
0

na razie interesuje mnie nauka na biezaco a nie wybieganie sporo do przodu. Dla was moze to byc proste do zrozumienia ja sie dopiero ucze i nie bede wykuwal na pamiec rzeczy ktore mi obecnie nie sa potrzebne albo sa bezsensowne...

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 miesiące
0

Patrz na konstrukcje nie implementacje.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
0
ulQuiorra napisał(a):

na razie interesuje mnie nauka na biezaco a nie wybieganie sporo do przodu. Dla was moze to byc proste do zrozumienia ja sie dopiero ucze i nie bede wykuwal na pamiec rzeczy ktore mi obecnie nie sa potrzebne albo sa bezsensowne...

Dostałeś program który jest "zakodowany" - dosłownie. Przed użyciem trzeba go sobie rozkodować - patrz niżej.
I nie martw się, programiści pracujący zawodowo po 20 lat też mieliby problem ze zrozumiemiem tego kodu.

Stara wersja:

Kopiuj
void proceed(int data[],unsigned datasize)
{
  for(unsigned i=0;i<count;++i) tb[i]=0; // ewentualnie memset
  for(unsigned i=0;i<datasize;++i) ++tb[max(0,min((int)count-1,(data[i]-first-1)/step))];
}

Nowa:

Kopiuj
void reset()
{      
   for(unsigned i=0;i<count;++i) tb[i]=0; // ewentualnie memset
}

void proceed(int data[],unsigned datasize)
{
  int incPos;
  int lastPos = count - 1;
  
  reset();      
  
  for(unsigned i = 0; i < datasize; ++i) 
  {
    incPos = (data[i] - first - 1)/step;
    
    if (incPos > lastPos) {
      incPos = lastPos;
    }
    
    if (incPos < 0) {
      incPos = 0;    
    }
    
    ++tb[incPos];
  }
}
ulQuiorra
  • Rejestracja:około 11 lat
  • Ostatnio:prawie 11 lat
  • Postów:25
0

Tak jak napisales a mi wlasnie chodzi o prostote. Zwlaszcza ze programowanie obiektowe mam od poczatku marca bo jestem dopiero na 1 roku i nie wypada oddac pracy z czyms czego nawet w tym roku miec nie bede :P Twoj kod jednak troche mi juz rozjasnij sytuacje chociaz i tak wole to poki co robic moim sposobem.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)