Podstawy Programowania Algorytmy i programowanie

Podobne dokumenty
Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Algorytmy, reprezentacja algorytmów.

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Algorytm. a programowanie -

Algorytm. Algorytmy Marek Pudełko

11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Definicje. Algorytm to:

Algorytm. Krótka historia algorytmów

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

Technologie informacyjne - wykład 12 -

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Algorytmika i programowanie. dr inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]

Algorytmy i schematy blokowe

Związek między problemem, algorytmem a programem komputerowym. Klasa 2 Lekcja 3

Wprowadzenie do algorytmiki

Programowanie - wykład 4

Podstawy Programowania Podstawowa składnia języka C++

Podstawy Programowania

1 Wprowadzenie do algorytmiki

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.

if (wyrażenie ) instrukcja

Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

ALGORYTMY I PROGRAMY

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

2.8. Algorytmy, schematy, programy

Język ludzki kod maszynowy

Programowanie komputerowe. Zajęcia 1

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

POLITECHNIKA OPOLSKA

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 7 Algorytmy

POLITECHNIKA OPOLSKA

Warunki logiczne instrukcja if

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

Warunki i sposoby realizacji podstawy programowej kształcenia ogólnego w klasie IV i VII szkoły podstawowej z informatyki.

Proste programy w C++ zadania

Zapis algorytmów: schematy blokowe i pseudokod 1

Algorytm. Krótka historia algorytmów

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Efektywność algorytmów

Podstawy i języki programowania

1 Podstawy c++ w pigułce.

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

Podstawy programowania skrót z wykładów:

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Wykład z Technologii Informacyjnych. Piotr Mika

Sposoby przedstawiania algorytmów

START. Wprowadź (v, t) S:=v*t. Wyprowadź (S) KONIEC

Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu,

WHILE (wyrażenie) instrukcja;

WHILE (wyrażenie) instrukcja;

Algorytmy i złożoność obliczeniowa. Wojciech Horzelski

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

Programowanie w języku Python. Grażyna Koba

Wstęp do programowania

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Wstęp do Informatyki

Programowanie w języku C++ Grażyna Koba

Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski

Ilość cyfr liczby naturalnej

Warsztaty dla nauczycieli

Definicja algorytmu brzmi:

TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF).

Luty 2001 Algorytmy (1) 2000/2001 1

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

Algorytmy i struktury danych

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Struktura pliku projektu Console Application

Instrukcje sterujące. Programowanie Proceduralne 1

Algorytm. Definicja i algorytmu METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Praktyka Programowania

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

1 Podstawy c++ w pigułce.

Zapisywanie algorytmów w języku programowania

Programowanie, algorytmy i struktury danych

INFORMATYKA. Algorytmy.

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja

Programowanie strukturalne

METODY OPISU ALGORYTMÓW KOMPUTEROWYCH

Zaawansowane algorytmy i struktury danych

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Podstawy Informatyki. Programowanie. Inżynieria Ciepła, I rok. Co to jest algorytm? Istotne cechy algorytmu

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

Język C, tablice i funkcje (laboratorium, EE1-DI)

Transkrypt:

Podstawy Programowania Algorytmy i programowanie Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r.

Algorytm Algorytm w matematyce, informatyce, fizyce, itp. lub innej dziedzinie życia, to skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego zadania. Słowo "algorytm" pochodzi od starego angielskiego słowa algorism, oznaczającego wykonywanie działań przy pomocy liczb arabskich, które z kolei wzięło się od nazwiska Muhammed ibn Musa Alchwarizmi - matematyka perskiego z IX wieku. Algorytm w informatyce ma za zadanie przeprowadzić system z pewnego stanu początkowego do stanu końcowego. Badaniem algorytmów zajmuje się algorytmika. 2

