Zaloguj się, aby obserwować  
UthersonL

Programowanie - pytania, problemy, przykłady programów

1812 postów w tym temacie

>ciach

To ja powiem, to co miałem na studiach, Politechnika Warszawska, wydział Elektroniki i Technik Informacyjnych - kierunek: Elektroniki, Informatyka, Telekomunikacja.

Na przedmiocie pierwszego semestru zwanym Podstawy programowania, miałem dwa projekty: jeden to zrobić coś w stylu zarządzanie biblioteką ( oddawanie, pożyczanie, konta użytkowników ), drugim projektem był program do edytowania tagów ID3 v1.
Ten przedmiot był robiony w C.

Drugim przedmiotem ( i ostatnim stricte programowym ), to Programowanie obiektowe i w nim przez cały semestr się tworzyło różne obiekty ( np. był do wyboru czołg, biblioteka, park itd. ).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 08.06.2013 o 19:00, sinir napisał:

Witam, ktoś orientuje się jakiego rodzaju programy są pisane na studiach z programowania?
Jestem w 2-giej technikum i to co było męczone przez ten rok to taki mini-bank zachowujący
balans konta, można było wysyłać przelewy i parę innych funkcji z zachowaniem wszystkich
ustawień po ponownym włączeniu programu (tj. zapisywanie/odczytywanie z pliku) i to było
w tym wszystkim "najtrudniejsze" :O. Do tego wszystko robione na klasie z wywoływaniem
konkretnych funkcji. Jestem ciekaw co jest na studiach.


Ja się orientuję całkiem nieźle.
Pierwsze półrocze:
http://www.mediafire.com/download/1a54yrvyun6v2jg/prace_domowe.rar
Wybacz że pytania po angielsku ale cóż, takie studia :D

W drugim półroczu było z kolei coś co się nazywa struktury danych i algorytmy - drzewa binarne, rekurencje, listy i sposoby ich segregacji (niestety już pdf-ów nie mam bo odechciało mi się to trzymać u siebie na kompie xD). Na drugim roku pojawia się programowanie obiektowe - czyli klasy, obiekty, klasy pochodne i wirtualne, polimorfizm nazw funkcji, przeciążanie operatorów (witamy w C++ ;f), szablony itp.

W sumie same programy NIE są skomplikowane. Na egzaminie z pierwszego półrocza mieliśmy np. napisać program który ze standardowego wejścia weźmie spory fragment tekstu (całe opowiadanie, dawało mu się plik .txt) i miał np. zamienić wszystkie litery na duże, wyświetlić ile razy która się pojawiła i takie tam. Na drugim roku to raczej straszy ''computer graphics'' aniżeli czyste umiejętności programistyczne bo jak dostaniesz śliczny wydrukowany fraktal i masz go odtworzyć na kompie to potrafi się robić nieciekawie, wyświetlenie tego to akurat najmniejszy problem ^^

W praktyce to o czym piszesz, taki mini-bank, to jest takie typowe zadanko które dostaniesz jako praca domowa, razem z czterema podobnymi, do zrobienia przez tydzień.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dzięki za odpowiedź.

Gdzieś przeczytałem, że ten drugi parametr w nawiasie for to warunek zakończenia pętli, czyli, że jak jest true to kończy się działanie pętli.

Co do drugiej kwestii myślałem że stworzenie zmiennych W1 i W2 typu unsigned int rozwiązuje sprawę ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 08.06.2013 o 21:24, Skayfer napisał:

Dzięki za odpowiedź.

Gdzieś przeczytałem, że ten drugi parametr w nawiasie for to warunek zakończenia pętli,
czyli, że jak jest true to kończy się działanie pętli.

A bo to prawda tzn. to jest warunek zakończenia pętli. Ale zrozumiałeś to na opak:
for (int a=0; a<10; a++) wykona się 10 razy.

Dnia 08.06.2013 o 21:24, Skayfer napisał:

Co do drugiej kwestii myślałem że stworzenie zmiennych W1 i W2 typu unsigned int rozwiązuje
sprawę ?


Ekhem, to byś dopiero popełnił wtopę... Wartość z 0 po odjęciu 1 w unsigned int zmieni się tak na bodajże 2^32-1. Bo JAKOŚ ta zmiana musi zostać zapisana z jednej wartości na drugą. W tym przypadku zero to minimum więc zmniejszenie tego spowoduje zmianę wartości na maksymalną możliwą (jaka to będzie konkretnie liczbazależy od systemu i środowiska programistycznego, możesz to sprawdzić wykorzystując UNSIGNED_INT_MAX-1 z biblioteki climits, fakt faktem będzie dość duża).

Logika nakazuje w takich sytuacjach używać zwykłych intów i:
a) albo robić if(a<0){a=0;}
b) albo po prostu się zabezpieczać i zamiast if (a==0) używać if(a<=0).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Piszę skrypt w PHP na wyszukiwanie rekordu z bazy, kod jest tutaj http://pastebin.com/zCUCUzr5.

