Podstawy Programowania -...

76
Podstawy Programowania Wykład 1

Transcript of Podstawy Programowania -...

Page 1: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Podstawy Programowania

Wykład 1

Page 2: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

• Jerzy Grębosz Symfonia C++

• Bjarne Stroustrup Język C++

• Bruce Eckel Thinking in C++

• Tony L. Hansen C++ zadania i odpowiedzi

Jak się uczyć programowania?

Wykład i laboratorium

Literatura

Tutoriale w Internecie

Samodzielne pisanie programów!!!

Page 3: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Komputer może być traktowany jako urządzenie

służące do przechowywania i przetwarzania

informacji.

Działanie komputera jest kontrolowane przez

wykonywany przez niego program.

Podstawowe pojęcia

Page 4: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Procesor zawiera dwa podstawowe elementy

• element nadzorujący i koordynujący działania

komputera (CU – control unit)

• element odpowiedzialny za operacje arytmetyczne i

logiczne (ALU – arithmetic logic unit)

Pamięć (wewnętrzna)

Przechowuje m.in. uruchamiany program, dane

niezbędne do poprawnego działania uruchamianego

programu.

Podstawowe pojęcia

Page 5: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Pojęcia podstawowe

Pamięć komputera może być traktowana jako ciąg

komórek pamięci (nazywanych czasami słowami).

Każda komórka pamięci ma pewien adres,

określający jej pozycję w pamięci.

Komórka pamięci składa sie z pewnej liczby bitów

(zazwyczaj 8, 16, 32 lub 64).

Page 6: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Wykonywany program zajmuje grupę powiązanych z

sobą komórek pamięci.

Komórki lub grupy komórek zawierają poszczególne

instrukcje programu.

Różne instrukcje są reprezentowane przez różne

kombinacje bitów w komórkach pamięci.

Program

Program to ciąg ciąg instrukcji

Page 7: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Podczas wykonywania programu CU czyta kolejne

instrukcje z pamięci i zapewnia, że są one

wykonywane w odpowiednim porządku.

Instrukcja „mówi” komputerowi, że powinien wykonać

jakieś zadanie (np. dodać dwie liczby w ALU)

Program

Page 8: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program

Instrukcja może być traktowana jako pewien ciąg zer i

jedynek.

Instrukcja o takiej samej roli może mieć różną postać

na różnych modelach komputerów.

Page 9: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Początkowo programy były pisane tylko w kodzie

maszynowym.

Obecnie programy pisze sie w językach wysokiego

poziomu zrozumiałych dla człowieka.

Przykładowe języki: Ada, Pascal, C, C++, Cobol,

Fortran

Programy napisane w językach wysokiego poziomu

są tłumaczone na kod maszynowy za pomocą

specjalnego translatora ( kompilator).

Języki programowania

Page 10: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Kod maszynowy (przykład): 1100111101011000

100000011111010

1100110011001010

Język asembler: push beer

call printf

add esp,16

pop ecx

Program jest tłumaczony na kod maszynowy przy

użyciu programu – asemblera.

Język wysokiego poziomu:

int c=a+b;

cout<<”dane o uzytkownikach”;

Języki programowania

Page 11: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Etapy tworzenia programu

• określenie zadań programu (faza analizy wymagań i

specyfikacji)

• zaprojektowanie sposobu rozwiązania problemu

(algorytmu) (faza projektowa)

• zapis projektu w wybranym języku programowania

(faza implementacji)

• kompilacja i uruchomienie programu

• sprawdzenie czy program działa poprawnie (faza

testowania)

Page 12: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Etapy tworzenia programu

• zapis algorytmu w wybranym języku

programowania (faza implementacji)

• kompilacja i uruchomienie programu

• sprawdzenie czy program działa poprawnie (faza

testowania)

Na wykładzie z Podstaw Programowania interesują nas

3 ostatnie punkty:

Page 13: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Uczymy się programować w

języku C++

Tworzenie programu

