Algorytmy i schematy blokowe

Algorytmy i schematy blokowe - wstęp do programowania

Algorytmy wydają się być zagadnieniem bardzo skomplikowanym. Nic bardziej mylnego. Algorytmy są obecne w naszym życiu na każdym kroku, tylko nie zdajemy sobie z tego sprawy. Każdy, niezależnie od wieku, może nauczyć się tworzenia algorytmów. To naprawdę łatwe. A korzyści jest wiele. Nauka algorytmiki rozwija umiejętności: logicznego myślenia, analizowania i rozwiązywania problemów.

Algorytmy - przykłady z życia codziennego

Przepis na babeczki z czekoladą

Krok 1. Przygotuj składniki
Krok 2 . Wymieszaj w misce wszystkie suche składniki: mąka, cukier, cukier waniliowy, proszek do pieczenia.
Krok 3.  Dodaj wszystkie składniki płynne: Jajko, olej, mleko.
Krok 4.  Ciasto dokładnie wymieszaj do uzyskania jednolitej masy.
Krok 5. Nałóż po łyżce ciasta do każdej foremki, na środku każdej babeczki wetknij po kostce czekolady
Krok 6. Czekoladę przykryj dodatkową porcją ciasta, aby wypełniło ¾ wysokości foremki.
Krok 7. Piecz w 180 °C przez 25-30 minut

Zakupy - schemat blokowy

Algorytm - Schemat blokowy - zakupy

Pierwsza pomoc - schemat blokowy

Co to jest właściwie algorytm ?

Algorytm jest to zestaw kroków (czynności) prowadzący do rozwiązania pewnego konkretnego problemu (zadania).

Algorytmy możemy przedstawić w postaci opisu wykonywanych kroków lub w postaci schematów blokowych.

Co musi posiadać algorytm (właściwości) ?

  1. Algorytm wymaga podania jakiś danych wejściowych, czyli początkowych wartości.
  2. Każdy krok algorytmu musi być precyzyjnie zdefiniowany.
  3. Musi kończyć się po pewnej skończonej liczbie kroków.
  4. Na zakończenie oczekujemy na wyjściu jakiegoś rezultatu (wyniku).
  5. Dane wyjściowe często są uzależnione od danych jakie podaliśmy na wejściu.

Jakie są rodzaje algorytmów ?

  1. Algorytm liniowy (sekwencyjny) – jest to zestaw poleceń wykonywanych jeden po drugim, w kolejności w jakiej zostały zapisane.
Przykład:
Problem (zadanie): Napisz algorytm wyliczający sumę dwóch liczb.
Dane wejściowe do algorytmu: Liczba1, Liczba2
Dane wyjściowe (oczekiwany wynik): Suma dwóch liczb

Krok 1: Start
Krok 2: Podaj pierwszą liczbę (wczytaj z klawiatury Liczba1).
Krok 3: Podaj drugą liczbę (wczytaj z klawiatury Liczba2).
Krok 4: Oblicz sumę dwóch liczb: Suma = Liczba1 + Liczba2
Krok 5: Wyświetl sumę.
Krok 6: Koniec
  1. Algorytm rozgałęziony (zawierający wybór) – jest to taki algorytm, w którym wykonanie operacji opiera się na pewnym warunku. Jeśli warunek jest spełniony przechodzimy do jednej gałęzi, jeżeli nie jest spełniony to do innej gałęzi.
    W językach programowania zazwyczaj odnosi się do instrukcji if (jeśli), lub instrukcji switch.
    Na schematach blokowych pole wyboru jest zaprezentowane w postaci pola o kształcie rombu.
Przykład:
Problem (zadanie): Znajdź największą z dwóch liczb.
Dane wejściowe do algorytmu: Liczba1, Liczba2
Dane wyjściowe (oczekiwany wynik): Większa liczba – Max

