long double

0

To kolego może wiesz dlaczego long double potrafi tak wielkie liczby przwchowywać za pomocą setprecision () można wyświetlić max 4932 cyfry to więcej niż 12 birów

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

Ależ skąd? Więcej niż 24 znaki nie przechowasz, te 4 tysiące będą przybliżone.


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

Kurcze jak przybliżone?? Jak liczy co do jedności np mnożąc. Weźmy np dwa long double pomnóżmy je w pętli i wynik zapisujmy do jednej z nich w końcu ta liczba urośnie maksymalnie do 4932 cyfr i dalej będzie inf wypisywać więc jak to możliwe że tylko 24 cufry są policzone dokładnie a reszta przybliżona. Tylko ja mówię o bibliotece <iomanip> i funkcji setprecision ()

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
1

A czy gdybym ci napisał ze 1/3 to jest 0,333... I dalej milion 3 to czy to by znaczyło ze faktycznie pamiętam takie długie rozwinięcie? Czy może jest przybliżone?


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
0

Rozumiem że liczba może być przybliżona jeśli chodzi o dzielenie chociaż można to przybliżenie ustalać to jak to się dzieje? Potrzebuję 1/3 i z liczby która jest jakoś przybliżona robi się liczba która np. ma 4932 cyfry :/ a zmienna niby ma 12 bajtów

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:4 minuty
3

Kurcze jak przybliżone??

Ano po prostu.

Kopiuj
#include <stdio.h>
int main()
{
    long double d = 400000000000000000000.0L;
    printf("%Lf\n",d);
    printf("%Lf\n",d+1);
}

http://ideone.com/5sEqVm

Kopiuj
400000000000000000000.000000
400000000000000000000.000000
edytowany 3x, ostatnio: Azarien
0

Wiem co to przybliżenie ja nie wiem w jaki sposób na 12 bajtów można przechowywać liczby 4932 cyfrowe musi to zajmować więcej miejsca

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

Nie można na dwunastu bajtach*, ot co.
* no dobra, chyba że chcesz przechować liczbę, która składa się z jedynki i 4931 zer lub jakiejś podobnej kombinacji. Wtedy przykładowo robisz dwubajtową całkowitą mantysę i dziesięciobajtowy wykładnik, zatem maksymalnie zapiszesz liczbę 255 * 10^(2^10) (co jednak daje max 1027 cyfr; przy jedenastobajtowym wykładniku i jednobajtowej mantysie miałbyś 2051 cyfr. Możesz iść dalej i mieć np. mantysę składającą się z jednego nibble czy dwóch bitów, ale nie chce mi się już tego liczyć plus nie miałoby to raczej większego zastosowania :P).


edytowany 8x, ostatnio: Patryk27
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 miesiące
0

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:4 minuty
2

ja nie wiem w jaki sposób na 12 bajtów można przechowywać liczby 4932

Kopiuj
10^4931

właśnie ci na 7 bajtach zapisałem liczbę 4932-cyfrową.

Patryk27
Trzy bajty wystarczą ;P
0

No tak. Myslałem wcześniej że ten typ liczy tylko dla samego pokazanizania rzędu wielkości liczby czy też jaka liczba jest mała dlatego ten ten typ mnie nigdy nie interesował a to jak teraz to widzę da się wyświetlić taką dokładność co do jednoś to dla mnie nowość

0

a dowiedziałem się o tym tu bo bym do tej pory tego nie wiedział nie wiem czy oglądacie ten kurs można się czasem dowiedzieć ciekawych spraw:

0

poprawiona wersja odejmij.h