Wywala błąd mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in. Nie wiem co jest nie tak. Może w zapytaniu muszę podać wszystkie pola jakie występują w tabeli ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Oki, mam problem.
http://wklej.to/Tb1gw

Kod jest prawdopodobnie nieuporządkowany i używam dużo importów, których nie używam w programie.

Problem: Potrafię wprowadzić dane i zapisać jest do pliku D:\JAVA\workspace\L9\dane.txt.
Mógłby mi ktoś powiedzieć jak odczytać dane zapisane w pliku jako:
Imię
Nazwisko
Numer Telefonu
Adres

i przedstawić je jako
u = <imię>
y = <nazwisko)
o = <telefon>
p = <adres>
?

Mam problem, bo za każdym razem wyrzuca mi jakieś błędy i każde catch/try w nieskończoność. Internet nie pomógł, więc pytam inną jego część.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Pracując z dużą liczbą folderów często trafia się na foldery nie mające nic w środku lub posiadające folder z taką samą nazwą i dopiero w nim są pliki.

Jest jakiś tutorial o powiązaniu poleceń windowsa/linuksa z aplikację np. w C, tak by mozna było automatycznie skryptem czy też programem usuwać takie foldery?

A może już ktoś się tym zajął, tak jak duplikatami plików (na które istnieje wiele programów)?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 09.06.2013 o 16:36, Skayfer napisał:

Wywala błąd mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in.
Nie wiem co jest nie tak. Może w zapytaniu muszę podać wszystkie pola jakie występują
w tabeli ?


