Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [C++] Zmienna zależna od innej
toaspzoo
post
Post #1





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Witam, jak zrobić, aby wywoływać zmienną q1 gdy wartość zmiennej nr wynosi 1

Mam zmienne q1, q2, q3 i chciałbym wywołać zależnie od wprowadzonego numeru

czyli

kawałek...
Kod
q1 = "123";
q2 = "321";
cin >> nr;
cout << q + nr // ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


C++ nie jest tak dynamiczny jak PHP, nie ma w nim czegoś takiego jak zmienne zmiennych. Użyj zwykłego IF-a:
  1. if (nr == "1") { // czy jak tam się w C++ porównuje tekst.
  2. cout << q1;
  3. } else {
  4. cout << q2;
  5. }
Jeżeli tych zmiennych "q" masz więcej rozważ wykorzystanie tablicy.

Ten post edytował Crozin 17.07.2011, 08:56:18
Go to the top of the page
+Quote Post
Fifi209
post
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Co do porównywania stringów w C++

http://www.cplusplus.com/reference/string/string/compare/
Go to the top of the page
+Quote Post
rzymek01
post
Post #4





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

Ostrzeżenie: (0%)
-----


jeśli to ma być tylko i wyłącznie numer to użyj tablicy:
Kod
q[0], q[1] itd.


jeśli chcesz osiągnąć przyjazność/trohcę dynamiczności to musisz już korzystać z m.in. map i szablonów (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
toaspzoo
post
Post #5





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Kod całego badziewia ;)

  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <windows.h>
  4.  
  5.  
  6. using namespace std;
  7.  
  8. int nr = 1, good = 0, bad = 0, end = 0;

string

