@Brutalny Rzeznik ;
No tak, ale przy pisaniu w C nie jest zalecane używanie bibliotek z C++, bo mogą wystąpić pewne błędy w działaniu bądź kompilacji, które bez świadomości tego trudno się naprawia. C jest podobne, ale jednak są spore różnice.
Wersja do druku
@Brutalny Rzeznik ;
No tak, ale przy pisaniu w C nie jest zalecane używanie bibliotek z C++, bo mogą wystąpić pewne błędy w działaniu bądź kompilacji, które bez świadomości tego trudno się naprawia. C jest podobne, ale jednak są spore różnice.
siema napisałem sobie na początek taki prosty programik w pythonie który zamienia wpisaną liczbę na tekstową reprezentacja np 42 = czterdziesci dwa itd. Problem w tym ze od 0 do 99 działa, natomiast od 100 do 999 nie działa choć zrobiłem to analogicznie. Móglby ktoś zaerknać dlaczego to nie działa ?
http://pastebin.com/WgqQ4ySt
No a jak ma działać jak w przypadku trzycyfrowych w liczbaA=int(liczbaint/10)>10, a próbujesz wziąć taki element z listy dziesięcioelementowej?
Może zamiast robić dzikie operacje matematyczne lepiej analizuj każdy znak osobno. Zawsze go możesz tanio przerzutować do inta.
W sumie słuszna uwaga dziękuje bardzo :) to pierwszy program po dwóch godzinach nauki pythona
Jakbyś miał jakiś problem to obczaj sobie debugger (np. w pyCharm Community Edition).
Witam,
chcę napisać program, który zamienia liczbę z postaci trzynastkowej na dziesiętną. Chcę w tym celu wykorzystać tablice, ale jak ją zainicjować nie znając jej rozmiaru?
zależy w jakim języku
jeżeli C to operator malloc, jeżeli możesz c++ to new
@Cybuch ; miałeś racje co do raw typów :C
http://allegro.tech/2014/10/The-memory-game.html
weź se lepiej poczytaj czym jest char zanim zaczniesz zadawać głupie pytania
Chciałbym posortować tablicę liczb całkowitych, w funkcji która przyjmuje tylko jako argumenty tablicę i rozmiar n. Wiec pomyślałem, aby w funkcji odwołać się do funkcji, przerobiłem quickSorta z internetu pod moje zmienne, i wyskakują błędy przypisania wskaźnika do inta(bo jako argument podaje podwójny wskaźnik), jak to mogę inaczej zrobić lub jak przerobić kod tego sortowania żeby to śmigało(próbowałem na wiele sposobów, ale bez tipów nie dam rady).
KOD: http://pastebin.com/1QbwfWjC
Kod:#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct znaki {
int lcalk;
};
// FUNKCJE \\
void quickSort(znaki * tab, int left, int right) {
int i = left, j = right;
znaki tmp;
int pivot;
pivot = tab[(left + right) / 2].lcalk;
/* partition */
while (i <= j) {
while (tab[i].lcalk < pivot)
i++;
while (tab[j].lcalk > pivot)
j--;
if (i <= j) {
tmp = tab[i];
tab[i] = tab[j];
tab[j] = tmp;
i++;
j--;
}
};
/* recursion */
if (left < j)
quickSort(tab, left, j);
if (i < right)
quickSort(tab, i, right);
}
//MAIN
int main() {
int n = 5, i;
char x = 'h';//szukany znak
znaki tab[5];
//przed sortowaniem
for (i = 0; i<n; i++)
printf("Liczba numer %d, ma wartosc %d\n", i, tab[i].lcalk);
quickSort(tab, 0,n-1);
printf("\n");
//po sortowaniu
for (i = 0; i<n; i++)
printf("Liczba numer %d, ma wartosc %d\n", i, tab[i].lcalk);
system("PAUSE");
return EXIT_SUCCESS;
}
@up dzięki za tip ! Chyba jako jedyny zrozumiałeś ! Danke ! :)
Kod:#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
//Struktura:
struct znaki {
int lcalk;
char znak;
double lzmienno;
};
// FUNKCJE \\
struct znaki ** losowanie(int n) {
int i;
struct znaki (**tab) = (struct znaki**)malloc ( sizeof(struct znaki) *n);//wskaźnik na wskaźnik tablicy struktur
for (i=0;i<n;i++) { //przypisanie struktury do tablicy wskaźników
tab[i] = (struct znaki*)malloc( sizeof(struct znaki));
}
srand((unsigned)time(0));//pseaudolosowość liczb uzależniona od czasu rzeczywistego
for ( i=0 ; i<n ; i++) {
tab[i]->lcalk = rand() % 10000001; // liczba z <0:10^6>
tab[i]->znak = rand() % (26) + 97; //małe litery przedział z kodu ASCII <97;122>
// tab[i]->znak = 97 + rand() % 26;
tab[i]->lzmienno = 8;
}
return tab ; //zwraca adres tablicy
}
void kasowanie(struct znaki** tab, int n) {
int i;
for ( i=0 ; i<n ; i++) {
free(tab[i]);
}
free(tab);
}
void quickSort(struct znaki ** tab, int left, int right) {
int i = left, j = right;
znaki *tmp;
int pivot;
pivot = (*tab[(left + right) / 2]).lcalk;
/* partition */
while (i <= j) {
while ((*tab[i]).lcalk < pivot)
i++;
while ((*tab[j]).lcalk > pivot)
j--;
if (i <= j) {
tmp = tab[i];
tab[i] = tab[j];
tab[j] = tmp;
i++;
j--;
}
};
/* recursion */
if (left < j)
quickSort(tab, left, j);
if (i < right)
quickSort(tab, i, right);
}
int zlicz_znaki(struct znaki** tab, int n, char x) {
int i,licznik=0;
for ( i=0 ; i<n-1;i++) {
if (tab[i]->znak == x)
licznik++;
}
return licznik;
}
//MAIN
int main() {
//Zegar start:
clock_t begin,end;
double time_spent;
begin = clock();
int n=300000,i;
int licznik;//liczba struktur, liczna wystąpień znaku
char x='h';//szukany znak
//Wywołanie funkcji:
struct znaki** tab = losowanie(n);
//przed sortowaniem
for (i=0;i<n;i++)
printf("Liczba numer %d, ma wartosc %d\n",i,tab[i]->lcalk);
quickSort(tab, 0,n-1);
printf("\n");
//po sortowaniu
for (i=0;i<n;i++)
printf("Liczba numer %d, ma wartosc %d\n",i,tab[i]->lcalk);
licznik = zlicz_znaki(tab, n, x);
kasowanie(tab,n);
//Zegar stop:
end = clock();
time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
printf("Liczba wystapien znaku: %d\n",licznik);
printf("Czas wykonania skryptu: %f\n",time_spent);
system("PAUSE");
return EXIT_SUCCESS;
}
Ja tak zrobiłem i sortuje ładnie ;o
Cytuj:
void quickSort(struct znaki ** tab, int left, int right) {
int i = left, j = right;
int tmp;
int pivot;
pivot = tab[(left + right) / 2]->lcalk;
/* partition */
while (i <= j) {
while (tab[i]->lcalk < pivot)
i++;
while (tab[j]->lcalk > pivot)
j--;
if (i <= j) {
tmp = tab[i]->lcalk;
tab[i]->lcalk = tab[j]->lcalk;
tab[j]->lcalk = tmp;
i++;
j--;
}
};
/* recursion */
if (left < j)
quickSort(tab, left, j);
if (i < right)
quickSort(tab, i, right);
}
No ja w sumie też zacząłem C++, no ale już tam na zajęciach cały semestr tłukliśmy to C :P. No to ja zacząłem czytać Symfonię C++, większość ludzi ją poleca, no wg mnie jest dobra, ale nie mam porównania z tą książką Praty. Dodatkowo polecam to : http://helion.pl/ksiazki/wskazniki-w...ese,wskazc.htm
Spróbuj najpierw jedną jak ci nie podpasuje to spróbuj z drugą. Ja przeczytałem symfonię i pasję i obie te czesci mialem w pdfie ale jako skany. I w międzyczasie gdy czegoś nie pamiętałem to zamiast wracać gdzieś do poprzednich stron to szukałem właśnie w cpp primer bo tam mogłem szukać wyszukiwarką w tekście ;p
Ponadto cpp primer wydawała mi się znacznie bardziej zrozumiale napisana pomimo tego że ją po angielsku czytałem. A symfonia była bardziej wymagająca jeśli chodzi o skupienie. Często w symfonii są duże kawałki kodu, czasem podzielone na kilka stron, a pod tymi liniami są obszerne wyjaśnienia. Mi się często trudno było na tym skupić. Ale z drugiej strony zrozumienie kodu i zaimplementowanie go potem w podobny sposób daje bardzo dużo.
A jak mi się nie chciało nic robić to puszczałem filmiki typu:
https://www.youtube.com/watch?v=ABRP...E50B89DA30C77A
Żeby sobie utrwalić wiadomości + załapać angielskiego
https://www.youtube.com/watch?v=7arYbAhu0aw
Mimo wszystko i tak najlepszym sposobem jest po prostu pisanie kodu. A bez pisania dużej ilości kodu się zapomni tych wiadomości z książek
Nigdzie lepiej nie nauczycie sie kodzic, niż podczas pisania swoich programów i szukając pomocy na necie w celu rozwiązania swoich problemów.
Moim zdaniem czytanie książki 1k stron na starcie swojej przygody to strata czasu
Ale w cpp primer masz np taski do zrobienia na koniec kazdego rozdzialu ktore sa zrobione tak zeby uzyc wiadomosci ktorych sie nauczyles. Chyba nikt nie mowi o po prostu przeczytaniu takiej ksiazki bez napisania zadnej lini kodu. Chyba lepiej zaczac od czegos takiego niz od programu ktory ma robic cos sensownego bo jak ktos zaczyna to nigdy go nie skonczy i bedzie myslal nad bledami ktore mu kompilator wypluwa.
Witam, mam formularz na stronie. Jak zrobić żeby przycisk drukuj drukowal tylko dane które są w formularzu a nie cały wygląd tabel i całej strony?
stuknie mi niedlugo 6sty miesiąc pracy (na linkedzie, bo tak naprawdę 4.5 xD) i juz zaczynają do mnie rekruterzy pisać :')
to normalne czy jestem super? odpisujecie takim? dodajecie se do sieci znajomych zeby 'miec na wszelki wypadek'?
bo nie wiem jak sie zachowywac a juz kilkanascie invajtów wisi
Ja nie przyjmuję zaproszeń na linkedinie, chyba że kogoś rzeczywiście znam.
Ale nie unoś się - piszą do każdego, bo dostają hajs niezależnie od skilla.
Wtedy zostaniesz dosc mocnym przecietniakiem, ktory googluje sobie kawalki kody i copy-paste.
Dosyc normalna sprawa, proponuje nawiazac kontakt, zapytac co oferuja itd. - zaowocuje to lepszymi ofertami w przyszlosci ;)
Zgadzam sie, ksiazka Praty wypada naprawde bardzo dobrze (no moze poza ksiazkami innych C++ guru, ale to inna klasa). Nie ma co jej porownywac do Symfonii - wg mnie, ta ksiazka jest napisana tak przeslodzonym jezykiem, ze czasami zastanawialem sie czy autor ma mnie za debila?
Wiem, że modne jest hejtowanie javy i jvm, ale jak ktoś ma wyjebane na to to polecam Spring w Akcji. Sam teraz czytam bo kupili w firmie i to jest baardzo fajna książka. Nawet polska wersja. Książka nie tylko opisuje springa, ale i podstawowe wzorce i dobre zasady. btw jak ktoś ma na sell effective java to chętnie odkupie nowsze wydanie :)
co myslicie o testach z codility jako etap rekrutacji?
Witam Panowie uczę się Javy z książki Java Core + różnych tutoriali na necie. I lepiej się nauczyć AWT i SWING czy od razu JavaFx? Bo chciałbym jak najszybciej móc napisać sobie jakąś prostą grę w stylu kulki strzelającej do prostokątów, żeby mieć jakiś bazowy projekt do rozwijania i uczenia się na jego podstawie języka. Czego powinienem się nauczyć w javie oprócz takich podstaw jak obiektowość itd. Tak aby móc jak najszybciej załapać się w czasie studiów na jakiś staż?
fx
Jeżeli 'java okienkowa' to swing/javafx.
Jeżeli chcesz się załapać na staż to polecam uczyć się technologii webowych, bo duża większość aplikacji w javie to właśnie technolowie webowe. Od siebie polecam ogarnąć dosyć dobrze springa ioc/mvc, do tego hibernate/jpa i gradle/maven. Oczywiście nie zapominając o podstawach tzn. hierarchia wyjątków, wątki (locki, executory), kolekcje.
xD
uczylem sie z tego springa, bardzo fajna ksiazka, ale lepiej pocisnąć kilka miesiecy tutoriali/wlasny wiekszy projekt i dopiero ją przeczytać, wtedy wszystko wchodzi jak marzenie i 'ugruntowywuje' wiedzę
java fx, ale w javie okienek raczej sie nie robi, wiekszosc duzych projektów to raczej jakiś webdev i w tym kierunku polecałbym sie doksztalcac(jesli nie jara cie webdev to zmien jezyk, do okienek jest imo najlepszy c++).
co do stażu to zależy w jakim mieście i zależy na którym roku jesteś - zapunktujesz na pewno znajomością spring/hibernate/maven bo to najpopularniejsze teraz, no i wiadomo jakis system kontroli wersji(git) + baza danych (postgresql/oracle/mysql).
edit. mysle ze pokochaja cie rowniez jak opowiesz im o stream API, method referencach i ogolnie lambdach z javy 8
Gratulujemy! :P
Dużej różnicy ci to nie zrobi. Kolega wyżej argumentował ;) Swing na początek wystarczy, jak potrzebujesz więcej to FX i tyle.Cytuj:
I lepiej się nauczyć AWT i SWING czy od razu JavaFx?
Raczej spróbuj zrobić sobie projekt typu zarządzanie bazą wypożyczonych gier albo długów wśród kumpli. Serio. Spróbuj zrobić sobie projekt zawierający coś związanego z bazami danych i dostępem przez sieć. Z tego co zauważyłem, największy popyt jest aktualnie na Javę EE. Sam ostatnio dostałem zadanie rekrutacyjne typu baza danych z interfejsem użytkownika jako servlet.Cytuj:
Bo chciałbym jak najszybciej móc napisać sobie jakąś prostą grę w stylu kulki strzelającej do prostokątów, żeby mieć jakiś bazowy projekt do rozwijania i uczenia się na jego podstawie języka.
Kolega wcześniej już w miarę wymienił. Ogarnij też dobre praktyki i skrót SOLID. Polecam książkę Clean Code - to podstawa tworzenia dobrego kodu.Cytuj:
Czego powinienem się nauczyć w javie oprócz takich podstaw jak obiektowość itd. Tak aby móc jak najszybciej załapać się w czasie studiów na jakiś staż?
Poza tym przyda się też wiedza na temat testowania (testy jednostkowe, JUnit), budowania aplikacji (Maven, Gradle), continuous integration (Jenkins, Hudson), SVN, metodyki Scrum/Agile i ew. ogarnięcie w IDE Eclipse oraz IntelliJ IDEA.
I wyjdzie na to, że chłopak nie będzie miał się czego nauczyć na stażu. bo wszystko będzie umiał już przed.
To wtedy nie staż, a od razu robota ;)
Nie wspomniałem wcześniej - polecam zrobić sobie portfolio na Github. To duży plus na rekrutacji, gdyż od razu widać co umiesz.
i mockito, mockito jest cudowne <3