Kopiuj
#ifndef  ODEJMIJ_H_
#define ODEJMIJ_H_
#include<fstream>
#include<iomanip>
#include <stdlib.h> 
//windows <cstdlib> ??
using namespace std;
long double od(long double x,long double y)
{short a=0,b=-2,z,z1,z2; char c; bool d=1,e;long double r;
if(y<=x)e=0;else e=1; 
ofstream plik; plik.open("plik.txt"); plik<<setprecision(3000);
plik<<x<<endl<<y; plik.close();
fstream plik1; plik1.open("plik.txt");
while(!plik1.eof())
{plik1.get(c);if(c=='\n')d=0;
if(d)a++;else b++;} plik1.close();
plik1.open("plik.txt");
if(e){short*tabw = new short[a];
      short*tab1 = new short[a];
      short*tab2 = new short[b];
for(int l=0;l<a;l++){tabw[l]==0; 
plik1.get(c);tab1[l]=c-48;}plik1.get(c);
for(int l=0;l<b;l++){plik1.get(c); 
tab2[l]=c-48;}
z=b-a;z1=b;z2=a;
for(int l=0;l<z2;l++,b--,a--){tabw[b-1]=tab2[b-1]-tab1[a-1];
if(tabw[b-1]<0){tabw[b-1]+=10;tab2[b-2]-=1;}}
for(int l=0;l<z;l++,b--){if(tab2[b-1]<0){
if(10==tabw[b-1]+10)tabw[b-1]=+9;else tabw[b-1]=+10;tab2[b-2]-=1;}
else tabw[b-1]=tab2[b-1];}
ofstream plik2; plik2.open("plik.txt");
for(int l=0;l<z1;l++){plik2<<tabw[l];}
plik2.close();
fstream plik3; plik3.open("plik.txt");
plik3>>r;plik3.close();
system("rm plik.txt"); //windows system("del plik.txt"); ??
return r;}
else {short*tabw = new short[b];
      short*tab1 = new short[b];
      short*tab2 = new short[a];
for(int l=0;l<a;l++){tabw[l]==0;
plik1.get(c);tab2[l]=c-48;}
plik1.get(c);
for(int l=0;l<b;l++){plik1.get(c); 
tab1[l]=c-48;}
z=a-b;z1=a;z2=b;
for(int l=0;l<z2;l++,b--,a--){tabw[a-1]=tab2[a-1]-tab1[b-1];
if(tabw[a-1]<0){tabw[a-1]+=10;tab2[a-2]-=1;}}
for(int l=0;l<z;l++,a--){if(tab2[a-1]<0){
if(10==tabw[a-1]+10)tabw[a-1]+=9;else tabw[a-1]+=10;tab2[a-2]-=1;}
else tabw[a-1]=tab2[a-1];}
ofstream plik2; plik2.open("plik.txt");
for(int l=0;l<z1;l++){plik2<<tabw[l];}
plik2.close();
fstream plik3; plik3.open("plik.txt");
plik3>>r;plik3.close();
system("rm plik.txt"); //windows system("del plik.txt"); ??
return r;}}
#endif 

kasuje ten plik.txt co się otwiera dla potrzeb przeliczania sprawdzi ktoś czy działa to na windowsie?

mwl4
Czy ja dobrze widzę i ty sobie funkcje normalnie do pliku .h dałeś?
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

Jasne. Jak tylko przepiszesz to na wersje czytelną dla człowieka.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
0

Hehe no to zajebisty masz kompilator wiesz bo ja raczej taki mam najprostszy który kompiluje kod cpp wtedy kiedy jest poprawnie napisany w tym języku ewentualnie w razie błędów wypisuje błędy w kodzie wiesz wypisuje liniję w której czegoś nie rozumie i takie tam :D:D:D

Kurcze ale w sumie to nie jest taki głupi pomysł zrobić taki program który przekształca kod np. cpp na bardziej przejrzysty nikt na to wcześniej nie wpadł?? Troszkę roboty by było i dużo by było do ulepszania w takim programie w ogóle duży zasób wiedzy trzeba by mieć dużo więcej niż kolorowanie includów, wyrazów kluczowych i tych wszystkich wiecie o co mi chodzi. Jutro siadam do dodawania long double. Przydałaby się jeszcze taka funkcja gdzieś musze poszukać która zwraca prawdę jeśli kod kompilowany jest np na windowsie chyba już kiedyś coś gdzieś takiego widziałem .

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

Kurcze ale w sumie to nie jest taki głupi pomysł zrobić taki program który przekształca kod np. cpp na bardziej przejrzysty nikt na to wcześniej nie wpadł?

Są takie programy - szukaj pod kątem c++ beautifier.

w ogóle duży zasób wiedzy trzeba by mieć dużo więcej niż kolorowanie includów, wyrazów kluczowych i tych wszystkich wiecie o co mi chodzi

nah', wcale nie. To takie zadanie na średni poziom.

Jutro siadam do dodawania long double.

Ale szto?

Kopiuj
long double a, b, c;
c = a+b;

Przydałaby się jeszcze taka funkcja gdzieś musze poszukać która zwraca prawdę jeśli kod kompilowany jest np na windowsie

http://stackoverflow.com/questions/142508/how-do-i-check-os-with-a-preprocessor-directive


0
Kopiuj
long double a, b, c;
c = a+b;

Działa może na małych zmiennych ale jak wezmę setprecision (4932) i wczytam z pliku tak dużą liczbę mającą te 4932 cyfry to jak dodaje albo odejmuje tak normalnie np liczbę 4cyfrową to nie dodaje co do jedności

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

Więc nie pomieścisz tej liczby w long double. Koniec kropka.
Poczytaj o bignumach.


Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