Kod całego badziewia ;)

  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <windows.h>
  4.  
  5.  
  6. using namespace std;
  7.  
  8. int nr = 1, good = 0, bad = 0, end = 0;
  9.  
  10. string pow = "Witamy w quizie \n \n \n";
  11.  
  12. int imie()
  13. {
  14. if(pow != "")
  15. {
  16. string nick;
  17. cout << "Wpisz swoj nick: ";
  18. cin >> nick;
  19. cout << "Witaj, " << nick << " oto pierwsze pytanie \n \n \n";
  20. }
  21. }
  22.  
  23. int main()
  24. {
  25.  
  26. cout << pow;
  27. imie();
  28.  
  29. pow = "";
  30.  
  31.  
  32.  
  33.  
  34. string q[15];
  35. string a[15];
  36.  
  37.  
  38.  
  39. q[1] = "Co zrobi zuzia, gdy nie bedzie jej taty ? \n 1. Rozplacze sie \n 2. Zasnie \n";
  40. a[1] = "1";
  41.  
  42. q[2]= "Co Ala robi najczesciej na swoim laptopie ? \n 1. Siedzi na nk.pl \n 2. Gra w Pet Party \n 3. Wszystkie odpowiedzi sa prawidlowe \n";
  43. a[2] = "3";
  44.  
  45. q[3] = "Jaka jest ulubiona gra Kacpra ? \n 1. Counter-Strike \n 2. Half-Life \n 3. Minecraft \n 4. Metin2 \n";
  46. a[3] = "4";
  47.  
  48. q[4]= "Co teraz robisz? \n 1. Siedze i czytam quiza \n 2. Nic nie robie \n 3. Wysilam mozgownice \n 4. Nudze sie \n 5. Robie wszystko naraz \n";
  49. a[4] = "3";
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. string answer;
  59.  
  60.  
  61. cout << q[nr];
  62. cout << "ODPOWIEDZ: ";
  63. cin >> answer;
  64.  
  65. string ca = a[nr];
  66. if(answer == ca)
  67. {
  68.  
  69. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_INTENSITY);
  70.  
  71. cout << "\n Poprawna odpowiedz! \n \n";
Powód edycji: [Spawnm]: bbcode
Go to the top of the page
+Quote Post
Fifi209
post
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Kod Ci się chyba rozwalił.

Dawno nie pisałem w C++ ale pytania i odpowiedzi możesz zrobić w tablicy wielowymiarowej.

string questions[15][2] o ile dobrze pamiętam
Teraz w questions[0][0] przypiszesz pytanie a w questions[0][1] poprawną odpowiedź

To:
string nick;
cout << "Wpisz swoj nick: ";
cin >> nick;

Nie pobierze np. takiego nicku: Jacek Kowalski
Go to the top of the page
+Quote Post
toaspzoo
post
Post #7





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Jak zrobić, aby przyjął z odstępami ?

Teraz mam problem, ponieważ do skryptu php przez curl'a nie przekazuje liczby tylko krzaka ;(

  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <windows.h>
  4. #include <curl/curl.h>
  5.  
  6.  
  7. using namespace std;
  8.  
  9. int nr = 1, good = 0, bad = 0, end = 0;
  10.  
  11. string pow = "Witamy w quizie \n \n \n";
  12. string nick;
  13.  
  14.  
  15. int imie()
  16. {
  17. if(pow != "")
  18. {
  19.  
  20. cout << "Wpisz swoj nick: ";
  21. cin >> nick;
  22. cout << "Witaj, " << nick << " oto pierwsze pytanie \n \n \n";
  23.  
  24. }
  25. }
  26.  
  27. int main()
  28. {
  29.  
  30. cout << pow;
  31.  
  32. imie();
  33.  
  34. pow = "";
  35.  
  36.  
  37.  
  38.  
  39. string q[15];
  40. string a[15];
  41.  
  42.  
  43.  
  44. q[1] = "Co zrobi zuzia, gdy nie bedzie jej taty ? \n 1. Rozplacze sie \n 2. Zasnie \n";
  45. a[1] = "1";
  46.  
  47. q[2]= "Co Ala robi najczesciej na swoim laptopie ? \n 1. Siedzi na nk.pl \n 2. Gra w Pet Party \n 3. Wszystkie odpowiedzi sa prawidlowe \n";
  48. a[2] = "3";
  49.  
  50. q[3] = "Jaka jest ulubiona gra Kacpra ? \n 1. Counter-Strike \n 2. Half-Life \n 3. Minecraft \n 4. Metin2 \n";
  51. a[3] = "4";
  52.  
  53. q[4]= "Co teraz robisz? \n 1. Siedze i czytam quiza \n 2. Nic nie robie \n 3. Wysilam mozgownice \n 4. Nudze sie \n 5. Robie wszystko naraz \n";
  54. a[4] = "3";
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63. string answer;
  64.  
  65.  
  66. cout << q[nr];
  67. cout << "ODPOWIEDZ: ";
  68. cin >> answer;
  69.  
  70. string ca = a[nr];
  71. if(answer == ca)
  72. {
  73.  
  74. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_INTENSITY);
  75.  
  76. cout << "\n Poprawna odpowiedz! \n \n";
  77. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
  78. FOREGROUND_INTENSITY | FOREGROUND_RED |
  79. FOREGROUND_GREEN | FOREGROUND_BLUE);
  80.  
  81. good = good + 1;
  82. }
  83. else
  84. {
  85. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_INTENSITY);
  86. cout << "\n Bledna odpowiedz! \n \n";
  87. bad = bad + 1;
  88.  
  89. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
  90. FOREGROUND_INTENSITY | FOREGROUND_RED |
  91. FOREGROUND_GREEN | FOREGROUND_BLUE);
  92.  
  93. }
  94. nr = nr+ 1;
  95.  
  96. cout <<endl;
  97.  
  98.  
  99.  
  100. if((q[nr]) == "")
  101. {
  102. system("cls");
  103.  
  104. //not
  105.  
  106. if(good > bad)
  107. {
  108. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_INTENSITY);
  109. cout << "Gratulacje, zdales test ! \n Zapisze twoj wynik na stronie internetowej";
  110. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
  111. FOREGROUND_INTENSITY | FOREGROUND_RED |
  112. FOREGROUND_GREEN | FOREGROUND_BLUE);
  113.  
  114.  
  115. string n;
  116.  
  117. cin >> n;
  118.  
  119.  
  120. string dane;
  121.  
  122. dane = "nick=";
  123. dane +=n;
  124. dane +="&good=";
  125. dane += good;
  126. dane +="&bad=";
  127. dane += bad;
  128.  
  129. CURL *curl;
  130. CURLcode res;
  131.  
  132. curl = curl_easy_init();
  133.  
  134.  
  135.  
  136.  
  137. if(curl) {
  138. curl_easy_setopt(curl, CURLOPT_URL, "http://znajomek.unixstorm.org/quiz/index.php");
  139. curl_easy_setopt(curl, CURLOPT_POST, 1);
  140. curl_easy_setopt(curl, CURLOPT_POSTFIELDS, dane.c_str());
  141. res = curl_easy_perform(curl);
  142. curl_easy_cleanup(curl);
  143. } else { cout << "Blad zapisywania wyniku!";}
  144.  
  145. }
  146. else
  147. {
  148.  
  149. cout << "Przykro mi, oblales test;( \n Twoj ranking nie zostal zapisany";
  150. }
  151.  
  152. cout << "\n\n Poprawnych: " << good << "\n Blednych: " << bad << "\n\n\n";
  153. system("PAUSE");
  154. return 0;
  155.  
  156. end = 1;
  157. }
  158.  
  159.  
  160. if(end == 0)
  161. {
  162. main();
  163. }
  164.  
  165. }


