stoper

K1
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:11
0

Witam, mógłby mi ktoś pomóc zrobić najprostszy możliwy stoper? Mam zadanie, że ma on odmierzać czas biegu zawodnika, więc zakładam że musi się zatrzymać na życzenie użytkownika. Jestem zielona w temacie programowania, a czas goni. Wiem, że pewnie trzeba będzie użyć funkcji time ale nie mam pojęcia nawet od czego zacząć.

several
  • Rejestracja:ponad 15 lat
  • Ostatnio:około godziny
2

edytowany 1x, ostatnio: several
K1
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:11
0

ja wiem, że są ksiązki, ale nie naucze sie tego w 3 dni (chociaz probuje), mam ten przedmiot na studiach, a przez obecna sytuacje nie odbywaja sie zadne zajecia, jedynie rzucone zadania, projekty i "radzcie sobie sami", dajac tydzien na zostanie super mistrzami c++

DR
Chyba nie rozumiesz co znaczy "studiować"
katakrowa
  • Rejestracja:około 10 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Chorzów
  • Postów:1670
2

Wystarczy chcieć:

https://www.google.com/search?q=c%2B%2B+odliczanie+czasu

a jak się nie chce to uż na to nie ma rady...

radźcie sobie sami.

Na tym polegają studia. Studia to nie przedszkole. A odliczanie czasu w c++ to jeszcze żadne mistrzostwo a nawet nie wystarczająca podstawa.

p.s.
czy to kolejny "student" oczekujący, że wykładowca magiczną pałeczką przeniesie wiedzę do główki?


Projektowanie i programowanie. Hobbystycznie elektronika i audio oszołom.
edytowany 5x, ostatnio: katakrowa
CZ
Może i nie ale za to mają płacone Ci profesorowie żeby studentom pomagać.
katakrowa
Jest pewien minimalny poziom od którego pomoc może być udzielona. Poniżej tego poziomu należy się OPR!
plx211
  • Rejestracja:około 11 lat
  • Ostatnio:3 miesiące
  • Postów:181
6
  1. Pobierasz czas przy pomocy std::chrono
  2. Tworzysz pętlę która przyjmuje input dopóki nie zostanie wprowadzony konkretny znak (np. q) bądź fraza (np. stop)
  3. Pobierasz czas przy pomocy std::chrono
  4. Obliczasz czas trwania poprzez odjęcie czasu z pkt 1 od czasu z pkt 3
  5. Wyświetlasz czas obliczony w pkt. 4

Wczytywanie => https://en.cppreference.com/w/cpp/io/cin
std::chrono => https://en.cppreference.com/w/cpp/chrono
Wyświetlanie => https://en.cppreference.com/w/cpp/io/cout

Koniec prost stoper skończony :)

edytowany 2x, ostatnio: plx211
koszalek-opalek
  • Rejestracja:około 9 lat
  • Ostatnio:około 2 lata
1
katakrowa napisał(a):

radźcie sobie sami.

Na tym polegają studia. Studia to nie przedszkole. A odliczanie czasu w c++ to jeszcze żadne mistrzostwo a nawet nie wystarczająca podstawa.

p.s.
czy to kolejny "student" oczekujący, że wykładowca magiczną pałeczką przeniesie wiedzę do główki?

@katakrowa: Niby masz rację, ale bez przesady -- jakieś zajęcia/konsultacje (w formie zdalnej) powinny się odbyć... Inaczej to jest olewanie studenta i tyle.
@koszyk1: Co to za studia???

katakrowa
Co to za studia?? - widząc kłopoty autora z c++ to chyba kulturoznawstwo.
plx211
@katakrowa: zdziwił byś się :), znam osobę po kulturoznawstwie która dużo lepiej ogarniała C++ (oczywiście mówię o entry level) niż studenci IT ;)
katakrowa
Też takich znam. Chodzi o to, że temu kierunkowi do C++ jest daleko.
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:2 minuty
  • Lokalizacja:Szczecin
1

@koszyk1: pokaż co już masz. Chyba nie oczekujesz, że wykonamy za kogoś pracę domową?


several
  • Rejestracja:ponad 15 lat
  • Ostatnio:około godziny
4

dajac tydzien na zostanie super mistrzami c++

