Lista - zadanie o więźniach i ich czapkach

Lista - zadanie o więźniach i ich czapkach
L1
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:16
0

witam, na wstepie chce zaznaczyc ze jestem kompletnym laikiem jesli chodzi o programowanie.ucze sie w c++.dostalam zadanie, a w zasadzie zagadke ktora zapewne kazdy zna-mianowicie chodzi o 100 wiezniow i ich czapki, celem jest zostaienie przy zyciu jak najwiekszej ich liczby.zrobilam to na tablicha, ponizej wkleje kod.moze nie jest to profesjonalne, ale dziala i o to mi chodzilo.musze na tej podstawie to samo zadanie zrobic na liscie.nie mam pojecia jak sie za to zabrac.prosze o pomoc napisania programu, ja i tlumaczenie kolejnych czynnosci wykonywanych na listach.

Kopiuj
#include <sstream>
#include <cstdlib>
#include <iostream>
#include <string>
#include<ctime>


using namespace std;

int wypelnienie(int T[100])
 {

 srand ( time(NULL) );
for(int i=0;i<100;i++)
{
T[i]=rand() % 2;
}
for(int i=0;i<100;i++)
cout<<T[i]<<" ";
cout<<endl;
return 0;
 }
 
 int liczando(int T[100])
 {
 	
	 int i=0, j=0;
 	int suma=0, suma1=0;
    int czapki[100];
    
 	for(j=0;j<100;j++)
 	{
 	 suma=suma+T[i];	
 	}
 	
 	if(suma%2==0)
 	czapki[0]=1;
 	else
 	czapki[0]=0;
 	for(i=1;i<100;i++)
 	{
 		suma1=suma-T[i];
 		if(suma1<suma)
 		czapki[i]=1;
 		else
 		czapki[i]=0;
 		suma=suma-T[i];
 	}
 	for(j=0;j<100;j++)
 	{
 		cout<< czapki[j]<<" ";
 	}
 	cout<<endl;
 return 0;
 }
 
 int main()
 {
 	int T[100];
     cout<<"oto wiezniowie "<<endl;
    wypelnienie(T);
    cout<<"ilu przezylo? "<<endl;
	liczando(T);
 	return 0;
 }
edytowany 2x, ostatnio: flowCRANE
somekind
Wstawiaj kod w znaczniki <code>
KA
KA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Warszawa
  • Postów:1683
0

może zbyt mało miałam do czynienia z takimi zadankami, ale ja nie znam. poza tym umieść kod w odpowiednie tagi i pisz jaśniej


PROGRAMY NA ZAMÓWIENIE, ZALICZENIA STUDENCKIE, KONFIGURACJA SERWERÓW, SYSTEMÓW I BAZ DANYCH, STRONY INTERNETOWE, POMOC W PROGRAMOWANIU, POPRAWIENIE I OPTYMALIZACJA APLIKACJI
JAVA, C++, LINUX, WWW, SQL, PYTHON
POSIADAM KOMERCYJNE DOŚWIADCZENIE
TANIO, SZYBKO I PORZĄDNIE
Z KOMENTARZAMI OBJAŚNIAJĄCYMI KOD
PISZ NA PRYWATNĄ WIADOMOŚĆ
CENY JUŻ OD 49,99ZŁ ZA PROGRAM
ZAJMIJ SIĘ TYM CO CIĘ NAPRAWDĘ INTERESUJE!
L1
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:16
0

jestem nowa na tym forum i nie za bardzo wiem jak to roic, z gory przepraszam

L1
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:16
0

Strażnik proponuje dwudziestu więźniom następującą grę:
Więźniowie zostaną ustawieni w rzędzie w ten sposób, że pierwszy nie będzie widział pozostałych, drugi będzie widział tylko pierwszego, trzeci będzie widział tylko pierszych dwóch i tak dalej, ..., ostatni będzie widział pozostałych dziewiętnastu. Ustawionym w rządek więźniom strażnik nałoży na głowy kapelusze, każdy kapelusz będzie czarny lub czerwony. Następnie każdy więzień w rządku, w kolejności od ostatniego do pierwszego, oświadczy jakiego koloru jest jego kapelusz wypowiadając słowo "czarny" lub słowo "czerwony". Każdy więzień będzie słyszał wcześniejsze oświadczenia oraz będzie widział kapelusze więźniów stojących przed nim w rządku. Jakakolwiek inna komunikacja pomiędzy więźniami kończy się natychmiastową egzekucją całej dwudziestki.
Przed grą więźniowie mogą ustalić wspólną strategię, ich celem jest uratowanie jak największej liczby więźniów.
Jaka jest ta optymalna strategia i uratowanie ilu więźniów gwarantuje?

