PodstawyProgramowania W03, Studia

[ Pobierz całość w formacie PDF ]
//-->PODSTAWYPROGRAMOWANIAWykład 3PROWADZĄCY: dr inż. Marcin GłowackiE-Mail:Marcin.Glowacki@pwr.wroc.plPok.907 C-5Wrocław 2014WYKŁADY W03 v.1 (2014)Podstawy programowania(dr.inżMarcin Głowacki)23.PRZESTRZEŃ NAZWIstnieje zdefiniowana (wbudowana) przestrzeń nazw std (od standard).W języku C++ używamy nazw dla standardowych plików nagłówkowych bez .h na końcu – jestich około 50. Własne lub inne niestandardowe pliki nagłówkowe nadal zwykle nazywane są zrozszerzeniem .h.#include <iostream>a nie tak jak poprzednio#include <iostream.h>(ang. obsolete)Użycie zmiennych i funkcji wymaga wskazania do jakiej przestrzeni nazw należą.Można to zrobić na trzy sposoby:1. definicja globalna przestrzeni nazwprzed main deklarujemy:using namespace std;int main() {…..cout<<”Coś tam”;}2. definicja lokalna użycia przestrzeni nazww main oraz w innych funkcjach – wewnątrz klamryint main () {using std::cout;….cout<<”Coś tam”;….}3. bezpośrednie wskazanie przestrzeni nazw, do której należy dana funkcja przy każdymwywołaniu funkcjiint main () {…std::cout<<”Coś tam”;…}WYKŁADY W03 v.1 (2014)Podstawy programowania(dr.inżMarcin Głowacki)3ZNAKIZmienne znakowe (typuchar)zwykle mają rozmiar jednego bajtu, co wystarczy do przechowaniajednej z 256 wartości. Typcharmoże być interpretowany jako mała liczba (od0 do 255) lub jako element zestawu kodów ASCII. Skrót ASCII pochodzi od słów AmericanStandard Code for Information Interchange. Zestaw znaków ASCII oraz jego odpowiednik ISO(International Standards Organization) służą do kodowania wszystkich liter (alfabetułacińskiego), cyfr oraz znaków przestankowych.UWAGA Komputery nie mają pojęcia o literach, znakach przestankowych i zdaniach.Rozpoznają tylko liczby. Zauważają tylko odpowiedni poziom napięcia na określonym złączuprzewodów. Jeśli występuje napięcie, jest ono symbolicznie oznaczane jako jedynka, zaś gdynie występuje, jest oznaczane jako zero. Poprzez grupowanie zer i jedynek, komputer jest wstanie generować wzory, które mogą być interpretowane jako liczby, które z kolei możnaprzypisywać literom i znakom przestankowym.W kodzie ASCII mała litera „a” ma przypisaną wartość 97. Wszystkie duże i małe litery,wszystkie cyfry oraz wszystkie znaki przestankowe mają przypisane wartości pomiędzy 0 a 127.Dodatkowe 128 znaków i symboli jest zarezerwowanych dla „wykorzystania” przez producentakomputera, choć standard kodowania stosowany przez firmę IBM stał się niejako„obowiązkowy”.UWAGA ASCII wymawia się jako „eski.”ZNAKI i LICZBYGdy w zmiennej typucharumieszczasz znak, na przykład „a”, w rzeczywistości jest on liczbąpochodzącą z zakresu od 0 do 255. Kompilator wie jednak, w jaki sposób odwzorować znaki(umieszczone wewnątrz apostrofów) na jedną z wartości kodu ASCII.Przykład wypisywania znaków na podstawie ich kodów#include <iostream>int main(){for (int i = 32; i<128; i++)std::cout << (char) i;return 0;}Efekt:!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~_Ten prosty program wypisuje znaki o wartościach od 32 do 127.WYKŁADY W03 v.1 (2014)Podstawy programowania(dr.inżMarcin Głowacki)4ZNAKI SPECJALNEKompilator C++ rozpoznaje pewne specjalne znaki formatujące.Znak\a\b\f\n\r\t\v\'\"\?\\\0oo\xhhhOznaczaAlarm (dzwonek)Backspace (znak wstecz)Form feed (koniec strony)New line (nowa linia)Carriage return (powrót „karetki”; powrót napoczątek linii)Tab (tabulator)Vertical tab (tabulator pionowy)Single quote (apostrof)Double quote (cudzysłów)Question mark (znak zapytania)Backslash (lewy ukośnik)Zapis ósemkowyZapis szesnastkowyPrzed użyciem znaków specjalnych jako zwykłych znaków tj, \ ‘ ” 0 ? powinien pojawić się \zdejmujący znaczenie specjalne, np. ” \” ”, ‘\’ ’, ‘\0’ (znak Zero – Null)WYKŁADY W03 v.1 (2014)Podstawy programowania(dr.inżMarcin Głowacki)5KONWERSJE / RZUTOWANIE TYPÓWJeśli podczas przetwarzania danych w operacji pojawiają się zmienne typów niespodziewanychlub niezgodnych z definicją może następować jawna lub niejawna konwersja typów zmiennych.Konwersje niejawne występują w wyniku próby automatycznego dopasowania przez kompilatortypów zmiennych dla wykonania zadanej operacji, np.:int m,n;n=10;m=n+1.2345;W ostatnim wierszu dokonana została automatyczna konwersja zmiennej n na double, a następniepo wykonaniu dodania konwersja sumy do typu int zanim nastąpiło przypisanie do m.W wyniku operacji m będzie równe 11 (nastąpi odcięcie części ułamkowej, a nie zaokrąglenie).Konwersja jawna jest wywoływana świadomie przez programistę.Formy zapisu jawnej konwersji:dany_typ wynik, wyrażenie_1;inny_typ wyrażenie_2;--forma funkcjiwynik = wyrażenie_1 + dany_typ(wyrażenie_2);forma rzutowaniawynik = wyrażenie_1 + (dany_typ)wyrażenie_2;Przykład:int m,n;n=10;m=n+int(1.2345);Unika zbędnych konwersji niejawnych (n nie będzie konwertowane na double i double na int).Rezultat obliczeń będzie taki sam jak w poprzednim przykładzie.Przykład:#include <iostream>int main() {using std::cout; using std::endl;int wynik_i,m,n,a;float wynik_f,b;m=4;n=10; a=10;b=4;wynik_i=n+int(1.2345);cout << "wynik_i: " << wynik_i <<endl;wynik_f=n+1.2345;cout << "wynik_f: " << wynik_f <<endl;wynik_i=n/m;Efekt:cout << "wynik_i: " << wynik_i <<endl;Sam się przekonaj !wynik_f=a/b;cout << "wynik_f: " << wynik_f <<endl;return 0;} [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • tlumiki.pev.pl