Nie kłam. Tydzień temu dowiedziałaś się, że będziesz programować na studiach? Przedmiot nazywa się "historia ludów pierwotncyh", że to dla Ciebie takie zaskoczenie? Zadanie wymaga bardzo podstawowej znajomości języka, osoba która programowała w czymkolwiek wcześniej poradzi sobie z tym w jeden wieczór. Dla osoby całkowie zielonej tydzień to wystarczająca ilość czasu.


several
@katakrowa: Załapkowałeś mój poprzedni post, który usunąłem niechcący gdy chciałem kliknąć "Edytuj" by poprawić literówkę. Daję tylko komentarz, żebyś się nie głowił co się stało :D
K1
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:11
0

jakbym nie chciala to bym nie pytala jak to zrobic, oczywiscie wcale nie wpisalam w google jak odliczac czas, teraz juz wszystko jasne, dzieki;))
a tak powaznie to dla mnie to jest czarna magia i to w ogole nie ma sensu, jak mam to zlozyc w calosc zeby po prostu ten czas sie odliczal po wlaczeniu i zatrzymywal jesli sie cos nacisnie...

PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
2
koszyk1 napisał(a):

Witam, mógłby mi ktoś pomóc zrobić najprostszy możliwy stoper?

Skoro chcesz pomocy a nie wyręczania, to pokaż co masz zrobione. Ktoś mógłby cię wyręczyć, ale na tym forum z reguły nie chcemy tak robić. Idąc na studia trzeba mieć świadomość, że będą zaliczenia.


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
K1
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:11
0

Skąd w niektórych z was jest tyle jadu, jezu ludzie, nie każdy jest i chce być świetny w programowaniu:)
Studiuje matematykę (już widzę fale wiadomości, że to przecież jest związane z programowaniem - ja o tym wiem, gdyby zajęcia odbywały się normalnie, pewnie więcej bym z nich wyniosła), przedmiot ten zaczął się w tym semestrze, więc mieliśmy kilka zajęć, po których umiem napisać Hello world i zrobić równanie kwadratowe w waszym wielbionym c++. Teraz, gdy zajęcia są online (a raczej ich nie ma) dostajemy zadania do wykonania, z tego przedmiotu akurat bez żadnego wyjaśnienia co i jak. Próbuje się sama uczyć z jakimiś kursami na yt, rozumiem już niektóre pętle, czy funkcje ale jest to bardzo mało, w porównaniu z tym, co jest wymagane. Dlatego pytam o ten głupi stoper.

P.S: Nie no, myślałam, że na studiach to się nic nie robi i zdaje. Dzięki za uświadomienie, że to nie przedszkole. I jeśli według niektórych studia powinny wyglądać tak, że przychodzisz, dostajesz zagadnienia i radzisz sobie ze wszystkim sam, to życzę powodzenia waszym dzieciom w ich przyszłej edukacji.

PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
2
koszyk1 napisał(a):

Skąd w niektórych z was jest tyle jadu, jezu ludzie, nie każdy jest i chce być świetny w programowaniu:)

Akurat w tym wątku jeszcze nie ma jadu. "nie każdy jest i chce być świetny w programowaniu" - powiedz to prowadzącemu zajęcia, nie nam. Jak dla mnie przychodzisz na forum, chcesz czegoś od ludzi i jeszcze na nas narzekasz. Lubię pomagać, ale bez przesady.


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
plx211
  • Rejestracja:około 11 lat
  • Ostatnio:3 miesiące
  • Postów:181
3

@koszyk1:
Po prostu post który napisałeś przypomina X innych w których konkretne osoby liczą tylko na gotowca, odniesienie wiele osób do pomocy mocno się zmienia wraz z wstawieniem choćby kawałka kodu ;)
Ode mnie dostałeś gotową instrukcję co masz zrobić, jedyne co musisz to przepisać to na C++.
Dostałeś od @several link gdzie możesz znaleźć książki w których mógł byś doczytać o pętlach, wprowadzaniu i wyprowadzaniu danych do/z programy.
Owszem, istnieje szansa że nasz wielbiony c++ ci się nie przyda (poza tym pisząc w kategorii C++ powinieneś się spodziewać fanów :) ), ale już sama umiejętność programowania (choćby żeby w przyszłości normalnie operować w Fortranie, matlabu bądź wolframie) i o zgrozo myślenia (w twoim problemie wymagane jest minimalne) już ci się może przydać.