Oto zagadka.

xfin
  • Rejestracja:ponad 11 lat
  • Ostatnio:8 miesięcy
  • Lokalizacja:Genewa
  • Postów:597
0

Brakuje informacji kiiedy więzień jest zabijany - gdy poda zły kolor? Czy gdy ma dany (np. czerwony) kolor na głowie?

Anyway jeśli to ten z błędnym kolorem zginie, ten ostatni może podać kapelusz tego przed nim itd. Zawsze zginie tylko ten ostatni, bo reszta będzia znać kolory swoich kapeluszy od osób stojących za nimi.
Optymalna strategia.

EDIT: chyba, że ostatni akurat trafi i ma ten kolor, który osoba przed nim. Wtedy przeżyje dwudziestu.

edytowany 1x, ostatnio: xfin
0

Kiedyś słyszałem rozwiązanie tej zagadki na zasadzie powiedzenia słów "moja jest czerwona/czarna" jeżeli kolor czapki przed daną osobą jest różny od naszego lub po prostu "czerwona/czarna" jeżeli jest taki sam i wtedy maksymalnie jedna osoba ginęła (ostatnia) ale to tutaj nie pomaga, bo tutaj mogą powiedzieć tylko czerwona/czarna.

xfin napisał(a):

Brakuje informacji kiiedy więzień jest zabijany - gdy poda zły kolor? Czy gdy ma dany (np. czerwony) kolor na głowie?

Anyway jeśli to ten z błędnym kolorem zginie, ten ostatni może podać kapelusz tego przed nim itd. Zawsze zginie tylko ten ostatni, bo reszta będzia znać kolory swoich kapeluszy od osób stojących za nimi.
Optymalna strategia.

No nie, bo jak wiem, że mam czerwoną, a koleś przede mną ma czarną, to mam ratować siebie, czy jego?

xfin
Ano fakt, coś mi się popieprzyło. Poleciałem za szybko z tym łańcuchem - przeżyje conajmniej połowa (co już Wibowit napisał)
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 8 godzin
0

Zadanie określa, że przed zaczęciem wyliczania, nikt nie wie jaki jest kolor jego czapki. Widzi tylko czapki gości z przodu.
Nie ma określonego, kiedy ktoś ginie (jak już xfin zauważył), ale można założyć, że wtedy gdy źle poda kolor swojej czapki.

Można uratować co najmniej dziesięciu więźniów. Ostatni więzień wypowie kolor czapki więźnia z przodu. Następnie ten więzień z przodu powtórzy ten kolor i dzięki temu będzie miał zagwarantowane, że powie dobrze. Następnie proces zostanie powtórzony dla każdej kolejnej pary i z każdej pary zostanie uratowany co najmniej jeden więzień.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 1x, ostatnio: Wibowit
0

Co robi Twoja funkcja liczando?
Nazywaj jakoś logicznie funkcje zmienne, bo ciężko się połapać

datdata
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 7 lat
  • Postów:957
3

Rozwiązanie jest dość proste.

Oznaczamy jeden kolor 1, a drugi 0. Gość, który zaczyna sumuje wszystkie liczby przed nim i podaje wynik modulo 2 (czyli właściwie jest to XOR). Kolejny też liczy tę wartość i w przypadku, gdy jest taka sama to wie, że ma zero, jeśli jest różna to wie, że ma jedynkę. Trzeci i następni robią to samo: liczą sumę następnych modulo 2 (przyjmijmy n), liczą liczbę jedynek wśród wcześniej odpowiadających modulo 2 (przyjmijmy p), przypominają sobie co mówił pierwszy odpowiadający (przyjmijmy x) i na podstawie tego są w stanie ze stuprocentową pewnością określić swój kolor (k):
k+n+p mod 2=x

W najgorszym przypadku ginie tylko pierwszy odpowiadający, w najlepszym nikt.

Mam nadzieję, że nie namieszałem, rozwiazanie na szybko.

EDIT:
Np. dla takiego ciągu 1011101

-Pierwszy mówi 0, bo ma cztery jedynki przed sobą. Umiera.
-Drugi mówi, że 0, bo też ma parzystą liczbę jedynek czyli nie może mieć jedynki.
-Następny ma nieparzystą liczbę jedynek, a poprzednik miał parzystą czyli on ma jedynkę.
-nastepny
-Kolejny ma przed sobą parzystą liczbę jedynek, przed nim była jedna jedynka, a wcałym ciągu od drugiego do ostatniego ma być parzysta liczba jedynek więc ma jedynkę.
etc.