Page 14: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program piszemy posługując się edytorem tekstu

Powstaje wówczas tzw. kod źródłowy (w języku C++

plik z rozszerzeniem cpp).

Tworzenie programu

W czasie zajęć laboratoryjnych będziemy wyko-

rzystywać darmową aplikację:

Bloodshed Dev-C++

Page 15: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Bloodshed Dev C++

Kod źródłowy programu

Page 16: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Wersja źródłowa programu musi zostać

przetłumaczona na język maszyny (procesora).

Kompilacja programu

Służy do tego kompilator danego języka progra-

mowania

Kompilator sprawdza przy tym czy w programie nie

ma błędów składniowych.

Page 17: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Kompilacja programu – Dev C++

Informacja o błędach w składni

Wskazanie błędu

Page 18: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Kompilacja programu

Skompilowana wersja (zazwyczaj zapisywana w pliku

na dysku jako tzw. plik obiektowy – object file z

rozszerzeniem obj) jest zapisana w języku

maszynowym.

Nie jest to jeszcze gotowy program.

Aby tak się stało muszą zostać dołączone do niego tzw.

biblioteki.

Page 19: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Rezultatem linkowania jest gotowy do uruchomienia

program (plik z rozszerzeniem exe)

Linkowanie (konsolidacja) programu

Biblioteki zawierają dodatkowe instrukcje programu,

napisane wcześniej bądź przez kogoś innego i

oddzielnie skompilowane.

Proces łączenia (tzw. linkowanie, polska nazwa -

konsolidacja) programu z bibliotekami wykonywany

jest przez program zwany linkerem.

Page 20: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Linkowanie (konsolidacja) programu

Dołączanie bibliotek (include)

Page 21: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Uruchomienie programu – Dev C++

Page 22: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Debugger

W tworzeniu programów pomocnym narzędziem jest

tzw. debugger (po polsku - odpluskiwacz).

Debugger umożliwia śledzenie działania programu i

usuwanie w nim błędów (ang. bug).

Page 23: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Debugger – Dev C++

Page 24: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Jak stworzyć program?

1. Znajdź odpowiedni algorytm.

2. Stwórz wersje źródłową programu.

3. Uruchom kompilację.

4. Jeśli są błędy (kompilacji), wróć do punktu 2

(ewentualnie uruchom Debugger).

5. Uruchom program.

6. Jeśli są błędy (wykonania), wróć do punktu 2.

5. Sprzedaj program za ogromne pieniądze .

Page 25: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Język programowania

Każdy język programowania ma swoją składnię:

o nazwy

o słowa kluczowe

o instrukcje

o struktura programu

o operatory

o znaki specjalne

Operacje wejścia/wyjścia, nie są częścią definicji języka

C++.

Page 26: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Operacje wejścia/wyjścia (obiektowo)

cout<<...

Wyjście

cin>>...

Wejście

Strumienie cin i cout są zdefiniowane w bibliotece

iostream (InputOutputStream)

Page 27: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Operacje wejścia/wyjścia -

#include <iostream>

using namespace std;

int main()

{

cout<<"Niedziela-wyklad z Programowania"<<endl;

system("PAUSE");

return 0;

}

Page 28: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Operacje wejścia/wyjścia (obiektowo)

#include <iostream>

using namespace std;

int main()

{

cout<<"Niedziela - "<<"wyklad z"<<

"Programowania"<<endl;

system("PAUSE");

return 0;

}

Page 29: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Operacje wejścia/wyjścia (obiektowo)

#include <iostream>

using namespace std;

int main()

{

cout<<"Niedziela - ";

cout<<"wyklad z"<<" Programowania"<<endl;

system("PAUSE");

return 0;

}

Page 30: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Język C++ rozróżnia rozmiar liter w nazwach (ale np.

język Pascal nie rozróżnia).

Nazwy

Nazwy (identyfikatory, ang. identifiers) mogą odnosić