Krok 1: Start
Krok 2: Podaj pierwszą liczbę (wczytaj z klawiatury Liczba1).
Krok 3: Podaj drugą liczbę (wczytaj z klawiatury Liczba2).
Krok 4: Jeśli Liczba1 jest większa od Liczba2, to Max = Liczba1
Krok 5: Jeśli Liczba2 jest większa od Liczba1, to Max = Liczba2
Krok 6: Wyświetl większą liczbę (max).
Krok 7: Koniec
  1. Algorytm iteracyjny (zawierający pętle) – wykorzystywany jest w przypadkach, gdy pewne instrukcje trzeba wykonywać wielokrotnie. Ilość wykonań uzależniona jest od spełnienia warunku w pętli.
    W językach programowania są to pętle while, for i do…while .
    Na schematach blokowych pętlę wskazuje strzałka wstecz.
    Przebieg pętli nazywamy iteracją. Bardzo ważne jest, aby warunek zakończenia pętli został spełniony po pewnej liczbie iteracji. W przeciwnym wypadku pętla będzie nieskończona. Spowoduje to zawieszenie się programu.
Przykład:
Problem (zadanie): napisz algorytm, który wyświetli liczby z pewnego zakresu (n, m)
Dane wejściowe do algorytmu: zakres (n, m)
Dane wyjściowe (oczekiwany wynik): Liczby z przedziału (n, m)

Krok 1: Start
Krok 2: Podaj dolny zakres (wczytaj z klawiatury n)
Krok 3: Podaj górny zakres (wczytaj z klawiatury m)
Krok 4: Wypisz n
Krok 5: Zwiększ liczbę n o 1
Krok 6: Jeżeli liczba n <= m to idź do kroku 4 w przeciwnym wypadku idź do kroku 7
Krok 7: Koniec

Schematy blokowe

Służą do graficznego zaprezentowania algorytmów. Składają się z pewnego zestawu elementów (symboli).

Podstawowe symbole powszechnie stosowane do tworzenia schematów to:

Algorytm Schemat blokowy Start End

Oznacza początek lub koniec algorytmu.

Oznacza proces, zazwyczaj są to działania, obliczenia, podstawienia.

Algorytm Schemat blokowy Wczytywanie danych

Oznacza operacje wejścia /wyjścia – wczytywanie danych z klawiatury i wyświetlanie na ekran.

Algorytm schemat blokowy Wybór

Oznacza pole wyboru. Umieszczamy w nim jakiś warunek. Z wierzchołków rombu wyprowadzamy dwie strzałki. 

Algorytm schemat blokowy arrow

Pokazują kierunek wykonywania poszczególnych kroków.

Algorytm wyliczania średniej arytmetycznej

Średnia arytmetyczna to suma liczb podzielona przez ich liczbę.

Średnią arytmetyczną wyliczamy według wzoru:

Średnia arytmetyczna wzór

Algorytm w formie opisowej

Krok 1. Start
Krok 2. Wczytaj ilość liczb do zmiennej n.
Krok 3. Ustaw zmienną suma na 0 ( Suma = 0 ) oraz indeks i = 1.
Krok 4. Jeśli pobrano wszystkie liczby, czyli   i = n, to wówczas przejdź do kroku 6, w przeciwnym wypadku idź do kroku 5.
Krok 5. Pobierz liczbę i dodaj ją do sumy, zwiększ indeks i o 1. Przejdź do kroku 4.
Krok 6. Wylicz średnią jako iloraz sumy i ilości liczb n.
Krok 7. Wypisz na ekranie średnią.
Krok 8. Koniec

Schemat blokowy

Algorytm Schemat blokowy Średnia arytmetyczna
Program Replit Średnia arytmetyczna cpp

Podsumowanie

Nauka tworzenia algorytmów nie jest taka trudna, jak się początkowo wydaje. Algorytmy są obecne w naszym życiu na każdym kroku. Cała trudność polega na dostrzeżeniu analogii między algorytmami z życia codziennego, a tymi ze świata matematyki. Gdy to zauważymy, projektowanie algorytmów do problemów matematycznych nie będzie już takie skomplikowane. Opanowanie ich oraz schematów blokowych to pierwszy krok do nauki programowania.

Wprowadzenie do programowania w języku C++

