Copyright 2025 - Custom text here

Algorytmy i schematy blokowe

Rozwiązując jakikolwiek problem (zadanie) stosujemy zazwyczaj określoną metodę (przepis), która ma pozwolić na uzyskanie wyniku (rozwiązania). Warunkiem przystąpienia do rozwiązywania jakiegokolwiek problemu jest posiadanie niezbędnych wiadomości i doświadczenia.

Algorytmem nazywamyskończony ciąg instrukcji prowadzących do rozwiązania danego problemu lub zadania. Jest to przepis postępowania prowadzący do osiągnięcia jakiegoś celu.

Implementacja to zapis algorytmu w języku programowania.Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn Musy al-Chorezmi (z Chorezmu), który ok. 820 r n.e. opisał pozycyjny system kodowania dziesiętnego liczb i sztukę liczenia w tym systemie. W XII w. Europie przetłumaczono jego książkę i rozpoczęto wykonywanie obliczeń metodą "pisemną".

Algorytmika, podstawowy dział informatyki poświęcony poszukiwaniom, konstruowaniu i badaniom algorytmów, zwłaszcza w kontekście ich przydatności do rozwiązywania problemów za pomocą komputerów. Autorem nazwy dziedziny jest D. Haral (Spirit of Computing).

Cechy algorytmu:

1. Skończoność - realizowany ciąg instrukcji powinien mieć swój koniec;
2. Określoność - operacje i ich porządek muszą być ściśle określone;
3. Ogólność - stosowanie danego algorytmu nie powinno się ograniczać do pojedynczego problemu, ale do całej klasy problemów tego samego typu;
4. Efektywność - algorytm prowadzić do rozwiązania najkrótszą drogą;

 

Algorytmy możemy przedstawić w postaci:

- opisu słownego
- schematu blokowego
- listy kroków
- w języku programowania

TWORZENIE ALGORYTMÓW ZA POMOCĄ SCHEMATÓW BLOKOWYCH 

 

1. Pogram do tworzenia schematów blokowych online - http://informatyka.julpa24.pl/ciekawe-strony/102-draw-io-tworz-diagramy-online

2. SCHEMAT BLOKOWY

Przed napisaniem jakiegokolwiek programu, powinniśmy najpierw przygotować schemat jego działania czyli algorytmJednym ze sposobów przedstawiania algorytmów są schematy blokowe.

Schemat blokowy jest to układ figur geometrycznych (nazywanych skrzynkami lub blokami) połączonych ze sobą odcinkami prostymi lub łamanymi (ścieżki sterujące). Bloki służą do przedstawiania rodzaju działań zaprojektowanych w algorytmie, natomiast strzałki wskazują kolejność wykonywania tych działań.

Każda figura w schemacie blokowym prezentuje określony rodzaj operacji. Zasadnicza zaleta schematów blokowych jest to, ze graficznie prezentują one algorytm zarówno od strony występujących w nim działań, jak i ich kolejności.

3. ZASADY BUDOWANIA SCHEMATÓW BLOKOWYCH

  • każda operacja, relacja lub informacja jest umieszczana w skrzynce
  • kolejność wykonywania operacji wyznaczają połączenia między skrzynkami
  • każde połączenie jest zaczepione początkiem do skrzynki, a końcem do innej skrzynki lub innego połączenia, żadne połączenie nie rozdziela się
  • rozgałęzienie sieci działań możliwe jest tylko dzięki skrzynkom warunkowym
  • schemat posiada jedną skrzynkę START i co najmniej jedną skrzynkę STOP
  • ze skrzynki START można przejść do skrzynki STOP poruszając się po sieci działań
  • ze skrzynki START można dotrzeć wzdłuż połączeń do dowolnej innej skrzynki schematu
  • z każdej skrzynki istnieje przejście wzdłuż połączeń do jednej ze skrzynek STOP

 

Skrzynki przybierają kształty: prostokąta, rombu (lub sześcianu), równoległoboku, okręgu lub owalu

a) Skrzynka operacyjna - ma kształt prostokąta,

opera

wewnątrz umieszcza się opis czynności. Ze skrzynki operacyjnej odchodzi tylko jedno połączenie. W systemie schematów blokowych w skrzynce operacyjnej można umieszczać opisy czynności, instrukcje przypisania, definicje. W przypadku występowania kilku opisów należy je oddzielać przecinkami .

b) Skrzynka warunkowa - ma kształt sześcianu lub rombu.

warunek

