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

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

Programowanie - wykład 4

Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne

WYKŁAD 3 (13 MARZEC 2014) LICZBY CAŁKOWITE I RZECZYWISTE. Bartosz Łakomy i Dariusz Dobiesz

Wstęp do Informatyki

Wstęp do programowania

Podstawy algorytmiki i programowania - wykład 3 Funkcje rekurencyjne Wyszukiwanie liniowe i binarne w tablicy

Wstęp do programowania

Część 4 życie programu

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5

tablica: dane_liczbowe

FUNKCJA REKURENCYJNA. function s(n:integer):integer; begin if (n>1) then s:=n*s(n-1); else s:=1; end;

5. Rekurencja. Przykłady

Wstęp do informatyki- wykład 9 Funkcje

Wstęp do programowania

Wstęp do programowania

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

I - Microsoft Visual Studio C++

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Wstęp do informatyki- wykład 11 Funkcje

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

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

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Podstawy algorytmiki i programowania - wykład 5 C-struktury cd.

Liczby całkowite i rzeczywiste

Wstęp do programowania

Wieczorowe Studia Licencjackie Wrocław, Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa

Techniki Programowania wskaźniki 2

12. Rekurencja. UWAGA Trzeba bardzo dokładnie ustalić <warunek>, żeby mieć pewność, że ciąg wywołań się zakończy.

1 Wskaźniki. 1.1 Główne zastosowania wskaźników

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Program 14. #include <iostream> #include <ctime> using namespace std;

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Programowanie komputerowe. Zajęcia 1

PDF stworzony przez wersję demonstracyjną pdffactory Pro Program 15

Rekurencja. Przygotowała: Agnieszka Reiter

Tablice są typem pochodnym. Poniżej mamy przykłady deklaracji różnych tablic:

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

ALGORYTMY I STRUKTURY DANYCH

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia

Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno

Programowanie i struktury danych

Proste programy w C++ zadania

1,3,4,2,3,4,0,1,4,5,0. Wówczas największa suma trzech kolejnych liczb (zaznaczone na czerwono) wynosi:

Funkcje i tablice. Elwira Wachowicz. 23 maja 2013

Szablon klasy std::vector

Programowanie w C++ Wykład 4. Katarzyna Grzelak. 19 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 37

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Rekurencja (rekursja)

Pytanie 1. Pytanie 2. Pytanie 3 WOJEWÓDZKI KONKURS INFORMATYCZNY. Treść pytania

Programowanie Obiektowew języku C++ Zadania L4

WHILE (wyrażenie) instrukcja;

Wstęp do informatyki- wykład 9 Pętla while, do while,for -pętla w pętli- przykłady Funkcje

C++ - [1-3] Debugowanie w Qt Creator

Język C++ wykład VIII

Techniki Programowania wskaźniki

Funkcje. Deklaracja funkcji. Definicja funkcji. Wykorzystanie funkcji w programie.

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

Programowanie Proceduralne

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

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Podstawy algorytmiki i programowania - wykład 6 Sortowanie- algorytmy

Wstęp do programowania

Programowanie Procedurale

Algorytm. a programowanie -

Program 22. #include <iostream> using namespace std; struct Osoba { string Imie; string Nazwisko; char Plec; int RokUr; };

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Wstęp do programowania

Programowanie komputerowe. Zajęcia 3

Wstęp do informatyki- wykład 10 Funkcje (przekazywanie parametrów przez wartość i zmienną)

typ y y p y z łoż o on o e n - tab a lice c e w iel e owym m ar a o r we, e stru r kt k ury

Podstawy Programowania C++

MACIERZE. Sobiesiak Łukasz Wilczyńska Małgorzata

Struktury Struktura polami struct struct struct struct

WHILE (wyrażenie) instrukcja;

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Wstęp do programowania. Wykład 1

Mechanizm dziedziczenia

TEMAT : KLASY POLIMORFIZM

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

r. Tablice podstawowe operacje na tablicach

Wstęp do programowania obiektowego, wykład 7

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

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

C++ wprowadzanie zmiennych

Podstawy programowania. Wykład: 6. Tablice statyczne. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Języki i metodyka programowania. Wprowadzenie do języka C

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Język C++ wykład VI. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VI. dr Jarosław Mederski.

Podstawy algorytmiki i programowania - wykład 4 C-struktury

Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

Inicjacja tablicy jednowymiarowej

Transkrypt:

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

Tablice Tablica jest zbiorem elementów tego samego typu. Każdy element jest identyfikowany (numer pozycji na której się znajduje). W pamięci komputera tablica zajmuje ciągły obszar komórek pamięci. Tablica charakteryzuje się bezpośrednim dostępem do elementów. Dostęp ten uzyskuje się poprzez podanie odpowiednich indeksów elementów.

Tablice jednowymiarowe