Zaczynając swoją przygodę z programowaniem warto zapoznać się z podstawowymi pojęciami programistycznymi i zrozumieć, co one oznaczają. Zajmijmy się w pierwszej kolejności budową programu. Na początku uruchomimy środowisko programistyczne i utworzymy nasz pierwszy projekt w języku C++. Bez względu na to jakie środowisko programistyczne wybierzemy (Visual Studio, Replit lub inne), to zostanie wygenerowany pewien początkowy program. Ma on następującą postać:
Wprowadzenie do programowania w języku C++
Kod pierwszego programu w środowisku Visual Studio

Gdy spojrzymy na wygenerowany pierwszy program, to zauważymy, że poszczególne słowa są podświetlone różnymi kolorami. Jest to tzw. podświetlenie (pokolorowanie) składni. Środowiska programistyczne takie jak Visual Studio  zapewniają taką funkcjonalność, aby program był bardziej czytelny i zrozumiały dla programisty.

Kolorem zielonym są oznaczone komentarze do programu. Możemy tam napisać np. autora programu, kiedy został utworzony program i inne informacje, które wydają się nam przydatne.

Kolorem niebieskim są oznaczone słowa kluczowe, są to inaczej słowa zastrzeżone. Oznacza to, że nie możemy z nich korzystać, tworząc własne nazwy w programie.

Kolor bordowy jest z kolei zarezerwowany dla danych tekstowych.

Przy tworzeniu własnych programów korzystamy z bibliotek. Biblioteka programistyczna jest to plik, który dostarcza nam gotowe podprogramy, funkcje, dane, typy danych, które możemy użyć w naszym programie.

Biblioteki takie dołączamy na początku programu po słowie #include.

Bardzo często używanym pojęciem jest kod źródłowy. To nie jest nic innego, jak kod naszego programu.

Program napisany w języku programistycznym jest niezrozumiały dla komputera. Aby komputer go zrozumiał, musi zostać przetłumaczony na język maszyny. Służy do tego kompilator. Jest to narzędzie, które jest dostarczone przez każde środowisko programistyczne. W Visual Studio dostępne jest z menu Kompilowanie => Kompiluj rozwiązanie. Podczas kompilowania sprawdzany jest kod programu, czy jest napisany poprawnie. Jeśli są jakieś błędy, to wówczas kompilator je nam wyświetli w oknie Dane Wyjściowe.

Gdy program zostanie skompilowany, dostaniemy wersję zrozumiałą dla komputera, ale jeszcze niepełną. Brakuje bibliotek programistycznych, które dołączyliśmy do naszego programu. Narzędzie służące do dołączania bibliotek nazywa się linkerem, a sam proces dołączania linkowaniem. Po wykonaniu linkowania otrzymujemy program, który nadaje się do uruchomienia. Ma on rozszerzenie exe , czyli jest to plik wykonywalny. W przypadku naszego programu jest to plik o nazwie PierwszyProgram.exe.

W Visual Studio nie mamy  dostępnej opcji wykonania samego linkowania. Gdy wybierzemy z menu Debugowanie => Uruchom bez debugowania, to zostanie uruchomiony proces kompilacji i linkowania, i jeśli wszystko przebiegnie bezbłędnie, to zostanie uruchomiony program.

Replit: Narzędzie programistyczne dla uczniów, nauczycieli i programistów

Replit narzędzie do nauki programowania

Replit jest to narzędzie, które umożliwia pisanie kodu, jego kompilację i uruchomienie w przeglądarce internetowej. Jest to narzędzie bardzo proste w obsłudze i w pełni darmowe.

Zawiera między innymi: edytor kodu, kompilator, okno konsoli, okno projektu, w którym widoczne są pliki projektu, okienko podglądu (w przypadku tworzenia stron internetowych).

Jest to środowisko bardzo rozbudowane. Można w nim pisać programy w ponad 20 językach programowania. Do najpopularniejszych należą: C++, C#, Python, PHP, Java, HTML, JS i wiele innych. Ma dużo wbudowanych frameworków np. Rails (Ruby) i Django (Python), z których możemy korzystać tworząc własne projekty.

Jak napisać własny program w języku C++ ?

