Zaloguj się, aby obserwować  
UthersonL

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

1812 postów w tym temacie

Dnia 12.11.2013 o 00:29, Daronn_Darker napisał:

Jaką komendę(C/C++) użyć kiedy chce się wyczyścić terminal? Chodzi mi o to ze np. mam
Menu ze switchem i jak już wybiorę opcje żeby mi wyczyściło.


Wieki w C nie programowałem ale to chyba było system("cls"); albo cls; albo cls();

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Masz na myśli podmienić 2 liczby ze sobą? Pierwszą przypisujesz do zmiennej tymczasowej, drugą do pierwszej a potem do drugiej przypisujesz tymczasową. Ewentualnie można to zrobić funkcją swap(zmienna1, zmienna2) .

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 12.11.2013 o 21:11, Thalanthas napisał:

Nie rozumiem. Żeby zamiast 3 wyświetliło się x?

Masz grę kółko i krzyżyk w terminalu. Każde z 9 pól ma w sobie '' '', albo jedną z cyfr(w zależności jak chcesz by wyglądała na początku plansza). A ty poprzez wciśniecie np. 3, w jej miejsce(tej komórki) masz wpisać x, albo O.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie można tak było od razu? :D Kiedyś robiłem grę kółko i krzyżyk. Z tego co pamiętam to zrobiłem to w macierzy 3 na 3 i podawałem współrzędne miejsca na której chce postawić znak. Wtedy podmieniałem na tym polu spację ze znakiem zwykłym przypisaniem. Wiem że to sposób bardzo toporny ale robiłem to w liceum. :P Nie robiłem podmiany żadną funkcją tylko po prostu tab[a][j] = ''x''. Mam nadzieję że to o to chodzi. ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 12.11.2013 o 23:35, Daronn_Darker napisał:

/.../
Tak dzięki

Alternatywą jest wykorzystanie znaku powrotu karetki ("\r").

Działa on w ten sposób:
cout << "Jestem sobie linia kodu";
cout << "\rAlbo i nie";

Wynikiem takiej operacji na ekranie będzie:
"Albo i nieie linia kodu". Jak łatwo zauważyć, użycie \r sprawia iż linia zaczyna się od nowa i zastępowane są znaki w niej występujące. Kolejną alternatywą, jeśli nie masz zaufania do wykorzystania instrukcji system z bibilioteki cstdlib (która ma to do siebie to że nieszczególnie skaluje się pomiędzy różnymi systemami operacyjnymi, poza tym jest dość "toporna" bo po prostu wykonuje polecenie powłoki, teoretycznie możesz wpisać nawet system ("echo y |format D:") które po prostu sformatuje ci partycję D: bez pytania o potwierdzenie.
Tu masz wyjaśnienie dlaczego jest to rozwiązanie odradzane:
http://www.cplusplus.com/articles/j3wTURfi/

Sposoby nieco lepsze z których radzę skorzystać:
http://www.cplusplus.com/articles/4z18T05o/

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Mam za zadanie utworzyć tablicę o wymiarach 2 na N, gdzie w pierwszym wierszu wypisane będą liczby rzeczywiste wprowadzone przez użytkownika, a w drugim kwadraty tych liczb. Program napisałem, z tym że wyświetla liczby na przykład tak:

2
4
6
36
3
9

Jak zrobić, aby program wyświetlał liczby prawidłowo, tj.

2 6 3
4 36 9

Słyszałem o zastosowaniu podwójnej pętli for, ale gdy próbuję to zrobić, liczby wyświetlane są tak, jak w pierwszym przykładzie, ponadto program prosi o podanie 2 razy większej ilości liczb niż użytkownik zadeklarował na początku.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Może daj warunek żeby dla mod 4 dawało znak nowej linii przy wyświetlaniu? Czy jeśli robisz dla N to mod N + 1. Choć w sumie i dla mod n też się chyba da. ;p

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 13.11.2013 o 20:23, Gumisiek2 napisał:

Słyszałem o zastosowaniu podwójnej pętli for, ale gdy próbuję to zrobić, liczby wyświetlane
są tak, jak w pierwszym przykładzie,


for (int wiersz = 0; wiersz < 2; wiersz++) {
for(int kolumna = 0; kolumna < N; kolumna++) {
wyswietl(twoja_tablica[wiersz][kolumna]);
}
wyswietl("\n");
}

Oczywiście funkcja "wyświetl" to będzie odpowiednia funkcja do wyświetlania danych na konsoli w języku jakiego używasz (niestety tego nie podałeś, ani kawałka kodu :( )

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Z roztargnienia o tym zapomniałem, mój błąd :P Chodziło o C++. Zrobiłem pętle według Twojego sposobu i działa OK, dziękuję bardzo za pomoc.

@rob006

Dnia 13.11.2013 o 21:14, eNcore napisał:

BTW: tablica o wymiarach 2 na N ma dwie kolumny i N wierszy, nie odwrotnie.


Chodziło o takie coś:

int tab[2][n];

Tu przecież dwójka odpowiada ilości wierszy, a n ilości kolumn :P

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 14.11.2013 o 00:14, Gumisiek2 napisał:

Chodziło o takie coś:
int tab[2][n];
Tu przecież dwójka odpowiada ilości wierszy, a n ilości kolumn :P


To zależy od sposobu w jaki ją wyświetlisz - tablica to tablica, przechowuje tylko dane, nie określa sposobu ich prezentacji. Standardowo wymiary podaje się wg schematu szerokość x wysokość x głębokość.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 14.11.2013 o 00:14, Gumisiek2 napisał:

Z roztargnienia o tym zapomniałem, mój błąd :P Chodziło o C++. Zrobiłem pętle według
Twojego sposobu i działa OK, dziękuję bardzo za pomoc.

@rob006

> BTW: tablica o wymiarach 2 na N ma dwie kolumny i N wierszy, nie odwrotnie.

Chodziło o takie coś:

int tab[2][n];

Tu przecież dwójka odpowiada ilości wierszy, a n ilości kolumn


W zasadzie dla komputera to nie ma to znaczenia :P On i tak w pamięci przechowuje tablicę tak jakby miała jeden wymiar - niezależnie czy to jest tablica która ma dwa wymiary, czy ma tych wymiarów dziesięć(co jest raczej trudne do wyobrażenia:)) Dlatego można wyświetlanie zrobić w jednym forze (+ trochę podstawowej matematyki).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 14.11.2013 o 09:13, rob006 napisał:

To zależy od sposobu w jaki ją wyświetlisz - tablica to tablica, przechowuje tylko dane,
nie określa sposobu ich prezentacji. Standardowo wymiary podaje się wg schematu szerokość
x wysokość x głębokość.


O, w takim razie dzięki za wskazówkę ;-) Niestety, moje ćwiczenia z informatyki wyglądają tak, że dostajemy listę 8-12 zadań i mamy je zrobić na następny tydzień, a o wykładzie szkoda gadać, więc jedyną wiedzę w tym temacie zdobywam z książek, Internetu i czytając porady innych.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Byłby ktoś tak dobry i wytłumaczył mi łopatologicznie jak z poniższego diagramu związków encji mogę utworzyć schemat relacyjnej bazy danych?

