matematykaszkolna.pl
Programowania kolos :) Lukas: Dziadek Mróz jak będziesz aktywny to daj znać emotka
12 sty 15:27
Dziadek Mróz: Ja jestem aktywny, pisz.
12 sty 15:48
Lukas: 2. zasieg, czas zycia, zakres zmiennych 3. wyjasnij i zilistruj pojecia void, continue, default, strchr
12 sty 16:30
Dziadek Mróz: 2. zasięg − tak jak pisaliśmy wcześniej są zmienne globalne i lokalne. czas życia − używamy tu słowa kluczowego static. Gdy mamy funkcję i w niej zmienną static to po wyjściu z tej funkcji ta zmienna zachowuje swoją wartość, przy kolejnym wywołaniu funkcji możemy operować jeszcze na starej wartości zmiennej. zakres − należy pamiętać, że każda zmienna ma swoją wielkość, char (1B), int (4B), ... , więc używając ich można wyjść poza zakres tej zmiennej i otrzymać zafałszowaną wartość 3. void − typ bezzwrotny, funkcje tego typu wykonują tylko jakieś obliczenia nie zwracając żadnej wartości. continue − słowo kluczowe pomija wykonywania obliczeń w danej iteracji, w pętli for w momencie wystąpienia słowa kluczowego continue, dana iteracja jest przerywana i wykonywana jest kolejna iteracja default − używane w switch() jako wybór inny z możliwych, np. wybrać można opcje 1−3 ale wpiszemy 4 to wtedy wywoła się default. strchr − nie używałem nigdy, ale z tego co czytam to funkcja zwracająca pozycję znaku w napisie http://www.cplusplus.com/reference/cstring/strchr/
12 sty 16:44
Lukas: masz jeszcze chwilę bo jutro dzień sądu ?
12 sty 16:48
Dziadek Mróz: Pisz co tam masz.
12 sty 16:48
Lukas: 3. Podac znaczenie i przykłady słów kluczowych case, register, void, unsigned, getch 4. Napisac program który losuje liczby z przedziału [−50; 50] do momentu az ich suma bedzie parzysta. 5. Napisac funkcje która usuwa z tekstu podanego jako parametr pierwsze wystąpienie wyrazu usun
12 sty 16:56
Lukas: 6. Podać przykłady przekazywania parametru i "zilustrować"
12 sty 16:57
Dziadek Mróz: 3. case − używane w switch(), gdy zmienna w switch będzie miała taką samą wartość jak po słowie kluczowym case to wykonuj instrukcje int opcja = 1; switch(opcja) { case 1: { cout << "opcja 1" << endl; } } register − to słowo kluczowe mówi kompilatorowi, żeby daną zmienną umieścić w rejestrze procesora, nie można tutaj odwoływać się do adresu zmiennej, bo rejestr nie jest adresem register int zmienna; void − jak wyżej void wypisz(int wiek) { cout << "Twój wiek to: " << wiek << endl; } wypisz(85); unsigned − słowo to oznacza, że dana zmienna nie może przyjmować wartości mniejszych od zera, inaczej mówiąc, zmienna może być tylko dodatnia z zerem włącznie, zakres wartości to suma zakresów ujemnego i dodatniego int zmienna1; // od −2 147 483 648 do +2 147 483 647 unsigned int zmienna2; // od 0 do +4 294 967 295 getch() / getchar() − to funkcja pobierania danych z klawiatury for (; getch() != 27; ) { cout << "Nie wcisnąłeś ESC!" << endl; } 4. Pokaż jak sam to wypociłeś, wrzuć na hosting kod programu 5. Jak w 4.
12 sty 17:14
Lukas: o 18 wrzucę, poczekasz czy Ci się spieszy bardzo ?
12 sty 17:20
Dziadek Mróz: Rób sobie powoli, jak wrzucisz to zajrzę i popatrzę.
12 sty 17:22
Lukas: #include <iostream> #include <ctime> #include <cstdlib> using namespace std; int main() { int suma = 0,liczba=0; srand(time(NULL)); for (; ; ) { liczba = (rand() % 100) − 50; cout << liczba << endl; suma = suma + liczba; if (suma % 2 == 0) break; } cout << "osiagnieto parzysta sume liczb" << endl; system("pause"); return 0; }
12 sty 17:26
Dziadek Mróz: No i git, dawaj kolejne.
12 sty 17:30
Dziadek Mróz: A jeszcze w grudniu nie wiedział jak wygląda pętla for
12 sty 17:31
Lukas: Ok jest ?
12 sty 17:32
Lukas: I tak coś czuję, że uwalę
12 sty 17:32
Lukas: z tym rand jest ok ?
12 sty 17:35
Dziadek Mróz: Tak
12 sty 17:38
Dziadek Mróz: Jak się kompiluje i działa to ok
12 sty 17:39
Lukas: na kartce piszę, liczba = (rand() % 100) − 49 na telefonie jestem
12 sty 17:40
Dziadek Mróz: Działa
12 sty 17:44
Lukas: Ale nie powinna być druga wersj tego rand?
12 sty 17:55
Lukas: Up
12 sty 18:09
Dziadek Mróz: rand() zwraca wartości od 0 do RANDMAX, więc wylosowując 0 początkowo otrzymasz −50, a w drugim −49
12 sty 18:16
Dziadek Mróz: Jak robisz totolotka to piszesz: los = rand() % 6 + 1; rand() % 6 ∊ {0, 1, 2, 3, 4, 5}
12 sty 18:17
Lukas: Czyli pierwsza wersja emotka
12 sty 18:17
Lukas: Jeszcz Cię pomecze za chwilkę jak mi ten laptop zacznie działac
12 sty 18:19
Lukas: narysuj scheamt blokowy programu ktory zakonczy sie gdy dwie sasiednie wprowadzone liczby beda takie same
12 sty 19:56
Dziadek Mróz: To już robiliśmy, należy zapisać poprzednią liczbę w akumulatorze i porównywać z nowo wprowadzaną liczbą. Przetwórz na schemat blokowy tylko.
12 sty 20:31
Lukas: wiem, że robiliśmy mam nawet kod ale z schematem blokowym gorzej jeszcze mam dwa schematy do sprawdzenia zaraz wrzuce
12 sty 20:35
Lukas: Narysować schemat blokowy programu wczytujacego z klawiatury liczby calkowite do momentu az dwie kolejne będą identyczne" i "Schemat blokowy progamu wczytującego n liczb z klawiatury (n zadane też z klawy) i liczenie z tego średniej" dy
12 sty 20:35
Dziadek Mróz: JavaBlock i do dzieła, zmienne deklaruje się jak w JavaScript, więc samo przydzieli im typy.
12 sty 20:40
Lukas: ok do której jestes na forum ?
12 sty 20:44
Lukas: http://pokazywarka.pl/p9qrbs/ moga byc bledy
12 sty 20:51
Lukas: Podac przyklady zmiennych całkowitych różnych wielkości (ujemne/dodatnie male/duze itp.
12 sty 20:57
Lukas: zobaczysz jeszcze wcześniejesze zadanie 6 ?
12 sty 20:59
Dziadek Mróz: W pierwszym, a skąd wiesz, że poprzednia wprowadzona liczba nie będzie zerem? Najlepiej zainicjalizować poprzednią pobierając ją z wejścia a później w pętli podawać liczbę. podaj poprzednią wykonuj: podaj liczbę dopóki poprzednia == liczba W drugim dobrze.
12 sty 21:07
Lukas: a możesz spojrzeć na 6 do góry ?
12 sty 21:08
Dziadek Mróz: To przekazywanie parametru jako argument w funkcji. funkcja(argument) { operacje } funkcja(parametr);
12 sty 21:12
Lukas: i to wsytarczy ? do inline mam takie coś znaczy to, że kompilator widząc że funkcja jest inline w miejsce jej wywołania nie wstawia jak w normalnym przypadku wskaźnika do tej funkcji w pamięci, lecz wpisuje jej kod w miejsce jej wystąpienia. ?
12 sty 21:17
12 sty 21:25
Lukas: napisz funkcje ktora z tekstu usunie wszystkie cyfry ? tutaj jestem zielony totalnie
12 sty 21:27
Lukas: jesteś ?
12 sty 21:38
asdf: jesli masz: char slowo[20] = 'to2je3st4jak5istek7st'; char noweSlowo[20]; to: int index=0; for(int i=0;i<20;i++) { if((slowo[index] >= 48) && (slowo[index] < 58) ) continue; noweSlowo[index++] = slowo[index]; }
12 sty 21:47
asdf: dlaczego >= 48 i mneijsze od 58: bo 0 w ascii to 48, 1 to 49, 2 to 50, ... , a 9 w ascii to 57
12 sty 21:48
Lukas: takie coś napiałem bool removeFirstUsun(char *str) { char *usunpos = strstr(str, "usun"); if(usunpos == NULL) { return false; } strcpy(usunpos, usunpos+4); return true; }
12 sty 21:51
Lukas: podoba wam się ?
12 sty 21:51
Dziadek Mróz: Jak działa to może się każdemu spodobać asdf, nie lepiej korzystać ze znaków? if((slowo[index] >= '0') && (slowo[index] <= '9'))
12 sty 21:55
Lukas: Dziadzek moge Cię prosić o te schematy bo totalnie nie wiem jak poprawić i cały czas pisze z fona bo laptop odmówił posłuszeństwaemotka
12 sty 21:56
Lukas: korekta #include <cstdio> #include <cstring> bool removeFirstUsun(char *str) { char *usunpos = strstr(str, "usun"); if(usunpos == NULL) { return false; } strcpy(usunpos, usunpos+4); return true; } int main() { char str[20] = "Ala ma usunkota"; printf("%s\n", str); removeFirstUsun(str); printf("%s\n", str); return 0; }
12 sty 22:03
asdf: @Dziadek chcialem pokazac, ze kazdy znak to jakas liczba Lukas − fajna nazwa funkcji! "removeFirstUsun" Ciekawe, czy by za to z pracy wywalili... (zartuje)
12 sty 22:14
Lukas: Panowie pomożecie z tymi schematami bo na prawdę ciezko mi z telefonu to wstawićemotka jakaś dobra dusza ?
12 sty 22:19
Dziadek Mróz: Lukas ja je robię i testuję na bieżąco ale nadal coś się wysypuje
12 sty 22:32
asdf: Nie chce mi sie tego rysowac...takie rzeczy jak bedziesz miec troche wprawy od razu sie kodzi. Narysować schemat blokowy programu wczytujacego z klawiatury liczby calkowite do momentu az dwie kolejne będą identyczne" algorytm: start: a ← − b ← //dalem takie b poczatkowe, bo "nie da" sie z klawiatury zapisac liczby jako nieskonczonosc. 1. wczytaj a. 2. a == b ? 2.1 jesli tak: zakoncz 3. b ← a 4. powrot do 1. "Schemat blokowy progamu wczytującego n liczb z klawiatury (n zadane też z klawy) i liczenie z tego średniej" − to juz chyba samemu...po prostu wczytujesz kolejno n zmiennych (zwykly for), za kazdym razem w iteracji dodawaj do zmiennej suma tą wartość wczytaną, na koncu zrob: srednia = suma/n i koniec. Wiecej rysowania niz pisania
12 sty 22:41
Lukas: dzięki za pomoc mam nadzieję ze uda sie dobrze napisac bo jakis postep zrobiłem od grudnia
12 sty 22:54
asdf: lepiej jest czasem sie rzucic na gleboka wode, sie troche pomeczyc, ale sie nauczyc wiecej niz przykladami z ksiazki...Jesli znasz podstawy to mozesz napisac programy tj.: choinka (2 fory z kilkoma ifami...), mnozenie macierzy (3 fory zagniezdzone) obliczanie wyznacznika macierzy metoda laplace'a Swoja drogą − ostatnio musialem napisac fajny programik, 7 zagniezdzonych forow
12 sty 23:01
Lukas: Ja niedługo będę mieć obiektówkę hohoh pisanie gier yolo
12 sty 23:06
12 sty 23:08
jakubs: asdf no to fajna złożoność obliczeniowa tego programu emotka
12 sty 23:09
asdf: jakubs − inaczej sie nie dalo, jeszcze nikt nie wymyslil do tego zadania szybszego algorytmu. Z resztą złożoność złożonością...jeszcze trzeba popatrzeć na takie zadanie trzezwiej − ile ono na prawde bedzie sie wykonywac dla okreslonych danych i jak czesto uzytkownik z tego bedzie korzystac. Jesli ma on tego uzyc raz na 2 minuty i poczekac te dwie sekundy − to chyba nie takie straszne Czas to pieniądz, a pracodawca tez na to patrzy w taki sposob: "nic za wiele na tym nie zyskam jesli przyspiesze dzialanie algorytmu o 20%, jedyne co strace to czas (i kase) na rozkminianie tego zadania przez pracownika"
12 sty 23:20