i Kod dodawania

  1. <?php
  2. include('../db.php');
  3.  
  4.  
  5. if($_POST['nick'] <> '')
  6. {
  7. $nick = $_POST['nick'];
  8. $good = $_POST['good'];
  9. $bad = $_POST['bad'];
  10. $ip = $_SERVER['REMOTE_ADDR'];
  11.  
  12. $wynik = zapytaj("INSERT INTO `quiz_wygrane` SET `nick` = '$nick', `good` = '$good', `bad` = '$bad', `ip` = '$ip';")or die(mysql_error());
  13. echo "\n Zapisano wynik jako $good poprawnych i $bad blednych ($_POST[good])";
  14. }


Ten post edytował toaspzoo 17.07.2011, 14:53:53
Go to the top of the page
+Quote Post
Fifi209
post
Post #8





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Po 1.
  1. if($_POST['nick'] <> '')

Co to jest?
Raczej
!= jak dla mnie

A tutaj działający poprawiony kod:
  1.  
  2. #define CURL_STATICLIB
  3. #include <cstdlib>
  4. #include <iostream>
  5. #include <windows.h>
  6. #include <curl/curl.h>
  7. #include <string.h>
  8.  
  9. using namespace std;
  10.  
  11. int nr = 0, good = 0, bad = 0, end = 0;
  12. string q[15][2];
  13.  
  14. string pow = "Witamy w quizie \n \n \n";
  15. string nick;
  16. string answer;
  17.  
  18. string convertInt(int number)
  19. {
  20. if (number == 0)
  21. return "0";
  22. string temp="";
  23. string returnvalue="";
  24. while (number>0)
  25. {
  26. temp+=number%10+48;
  27. number/=10;
  28. }
  29. for (int i=0;i<temp.length();i++)
  30. returnvalue+=temp[temp.length()-i-1];
  31. return returnvalue;
  32. }
  33.  
  34. int imie()
  35. {
  36. if(pow != "")
  37. {
  38.  
  39. cout << "Wpisz swoj nick: ";
  40. cin >> nick;
  41. cout << "Witaj, " << nick << " oto pierwsze pytanie \n \n \n";
  42.  
  43. }
  44. }
  45.  
  46. int main()
  47. {
  48.  
  49. cout << pow;
  50.  
  51. imie();
  52.  
  53. pow = "";
  54.  
  55. q[0][0] = "Co zrobi zuzia, gdy nie bedzie jej taty ? \n 1. Rozplacze sie \n 2. Zasnie \n";
  56. q[0][1] = "1";
  57.  
  58. q[1][0]= "Co Ala robi najczesciej na swoim laptopie ? \n 1. Siedzi na nk.pl \n 2. Gra w Pet Party \n 3. Wszystkie odpowiedzi sa prawidlowe \n";
  59. q[1][1] = "3";
  60.  
  61. q[2][0] = "Jaka jest ulubiona gra Kacpra ? \n 1. Counter-Strike \n 2. Half-Life \n 3. Minecraft \n 4. Metin2 \n";
  62. q[2][1] = "4";
  63.  
  64. q[3][0]= "Co teraz robisz? \n 1. Siedze i czytam quiza \n 2. Nic nie robie \n 3. Wysilam mozgownice \n 4. Nudze sie \n 5. Robie wszystko naraz \n";
  65. q[3][1] = "3";
  66.  
  67. cout << q[nr][0];
  68. cout << "ODPOWIEDZ: ";
  69. cin >> answer;
  70.  
  71. string ca = q[nr][1];
  72. if(answer == ca)
  73. {
  74.  
  75. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_INTENSITY);
  76.  
  77. cout << "\n Poprawna odpowiedz! \n \n";
  78. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
  79. FOREGROUND_INTENSITY | FOREGROUND_RED |
  80. FOREGROUND_GREEN | FOREGROUND_BLUE);
  81.  
  82. good++;
  83. }
  84. else
  85. {
  86. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_INTENSITY);
  87. cout << "\n Bledna odpowiedz! \n \n";
  88. bad++;
  89.  
  90. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
  91. FOREGROUND_INTENSITY | FOREGROUND_RED |
  92. FOREGROUND_GREEN | FOREGROUND_BLUE);
  93.  
  94. }
  95. nr = nr+ 1;
  96.  
  97. cout <<endl;
  98.  
  99.  
  100.  
  101. if((q[nr][0]) == "")
  102. {
  103. system("cls");
  104.  
  105. //not
  106.  
  107. if(good > bad)
  108. {
  109. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_INTENSITY);
  110. cout << "Gratulacje, zdales test ! \n Zapisze twoj wynik na stronie internetowej";
  111. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
  112.  
  113. string dane;
  114.  
  115. dane = "nick=";
  116. dane +=nick;
  117. dane +="&good=";
  118. dane += convertInt(good);
  119. dane +="&bad=";
  120. dane += convertInt(bad);
  121.  
  122. CURL *curl;
  123. CURLcode res;
  124.  
  125. curl = curl_easy_init();
  126.  
  127. if(curl) {
  128. curl_easy_setopt(curl, CURLOPT_URL, "http://znajomek.unixstorm.org/quiz/index.php");
  129. curl_easy_setopt(curl, CURLOPT_POST, 1);
  130. curl_easy_setopt(curl, CURLOPT_POSTFIELDS, dane.c_str());
  131. res = curl_easy_perform(curl);
  132. curl_easy_cleanup(curl);
  133. } else { cout << "Blad zapisywania wyniku!";}
  134.  
  135. }
  136. else
  137. {
  138.  
  139. cout << "Przykro mi, oblales test;( \n Twoj ranking nie zostal zapisany";
  140. }
  141.  
  142. cout << "\n\n Poprawnych: " << good << "\n Blednych: " << bad << "\n\n\n";
  143. system("PAUSE");
  144. return 0;
  145.  
  146. end = 1;
  147. }
  148.  
  149.  
  150. if(end == 0)
  151. {
  152. main();
  153. }
  154.  
  155. }

