Delphi kłopot z mnożeniem//średnia ważona

Delphi kłopot z mnożeniem//średnia ważona
GR
  • Rejestracja:około 12 lat
  • Ostatnio:około 11 lat
  • Postów:5
0
Kopiuj
program project1;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes, SysUtils, CustApp
  { you can add units after this };

type

  { TMyApplication }

  TMyApplication = class(TCustomApplication)
  protected
    procedure DoRun; override;
  public
  end;

{ TMyApplication }

procedure TMyApplication.DoRun;
var
  ErrorMsg: String;
  s,k,r,i,waga_spr,waga_kart,waga_reszta:Integer;
  a,b,c,wynikspr,wynikkart,wynikreszta:String;
  srednia_wazona:Real;
  Spr:array of String;
  Kart:array of String;
  Reszta:array of String;
begin
  writeln('Program Sredna Wazona by Gromo'); writeln();readln();
  writeln('Podaj liczbe ocen o wadze 5');
  readln(s);
  SetLength(Spr, s);
  for i:=1 to s do
  begin
       writeln('- ');
       readln(a);
       Spr[i]:=a;
  end;
  readln();
  writeln('Podaj liczbe ocen o wadze 3');
  readln(k);
  SetLength(Kart, k);
  for i:=1 to k do
  begin
       writeln('- ');
       readln(b);
       Kart[i]:=b;
  end;
  writeln('Podaj liczbe ocen o wadze 1');
  readln(r);
  SetLength(Reszta, r);
  for i:=1 to r do
  begin
       writeln('- ');
       readln(c);
       Reszta[i]:=c;
  end;
  for i:=1 to s do
  begin
       wynikspr:=wynikspr+Spr[i];
  end;
  for i:=1 to k do
  begin
       wynikkart:=wynikkart+Kart[i];
  end;
  for i:=1 to r do
  begin
       wynikreszta:=wynikreszta+Reszta[i];
  end;
  waga_spr:=5*s;
  waga_kart:=3*k;
  waga_reszta:=1*r;
  srednia_wazona:=(wynikspr*5+wynikkart*3+wynikreszta+1)/(waga_spr+waga_kart+waga_reszta);
  writeln('Twoja srednia wazona to:');
  writeln(srednia_wazona);
  end;


  readln();
  Terminate;
end;

var
  Application: TMyApplication;
begin
  Application:=TMyApplication.Create(nil);
  Application.Title:='My Application';
  Application.Run;
  Application.Free;
end.
 

Otóż postanowiłem zacząć moją przygodę z programowaniem. Mam już za sobą pierwszy kontakt, jednak mam tak kiepskiego nauczyciela w szkole, że nie jest w stanie mnie prawie niczego nauczyć. Postanowiłem napisać swój pierwszy program liczący średnią ważoną. W Pogrubionym miejscu podczas odpalania programu Lazarus wyświetla mi błąd pod tytułem "Operation "*" is not supported for types "AnsiString" and "ShortInt". Próbowałem konwertować tym za pomocą StrtoInt ale to nic nie daje. Z góry dziękuję za pomoc. Pozdrawiam.

pelsta
Jak zwykle winny nauczyciel w szkole.
flowCRANE
jednak mam tak kiepskiego nauczyciela w szkole, że nie jest w stanie mnie prawie niczego nauczyć. - a może nauczyciel jest w porządku, tylko do Ciebie nic nie dociera? Już ja dobrze znam takie narzekanie;
GR
Jeśli chodzi o nauczyciela to proszę o przeczytanie mojego nowego posta. Szczerze mówiąc to jego programy działają tak samo niezależnie od tego czy są napisane i "odpalane" w notatniku czy w środowiskach Borlanda. A jak dobrze wiemy w notatniku nic nie skompilujemy i nie uruchomimy. Zresztą to nie tylko moje zdanie.
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 miesiące
1

a,b,c,wynikspr,wynikkart,wynikreszta:Integer;
Spr:array of Integer;
Kart:array of Integer;
Reszta:array of Integer;


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
GR
  • Rejestracja:około 12 lat
  • Ostatnio:około 11 lat
  • Postów:5
0

No a teraz kolejne pytanie. Jak pozamieniać typy zmiennych, albo co dopisać, by program zczytywał także takie liczby jak 4,5(odpowiednik 4+)? Nie popełniłem też przypadkiem błędu we wzorze na średnią ważoną? Gdy wpisuję dość niskie wyniki to program oblicza kosmiczne wyniki w okolicach 12 tysięcy.

