Zaloguj się, aby obserwować  
Bartuc

Język C / C++ / C# / Java - pytania, problemy...

1979 postów w tym temacie

Dnia 03.03.2014 o 21:12, Volvox napisał:

Czyli chodzi o to że wybierasz jakie elementy ma robot, a program drukuje listę wejść
dla tych elementów w danym języku?

Tak

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To nie powinno być trudno (chociaż pewnie coś wyjdzie po drodze ;)
Będziesz potrzebować tabelę z elementami robota (id, nazwa_elementu) i tabelę z wejściami (id, id_elementu numer_wejscia, jakiś_opis, język).

Do pierwszej dodajesz:
INSERT INTO table_name (id, nazwa_elementu) VALUES (null, ''Zgrzewalnica'');
W taki sposób dodajesz poszczególne elementy (id jest jako null bo powinien sam się ustawiac ''autoincrement'')

Każdy element będzie miał kilka wejść, więc do drugiej tablicy wstawiamy:
INSERT INTO table_name (id, id_elementu, numer_wejscia, jakiś_opis, język) VALUES (null, 1, ''E705'', ''Hildani'', ''predochozi'', ''CZ'');
Liczba 1, to numer ''id'' elementu z pierwszej tablicy (taki wiemy ze to wejście należy do tego elementu). Dalej to juz opisy i język na końcu. Musisz zatem dodać każde wejście raz w każdym języku.

Na końcu pokazujesz liste elementów i jak użytkownik wybierze jakieś to masz ich ID. Teraz szukasz odpowiednich wejść:
SELECT * FROM druga_tabela WHERE (id_elementu = 3 OR id_elementu = 5 OR id_elementu = 10) AND język = ''DE'' ORDER BY numer_wyjścia
Czyli WYBIERAMY wszsytkie kolumny Z TABELI druga_tabela GDZIE id_elementu jest jednym z zaznaczonych I język to niemiecki, a na końcu POSORTUJ wg. numeru_wyjścia.

To tak w uproszczeniu.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Mam problem. "Musze" sobie napisać prosty programik na komórkę. Dowiedziałem się, że trzeba mi "Java MIDP 2.1". Nie mogę znaleźć jednak jakiś rzetelnych informacji(tak naprawdę nie wiem co jest prawdą, a co nie) gdzie nie spojrzę to inne informacje. Skąd mogę pobrać bezpieczną wersję? I jeśli mam do napisania prostą aplikację(mała baza danych, gdzie będę porównywać wpisane hasło z tym co mam w bazie na zasadzie prawda fałsz) to wystarczy mi wiedza o Javie, czy coś więcej?

- Czy tutaj informacje są w miarę poprawne?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Język Java. Chciałbym stworzyć skompresowany bezstratnie plik grafikczny (najlepiej w formacie .png) na podstawie dwuwymiarowej tablicy typu long, której każdy z elementów reprezentuje piksel o barwie zakodowanej w systemie dziesiętnym RGB.
Przykład: na bazie tablicy o wymiarach 1000x1000, w której każdy z elementów jest równy 255, wygenerowany zostaje niebieski obrazek PNG o rozdzielczości 1000x1000.

Czy istnieje taka możliwość? Jak się do tego zabrać? Najchętniej przeanalizowałbym jakiś przykładowy kod.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 03.05.2014 o 02:15, Kardithron napisał:

Język Java. Chciałbym stworzyć skompresowany bezstratnie plik grafikczny (najlepiej w
formacie .png) na podstawie dwuwymiarowej tablicy typu long, której każdy z elementów
reprezentuje piksel o barwie zakodowanej w systemie dziesiętnym RGB.
Przykład: na bazie tablicy o wymiarach 1000x1000, w której każdy z elementów jest równy
255, wygenerowany zostaje niebieski obrazek PNG o rozdzielczości 1000x1000.

Czy istnieje taka możliwość? Jak się do tego zabrać? Najchętniej przeanalizowałbym jakiś
przykładowy kod.

Nie tykałem w życiu javy, ale to powinno pomóc
https://pngj.googlecode.com/git/site/apidocs/index.html

http://code.google.com/p/pngj/wiki/FAQ

