ErdeMO Temat założony przez niniejszego użytkownika |
Zmienne - o co w tym chodzi ?? » 2009-11-23 21:42:55 Witam, na starcie chce napisać żebyście nie-pisali że taki temat istnieje bo wyszukiwarka tego forum jest mało funkcjonalna. Zamiast pomocy w forum przeszukuje artykuły i znajduje 300 wyników.
Zaczynam programowanie w c++ od tego kursu. Na razie all rozumiem aż do lekcji 4. Nie rozumiem o co chodzi ze zmiennymi. Wklejam kod żeby zobaczyć o co chodzi (bo z opisu wynika ze co tam zmienia) i jest zwykły tekst który równie dobrze można by było napisać komenda couth którą się poznaje w lekcji trzeciej.
Nie wiem czy to jest nieuwaga piszącego poradnik czy specjalnie zrobione. Ale jak się zaczyna lekcje i nie wiadomo o co chodzi. Po przeczytaniu wstępu i wklejeniu kodu który praktycznie równie dobrze mógłbym napisać sam używając komend couth to odrazu się odechciewa czytać dalej ponieważ tym dalej czytasz tym bardziej nie wiesz o co tu chodzi. (czarna magia)
Dzięki za wyrozumiałość i czekam na małą podpowiedz o co tu biega z tymi zmiennymi.
|
|
DejaVu |
» 2009-11-24 08:48:51 Fragment obecnego kursu: Zmienna, jak sama nazwa wskazuje będzie się zmieniać w trakcie programu. Zmienna to pewien dość mały obszar w pamięci, w którym możemy przechowywać dane różnego typu np. liczby całkowite, liczby rzeczywiste (zmiennoprzecinkowe), znak, tekst oraz kilka innych informacji, które będą nas w przyszłości interesowały. Nie można jednak wszystkiego zapisywać do jednej zmiennej. Każda zmienna ma swoje przeznaczenie, wielkość i właściwości. Na zmiennych liczbowych możemy wykonywać operacje matematyczne, w innych z kolei możemy przechowywać tekst.
http://kursy.ddt.pl/?LessonId=4
|
/edit: Sekcja 8.3 z nowej wersji kursu, która prędko się nie ukaże: 8.3. PrzykładZademonstruję teraz na przykładzie, jak się deklaruje zmienne i jak się z nich korzysta.
#include <iostream>
int main() { int to_jest_zmienna; unsigned int tylkoDodatnie; float zmiennoprzecinkowa; char jeden_znak; unsigned char rowniez_znak; int abc = - 53; tylkoDodatnie = 22; zmiennoprzecinkowa = 12.42; rowniez_znak = 'c'; std::cout << "Wypisujemy zmienne:" << std::endl; std::cout << " to_jest_zmienna = " << to_jest_zmienna << std::endl; std::cout << " tylkoDodatnie = " << tylkoDodatnie << std::endl; std::cout << " abc = " << abc << std::endl; std::cout << " zmiennoprzecinkowa = " << zmiennoprzecinkowa << std::endl; std::cout << " jeden_znak = " << jeden_znak << std::endl; std::cout << " rowniez_znak = " << rowniez_znak << std::endl; return 0; } Efekt działania powyższego programu może wyglądać np. tak:
Wypisujemy zmienne: to_jest_zmienna = 2293728 tylkoDodatnie = 22 abc = -53 zmiennoprzecinkowa = 12.42 jeden_znak = rowniez_znak = c
Process returned 0 (0x0) execution time : 0.062 s Press any key to continue.
Zwróć uwagę na wypisane wartości zmiennych, którym nie została przypisana wartość początkowa. Wartości są przypadkowe. Warto więc inicjować wszystkie zmienne początkową wartością.
|
/edit2: Jeszcze dorzucam zadanie domowe: 8.9. Zadanie domoweMamy następujący kod:
#include <iostream> int main() { std::cout << "Liczba = " << nieznana << std::endl; return 0; } Próba kompilacji powyższego programu się nie powiedzie, a w logu kompilacji otrzymamy następujący komunikat:
error: 'nieznana' was not declared in this scope Popraw program tak, aby się skompilował i wypisał na ekranie liczbę 123. W programie nie wolno usuwać ani zmienić żadnej istniejącej linijki.
|
|
|
naiL |
» 2009-11-24 22:00:57 Jacie. Ekipa ma, z Panem Piotrem na czele Anielską cierpliwość godną ojca Franciszkanina co do naszych pytań. Ja zacząłem naukę właśnie z tej strony z racji tego że jest bardzo przystępnie przedstawiona "wiedza"(przedstawia nam się C++ jako coś co można w jakiś sposób poznać, zrozumieć). Mimo drastycznych przykładów które mącą głowę niedowiarkom na wiele godzin proponuję mimo wszystko brnąć dalej w lekcjach. Prosta sprawa. Przedstawione dalej przykłady operują coraz bardziej zmiennymi. Czarna magia zaczyna się potem, i znowu potem , i znowu potem,.... przychodzi to z potem. couth->cout. choć opis z lekcji 3 obiektu cout jest miażdżący dla początkujących. :] W programie nie wolno usuwa ć ani zmieni ć ż adnej istniej ą cej linijki.
To jak to zrobić inaczej?. Zastrzeżenie nie zwraca wartości: nie wolno DODAWAĆ żadnej nowej linijki. To chyba jedyny sposób;). Magiczne podwójne zaprzeczenie języka polskiego.;) Całe szczęście każdy z nas ma szansę w rok przelecieć się wkoło słońca. Dante: Jak ja kocham niemające związku wypowiedzi, które do niczego nie prowadzą, po prostu bajka. |
|
naiL |
» 2009-11-25 23:28:28 Dalsza polemika raczej nadaje się do innego tematu... Czemu? Faktycznie język wielu podręczników do wszelakiego rodzaju wiedzy czy to będą początki historii czy podstawy astrofizyki pisane są od samego początku takim samym tonem. Z racji, że taki jest styl autora. Jeśli kurs jest przeznaczony dla zielonych używanie na początku wielu trudnych i fachowych, oczywiście bardzo potrzebnych na początku określeń typu cout – to pre-definiowany obiekt, który służy do pokazywania różnego rodzaju rzeczy takich jak: łańcuch znaków (to w C++ każdy ciąg znaków zawarty w "cudzysłowie"), liczby, lub pojedyncze znaki("A").
"przecinek" zawiłość gramatyczna długich, wielokrotnie złożonych podrzędnie zdań może przyprawić o zawrót głowy, jeśli ktoś próbuje pojąć przedstawiony w takim zdaniu tok myślenia. :] Znakiem tego, że koledze z trudem przychodzi wyłapanie z treści o co teges ze zmiennymi opis pre-definiowanego obiektu(to są oczywiście magiczne dla mnie określenia które nie rozwijają się do lekcji z funkcji nawet) we wcześniejszej lekcji wydaje się omegą w porównaniu do alfy. Mistrzostwem świata wydaje mi się książka "Pierwsze starcie Język C++" Zbigniewa Kozy(bez urazy dla autora). cout->character output. Ten sam predefiniowany obiekt w Thinking in C++ opisany jest jako "console output". Które łatwiej zrozumieć, skoro mówimy o konsoli? Można się zgubić jeśli wszystko tłumaczone jest jednocześnie. "Pierwszych lekcji" powinno być więcej ;). Osobiście dla mnie kurs jest dość jasny. Wiele tygodni ślęczenia po nocach i wczytywania się w treść kursu pozwoliło mi zrozumieć dokładnie zaledwie kilkanaście lekcji, no bo taki jestem ;). i ten czas. Pozatym wielkie dzieło w porównaniu do innych podobnych portali. |
|
DejaVu |
» 2009-11-26 06:43:37 Moim zdaniem z nowego kursu będziecie znacznie bardziej zadowoleni niż z obecnego. Na chwilę obecną mam 13 lekcji, ale stoję w miejscu od dwóch tygodni ze wszystkim przez uczelnię i chęć poleniuchowania :) |
|
Error |
» 2009-11-29 11:22:15 Rozumiem ta lekcje ale takie jedno pytanie. Po co się tyle męczyć i pisać:
int liczba; liczba = 13;
cout <<"moja liczba to =<< liczba <<endl;
skoro można napisać w cout to samo i krócej.
cout <<"moja liczba to =13"<< endl;
i wyjdzie na w wyświetleniu to samo czyli
"Moja liczba to =13"
|
|
ZuuM |
» 2009-11-29 11:55:35 Na wyświetlaczu nie będzie różnicy. Pamiętaj że większość programów polega na interakcji z użytkownikiem. Dajmy na to mamy prosty programik liczący pole trójkąta.Najpierw program się ciebie zapyta o zmienna a i zmieną h. Podasz te dwa parametry (za każdym razem podajesz inne) i masz wynik wynik=0.5*a*h; (widać że wynik będzie też inny w zależności co podasz w "a" i w "h") Na końcu każdy chiałby zobaczyć co ten nasz program wyliczył. Dlatego wywołanie typu std::cout<<"Pole trójkąta wynosi wynik="<<wynik<<endl; Będzie lepsze niż std::cout<<"Pole trójkąta wynosi wynik=15"<<endl; Ponieważ nie zawsze pole będzie równe 15. Ot i cała filozofia tych zmiennych, czyli zmienne mogą ulec zmianie :) O i prosty program obliczania pola trójkąta: #include <cstdlib> #include <iostream>
using namespace std;
int main( int argc, char * argv[] ) { float a, h, wynik; cout << "Prosty program obliczania pola trojkata" << endl; cout << "Prosze podac dlugosc podstawy a= "; cin >> a; cout << "Prosze podac dlugosc wysokosci h= "; cin >> h; wynik = 0.5 * a * h; std::cout << " Pole trojkata wynosi wynik=" << wynik << endl; std::cout << " Pole trojkata wynosi 0.5*a*h=" << 0.5 * a * h << endl; std::cout << " Pole trojkata wynosi 15" << endl; system( "PAUSE" ); return EXIT_SUCCESS; }
|
|
dmx81 |
» 2009-12-02 23:10:23 dokladnie, Error - to sa tylko cwiczenia - sam jestem poczatkujacy w tym wszystkim, ale coraz bardziej sie wciagam, chociaz zaluje, ze nie zawsze czas pozwala.
co do tego tekstu - czesto przechodza mi przez mysl tez takie "zbuntowane" pytania, ze po co tak, skoro mozna latwiej... ale tu nie o to chodzi, ale zeby pocwiczyc
przyklad z trojkatem dobry, ale jeszcze mozna prosciej, ze piszac program - jesli z gory ustalasz komunikat do wyswietlenia - zgoda, podaj tylko cout....itd, ale jesli chcesz ta zmienna* modyfikowac (np cout<<"podaj imie"; cin>>imie; cout<<imie;)
* zmienna - dla nas to nazwa, ktora przechowywac bedzie jakas wartosc i za pomoca tej wlasne nazwie zwracamy sie do komputera do konkretnej zmiennej
wg mnie kurs jest w porzadku, a czego nie znajduje tu, szukam w internecie, najlepiej korzystac z paru zrodel - pewnie autor wolalby, aby jego kurs byl w pelni wyczerpujacy, ale nie do wszytskich mozna dotrzec tym samym tokiem myslowym - dlatego kiedy sie na czyms zatniecie, a odpowiedzi na forum was nie satysfakjonyja, przejzyjcie inne zrodla, a do tego przerabiajcie przyklady i sami eksperymentujcie
|
|
« 1 » |