edytowany 1x, ostatnio: Gromo
babubabu
  • Rejestracja:około 13 lat
  • Ostatnio:2 miesiące
  • Lokalizacja:Łódź
  • Postów:648
0

Zapraszamy do google. Tylko zamiast wpisywać tam swoje pytania wpisz tam: "Pascal kurs od podstaw" ewentualnie "Pascal Tutorial". I od razu uprzedzę Twoje jęczenie jacy to my źli, że nie odpowiadamy Ci na pytanie. W KURSACH ZNAJDZIESZ ODPOWIEDZI.

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
1
Gromo napisał(a):

No a teraz kolejne pytanie. Jak pozamieniać typy zmiennych, albo co dopisać, by program zczytywał także takie liczby jak 4,5(odpowiednik 4+)?

Single, Double, Extended...

Nie popełniłem też przypadkiem błędu we wzorze na średnią ważoną?

Masz w ogóle błąd we wczytywaniu tych danych.
SetLength(Tablica, n); tworzy Ci tablicę o indeksach 0..n-1, a nie 1..n

Btw, możesz napisać po prostu Readln(Tablica[I]);, bez tych pomocniczych zmiennych.


edytowany 2x, ostatnio: Patryk27
flowCRANE
Jak to wszystkich trzeba uczyć liczyć od 0 ;)
babubabu
Kursy kursy kursy. Zaczynałem bawić się pascalem w wieku 11 lat. Ze względu na finanse miałem do dyspozycji komputer o parametrach: procek 386 40MHz 8 MB RAM i brak internetu więc jedyne z czego korzystałem to książka pt. Turbo Pascal od 8 do 88 lat i help turbo pascala oraz help Delphi 1. Dzięki temu że nie miałem neta to nauczyłem się używać helpów i czytać dokumentacje w języku angielskim. Szkoda że teraz ludzie najpierw nie patrzą do książek, helpów i google a dopiero na końcu na forum.
GR
Moim zdaniem rozwiązałem problem z SetLength karząc mu w pętli for zliczać i od 1 a nie od 0.
flowCRANE
To miało być na odwrót, w pętli masz jechać od 0, a rozmiar macierzy ustalić licząc od 0;
GR
Tak też chyba udało mi się zrobić teraz :)
GR
  • Rejestracja:około 12 lat
  • Ostatnio:około 11 lat
  • Postów:5
0

Dzięki za pomoc. A co do tych złośliwych komentarzy. Nauczyciel jest naprawdę kiepski. Programowania uczy u mnie w szkole trzech ludzi. Dwóch jest dobrych. Mój zawsze kazał nam kopiować kod z notatnika, który po poprawnym skopiowaniu(!) nie był w stanie działać. ZERO nauki pisania aplikacji. W sumie to jedyne co sami napisaliśmy to kalkulator na dodawanie, oczywiście nam pomagał, ale to było raczkowanie w Pascalu. A wyobraźcie sobie, że na klasę 16 osobową jestem w trójce najlepszych uczniów z programowania, o ile nie najlepszym i w 90% dostaję piątki. Mój nauczyciel jedyne czego mnie nauczył to odróżniać kod delphi od c++ oraz pisać wszystko z wcięciami i w miarę estetycznie i czysto. Nie wiecie jaki on jest, więc proszę abyście się nie wypowiadali. Ten sam człowiek uczy mnie i programowania i specjalizacji(AutoCAD). Na specjalizacji mam wrażenie, że wiem więcej niż on. Nie jest w stanie nam nawet pomóc, gdy czegoś nie umiemy(w końcu od tego jest). Każe nam tylko robić jakieś tuby/wałki w 3D, które wcześniej pobrał z internetu. Oczywiście cały wałek w 2D należy przerysować, po już narysowanych liniach, ponieważ nie da się utworzyć z tych już istniejących regionów. Generalnie lekcje z tym człowiekiem to kombinowanie i kombinowanie, bo sam nic nie umie nauczyć. Ale koniec tego offtopu o tym człowieku. Wystarczy mi z nim 6 godzin tygodniowo męki.