https://code.google.com/p/pngj/source/browse/src/main/java/ar/com/hjg/pngj/ImageLineInt.java

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Mam pytanko chciałbym się nauczyć podstawy C lub C++ bo, w tym jestem zielony i nie mam pojęcia jak od tego zacząć, książki? czy przelatywać po kolei, jakieś fora itp. Chciałbym poznać podstawy tego programu bo planuje za rok po skończeniu LO zaocznego iść na policealną szkołe infromatyczną a tam właśnie jest o C++.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeśli mam taki kod:
#include <iostream>
double cube(double a);
double refcube(double &ra);
int main(){
using namespace std;
double x = 3.0;
cout << cube(x);
cout << "szescian" << x << endl;
cout << refcube(x);
cout << "szescian" << x << endl;
}
double cube(double a) {
a *= a * a;
return a;
}
double refcube(double &ra){
ra *= ra * ra;
return ra;
}
to powiedzcie mi. Po co stosować przez wartość skoro wyliczenie nie wychodzi z funkcji? Tzn. na przykładach, do czego stosujemy jedno, a do czego drugie?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

/.../
Nie jestem pewny czy rozumiem pytanie ale...
W miarę możliwości każda funkcja powinna przyjmować argumenty przez wartość (chyba że tylko odczytujesz z nich dane). A jeśli używasz referencji/wskaźników to upewnij się że jest o tym gdzieś informacja. Dlaczego? Bo w przeciwnym razie jest to wysoce niebezpieczna funkcja bo potrafi zmieniać argumenty na rzecz których jest wywoływana.

int bezpieczna_funkcja(int liczba)
{
liczba = liczba *2;
return liczba;
}
int nieb_funkcja(int &liczba)
{
liczba = liczba *2;
return liczba;
}

int main(){
int a=2;
int b;
int c;
b = nieb_funkcja(a);
c = bezpieczna_funkcja(a);
return 0;
}

Czyli mamy dwie funkcje które robią to samo. Więc można by oczekiwać że b i c przyjmą te same wyniki... a jednak nie. Nasza nieb_funkcja przyjmuje bowiem argument przez referencję i modyfikuje wartość a. Więc po jej wykonaniu a=4.

Tak samo przy programowaniu obiektowym W MIARĘ możliwości należy upewnić się że każda metoda ma z przodu const co oznacza że nie może zmieniać argumentów na rzecz których jest wykonywana. W przeciwnym razie kod robi się trudniejszy do debugowania (kurde no, czemu moje a jest równe 4, przecież NIGDZIE nie przypisywałem mu takiej wartości!). Zwłaszcza że przecież masz do dyspozycji return - jak interesuje cię WYNIK obliczenia to możesz wykorzystać to co funkcja zwraca. Po co modyfikować niczemu niewinną zmienną z innego miejsca w programie? To że wartość wyliczenia nie wychodzi z funkcji jest dobre, to MA być swoista czarna skrzynka z której wyjmujesz coś na własne życzenie. A nie coś co pluje ci kodem zmieniającym wartości w mainie.

Ale jednocześnie... referencje i wskaźniki są szybsze. Dajmy na to że masz funkcję która przyjmuje dwuwymiarowy wektor 1000x1000 elementów. Przekazywanie przez wartość = kopiowanie tego. Olbrzymie zużycie pamięci i czasu. Użycie referencji jest znacznie szybsze. Choć, znowu, w miarę możliwości, starajmy się tylko odczytywać z niej dane bez zapisywania. Chyba że jest to niezbędne z punktów widzenia wydajności (np. mielibyśmy przemnożyć cały wektor przez jakąś wartość... zwracanie go przez wartość jest problematyczne).

Czasem też nie wszystko DA się skopiować, np. niektóre obiekty mogą nie mieć zdefiniowanego konstruktora kopiującego (sytuacja dość rzadka ale możliwa, np. singleton). I wtedy również niezbędna jest referencja/wskaźnik.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 28.05.2014 o 18:36, Kubson023 napisał:

