Programowanie w PMC
W prezentacji
Polecenia programu PMC
Dodawanie ciągu n liczb
Silnia liczby n
Szukanie liczb ujemnych w ciągu n
liczb
Wprowadzenie
Nauka programowania komputerów jest zadaniem bardzo
trudnym. Współczesny sprzęt informatyczny ma za sobą długą
drogę rozwoju i osiągnął wysoki stopień komplikacji będący
barierą dla początkujących, którzy chcieliby poznać zasady
programowania w języku bezpośrednio rozumianym przez
procesor, czyli w asemblerze.
Moim celem jest zmniejszenie chaosu oraz złożoności
systemów rzeczywistych i przybliżenie wam Przykładowej
Maszyny Cyfrowej czyli PMC, która ma prostą i zrozumiałą
konstrukcję oraz niewielki zestaw rozkazów.
Dzięki tym cechom będziemy mogli szybko nauczyć się jej
budowy i skoncentrować na samym programowaniu.
Program PMC
Dane
•
Wejściowe
•
Wyjściowe
Kod
programu
Licznik rozkazów
B
ędzie nas informował
który krok programu
aktualnie wykonujemy
Rejestr rozkazów
Odpowiedzialny za
przekodowanie kodu
binarnego na
konkretny rozkaz
Przykład: dodaj liczbę
Akumulator
Pamięć podręczna w
której dokonujemy
obliczeń
Wykonuje
program
Uruchomia
program krok po
kroku
Uruchomia program
jako kolejne kroki
procesora
Menu
Polecenia PMC
ZD 27 – polecenie zeruj akumulator i dodaj liczbę z komórki 27
Przykład:
Początek:
Polecenie:
Wynik:
ZD 27
DO 27 – polecenie dodaje do akumulatora liczbę z komórki 27
Przykład:
Początek:
Polecenie:
Wynik:
OD 27
OD 27 – polecenie odejmuje od akumulatora liczbę z komórki 27
MN 27 – polecenie mnoży akumulator przez liczbę z komórki 27
Polecenia PMC
PA 27 – polecenie zeruj wartość komórki 27 i zapamiętuje w niej wartość
akumulatora
Przykład:
Początek:
Polecenie:
Wynik:
PA 27
Uwagi:
•
Do akumulatora możemy wprowadzać nie tylko liczby ale i polecenia (np. DO 26)
Przeadresowywanie komórek
Polecenia PMC
Instrukcje skoku:
SK 10 – wykonanie tego rozkazu powoduje bezwarunkowy
przeskok wykonywanego programu do komórki o adresie 10
SS 0 – wykonanie tego rozkazu powoduje bezwarunkowy
przeskok wykonywanego programu do komórki o adresie 0 i
zatrzymanie programu
SM 10 – wykonanie tego rozkazu powoduje skok do komórki o
adresie 10 w momencie kiedy wartość akumulatora będzie
ujemna w przeciwnym razie program przejdzie do następnej
komórki
Menu
Dodawanie liczb
Spróbujmy teraz napisać prosty program dodający sześć
liczb
Trzy etapy tworzenia programu:
Stwórz dobry algorytm rozwiązujący problem
Na podstawie algorytmu zaprogramuj maszynę cyfrową
Przetestuj program aby mieć pewność, że działa
prawidłowo
NO TO DO DZIEŁA
Dodawanie n liczb
Rozpoczynamy pracę programu
Wczytujemy ilość liczb oraz ich
wartości
Ustawiamy indeks i = 1 oraz
zerujemy sumę liczb
Dodajemy pierwszą liczbę do sumy
Pytamy program czy dodał już
wszystkie liczby
Jeśli nie to zwiększamy indeks i o 1
aby w następnej pętli programu
dodać kolejną liczbę
Jeśli warunek był spełniony
wypisujemy wynik sumy liczb „s”
Kończymy pracę programu
A
L
G
O
R
Y
T
M
Dodawanie n liczb
P
R
O
G
R
A
M
D
A
N
E
Dodajemy kolejne liczby
Obliczamy liczbę n - i - 1
Sprawdzamy czy jest ona
ujemna, jeśli tak to skaczemy
do komórki 13, jeśli nie to
wykonujemy rozkaz z komórki 7
Zmieniamy i na i + 1
Przeadresowujemy komórkę o 1
aby w kolejnej pętli program dodał
następną liczbę
Zapętlamy program
Wprowadzone liczby: -14, 3, 6, -5, -7,
11, 24
Liczba i
Ilość liczb
Wynik
Pomocnicza jedynka do obliczeń
Menu
Silnia liczby n
Rozpoczynamy pracę programu
Wczytujemy liczbę n
Sprawdzamy czy n nie jest liczbą
ujemną
Za s (wynik silni) podstawiamy i
Pytamy program czy obliczył już
silnię z n
Jeśli nie to zwiększamy indeks i o 1
Jeśli warunek był spełniony
wypisujemy wynik silni liczb n
Kończymy pracę programu
Jeśli nie jest to za zmienną i
przyjmujemy 1
Mnożymy s przez i ponieważ n!
=1*2*…*n, a następnie przechodzimy
do następnej pętli z pytaniem czy już
policzyliśmy silnię
A
L
G
O
R
Y
T
M
Silnia liczby n
P
R
O
G
R
A
M
D
A
N
E
Wczytujemy liczbę n
Sprawdzamy czy jest ona ujemna
jeśli tak to kończymy program
jeśli nie to idziemy do kolejnego
rozkazu
Podstawiamy za wynik liczbę i
Obliczamy liczbę n – i – 1
Zapętlamy program
Liczba i
Liczba z której policzymy silnię
Wynik
Pomocnicza jedynka do obliczeń
Sprawdzamy czy jest ona ujemna
jeśli nie to podstawiamy zamiast
i, i +1, a następnie wynik s
mnożymy przez i
Menu
Obliczanie ile jest liczb
ujemnych w ciągu n
liczb
Rozpoczynamy pracę programu
Wczytujemy liczbę n i liczby od a[1] do
a[n]
Pytamy program czy sprawdziliśmy
już wszystkie liczby
Jeśli nie to sprawdzamy czy i-ta
liczba jest ujemna
Jeśli nie to zwiększamy indeks i o 1
Jeśli warunek był spełniony
wypisujemy wynik silni liczb n
Kończymy pracę programu
Jeśli tak to zwiększamy indeks i o 1 i
doliczamy kolejną liczbę ujemną
A
L
G
O
R
Y
T
M
Obliczanie ile jest liczb
ujemnych w ciągu n
liczb
P
R
O
G
R
A
M
D
A
N
E
Zmniejszamy ilość liczb o jeden
Program pyta czy
sprawdziliśmy już
wszystkie liczby
Zapamiętujemy nową ilość liczb
W czytujemy i-tą liczbę i
sprawdzamy czy jest ona ujemna
Jeśli nie jest ona ujemna to
przeadresowywujemy komórki tak
aby w nowej pętli program badał
następną liczbę
Jeśli tak to zliczmy ilość liczb
ujemnych, przeadresowywujemy
komórki i przechodzimy do
badania następnej liczby
Ilość liczb
Wynik
Pomocnicza jedynka do obliczeń
Wprowadzone liczby: -14, 3, 6, -5, -7,
11, 24
Menu
Podsumowanie
Dziękuję za uwagę