Co do programu to może faktycznie jak na nauczyciela i mój poziom zaawansowania to wybrałem trochę zbyt ambitne zadanie. Rozumiem, że popełniłem wiele błędów, ale ja jedynie proszę o drobną pomoc. Czytałem już 5 artykułów o tym, jak zacząć i wiem, że należy czytać kursy/książki. Akurat pisząc ten program wykorzystywałem wiedzę o delphi/pascalu zawartą na tej stronie. Wiem, że potrzeba do programowania cierpliwości, szczególnie na początku. Gdy wyskoczył mi błąd o mnożeniu to tak, szukałem tego w internecie. Jedynie nie skojarzyłem, że to o tablice chodzi. Każdy ma prawo do takiego błędu. Ja RACZKUJĘ i potrzebuję wsparcia. Takie jest moje zdanie. Z pomocy forum skorzystałem w ostateczności.

Dziwię się, że spotkałem się z trochę przykrymi komentarzami.

babubabu
Ja też kiedyś raczkowałem i jakoś sobie poradziłem bez forów i google. A kiedy zaczynałem zabawę w programowanie (początki to skrypty .bat pod dosa, potem język BASIC) to google jeszcze nie istniało :) Więc Ty nie potrzebujesz wsparcia a samozaparcia a to różnica :) Bo to o co zapytałeś to po przeczytaniu ze zrozumieniem pierwszego lepszego kursu można samemu rozwiązać :)
flowCRANE
Ale Ty @babubabu byłeś genialnym dzieckiem, co nie jest dane każdemu ;)
babubabu
Czuję się wyśmiany ;(
flowCRANE
A powinieneś być z tego dumny ;)
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 3 godziny
  • Lokalizacja:Tuchów
  • Postów:12165
1

Nauczyciel jest naprawdę kiepski. Programowania uczy u mnie w szkole trzech ludzi. Dwóch jest dobrych. Mój zawsze kazał nam kopiować kod z notatnika, który po poprawnym skopiowaniu(!) nie był w stanie działać.

Pamiętam, że jak ja chodziłem jeszcze do TI to także miałem nie najlepszego nauczyciela, jednak dzięki nauce na własną rękę i samodzielności nauczyłem się wszystkiego sam; I także kopiowaliśmy kod ze stacji nauczyciela na swoje stanowisko, jednak kody nie działały celowo - należało nanieść odpowiednie poprawki, jednak można to było zrobić jedynie jeśli miało się odpowiednią wiedzę; Może ten Twój nauczyciel nie powiedział Wam tego, ale może coś w ten deseń wykombinował; Natomiast jeśli takie rzeczy dzieją się na co dzień i bez przerwy, to jest to kłopot, który należy rozwiązać z danym nauczycielem, a nie z forumowiczami z całej Polski;

W sumie to jedyne co sami napisaliśmy to kalkulator na dodawanie, oczywiście nam pomagał, ale to było raczkowanie w Pascalu.

No dobrze, ale jestem ciekaw, czy jeśli uczylibyście się jak należy i posiadali odpowiednią na daną chwilę wiedzę to czy napisalibyście taki program sami - możliwe, że po prostu brakowało Wam wiedzy i nauczyciel musiał Was prowadzić za rękę;

Mój nauczyciel jedyne czego mnie nauczył to odróżniać kod delphi od c++ oraz pisać wszystko z wcięciami i w miarę estetycznie i czysto.

A to ciekawe, bo u nas na zajęciach uczyliśmy się korzystania ze zmiennych/stałych, różnych instrukcji itd., ale nigdy nie była poruszana sprawa formatowania kodu; Na jedno to dobrze, ale uczyć także trzeba się samemu, a jeśli się czegoś nie zrozumie na zajęciach i z braku czasu czy możliwości nauczyciel nie wyjaśni dokładniej, to tym bardziej trzeba przysiąść w domu; Do tego jednak trzeba chęci;

Na specjalizacji mam wrażenie, że wiem więcej niż on.

A to całkiem możliwe; Ja miałem takie nieszczęście, że pewnego przedmiotu z informatyką związanego uczył mnie nauczyciel po szkole rolniczej z kursem zrobionym pewnie w czasach świetności Comodore czy Atari; Większość klasy wiedziała więcej niż on;

Co do programu to może faktycznie jak na nauczyciela i mój poziom zaawansowania to wybrałem trochę zbyt ambitne zadanie.