Mam pytanko chciałbym się nauczyć podstawy C lub C++ bo, w tym jestem zielony i nie mam
pojęcia jak od tego zacząć, książki? czy przelatywać po kolei, jakieś fora itp. Chciałbym
poznać podstawy tego programu bo planuje za rok po skończeniu LO zaocznego iść na policealną
szkołe infromatyczną a tam właśnie jest o C++.

Solidna książka, jak np. "Szkoła Programowania" S. Prata. Do tego materiały z internetu (tutoriale, stack overflow, blogi, itd.). A przede wszystkim to kodzić, kodzić i kodzić.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 28.05.2014 o 18:36, Kubson023 napisał:

Mam pytanko chciałbym się nauczyć podstawy C lub C++ bo, w tym jestem zielony i nie mam
pojęcia jak od tego zacząć, książki? czy przelatywać po kolei, jakieś fora itp. Chciałbym
poznać podstawy tego programu bo planuje za rok po skończeniu LO zaocznego iść na policealną
szkołe infromatyczną a tam właśnie jest o C++.


Jak do C++ to osobiście przerabiałem wiele książek ale IMO najlepsza to "Symfonia C++" Grębosza, tam wszystko jest wytłumaczone tak prosto i "łopatologicznie" aż chce się czytać

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

/.../
Symfonia nie jest w cale dobra, a raczej, nie każdemu podejdzie. Nie wszyscy lubią to samo. A akurat wodolejstwo w Symfonii wcale, a wcale mi się nie podoba.
@Psych0 To samo tutaj, Prata może i byłby fajny gdyby go czytać po ang, bo jeszcze tam jest jakiś sens, ale też, dużo literek, mało treści. Można byłoby temat zamknąć w 2 stronach, ale zróbmy z tego rozdział...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 02.06.2014 o 00:49, gracz_155 napisał:

> Mam pytanko chciałbym się nauczyć podstawy C lub C++ bo, w tym jestem zielony i
nie mam
> pojęcia jak od tego zacząć, książki? czy przelatywać po kolei, jakieś fora itp.
Chciałbym
> poznać podstawy tego programu bo planuje za rok po skończeniu LO zaocznego iść na
policealną
> szkołe infromatyczną a tam właśnie jest o C++.

Jak do C++ to osobiście przerabiałem wiele książek ale IMO najlepsza to "Symfonia C++"
Grębosza, tam wszystko jest wytłumaczone tak prosto i "łopatologicznie" aż chce się
czytać


Znalazłem takie coś " http://main.edu.pl/pl/user.phtml?op=show&page=courses " Na tą chwilę nie stać mnie na książkę, w tym artykule są Kurs programowania w języku Pascal
Kurs programowania w języku C++
Kurs podstaw algorytmiki
Czy na początek to by mi wystarczyło? czy celować jednak w tą książkę .

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zapytam tutaj bo w bliźniaczym temacie mniej się dzieje. Czy w php jest jakaś funkcja która zwraca 1 jeśli wystąpi jakiś błąd w bazie danych (np zle cos do niej wpisuje) i 0 jeśli nic nie ma? Byłbym wdzięczny za odpowedź.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 04.06.2014 o 22:25, revolt505 napisał:

Zapytam tutaj bo w bliźniaczym temacie mniej się dzieje. Czy w php jest jakaś funkcja
która zwraca 1 jeśli wystąpi jakiś błąd w bazie danych (np zle cos do niej wpisuje) i
0 jeśli nic nie ma? Byłbym wdzięczny za odpowedź.


Um... zależy.

Jeśli używasz PDO (a powinieneś) to obiekty z nim powiązane rzucają wyjątkami. Co oznacza że możesz zrobić tak:

$username = "username";
$password = "password";
$host = "localhost";
$dbname = "bazadanych";

try
{
$db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options);
}
catch(PDOException $ex)
{
die ("Nie udalo sie polaczyc z baza danych, blad: " . $ex->getMessage());
}

W blokach try wsadzamy sobie różne instrukcje - jeśli nie wywalają żadnych błędów to kod idzie do przodu. Jeśli jednak któraś z nich np. wywali ci "connection timeout" to od razu przechodzisz do tego co jest w catch, w tym przypadku zostanie nam wyświetlony komunikat: "Nie udalo sie polaczyc z baza danych, blad: connection timeout".