Wewnątrz umieszczony jest warunek, który decyduje o dalszej kolejności wykonywania działań. Zazwyczaj dąży się do tego aby skrzynka warunkowa miała dokładnie dwa wyjścia. Każdym z dwóch wyjść należy opisać słownie T, Tak, True, Yes, Prawda lub N, Nie, No, Fałsz, False.

c) Skrzynka wejścia/wyjścia - jest równoległobokiem,

wy

 

wewnątrz którego umieszczone jest okreśłenie rodzaju wykonywanej operacji . W przypadku w(y)prowadzania wartości zmiennych należy ująć w nawiasy okrągłe ich nazwy a w przypadku w(y)prowadzania tekstu umieszcza się go w cudzysłowy. Dla odróżnienia skrzynki wejścia od wyjścia umieszcza się znak "?" dla pierwszej z nich.

d) Skrzynki graniczne START STOP - mają kształt owalu.

startstop

 

Oznaczają one początek i koniec schematu. Skrzynka START ma tylko jedno połączenie wychodzące a skrzynka STOP tylko jedno połączenie dochodzące. Wewnątrz skrzynki umieszcza się napis START,BEGIN, POCZĄTEK, KONIEC,STOP,END. Schemat może mieć tylko jedną skrzynkę START oraz co najmniej jedną skrzynkę STOP. Ponadto ze skrzynki START można dotrzeć wzdłuż połączeń do dowolnej skrzynki schematu oraz z każdej skrzynki schematu istnieje droga do skrzyni STOP.

 

e) Skrzynka łącznikowa - ma kształt okręgu

lacznik

i może być używana do oznaczenia miejsc w schemacie, które mają być traktowane jako jedne i te same. Wewnątrz umieszcza się numer od 1 do 9999. Każda ze skrzynek łącznikowych ma tylko jedno połączenie. Skrzynka o tym samym numerze musi występować co najmniej dwukrotnie, przy czym skrzynka łącznikowa o ustalonym numerze z połączeniem wychodzącym może występować co najwyżej raz.

f) Skrzynka komentarza - ma kształt prostokąta bez krótszego, prawego boku. Wewnątrz umieszcza się pomocnicze informacje objaśniające połączenia lub wykonywane operacje . Skrzynka informacyjna połączona jest ze schematem za pomocą poziomej linii przerywanej.

 

4. SCHEMAT BLOKOWY LINIOWY

Schemat blokowy liniowy występuje w zadaniach, w których każda z operacji elementarnych nie zawiera relacji (warunku) i powtórzeń (iteracji).

Realizacja poszczególnych sąsiednich operacji następuje według ustalonej kolejności od operacji początkowej do końcowej.

Przykłady: liczenie pola powierzchni, obwodu figur płaskich.

alglinioiwy

5. SCHEMAT BLOKOWY Z ROZGAŁĘZIENIAMI.

Schematy blokowe z rozgałęzieniami spotyka się w zadaniach dla których kolejność poszczególnych etapów w rozwiązaniu może się zmieniać w zależności od warunków określonych w sformułowaniu problemu. Cechą tych algorytmów jest to, iż w trakcie realizacji przechodzi się tylko po jednej z możliwych dróg, przy czym każdy oddzielny etap realizacji algorytmu wykonywany jest dokładnie jeden raz. W rozwiązaniach wykorzystywane są drzewa logiczne.
Przykłady: znajdowanie liczby najmniejszej, rozwiązanie równania liniowego i kwadratowego.

algroz

6. Schemat blokowy cykliczny - z pętlą

Algorytmy dla problemów wymagających powtarzania poszczególnych etapów procesu obliczeniowego nazywamy cyklicznymi (czyli z pętlą).

Przez pętlę w schemacie blokowym rozumiemy tą część schematu, która opisuje drogę (obwód) zamkniętą zgodnie z kierunkiem połączenia (obiegu).

Pętla stanowi graficzny opis powtarzania czynności. Ciąg wszystkich czynności wykonywanych przy jednokrotnym przebiegu pętli nazywamy cyklem pętli.

 algcykliczny

 

Lekcja 2 - Oprogramowanie

1. Co to jest IDE?

Aby programować musimy mieć - Zintegrowane środowisko programistyczneIDE (od ang. integrated development environment) – program lub zespół programów (środowisko) służących do tworzenia, modyfikowania, testowania i konserwacji oprogramowania. Krótko i potocznie odpowieni kompilator.

 

2.  DEV C++

dev.png

Zintegrowane środowisko programistyczne, obsługujące języki C i C++, na licencji GPL, dla systemów rodziny Windows i Linux. Jest zintegrowany z MinGW, czyli z windowsowym portem kompilatora GCC.

 