Czemu ludzie śpią na zajęciach z metod numerycznych? Myślałem że zrozumiałeś już po tym poście: http://4programmers.net/Forum/C_i_C++/232921-long_double?p=1053186#id1053186 ale jak widać ani trochę. Typy liczbowe są ograniczone i już. Cudów nie zdziałasz. Liczba bitów danego typu określa jednoznacznie ile różnych liczb można za jego pomocą przedstawić. Jak masz 64 bity to będzie to 264-1 i ani jednej liczby więcej, bo to są wszystkie możliwe kombinacje 0 i 1 na 64 bitach. Koniec, kropka.
Z faktu że liczby zmiennoprzecinkowe są kodowane jako mantysa*2cecha wynika też, że tylko część tych bitów idzie na określenie cyfr danej liczby a pozostałe idą na określenie jej "rozmiaru". To znaczy że za różne cyfry danej liczby odpowiada tylko i wyłącznie mantysa.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 1x, ostatnio: Shalom
Patryk27
To zero już nie jest liczbą? (2^64 - 1) ;/
fourfour
Jak coś czego nie ma (zero, czyli brak) może być czymkolwiek. Niebyt ma być bytem? Choć z drugiej strony.. :P
Shalom
@Patryk27 no generalnie floating point ma jeszcze mniej tych liczb bo jeszcze inf i NaN ;)
0

Jak nie pomieszcze jak mieszcze bez problemu ja naprawde dużo nie czaję w zasadzie nie potzebuję może tego zrozumieć choć wypadałoby. Dlamnie trzeba łopatologicznie żebym zrozumiał. Czyli jeszcze raz używam cpp do swoich zagadek do swoich potrzeb potrzebuje większych liczb dowiedziałem się że można wpisać do kodu <iomanip> i cout <<setprecision (np.4932albo więcejnp 30000) i tak na maksa jest 4932cyfry i teraz tak operacje mnożenia dzielenia reszty z dzielenia fmodl (a, b); albo sqrtl(a); z <math.h> to działa liczy nawet na tak dużych liczbach a odejmowanie i dodawanie nie działa dlatego napisałem funkcję. I liczy poprawnie sprawdzaliście w ogóle?

vpiotr
sformatuj to jakoś po ludzku
fasadin
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
3

@Shalom
@Rev
@moderatorzy

Zglaszam watek do zamkniecia za niska tresc od autora. Nie ma sensu tego ciagnac.

0

Jak nie pomieszcze jak mieszcze bez problemu ja naprawde dużo nie czaję w zasadzie nie potzebuję może tego zrozumieć choć wypadałoby. Dla mnie trzeba łopatologicznie żebym zrozumiał. Czyli jeszcze raz używam cpp do swoich zagadek do swoich potrzeb potrzebuje większych liczb dowiedziałem się że można wpisać do kodu <iomanip> i cout<<setprecision (np.4932 albo 30000) i tak na maksa jest 4932cyfr teraz operacje mnożenia dzielenia reszty z fmodl (a,b); albo sqrtl(a); z <math.h> to działa liczy nawet na tak dużych liczbach a odejmowanie i dodawanie nie działa dlatego napisałem funkcję. I liczy poprawnie sprawdzaliście w ogóle?

edytowany 1x, ostatnio: ŁF
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:4 minuty
1

Ani double, ani nawet long double tam gdzie jest obsługiwany, nie nadają się do twoich działań na liczbach 4932-cyfrowych.
Są specjalne biblioteki do dzałań na wielkich liczbach.

RE
  • Rejestracja:około 13 lat
  • Ostatnio:ponad 5 lat
  • Postów:8
0

Wiem już chyba pisałem dobra jest ta biblioteka BOOST będę musiał się nauczyć obsługi długich liczb i programowania wielowątkowego bo mam 8rdzeni a wszystko mi na jednym idzie

Na razie jednak pobawie się na tym long double tak że jak ktoś chce jeszcze te dodawanie co dziś napisze to wstawie kodzik może się komuś kiedyś przyda

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
4

@Rebus wyjaśnię ci to łopatologicznie:
Liczba 4 bitowa ma 4 "miejsca" w które możesz wstawić 0 albo 1. To znaczy że możesz mieć
0001
0010
0011
...
1110
1111
Takich różnych możliwości jest dokładnie 24 = 16 (możesz policzyć jeśli nie wierzysz!)
To znaczy ze za pomocą 4 bitów możesz przedstawić 16 różnych liczb i ani jednej więcej, bo po prostu wyczerpałeś wszystkie możliwe opcje.
Liczba 64 bitowa działa dokładnie tak samo i może przedstawić 264 różnych liczb i ani jednej więcej.
Widzisz chyba że wynika z tego że nie da się w takim razie przechować tam liczb o długości 5000 cyfr dziesiętnych, skoro masz raptem "miejsce" na 64 cyfry binarne...


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
0