Tworzenie własnego programu w języku C++ jest bardzo proste. Po zalogowaniu się do platformy https://replit.com/  w oknie startowym wybieramy przycisk Create repl. Wyświetla się nam okienko z wyborem języka programowania. Wybieramy język, wpisujemy nazwę projektu i mamy już utworzony początkowy projekt. Aby go uruchomić naciskamy zielony przycisk RUN. Po chwili program uruchamia się w okienku konsoli.
Programowanie w języku C++

Narzędzie Replit, a tworzenie stron internetowych

Tworzenie własnej strony również jest bardzo proste. Pokażę to na przykładzie projektu w HTML. Stworzyłam nowy projekt HTML o nazwie strona. Dodałam w nim dwa nagłówki: Witaj świecie i To jest strona testowa. Po kliknięciu przycisku RUN, otrzymujemy w prawym oknie – widok podglądu strony. Co więcej dla naszej strony zostaje przydzielona domena tymczasowa : https://strona.kagopro.repl.co . Możemy uruchomić stronę w dowolnej przeglądarce wpisując ten adres. Adres to tak naprawdę: NazwaProjektu.NazwaUzytkownika.repl.co . Jest to duży plus ponieważ możemy nasz projekt udostępnić innym osobom podając po prostu linka.

Środowisko Replit dla uczniów i nauczycieli

Replit ma również wiele wbudowanych funkcji edukacyjnych, dzięki czemu jest świetny również dla nauczycieli i uczniów . Z menu bocznego mamy dostęp do zakładki Teams. Nauczyciel ma możliwość tworzenia zespołów, przypisywania do nich uczniów oraz pracy z nimi w czasie rzeczywistym.
Replit - narzędzie dla nauczyciela

Nauczyciel widzi, którzy uczniowie kodują. Wystarczy jedno kliknięcie, aby dołączyć do ich sesji i zobaczyć nad czym pracują. Można przejrzeć ich prace i wysłać opinie lub uwagi do całego projektu bądź do poszczególnych linijek kodu.

Wszystko to sprawia, że Replit jest bardzo przydatnym narzędziem zwłaszcza w przypadku wirtualnej nauki. Nie musimy mieć na własnym urządzeniu zainstalowanego specjalnego oprogramowania, wystarczy nam wyszukiwarka internetowa.

Inne zalety narzędzia Replit

Nie musimy zapisywać projektu. Każdy projekt jest zapisywany automatycznie w chmurze. Możemy zalogować się na nasze konto Replit z dowolnego miejsca i dowolnego urządzenia: laptop, telefon, tablet i widzimy w My Repls wszystkie utworzone przez nas projekty.

Środowisko Replit daje również możliwość programowania w zespole: w trybie Multiplayer. Aby udostępnić projekt innym osobom należy nacisnąć szary przycisk Invite znajdujący się w prawym górnym rogu. Otwiera się okienko Invite. Możemy w nim zaprosić użytkownika wpisując jego nazwę lub możemy wygenerować link przyciskiem: Generate a join link i przesłać go osobom, które zapraszamy do wspólnej pracy nad projektem.

Replit - programowanie w zespole

Wszystkie utworzone projekty możemy ściągnąć na nasz komputer, i odwrotnie. Pliki z naszego komputera możemy dołączyć do projektów w środowisku Replit.

Z poziomu Replit możemy również połączyć się z repozytorium plików GitHub. Możemy zapisywać tam nasze zmiany w projekcie.

Podsumowanie

Środowisko Replit mogę z całą pewnością polecić osobom uczącym się programowania: uczniom i studentom, a także nauczycielom. Narzędzie to na pewno bardzo ułatwi ich pracę. W przypadku zdalnej nauki może okazać się niezastąpione.

Co nam daje nauka języka programowania C++ ?

C++ jest jednym z najpopularniejszych języków programowania. Jest to język bardzo uniwersalny.

Ma swoje zastosowanie wszędzie tam, gdzie liczy się wydajność, niskie zużycie zasobów, szybkość działania programu oraz optymalizacja dużej ilości danych.

Możemy w nim tworzyć oprogramowanie między innymi do samochodów (systemy ABS, układy sterujące pracą silnika), 

Programowanie w języku C++

urządzeń medycznych  (EKG), urządzeń gospodarstwa domowegourządzeń do obsługi placówek bankowych (bankomaty) i wielu innych.

