[C/C++] parę pytań i odpowiedzi |
[C/C++] parę pytań i odpowiedzi |
08.02.2006 - 15:53
Post
#1
|
|
|
Grupa: Postów: 0 Dołączył: -- Nr użytkownika: 0 Ostrzeżenie: (0%)
|
1.Typy zmiennych i ich zastosowanie w języku C++
Każdy język programowania operuje na stałych i zmiennych. W C++ dostępne są następujące podstawowe typy danych: int -typ całkowity(liczba całkowita), dozwolone dla niej modyfikatory to long (długa), short (krótka), signed (ze znakiem) i unsigned (bez znaku). Zależnie od architektury komputera i naszej wersji C, typ ten może zająć 2, 4 lub więcej bajtów pamięci char -zmienna znakowa zajmuje 1 bajt pamięci komputera znak, prosty, elementarny typ. Jest stosowany do przechowywania niewielkich liczb (!) naturalnych (0-255) oraz znaków. Stanowi podstawę istnienia łańcuchów znakowych, używanych do przechowywania napisów. float - liczba rzeczywista, zmiennoprzecinkowa, służy do reprezentacji liczb niecałkowitych, możliwe jest zastosowanie modyfikatora long, zajmuje 4 bajty pamięci (zależnie od architektury maszyny - 4, 8, itp.). typ zmiennopozycyjny pojedynczej precyzji double - typ zmiennopozycyjnny podwójnej precyzji liczba rzeczywista podwójnej precyzji, nie wdając się w szczegóły, można za pomocą takich liczb przedstawić wartości o wiele większe (rzędu 104000) lub bliższe zeru (mniejsze - rzędu 10-4000) niż w przypadku float void - typ pusty Typy złożone: Typ tablicowy int[],char[] Klasy (klasy struktury i unie) enumeratory (wyliczenia) Modyfikatory: Unsigned - bezznakowe Signed - znakowe (domyślne) Short - krótkie Long - długie 2.Operatory stosowane w programowaniu w języku cc++ OPERATORY MATEMATYCZNE: + dodawanie - odejmowanie * mnożenie / dzielenie (przy dzieleniu liczb całkowitych wynikiem jest również liczba całkowita) % dzielenie modulo (wynikiem dzielenia liczb całkowitych jest reszta) ++ inkrementacja jest to zwiększenie wartości zmiennej o jeden -- dekrementacja zmniejszenie wartości zmiennej o jeden Operator inkrementacji jak i dekrementcji może być użyty przyrostkowo lub przedrostkowo i tylko przy zmiennych typu całkowitego OPERATORY RELACYJNE: Operatory te porównuja wartość operatorów i zwracaja wynik typu BOOL czyli prawda lub fałsz. > większy < mniejszy >= większy równy <= mniejszy rowny == równy != nierówny OPERATORY LOGICZNE: && koniukcja (inaczej i) || alternatywa (lub) ! negacja (nie) Operatory te służą do łączenia wyrażeń logicznych. OPERATORY BITOWE: & koniukcja bitowa ! alternatywa bitowa ^ bitowa różnica symetryczna ~ dopełnienie jedynkowe >> przesunięcie bitowe w prawo << przesunięcie bitowe w lewo 3.Funkcje iteracyjne,kryteria doboru Do instrukcji iteracyjnych zaliczamy następujące pętle: a) while b)do while c)for WHILE postać ogólna: while(war_logiczny) {............ ............. ............} W pętli tej najpierw oblicza się warunek logiczny. Jeśli wartość jest różna od zera to wykonuje się instrukcję, a następnie oblicza się wyrażenie. Ten cykl powtarza się do chwili, w której wartość wyrażenia stanie się zerem. DO WHILE Składnia funkcji do while jest następująca: do { instrukcja .......... .......... }while(wyrażenie czyli war_log); Najpierw wykonuję się instrukcje, a następnie oblicza wyrażenie .Jeśli jest prawdziwe, to ponownie wykonuje się instrukcję itd. Pętla zostanie zatrzymana wtedy, kiedy wyrażenie stanie się fałszywe. Instrukcja do while wykorzystywana jest w sytuacji gdy wymagane jest co najmniej jednego przejścia pętli. FOR for(wyr1;wyr2;wyr3) instrukcja Wszystkie trzy składniki są wyrażeniami. Najczęściej wyr1 i wyr3 są przypisaniami lub wywołaniami funkcji, a wyr2 jest wyrażeniem warunkowym. Jeśli brak warunku wyr2 to przyjmuję się że jest on zawszę prawdziwy a więc jest pętlą nieskończoną. W instrukcji for pierwsze podwyrażenie oblicza się tylko raz; jest to część inicjująca stan pętli. Drugie wyrażenie musi mieć typ arytmetyczny lub wskaźnikowy; jest ono obliczane przed każdym przebiegiem pętli i jeśli stanie się zerem, to wykonanie instrukcji for zostanie przerwane. Trzecie wyrażenie obliczane jest po każdym przebiegu pętli i określa zmianę stanu pętli. 4.Funkcje warunkowe stosowane w programowaniu języka c++ Funkcje warunkowe wykorzystywane są w sytuacjach gdy chcemy dokonać wyboru jednej z dwóch opcji lub więcej. Warunkiem wyboru jest uzyskanie wartości logicznej prawda(TRUE) lub fałsz(FALSE).Najczęściej stosowaną instrukcją jest instrukcja warunkowa IF Postać ogólna: IF('warunek logiczny'); { blok instrukcji } 5.Deklarowanie stałych w języku c/c++ Za pomocą słowa const lub makra #define 6. Wskaźniki i ich rola w programowaniu Wskaźnikiem nazywamy zmienną wskazującą na inną zmienną pamięci. Typ wskaźnika powinien odpowiadać typowi zmiennej wskazywanej. Stosowane są dwa operatory wskaźnikowe * &,wskaźniki pozwalają na przekazywanie parametrów i zwracanie nieokreślonej liczby parametrów. Wskaźniki są wykorzystywanie do przekazywania parametrów do funkcji i zwracania wartości przez funkcję. 7.Rekurencje i referencje C/C++ Referencje- zmienne referencje są pokrewnymi zmiennych typu wskaźnikowego muszą być inicjowane w miejscu deklaracji. Najlepiej zmiennymi tego samego typu. Zmienne referencyjne są to synonimy innych zmiennych. Zmienne tego typu wykorzystywane są do przekazywania parametrów do funkcji i zwracania wartości przez funkcję. Postać ogólna: typ zmienna_z; typ&zmienna_ref=zmienna_z; Rekurencja- funkcje wywołują same siebie. Wykorzystywane są np. do obliczenia silni 8.Struktury i unie: deklaracja i definiowanie typów i zmiennych Struktury- są to typy zmiennych złożonych które mogą zawierać zmienne typów prostych i złożonych. Struktury wykorzystywane są do definiowania właściwości różnych obiektów. np. obiekt Monika można zdefiniować adres, wzrost, wiek. Unie- opisywać można tą samą definicją co struktury z tą różnicą że w unii można zainicjować wyłącznie jedną z istniejących pól. Unie wykorzystywane są do def właściwości innych obiektów. 9.Typy i znaczenie podziału na sekcje pól klasy w programowaniu Pola te mogą być umieszczone w trzech sekcjach: PRIVATE - sekcja prywatna ustawiona domyślnie. Pola tej sekcji są dostępne wyłącznie dla metod tej klasy oraz dla klas zaprzyjaźnionych friend PROTECTED - sekcja chroniona dostęp do pól tej sekcji mogą mieć poza metodami własnej klasy metody klas dziedziczonych PUBLIC - dostęp do tej sekcji uzyskujemy w sposób typowy np: dla struktur czyli przy użyciu operatora kropi nazwa_obiektu_klasy.nazwa_pola 10.Mechanizm tworzenia i niszczenia obiektów klas w programowaniu w języku C++ Konstruktory służą do tworzenia obiektów klas. Typ konstruktora musi odpowiadać właściwością obiektu. Jeżeli do obiektu nie jest przekazywany żaden parametr, obiekt ten zostanie utworzony przez konstruktor bezparametrowy. Z destruktorów korzystamy wtedy gdy chcemy cofnąć, usunąć, zniszczyć obiekty danej klasy. Destruktor może być wywołany jawnie. 11.Co to jest klasa( w języku programowania)? Klasa stanowi szablon w którym definiujemy strukturę obiektu: dane i metody. Definicje klasy rozpoczynamy słowem kluczowym class, dalej nazwa klasy. Później deklarujemy zmienne(dane).Metody definiowane są poza definicją klasy. Klasa - jest typem zmiennych umożliwiających umieszczenie w jednym miejscu właściwości opisujących obiekt oraz metod operujących na tych polach. Postać ogólna klasy: class nazwa_typ_klasy 12.Naczym polega dziedziczenie w technice programowania C++, rodzaje? Dziedziczenie polega na przekazywaniu cech obiektom potomnym. W programowaniu C++ występują dwa rodzaje dziedziczenia: proste(przypadek dziedziczenia liniowego ,klasa bazowa -> pochodna -> klasa pochodna -> itd.) dziedziczenie złożone gdy klasa pochodna dziedziczy cechy od kilku klas bazowych równolegle: klasa bazowa 1 klasa bazowa 2 klasa bazowa 3 klasa pochodna ............. ............. klasa bazowa n Klasa pochodna im niżej hierarchii tym jej funkcjonalność wzrasta. Związane jest to z tym, że klasa pochodna dziedziczy wszystkie cechy klas bazowych( z wyłączeniem konstruktorów i destruktorów) i ponad to jest wzbogacana o cechy przypisane tylko tej klasie. Zaznaczam, że nie jestem autorem tekstu, jednak został wykorzystany za jego zgodą. |
|
|
|
![]() ![]() |
| Wersja Lo-Fi | Aktualny czas: 08.09.2010 - 23:20 |