Tablice w pamięci komputera Numeracja pozycji rozpoczyna się zawsze od zera w języku Java!, tj. indeksem pierwszego elementu jest 0, następnego 1, itd.

Tablice jednowymiarowe Tablice jednowymiarowe Inicjalizacja tablicy: <typ wartości> <nazwa tablicy> [rozmiar] = <elementy tablicy>; Przykład: float wektor [4] = 3.5, 2, 14.4, 34 ; int tab[] = 23, 45, 56, 2, 34, 23 ; int A[50];

Wczytywanie elementów tablicy jednowymiarowej

Wczytywanie elementów tablicy jednowymiarowej #include <iostream> using namespace std; int main() const int n=10; int A[n]; for(int i=0; i<n; i++) cin>>a[i]; #include <iostream> using namespace std; int main() const int n=10; int A[n]; int i=0; while(i<n) cin>>a[i]; i++; return 0; return 0;

Algorytm wyszukiwania największego elementu

Algorytm wyszukiwania największego elementu #include <iostream> //wyszukiwanie maksymalnego elementu using namespace std; int main() const int n=10; int A[n]; int i=0; while(i<n) cin>>a[i]; i++; int max=0; i=1; while(i<n) if(a[i]>a[max]) max=i; i++; cout<<a[max]<<endl; return 0;

Funkcje Deklaracja funkcji: <typ wartości> <nazwa>(<lista parametrów formalnych ze specyfikacją>) <lista deklaracji obiektów lokalnych>; <treść funkcji>; return <wyrażenie>;

Funkcje Wywołanie funkcji: w instrukcji przypisania w instrukcji wyjścia Format: <nazwa funkcji>(<lista parametrów aktualnych>);

Funkcje Przykłady Napisać program w języku Java obliczający wartości funkcji y = ctg x dla dowolnego, dopuszczalnego argumentu x.

Funkcje Przykłąd #include <iostream> #include <cmath> using namespace std; double cotangens(double x); int main() cout << cotangens(25) << endl; return 0; //================================== double cotangens(double x) return cos(x)/sin(x);

#include <iostream> using namespace std; double poleprostokata(double a, double); int main() int bok1, bok2; cin>>bok1>>bok2; cout<<"pole prostokata o podanych bokach = "; cout << poleprostokata(bok1, bok2) << endl; return 0; //================================== double poleprostokata(double a, double b) double pole; pole=a*b; return pole;

Funkcja rekurencyjna Rekurencja zwana rekursją, polega na wywołaniu przez funkcję samej siebie. Algorytmy rekurencyjne zastępują w pewnym sensie iteracje.

Funkcja rekurencyjna Przykład #include <iostream> using namespace std; long long silnia(double a); int main() int n; cout<<"podaj n: "; cin>>n; cout<<"\nsilnia dla podanego n= "; cout << silnia(n) << endl; return 0; //=================== long long silnia(double a) if(a==0) return 1; else return a*silnia(a-1);

Algorytm Euklidesa rozwiązanie 1 Wyznaczania NWD dwóch liczb a i b Wejście: Wyjście: Krok 1: a,b - liczby naturalne, których NWD oblicza algorytm a lub b - wartość NWD pierwotnych liczb a i b. a,b - liczby naturalne, których NWD oblicza algorytm Wyjście: a lub b - wartość NWD pierwotnych liczb a i b. Krok 2: Krok 3: Czytaj a,b Jeśli a = b, to idź do kro ku 5 Jeśli a > b, to a a - b. Inaczej b b - a Krok 4: Idź do kroku 2 ; wczytujemy dane wejściowe ; jeśli a = b, to NWD jest a lub b ; jeśli a jest różne od b, to od większej liczby odejmujemy mniejszą ; wracamy do sprawdzania warunku w kroku 2 Krok 5: Pisz a ; wypisujemy NWD Krok 6: Zakończ ; koniec algorytmu

Algorytm Euklidesa rozwiązanie 1

Algorytm Euklidesa rozwiązanie 1 wersja iteracyjna #include <iostream> int nwd (int a, int b) using namespace std; int nwd (int a, int b); while(a!= b) if(a > b) a = a- b; int main() else b = b- a; int n1, n2; return a; cout<<"podaj dwie liczby: "; cin>>n1>>n2; cout<<"\nnwd= "; cout << nwd(n1, n2) << endl; return 0; //============================

Algorytm Euklidesa rozwiązanie 1 wersja rekurencyjna int nwd (int a, int b) if(a!=b) if(a>b)return nwd(a-b, b); else return nwd(b-a,a); else return a;

Algorytm Euklidesa rozwiązanie 2 -zoptymalizowana int NWD(int a, int b) int pom; while(b!=0) pom = b; b = a%b; a = pom; return a;

Algorytm Euklidesa rozwiązanie 2 zoptymalizowana rekurencyjna