To zadanie wcale nie jest trudne - brakuje Ci jednak wiedzy żeby sprawnie je rozwiązać; Poucz się, a spokojnie napiszesz wszystko sam - bez naszej pomocy;

Gdy wyskoczył mi błąd o mnożeniu to tak, szukałem tego w internecie.

To bardzo dobrze, jednak ilość wyników w wyszukiwarce uzależniona jest on treści zapytania; Zrozumiałbyś problem od razu, jeśli umiałbyś choć trochę język angielski, a ten w programowaniu i ogólnie informatyce jest nieodzowny; Zawsze do dyspozycji masz translatory w internecie, które chętnie pomogą;

Dziwię się, że spotkałem się z trochę przykrymi komentarzami.

A to Cię akurat nie powinno dziwić - tutaj z reguły jak ktoś ma problem z zadaniem ze szkoły czy uczelni to zawsze winny jest nauczyciel czy wykładowca, nigdy pytacz;


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
edytowany 2x, ostatnio: flowCRANE
Patryk27
*reguły; aż w oczy razi.
flowCRANE
Szkoda, że mnie nie... Dzięki ;)
GR
  • Rejestracja:około 12 lat
  • Ostatnio:około 11 lat
  • Postów:5
0

Z angielskiego jestem dobry, ale akurat nie potrafiłem zrozumieć istoty problemu. Jak już w pierwszym poście napisałem, próbowałem konwersji typów, ale to nic nie dawało. W ogóle tego z tablicami nie skojarzyłem.

Co do celowego nie działania kodu, to u mnie wątpię w to, żeby nam tak nauczyciel robił. Sam jest zdziwiony, że program nie działa i nie potrafi go samodzielnie naprawić. Nie raz już przerabialiśmy jakąś funkcję/program na suchym kodzie, bo programu nie dało się odpalić.

No dobrze, ale jestem ciekaw, czy jeśli uczylibyście się jak należy i posiadali odpowiednią na daną chwilę wiedzę to czy napisalibyście taki program sami - możliwe, że po prostu brakowało Wam wiedzy i nauczyciel musiał Was prowadzić za rękę;

Nie mogliśmy wtedy posiadać jakiejkolwiek wiedzy, bo pisaliśmy to w pierwszej klasie. Akurat wtedy był "dobrym" nauczycielem, bo uczył banalnych rzeczy.

A to Cię akurat nie powinno dziwić - tutaj z regóły jak ktoś ma problem z zadaniem ze szkoły czy uczelni to zawsze winny jest nauczyciel czy wykładowca, nigdy pytacz;

Akurat to nie jest moje zadanie do szkoły ani na uczelnię. Nigdy nam nawet takich zadań nie zadawano. Postanowiłem w końcu rozszerzyć swoją wiedzę i zacząć uczyć się na własną rękę programowania, więc wpadłem na pomysł napisania programu dla użytku własnego.

Apropos samego programu, naniosłem poprawki, które polecaliście zrobić, ale dalej program nie liczy średniej tak, jak powinien. Liczby zczytuje chyba prawidłowo, karzę mu spytać o dwie, to bierze dwie. Nigdy więcej mniej. Jednak gdy wpiszę pojedyncze oceny w danych wagach to program się wysypuje przy zamykaniu konsolki dosowej.

Poprawiony kod:

Kopiuj
program project1;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes, SysUtils, CustApp
  { you can add units after this };

type

  { TMyApplication }

  TMyApplication = class(TCustomApplication)
  protected
    procedure DoRun; override;
  public
  end;

{ TMyApplication }

procedure TMyApplication.DoRun;
var
  ErrorMsg: String;
  s,k,r,i,waga_spr,waga_kart,waga_reszta:Integer;
  wynikspr,wynikkart,wynikreszta:Integer;
  srednia_wazona:Real;
  Spr:array of Integer;
  Kart:array of Integer;
  Reszta:array of Integer;