Przykłady algorytmów Algorytm (przepis) na ugotowanie bigosu potrzebne są składniki oraz szczegółowy przepis jak przyrządzić bigos. Algorytm (postępowanie) stwierdzający zapalenie płuc u dziecka potrzebny jest wywiad środowiskowy oraz badania wstępne. Algorytm (naprawa/wymiana) pozwalający wymienić klocki hamulcowe w samochodzie potrzebne nowe części oraz sposób naprawy/wymiany klocków. Algorytm (rozwiązanie zadania) znalezienia rozwiązania układu n równań z n niewiadomymi potrzeba obliczenia kilku wyznaczników. Algorytm (algorytm) poszukiwania najkrótszej drogi w grafie zastosowanie jednego ze znanych algorytmów. 3

Ada Programista, zwany też potocznie koderem to osoba, która tworzy programy komputerowe w pewnym języku programowania. Za pierwszą programistkę komputerów uważa się Adę Lovelace, córkę słynnego poety George a Byrona. Ada Augusta Lovelace współpracowała z Charlesem Babbage em w pierwszej połowie XIX w. przy projektowaniu pierwszej programowalnej maszyny liczącej (maszyny tej jednak nie skonstruowano). Tworzone przez Adę opisy rozwiązywania konkretnych zadań obliczeniowych uznaje się za pierwsze programy. Ponad wiek później, w latach 1975-1981, jej imieniem nazwano jeden z języków programowania wysokiego poziomu Ada. Popularne języki programowania, to: C, Java, C++. 4

Problem i jego rozwiązanie Najpierw pojawia się problem, następnie poszukujemy algorytmu rozwiązującego dany problem i na koniec piszemy program wykorzystując jeden z istniejących języków programowania. Problem Algorytm Program Zależność między programem a algorytmem można przedstawić też tak: Komputer wykonuje Program komputerowy wykonuje Algorytm 5

Dane i wynik Zawsze przy rozwiązywaniu problemu zastanawiamy się jakie są dane i jak uzyskać wynik (rozwiązanie) w danym problemie (rozwiązanie danego problemu). Problem 1 Wyznaczyć sumę dwóch liczb Dane: Liczby a i b Wynik: Oblicz a + b i wypisz wynik Problem 2 Sprawdzić czy liczba całkowita jest parzysta czy nieparzysta Dane: Liczba całkowita n Wynik: Zbadaj resztę z dzielenia liczby n przez 2 Problem 3 Wyznaczyć sumę n liczb Dane: Liczby a1, a2, a3,, an Wynik: Oblicz sumę s=a1+a2, następnie sumę s=s+a3 i kontynuuj aż do sumy s=s+an 6

Reprezentacja algorytmu 1. Schemat krokowy (lista kroków) 2. Schemat blokowy 3. Program 7

Schemat krokowy (lista kroków) Krok 1. Zacznij algorytm (start) Krok 2. Wczytaj dane Krok 3. Oblicz wynik Krok 4. Wypisz wynik Krok 5. Zakończ algorytm (koniec) 8

Schemat blokowy (klocki bazowe) klocki graniczne Start Stop klocki wejścia/wyjścia Podaj wartość Wyprowadź wartość klocek wykonawczy Instrukcje do wykonania klocek warunkowy NIE Wyrażenie logiczne TAK 9

Program Każdy program ma swój początek i koniec. Początek w programie musi być tylko jeden. System operacyjny musi wiedzieć od którego momentu zacząć wykonywać program. Koniec programu nie musi być jeden może być wiele wyjść. Komputer jest urządzeniem pracującym w pierwotnym założeniu sekwencyjnie tak również będą przetwarzane pierwsze programy przez nas pisane (linia po linii). Często musimy dokonać pewnego wyboru w programie korzystamy z instrukcji warunkowych. Jeśli pewne fragmenty kodu mają być powtarzane to mówimy inaczej, że iterujemy pewne czynności. Kod programu często dzielimy na mniejsze części podprogramy. Programowanie strukturalno-proceduralne polega na pisaniu kodu z użyciem trzech struktur: sekwencji (;), instrukcji warunkowych (if else) oraz pętli (for, while) oraz dzieleniu kody na mniejsze części tzw. procedury i funkcje. Taki schemat programowania umożliwia np. język C++. 10