się do (pod)programów, zmiennych, stałych etc.

Zwykle nazwą może być dowolnie długi ciąg liter (bez

polskich!), cyfr i znaków podkreślenia zaczynający sie

od litery.

Nazwy poprawne: a_1, liczba1, y, dom1

Nazwy niepoprawne: 1a, 1_a, zm_1/2,

Page 31: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Słowa kluczowe są zwykle wyróżnione przez Edytor

przystosowany do pracy z danym językiem.

Słowa kluczowe

W każdym języku programowania występują tzw.

słowa kluczowe.

Słowa takie mają specjalne znaczenie. Mogą być

np. elementem instrukcji, nazwami predefi-

niowanego typu itp.

Słów kluczowych nie można użyć jako nazw.

Słowami kluczowymi w języku w C++ są np.: int,

if, else, float, typedef, using ...

Page 32: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Słowa kluczowe

Słowa kluczowe są

pogrubione

Page 33: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Znaki specjalne

Page 34: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Przykład

#include <iostream>

using namespace std;

int main()

{

cout<<"Nie\tdzie\nla"<<endl;

system("PAUSE");

return 0;

}

Page 35: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Struktura programu

W każdym języku program ma pewną ustalona

strukturę:

W języku C++ struktura ta jest następująca:

#include <iostream>

int main()

{

}

Page 36: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Zwykle układ tekstu w linii czy też fakt rozłożenia go

na kilka linii nie ma znaczenia.

Struktura programu

W języku C++ poszczególne instrukcje programu

kończymy zazwyczaj średnikami.

Page 37: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 1

#include <iostream>

using namespace std;

int main()

{

cout<<"Wyklad z programowania";

system("PAUSE");

return 0;

}

Page 38: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 1

#include <iostream>

using namespace std;

int main()

{

cout <<

"Wyklad z programowania"

;

system("PAUSE");

return 0;

}

Page 39: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Definicje zmiennych

Zwykle na początku programu musimy określić, jakiego

typu będą używane przez nas zmienne oraz

spowodować, żeby została zarezerwowana pamięć na

ich przechowanie.

Zmienna to symboliczne oznaczenie identyfikujące

określone miejsce w pamięci komputera.

W miejscu tym przechowywana jest wartość zmiennej.

Page 40: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Deklaracje zmiennych C++

typ_zmiennej nazwa_zmienej;

W języku C++ definicja zmiennej ma postać:

Aby móc definiować zmienne musimy poznać tzw. typy

predefiniowane w języku C++.

Page 41: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Typy predefiniowane

Zwykle w każdym języku programowania istnieją

pewne predefiniowane typy np.:

liczbowe

logiczne

znakowe

Page 42: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Przyjmujemy, że zmienne całkowite są ze znakiem. Domyślne traktowanie typu char zależy od

kompilatora.

Typy predefiniowane – C++

Do przechowywania liczb całkowitych:

short int

int

long int

Do przechowywania znaków alfanumerycznych:

char

Wszystkie powyższe typy mogą występować w dwóch

wersjach: ze znakiem (signed) i bez znaku (unsigned).

Page 43: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Do przechowywania liczb zmiennoprzecinkowych:

Typy predefiniowane – C++

float

double

long double

Zakresy poszczególnych typów mogą być albo ściśle

określone, albo zależeć od implementacji (czyli od

kompilatora)

Page 44: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Typy predefiniowane – C++

Page 45: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 2

#include <iostream>

using namespace std;

int main()

{

int a,b,xyz,LiczbaOsob;

float wsp;

system("PAUSE");

return 0;

}

Page 46: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Operatory

W każdym języku zdefiniowane są pewne operatory,

których można używać do konstruowania różnych

wyrażeń np. arytmetycznych, logicznych.

Operatory arytmetyczne: + - * /

Specyficzne operatory arytmetyczne: % (reszta z

dzielenia, zdefiniowany dla liczb całkowitych)

Typ zwracanego wyniku zależy zazwyczaj od typu

