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
ε0∬S 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
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
5 paź 21:56
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
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.

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:

Dominik, 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.
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:

ja 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:

Trzeba 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
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