No ok to rozumiem 12 bajtów ma long double tak czyli 12*8bitów czyli wychodz 2^96 tak czyli jak się można domyślać ten setprecision () coś na bank musi manipulować zmieniać może dynamicznie (czy jakoś nie wiem) w zależności od potrzeb wielkość bitów tego typu napisze te dodawanie i przykłady z dodawaniem odejmowaniem i jak ktoś myśli że to nie możliwe to sobie będzie mógł sam sprawdzić czy do liczby która ma np te 4932cyfry nie uda się dodać czy odjąć jakiejś liczby i wyświetlić wynik wyświetlając long double.

hauleth
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:18 dni
1

Nie. setprecision działa inaczej. Wyobraź sobie, że w gazecie piszą, że wyremontowali drogę za 14 mln złotych polskich nowych. Zajefajnie. Ale idziesz na miejsce i stoi tam taka blacha, że dofinansowano to cuś ze środków unijnych i jest tam napisane, że kosztowało to 13 783 653,53 złotych polskich nowych. Ktoś coś tutaj kręci, czyż nie? Otóż istnieje coś takiego jak precyzja wyświetlania i tym właśnie jest setprecision.

No bardziej łopatologicznie wytłumaczyć chyba już nie można.


edytowany 1x, ostatnio: hauleth
kq
a jak ustawisz setprecision(37), to się dowiesz, że wyremontowano za 13783653.52999999932944774627685546875zł ;)
hauleth
Poprawiłem trochę kwotę, ale ideę wciąż oddaje.
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
4

@winerfresh ale to autorowi nadal nie wyjaśnia czemu możesz mieć precyzje większą niż zakres typu liczbowego ;P
@Rebus wyobraź sobie że jesteś w stanie pamiętać tylko 5 cyfr i liczbę zer danej liczby. Więc możesz zapamiętać liczbę 123450000... niezależnie od tego ile będzie miała zer, ale liczby 123456 już nie zapamiętasz i będzie to dla ciebie po prostu 123450.
Teraz wyobraź sobie że mówie ci że coś kosztuje 12345zł ale chce żebyś wypisał to na 10 cyfrach, więc wypisujesz mi 12345.00000. A teraz mówie ci że coś kosztuje 1234500000 i że kupujesz do tego coś za 1zł. To by znaczyło że łączny koszt to 1234500001, ale możesz zapamiętać tylko 5 cyfr i zapamiętujesz te "ważniejsze" więc dla ciebie 1234500000 + 1 = 1234500000. Ale gdybym poprosił cię o wypisanie tego na 15 cyfrach to bez problemu podasz mi 1234500000.00000
Rozumiesz więc że ta "precyzja" to nie jest do końca tak....


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:4 minuty
0

Ilość bitów liczby determinuje ile różnych liczb można na tylu bitach zapisać, ale to nic nie mówi o tym, jakie to są liczby.
To zależy tylko od przyjętej konwencji, interpretacji tych bitów.

Przykładowo, na 4 bitach można zapisać szesnaście różnych wartości:
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
jeśli przyjmiemy, że są to liczby całkowite bez znaku, to przyjmują one kolejno wartości:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
jeśli to jest liczba ze znakiem w kodowaniu uzupełnieniowym do 2, znaczenie kolejnych liczb będzie takie:
0 1 2 3 4 5 6 7 -8 -7 -6 -5 -4 -3 -2 -1
oba formaty liczb są „precyzyjne”, ale różnią się zakresem: 0..15 albo -8..7

Liczby zmiennoprzecinkowe (float, double, long double) zapisywane są inaczej. Poczytaj jak.
Istotne jest, że mają określoną liczbę cyfr znaczących. Im mniejsza liczba, tym zapis jest precyzyjniejszy.
Na przykład mając 3 cyfry znaczące można zapisać 1,23 albo 1,24, więc „precyzja” wynosi tutaj 0,01.
Ale już różnica między 424000 a 425000 wynosi cały 1000, a to byłyby „kolejne”, sąsiadujące liczby przy takim zapisie.

edytowany 2x, ostatnio: Azarien
0

Ok no nic macie racje to nie działa nie liczy poprawnie co do jedności tu jest jak ktoś chce poczytać po angielsku: http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
:/ zmylił mnie ten filmik na youtube co wcześniej wstawiłem koleś wyliczał kolejne wyrazy ciągu fibonacciego i mówił że to jest co do jedności /:

KA
huhh ciesz się z fejm tematu. na ~6 stron dawno nie widziałam tutaj takiego ;]
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)