3.  MICROSOFT VISUAL STUDIO

visaul

Microsoft Visual Studio – zintegrowane środowisko programistyczne firmy Microsoft. Jest używane do tworzenia oprogramowania konsolowego oraz z graficznym interfejsem użytkownika, w tym aplikacji Windows Forms, WPF, Web Sites, Web Applications i inne. Aplikacje mogą być pisane na platformy: Microsoft Windows, Windows Phone, Windows CE, .NET Framework, Microsoft Silverlight, Linux, MacOS oraz konsole XBOX.

 

 

4. Darmowe oprogrmowanie - CODE::BLOCKS 

http://www.codeblocks.org/ (dział download) i wybierz wersję codeblocks-17.12mingw-setup.exe

 Download the binary release

codecloks

 

3 . Skróty klawiaturowe w  CODE::BLOCKS 

a) SHIFT + F2 (ukrywa - pokazuje widok projektu po lewej stronie)

b) F2 - dolna konsola (np. informacje o błędach)

c) F9 - uruchomienie programu

Lekcja 1 - Podstawowe pojęcia

1. Program komputerowy

- to lista poleceń zapisana w jednym języku programowania (zgodnie z obowiązującymi w nim zasadami) do wykonania przez komputer. Programy (zwane oprogramowaniem) tworzą programiści w procesie programowania.

 

2. Programowanie

- to modyfikowanie, rozszerzanie, naprawianie, ale przede wszystkim tworzenie oprogramowania.

 

3. Kod źródłowy

- to program komputerowy napisany w jednym z języków programowania (np. Delphi, C++Builder itp.). Kod źródłowy jest zazwyczaj w postaci tekstu, który zrozumiały jest dla danego kompilatora języka programowania, jak i dla programisty piszącego program. Kod źródłowy jest przetwarzany na kod maszynowy zrozumiały dla maszyny (procesora), przez translator lub jest analizowany i wykonywany przez specjalny program zwany interpreterem.

 

4. Kompilator (ang. compiler)

- to program służący do automatycznego tłumaczenia kodu źródłowego dowolnego języka programowanie (np. Delphi, C++Builder ) na język maszynowy. W przypadku wystąpienia błędu, kompilacja zostaje wstrzymana. Po poprawieniu błędu kompilacja kodu źródłowego rozpoczyna się od początku. Stosowanie kompilatorów ułatwia programowanie (programista nie musi znać języka maszynowego) i pozwala na większą przenośność kodu pomiędzy platformami.

 

5. Kompilacja 

- to proces tłumaczenia kodu źródłowego na kod maszynowy, dokonywany przez kompilator. Kompilacja jest swego rodzaju tłumaczeniem pomiędzy językami zrozumiałymi dla człowieka i maszyny. Polega na zamianie ciągu znaków, którego używa człowiek do reprezentacji jakiejś operacji na odpowiadający mu ciąg instrukcji. W zależności od złożoności języka, proces ten jest mniej lub bardziej skomplikowany.

 

6. Interpreter

- to rodzaj programu komputerowego (translatora), który analizuje kod źródłowy dowolnego języka programowanie (np. BASIC), a przeanalizowane fragmenty (zazwyczaj jedna instrukcja) są wykonywane. W przypadku napotkania błędu interpreter nie musi ponownie tłumaczyć kodu od początku do miejsca jego wystąpienia (tak jak to robi kompilator), tylko kontynuuje od linii zawierającej błąd. W efekcie czas potrzebny na interpretację całego kodu jest mniejszy niż przy kompilacji. Wygenerowany kod jest jednak mniej efektywny (większy i wolniejszy).

 

7. Biblioteka (w informatyce)

- to zbiór klas, funkcji (i ew. innych konstrukcji programistycznych), z których korzystają programiści piszący program.

 

8. Konsolidator (ang. linker)

- jeden z programów składowych kompilatora. Konsolidator łączy biblioteki z plikami zawierającymi kody źródłowe, które korzystają z dołączanych bibliotek tworząc w ten sposób plik wykonywalny.

 

9. Kod maszynowy 

- to postać programu komputerowego (zwana postacią wykonywalną lub binarną) przeznaczona do bezpośredniego lub prawie bezpośredniego wykonania przez konkretny typ procesora, wyrażona w postaci kodów rozkazów procesora i ich argumentów, praktycznie nieczytelna dla człowieka.

 

10. Plik wykonywalny 

