piątek, 20 października 2017

Funkcje zwracające wartość w języku C++

1. Każda funkcja posiada trzy własności:

- zwraca dane (lub nie jeśli tego nie chcemy);
 - posiada swoją nazwę;
- może posiadać dowolną liczbę argumentów wejściowych (lub może nie mieć żadnego, jeśli tego nie chcemy).

2. Funkcja zwracająca wartość - wylicza wartość i odsyła tę wartość do funkcji wywołującej. Mówimy, że funkcja zwraca wartość. 


Są to funkcje, które w swojej budowie zawierają słowo return.

opis_typu nazwa_funkcji (lista parametrów formalnych)
{
instrukcje;
return zwracana_wartość;
}


3. Wywołanie funkcji zwracającej wartość
Aby użyć takiej funkcji można:
1) wywołać ją umieszczając jej wynik w zmiennej
zmienna = nazwa_funkcji(lista parametrów)

2) wykorzystać jako element wyrażenia lub instrukcji
cout << nazwa_funkcji(lista parametrów)

4. Przykłady programu: 
#include <iostream>
using namespace std;
int x, y;
int SumaKwadratow (int a, int b)
return a*a+b*b;
}
int main()
cout << "wprowadz skladniki" << endl;
cin >> x >> y;
cout << SumaKwadratow(x,y);
return 0;
}
____________________________________

#include <iostream> 
using namespacd std;
int x,y;
int SumaKwadrat ()
{
return x*x+y*y 
int main ()
cin >> x>> y;
cout << SumaKwadrat();
return 0;
}

wtorek, 10 października 2017

Stosowanie procedur i funkcji w językach

1. Programowanie zstępujące i wstępujące.
Programowanie zstępujące (projektowanie zstępujące, ang. top-down design) – rozwiązanie programistyczne polegające na zdefiniowaniu problemu ogólnego poprzez podzielenie na podproblemy, które są dzielone na jeszcze mniejsze podproblemy aż do rozwiązań oczywistych, łatwych do zapisania. Następnie złożenie z rozwiązań podproblemów niższego rzędu rozwiązań problemów wyższego rzędu aż do całkowitego rozwiązania problemu

Programowanie wstępujące - oznacza rozpoczęcie pracy z interfejsem, zaimportowanie go do modułu, a następnie, jeśli to konieczne, zmodyfikowanie go w edytorze interfejsów.
Poniższa ilustracja przedstawia to programowanie:
2. Zalety stosowania podprogramów - procedur i funkcji
Stosowanie procedur i funkcji umożliwia: 
- dzielenie zadania na mniejsze części 
- każda może być realizowana w oddzielnej procedurze lub funkcji. 
-wprowadzenie porządku do programu
- zwiększenie jego czytelności i przejrzystości. 
-łatwiejsze wyszukiwanie błędów i dokonywanie poprawek 
- w procedurze lub w funkcji można zlokalizować błędy szybciej niż na długiej liście instrukcji programu głównego. 
-programowanie zespołowe 
- po uzgodnieniu postaci procedur lub funkcji każdy z członków zespołu może zająć się pracą się nad "swoimi" procedurami lub funkcjami. Zaletami programowania strukturalnego są szczególnie widoczne przy pisaniu dużych programów,rozwiązujących złożone problemy

3. Modele programowania:
- liniowe,
a_1 x_1 + a_2 x_2 + \cdots + a_n x_n \geqslant \alpha
a_1 x_1 + a_2 x_2 + \cdots + a_n x_n \leqslant \alpha
a_1 x_1 + a_2 x_2 + \cdots + a_n x_n = \alpha
- strukturalne -  paradygmat programowania opierający się na podziale kodu źródłowego programu na procedury i hierarchicznie ułożone bloki z wykorzystaniem struktur kontrolnych w postaci instrukcji wyboru i pętli.
- modularne - 

- obiektowe - 


- zdarzeniowe - 


piątek, 6 października 2017

Algorytm z pętlą zagnieżdżoną

Algorytm z pętlą zagnieżdżoną
1. Specyfikacja

Zadanie: Napisz listę kroków algorytmu,który umożliwi wyprowadzenie na ekran monitora prostokąta o bokach n, m narysowanego za pomocą znaku *
(m - liczba znaków * w poziomie, n - liczba znaków w pionie) *.
Wnętrze prostokąta powinno być wypełnione znakami *.
Dane: Liczby naturalne dodatnie,określające ilość znaków * w prostokącie o bokach m,n.
Wynik: Prostokąt o wymiarach m, x, n zbudowany ze znaków*.

Lista kroków:
1.Zacznij algorytm
2.Zmiennej i przypisz wartość jeden: i:=1.
3.Jeśli jest większe od n, przejdź do kroku 4;
w przeciwnym wypadku
3.1. Zmiennej przypisz wartość jeden: j:=1;
3.2. Jeśli jest większe od m,
przejdź do nowego wiersza;
zwiększ licznik i o jeden (i:= i+1)
wróć do kroku 3;
w przeciwnym wypadku 
wprowadź ('*');
zwiększ licznik j o jeden(j := j+1)
wróć do kroku 3.2;

4. Zakończ algorytm. 


Listing do wyżej wymienionego algorytmu:
#include <iostream>
using namespace std;
int main () 
{ int i,j,m,n; 
cout << "Podaj wartosc m: "; 
cin >> m; 
cout << "Podaj wartosc n: "; 
cin >> n; 
for (i=0; i<n; i++)
}
for(j=0; j<m; j++) 
cout << "*"; 
cout << endl; 
return:0
}

Algorytm iteracyjny iloczynu n liczb

Iteracja - polega na wielokrotnym powtarzaniu tej samej operacji (ciągu operacji).
Iterację implementujemy, stosując tzw. PĘTLĘ.

