Dziennik szkolny jako ArrayList

Dziennik szkolny jako ArrayList
M4
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 3 lata
  • Postów:58
0

Cześć. Nie do wiary, że siedziałem nad tym z dwie godziny bo miałem milion problemów. Moglibyście mi pokazać jakie głupie błędy popełniłem?

Kopiuj
 

import java.util.ArrayList;
import java.util.Scanner;

/**
 * Created by Maciej on 2015-10-05.
 */
public class Class {
    public static void main(String[] args) {
        StudentInfo studentInfo = new StudentInfo();
        Scanner scanner = new Scanner(System.in);
        int students;
        String name, fullname;
        System.out.println("Ilu uczniów jest w Twojej klasie?");
        students = scanner.nextInt();
        System.out.println("Dodawaj kolejno uczniów:");
        ArrayList<String> list = new ArrayList<String>(students);
        String details[] = new String[students];
        for(int i = 0; i<students; i++){
            name = scanner.next();
            fullname = scanner.next();
            list.add(name + " " + fullname);
            System.out.println("Uzupelnij dane: (Imie, Nazwisko, Matka, Ojciec, Zachowanie");
            details[i]= new StudentInfo().StudentData(scanner.next(), scanner.next(), scanner.next()+ " "+ scanner.next(), scanner.next());
            System.out.println("Kolejny uczen:");
        }
        for(int i=0; i<students; i++){
            System.out.println(i+1+". "+(String)list.get(i));
        }
        System.out.println("O kim chcesz wyswietlic informacje?");
        int x = scanner.nextInt()-1;
        System.out.println(details[x]);

    }
}
Kopiuj
public class StudentInfo {
    public String StudentData(String n, String f, String b, String p) {
        String studentName = n;
        String studentFullname = f;
        String parents = p;
        String behavior = b;
        return studentName+" "+studentFullname+", "+parents+", "+behavior;

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

Z całą pewnością głupotą było podejście do programowania w stylu faraonowatego maina - rozdziel ten kod ładnie na sensowne klasy i metody.
PS jaki sens ma klasa StudentInfo?


M4
założenie było takie, że ta klasa miała być ala wizytówką, danymi ucznia.
M4
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 3 lata
  • Postów:58
0

To już z czwarta godzina leci, a Ja nadal nie mogę sobie poradzić. Dobry jestem. Moglibyście mi powiedzieć dlaczego setStudent nie chce mi przypisać wartości dla tablicy?

Kopiuj
public class AddStudent {

    public static String data(String n, String f){
        String name=n, fullname=f;
        return name+" "+fullname;
    }

    public static int setStudent(){
        DataInputStream in = new DataInputStream(System.in);
       try{
        int student = in.read();
       return student;}
       catch(Exception e){
           return -1;
       }
    }
    public static void Add(){

        Scanner scanner = new Scanner(System.in);
        System.out.println("Ilu mamy uczni w klasie?");
        ArrayList<String> register = new ArrayList<String>(setStudent());
        for(int i = 0; i<register.size(); i++){
            System.out.println("Wprowadz imie i naziwsko ucznia:");
            data(scanner.next(), scanner.next());
        }
     }
        }
    
 

W sumie to cały czas próbowałem ze scannerem. Na jakimś forum wyszukałem to DataInputStream, choć jeszcze nigdy nie miałem okazji tego używac. Uciekam spać a jutro dalej będę nad tym główkował.

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

Nie, nie, nie.
Zacznij od zrobienia klasy Student, która będzie przetrzymywać dane studenta.


M4
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 3 lata
  • Postów:58
0

Powstało coś takiego.

Kopiuj
 public class Register {
    public static void main(String[] args) {

        StudentData studentData = new StudentData();
        AddStudent addStudent = new AddStudent();
        addStudent.add();
    }

}
Kopiuj
import java.util.Scanner;

/**
 * Created by Maciej on 2015-10-06.
 */
public class StudentData {

        String name, fullname;
        int number, nstud;
        String studentname, studentfullname, studentparents, studentbehavior;

    public String data() {
        Scanner scanner = new Scanner(System.in);
        this.name = scanner.next();
        this.fullname = scanner.next();
        return name + " " + fullname;
    }

    public String extradata(){
        Scanner scanner = new Scanner(System.in);
        this.studentname = scanner.next();
        this.studentfullname = scanner.next();
        this.studentparents = scanner.next()+" i "+scanner.next();
        this.studentbehavior = String.valueOf(scanner.nextInt());
        return studentname+" "+studentfullname+", "+", "+studentparents+", "+studentbehavior;
    }

    public void students(){
     Scanner scanner = new Scanner(System.in);
     System.out.println("Ilu uczni mamy w klasie?");
     this.nstud = scanner.nextInt();
}
    public int getStudents(){
        return this.nstud;
    }
}
Kopiuj
public class AddStudent {

    public static String add(){
            Scanner scanner = new Scanner(System.in);
            StudentData studentData = new StudentData();
        studentData.students();
            ArrayList<String> register = new ArrayList<String>(studentData.nstud);
            String extra[] = new String[studentData.nstud];
       for(int i = 0; i<studentData.nstud; i++)
            {
        register.add(studentData.data());
        System.out.println("Uzupelnic ucznia o dodatkowe dane?\n1=TAK\n2=NIE" );
                if(scanner.nextInt()==1)
                {
                extra[i] = studentData.extradata();
                }
                 else {
                System.out.println("Pominales krok.");
                }
            }

        for(int i = 0; i<register.size(); i++)
            {
            System.out.println(register.get(i));
            }
        System.out.println(extra[0]);

        return "1";
    }}
edytowany 1x, ostatnio: m4rku1s
NoZi
Ten kod jest bardzo zły... generalnie nie ma tu nic dobrego
XO
Jaki język, taki kod
NoZi
Masz rację, w Pythonie nic bym nie musiał robić.
M4
prawdopodobnie to jest wina tego, że dopiero zaczynam:D kombinuję jak mogę:D
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
1

Nie wypełniłeś polecenia.
Nie kombinuj i zrób dokładnie klasę Student, która tylko i wyłącznie przechowuje dane.


M4
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 3 lata
  • Postów:58
0

No to zrobiłem klasę, która przechowuje dane.

Kopiuj
public class Student {
    String name, surname, parents;
    int behavior, students;
}
 
KA
KA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Warszawa
  • Postów:1683
1

@m4rku1s zrób tą klasę student, która opisuje Studenta daję Ci przykład:

Kopiuj
private class Student {

        private String name;

        private String behavior;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getBehavior() {
            return behavior;
        }

        public void setBehavior(String behavior) {
            this.behavior = behavior;
        }
    }

PS pamiętaj, że możesz ten program kupić u mnie jakby Ci się nie chciało uczyć


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!
M4
haha, dziękuje Karolina ale robię to sam dla siebie, nie jako zadanie domowe:D Sęk w tym, że chcę się uczyć ale jak widzisz nie bardzo idzie po mojej myśli.
KA
taaa pewnie zadali wam na ćwiczeniach
M4
nie, nie. jestem w liceum o profilu biologicznym. tylko, że kości ram mnie bardziej kręcą od kości człowieka, a gettery i settery wydają się być bardziej interesujące od sieci neuronowych:D
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
1

Ok, a teraz zrób to na zasadzie:

Kopiuj
String name; // imię studenta
String surname; // nazwisko studenta

I:
1.Ustaw wszystkie te pola prywatne.
2.Jaki cel ma pole students?


edytowany 2x, ostatnio: Patryk27
M4
students jako rozmiar tablicy. w tym poprzednim, badziewnym kodzie nazwałem to "nstud"
KA
KA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Warszawa
  • Postów:1683
0

dlaczego Student ma mieć pole students ? Student to imie, nazwisko, wiek i takie rzeczy a nie jeszcze studenci w studencie.

Zrób porządnie klase student (same pola, gettery i settery i pokaż) a potem zrobisz dalej coś co przechowa tych studentów jakąś LISTE!!! albo MAPE!!! a nie tablice pff


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!
M4
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 3 lata
  • Postów:58
0

Tak jak powiedzieliście, tak zrobiłem.

Kopiuj
class Student {
    private String name; //imię studenta
    private String surname; // nazwisko studenta
    private String parents; //dane rodziców
    private int behavior; //zachowanie


    public void setname(String name) {
        this.name = name;
    }

    public String getName(){
        return name;
    }
    
    public void setSurname(String surname){
        this.surname=surname;
    }
    
    public String getSurname(){
        return surname;
    }
    
    public void setParents(String parents){
        this.parents=parents;
    }
    
    public String getParents(){
        return parents;
    }
    
    public void setBehavior(int behavior){
        this.behavior=behavior;
        
    }
    
    public int getBehavior(){
        return behavior;
    }
} 
AL
Tak z ciekawości, po co komentować czym jest dana zmienna skoro wynika to z jej nazwy?
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

Dlaczego imię i nazwisko osobno?


KA
KA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Warszawa
  • Postów:1683
0

dobrze. no to teraz zrób sobie listę List<Student> students , która przechowuje tych studentów i wczytuj do niej dane od użytkownika. dodawaj w pętli do tej listy obiekt Student , który stworzysz z wczytanych danych .

@Patryk27 dobrze, że osobno. po co razem jak ktoś będzie miał na imię Michał a na nazwisko też Michał to co wtedy hmm ??


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!
edytowany 1x, ostatnio: karolinaa
M4
ArrayList tutaj bardziej się sprawdzi niż LinkedList, prawda?
KA
nom, robisz List&lt;Student&gt; students = new ArrayList&lt;Student&gt;(); albo Mapa jeżeli wprowadzisz studentom id (polecam)
M4
przy liście się mało wiele orientuje, natomiast Map jeszcze na oczy nie widziałem. stworzę listę, żeby opanować materiał z którym już miałem styczność.
M4
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 3 lata
  • Postów:58
1

Faktycznie, sam sobie utrudniam sprawę.

Kopiuj
 public void setFullname(String name, String surname) {
        this.name = name;
        this.surname = surname;
    }

    public String getFullname(){
        return name+" "+surname;
    } 
KA
no to jest dobre.
vpiotr
(first name + last name) lub (given name + surname). Pole name stosuj do nie-osób.
NoZi
  • Rejestracja:około 16 lat
  • Ostatnio:4 dni
0

Zamiast

Kopiuj
 int behavior 

zrobiłbym interfejs i trzymał go w studencie. Jeśli 'behavior' ma z góry określone wartości to zrobiłbym dodatkowo enuma który implementuje interfejs o którym wspomniałem, żeby mieć większą elastyczność.


Hate the sin, love the sinner
edytowany 1x, ostatnio: NoZi
M4
brzmi strasznie:D
KA
@m4rku1s zrób przynajmniej enuma z tego albo interfejs
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

Nah, nah, skoro potrzebujesz znać pełne imię i nazwisko to po co w ogóle te dwa pola rozdrabniać na osobne?
Choć tak, w ogólnym przypadku (jeśli potrzebujesz bo np. wyszukiwanie) to te dwie metody są spoko i jak najbardziej na miejscu.


edytowany 1x, ostatnio: Patryk27
M4
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 3 lata
  • Postów:58
0

Uprościłem sobie behavior i zmieniłem na String, co by łatwiej było.

Kopiuj
public enum Behavior {
    NAGANNE(false),
    NIEODPOWIEDNIE(false),
    POPRAWNE(false),
    DOBRE(true),
    BDOBRE(true),
    CELUJACE(true);

    boolean grzeczny;

    private Behavior(boolean behavior){
        behavior = grzeczny;
    }
}
M4
powinno być wzorowe zamiast celującego, ale mniejsza.
ShookTea
@m4rku1s to akurat zależy od statutu szkoły. Gdyby dyrekcja chciała, to mogłaby w statucie wprowadzić np. ocenianie procentowe zamiast zwykłych ocen. Jedyne, co w kwestii oceniania jest ustalone "z góry", to zapis na świadectwie :P
M4
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 3 lata
  • Postów:58
0
Kopiuj
public class AddStudent {
    public void Add() {
        Scanner scanner = new Scanner(System.in);
        int registerSize = scanner.nextInt();
        List<String> students = new ArrayList<String>(registerSize);
        for(int i = 0; i<registerSize; i++){
            Student student = new Student();
            student.setFullname(scanner.next(), scanner.next());
            student.setParents(scanner.next());
            student.setBehavior(scanner.next());
            students.add(student.getFullname(), student.getParents(), student.getBehavior());
        }
    }
}
 

Coś tu jest nie tak.

@Edit
Wstawiłem przecinki zamiast znaku dodawania. Sam na to wpadłem!:D
Drugi dzień się męczę z dziennikiem. Im dalej w to brnę tym mniej w siebie wierze:D

@EDIT2

Kopiuj
 public class AddStudent {
    public void Add() {
        Scanner scanner = new Scanner(System.in);
        int registerSize = scanner.nextInt();
        List<String> students = new ArrayList<String>(registerSize);
        for (int i = 0; i < registerSize; i++) {
            Student student = new Student();
            System.out.println("Wprowadz numer ucznia");
            student.setNumber(scanner.nextInt());
            System.out.println("Wprowadz imie i nazwisko:");
            student.setFullname(scanner.next(), " " + scanner.next());
            System.out.println("Ocena zachowania:");
            student.setBehavior(scanner.next());
            System.out.println("Wprowadz imię matki i ojca ucznia:");
            student.setParents(scanner.next() +" " + scanner.next());
            students.add(student.getNumber() + ". " + student.getFullname());

Już lepiej.

edytowany 2x, ostatnio: m4rku1s
vpiotr
Zamiast AddStudent / Add daj StudentScanner / nextStudent, wzór: http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html
M4
próbowałem coś zrobić, ale nie zrozumiałem do końca na jakiej zasadzie to ma działać.
vpiotr
klasa StudentScanner w nextStudent powinna po prostu wczytać i zwrócić następny obiekt klasy Student. Odczytanie limitu i zwrócenie całej kolekcji możesz zrobić w tej samej klasie (metoda nextRegister) lub w osobnej (RegisterScanner).
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

Po co osobna klasa AddStudent?


M4
Wszystko do maina wrzucić?
KA
KA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Warszawa
  • Postów:1683
3

@m4rku1s zamiast listy stringów rób listę studentów. zrób sobie takie proste coś:

Kopiuj
class StudentService {
    private List<Student> students = new ArrayList<Student>();
    private Scanner scanner = new Scanner(System.in);

    public void addStudentFromConsole() {
        Student student = new Student();
        student.setFullname(scanner.next(), scanner.next());
        student.setParents(scanner.next());
        student.setBehavior(Behavior.valueOf(scanner.next()));
        students.add(student);
    }

    public void addStudentsFromConsole() {
        int registerSize = scanner.nextInt();
        for (int i = 0; i < registerSize; i++) {
            addStudentFromConsole();
        }
    }

    public void printAllStudents() {
        for(Student student : students) {
            System.out.println(student.getName());
        }
    }
}
 

i w main

Kopiuj
        StudentService studentService = new StudentService();
        studentService.addStudentsFromConsole();
        studentService.printAllStudents();

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!
M4
i świetnie. teraz mój dziennik jest już o wiele lepszy niż poprzednio:D W sumie to nie mój dziennik, a wasz. bo w sumie to Ja pisałem to co mi kazaliście:D tak czy inaczej dziękuję za cenną wiedzę. :) I Ci, i Patrykowi, i dla Noziego oraz dla Piotra. Idę stawiać przed sobą kolejne góry lodowe do pokonania:D Jeszcze raz dzięki!:)
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)