– plik, który może być uruchomiony bezpośrednio w środowisku systemu operacyjnego. Najczęściej zawiera binarną reprezentację instrukcji konkretnego typu procesora. Oprócz tego znajdują się w nim zwykle wywołania systemowe, dlatego pliki wykonywalne zazwyczaj są specyficzne nie tylko dla danego procesora, ale też dla danego systemu operacyjnego. Nie dotyczy to sytuacji, kiedy zawierają formę pośrednią, która do uruchomienia wymaga interpretera lub maszyny wirtualnej – takie pliki mogą być zwykle uruchamiane na różnych systemach.

Lekcja 3 - Zmienne

1. Pojęcie zmiennej

zmienna - to obiekt w programowaniu, który przechowuje różnego rodzaju dane niezbędne do działania programu. Zmienna podczas działania programu może zmieniać swoje wartości. Tworząc zmienną musimy nadać jej nazwę oraz typ, który określa co nasza zmienna będzie przechowywać.

Nadając nazwę zmiennej należy przestrzegać następujących reguł:

  • zmienna jest jednym ciągiem znaków bez spacji np. nazwa_zmiennej - dobrze, nazwa zmiennej - źle
  • nie zaczynamy nazwy od cyfry np. 12zmienna - źle, zmienna12 - dobrze
  • nie używamy polskich liter takich jak ą, ę itp.
  • nazwa zmiennej powinna kojarzyć się z przeznaczeniem tej zmiennej np. tablica_ciagu - dobrze
  • nazwa nie może być słowem kluczowym języka programowania np. int - źle

 

2. Tworzenie zmiennej

Ogólna zasada tworzenia zmiennych jest następująca:

typ_zmiennej nazwa_zmiennej;

np.

int a - zmienna o nazwie "a" mająca typ całkowity int

char b - zmienna o nazwie "b" mająca typ znakowy char.

 

 3. Przykłady

int a; // zmienna typu całkowitego o nazwie "a"

int b = 9;  // zmienna typu całkowitego o nazwie "b" i nadanie jej wartości 9

 

4. Typ zmiennych

Typy całkowiteJak sama nazwa mówi, przechowują tylko liczby całkowite. 

NazwaZakres
short -215÷ 215 - 1, czyli przedział [-32768, 32767]
int -231÷ 231 - 1, czyli przedział [-2147483648, 2147483647]
long -231÷ 231 - 1, czyli przedział [-2147483648, 2147483647]
long long -263÷ 263 - 1, czyli przedział [-9223372036854775808, 9223372036854775807]
unsigned short 0 ÷ 216 - 1, czyli przedział [0, 65535]
unsigned int 0 ÷ 232 - 1, czyli przedział [0, 4294967295]
unsigned long 0 ÷ 232 - 1, czyli przedział [0, 4294967295]
unsigned long long 0 ÷ 264 - 1, czyli przedział [0, 18446744073709551615]

Typ rzeczywisty - przechowuje liczby zmiennoprzecinkowe. Gdy mamy zamiar w naszym programie wykorzystać ułamki, ten typ będzie najbardziej odpowiedni. 

Typy rzeczywiste
NazwaZakres
float pojedyncza precyzja - dokładność 6 - 7 cyfr po przecinku
double podwójna precyzja - dokładność 15 - 16 cyfr po przecinku
long double liczby z ogromną dokładnością - 19 - 20 cyfr po przecinku

Typ znakowy - przechowuje znaki, które są kodowane kodem ASCII. Tzn. znak w pamięci nie może być przechowany jako znak, tylko jako pewna liczba. Dlatego każdy znak ma swój odpowiednik liczbowy z zakresu [0, 255], który nazywamy kodem ASCII. I na przykład litera "d" ma wartość 100, "!" = 33, itd.:

Typ znakowy
NazwaZakres
char -128 ÷ 127
unsigned char 0 ÷ 255


Typ logiczny
 - przechowuje jedną z dwóch wartości - true (prawda) albo false (fałsz). Wartość logiczna true jest równa 1, natomiast false ma wartość 0.

Typ logiczny
NazwaZakres
bool

true (1)

false (0)

 

Karki świąteczne

  • Aleksandra Żyłkowska
    Aleksandra Żyłkowska
  • Angelika Jażewicz
    Angelika Jażewicz
  • Iwo Szostakiewicz
    Iwo Szostakiewicz
  • Julia Makar
    Julia Makar
  • Kacper Drupisz
    Kacper Drupisz
  • Kamila Gaweł
    Kamila Gaweł
  • Monika Żywiecka
    Monika Żywiecka
  • Wojciech Kierbić
    Wojciech Kierbić
  • 2019 - Karolina Kozłowska
    2019 - Karolina Kozłowska
f t g m