do koszyka |
do koszyka |
do koszyka |
do koszyka |
do koszyka |
do koszyka |
do koszyka |
do koszyka |
do koszyka |
KURS JĘZYKA C++ PODSTAWY
00. Informacje ogólne - wstęp 01. Praca z konsolą - początki - cout 02. Zmienne (int, float, double) 03. Konsola cd. - cin 04. Zmienne tekstowe - (char, string) 05. Operatory 06. Instrukcje warunkowe (if - else, switch - case) 07. Pętle (for, while) 08. Instrukcje warunkowe cd. 09. Break, Continue 10. Funkcje 11. Zakresy ważności 12. Tablice zmiennych 13. Mała powtórka :))) 14. Struct - struktury 15. String, Vector - wstęp do STL 16. Wskaźniki, referencje 16a. Wskaźnik do typów prostych 16b. Wskaźnik do funkcji 16c. Operatory new i delete 16d. Referencje 17. Pliki źródłowe i nagłówkowe Zadania powtórzeniowe 18. Class - klasy 19. Konstruktor , destruktor 20. Argumenty domyślne, przeciążanie (przeładowanie) funkcji i operatorów C++ FAQ: 01. Operacje na plikach, odczyt/zapis02. Nie działa mi polecenie gotoxy() co robić ? 03. Jaki podręcznik do nauki C++ ? ostatnia aktualizacja: 29.08.2005 ZMIENNE - INT, FLOAT, DOUBLE
Po wyświetleniu kilku napisów nadszedł czas na wykonanie kilku prostych operacji arytmetycznych.
Rozpocznij nowy projekt (Console application) o nazwie np. Lekcja druga, uzupełnij brakujące linie programu. Włącz program (CTRL+F10), na ekranie zobaczysz wyświetloną liczbę 123 w dwóch kolejnych liniach. Teraz koniecznych jest kilka wyjaśnień odnośnie powyższego kodu: cout << "123"; to "zwykłe" wyświetlenie napisu cout << "\n"; "wyrzucamy" (wyświetlamy) na ekran znak końca linii (efekt taki jak naciśnięcie klawisza ENTER) //przejscie do nowej linii ten napis to tzw. komentarz. Bardzo dobrym nawykiem w czasie pisania programu jest komentowanie (opisywanie) jego trudniejszych fragmentów. Jest to o tyle istotne, że jeśli po jakimś czasie wrócimy do naszego programu dużo łatwiej będzie nam się w nim "połapać". Oczywiście przy programach składających się z kilku linii problemu nie ma, ale docelowo gdy będziemy tworzyć bardziej rozbudowane programy, system komentarzy okaże się niezbędny. Oczywiście komentowanie nie jest obowiązkowe - służy ono tylko naszej wygodzie. Komentarz który mieści się w jednej linijce oznaczamy na początku znakami "//", komentarze blokowe (tzn. takie które mogą objąć więcej linii tekstu/programu) oznaczamy na początku "/*" a na końcu "*/". Poprawnie "zakomentowany" fragment zmienia swój kolor dzięki temu wyraźnie odróżnia się od reszty programu. cout << 123; tutaj spora nowość, dotychczas wyświetlaliśmy napisy na ekranie podając je w cudzysłowach np. "napis", podanie instrukcji cout jakiegoś tekstu bezpośrednio (bez cudzysłowów) nie jest możliwe, dopuszczalne jest to tylko w sytuacji gdy podajemy liczby (docelowo ulegnie to zmianie ale na chwilę obecną przyjmijmy, że dotyczy to liczb). Co dzieje się gdy instrukcji cout podamy jako parametr liczbę (wyrażenie liczbowe), stara się on je przerobić na "zwykły" napis i wyświetlić na ekranie. Stąd własnie taki efekt, w obu liniach wyświetlona jest liczba 123. Co tak naprawdę nam to daje? Na pierwszy rzut oka być może nic ciekawego ale wpisz poniższy przykład i uruchom. Teraz dopiero możemy zobaczyć różnicę. cout << "123+12-1"; tutaj tekst jest po prostu wyświetlany (nie ważne co jest w cudzysłowach - wszystko jest traktowane jako tekst i bez żadnej "obróbki" wyświetlane na ekranie cout << 123+12-1; tutaj natomiast wyszystko co nie jest zablokowane znakami "" jest obliczane i dopiero wynik obliczeń jest wyświelany na ekran Dzięki tej właściwości możemy zapisywać nawet dosyć skomplikowane obliczenia i wyświetlać ich wynik na ekranie np. cout << (((25*6)+9)*3)/(12*6)-3; w tym przykładzie wykorzystałem operatory: + dodawanie - odejmowanie * mnożenie / dzielenie skorzystałem także z możliwości grupowania wyrażeń nawiasami, nie zawsze jest to konieczne ale ZAWSZE zwiększa czytelność programu więc myślę, że warto z tego korzystać. Na chwilę obecną właściwie wszystko jest fajnie ale co w sytuacji gdy chcemy przechować nasz wynik obliczeń na później, nie od razu go wyświetlać? Tu właśnie przychodzą nam z pomocą zmienne. Może wyjaśnijmy sobie co to jest zmienna, najprościej mówiąc jest to miejsce w pamięci komputera zarezerwowane specjalnie dla nas w którym możemy sobie coś zapisać / przechować. Podstawowe rodzaje zmiennych liczbowych które udostępnia nam C++ to: int - liczby całkowite float - liczby zmiennoprzecinkowe pojedynczej precyzji double - liczby zmiennoprzecinkowe podwójnej precyzji Aby utworzyć zmienną w naszym programie musimy podać: - jaką zmienną tworzymy typ zmiennej - program musi wiedzieć co tam będzie wpisywane, jakiego rodzaju dane - określić nazwę zmiennej może być wiele zmiennych jednego rodzaju dlatego w celu ich rozróżnienia każda ma inną nazwę, nazwa zmiennej to może być prawie dowolny ciąg znaków, pamiętać jedynie należy o tym, że w nazwie zmiennej nie mogą występować tzw. "białe znaki" (spacja,tabulator itp.) oraz należy wystrzegać się używania nazw zmiennych które zawierają polskie znaki (ą,ę,ć itp.). Dobrym zwyczajem jest w czasie tworzenia zmiennej na początku jej nazwy zaznaczać jaki typ ma ta zmienna, niby w czasie tworzenia jest to dla nas oczywiste ale po tygodniu czy też miesiącu gdy program się rozrośnie takie oczywiste to już może nie być. Tworzenie przykładowej zmiennej: Tworzymy zmienną typu int (przechowuje liczby całkowite) o nazwie i_MojaZmienna (litera i na początku nazwy nie jest obowiązkowa ale naprawdę nieraz się przydaje i myślę, że warto stosować taki zapis). Jak już wcześniej zostało wspomniane zmienne mają coś dla nas przechowywać, zmienne typu int przechowują dla nas liczby całkowite z zakresu od ok -2 miliardów do ok +2 miliardów, zakres ten może być inny (i zazwyczaj jest w innych środowiskach programistycznych, my pracując na Dev-C++ przyjmijmy podany zakres jako aktualnie obowiązujący). Co nam mówi zakres zmiennej? Po prostu nie można do zmiennej tego typu wpisać liczby spoza podanego zakresu. Jak wpisać liczbę do zmiennej? i_MojaZmienna = 125; W tym przykładzie został wykorzystany operator przypisania, znak =. Ten zapis po prostu mówi nam: niech zmienna o nazwie i_MojaZmienna jest równa 125. Do zmiennej możemy wprowadzić także wynik jakichś obliczeń: i_MojaZmienna = ((23*3)+151)/15; działanie najpierw zostanie obliczone a następnie jego wynik zostanie zapisany w zmiennej. Możemy także przeprowadzać obliczenia bezpośrednio na zmiennych: W tym przykładzie utworzyliśmy sobie 3 zmienne, następnie do dwóch z nich przypisaliśmy jakieś wartości, potem te wartości zsumowaliśmy i zapisaliśmy wynik w zmiennej trzeciej (i_ZmiennaC) a następnie wyświetliliśmy go na ekranie. Aby wyświetlić zawartość zmiennej na ekranie możemy skorzystać z zapisu: int i_Zmienna; i_Zmienna = 12; cout << i_Zmienna; Tutaj jako parametr dla funkcji cout podajemy zmienną, nie jest ona bezpośrednio ani tekstem (brak cudzysłowów) ani liczbą (nie jest jawnie podana żadna wartość) ale cout "wie" co mu dostarczamy i "wie" co ma z tym zrobić (szczegóły wkrótce :) ). W momencie gdy tworzymy jakąś zmienną jej wartość początkowa jest nieokreślona: np int i_Zmienna; ten zapis mówi nam tylko tyle: utwórz zmienną typu int o nazwie i_Zmienna. Następnym krokiem jest przypisanie zmiennej jakiejś wartości: np i_Zmienna = 12; przypisz zmiennej o nazwie i_Zmienna wartość 12. Jeśli już w momencie tworzenia zmiennej z góry będziemy znali wartość jaką powinna ona zawierać możemy zastosować taki zapis: int i_Zmienna = 12; co oznacza: utwórz zmienną typu int o nazwie i_Zmienna oraz od razu przypisz jej wartość 12. To co zostało powyżej opisane odnosiło się cały czas do zmiennych typu int, ale dokładnie tak samo "obsługuje" się zmienne typu float oraz double (różnica między typem float a double polega głównie na tym, że typ double jest "bardziej" precyzyjny) z tą różnicą, że do zmiennych tych możemy przypisywać liczby zmiennoprzecinkowe i na takich też liczbach przeprowadzane są obliczenia w tego typu zmiennych. Przykład zastosowań: float f_Zmienna; f_Zmienna = 1.23; f_Zmienna = 12.5 + 33.3; itp. double d_Zmienna; d_Zmienna = 24.56 * 23.12; cout << d_Zmienna; itp. Przy zmiennych liczbowych warto wspomnieć o jeszcze jednej istotnej rzeczy. Możliwa jest konwersja między dowolnymi typami liczb np. z liczby typu int do double czy też w drugą stronę. Pamiętać jednak należy o tym, że gdy przenosimy liczbę typu int do typu double, praktycznie nic nie ulega zmianie, natomiast przeniesienie w drugą stronę może powodować pewne "straty". Sytuacja jak poniżej. int i_liczbaA; double d_LiczbaB; i_LiczbaA = 10; //wpisanie liczby całkowiej (10) do zmiennej d_LiczbaB = i_LiczbaA; //wpisanie liczby całkowitej do zmiennej zmiennoprzecinkowej w tym przypadku problemu nie ma bo liczba pozostaje taka jaka była pierwotnie. int i_liczbaA; double d_LiczbaB; d_LiczbaB = 10.1234; //wpisanie liczby zmiennoprzecinkowej (10.1234) do zmiennej i_LiczbaA = d_LiczbaB; //wpisanie liczby zmiennoprzecinkowej do zmiennej całkowitoliczbowej UWAGA! Liczba ulega zmianie, tzn. zostaje "odcięta" (tracimy ją bezpowrotnie) z liczby część ułamkowa, docelowo w zmiennej i_LiczbaA znajdzie się liczba 10; Powyższa forma zapisu w wielu kompilatorach może powodować wyświetlenie komunikatu o błędzie (ostrzeżenie), kompilator domyślnie "widzi", że "chyba" popełniamy błąd (tracimy część liczby co może wiązać się z poważniejszymi komplikacjami w dalszej części programu). Aby poinformować kompilator, że jednak wiemy co robimy konwersję z jednego formatu liczbowego na inny powinniśmy zapisywać: int i_LiczbaA; double d_LiczbaB; d_LiczbaB = 10.1234; i_LiczbaA = (int)d_LiczbaB; W powyższym przykładzie podajemy kompilatorowi informację, że nasza zamiana liczb jest przez nas uwzględniona nie jest to pomyłka czy przeoczenie. Podajemy jawnie, że: do zmiennej typu całkowitoliczbowego zapisz zmienną typu zmiennoprzecinkowego odpowiednio ją "przycinając" (zapis (int)) do oczekiwanej przez nas postaci. 1. Napisz program który obliczy pole powierzchni kwadratu i wyświetli wynik na ekranie. 2. Napisz program który obliczy deltę (wyróżnik trójmianu kwadratowego) ze wzoru: delta = b2 - 4*a*c a następnie wyświetli na ekranie wartości a,b,c oraz wyliczoną deltę |
|