Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [C++] Zmienna zależna od innej
toaspzoo
post 17.07.2011, 08:13:59
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 // ?


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
Crozin
post 17.07.2011, 08:53:16
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 17.07.2011, 10:40:38
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/


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
rzymek01
post 17.07.2011, 10:46:19
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 smile.gif


--------------------
:]
Go to the top of the page
+Quote Post
toaspzoo
post 17.07.2011, 11:59:37
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 17.07.2011, 12:11:51
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


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
toaspzoo
post 17.07.2011, 14:52:53
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


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
Fifi209
post 18.07.2011, 02:30:21
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. }



--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
toaspzoo
post 18.07.2011, 12:52:38
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


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
Fifi209
post 18.07.2011, 13:45:04
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?


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
toaspzoo
post 18.07.2011, 19:17:23
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 wink.gif


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
Fifi209
post 18.07.2011, 19:18:02
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? tongue.gif Wybacz ale nie kumam zbytnio.

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

Ten post edytował Fifi209 18.07.2011, 19:25:04


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
rzymek01
post 19.07.2011, 01:16:35
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 19.07.2011, 11:14:42
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 wink.gif


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
nasty
post 22.07.2011, 14:07:32
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 22.07.2011, 14:16:10
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 ? ""


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
rzymek01
post 22.07.2011, 18:14:07
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 smile.gif


--------------------
:]
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 09:24