matematykaszkolna.pl
asdf@ Arczi: Siema, mam pytanie asdf, jaki zbiór zadań z fizyki ogólnej proponujesz rozwiązywać żeby zdać na ZUT fizykę ćwiczenia,wykład+ być ogarniętym na wykłady i laborki z elektroniki? Być ogarniętym w sensie znać podstawy fizyki ogólnej, na tyle żeby zrozumieć o czym oni mniej więcej mówią na elektronice to jedna kwestia, natomiast zupełnie inna kwestia to fizyka ogólna wykład i ćwiczenia Można w sumie rozbić to na dwie odrębne kwestie a)fizyka ogólna+wykład b)elektronika wykład+laborki. Zasadniczo do teorii mam Resnicka&Hallidaya i można by było Jay Oreara rozwiązywać,ale mam fizykę i elektronikę od pierwszego semestru i tylko przez 1 semestr, a on sypie w elektryce jakimiś całkami krzywoliniowymi/powierzchniowymi, ja znam może podstawy do całek oznaczonych a muszę ogarniać te fundamentalne rzeczy z prądu itd. O ile mechanikę, ruch itd mogę robić z Oreara(może znasz coś lżejszego na fizykę ogólną) to elektryki i wyżej już nie dam rady z niego zrobić,bo on odwołuje się do różnych rzeczy jak mechanika kwantowa tłumacząc coś, a ja muszę w 2 tyg nauczyć się podstaw z prądu, bo powiedziała(dr. od laborek elektronika), że będzie wyrzucać z sali jak ktoś przyjdzie nie ogarnięty i nie będzie umiał tego liczyć,mówiła coś o wejściówce. Generalnie muszę odwiedzić naszą bibliotekę tylko nie wiem co mi się przyda,więc pytam . Laborki z elektroniki mam z panią Pelczar, wykłady z Olechem. Fizykę wykład mam z T.Bodziony i 1 wykład był dziwny bo o piramidach i sumerach. Myślałem,że pomyliłem sale lol. Ćwiczenia natomiast mam z C.Rudowicz.
4 paź 13:19
Trivial: Większość całek powierzchniowych z Resnicka i Oreara sprowadza się do policzenia pola powierzchni (najczęściej sfery) − np. biorąc prawo Gaussa ε0S E∘dS = Qwewn. Nagle okazuje się, że E jest w tym samym kierunku co dS i do tego jest stałe, czyli ε0E ∬S dS = Qwewn. a całka ∬S dS to nic innego jak pole powierzchni czyli: ε0E|S| = Qwewn. I tutaj kończą się całki. Z krzywoliniowymi jest podobnie. Podsumowując: nie ma się czego bać.
4 paź 15:31
Arczi: Ok spoko później zajrzę do zaporożca jak się liczy powierzchniowe i krzywoliniowe i zapytam pani na matematyce. Ale jak asdf wpadnie to dobrze by było żeby powiedział z czego się uczył, że zdał. I co wie o tych wykładowcach Dzięki
4 paź 16:17
asdf: z czego się uczyłem na fizykę − Trivial mi tłumaczył (dzięki, dzięki, dzięki!) Z elektroniki: Kybett H., Boysen E.: Elektronika dla każdego. Przewodnik, Helion, Gliwice, 2012 Jest w bibliotece głównej − wypożyczałem rok temu. Z dr. Pelczar zajęć nie miałem, ale jak chociaż troche jest się ogarniętym to się zda. Co do dr. Olecha − w tamtym roku przepisywał oceny z laborek, ja miałem z dr. Łazoryszczakiem, więc miałem pół oceny w górę na wejściu, odpowiadać nie musiałem bo dostałem 5. O dr. Olechu mówią nawet jego koledzy z katedry, że to najlepszy inżynier jakiego znają, np. zbudował własną kartę graficzną Wiedzę ma ogromną, jak i poczucie humoru. Jak chcesz coś umieć to się na pewno nauczysz u niego na wykładach, jak nie − to nie chodź na wykłady, bo szkoda czasu. Obecności to on nie sprawdza. Fizyka: Ćwiczenia miałem z dr. Lewandowską, więc nie wypowiem się na temat C. Rudowicza. Jak masz możliwość jeszcze to przepisz się na laboratoria do Pana Wardala − nie jest ciężko zaliczyć, a jak nie masz już możliwości (i chyba na pewno nie masz już) to rób sprawozdania i choć zaliczać co tydzień na konsultację najlepiej. Na studiach jest tak, że dużo rzeczy wygląda dziwacznie i jest na pierwszy rzut oka przerażająco trudne, ale to tylko dlatego, że w szkole średniej z takimi równaniami nie ma się styczności i człowiek się przeraża. Zajęcia z matematyki z kim masz? (ćwiczenia)
5 paź 00:37
Arczi: dr H. Kleczewska ćwiczenia− nie kojarzę jej, nic mi nie wiadomo.Wykład z dr Lizak, chciałem mieć ćwiczenia z dr.Lizak ale już nie da rady się do niej przepisać(raczej nie mam takiej możliwości) popraw mnie o ile się nie mylę− całki wszystkie od nieoznaczonych do potrójnych+krzywoliniowe i powierzchniowe w ciągu 1 miesiąca mam ogarnąć, żeby zdać z fizyki ogólnej i ćwiczeń z niej? Bo na matmie to nie zapeszając nie ma przerażającego materiału.... całki według krk.zut.edu.pl w karcie przedmiotu niby mają być pod koniec 1 semestru lub w 2 semestrze LOL czemu tak późno?Ja w sumie znam podstawy macierzy,liczby zespolone, i całkowanie do całek oznaczonych bardziej współczuje tym co nie znają, bo dadzą nam podstawy mechaniki kwantowej w 1 semestrze. Cudownie. Dostałem materiały które napisał prowadzący i mam to mieć. http://speedy.sh/Yrp8b/Hamiltonian-i-rownanie-Schroedingera.rar Ponadto miałem coś o tensorach itd
5 paź 14:27
Trivial: Do "podstaw mechaniki kwantowej" przydatne są tylko trywialne całki o ile w ogóle. Szczerze wątpię, żebyście rozwiązywali równanie Schroedingera dla czegoś innego niż cząstka swobodna w jednowymiarowym świecie. Rozwiązywanie dla czegoś tak prostego jak atom wodoru wymaga już znajomości dość zaawansowanej teorii równań różniczkowych − na to potrzeba przynajmniej dwóch lat analizy.
5 paź 15:54
asdf: całki dopiero będziesz mieć w 2 semestrze − pierwszy semestr jest prosty, bo jest wyrównywanie poziomu, dlatego tak łatwo. Na ćwiczeniach będziesz przez pierwszy semestr liczyć macierze, zespolone + granice − nic trudnego. Na egzaminie możesz trafic na coś trudniejszego, ale żeby to zdać − na prawdę nie jest ciężko. Zauważ, że wykłady są co 2 tydzień, ćwiczenia 1 raz w tygodniu − więc jakiego ty tępa oczekujesz? Na trzecim semestrze jest już duużo więcej zajęć i materiału (mam zajęcia pn−pt i dwa razy siedzę od 8 do 18).
5 paź 16:21
asdf: Jak umiesz liczyć granicę i pochodne to już masz 80% sukcesu. Macierze i zespolone − proste rzeczy. Na wykładach ogarniesz teorię i masz egzamin zdany .
5 paź 16:24
Trivial: asdf, co mieliście na kwantowej mechanice?
5 paź 16:29
asdf: ogólnie z mechaniki mielismy to na laboratoriach: http://labor.zut.edu.pl/instrukcje.html z kwantowej to nie wiem, relatywistyczną miałem. Arczi możesz wrzucić wykłady i slajdy? ja juz nie mam tego na dysku, to Trivial by zobaczył zakres.
5 paź 16:54
Arczi: jasne tylko skoncze gotowac sobie obiad
5 paź 17:29
5 paź 18:03
Trivial: To na pierwszym semestrze? Przecież nikt nic z tego nie zrozumie − będzie wielkie kucie wzorów na pamięć. Nie wiem dlaczego to taki wielki problem zrobić fizykę rok później, gdzie każdy już matmę trochę ogarnie...
5 paź 18:12
asdf: Większość rzeczy na pewno wykładowcy od puszczą − nie ma bata, przecież 80% nie wie co to pochodna, a co dopiero liczyć całkę, czy równania różniczkowe. Na 2 roku już nie ma fizyki, a jeżeli interesuję Cie co jest, to: http://wi.zut.edu.pl/plan-zajec
5 paź 18:16
Arczi: coś musieli dać żeby nikt tego nie ogarnął(prawie) bo jest 350 osób na 1 roku, wyłonią najlepszych. Jeśli znajdę potwierdzenie że to będzie to przesrane... kucie 12h dziennie tensorów, analizy itd...
5 paź 19:20
Trivial: Nie "wyłonią najlepszych", gdyż ci najlepsi musieliby już wcześniej znać matmę potrzebną do zrozumienia tych tematów. Najwyżej wyłonią tych z dobrą pamięcią albo dobrymi umiejętnościami ściągania.
5 paź 19:40
Arczi: zasadniczo wole się nauczyć niż ściągać, ale jeśli tak zrobią trzeba będzie dobre ściągi napisać i iść po trupach....Nicolo Machiavelli mawiał że cel uświęca środki, a parafrazując Iosifa Wissarionowicza "Stalina" Jesteśmy pięćdziesiąt albo sto lat za krajami rozwiniętymi. Musimy pokonać ten dystans w ciągu dziesięciu lat. Albo zrobimy to, albo nas zniszczą.
5 paź 20:18
asdf: Ja zdałem − Ty też zdasz Zaliczaj laboratoria co tydzień i na ćwiczenia chodź w miarę ogarniętym (ja po każdych ćwiczeniach nic nie umialem, ale w akademiku to nadrabiałem i na nastepne zajęcia już umiałem). Ja miałem z kim innym egzamin, ale straszyla nas tak tymi całkami, pochodnymi itd − a mielismy jak to w większości egzaminów z wykładów − TEORIE.
5 paź 20:22
asdf: @Trivial Niedługo będę pisać gre! Słyszałem, że to projekt na zaliczenie jednego z przedmiotów emotka
5 paź 21:52
Trivial: Rozumiem że grafika full 3D? Ja chyba będę miał taki projekt w tym semestrze: prosta gra 3D.
5 paź 21:54
asdf: nie wiem
5 paź 21:56
asdf: Jak to przekształcić na C++ (chodzi mi o new[] i delete) http://pastebin.com/qPgJ5ZS3
5 paź 21:57
asdf: będzie to: Dane * tab = new Dane[len];
5 paź 22:00
Trivial: tak.
5 paź 22:03
Trivial: A teraz test: jak usunąć tab?
5 paź 22:05
asdf: for(int i =0 ;i<len;i++){ delete [] tab[i]; } delete [][] tab;
5 paź 22:11
asdf: czy po prostu: delete [] tab?
5 paź 22:12
Trivial: Co to za zapętlone kombinacje? delete [] tab; działa tak jak trzeba.
5 paź 22:17
asdf: przekombinowałem bo żeby usunąć tab[10][4] to trzeba: for(i=0;i<10){ free(tab[i]); } free(tab); tak?
5 paź 22:22
asdf: a żeby usunąć strukturę to: budowa: struct lista { Dane head; Dane tail; } void remove (Lista lista){ Dane d = lista−>head; Dane tmp; while(d != NULL){ tmp = d−>next; delete d; d=tmp; } i tyle?
5 paź 22:26
Trivial: asdf, to naprawdę zależy od tego jak uzyskałeś tab.
5 paź 22:27
Trivial: asdf, delete i new to odpowiedniki malloc i free. Różnica jest taka, że istnieją dwie wersje new i delete − jedna do pojedynczych obiektów, a druga do tablic.
5 paź 22:32
asdf: post z 22:22 jest do zwykłego C, z mallocem. a post z 22:26: struct dane * d = new struct dane; teraz chce usunąć, robię to tak? delete d;
5 paź 22:34
Trivial: w c++ nie piszemy już struct dane. Zamiast tego piszemy po prostu dane. dane *d = new dane;
5 paź 22:35
asdf: ok, a usunięcie to po prostu delete d? jako usunięcie obiektu
5 paź 22:38
Dominik: Trivial, co do tablicy dwuwymiarowej i jej zwalniania. zakladajac, ze pamiec byla alokowana mallociem to powinno wystarczyc free(tab) − bo to zwolni pamiec pod tym adresem? (w koncu tab jest wskaznikiem.)
5 paź 22:40
asdf: tablica dwuwymiarowa to tablica tablic. Najprościej: tablica dwuwymiarowa = tab[][]= regał, np: http://www.leroymerlin.pl/files/media/image/378/1267378/product/regal-metalowy-r175-metalkas,main.jpg tab[i][] = i−ty rekord tab[i[j] = j−te miejsce w i−tym rekordzie Tak od razu nie da się usunąć rekordu, bo nie dasz rady..pierw trzeba usunąć ksiazki z rekordu, dopiero pozniej całą regał.
5 paź 22:46
Trivial: asdf, ale nikt nie każe usuwać każdej książki z osobna. Można wszystkie na raz (zależy to od alokacji!). I właśnie dlatego nie można jednoznacznie odpowiedzieć na Twoje pytanie.
5 paź 22:49
Dominik: asdf, wiem czym jest tablica dwuwymiarowa. Trivial, napisalem, ze cala pamiec jest zaalokowana mallociem. wtedy to co wyzej napisalem jest prawda, tak?
5 paź 22:52
Trivial: Dominik. int **tab = (int**) malloc(10*sizeof(int*)); for (int i = 0; i < 10; i++) { tab[i] = (int*) malloc(15*sizeof(int)); } Jeżeli masz coś takiego to nie wystarczy free(tab). (Dlaczego?)
5 paź 22:55
asdf: @Trivial ten sposób alokacji miałem na myśli...
5 paź 22:58
Trivial: A dla asdf mam pytanie − Jak zwolnić tak zaalokowaną tablicę? const int ROWS = 2; const int COLS = 5; int *tab[ROWS] = { new int[ROWS*COLS] }; for (int i = 1; i < ROWS; i++) { tab[i] = tab[0] + i*COLS; } // tutaj można już normalnie korzystać z tab[i][j], np: for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { tab[i][j] = j + 10*i; } } for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { printf("%d\t", tab[i][j]); } printf("\n"); }
5 paź 22:59
Dominik: Trivial, czyzby *tab wskazywalo wtedy na tab[0]? szczerze mowiac − nie wiem, raz, ze piszesz w cpp, z ktorym nie mialem stycznosci (a byc moze tu juz sa jakies roznice, choc watpie), a dwa, ze moja wiedza z c jest nikla.
5 paź 23:02
Trivial: Kod, który kierowałem do Ciebie − poza tym "int i" w pętli, które można się domyślić co robi − był w czystym C. emotka tab jest tablicą wskaźników. Czyszcząc samo tab, masz wyciek pamięci na które te wskaźniki wskazują.
5 paź 23:04
asdf: @Dominik malloc jest z C. Tzn. w C++ mozna uzywac new i malloc, ale w C tylko malloc. @Trivial zaraz ogarne
5 paź 23:05
asdf: delete [] tab;
5 paź 23:07
Dominik: asdf, znowuz: to wiem. ale zauwazylem roznice z deklaracja, skad wnioskowalem, ze kod jest w cpp.
5 paź 23:07
asdf: @Trivial skąd Ty to bierzesz?..
5 paź 23:08
Trivial: rysunekDominik, robiąc free(tab) usuwasz tylko część w elipsie. Reszta zostaje w pamięci.
5 paź 23:17
Trivial: asdf, to popularny sposób alokacji pamięci dla tablic wielowymiarowych. Tylko jedno zapytanie do systemu operacyjnego = dużo szybszy program (tam gdzie ma to znaczenie) delete [] tab; nie zadziała. emotka
5 paź 23:18
Dominik: Trivial, myslalem ze usuniecie tego fragmentu powodowaloby usuniecie wszystkiego. w koncu one wskazuja na kolejne tablice, chyba.
5 paź 23:19
Trivial: Tak, wskazują. Dokładnie tak jak na obrazku. Ale usuwając tablicę ze wskaźnikami nie usuwasz całości. Świat byłby za prosty.
5 paź 23:21
Dominik: no coz, wlasciwie to jest logiczne. musze sie w koncu zabrac za k&r.
5 paź 23:22
Trivial: C powstało w roku 1972, popularny stał się po 1980 − musiał być prymitywny, gdyż każdy bajt się wtedy liczył.
5 paź 23:24
asdf: for(int i=0;i<ROWS;i++){ delete tab[i]; } delete [] tab;
5 paź 23:25
Trivial: asdf, NIE.
5 paź 23:25
asdf: czemu, przeciez to jest tablica dwuwymiarowa, 2 x 5, tzn: 0 1 2 3 4 10 11 12 13 14 int *tab[ROWS] = { new int[ROWS*COLS] }; tworze wskaznik int na tablice dwuwymiarową, tzn. rezerwuje pamiec na 10 intow i zwracam wskaznik; tab[i] = tab[0] + i*COLS; tab[0] = poczatek, a więc tab[i] + i*COLS przesuwa sie o 5, a pozniej o 10 adresow, ale tak na prawde to po co to robi?
5 paź 23:32
Trivial: asdf, proponuję usunąć część tab[i] = tab[0] + i*COLS; i podziwiać wywalający się program.
5 paź 23:35
asdf: wywaliło, ale nie rozumiem istoty − po co to jest
5 paź 23:39
Trivial: Zastanów się co jest w tablicy tab po linijce: int *tab[ROWS] = { new int[ROWS*COLS] }; Wtedy będziesz wiedział.
5 paź 23:40
asdf: int *tab[2], czyli tablica wskaźników. tab[0] to adres z new tab[1] jeszcze nie istnieje
5 paź 23:44
Trivial: tab[1] istnieje i ma się dobrze. Jaką ma wartość?
5 paź 23:46
asdf: pewnie 0 jak wywala
5 paź 23:48
asdf: chodzi mi o adres.
5 paź 23:48
Trivial: tak. tab[1] = 0. I pozostałe − jeśli byłyby − też.
5 paź 23:49
asdf: w tym przypadku new zwrocilo wartości dla tab[0], ale cała tablica ma zaalokowaną pamięć na 10 adresów typu int. Teraz już ode mnie zależy jak sobie stworzę tablicę? np. mógłbym zrobić takie coś, że: rząd pierwszy = 7 intów rząd drugi = 3 inty, tzn: tab[1] = tab[0] + 7; // czyli o 7 adresów dalej od startu
5 paź 23:54
asdf: a dlaczego: for(i=0;i<2;i++){ delete tab[i]; } delete [] tab; nie zadziała?
5 paź 23:56
Trivial: Tak. Pytanie do Twojego kodu: dlaczego niby ma działać? To co zwalniasz musi odpowiadać temu co alokowałeś. A co alokowałeś? Tablicę 10 intów.
6 paź 00:01
asdf: kombinuje i nic nie wychodzi jedyne co działa to delete tab[0], ale pewnie to nie to Z resztą nie chcę strzelać tylko rozumieć.
6 paź 00:05
asdf: jak to powinno wyglądać?
6 paź 00:17
Trivial: delete [] tab[0];
6 paź 00:26
asdf: rysunekja sobie to tak wyobrażam: new alokuje pamięć na 20 intów i zwraca wskaźnik do T0. T1 ustawia się COLS pozycji dalej. Teraz jak chcę usunąć pamięć to usuwam to co zalokowałem, czyli cały ten obiekt: delete [] tab; dlaczego to nie chce działać, tylko muszę dać delete [] tab[0]. Przecież nie zmieniałem wskaźnika, a adres dla tab[0] to jest tab.
6 paź 00:28
Trivial: Ale nie interesuje cię tab, tylko wartość tab[0] = *tab.
6 paź 00:30
asdf: to dlaczego dla int *tab = new[20]; usuwie jest tak proste: delete [] tab; ? Podobna sytuacja: typedef struct dane * Dane; Dane * tab = Dane[len]; alokuje pamięć typu Dane o długości len Dane * tab − tablica wskaźników. Jak usuwam to: delete [] tab;
6 paź 00:34
Trivial: Ja nie widzę sprzeczności (bo jej nie ma ). tab[0] zawiera adres zaalokowanej tablicy 10 intów czyli usuwanie wygląda dokładnie tak jak ma wyglądać: delete [] <adres−zaalokowanej−tablicy> delete [] tab[0]
6 paź 00:37
Trivial: rysunekTrzeba usunąć to, co jest na różowo.
6 paź 00:41
asdf: ja to rozumiem tak: delete [] tab − usuwam obiekt tab, i tyle delete x − usuwam x, ale juz nie jako obiektu tylko pojedynczej zmiennej int **tab = new int*[3] for(i=0;i<3;i++){ tab[i] = new int[4]; } Mam teraz tablice 3 rzedow, 4 kolumny, zeby ja usunac: usuwam pierw rzędy, inaczej nie mialbym do nich dostępu: for(i=0;i<3;i++){ delete tab[i]; <− tutaj moze tak byc, czy: delete [] tab[i] } delete [] tab; <− usuwam obiekt jako calosc
6 paź 00:41
Trivial: for(i=0;i<3;i++){ delete [] tab[i]; } delete [] tab; A to: delete [] tab − usuwam obiekt tab, i tyle delete x − usuwam x, ale juz nie jako obiektu tylko pojedynczej zmiennej to jeden wielki bełkot. delete x ← usuwa jeden obiekt typu X spod adresu x delete [] x ← usuwa tablicę obiektów typu X zaczynającą się pod adresem x
6 paź 00:50
Trivial: Zasada jest taka: X *x = new X → delete x X *x = new X[size] → delete [] x
6 paź 00:52
asdf: aha... czyli: int x = new int; delete x; usuwam obiekt typu int T *t = new T[N]; delete [] t; usuwam tablicę obektów typu T, spod adresu t; No i tutaj znowu pytanie, dlaczego w poprzednim przykladzie nie zadzialalo: delete [] tab, tylko trzeba bylo: delete [] tab[0] kompilator to potraktował jako: delete [] tab[0][0] i dalej się wysypał?
6 paź 00:55
Trivial: delete [] tab nie może działać, gdyż tab jest zwyczajną tablicą na stosie (niedynamiczną).
6 paź 00:56
asdf: teraz to już w ogole nie rozumiem
6 paź 01:03
Trivial: int tab[3]; delete [] tab; W dużym skrócie, to właśnie próbujesz zrobić.
6 paź 01:04
asdf: tzn. usunac obiekt jeszcze nie uzyty?
6 paź 01:09
asdf: usunąć obiekt bez zarezerwowanej pamięci − może tak
6 paź 01:11
Trivial: asdf, próbujesz usunąć niedynamiczną tablicę − to wszystko. Ona ma zarezerwowaną pamięć na stosie, a nie na stercie.
6 paź 01:13
asdf: Dzięki bardzo, jeszcze się w tym gubię. Doczytam, poszukam, pokombinuję i może się uda
6 paź 01:17
Trivial: Powodzenia i dobranoc.
6 paź 01:18
asdf: dzieki, dobranoc emotka
6 paź 01:21
Arczi: Trivial ogarniesz to zadanie− Jak działa i jakie ma zastosowanie tranzystor z uziemionym kolektorem ub drenem?
6 paź 02:26
6 paź 13:47