Kacperjas utworzono 15 czerwca 2012 utworzono 15 czerwca 2012 (edytowane) Witam mam pytanie powiedzmy że mam program konkursowy (quiz [Nie wiem jak pisać ]) i mam pytanie pod funkcją (...): [quote] std::cout<< "Jak się nazywal samolot ktory rozbil sie pod smolenskiem?"<<std::endl; std::cout<< "a) F16"<<std::endl; std::cout<< "b) Tupolev"<<std::endl; //Nie wiem jak pisać "Tupolev :-| std::cin>> nOdpowiedz; if ( nOdpowiedz == B ) { const int PUNKTY = 1; } [/quote] I pare razy cos takiego lecz co zrobić aby program losował pytania za pomocą czasu? Ale też żeby zamiast zmieniać to dodawał do stałej "PUNKTY" jeden punkt? Proszę w nowej odpowiedzi na czym polega "inkrementacja" i "dekrementacja". Prosze o szybką odpowiedz TO OD WAS ZALEŻY CZY NAPISZĘ PROGRAM!!!
leggo komentarz 15 czerwca 2012 komentarz 15 czerwca 2012 liczby z przedziału od 0 do 10 losujesz tak: [CODE] rand() % 10; [/CODE] Wcześniej w kodzie wstaw jeszcze [CODE] srand(time(NULL)); [/CODE]
pytanko komentarz 15 czerwca 2012 komentarz 15 czerwca 2012 Od razu mowie ze nie jestem programista ani z wyksztalcenia ani hobby ale jezeli chcesz cos losowac to uzyj funkcji random()%x+1 - wylosuje ci to liczby z przedzialu (0,x) czyli jak chcesz wylosowac liczby z przedzialu od 0 do 10 to napisz - random()%11. Do tego w funkcji main wpisz srand(time(0)). I oznacz sobie te pytania jakos i uzyj switch i case Mam nadzieje ze ci pomoglem chociaz szczerze to w to watpie
Kacperjas komentarz 15 czerwca 2012 Autor komentarz 15 czerwca 2012 (edytowane) Ale co zrobić by pod liczbami kryły się komendy czyli: [quote] [color=#666600][color=#000000]srand[/color][color=#666600]([/color][color=#000000]time[/color][color=#666600]([/color][color=#000000]NULL[/color][color=#666600]));[/color][/color] [color=#000000]rand[/color][color=#666600]()[/color] [color=#666600]%[/color] [color=#006666]10[/color][color=#666600];[/color] //powiedzmy że wylosowało 3 jak zrobić aby komenda była "wklejona" w odpowiednią część kodu? [/quote] Nie rozumiem czy możecie podać pełny kod? Oraz by nie powtarzały się a "[color=#00FF00]rand() % 10[/color][color=#00FF00];" [/color]może np. dwa razy wylosować 3 co zrobić a wtedy "[color=#00FF00]switch[/color]" nic nie zrobi!? EDIT: Zrobi ale nie zatrzyma i każe kolejny raz losować bo "switch" tylko wyświetla z kolumn
leggo komentarz 15 czerwca 2012 komentarz 15 czerwca 2012 Pytania musisz mieć zgrupowane w jakimś kontenerze, najprościej dla Ciebie będzie pewnie wsadzić je do tablicy. Później losujesz sobie liczbę z zakresu odpowiadającego ilości pytań w tablicy. Wylosowana liczba odpowiada indeksowi pytania w tablicy.
Kacperjas komentarz 15 czerwca 2012 Autor komentarz 15 czerwca 2012 (edytowane) Myślę żeby w trakcie dzałania programu zapisywało liczby i w trakcie powtórzenia (liczb) zatrzymywało i jeszcze raz wywoływało funkcje "[color=#00FF00]rand() % 10;[/color]" OK ale jestem "świeżak" w C++ czy możecie podać fragment gotowego kodu BAAARDZO PROSZĘ Jeszcze problem powtórzeń pytań patrz UP.
leggo komentarz 15 czerwca 2012 komentarz 15 czerwca 2012 Wrzuć tutaj to co napisałeś i wtedy możemy coś poprawiać. To ma być Twój kod, nie mój. Co do powtarzania liczb w losowaniu. Możesz zapamiętywać sobie liczby jakie zostały już wylosowane, ale takie rozwiązanie sprawdzi się tylko jeśli chcesz wylosować tylko niektóre pytania (np. 10 pytań z 20). Jeśli chcesz wylosować wszystkie pytania, to wylosowanie dostępnego pod koniec może być trudne - gdy masz np. 100 pytań i wylosujesz już 99 prawdopodobieństwo trafienia tego ostatniego jest małe i program będzie musiał dużo razy powtarzać losowanie.
Kacperjas komentarz 15 czerwca 2012 Autor komentarz 15 czerwca 2012 [quote name='leggo' timestamp='1339769461' post='1521194'] Wrzuć tutaj to co napisałeś i wtedy możemy coś poprawiać. To ma być Twój kod, nie mój. Co do powtarzania liczb w losowaniu. Możesz zapamiętywać sobie liczby jakie zostały już wylosowane, ale takie rozwiązanie sprawdzi się tylko jeśli chcesz wylosować tylko niektóre pytania (np. 10 pytań z 20). Jeśli chcesz wylosować wszystkie pytania, to wylosowanie dostępnego pod koniec może być trudne - gdy masz np. 100 pytań i wylosujesz już 99 prawdopodobieństwo trafienia tego ostatniego jest małe i program będzie musiał dużo razy powtarzać losowanie. [/quote] Poczekaj...
pytanko komentarz 15 czerwca 2012 komentarz 15 czerwca 2012 Latwiej by bylo gdyby te pytania nie byly wybierane losowo tylko lecialy w takiej kolejnosci jak je zapisales.
Kacperjas komentarz 15 czerwca 2012 Autor komentarz 15 czerwca 2012 [quote] [indent=1][font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF]#include[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515]<iostream>[/color][/size][/font][/color][/size][/font][/color][/size][/font] [font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF]#include[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515]<conio.h>[/color][/size][/font][/color][/size][/font][/color][/size][/font] [font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF]#include[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515]<string>[/color][/size][/font][/color][/size][/font][/color][/size][/font] [font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF]#include[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515]<windows.h>[/color][/size][/font][/color][/size][/font][/color][/size][/font] [font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF]const[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF]int[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2] PUNKTY = 0[/size][/font][/size][/font] [font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF]int [/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2]A,B,C,D,E;[/size][/font][/size][/font] [font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF]int [/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2]V[/size][/font][/size][/font] [font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF]void [/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2]main()[/size][/font][/size][/font] [font=Consolas][size=2][font=Consolas][size=2]{[/size][/font][/size][/font] [font=Consolas][size=2][font=Consolas][size=2]std::cout<< [/size][/font][/size][/font][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515]"-Pytanie na banie-"[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2]<<std::endl;[/size][/font][/size][/font] [font=Consolas][size=2][font=Consolas][size=2]std::cout<< [/size][/font][/size][/font][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515]"Pisz z CAPSLOCKIEM"[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2]<<std::endl;[/size][/font][/size][/font] [font=Consolas][size=2][font=Consolas][size=2]system ([/size][/font][/size][/font][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515]"pause"[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2]);[/size][/font][/size][/font] [font=Consolas][size=2][font=Consolas][size=2]std::cout<< [/size][/font][/size][/font][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515]"1.Najblizej jakiego kontynentu zatonol Tytanik?"[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2]<<std::endl;[/size][/font][/size][/font] [font=Consolas][size=2][font=Consolas][size=2]std::cout<< [/size][/font][/size][/font][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515]"a) Ameryka Południowa "[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2]<<std::endl;[/size][/font][/size][/font] [font=Consolas][size=2][font=Consolas][size=2]std::cout<< [/size][/font][/size][/font][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515][font=Consolas][size=2][color=#A31515]"b) Afryka"[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2]<<std::endl;[/size][/font][/size][/font] [font=Consolas][size=2][font=Consolas][size=2]std::cin>> V;[/size][/font][/size][/font] [font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF]if [/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2](V == A)[/size][/font][/size][/font] [font=Consolas][size=2][font=Consolas][size=2]{[/size][/font][/size][/font] [font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF]const[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2] [/size][/font][/size][/font][font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF][font=Consolas][size=2][color=#0000FF]int[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Consolas][size=2][font=Consolas][size=2] PUNKTY = 1[/size][/font][/size][/font] [font=Consolas][size=2][font=Consolas][size=2]}[/size][/font][/size][/font][/indent] [/quote] Narazie mam tyle bo nie wiem jak zamiast zmieniać dodawać liczbę 1 do PUNKTY
leggo komentarz 15 czerwca 2012 komentarz 15 czerwca 2012 (edytowane) Można też po użyciu usuwać wylosowane pytanie z tablicy i losować za każdym razem liczbę z mniejszego przedziału. (Do takiego rozwiązania przydały by się tablice dynamiczne). Innym sposobem może być też przetasowanie (za pomocą losowania) pytań przed ich wyświetleniem. edit. 1. Po co [b]punkty[/b] są stałą? Zrób z nich zmienną. 2. W if-ie porównujesz zmienną [b]V[/b] ze zmienną [b]A[/b] ale nie zapisałeś wcześniej nic w zmiennej [b]A[/b]. 3. Powtórzę jeszcze raz: pytania musisz mieć gdzieś zgrupowane. Wsadź je do tablicy lub do listy. Najlepiej stwórz sobie strukturę w której będziesz miał treść pytania, odpowiedzi i informację która odpowiedź jest poprawna.
pytanko komentarz 15 czerwca 2012 komentarz 15 czerwca 2012 Dziwnie sie troche do tego zabierasz. Moge ci pokazac moj stary program jak kiedys bawilem sie w C++. Przerob sobie tylko pytania odpowiedzi i nie smiej sie z jakosci samych pytan [log] #include <cstdlib> #include <iostream> #include <string.h> using namespace std; void all (int &suma,char znak, string pyt) { char l; cout<<pyt; cout<<"Wybierz odpowiedz: "; cin>>l; if (l==znak) { suma=suma+1; cout<<"Dobra odpowiedz!\n"; } else { cout<<"Zla odpowiedz!\n"; } } int main() { int p=0; string imie, a, b,c,d,e,f,g,h,i,j,k,l,m,n,o,u,q,r,s,t; int x,z,y; a="W celi o jakim numerze zamkniety byl Scofield?\n a) 20\n b) 38\n c) 40\n d) 44\n"; b="Jak mial na imie kuzyn t-bag'a?\n a) James\n b) Johny\n c) Jimmy\n d) Joe\n"; c="Ile lat odsiaduje D.B. Cooper?\n a) 30\n b) 40\n c) 50\n d) 60\n"; d="Ktory szeryf pilnowal Fibonacciego do czasu przesluchania?\n a) Solomon\n b) Putnam\n c) Pronzo\n d) Marx\n"; e="Ile miesiecy pozostalo Sucre do wyjscia warunkowego?\n a) 16\n b) 18\n c) 21\n d) 22\n"; f="Jak nazywalo sie miasto w ktorym ukryl skarb Westmorlend?\n a) Toledo\n b) Utah\n c) Illnois\n d) Toole\n"; g="Co Sara dostala od ojca na swoje 29 urodziny?\n a) Bluzke\n b) Maskotke\n c) Kwiaty\n d) Naszyjnik\n"; h="Jaki stopien ma Bellick?\n a) Sierzant\n b) Major\n c) Dowodca kompani\n d) Kapitan\n"; i="Co michael wrzucil aby zrobic zwarcie elektrycznego fotela?\n a) Metalowy pret\n b) Szczura\n c) Noz kuchenny\n d) Szklanke z woda\n"; j="Jak ma na imie corka Franklina?\n a) Meg\n b) Dede\n c) Dorothy\n d) Sally\n"; k="Ile dolarow kosztuje wejscie do gry w karty za kuchnia?\n a) 5\n b) 50\n c) 500\n d) 25\n"; l="Jak wiezniowie nazywali oddzial psyhiatryczny?\n a) Izolatka\n b) Karniak\n c) Akwarium\n d) Psiarnia\n"; m="Jakie jest prawdziwe nazwisko agenta Paula Kellermana?\n a) Kravecki\n b) Kravitz\n c) Kravell\n d) Owen\n"; n="Jaka ulica wiezniowie chca uciec po ucieczce?\n a) Fitz\n b) Percy\n c) English\n d) Green\n"; o="Jak sie nazywa aktor grajacy Abruzziego?\n a) Robert Knepper\n b) Adam Malysz\n c) Mel Gibson\n d) Peter Stormare\n"; u="Z jakiej okazji naczelnik chcial podarowac swojej zonie miniature palacu?\n a) 50 urodzin\n b) Powrotu do zdrowia\n c) Przejscia na emeryture\n d) 40 rocznicy slubu\n"; q="Za co LJ zostal zlapany przez policje?\n a) Gwalt 10 latki\n b) Bijatyke w klubie\n c) Kradziez zegarka\n d) Przemyt narkotykow\n"; r="Kto zabil kota D.B.Cooper'a?\n a) T-Bag\n b) C-Note\n c) Bellick\n d) Geary\n"; s="Podczas rozmowy z zona Steadmana Nick i Veronica podali sie za?\n a)Czlonkow organizacji praw ofiar\n b) Wspolnikow meza\n c) Bieglych sadowych\n d) Znajomych jej adkowokata\n"; cout<<"PRISON BREAK QUIZ version 1.0 (2006) by Krzychu\nAll rights reserved\n\n"; cout<<"Podaj swoje imie: \n"; cin>>imie; z=0; for (x=0;x<19;x++) { cout<<"\n"; switch(x) { case 0: all (p,'c',a); break; case 1: all (p,'a',b); break; case 2: all (p,'d',c); break; case 3: all (p,'c',d); break; case 4: all (p,'a',e); break; case 5: all (p,'d',f); break; case 6: all (p,'c',g); break; case 7: all (p,'d',h); break; case 8: all (p,'b',i); break; case 9: all (p,'b',j); break; case 10: all (p,'a',k); break; case 11: all (p,'c',l); break; case 12: all (p,'a',m); break; case 13: all (p,'a',n); break; case 14: all (p,'d',o); break; case 15: all (p,'d',u); break; case 16: all (p,'d',q); break; case 17: all (p,'c',r); break; case 18: all (p,'a',s); break; } } cout<<imie<<"!!!, twoj wynik: "<<p<<" na 19\n"; system("PAUSE"); return EXIT_SUCCESS; } [/log]
Kacperjas komentarz 15 czerwca 2012 Autor komentarz 15 czerwca 2012 (edytowane) Hmm... Tylko czy znacie jakąś książke z wyjaśnieniem podstaw (Przynajmniej tego /\UP/\) C++
leggo komentarz 15 czerwca 2012 komentarz 15 czerwca 2012 Tematów dotyczących wyboru książki było na tym forum już kilaka przejrzyj sobie. Do takich podstaw wystarczą Ci zdecydowanie kursy internetowe, których jest na pęczki - wystarczy poszukać.
pytanko komentarz 15 czerwca 2012 komentarz 15 czerwca 2012 Ja polecam Symfonie C++ Grebosza. Bardzo latwym jezykiem napisane sa. Sklada sie z 3 tomow ale zeby napisac taki program to wystarczy ogarnac w miare polowe pierwszego tomu. Oczywiscie kursy w necie tez mozesz poczytac.
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.