Albo np.

$query = " INSERT INTO users ( username, password, salt, email, active, lastvisit, recoverypass) VALUES (:username, :password, :salt, :email ,1, :currentdate, ''NON_SPECIFIED'') ";

^ Treść zapytania. Na razie po prostu jako ciąg znaków.

// tutaj dostawiamy definicje co to jest $password, $salt, $currentdate. Np. $password = "misiorysio";

$query_params = array( '':username'' => $_POST[''username''], '':password'' => $password, '':salt'' => $salt, '':email'' => $_POST[''email''], '':currentdate'' => $currentdate);

^ tablica w której są dane które wstawimy do bazy danych.

I znowu:
try
{
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}

W bloku try mamy zasadniczo dwie instrukcje:
- pierwsza przygotowuje nam zapytanie - wysyła do bazy MySQL nasze $query, warto zauważyć że w tym jeszcze nie ma wszystkich prawdziwych danych a część to po prostu informacja - masz tu komendę insert, zaraz ci podeślę argumenty które masz wsadzić do bazy danych.
- I druga, execute - ta wysyła już nasze dane zdefiniowane w $query_params.

catch(PDOException $ex)
{
die("Failed to run query");
}

Jeśli wszystko poszło jak trzeba, NIGDY nie zobaczymy tego co jest w bloku catch. Jeśli jednak którakolwiek z tych instrukcji w try wywali się w powietrze z jakiegoś powodu to od razu, bez przechodzenia dalej, program wejdzie do bloku catch i zrobi to co jest w nim.

Jest to IMHO wygodniejsze niż sprawdzanie czy funkcja zwraca ci 0, 1, -1 czy jakąkolwiek inną ruską wartość. I to tak dla każdej funkcji z osobna musiałbyś sprawdzać czy wynik jest poprawny. A tak to tylko piszesz sobie try i catch i catch samo wyłapuje błędy (uwaga - działa to tylko na PDO bądź inne rozwiązania obiektowe).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jestem wdzięczny za odpowiedź, ale nie do końca o to mi chodziło. Problem jest o wiele prostrzy. Mam kilka prościutkich tabel w bazie danych. Napisałem do nich interfejs z mozliwoscia modyfikacji. Kilka z nich ma ograniczenia rekordow ON DELETE restrict i ON UPDATE restrict. Teraz kiedy ktoś próbuje usunąć albo cos zmienic to oczywiscie czasami wyskakuje warning, error, że jest naruszony klucz. I teraz ja chcę sobie napisać prościutką funkcję w php, która będzie ten brzydki komunikat zamieniać na napis np: "Brak możliwosci modyfikacji" i powrot do strony. Nic więcej. Nie pytaj dlaczego tak robie :D

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jak wywołujesz zapytania?

A w bliźniaczym temacie będzie zawsze mniej się działo, jeśli każdy będzie miał takie podejście jak ty. :P

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 01.06.2014 o 11:51, Psych0 napisał:

> Mam pytanko chciałbym się nauczyć podstawy C lub C++ bo, w tym jestem zielony i
nie mam
> pojęcia jak od tego zacząć, książki? czy przelatywać po kolei, jakieś fora itp.
Chciałbym
> poznać podstawy tego programu bo planuje za rok po skończeniu LO zaocznego iść na
policealną
> szkołe infromatyczną a tam właśnie jest o C++.
Solidna książka, jak np. "Szkoła Programowania" S. Prata. Do tego materiały z internetu
(tutoriale, stack overflow, blogi, itd.). A przede wszystkim to kodzić, kodzić i kodzić.

Pobrałem code block + Microsoft Visual Studio Express 2013 for Windows Desktop przeleciałem kilka tematów + na youtube, jest tyle tego że nie wiem od czego mam się zabrać, więc jednak na wypłatę zaiwestuje w książkę o której piszesz, i bd się z niej uczyl :D

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 06.06.2014 o 21:19, Kubson023 napisał:

> > /.../