20131115123159

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Sam sporządziłem taki schemat, nie jestem pewien czy dobrze rozumiem pojęcie relacyjnej bazy danych, mógłby ktoś rzucić okiem i sprawdzić, czy to jest dobrze?

20131115132105

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 15.11.2013 o 13:21, Paweuu napisał:

Sam sporządziłem taki schemat, nie jestem pewien czy dobrze rozumiem pojęcie relacyjnej
bazy danych, mógłby ktoś rzucić okiem i sprawdzić, czy to jest dobrze?


Ja trochę dawno temu miałem takie atrakcje, jak przenoszenie z mode encji na bazę, ale zrobiłbym to trochę inaczej. Po pierwsze, encja "Oferta" wydaje mi się trochę bez sensu. Rozumiem, że jest to rozbicie związku "wiele do wielu"? Po drugie między "Ofertą" i "Sprzedażą" chyba też powinien być jakiś związek.

<Zacząłem tu pisać, ale uświadomiłem sobie, że moja wizja oznacza zmianę jednej kreski u Ciebie :P> Dodałbym tylko związek między sprzedażą i agentem. Powinno być tak moim zdaniem dlatego, że jeden klient może wykupić tę samą wycieczkę u 2 różnych agentów (dziwne, ale możliwie). Dlatego wtedy klucz główny, jakim w Twoim przypadku dla "Sprzedaży" jest Nr klient i nr wycieczki mógłby nie zadziałać. Widzę, że masz nr dokumentu, co wyznacza jednoznacznie "Sprzedaż", ale wydaje mi się, że powinien istnieć związek pomiędzy "Agentem" a "Sprzedażą".

Czyli pomiędzy "Wycieczką" a "Agentem" powinny być dwie drogi - jedna przez "Ofertę" a druga przez "Sprzedaż". Przy czym do "Sprzedaży" powinna iść ścieżka od "Klienta".

Co do Statusu, to z tego co pamiętam, jeśli zbiór wartości jest stały (a tak chyba jest w Twoim przypadku) to nie powinno się tworzyć osobnej encji, tylko kolumnę w tabeli "Wycieczka" z więzem integralności Check (Check Status in = {A,B,C,D,E}). Osobne encje dodaje się w momencie, w którym ilość statusów nie jest znana lub dynamicznie zmienna.


To tyle z moich mądrości. Mam nadzieję, że się do czegoś przyda :)

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ć