Programowanie w PMC
W prezentacji Wstęp 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 Licznik rozkazów Będzie nas informował który krok programu aktualnie wykonujemy Kod programu Rejestr rozkazów Odpowiedzialny za przekodowanie kodu binarnego na konkretny rozkaz Przykład: dodaj liczbę Dane Wejściowe Wyjściowe 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 OD 27 – polecenie odejmuje od akumulatora liczbę z komórki 27 MN 27 – polecenie mnoży akumulator przez liczbę z komórki 27 Przykład: Początek: Polecenie: Wynik: OD 27
Przeadresowywanie komórek 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 NO TO DO DZIEŁA 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 A L G O R Y T M Rozpoczynamy pracę programu Wczytujemy ilość liczb oraz ich wartości A L G O R Y T M 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
Dodawanie n liczb P R O G 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 D A N E Wprowadzone liczby: -14, 3, 6, -5, -7, 11, 24 Liczba i Menu Ilość liczb Pomocnicza jedynka do obliczeń Wynik
Silnia liczby n A L G O R Y T M Rozpoczynamy pracę programu Wczytujemy liczbę n A L G O R Y T M Sprawdzamy czy n nie jest liczbą ujemną Jeśli nie jest to za zmienną i przyjmujemy 1 Za s (wynik silni) podstawiamy i Pytamy program czy obliczył już silnię z n Jeśli nie to zwiększamy indeks i o 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ę Jeśli warunek był spełniony wypisujemy wynik silni liczb n Kończymy pracę programu
Silnia liczby n P R O G 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 P R O G A M Podstawiamy za wynik liczbę i Obliczamy liczbę n – i – 1 Sprawdzamy czy jest ona ujemna jeśli nie to podstawiamy zamiast i, i +1, a następnie wynik s mnożymy przez i Zapętlamy program Pomocnicza jedynka do obliczeń D A N E Liczba i Liczba z której policzymy silnię Wynik Menu
Obliczanie ile jest liczb ujemnych w ciągu n liczb Rozpoczynamy pracę programu A L G O R Y T M 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 tak to zwiększamy indeks i o 1 i doliczamy kolejną liczbę ujemną Jeśli warunek był spełniony wypisujemy wynik silni liczb n Kończymy pracę programu
Obliczanie ile jest liczb ujemnych w ciągu n liczb Zmniejszamy ilość liczb o jeden Program pyta czy sprawdziliśmy już wszystkie liczby P R O G A M 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 D A N E Wprowadzone liczby: -14, 3, 6, -5, -7, 11, 24 Pomocnicza jedynka do obliczeń Ilość liczb Menu Wynik
Podsumowanie Dziękuję za uwagę