"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects." Robert Heinlein.
edytowany 1x, ostatnio: datdata
L1
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:16
0

wiec tak.po pierwsze nie chodzilo mi o rozwiazanie teoretyczne zagadki bo do tego doszlam.chodzi mi o wykonianie tego na listach.moj algorytm dziala nastepujaco.funkcja wypelnienie wypelnia tablice stuelementowowa randomowo zerami i jedynkami.natomiast funkcja liczando najpierw liczy sume z tych naszych zer i jedynek.nastepnie ustala na tej podstawie czy jest parzysta liczba zer czy jedynek, jesli zer mowi zero jesli jedynek mowi jeden.ten pierwszy wiezien-element tablicy jest do stracenia .nastepnie robie petle ktora bedzie liczy sume1 czy sume kolejnych elementow od wybranego i potem porownuje ja z nasza stara suma.jesli ona sie zmienia znaczy ze dany wiezien musi byc 1 a jesli sie nie zmienia musi on byc zerem.

L1
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:16
0

prosze o pomoc w przeniesieniu tego mojego algorytmu na liste

D5
  • Rejestracja:około 11 lat
  • Ostatnio:ponad 3 lata
  • Postów:13
0

Czy więźniowie wiedzą na początku ile jest czapek każdego koloru?

Shalom
LOL, gdyby wiedzieli to przecież zadanie byłoby idiotycznie proste...
L1
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:16
0

nie wiedza.dobra mam pytnie.wiec jak umiescic w liscie losowo zera i jedynki?

MD
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 8 lat
  • Postów:280
0
Kopiuj
srand(time(NULL));
list <bool> lista;
for(int i=0;i<100;i++)
                 lista.push_back(rand()%2);

Najprościej do zrozumienia najmniej profesjonalnie ;/ ?

edytowany 1x, ostatnio: MoorfoxD
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 12 godzin
  • Lokalizacja:Szczecin
0
laik101 napisał(a):

nie wiedza.dobra mam pytnie.wiec jak umiescic w liscie losowo zera i jedynki?

Pomijając zasadność (a raczej jej brak) użycia listy, możesz to zrobić między innymi za pomocą biblioteki standardowej i std::generate lub std::generate_n, do losowości używając nagłówka <random>:

Kopiuj
	std::mt19937 rd{std::random_device{}()};
	std::uniform_int_distribution<int> gen(0,1);

	list<bool> L1, L2;

	generate_n(back_inserter(L1), 10, bind(gen, ref(rd)));

	L2.resize(10);
	generate(begin(L2), end(L2), bind(gen, ref(rd)));

http://melpon.org/wandbox/permlink/ySbDxtBW9PLFvJsC

rand jest średnio bezpieczny i nie zaleca się jego używania.


edytowany 5x, ostatnio: flowCRANE
datdata
Ten tekst o bezpieczeństwie randa chyba dotyczy zastosowań kryptograficznych, a do tego typu problemów jest wystarczająco losowy.
kq
Zależy co rozumiesz przez "wystarczającą losowość", być może tak, ale nie widzę powodu aby uczyć newbie złych praktyk.
L1
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:16
0

na temat zasadnosci uzycia listy nie bede sie klocic, bo to nie moj pomysl.polecenie z gory;)

a tak łopatologicznie, po kolei jak zaimplementowac, wypelnic wyswietlic po kolei, kod z wyjasnieniem.naprawde nie mialam praktycznie w ogole doczynienie z listami.

flowCRANE
Edytuj swoje posty jeśli chcesz coś dodać, zamiast pisać kolejnych;
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 12 godzin
  • Lokalizacja:Szczecin
0
laik101 napisał(a):

a tak łopatologicznie, po kolei jak zaimplementowac, wypelnic wyswietlic po kolei, kod z wyjasnieniem.naprawde nie mialam praktycznie w ogole doczynienie z listami.
Wypełnienie losowe masz wyżej.

Wyświetlenie jest jeszcze prostsze (zakładam, że masz listę nazwaną L1, tak jak w moim przykładzie wyżej):

Kopiuj
for(bool val : L1){
	cout << val << ", ";
}

Jeśli Twój kompilator nie wspiera C++14 ani nawet C++11, to natychmiast go zmień. Jeśli nie możesz, to jedyną sensowną metodą jest:

Kopiuj
for(list<bool>::const_iterator it = L1.cbegin(), e = L1.cend(); it != e; ++it){
	cout << *it << ", ";
}

L1
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:16
0

a jakie biblioteki beda mi potrzebne?

kq
Biblioteki żadne poza standardową. Jeśli pytasz o include'y to &lt;list&gt;, a do generowania &lt;iterator&gt;,&lt;algorithm&gt; i &lt;random&gt;.
L1
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:16
0

nie rozumiem za bardzo jak to zrobic,jak normalnie implementuje liste i robie po kolei powyzsze to mi jakies dziwne errory wyskakuja w devc++

MD
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 8 lat
  • Postów:280
1

Nie znam się na devc++, ale nie jest on nierozwijany i przez to ma "wbudowany" stary kompilator, który nie obsługuje standardów podanych przez @kq

edytowany 1x, ostatnio: MoorfoxD
kq
Dlatego podałem 2 warianty iteracji po liście, a zmiana kodu w generate_n to tak naprawdę tylko zamiana bind(gen, ref(rd) na rand. Przy czym nie wiemy o którym kodzie @laik101 mówi, bo żadnego nie podał.
MD
Myślę, że mówi o metodzie z pętlą for each bo przy tych umiejętnościach pogubiłby się w iteratorach
kq
Listy inaczej nie przeiterujesz, tam nie ma RandomAccessIteratora, więc "w devie" to praktycznie jedyna metoda.
MD
Mu to powiedz nie mi :P
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 12 godzin
  • Lokalizacja:Szczecin
0
laik101 napisał(a):

nie rozumiem za bardzo jak to zrobic,jak normalnie implementuje liste i robie po kolei powyzsze to mi jakies dziwne errory wyskakuja w devc++
Ty implementujesz listę? Chyba mylisz użycie z implementacją. Dev-cpp to przestarzałe świństwo, którego już nikt nie powinien używać. Chyba, że mowa o wersji orwell, ale i od tego są znacznie lepsze środowiska (Qt Creator, Code Blocks, KDevelop, MSVS...)

A co do errorów, moja szklana kula do października jest nieczynna, musisz podać ich treść oraz kod, który je powoduje :/


MD
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 8 lat
  • Postów:280
0

Myślę, że on implementuje liste i próbuje użyć petli for each. Jeśli zrobiłeś własną liste to:

Kopiuj
srand(time(NULL));
Lista list;
for(int i=0;i<100;i++)
                 list.dodaj(rand()%2);
edytowany 2x, ostatnio: MoorfoxD
L1
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:16
0

prosze o kod tego zadania z wyjasnieniem, bo tak po kawalku nie zrozumiem.a na tym przykladzie chcialabym zrozumiec wykorzystanie i mozliwosci list.z gory badzo dziekuje

0
L1
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:16
0
Kopiuj
for(i=1;i<100;i++)
     {
         suma1=suma-T[i];
         if(suma1<suma)
         czapki[i]=1;
         else
         czapki[i]=0;
         suma=suma-T[i];
     } 

jestem w tym momencie ojego kodu na tablicach.mam w zwiazku z tym pytanie.jak w liscie ustawic poczatkowo iterator w drugim elemencie?

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:3 miesiące
0
Kopiuj
iterator i=lista.begin();
++i;

Ten kod z postu wyżej można zastąpić na:

Kopiuj
for(i=1;i<100;suma-=T[i++]) czapki[i]=(T[i]>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
L1
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:16
0

no dobrze ale mi chodzi o sam ten moment

Kopiuj
for(i=1;i<100;i++)

ja chce to zrobic na liscie ten sposob ze nie zaczne od elementu lista.begin() ale od elementu nastepnego

dodanie znacznika <code class="cpp"> - furious programming

edytowany 1x, ostatnio: flowCRANE
flowCRANE
Wstawiaj kod w znaczniki kolorujące składnię;
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 12 godzin
  • Lokalizacja:Szczecin
2

edytowany 1x, ostatnio: kq
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:3 miesiące
1

jak wyżej lub:

Kopiuj
for(iterator ii=lista.begin(),i=++ii;i!=lista.end();++i)

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
L1
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:16
0
Kopiuj
suma1=suma-T[i];
         if(suma1<suma)
         czapki[i]=1; 

dobra teraz dalej.jak zapisac i-ty element listy?zeby wykonac roznice pomiedzy nim i suma?oraz przypisywac i-tym elementom odpowiednia wartosc?

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)