Specyfikacja zadania lub problemu - opis zadania, w którym wymienia się dane wejściowe oraz wyniki, związek między danymi a wynikami.

Algorytm iteracyjny iloczynu n liczb 
Specyfikacja:
Zadanie: Oblicz iloczyn n liczb całkowitych.
Dane: n dowolnych liczb całkowitych, kolejno zapamiętywanych w zmiennej a.
Wynik: wartość iloczynu zatytułuj: iloczyn.

Co zrobić? - lista kroków.

  1. Rozpocznij algorytm.
  2. Zmiennej iloczyn oraz zmiennej i przypisz wartość jeden: iloczyn:=1; i:=1.
  3. Wprowadź liczbę całkowitą i zapamiętaj ją w zmiennej a.
  4. Pomnóż iloczyn poprzez wprowadzoną liczbę a: iloczyn := iloczyn * a.
  5. Jeżeli i nie równa się n, zwiększ licznik o jeden (i:= i+1) i wróć do kroku nr. 3.
  6. Wprowadź wynik: iloczyn.
  7. Zakończ algorytm.
Prowizoryczny system blokowy powyższego algorytmu:

Listing to wydruk kodu źródłowego programu.

Listing powyższego programu:



#include <iostream> 
using namespace std; 
int main()
 { 
int i, a, iloczyn, n; 
cout << "podaj ilosc liczb :\n";

cin >> n; 
iloczyn=1; 
for (i=1; i<=n; i++)
 { 
cout << "podaj liczbe nr : " << i+1 <<" ";
 cin >> a;
 iloczyn*=a; 
cout << iloczyn;
 return 0;
}

niedziela, 21 maja 2017

Fotografia cyfrowa



Aparat cyfrowy:
  • Możliwość podglądnięcia zdjęć bezpośrednio po zrobieniu oraz wykasowania tych „nieudanych”
  • Możliwość wywołania tylko wybranych zdjęć
  • Możliwość przechowywania zdjęć w formacie cyfrowym (nie koniecznie trzeba je wywoływać - niższe koszty) ale trzeba też pamiętać, że uszkodzenie dysku, czy płyty CD/DVD, na których przechowujemy zdjęcia, może nas pozbawić wszystkich tam zapisanych. Warto część najlepszych, najcenniejszych zdjęć wywołać i posiadać także w postaci tzw. odbitki.
  • Zdjęcie posiada szczegółowo określoną rozdzielczość wyrażoną w pikselach.
  • Rozdzielczość w najlepszych aparatach cyfrowych jest już porównywalna do rozdzielczości zdjęć na negatywach z aparatów tradycyjnych.
  • Łatwość obróbki cyfrowej zdjęć
  • Możliwość nagrania filmu
  • Mniejsze zapotrzebowanie na światło matrycy aparatu cyfrowego, niż negatywu, a co za tym idzie większa łatwość zrobienia dobrych zdjęć w słabszych warunkach oświetleniowych, kiedy to aparat tradycyjny już sobie powoli nie radzi lub wymaga stosowania statywu i dłuższego czasu naświetlania.
  • Robiąc zdjęcie w trybie automatycznym, w przypadku cyfrówki o niższej jakości matrycy, efekt ostateczny może okazać się przekłamany w stosunku do rzeczywistej kolorystyki, zwłaszcza przy słabym oświetleniu (np. ciemniejsze pomieszczenie).
Aparat analogowy:
  • Możliwość wykonania określonej, niedużej ilości zdjęć na jednym negatywie
  • Brak bezpośredniego wglądu do zdjęć
  • Brak możliwości / duża trudność wyboru zdjęć wywoływanych
  • Rozdzielczość jest cechą materiału światłoczułego, np. negatywu
  • Brak konieczności umiejętności posługiwania się komputerem
  • Niższa cena aparatu w porównaniu do „cyfrówki”
  • Aparaty analogowe posiadają większą rozpiętość tonalną niż aparaty cyfrowe, zdjęcie trafniej oddaje barwy
  • W przypadku fotografii analogowej, dzięki właściwościom negatywu, zdjęcie może oddać najmniejszy nawet detal, nie zmieniając naturalnej kolorystyki, wychwytuje występujące światłocienie, tworząc często oryginalne efekty.
Lustrzanka cyfrowa (DSLR, ang. Digital Single Lens Reflex Camera) – rodzaj lustrzanki jednoobiektywowej, w której rolę materiału światłoczułego spełnia matryca światłoczuła; w zależności od rozwiązania jest to matryca CCD lub matryca CMOS.

Lustrzanka cyfrowa wyposażona jest w jeden obiektyw (1) i wbudowane w korpus lustro (2, na rysunku w pozycji dolnej), które kieruje światło padające przez obiektyw na matówkę (5), gdzie tworzy się obraz fotografowanego obiektu, i dalej, przez soczewkę Fresnela (6) i pryzmat pentagonalny (7) do wizjera (8). Są również modele, zwłaszcza starszych aparatów średnioformatowych, w których obraz na matówce obserwuje się bezpośrednio z góry, bez pryzmatu i wizjera.

Typy aparatów cyfrowych:
  • Aparaty kompaktowe - forma rozwojowa analogowych aparatów kompaktowych charakteryzująca się zwartą budową i niewielkimi rozmiarami oraz znacznym uproszczeniem i zautomatyzowaniem obsługi. Niewielkie rozmiary przetworników a co za tym idzie bardzo krótkie ogniskowe stosowanych obiektywów powodują, iż aparaty te charakteryzują sie dużą głębią ostrości, co z kolei powoduje, iż niekiedy nie stosuje się w nich układów ustawiania ostrości

Pocztówka

Zapraszam serdecznie do obejrzenia mojej pocztówki z wakacji z Indri VIII! :)