logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak stworzyć prosty kalkulator w Pythonie dla początkujących?

SySia17 05 Maj 2008 16:20 31912 19
REKLAMA
  • #1 5108144
    SySia17
    Poziom 10  
    Posty: 6
    Chodzi o to, że muszę zrobić progam np. kalkulator. Nigdywcześniej nie miałam styczności z taki rzeczmi i dlatego nie mam pojecia jak robi się takie programy. Potrzebuje bardzo dokładnej instrukcji jak najprościej zrobić taki program ?
  • REKLAMA
  • #2 5108216
    andy17890
    Poziom 12  
    Posty: 108
    Pomógł: 1
    Ocena: 3
    Witaj ;D a w czym ma być ten program ?

    jak w C to coś mogę pomóc ostatnio na lekcjach robiliśmy ;D
  • #3 5108240
    adikbo
    Poziom 26  
    Posty: 814
    Pomógł: 77
    Ocena: 37
    Napisać w dowolnym wybranym języku programowania.

    W sumie pratycznie każdy się nadaje. Począwszy od Assemblera, poprzez Pascal, Delphi, C (++;#) na ASP.NET czy Javie skończywszy. Na upartego można nawet w htmlu to napisać.

    Według mnie najprościej w Pascal, C lub Delphi.
    Wszystko zależy od tego który język programowania znasz.

    De facto sam program jest trywialny i sprowadza się do napisania kilku funkcji.
    Zacznij od rozrysowania sobie grafu przepływu. odczyt danych z klawiatury -> odczyt operacji -> wykonanie działania ->wypisanie danych.
  • #4 5108493
    Brosper
    Poziom 14  
    Posty: 117
    Pomógł: 4
    Ocena: 4
    W htmlu się nie da. Chyba że użyjesz do tego php. :P
  • #5 5108641
    SySia17
    Poziom 10  
    Posty: 6
    NIe znam żadengo oprogramowanie.. :P
  • REKLAMA
  • #6 5109114
    Brosper
    Poziom 14  
    Posty: 117
    Pomógł: 4
    Ocena: 4
    Może spytam po co ci to. Ale dobra mniejsza z tym.
    Wystarczy w google wpisać np "kalkulator w c++" (c++ to jaki język programowania) potem tylko skopiować kod wkleić do komplikatora i gotowe.
  • #7 5109294
    SySia17
    Poziom 10  
    Posty: 6
    potrzebne jest mi to na lekcje informatyki
  • REKLAMA
  • #8 5109404
    Michal19881
    Użytkownik obserwowany
    Posty: 1015
    Pomógł: 57
    Ocena: 62
    Najlepiej zacznij od Turbo Pascala.
    Na necie jest pełno kursów na pewno dasz radę.
  • #9 5109620
    Paweł Es.
    VIP Zasłużony dla elektroda
    Posty: 6981
    Pomógł: 1236
    Ocena: 691
    Programy się zwykle pisze a nie robi :)

    Przy pisaniu programów musisz wykonać następujące kroki:

    1. Zdefiniować problem

    W przypadku twojego kalkulatora musisz określić:

    - typ obsługiwanych danych - czy to będą liczby wyłącznie całkowite czy całkowite i ułamkowe (ogólnie mówiąc rzeczywiste)

    - rodzaje działań jakie ma wykonywać twój kalkulator, np. dodawanie, odejmowanie itd

    - funkcje dodatkowe: kasowanie wyniku, kasowanie ostatniej wprowadzonej liczby, możliwość obliczeń z użyciem dodatkowej pamięci, możliwość użycia nawiasów, możliwość programowania sekwencji obliczeń (mówiąc prosto podstawiania kolejnych liczb do wzoru, który wczesniej opisałeś w postaci poleceń zrozumiałych dla centralnej jednostki czy procedury wykonującej obliczenia

    - następnie musisz zdefiniować sposób wprowadzania danych i zobrazowania wyników (czy będą wyświetlane i jak, a może drukowane)

    - definicja obsługi błędów - np, dzielenie przez zero, pierwiastek z -1

    Następnie opracowujesz tak zwane algorytmy wykonywania poszczególnych operacji jakie wykonuje kalkulator.
    Algorytm to jest ogólnie przepis na wykonanie konkretnej czynności złożonej w skończonej ilości kroków, np. algorytm gotowania wody:

    Procedura Gotowanie
    1. Weź czajnik
    2. Czy jest woda ? Jeżeli jest to idź do kroku 4
    3. Napełnij czajnik wodą -> wywołaj procedurę Napełnianie
    4. Postaw na kuchence
    5. Zapal gaz w palniku
    6. Czekaj (lub wykonaj inne czynności)
    7. Czy woda wrze ? Jeżeli nie to idź do punktu 6
    8. Zamknij dopływ gazu
    KONIEC PROCEDURY GOTOWANIE

    Oczywiście część z powyższych czynności można rozpisać na jeszcze prostsze czynności uwzględniające pośrednie czynności potrzebne do wykonia czynności głównych (np. szukanie zapałek, odkręcanie/zakręcanie wody itd)

    W przypadku naszego kalkulatora (najprostszy przypadek bez nawiasów) będziesz miał:

    Kalkulator wykonuje operację obliczenia:

    a) dla dwóch argumentów - po naciśnieciu klawisza =

    b) dla operacji jednoargumentowej po wciśnięciu klawisz operacji

    1. Kasowanie rejestrów danych wejściowych i wyniku

    argument1=0
    argument2=0
    wynik=0

    2. Wprowadzanie pierwszej danej

    argument1=liczba z klawiatury

    3. Wprowadzenie żądanej operacji (+,-,*, :, pierwiastek, odwrotność, zmiana znaku)

    operacja=kod_operacji

    { poniżej do 12 punktu nastąpi skok dla pierwiastka, odwrotności i zmiany znaku)

    4. Czy działanie wymaga drugiej liczby ? Jeżeli nie to idź do pkt 12

    { Pobieramy drugą daną }

    5. Wprowadzanie drugiej danej

    argument2=liczba z klawiatury

    6 Czy wciśnieto klawisz = ? Jeżeli tak to idź do pkt. 8

    7 Idź do pkt. 6 { Czekanie na wciśnięcie równa się }

    8a. jeżeli operacja="+" to Wynik=argument1+argument2

    8b. jeżeli operacja="-" to Wynik=argument1-argument2

    8c. jeżeli operacja="+" to Wynik=argument1*argument2

    8d. jeżeli operacja=":" to
    jeżeli argument2=0 to skocz do Błąd(dzielenie przez 0)

    Wynik=argument1+argument2

    9. Wyświetl wynik

    10. Czekanie na klawisz Kasowanie Jeżeli nie wciśnieto to idź do 10

    11. Skocz do punktu pierwszego

    {Komentarz - Operacja jednoargumentowa}

    12a. jeżeli operacja="pierwiastek" to
    jeżeli argument1<0 to skocz do pkt. 15 Błąd(próba liczenia
    pierwiastka z liczby ujemnej)


    wynik=Pierwiastek(argument1)

    12b. Jeżeli operacja="1/x" to
    Jeżeli argument1=0 to skocz do pkt 15, Błąd(dzielenie przez 0)


    argument2=argument1 { Przesunięcie danej z arg2 do arg 1
    (kopiowanie)
    argument1=1
    Skocz do pkt. 8d {dzielenie}

    13b Jeżeli operacja ="zmiana znaku" to

    wynik= -argument1

    13. Wyświetl wynik

    14. Skocz do punktu 10 (czyli czekanie na kasowanie)


    15. Obsługa błędów

    16. Wyswietl błąd

    17. Skocz do pkt 10 {Czekanie na skasowanie }


    Jak już masz powyższy ciąg czynności to kodujesz go w jakimś języku programowania (Pascal, C, asembler)

    Oczywiście każdy język ma swoje ograniczenia i może się okazać, że wykonanie danej operacji należy rozpisać na czynności prostsze (np. funkcja pierwiastek może nie być dostępna w danej wersji języka i trzeba go obliczać metodą kolejnych przybliżeń używając mnożenia, dzielenia i dodawania.

    Tak to wygląda pokrótce.

    Zwykle największy problemy są przy zdefiniowanie problemu (rozbicie go na czynności proste) , jego ograniczeń (co chce zamawiający program a co my możemy jako programiści fizycznie zrealizować na danym sprzęcie z jego ograniczeniami ) i napisanie algorytmu. Samo kodowanie jest już prostsze.
  • #10 5109935
    telemah
    Poziom 27  
    Posty: 919
    Pomógł: 81
    Ocena: 62
    Tylko że te algorytmy wg. kol Pawła są dobre w przypadku programowania strukturalnego :D przy obiektowym jest ciut inaczej i algorytmy są nieco inaczej wykorzystywana - ale nie mniej są również :D Jednak zacząć trzeba od programowania strukturalnego przyda Ci się ono też przy programowaniu mikrokontrolerów :!:

    Ps.Niestety w dzisiejszych czasach programowanie polega głównie na progr. obiektowym z wykorzystaniem wielu komercyjnych bibliotek - szczególnie w "windzie" bez tego ani rusz.
  • #11 5110169
    Paweł Es.
    VIP Zasłużony dla elektroda
    Posty: 6981
    Pomógł: 1236
    Ocena: 691
    Sądząc ze sposobu opisania problemu i odpowiedzi na pytania pomocantów, to programowanie pod Windows dla pytaniodawczyni jest "dość" odległą przyszłością :)

    Pamiętam jak kiedyś spawdzaliśmy jaka jest różnica pomiędzy napisaniem i wygenerowaniem prostego programu otwierającego okno z przyciskiem zamykającym w Turbo Pascalu 7.0 i Delphi chyba 2.0 wyszło, że różnica jest niewielka, tylko jakieś 168kB kodu wynikowego.
    Program napisany w TP7.0 po kompilacji zajmował jakieś 1700 bajtów, zaś tosamorobiący i wszystkotosamomający program w Delphi zajmował już ok. 170kB :)

    Użycie gotowych bibliotek upraszcza pisanie programów tyle, że powoduje, że małocorobiący program zajmuje megabajty na dysku nie licząc podmianek co ciekawszych bibliotek systemowych na nowsze za to mniej kompatybilne z tym co już mamy na dysku ;)
  • #12 5111930
    Brosper
    Poziom 14  
    Posty: 117
    Pomógł: 4
    Ocena: 4
    Ej a to trochę dziwne. Jak można po prostu zadać zrobienie takiego programu. Musiałaś chyba na lekcji coś mieć ??
  • #13 5112592
    SySia17
    Poziom 10  
    Posty: 6
    nie mieliśmy, to jest zadanie dodatkowe.. np. na podwyższenie oceny

    Dodano po 16 [minuty]:

    mam jeszcze pytanie: skąd mogę ściągnąć oprogramowanie do pisania progrów ??
  • #14 5115417
    Brosper
    Poziom 14  
    Posty: 117
    Pomógł: 4
    Ocena: 4
    To zależy jaki język. jak wiesz jaki to wpisujesz w google jako nazwę np c++ i w którymś linku będzie.
  • #15 5115592
    telemah
    Poziom 27  
    Posty: 919
    Pomógł: 81
    Ocena: 62
    Nie róbcie sobie jaj :D już widzę jak totalny laik pisze od razu program pod C++ :D on jak na razie to nawet pod pascalem nic nie napisze.Trzeba zacząć od podstaw nauczyć się o stałych zmiennych typach tych stałych i zmiennych, dowiedzieć się jak definiować najważniejsze parametry programu, jak tworzyć etykiety, procedury , jak posługiwać się prostszymi tablicami - bez tego dupa zbita :D

    Ps. Napisałbym Ci taki kalkulatorek ale tu nie chodzi o to żeby Ci to ktoś dał gotowe tylko żebyś się czegoś nauczył.Niestety napisanie takiego programu przez osobę bez podstawowej wiedzy o programowaniu jest raczej niemożliwe.Poza tym nawet nie wiemy jak ma ten kalkulator działać i wyglądać itd...
  • #16 5115637
    Kroovka
    Poziom 23  
    Posty: 572
    Pomógł: 46
    Ocena: 83
    SySia17 napisał:
    nie mieliśmy, to jest zadanie dodatkowe.. np. na podwyższenie oceny


    Też mieliśmy kiedyś takie podwyższanie ocen, więc nie uwierzę, że nie zalecono ci jakiego języka masz użyć.
    A w c++ można pisać w trybie kompatybilności z c i totalnie olać całe to o.o.
  • REKLAMA
  • #17 5115699
    SySia17
    Poziom 10  
    Posty: 6
    Kroovka napisał:
    SySia17 napisał:
    nie mieliśmy, to jest zadanie dodatkowe.. np. na podwyższenie oceny


    Też mieliśmy kiedyś takie podwyższanie ocen, więc nie uwierzę, że nie zalecono ci jakiego języka masz użyć.
    A w c++ można pisać w trybie kompatybilności z c i totalnie olać całe to o.o.


    nie chces to nie wierz , ale nie zalecono nam
  • #18 5230371
    shiros
    Poziom 1  
    Posty: 1
    Jak chcesz moge Ci napisać w programie Dev C++ , zależy jakie ma mieć ten kalkulator funkcje
  • #19 5230604
    mandaryn
    Poziom 12  
    Posty: 40
    Pomógł: 2
    Ocena: 10
    Jeżeli dalej potrzebujesz pomocy mogę poratować cię kalkulatorem napisanym w języku Assembler, działający na rejestrach mikroprocesora MSP430. Mam tez gdzieś do niego dokumentacje nawet z wyrysowanymi algorytmami :)
  • #20 5231037
    Brosper
    Poziom 14  
    Posty: 117
    Pomógł: 4
    Ocena: 4
    mi się wydaje że się chłopaki daleko spóźniliście. już dawno olała sobie to bo termin oddawania już minął. :P