begin
  writeln('Program Sredna Wazona by Gromo'); writeln();readln();
  writeln('Podaj liczbe ocen o wadze 5');
  readln(s);
  SetLength(Spr, s);
  for i:=1 to s do
  begin
       writeln('- ');
       readln(Spr[i]);
  end;
  readln();
  writeln('Podaj liczbe ocen o wadze 3');
  readln(k);
  SetLength(Kart, k);
  for i:=1 to k do
  begin
       writeln('- ');
       readln(Kart[i]);
  end;
  readln();
  writeln('Podaj liczbe ocen o wadze 1');
  readln(r);
  SetLength(Reszta, r);
  for i:=1 to r do
  begin
       writeln('- ');
       readln(Reszta[i]);
  end;
  for i:=1 to s do
  begin
       inc(wynikspr,Spr[i]);
  end;
  for i:=1 to k do
  begin
       inc(wynikkart,Kart[i]);
  end;
  for i:=1 to r do
  begin
       inc(wynikreszta,Reszta[i]);
  end;
  waga_spr:=5*s;
  waga_kart:=3*k;
  waga_reszta:=1*r;
  srednia_wazona:=(wynikspr*5+wynikkart*3+wynikreszta+1)/(waga_spr+waga_kart+waga_reszta);
  writeln('Twoja srednia wazona to:');
  writeln(srednia_wazona:2:2);



  readln();
  Terminate;
end;

var
  Application: TMyApplication;
begin
  Application:=TMyApplication.Create(nil);
  Application.Title:='My Application';
  Application.Run;
  Application.Free;
end.
edytowany 1x, ostatnio: Gromo
flowCRANE
Skoro naniosłeś poprawki w kodzie i dalej nie działa to pokaż ten zmodyfikowany kod;
GR
  • Rejestracja:około 12 lat
  • Ostatnio:około 11 lat
  • Postów:5
0

To, co tutaj wpisałem to kod poprawiony o porady kolegów powyżej. Jeszcze w pętlach for liczacych wynikspr,wynikkart i wynikreszta zamiast

Kopiuj
for i=1 to s do

dałem for i=0 to s-1 do

Kopiuj
. Myślałem, że to rozwiąże problem z obliczaniem średniej ważone, ale się pomyliłem. Z głowy mi już paruje ale nie umiem się doszukać błędu powodującego wyniki rzędu 12 tysięcy i wyżej w ostatecznym wyniku.
GR
Jedyne gdzie mogę znaleźć błąd to pętle na sumowanie ocen lub sam wzór na srednia_wazona.
_13th_Dragon
ale te zmiany musisz zrobić w 6-ciu miejscach.
GR
No właśnie wpierw zmieniłem tylko te pętelki na sumowanie ocen. Teraz po zmianie na i=0 to n-1 także w pętlach wyciągających ode mnie dane program nie wysypuje się już po wpisaniu tylko 1 oceny o danej wadze, tak jak to miało miejsce wcześniej. Sama średnia ważona dalej wyskakuje z kosmosu. Ale przynajmniej już mniej więcej wiem, gdzie to jest. Wezmę się za to jutro, bo dziś już jest późno i nie myślę tak jak powinienem ze zmęczenia. P.S. dzięki za PODSUWANIE rozwiązania a nie podstawienie gotowego rozwiązania pod nos.
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 miesiące
2
Kopiuj
procedure TMyApplication.DoRun;
var I,W,N,V,Nom,Den:Integer;
begin
  Nom:=0;
  Den:=0;
  W:=5;
  while W>0 do
  begin
    writeln('Podaj liczbe ocen o wadze ',W);
    readln(N);
    for i:=1 to N do
    begin
      readln(V);
      Inc(Nom,V*W);
      Inc(Den,W);
    end;
    Dec(W,2);
  end;
  writeln('Twoja srednia wazona to: ',(Nom/Den)2:2);
  readln();
  Terminate;
end;

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
GR
Dzięki wielkie, nie wiedziałem, ze rozwiązanie problemu jest tak proste. Ten program uświadomił mi tylko jak mało wiem, i ile jeszcze muszę się nauczyć. Biorę się za kursy.
Patryk27
@Gromo: możesz znać i całego Object Pascala na pamięć, ale by wpaść na rozwiązanie należy po prostu do problemu podejść z innej strony ;)
GR
No i właśnie tego mi jeszcze brakuje :). Miałem już zamiar pisać połowę kodu od 0, ale podejrzewam, że i tak napisałbym to samo. W każdym razie dzięki za pomoc. Wezmę się za pisanie jakiegoś innego programu, może wrócę do tego i spróbuję sprawić, by był "idiotoodporny", bo ten nawet przy "ocenach" pokroju 20 by to policzył.
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)