Dlatego proponuję ci takie rozwiązanie:
Spróbuj zaimplementować to co wcześniej napisałem, jak staniesz na czymś to odpowiedz tutaj, a my ci podamy źródło do materiału gdzie uzyskasz wiedze.
Pamiętaj także że sarkazm źle wpływa na chęć pomocy z naszej strony ;)

K1
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:11
0

No właśnie, jeszcze to dobre słowo. Chyba to forum jest przeznaczone również do tego, by prosić o pomoc, a dostałam jedną odpowiedź, która może się do czegoś przydać i którą sprawdzę, reszta to niepotrzebne komentarze. I nie narzekam na nikogo, ale jak ktoś odpowiada mi w sposób, jakby zapomniał, że sam kiedyś był na starcie z tym tematem, to dziękuje bardzo.

kq
Na razie pokazana przez Ciebie praca własna to 0. To nam przeszkadza, bo tematów cwaniaków "wykonajcie mi to za mnie" jest na pęczki.
K1
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:11
0
plx211 napisał(a):

@koszyk1:
Po prostu post który napisałeś przypomina X innych w których konkretne osoby liczą tylko na gotowca, odniesienie wiele osób do pomocy mocno się zmienia wraz z wstawieniem choćby kawałka kodu ;)
Ode mnie dostałeś gotową instrukcję co masz zrobić, jedyne co musisz to przepisać to na C++.
Dostałeś od @several link gdzie możesz znaleźć książki w których mógł byś doczytać o pętlach, wprowadzaniu i wyprowadzaniu danych do/z programy.
Owszem, istnieje szansa że nasz wielbiony c++ ci się nie przyda (poza tym pisząc w kategorii C++ powinieneś się spodziewać fanów :) ), ale już sama umiejętność programowania (choćby żeby w przyszłości normalnie operować w Fortranie, matlabu bądź wolframie) i o zgrozo myślenia (w twoim problemie wymagane jest minimalne) już ci się może przydać.

Dlatego proponuję ci takie rozwiązanie:
Spróbuj zaimplementować to co wcześniej napisałem, jak staniesz na czymś to odpowiedz tutaj, a my ci podamy źródło do materiału gdzie uzyskasz wiedze.
Pamiętaj także że sarkazm źle wpływa na chęć pomocy z naszej strony ;)

Postaram się, dziękuje bardzo, może ja też przesadzam, ale dla mnie to trudna sytuacja i jestem powoli tym załamana

PerlMonk
Uwierz mi, że nie tylko dla Ciebie. Większość osób nawet nie ma odwagi się do tego przyznać.
K1
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:11
0

``Więc po wielu próbach, błędach i łzach mam coś takiego i trzy pytanka (albo i więcej)
Czy ten czas odlicza się poprawnie? Czy czyszczenie ekranu z clear jest dobrze zrobione? Dlaczego kbhit nie działa? (chciałam, żeby zatrzymało się po wciśnięciu p i znowu zaczęło działać po wciśnięciu r) Czy można z tego kodu coś usunąć żeby wyglądał estetyczniej? (bo może coś jest niepotrzebne, a ja o tym nie wiem...)
[code]

#include <iomanip>
#include <iostream>
#include <stdlib.h>
#include <unistd.h>
#include <ctime>
#include <cstdlib>
#include <conio.h>
using namespace std;

int hours = 0;
int minutes = 0;
int seconds = 0;

void displayClock()
{

void clear_screen()
;std::system("cls");



cout << setfill( ' ' ) << setw( 55 ) << "         STOPER         \n";
cout << setfill( ' ' ) << setw( 55 ) << " --------------------------\n";
cout << setfill( ' ' ) << setw( 29 );
cout << "| " << setfill( '0' ) << setw( 2 ) << hours << " hrs | ";
cout << setfill( '0' ) << setw( 2 ) << minutes << " min | ";
cout << setfill( '0' ) << setw( 2 ) << seconds << " sec |" << endl;
cout << setfill( ' ' ) << setw( 55 ) << " --------------------------\n";

}

void timer()
{

while( true ) {
  time_t sekundy = time( 0 );
    displayClock();
    
    sleep( 1 );
  
    seconds++;
   
  
    if( seconds == 60 ) {
      
      
        minutes++;
      
      
        if( minutes == 60 ) {
          
          
            hours++;
            minutes = 0;
        }
        seconds = 0;
    }
}

}