argumentów operacji.

Page 47: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Operatory

Operatory porównywania: <, <=, =<, >

Operatory logiczne koniunkcji i alternatywy:

&& - i

|| - lub

Page 48: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Operator przypisania

Do przypisania zmiennej wartości innej zmiennej lub

wyrażenia służy operator przypisania:

=

#include <iostream>

using namespace std;

int main()

{

int a,b,xyz;

a=5;

xyz=a+6;

system("PAUSE");

return 0;

}

Program 3

Page 49: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Komentarze w programie

Tekst ujęty w znaki komentarza nie jest

kompilowany/wykonywany

tekst od znaku // do końca linii (komentarze tego

typu można zagnieżdżać, w tym również w

komentarzach /* .... */

tekst ujęty w znaki /* .... */

(uwaga - komentarzy tego typu nie można zagnie-

żdżać)

Page 50: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 4

#include <iostream>

using namespace std;

int main()

{

//int a,b,xyz;

/*a=5;

xyz=z+6;*/

system("PAUSE");

return 0;

}

Page 51: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Biblioteki

Pewne operacje, np. związane z wprowadzaniem i

wyprowadzaniem informacji na urządzenia takie jak

np. ekran, mogą nie być częścią definicji języka

programowania.

Podprogramy odpowiedzialne za te czynności mogą

znajdować sie w jednej ze standardowych bibliotek,

w które zwykle wyposażane są kompilatory.

Aby można było skorzystać z zawartości biblioteki,

należy ją dołączyć do programu:

#include <nazwa_biblioteki>

Page 52: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 5

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

cout<<sqrt(4)<<endl;

system("PAUSE");

return 0;

}

Funkcja sqrt jest

zdefiniowana w biblio-tece cmath.

Page 53: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Instrukcje sterujące

Instrukcji sterujące umożliwiają warunkowe

lub iteracyjne wykonywanie pewnych

fragmentów kodu.

Page 54: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Instrukcja warunkowa

jeżeli warunek to instrukcje Wersja 1

jeżeli warunek to

instrukcje1

w_przeciwnym_wypadku

instrukcje2

Wersja 2

jeżeli warunek1 to

instrukcje1

jeżeli warunek2 to

instrukcje2

.......

w_przeciwnym_wypadku

instrukcje3

Wersja 3

Page 55: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Instrukcja warunkowa – C++

if(warunek) then instrukcje Wersja 1

If(warunek) then

instrukcje1

else

instrukcje2

Wersja 2

if(warunek1) then

instrukcje1

else if(warunek2) then

instrukcje2

.......

else

instrukcje3

Wersja 3

Page 56: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 6 #include <iostream>

using namespace std;

int main()

{

int a;

cin>>a;

if(a>0)

cout<<"liczba dodatnia"<<endl;

system("PAUSE");

return 0;

}

Page 57: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 7 #include <iostream>

using namespace std;

int main()

{

int a;

cin>>a;

if(a>0)

cout<<"liczba ";

cout<<"dodatnia"<<endl;

system("PAUSE");

return 0;

}

Page 58: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 7

Page 59: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 8 #include <iostream>

using namespace std;

int main()

{

int a;

cin>>a;

if(a>0)

{

cout<<"liczba ";

cout<<"dodatnia"<<endl;

}

system("PAUSE");

return 0;

}

Page 60: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 9

int a;

cin>>a;

if(a>0)

{

cout<<"liczba dodatnia"<<endl;

}

else

{

cout<<"liczba nie jest dodatnia"<<endl;

}

Page 61: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 10

int a;

cin>>a;

if(a>0)

{

cout<<"liczba dodatnia"<<endl;

}

else if(a<0)

{

cout<<"liczba ujemna"<<endl;

}

else

{

cout<<"zero"<<endl;

}

Page 62: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Instrukcje pętli

Pętle służą do iteracyjnego wykonywania pewnych

kroków.

