matematykaszkolna.pl
c++ Lukas: Programowanie−Dziadek Mróz jestes może ?
26 gru 20:42
Dziadek Mróz: A no jestem, co trzeba?
26 gru 21:57
Lukas: Chcę coś tych programów ruszyć.
26 gru 21:58
Dziadek Mróz: To ruszaj i pokazuj rezultaty, sprawdzimy ich poprawność.
26 gru 21:59
Lukas: Napisz program drukujący na ekranie 19 gwiazdek ******************* #include <iostream> using namespace std: string * if (i=19 i>=0 i++) cout << i <<;
26 gru 22:11
Dziadek Mróz: Po kolei wytłumacz co robią poszczególne linijki kodu. np: #include <iostream> // co to jest i co robi
26 gru 22:16
Lukas: include to bibliotek która pozwala korzystać z korzystać z karty sieciowej, dźwiękowej czy też graficznej. string−napis if pęta która ma wyświetlić na ekranie ciąc gwiazdek o ilości 19 cout −wyświetla to co robię pętla
26 gru 22:20
jakubs: include to nie jest biblioteka. Derektywa #include dołącza plik o podanej nazwie do pliku źródłowego. iostream to biblioteka . Poczytaj więcej o preprocesorze emotka
26 gru 22:29
Dziadek Mróz: include to bibliotek która pozwala korzystać z korzystać z karty sieciowej, dźwiękowej czy też graficznej. string−napis if pęta która ma wyświetlić na ekranie ciąc gwiazdek o ilości 19 cout −wyświetla to co robię pętla Teraz moja wersja z kolorkami (zielone dobrze, czerwone źle i poprawka): #include <iostream> using namespace std : ; string * napis; // ale to jest zbędne więc wycinamy odtąd do końca jest źle bo brakuje funkcji głównej main() if (i=19 i>=0 i++) for(int i = 0; i < 19; i++) lub for(int i = 19; i > 0; i−−) cout << i "*" <<; Końcowy program wygląda następująco: #include <iostream> using namespace std; int main() { for(int i = 0; i < 19; i++) { cout << "*" << endl; } return 0; } Zaraz napiszę co musisz wiedzieć.
26 gru 22:31
Dziadek Mróz: Podstawą programu jest głowa i ciało. Głową są dyrektywy np: #include i ich wartości np: dla dyrektywy #include wartością są biblioteki <wbudowane>, "zdefiniowane" #include <iostream> #include <string.h> #include <stdlib.h> Ciałem są inne operacje, np. funkcje, klasy, procedury. Należy pamiętać o głównej funkcji (main (ang.) − główny). Funkcje to takie fragmenty kodu, które mają swój zdefiniowany typ, który zwracają. Funkcja main ma często typ całkowity (int) zwracający dwa wyniki (0 gdy program się wykonał prawidłowo i 1 gdy program zakończył się nieprawidłowo). Funkcje zwracają wyniki za pomocą return. int main() { ... return 0; // pamiętaj o średnikach, one kończą instrukcje w programie! } Pętle to takie fragmenty, które wykonują instrukcje tak długo aż nie osiągną warunku pętli. W tym przypadku była potrzebna pętla for. for(odkąd; dokąd; krok) odkąd to zdefiniowany iterator (tutaj int i) dokąd to warunek jaki kończy pętlę krok to co ile mamy wykonać jedną pętlę
26 gru 22:41
Lukas: Dziadek a ten program jest ok?
26 gru 22:42
Dziadek Mróz: cout to strumień wyjściowy na ekran z biblioteki <iostream>, wypluwa wszystko co mu nadamy. cin to strumień wejściowy z klawiatury, podajemy nim wartości do programu. Dla cout używamy operatora << a dla cin >>. Łatwo zapamiętać skojarzeniem w którą stronę wysyłamy dane. cout << dane; cin >> dane;
26 gru 22:44
Dziadek Mróz: Lukas, zadam podstawowe pytanie, masz kompilator i kolorowy edytor tekstu?
26 gru 22:45
asdf: przesiądźcie się na http://collabedit.com ...dobrze radzę.
26 gru 22:45
Lukas: mam
26 gru 22:47
Dziadek Mróz: https://code.google.com/p/pocketcpp/downloads/list Tu masz edytor tekstu i kompilator w jednym. Nie uzupełnia tekstu, należy uważać co się pisze. Jak chcesz łatwy edytor to pobierz to: http://sourceforge.net/projects/dev-cpp/files/Binaries/Dev-C%2B%2B%204.9.9.2/devcpp-4.9.9.2_setup.exe/download?use_mirror=skylink
26 gru 22:47
Dziadek Mróz: Lukas jak napisałeś ten program to skompilowałeś go?
26 gru 22:48
Lukas: nie
26 gru 22:49
Dziadek Mróz: To go skompiluj zanim pokażesz kod tutaj, ok? I tak długo poprawiaj aż nie zadziała lub nie wiesz co nie działa emotka
26 gru 22:52
Lukas: ok zaraz pokażę kod
26 gru 22:54
Lukas: http://wklej.to/yIIC6 błąd jest w tym string ale jak inaczej to zrobić ?
26 gru 22:55
Dziadek Mróz: To teraz wytłumacz co jest czym w 6 linijce ze string emotka
26 gru 22:56
Lukas: string to jest napis. Nie wiem jak zadeklarować inaczej gwiazdkę ?
26 gru 23:00
Dziadek Mróz: Gwiazdką deklaruje się wskaźniki i gwiazdka jako tako w C++ jest w tym celu zarezerwowana dla zmiennych. Gdybyś chciał zadeklarować gwiazdkę to możesz zrobić tak: char gwiazdka = '*'; lub #include <string> // to trzeba dopisać w głowie programu string gwiazdka = "*";
26 gru 23:05
Dziadek Mróz: Skompiluj i popraw to co kompilator wypluł, nie szukaj bez kompilacji błędów.
26 gru 23:06
Dziadek Mróz: A nawet jak masz biedne środowisko do pracy to tu jest łatwy kompilator online z edytorem i konsolą: http://www.tutorialspoint.com/compile_cpp0x_online.php
26 gru 23:08
Dziadek Mróz: Zawsze jak zaczynasz pisać program to wpierw napisz to: http://wklej.to/LCryi
26 gru 23:14
Dziadek Mróz: I wtedy pisz resztę programu między nawiasami wąsiastymi w int main()
26 gru 23:14
Lukas: poprawiłem na char gwiazdka='*' nie działaemotka
26 gru 23:17
Dziadek Mróz: Ok, nie działa bo reszty nie poprawiłeś.
26 gru 23:18
Lukas: ale jeśli nie używam stringa to co muszę dopisać ?
26 gru 23:20
Dziadek Mróz: Nie musisz używać stringa. Zresztą wiesz co? Widzę że jesteś na poziomie 0 i bierzesz się za programowanie w C++ nie mając o tym zielonego pojęcia. Jak masz jakieś materiały o programowaniu to je na spokojnie przeczytaj, zrozum, a jak zrozumiesz i pierwsze 10 napisanych programów zadziała to odezwij się tu na forum z cięższymi działami. Tu masz dużo poradników, wybierz 1 i z nim działaj: http://cpp0x.pl/kursy/Kurs-C++/1 http://main.edu.pl/pl/user.phtml?op=show&page=cpp&c=70000 https://www.youtube.com/watch?v=vUSKh0c2wy4&list=PLE84826ABF088F7E8 http://xion.org.pl/productions/texts/coding/megatutorial/ i wiele, wiele innych. Musisz wiedzieć co chcesz napisać a nie się domyślać. C++ wypełnia Twoje rozkazy, jesteś jego szefem i on robi to co mu napiszesz w programie. Najlepiej zacznij od schematów blokowych: http://kasia315.republika.pl/schematy_blokowe.htm http://www.algorytm.org/kurs-algorytmiki/schematy-blokowe.html http://edupomoc.w.interia.pl/poradnik/algorytm.htm Przygotuj do tych schematów zeszyt oraz ołówek i rysuj schematy, wykonuj je sobie, idź za strzałkami i sprawdzaj czy to dobre rozwiązanie. Później te schematy sobie w C++ napiszesz w postaci programu emotka Taka mała krytyka konstruktywna. Masz na to dużo czasu, ja też byłem sceptyczny ale jak w końcu zaczniesz to się uzależnisz i nie będziesz chciał skończyć emotka
26 gru 23:33
Dziadek Mróz: Bo my do porozumienia nie dotrzemy, skoro Ty nie wiesz co ja piszę i nie wiesz nawet jak się deklaruje zmienne, używa biblioteki czy nie rozróżniasz warunków od pętli.
26 gru 23:35
jakubs: Dziadku masz chwilkę? Mam pewien problem.. z C i wskaźnikami .
26 gru 23:39
Lukas: 13 stycznia kolokwium, Dzięki czytam
26 gru 23:42
jakubs: Albo w sumie poradziłem już sobie
26 gru 23:44
Dziadek Mróz: jakubs podziel się, jestem ciekawy co tam zrobiłeś
26 gru 23:47
jakubs: http://pastebin.com/EU14AMwq Mam tam sobie tablicę tab i chciałem aby osobna funkcja zaalokowała mi pamięć dla niej i osobna pamięć zdealokowała, czyli ogólnie zabawa na moich ukochanych wskaźnikach, bo trzeba było do funkcji przekazać wskaźnik. Dla Ciebie to jest pewnie oczywiste, jednak dla mnie wskaźniki to jeszcze ciężki orzech do zgryzienia.
26 gru 23:56
Dziadek Mróz: Nic nowego nie wprowadziłeś, jedynie przedłużyłeś program o dwie funkcje
27 gru 00:02
asdf: jakubs, wskaźnik to wskaźnik...ile razy WSKAZYWALES na kogos (adres w pamięci) palcem (czyli wskaźnikiem)? No właśnie − WSKAZYWALES , a nie byłeś tym kimś. Tak właśnie działa wskaźnik int pesel = 10; int * palec = &pesel; //masz juz gotowy wskaznik na kogos printf("ten koles ma taki numer pesel: %d", *palec); printf("adres wskaznika to: %d\n", &palec); printf("adres numeru pesel to %d, ale nie jestem pewien, sprawdz czy to te same adresy: %d\n", palec, pesel); pamiętaj tylko, że nie można zrobić coś takiego: int * wsk = 10; // sama liczba 10 nie ma (powiedzmy) adresu ale juz cos tkaiego: int dziesiecabedziedwanascie = 10; int piecabedziecztery = 5; int * wsk = &dziesiecabedziedwanascie; *wsk = 12; printf("%d\n", dziesiecabedziedwanascie); wsk = &piecabedziecztery; *wsk = 4; itd... tak to chyba działało dawno nie pisalem w C (i chyba nie wroce do tego, ale od tego jezyka zaczynalem i uwazam, ze jest najodpowiedniejszy...zadne tam C#, js...mimo tego, że teraz w tym siedzę − zdecydowanie "przyjemności na później" )
27 gru 02:50
asdf: printf("adres numeru pesel to %d, ale nie jestem pewien, sprawdz czy to te same adresy: %d\n", palec, &pesel); tak powinno być
27 gru 02:51
Dziadek Mróz: Bardzo ładny przykład ze wskaźnikiem
27 gru 12:10