int main()
{

timer();
{


        if(kbhit()){
        auto got=getch();
        if(got=='p'||got=='P'){
            cout<<"PAUSED, R to resume.\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";
            do auto got=getch(); while(got!='r'&&got!='R');

}
}
}
return 0;
}

[/code]

edytowany 1x, ostatnio: koszyk1
PerlMonk
Uwaga odnośnie wklejania kodu. Cały kod powinien być umieszczony pomiędzy znacznikami formatowania.
TomaszLiMoon
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 13 godzin
  • Postów:530
1

Dlaczego kbhit nie działa?

Bo blokujesz sobie główny wątek w funkcji timer().

Pętla:

Kopiuj
while( true ) 
{
  .....
}

nigdy się nie skończy (*).

(*) Chyba że sam zamkniesz konsolę, wyłączysz komputer lub zabraknie prądu.

TomaszLiMoon
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 13 godzin
  • Postów:530
0

Jeżeli chcesz aby w trakcie odmierzania czasu, można było w miarę bezproblemowo obsługiwać wczytywanie danych z klawiatury, możesz wykorzystać wątki, tak jak to jest zrobione na poniższym przykładzie, działającym tylko pod windowsem.

Kopiuj
#include <conio.h>
#include <stdio.h>
#include <iomanip>
#include <iostream>
#include <chrono>
#include <thread>
#include <memory>
#include <atomic>

using namespace std;

class CurrentTime
{
    int hours {};
    int minutes {};
    int seconds {};

    atomic<bool> pauseflag {false};
    atomic<bool> endflag {false};

    void tick()
    {
        ++seconds;
        if( seconds==60 ) { ++minutes ; seconds = 0; }
        if( minutes==60 ) { ++hours   ; minutes = 0; }
    }

    void display()
    {
        system("cls");

        cout << setfill( ' ' ) << setw( 55 ) << "         STOPER         \n";
        cout << setfill( ' ' ) << setw( 55 ) << " --------------------------\n";
        cout << setfill( ' ' ) << setw( 29 );
        cout << "| " << setfill( '0' ) << setw( 2 ) << hours << " hrs | ";
        cout << setfill( '0' ) << setw( 2 ) << minutes << " min | ";
        cout << setfill( '0' ) << setw( 2 ) << seconds << " sec |" << endl;
        cout << setfill( ' ' ) << setw( 55 ) << " --------------------------\n";
    }

    void run()
    {
        while( endflag.load() == false )
        {
          if( pauseflag.load() == false )
          {
              display();
              tick();
              this_thread::sleep_for(chrono::seconds(1));
          }
        }
    }

public:

    void pause()  { pauseflag.store(true);  }
    void resume() { pauseflag.store(false); }
    void end()    { endflag.store(true);    }

    thread start()
    {
        return thread( &CurrentTime::run , this );
    }
};

int main()
{
    auto timer = make_unique<CurrentTime>();
    auto thread = timer->start();

    char sign {};   
    while( sign != 'e' )
    {
        if( _kbhit() ) sign = _getch();
        if( sign == 'p' ) timer->pause();
        if( sign == 'r' ) timer->resume();
        if( sign == 'e' ) timer->end();
    }

    thread.join();

    return 0;
}
edytowany 3x, ostatnio: TomaszLiMoon
K1
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:11
0

Potrzebuję chyba jakiegoś prostszego sposobu..

TomaszLiMoon
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 13 godzin
  • Postów:530
0

Można prościej.

Kopiuj
int main()
{ 
    bool ispause {false};
    auto tzero {chrono::system_clock::to_time_t(chrono::system_clock::now())};
    auto pause {chrono::system_clock::now()};
    char sign {};

    while( sign != 'e' )
    {
        if( !ispause )
        {
            auto time = chrono::system_clock::to_time_t(chrono::system_clock::now()) - tzero;
            system("cls");
            cout << put_time(gmtime(&time),"%H %M %S");
            this_thread::sleep_for(chrono::seconds(1));
        }
        if( _kbhit() ) sign = _getch();
        if( sign == 'p' )
        {
            pause = chrono::system_clock::now(); ispause = true; sign = ' ';
        }
        if( sign == 'r' )
        {
            tzero += (chrono::system_clock::to_time_t(chrono::system_clock::now())-chrono::system_clock::to_time_t(pause)); sign = ' ';
            ispause = false;
        }

    }

    return 0;
}
K1
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:11
0