Filmy na youtubie to moim zdaniem nie zawsze dobry początek- pomijając ich poziom, mówiąc trudniej przekazać myśl, niż pisząc ją, a i to nie każdy potrafi :)
Oczywiście mogą być świetne tutoriale, a i niektórzy lepiej uczą się przez naśladowanie, ale pewne podstawy łątwo zdobyć ucząc się z książek. Uważaj na to, że niektóre z nich są nastawione na studentów, któzy z jakiegoś powodu jeszcze nie uczyli się programować w danym języku i trudno przez te książki przebrnąc tak z marszu od podstaw.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 06.06.2014 o 21:19, Kubson023 napisał:

Pobrałem code block + Microsoft Visual Studio Express 2013 for Windows Desktop przeleciałem
kilka tematów + na youtube, jest tyle tego że nie wiem od czego mam się zabrać, więc
jednak na wypłatę zaiwestuje w książkę o której piszesz, i bd się z niej uczyl :D


Jak nie wiesz "od czego zacząć" to zadaj sobie pytanie - co chcesz osiągnąć?
Gry? Najpierw Python, potem C#/C++.
Aplikacje graficzne pod Windowsa? C#.
Aplikacje graficzne pod różne systemy? Java.
Back-end stron internetowych? Python (z Django) bądź Ruby (on Rails).

A jeśli nigdy nie programowałeś to zaczynanie od C++ jest masochizmem. To nie jest język który można dobrze opanować w czasie krótszym niż z półtora roku. I osobiście uważam że jest sens w niego brnąć tylko jeśli:
a) interesuje cię tylko zaliczenie szkoły i nic poza tym.
b) bądź masz napraaaaaawdę sporo czasu do wykorzystania.

Raz nawet napisałem coś takiego, krótkie i pobieżne porównanie między popularnymi językami:
http://forum.gram.pl/forum_post.asp?tid=193&pid=1463

Na twoim miejscu więc zacząłbym od czegoś prostego typu Python czy Ruby. Łatwe w nauce, szybko będziesz też w stanie napisać coś co jest "prawdziwą" aplikacją a nie okienkiem które potrafi wyświetlić kilka linii tekstu.

Bo jasne, możesz sobie kupić Symfonię (coś koło tysiąca stron) i pod koniec nauki w niej będziesz potrafił zrobić program który np. bierze plik .txt i mówi ci ile wystąpiło dane słowo. Nuda. W międzyczasie w tym samym czasie spędzonym przy Pythonie prawdopodobnie dałbyś radę napisać już np. pełnoprawną platformówkę.

Więc jeśli nie umiesz programować - zainteresuj się:
http://www.codecademy.com/tracks/python (darmowy kurs online Pythona, całkiem niezły dla odmiany)
bądź "Learn Python the Hard Way" czy dostępnym w Polsce "Python. Wprowadzenie. Wydanie IV" (choć tak na moje oko to on jest z 3x za gruby więc zakładam niezłe wodolejstwo)

Te dwa pierwsze to krótkie podręczniki przeznaczone właśnie dla początkujących programistów. A jak już je opanujesz jako tako Pythona to możesz się przerzucić wówczas do C++ z jakimś zrozumieniem "co ja właściwie robię". Bo tak to od razu skaczesz na naprawdę głęboką wodę. Co w sumie może wypalić o ile zależy ci tylko na zaliczeniu programu szkolnego... a zresztą... tutaj masz przykładowe prace domowe z tematyki programowania na pierwszym roku studiów (to jest czyste C a nie C++):
http://puu.sh/9isiV/7a83128249.png
http://puu.sh/9isoP/83c6991dd4.png
http://puu.sh/9isqI/26e6c533f7.png

W sumie przez lata dużo się nie zmienia pod kątem tematyki (poznajesz konstrukcje języka a nie jego realne praktyczne zastosowania) więc jeśli zależy ci na opanowaniu programowania to patrzenie na to co jest w programie szkolnym i dostosowanie się do niego sensu za dużo nie ma.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Utwórz konto lub zaloguj się, aby skomentować

Musisz być użytkownikiem, aby dodać komentarz

Utwórz konto

Zarejestruj nowe konto na forum. To jest łatwe!


Zarejestruj nowe konto

Zaloguj się

Masz już konto? Zaloguj się.


Zaloguj się
Zaloguj się, aby obserwować