Pomocna funkcja to var_dump($zmienna) - pokaże ci ona jaką wartość ma dana zmienna (nawet wartości true/false/bool, których nie zobaczysz używając echo.

Masz błąd w zapytaniu SQL, więc pewnie twoje zapytanie jest równe false.

PS. W przyszłości pamiętaj, że wszystkie dane od użytkownika (zmienne $_POST, $_GET, $_FILE) muszą zostać zweryfikowane zanim zostaną przekazane do zapytania SQL (a jeszcze lepiej użyć mysqli, zamiast mysql i tam przygotowywania zapytań)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 09.06.2013 o 18:13, Boguslav4 napisał:

Jest jakiś tutorial o powiązaniu poleceń windowsa/linuksa z aplikację np. w C, tak by
mozna było automatycznie skryptem czy też programem usuwać takie foldery?
A może już ktoś się tym zajął, tak jak duplikatami plików (na które istnieje wiele programów)?

To jest proste zarówno w robiąc to w bashu do Linuksa jak i pliku bat dla Windowsa. Prosta pętla przelatująca wszystkie katalogi i używająca poleceń ren i move. Nie mam gotowego przykładu bo był to taki drobiazg, że kiedy potrzebowałem, to robiłem na poczekaniu, a potem kasowałem.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 10.06.2013 o 09:56, Olamagato napisał:

To jest proste zarówno w robiąc to w bashu do Linuksa jak i pliku bat dla Windowsa. Prosta
pętla przelatująca wszystkie katalogi i używająca poleceń ren i move. Nie mam gotowego
przykładu bo był to taki drobiazg, że kiedy potrzebowałem, to robiłem na poczekaniu,
a potem kasowałem.


W tym rzecz, że to drobiazg, ale umyka mi jakiś prosty (bo przecież nie jest tu potrzebny trudny) sposób połaczenia poleceń :P

Edit. Znalazłem jak zrobić pojedyńczą rzecz- usunięcie pusty, lecz pozostaje problem katalogów podwójnych- porównywanie nazwy katalogu "nad" i jesli takie same to przenoszenie dwa "rzędy" do góry zawartości katalogu?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 10.06.2013 o 10:16, Boguslav4 napisał:

Edit. Znalazłem jak zrobić pojedyńczą rzecz- usunięcie pusty, lecz pozostaje problem
katalogów podwójnych- porównywanie nazwy katalogu "nad" i jesli takie same to przenoszenie
dwa "rzędy" do góry zawartości katalogu?

Zmieniasz nazwę katalogu niższego o takiej samej nazwie jak bieżący na nazwę tymczasową (unikalną) i dopiero wtedy przenosisz zawartość niższego do bieżącego. Katalog o nazwie tymczasowej usuwasz i rekurencyjnie powtarzasz to działanie tak długo dopóki nazwa katalogu taka sama jak nazwa bieżącego będzie występować. Chodzi o to, że katalog o tej samej nazwie choć może występować tylko jeden, to może istnieć na każdym niższym poziomie. Oczywiście o ile zależy Ci na zredukowaniu wszystkich poziomów, a nie tylko jednego.
Dlatego powinny być dwie zagnieżdżone w sobie pętle for - jedna dla sprawdzania kolejnych nazw katalogów (i przechodzenia przez całe drzewo katalogów), a druga dla eliminacji konkretnej znalezionej nazwy (i przechodzenia tylko przez niższe gałęzie od znalezionej pozycji.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 10.06.2013 o 17:29, Olamagato napisał:

Zmieniasz nazwę katalogu niższego o takiej samej nazwie jak bieżący na nazwę tymczasową
/ciach/


Genialne rozwiązanie, dzięki :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ostatnio zainteresowałem się tematem rozpoznawania głosu i mam pytanie. Czy przypadkiem nie zna ktoś, jakiejś biblioteki do obsługi wejścia audio (pobierania, odtwarzania dźwięków z mikrofonu) albo na .Net albo na jave? Z góry dzięki za posty.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Możecie polecić jeden albo dwa podręczniki do programowania (najlepiej C++) ? Takie w stylu od zera do bohatera dla totalnego początkującego. Najlepiej w formie zwykłej książki żeby wygodniej się czytało.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 19.07.2013 o 20:01, revolt505 napisał:

Możecie polecić jeden albo dwa podręczniki do programowania (najlepiej C++) ? Takie w
stylu od zera do bohatera dla totalnego początkującego. Najlepiej w formie zwykłej książki
żeby wygodniej się czytało.


Dwie najlepsze to:
http://merlin.pl/Arkana-C-Programowanie_H-M-Deitel-P-J-Deitel/browse/product/1,168398.html - podręcznik
http://www.empik.com/jezyk-c-stroustrup-bjarne,prod5770085,ksiazka-p - kompletny opis języka

Niestety pod tymi linkami te książki są niedostępne, ale może jak poszukasz to uda Ci się znaleźć. Obie mają po ok. 1000 stron, więc są dość szczegółowe.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Symfonia C++ pana Grębosza. Może zbyt dużo miejsca poświęca wskaźnikom, ale w sumie przydaje się mocno ich opanowanie.

Nie polecam natomiast podręcznika pana Stroustrup Bjarne. Niby to twórca C++ ale książka wydaje mi się zbyt ciężka jak na początek.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 20.06.2013 o 18:09, Dregorio napisał:

Byłby ktoś tak miły i wypisał mi w punktach różnice między błędami semantycznymi, a syntaktycznymi?

[ups już po sesji...]
Błąd syntaktyczny, to taki który powoduje, że:
- zapis programu nie spełnia wymogów języka (błędne słowa kluczowe, literówki, brak par otwierania i zamykania bloków sterowania itp.)
- wymogi języka są spełnione, ale zapisane elementy nie są spójne ze sobą (np. użycie zmiennej, która nie została zadeklarowana, błędne użycie operatorów, zła ilość argumentów itp.)
Błędy syntaktyczne są w całości wykrywane przez analizator kompilatora lub interpretera i raportowane jako "błędy".

Błędy semantyczne, to takie które powodują, że program działa wadliwie lub niezgodnie z intencjami, ale sam zapis programu jest zgodny z wymaganiami języka. Błędy semantyczne ogólnie nie są wykrywane, choć kompilator symptomy niektórych z nich potrafi wykryć i wtedy raportuje je jako ostrzeżenia. Typowymi łatwo wykrywalnymi błędami semantycznymi są np. instrukcje warunkowe, których warunki przyjmują zawsze wartości prawdziwe lub zawsze fałszywe, doprowadzenie do dzielenia przez wartości zerowe oraz sławny "null pointer exception", czyli sytuacja, w której przekazane odwołanie do jakiegoś obiektu wskazuje coś innego lub nic. Najgorsze i najtrudniejsze do wyeliminowania błędy semantyczne, to takie, które powodują, że jakiś element aplikacji wykracza w pewnych warunkach poza swoją specyfikację - np. umieszczanie wartości o zakresie wartości większym niż 256 w zmiennej typu byte, beztroskie zamienne używanie tych samych wartości w arytmetykach ze znakiem i bez znaku, utrata informacji - np. zmiana każdej możliwej wartości zawsze na wartość parzystą lub nieparzystą, zero,... itp.

W projektach, które dążą do upadku ostrzeżenia są wyłączane lub ignorowane ponieważ poważne błędy semantyczne nie są w ogóle wykrywane aż do momentu w którym aplikacja jest tak rozbudowana, że naprawa takich błędów jest bardzo kosztowna (pod względem złożoności i czasu), a sama aplikacja powoduje upadek w niejasnych okolicznościach (np. wyciek i wyczerpanie pamięci). W dobrych projektach żaden programista nie wyśle do repozytorium kodu, który generuje chociaż jedno nie rozpatrzone ostrzeżenie. A i to nie gwarantuje braku błędów semantycznych bo to tylko warunek konieczny.

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ć