Okej, ale troszeczkę pozmieniałam na górze i nadal coś jest nie tak :(

Kopiuj
#include <iomanip>
#include <iostream>
#include <stdlib.h>
#include <unistd.h>
#include <ctime>
#include <cstdlib>
#include <chrono>

using namespace std;
 
int hours = 0;
int minutes = 0;
int seconds = 0;
 
void displayClock()
{
   
    void clear_screen();
    std::system("cls");
 
   
    cout << setfill( ' ' ) << setw( 55 ) << "         STOPER         \n";
    cout << setfill( ' ' ) << setw( 55 ) << " --------------------------\n";
    cout << setfill( ' ' ) << setw( 29 );
    cout << "| " << setfill( '0' ) << setw( 2 ) << hours << " hrs | ";
    cout << setfill( '0' ) << setw( 2 ) << minutes << " min | ";
    cout << setfill( '0' ) << setw( 2 ) << seconds << " sec |" << endl;
    cout << setfill( ' ' ) << setw( 55 ) << " --------------------------\n";
}
 
void timer()
{
   
{
    auto startTime = std::chrono::system_clock::now();
     
    while (true) {
        displayClock();
        sleep(1);
        auto currentTime = std::chrono::system_clock::now();
        seconds = std::chrono::duration<double>(currentTime - startTime).count();
        hours = seconds / 3600;
        seconds %= 3600;
        minutes = seconds / 60;
        seconds %= 60;
    }
}
}     
     
        
 

int main()
{
bool ispause {false};
    auto tzero {chrono::system_clock::to_time_t(chrono::system_clock::now())};
    auto pause {chrono::system_clock::now()};
    char sign {};

    while( sign != 'e' )
    {
        if( !ispause )
        {
            auto time = chrono::system_clock::to_time_t(chrono::system_clock::now()) - tzero;
            system("cls");
            cout << put_time(gmtime(&time),"%H %M %S");
            this_thread::sleep_for(chrono::seconds(1));
        }
        if( _kbhit() ) sign = _getch();
        if( sign == 'p' )
        {
            pause = chrono::system_clock::now(); ispause = true; sign = ' ';
        }
        if( sign == 'r' )
        {
            tzero += (chrono::system_clock::to_time_t(chrono::system_clock::now())-chrono::system_clock::to_time_t(pause)); sign = ' ';
            ispause = false;
        }
    }
}


    timer();
    
    return 0;
}
enedil
  • Rejestracja:ponad 11 lat
  • Ostatnio:2 dni
  • Postów:1027
1

Ok, no to ważna lekcja, jak coś nie działa, to bynajmniej nie jest zadowalające nie powiedzieć co.

K1
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:11
0

Mój błąd, chodzi mi o końcówkę kodu, czyli zatrzymywanie mojego stopera, przed funkcją int main

enedil
No ale w dalszym ciągu nie mówisz, co jest źle (mówisz zaledwie gdzie jest coś źle).
K1
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:11
0

main.cpp:63:13: error: ‘this_thread’ has not been declared
this_thread::sleep_for(chrono::seconds(1));
^~~~~~~~~~~
main.cpp:65:20: error: ‘_kbhit’ was not declared in this scope
if( _kbhit() ) sign = _getch();

takie błędy się pojawiają....

plx211
  • Rejestracja:około 11 lat
  • Ostatnio:3 miesiące
  • Postów:181
0

main.cpp:63:13: error: ‘this_thread’ has not been declared
this_thread::sleep_for(chrono::seconds(1));

brakuje std:: lub #include <thread>
https://en.cppreference.com/w/cpp/header/thread

main.cpp:65:20: error: ‘_kbhit’ was not declared in this scope
if( _kbhit() ) sign = _getch();

znów zapewne brakuje includa
https://docs.microsoft.com/pl-pl/cpp/c-runtime-library/reference/kbhit?view=vs-2019

BO
  • Rejestracja:około 6 lat
  • Ostatnio:około 7 godzin
  • Postów:214
0

W ogóle nie czytasz co ludzie do ciebie piszą.

Kopiuj
while (true)

Już była informacja ,że taka pętla blokuje główny wątek a ty dalej jej używasz.

Kopiuj
 sleep(1);

Ta linia powoduje uśpienie na 1 ms nie na 1s. Ogólnie to funkcja stoper jest ci w tym momencie zbędna.
A co do błędu zapewne brakuje ci #include <conio.h>

edytowany 2x, ostatnio: Botek
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)