Istnieją dwa rodzaje pętli:

• pętle wykonujące się określoną liczbę razy

• pętle wykonujące się wtedy gdy jest

spełniony pewien warunek

Page 63: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Pętle wykonujące się określoną liczbę razy

Liczba powtórzeń pętli jest z góry zadana.

W pętli funkcjonuje pewna zmienna, zwana licznikiem

pętli, „pamiętająca” ile razy pętla została wykonana.

for(instr_incjalizujaca;warunek;instr_kroku)

{

zawartosc_petli;

}

Page 64: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Pętle wykonujące się określoną liczbę razy

„licznik pętli” należy wcześniej zadeklarować.

Zawartość pętli jest wykonywana tylko gdy warunek jest

spełniony.

Instrukcji inicjalizujących może być kilka (wtedy są

oddzielone przecinkami), podobnie jest w przypadku

instrukcji kroku.

Jeżeli zawartość pętli to kilka instrukcji, to grupujemy je

za pomocą nawiasów klamrowych.

Page 65: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 11

#include <iostream>

using namespace std;

int main()

{

for(int i=0;i<4;i++)

{

cout<<"X";

}

system("PAUSE");

return 0;

}

Page 66: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 12

#include <iostream>

using namespace std;

int main()

{

for(int i=4;i>0;i--)

{

cout<<"X";

}

system("PAUSE");

return 0;

}

Page 67: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 13 #include <iostream>

using namespace std;

int main()

{

int a;

cin>>a;

for(int i=4;(i>0)&&(a>0);i--)

{

cout<<"X";

}

system("PAUSE");

return 0;

}

Page 68: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 14 #include <iostream>

using namespace std;

int main()

{

int a;

cin>>a;

for(int i=4;i>0,a>0;i--)

{

cout<<"X";

}

system("PAUSE");

return 0;

}

Page 69: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Pętle których wykonanie zależy od warunku

W pętlach wykonujących się dopóki zachodzi pewien

warunek:

warunek sprawdzamy PRZED pierwszym wykonaniem

instrukcji wewnątrz pętli, a wiec pętla może nie być

wykonana ani razu.

while(warunek)

{

zawartosc_petli;

}

Page 70: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 15 #include <iostream>

using namespace std;

int main()

{

int a=5;

while(a>1)

{

cout<<"X";

a--;

}

system("PAUSE");

return 0;

}

Page 71: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 16 #include <iostream>

using namespace std;

int main()

{

int a=5;

while(a>1)

{

cout<<"X";

}

system("PAUSE");

return 0;

}

Page 72: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 17 #include <iostream>

using namespace std;

int main()

{

int a=5;

while(a>1)

{

cout<<"X";

}

a--;

system("PAUSE");

return 0;

}

Page 73: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Pętle których wykonanie zależy od warunku

W pętli do..while warunek sprawdzamy PO

pierwszym wykonaniu instrukcji wewnątrz pętli, a wiec

pętla będzie wykonana przynajmniej raz.

do

{

zawartosc_petli;

}

while(warunek);

Page 74: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 18 #include <iostream>

using namespace std;

int main()

{

int a=5;

do

{

cout<<"X";

}

while(a<0);

system("PAUSE");

return 0;

}

Page 75: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Program 18 #include <iostream>

using namespace std;

int main()

{

int a=5;

do

{

cout<<"X";

a--;

}

while(a>1);

system("PAUSE");

return 0;

}

Page 76: Podstawy Programowania - merlin.fic.uni.lodz.plmerlin.fic.uni.lodz.pl/MSkulimowski/Programowanie_1.pdf · Procesor zawiera dwa podstawowe elementy • element nadzorujący i koordynujący

Wyjście z pętli

Wyjście z pętli umożliwiają nam instrukcje break i

continue.

break - przerywa wykonanie pętli w której jest

bezpośrednio umieszczone.

contimue - przerywa dany obieg pętli, przechodząc

do wykonywania następnego obiegu.