Go to the top of the page
+Quote Post
toaspzoo
post
Post #9





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Dzięki, działa

Do zamknięcia
Go to the top of the page
+Quote Post
Fifi209
post
Post #10





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Nic do zamknięcia, mimo że znam troszkę c++ pierwszy raz widzę coś takiego bez pętli, jak one się wyświetlają bez pętli?
Go to the top of the page
+Quote Post
toaspzoo
post
Post #11





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Co się wyświetla bez pętli ?
Na razie są zapisywane tylko w bazie

Twoje wyniki (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Fifi209
post
Post #12





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Patrz, masz kod:
  1. cout << q[nr][0];
  2. cout << "ODPOWIEDZ: ";
  3. cin >> answer;


Który występuje tylko RAZ i nie jest w pętli, więc jakim prawem wyświetlają się wszystkie pytania? (IMG:style_emoticons/default/tongue.gif) Wybacz ale nie kumam zbytnio.

@edit
Dobra zrozumiałem, wieczorem poprawie Ci kod bo odpalanie ciągle main() nie wygląda ładnie (IMG:style_emoticons/default/smile.gif)

Ten post edytował Fifi209 18.07.2011, 19:25:04
Go to the top of the page
+Quote Post
rzymek01
post
Post #13





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

Ostrzeżenie: (0%)
-----


hehe
1. kod jest nieczytelny
2. rekurencja nie jest najlepszym sposobem pętli
3. rekurencja odkłada na stosie zmienne, także już przy niewielkiej liczbie pytań program by Ci się wysypał
Go to the top of the page
+Quote Post
toaspzoo
post
Post #14





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


  1. cout << q[nr][0];

Bo zmienna nr się inkrementuje z każdym pytaniem (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
nasty
post
Post #15





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Panowie.... Pisząc kod natywny w C/C++ nie starajcie się przenosić myślenia z PHP do niego.
Go to the top of the page
+Quote Post
toaspzoo
post
Post #16





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


A kto twoim zdaniem przenosi ? ""
Go to the top of the page
+Quote Post
rzymek01
post
Post #17





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

Ostrzeżenie: (0%)
-----


Cytat(nasty @ 22.07.2011, 15:07:32 ) *
Pisząc kod natywny w C/C++ nie starajcie się przenosić myślenia z PHP do niego.

Ale myślenie z C/C++ już można przenosić, jednak często w PHP jest to nieadekwatne (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 08:59