driver1995 Temat założony przez niniejszego użytkownika |
Problem z "listą" C++ » 2009-03-16 22:56:06 Witam... Jestem tu nowy i skusiłem, się do przeczytania (i nauczenia się) kursu C++... Doszedłem do XX rozdziału, no i tak mnie naszło, żeby zrobić coś tak jakby na podsumowanie... Wszystko spoko i nagleee... Problem tkwi w tym, że nie wiem, jak zrobić, żeby była lista i na niej pozycja XXXX, YYYY, ZZZZ itp., żeby zaczynało się to od 4 wiersza, żeby pomiędzy nimi był odstęp jeden wiersz, oraz żeby można je było wybierać, żeby się zaznaczały... Na początku próbowałem kombinować tak jak jest w XIX rozdziale, z tym for(int i=0;i<X;i++) tylko potem nie udawało mi się wpisać czegoś, żeby nie było numerka... Może to zły tok myślenia... Bardzo bym prosił o wytłumaczenie tego...... Pozdro.;)
PS. To tylko jeden, bo dopiero ten program "podsumowujący" 20 rozdziałów zacząłem, ale znając siebie, to będzie tych problemów więcej, także bd pisał o nich w tym temacie... No, chyba, że nie będzie;) |
|
DejaVu |
» 2009-03-16 23:09:57 Wydaje mi się że opis jest trochę chaotyczny... niewiele raczej z niego zrozumiałem. A jeśli coś zrozumiałem to wygląda to tak: 1. chcesz zrobić listę (ile elementów ma się wyświetlać?) 2. chcesz wyświetlać listę od 4'tego elementu 3. próbowałeś użyć do tego pętli for (ale coś Ci nie wyszło - nie wiem co) 4. dane które chcesz wyświetlić masz w tablicy (chyba) int iloscDanych = 20; std::string tablica[ 555 ]; int pozycja = 3; int koniec = pozycja + 10; if( koniec > iloscDanych ) { koniec = iloscDanych; } for( int i = pozycja; i < koniec; i++ ) { cout << tablica[ i ] << endl; }
O to chodzi? |
|
driver1995 Temat założony przez niniejszego użytkownika |
» 2009-03-17 16:01:43 O... No coś w tym stylu, dzięki, z tym, żeby to jeszcze można zaznaczać, każdą pozycję oddzielnie... |
|
DejaVu |
» 2009-03-17 16:03:25 Nie rozumiem :) |
|
driver1995 Temat założony przez niniejszego użytkownika |
» 2009-03-17 16:10:10 No dobra... Powiedzmy mój program ma wyglądać tak: NazwaProgramu(to mam)
XXXX
YYYY
ZZZZ [esc]wyjście(to też mam) I żeby przy pomocy strzałek, przeskakiwać z XXXX na YYYY i na ZZZZ... Bo próbowałem zrobić coś w stylu jak jest w rozdziale XIX tylko mi zamiast jednego zaznaczają wszystkie pozycje;/;/;/ |
|
DejaVu |
» 2009-03-17 16:21:46 int zaznaczony = 5; for(...) { if( i == zaznaczony ) { ustawKolor( 123 ); } else { ustawKolor( 456 ); } }
|
|
driver1995 Temat założony przez niniejszego użytkownika |
» 2009-03-17 16:35:26 Ja chyba jestem jakiś ciemny... void listaM( int zaznaczM ) { int iloscDanych = 20; std::string tablica[ 1000 ]; int pozycja = 3; int koniec = pozycja + 10; if( koniec > iloscDanych ) { koniec = iloscDanych; } for( int i = pozycja; i < koniec; i++ ) { if( i == zaznaczM ) { textcolor( 0 ); textbackground( 2 ); } else { textcolor( 2 ); textbackground( 0 ); } cout << tablica[ i ] << "XXXX" << endl; cout << tablica[ i ] << "YYYY" << endl; } return; }
No i się zaznacza na raz oba... Co jest źle.. Tzn. ja wiem co jest źle tylko jak to zrobić, żeby było dobrze??? EDIT: void listaM( int zaznaczM ) { string tablica[ 666 ]; for( int i = 4; i <= 4; i++ ) { if( i == zaznaczM ) { textcolor( 0 ); textbackground( 2 ); } else { textcolor( 2 ); textbackground( 0 ); } gotoxy( 1, i ); cout << tablica[ i ] << "XXXX" << endl; } for( int j = 5; j <= 5; j++ ) { if( j == zaznaczM ) { textcolor( 0 ); textbackground( 2 ); } else { textcolor( 2 ); textbackground( 0 ); } gotoxy( 1, 6 ); cout << tablica[ j ] << "YYYY" << endl; } return; } Trochę pokombinowałem i to mi wyszło... Jest tak jak chce tylko (na przyszłość) jakbym robił liste np na 100 pozycji to przecież nie będę tak każdą literkę oddzielnie oznaczał(chyba, że będzie to konieczne.).. I w związku z tym: czy nie da się zrobić to samo tylko prościej? |
|
DejaVu |
» 2009-03-17 17:21:38 Wniosek jest prosty - nie wiesz co to są tablice, do czego służą i jak je wykorzystywać. Poczytaj odpowiednią lekcję kursu :) |
|
« 1 » 2 |