Podsumowanie tematu

✨ Dyskusja dotyczy stworzenia prostego kalkulatora w Pythonie dla początkujących, jednak uczestnicy sugerują różne języki programowania, takie jak C, C++, Pascal, Delphi czy Assembler. Podkreślono, że programowanie wymaga zrozumienia podstawowych pojęć, takich jak typy danych, operacje arytmetyczne, obsługa błędów (np. dzielenie przez zero), oraz sposobu wprowadzania i wyświetlania danych. Zalecane jest rozpoczęcie nauki od programowania strukturalnego, które jest fundamentem do późniejszego programowania obiektowego. Wskazano na potrzebę rozrysowania algorytmu działania kalkulatora (flowchart) i zdefiniowania funkcji, które ma realizować. Poruszono także kwestie wyboru środowiska programistycznego, np. Dev C++ dla C++ lub Turbo Pascal dla Pascala, oraz dostępności kursów online. Zwrócono uwagę, że napisanie programu bez podstawowej wiedzy jest trudne, a gotowe kody można znaleźć w internecie, jednak celem jest nauka, a nie kopiowanie. Wspomniano także o kalkulatorze napisanym w Assemblerze dla mikroprocesora MSP430 wraz z dokumentacją i algorytmami.
Wygenerowane przez model językowy.
REKLAMA