Najprostszy program w C++ #include <iostream> int main() { std::cout << "Pierwszy program"; std::cout << "Napisany w C++"; return 0; } Wszystkie wiersze zaczynające się znakiem # nazywamy dyrektywami preprocesora. Każda dyrektywa musi zaczynać się od nowego wiersza. Biblioteka iostream służy do wprowadzania i wyprowadzania informacji z podstawowych urządzeń wejścia/wyjścia. Główna część programu to funkcja int main(). Wszystko co jest zawarte między klamrami {} funkcji int main() będzie wykonywane, do momentu napotkania instrukcji return 0 (0 to kod wyjścia z programu). Polecenie std::cout powoduje skierowanie danych na standardowy strumień wyjścia. Napisy w C++ zapisujemy ujmując je w symbol ". 11

Schemat krokowy algorytmu (Problem 1) Krok 1. Zacznij algorytm (start) Krok 2. Wczytaj wartość liczb a i b Krok 3. Podstaw wynik = a + b Krok 4. Wypisz wynik Krok 5. Zakończ algorytm (koniec) 12

Schemat blokowy algorytmu (Problem1) Start Wczytaj a,b wynik = a + b Wypisz wynik Stop 13

Program w C++ (Problem 1) #include <iostream> int main() { int a,b,wynik; std::cout << "Podaj a="; std::cin >> a; std::cout << "Podaj b="; std::cin >> b; wynik = a + b; std::cout << "Suma liczb a i b wynosi\n"; std::cout << wynik; } return 0; Operator = służy do operacji przypisania zmiennej wartości std::cin to polecenie które powoduje przekierowanie danych ze standardowego wejścia do zmiennej 14

Schemat krokowy algorytmu (Problem 2) Krok 1. Zacznij algorytm Krok 2. Wczytaj wartość liczby całkowitej n Krok 3. Jeśli reszta z dzielenia n przez 2 jest 0 to wynik=0, a w przeciwnym wynik=1 Krok 4. Wypisz wynik Krok 5. Zakończ algorytm 15

Schemat blokowy algorytmu (Problem 2) Start Wczytaj n nie czy n:2=0 tak wynik = 1 wynik = 0 Wypisz wynik Stop 16

Program w C++ (Problem 2) #include <iostream> int main() { int n,wynik; std::cout << "Podaj n="; std::cin >> n; if (n%2==0) wynik=0; else wynik=1; std::cout << wynik; } return 0; 17

Schemat krokowy algorytmu (Problem 3) Krok 1. Zacznij algorytm Krok 2. Wczytaj liczbę n (ilość liczb), wczytaj liczby a[1],a[2],a[3],,a[n] Krok 3. Przypisz licznik=0, wynik=0 Krok 4. Sprawdź, czy licznik <= n. Jeśli TAK przejdź do Krok 5, jeśli nie przejdź do Krok 6 Krok 5. Przypisz wynik = wynik + a[licznik], licznik = licznik +1 oraz przejdź do Krok 4 Krok 6. Wypisz wynik Krok 7. Zakończ algorytm 18

Schemat blokowy algorytmu (Problem 3) Start Wczytaj n Wczytaj liczby a[1],a[2],a[3],,a[n] licznik = 0 wynik = 0 tak czy licznik<=n nie wynik = wynik + a[licznik] liczni k= 1icznik + 1 Wypisz wynik Stop 19

Program w C++ (Problem 3) #include <iostream> int main() { int n,wynik,licznik; std::cout << "Podaj n="; std::cin >> n; int a[n]; for (int i=0; i<n; i++) { std::cout << "a[" << (i+1) << "]="; std::cin >> a[i]; } licznik = 0; wynik = 0; while (licznik<n) { wynik = wynik + a[licznik]; licznik = licznik + 1; } std::cout << "Suma liczb wynosi" << wynik; } return 0; 20

Zadanie Napisz schemat krokowy, blokowy i program dla algorytmu rozwiązywania równania liniowego ax+b=0 w zależności od rzeczywistych współczynników a i b. Wskazówka! Uwzględnij przypadki: a<>0 wówczas dokładnie jedno rozwiązanie x0=-b/a a=0 i b=0 wówczas nieskończenie wiele rozwiązań a=0 i b<>0 wówczas brak rozwiązań 21