W języku C++ możemy pisać również aplikacje desktopowe, czyli takie, które uruchamiamy z pulpitu komputera. Mogą to być systemy bazodanoweprogramy biurowebankowe.  Do najbardziej znanych należą programy Adobe PhotoshopAdobe Acrobat Reader, pakiet biurowy OfficeGoogle Earth, przeglądarki internetowe: Mozilla FirefoxMicrosoft Internet ExplorerGoogle Chrome.

Wreszcie w tym języku możemy pisać gry komputerowe. Większość komercyjnych gier jest napisana właśnie w języku C++  (Wiedźmin, Assassin’s Creed, Far Cry, Watch Dogs, Just Dance, Rainbow Six, World of Warcraft, Starcraft, Doom III, Master of Orion III, Warcraft III, Diablo I, Diablo II). Między innymi w tym języku są napisane silniki do gier (Unreal engine, AAA). Język C++ znalazł też swoje zastosowanie w technologii VR (Virtual Reality).

Ostatnio coraz bardziej popularny stał się „internet rzeczy”. Inteligentne urządzenia są coraz częściej wykorzystywane między innymi w budownictwie (inteligentne domy). C++ ma tu też swoje zastosowanie.

W C++ zostały napisane systemy operacyjne takie jak: Windows, Apple Mac OS X, iPAD OS, Apple iPhone iPod Touch, Google Chrome OS, Symbian OS. W języku tym tworzone jest również oprogramowanie dla serwerów.

C++ wykorzystywany jest w największych światowych firmach (Apple, Adobe, Facebook, Amazon, Ericsson, HP, IBM, Intel).

Dlaczego warto uczyć dzieci programowania ?

Dlaczego warto uczyć dzieci programowania

Nauka programowania wpływa pozytywnie na ogólny rozwój dzieci. Pomaga kształtować charakter jak i umiejętności, które mogą się przydać w przyszłości.

Programowanie pozwala odkrywać talenty u dzieci, rozwijać ich uzdolnienia i pasje.

Pisanie własnych programów to proces twórczy, który wymaga poszukiwania nowych rozwiązań,  odkrywania nowych ścieżek, podążania za innowacyjnymi pomysłami. Uczy myślenia logicznego, rozwija takie cechy jak kreatywność i ciekawość świata.

Programowanie to także ćwiczenie charakteru: uczy cierpliwości i wytrwałości w dążeniu do celu. Pokonywanie trudności dodaje wiary w siebie i własne możliwości. Każdy zrealizowany projekt daje wiele radości i satysfakcji.

Technologie informatyczne są obecne w prawie każdej dziedzinie życia: od medycyny, poprzez budownictwo, biznes, branżę motoryzacyjną, telekomunikacyjną i wiele innych. Zapotrzebowanie na programistów stale rośnie na całym świecie. Umiejętność programowania daje nam szansę na znalezienie atrakcyjnej pracy z satysfakcjonującym wynagrodzeniem.

 

Dlaczego warto rozpocząć naukę programowania z Elementarzem młodego programisty ?

 
Książka jest napisana przystępnym językiem, zawiera liczne przykłady. Każda lekcja poświęcona jest odrębnemu zagadnieniu. Jest to książka dla osób początkujących: dzieci, młodzieży, studentów.
Zawiera takie zagadnienia:
  • wprowadzenie do programowania – wyjaśnienie podstawowych pojęć: biblioteka programistyczna, kompilacja, linkowanie, kod źródłowy…
  • biblioteka iostream (cout, cin), zmienne, typy,
  • instrukcje warunkowe i pętle, operatory,
  • tablice, referencje, wskaźniki
  • tworzenie własnych funkcji
  • elementy programowania obiektowego: wprowadzenie do tematu, klasy, struktury, unie, dziedziczenie, polimorfizm.
Wszystkie tematy są napisane w prosty i zrozumiały sposób. Każda linijka kodu jest opatrzona komentarzem wyjaśniającym, jak działa. Książka dodatkowo zawiera ilustracje do niektórych zagadnień, aby można było sobie wyobrazić ich działanie na przykładzie z życia codziennego.

Ilustracja z książki do zagadnienia: tablice.