"Psychozabawa" skrócenie kodu

"Psychozabawa" skrócenie kodu
R0
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:2
0

Jestem absolutnym świeżakiem, jakimś cudem udało mi się napisać kod pod psychozabawę na to czy jesteś luzakiem. Nie umiem zrobić jakiejś funkcji na samym początku kodu by później móc ją tylko wywoływać, chodzi o te instrukcje if pod każdym pytaniem. Jak możecie to podajcie jakiś sposób na skrócenie tego kodu.

Kopiuj
 #include <iostream>

int main ()
{
	using std::cout;
	using std::cin;
	using std::endl;
	
	int x=0;
    int a;

	cout << "To jest test na luzaka wybierz wlasciwa liczbe i zatwierdz wciskajac enter" << endl << endl;
	
	cout << "Czy pieniadze przeciekaja Ci przez palce ?" << endl;
	cout << "1 tak" << endl;
	cout << "2 czasami" << endl;
	cout << "3 nie" << endl;
	cin >> a;
	if (a==1)
	   {x+=1;}
	if (a==2)
	   {x+=3;}
	if (a==3)
	   {x+=5;}
	
	cout << "Czy piszesz pamietnik lub internetowy blog ?" << endl << endl;
	cout << "1 nie" << endl;
	cout << "2 tak, ale nieregularnie" << endl;
	cout << "3 tak codziennie" << endl;
	cin >> a;
	if (a==1)
	   {x+=1;}
	if (a==2)
	   {x+=3;}
	if (a==3)
	   {x+=5;}
	
	cout << "Czy przejmujesz sie drobiazgami ?" << endl << endl;
	cout << "1 zdecydowanie nie" << endl;
	cout << "2 tylko do pewnego stopnia" << endl;
	cout << "3 zdecydowanie tak" << endl;
	cin >> a;
	if (a==1)
	   {x+=1;}
	if (a==2)
	   {x+=3;}
	if (a==3)
	   {x+=5;}	
	
	cout << "Czy sa ludzie z ktorymi na pewno sie nie zaprzyjaznisz ?" << endl << endl;
	cout << "1 z kazdym potrafie sie zaprzyjaznic" << endl;
	cout << "2 trudno powiedziec" << endl;
	cout << "3 sa tacy ludzie" << endl;
	cin >> a;
	if (a==1)
	   {x+=1;}
	if (a==2)
	   {x+=3;}
	if (a==3)
	   {x+=5;}	
	   
	cout << "Czy wokol Ciebie musi panowac lad i porzadek ?" << endl << endl;
	cout << "1 jestem balaganiarzem" << endl;
	cout << "2 wole porzadek, ale balagan mnie tak bardzo nie irytuje" << endl;
	cout << "3 zdecydowanie wole porzadek" << endl;
	cin >> a;
	if (a==1)
	   {x+=1;}
	if (a==2)
	   {x+=3;}
	if (a==3)
	   {x+=5;}
	
	cout << "Jesli nie chce Ci sie pracowac to... " << endl << endl;
	cout << "1 nie pracuje" << endl;
	cout << "2 udaje ze pracuje" << endl;
	cout << "3 zmuszam sie do pracy" << endl;
	cin >> a;
	if (a==1)
	   {x+=1;}
	if (a==2)
	   {x+=3;}
	if (a==3)
	   {x+=5;}
	
	cout << "Czy miewasz wrazenie ze nikt Cie nie rozumie ?" << endl << endl;
	cout << "1 nigdy" << endl;
	cout << "2 rzadko" << endl;
	cout << "3 czesto" << endl;
	cin >> a;
	if (a==1)
	   {x+=1;}
	if (a==2)
	   {x+=3;}
	if (a==3)
	   {x+=5;}
	
	cout << "Czy brakuje Ci czasu ?" << endl << endl;
	cout << "1 raczej nie" << endl;
	cout << "2 czasami" << endl;
	cout << "3 czesto" << endl;
	cin >> a;
	if (a==1)
	   {x+=1;}
	if (a==2)
	   {x+=3;}
	if (a==3)
	   {x+=5;}	
	
	cout << "Czy stanie w kolejce denerwuje Cie ?" << endl << endl;
	cout << "1 nie" << endl;
	cout << "2 troche" << endl;
	cout << "3 bardzo" << endl;
	cin >> a;
	if (a==1)
	   {x+=1;}
	if (a==2)
	   {x+=3;}
	if (a==3)
	   {x+=5;}	
	
	cout << "Czy jestes zadowolony z zycia ?" << endl << endl;
	cout << "1 tak" << endl;
	cout << "2 moze byc" << endl;
	cout << "3 nie" << endl;
	cin >> a;
	if (a==1)
	   {x+=1;}
	if (a==2)
	   {x+=3;}
	if (a==3)
	   {x+=5;}	
	
	if (x<=22)
	{
		cout << "Jestes luzak jakich malo. Wszystko traktujesz lekko i starasz się niczym nie przejmowac. Wyznajesz zasade, ze klopoty same się rozwiaza, a jesli są nierozwiazywalne, to tym bardziej nie ma co sobie nimi glowy zawracac. W kontaktach z ludzmi jestes niezwykle otwarty i przyjacielski. Nawet wrogow potrafisz obdarzyc usmiechem. Ogolnie jestes lubiany, ale sa i tacy, ktorzy postrzegaja cie jako niegroznego wariata, ktorego nie mozna traktowac powaznie. Tym bardziej, ze jako luzak z krwi i kosci nawet bardzo powazne sprawy potrafisz obrocic w zart. Mozesz o sobie powiedzieć: jestem luzakiem; jestem luzaczka.";    
	}
	
	if (x>=23 && x<=37)
	{
		cout << "Znalazłes zloty srodek, aby nikt nie postrzegal cie zbyt definitywnie. Nie mozna okreslic cie mianem luzak, ale i sztywniak nie byloby slowem wlasciwym. Kiedy jest ku temu czas i miejsce potrafisz byc luzakiem. Bawisz sie, potrafisz zartowac z siebie, a czasami nawet lekcewazysz zagrozenie. Gdy jednak sytuacja wymaga okazania sie twardym i stanowczym charakterem nie zawahasz się byc sztywniakiem. Czasami masz jednak problem, aby sztywniak stal się luzakiem. W druga strone jest latwiej, bo luzak w tobie jest o wiele slabszy. Sztywniak pozostaje w tobie dluzej. Mowiąc krotko: jest w tobie 40 procent luzaka / luzaczki i 40 procent sztywniaka / sztywniaczki.";
	}
	
	if (x>=38)
	{
		cout << "Straszny z ciebie sztywniak, choc czasami starasz się pokazywac jako luzak. Czyzbys nie potrafil się bawic, smiac i robic rzeczy z pozoru glupich, ale pozwalających czlowiekowi nabrac psychicznej swiezosci? Wyglada na to, ze tak własnie jest. Nawet w miejscach przeznaczonych do zabawy nie potrafisz się rozluznic i pozostajesz sztywniakiem nawet pod plaszczykiem luzaka. Gdy wokol ciebie ludzie sa na zupelnym luzie, ty posrod nich wygladasz jak przybysz z innej planety. Dobra rada - czasami wrzuc na luz, a zobaczysz, ze zycie nabiera kolorow. Nie badz taki sztywniak, nie badz taka sztywniaczka. Byc jak luzak lub jak luzaczka jest o wiele przyjemniej.";
	}
	
	return 0;
}
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

Znajdź kawałek kodu który się powtarza. Wydziel go do nowej funkcji. Voila.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
0
Kopiuj
    using std::cout;
        using std::cin;
        using std::endl; 

=>

Kopiuj
 using namespace std;

i kolejne 2 bezsensowne linijki "zrefaktoryzowane" :P

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

i kolejne 2 bezsensowne linijki "zrefaktoryzowane"

Nie byłbym taki pewien: po co od razu zaśmiecać całą przestrzeń nazw, skoro i tak korzystamy tylko z cout, cin oraz endl?


0

@Patryk27
Tak, tak bo w takim programie to ma taaaak wielkie znaczenie że hej

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

W takim razie w ogóle niech zostanie w obecnej formie: przecież w takim programie, to czy są tam jawne funkcje czy nie ma taaaaakie wielkie znaczenie, że hej...


0

On chciał skrócić kod a nie uczynić go wydajniejszym.

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 godziny
1

wywalić treść pytań do pliku i go ładować.

Quirinnos
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 7 lat
  • Postów:16
0

Haha, Dragon rozwaliłeś mnie :D

Autorze, opakuj powtarzający się kod w funkcję.

Kopiuj
if (a==1)
          {x+=1;}
        if (a==2)
           {x+=3;}
        if (a==3)
           {x+=5;}

np tak,

Kopiuj
 
void FUNKCJA (int a)
{
       if (a == 1)
           x+=1
       else if (a == 2)
           x+=3
....
}

a co jeśli podam cyfrę 4 albo 5? ;)

R0
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:2
0

Quirinnos właśnie o czymś takim myślałem ale jak napisałem w w temacie

Nie umiem zrobić jakiejś funkcji na samym początku kodu by później móc ją tylko wywoływać
po modyfikacji kompilator wywala serię błędów, gdzie robię błąd ?

Kopiuj
 #include <iostream>
 

void FUNKCJA (int a)
{
       if (a==1)
           x+=1;
       if (a==2)
           x+=3;
       if (a==3) 
	       x+=5;  
}

int main ()
{
        using std::cout;
        using std::cin;
        using std::endl;
 
        int x=0;
 
        cout << "To jest test na luzaka wybierz wlasciwa liczbe i zatwierdz wciskajac enter" << endl << endl;
 
        cout << "Czy pieniadze przeciekaja Ci przez palce ?" << endl;
        cout << "1 tak" << endl;
        cout << "2 czasami" << endl;
        cout << "3 nie" << endl;
        cin >> a;
        FUNKCJA ();
 
        cout << "Czy piszesz pamietnik lub internetowy blog ?" << endl << endl;
        cout << "1 nie" << endl;
        cout << "2 tak, ale nieregularnie" << endl;
        cout << "3 tak codziennie" << endl;
        cin >> a;
        FUNKCJA ()
 
        cout << "Czy przejmujesz sie drobiazgami ?" << endl << endl;
        cout << "1 zdecydowanie nie" << endl;
        cout << "2 tylko do pewnego stopnia" << endl;
        cout << "3 zdecydowanie tak" << endl;
        cin >> a;
        FUNKCJA ()       
 
        cout << "Czy sa ludzie z ktorymi na pewno sie nie zaprzyjaznisz ?" << endl << endl;
        cout << "1 z kazdym potrafie sie zaprzyjaznic" << endl;
        cout << "2 trudno powiedziec" << endl;
        cout << "3 sa tacy ludzie" << endl;
        cin >> a;
        FUNKCJA ()        
 
        cout << "Czy wokol Ciebie musi panowac lad i porzadek ?" << endl << endl;
        cout << "1 jestem balaganiarzem" << endl;
        cout << "2 wole porzadek, ale balagan mnie tak bardzo nie irytuje" << endl;
        cout << "3 zdecydowanie wole porzadek" << endl;
        cin >> a;
        FUNKCJA ()
 
        cout << "Jesli nie chce Ci sie pracowac to... " << endl << endl;
        cout << "1 nie pracuje" << endl;
        cout << "2 udaje ze pracuje" << endl;
        cout << "3 zmuszam sie do pracy" << endl;
        cin >> a;
        FUNKCJA ()
 
        cout << "Czy miewasz wrazenie ze nikt Cie nie rozumie ?" << endl << endl;
        cout << "1 nigdy" << endl;
        cout << "2 rzadko" << endl;
        cout << "3 czesto" << endl;
        cin >> a;
        FUNKCJA ()
 
        cout << "Czy brakuje Ci czasu ?" << endl << endl;
        cout << "1 raczej nie" << endl;
        cout << "2 czasami" << endl;
        cout << "3 czesto" << endl;
        cin >> a;
        FUNKCJA ()       
 
        cout << "Czy stanie w kolejce denerwuje Cie ?" << endl << endl;
        cout << "1 nie" << endl;
        cout << "2 troche" << endl;
        cout << "3 bardzo" << endl;
        cin >> a;
        FUNKCJA ()      
 
        cout << "Czy jestes zadowolony z zycia ?" << endl << endl;
        cout << "1 tak" << endl;
        cout << "2 moze byc" << endl;
        cout << "3 nie" << endl;
        cin >> a;
        FUNKCJA ()       
 
        if (x<=22)
        {
                cout << "Jestes luzak jakich malo. Wszystko traktujesz lekko i starasz się niczym nie przejmowac. Wyznajesz zasade, ze klopoty same się rozwiaza, a jesli są nierozwiazywalne, to tym bardziej nie ma co sobie nimi glowy zawracac. W kontaktach z ludzmi jestes niezwykle otwarty i przyjacielski. Nawet wrogow potrafisz obdarzyc usmiechem. Ogolnie jestes lubiany, ale sa i tacy, ktorzy postrzegaja cie jako niegroznego wariata, ktorego nie mozna traktowac powaznie. Tym bardziej, ze jako luzak z krwi i kosci nawet bardzo powazne sprawy potrafisz obrocic w zart. Mozesz o sobie powiedzieć: jestem luzakiem; jestem luzaczka.";    
        }
 
        if (x>=23 && x<=37)
        {
                cout << "Znalazłes zloty srodek, aby nikt nie postrzegal cie zbyt definitywnie. Nie mozna okreslic cie mianem luzak, ale i sztywniak nie byloby slowem wlasciwym. Kiedy jest ku temu czas i miejsce potrafisz byc luzakiem. Bawisz sie, potrafisz zartowac z siebie, a czasami nawet lekcewazysz zagrozenie. Gdy jednak sytuacja wymaga okazania sie twardym i stanowczym charakterem nie zawahasz się byc sztywniakiem. Czasami masz jednak problem, aby sztywniak stal się luzakiem. W druga strone jest latwiej, bo luzak w tobie jest o wiele slabszy. Sztywniak pozostaje w tobie dluzej. Mowiąc krotko: jest w tobie 40 procent luzaka / luzaczki i 40 procent sztywniaka / sztywniaczki.";
        }
 
        if (x>=38)
        {
                cout << "Straszny z ciebie sztywniak, choc czasami starasz się pokazywac jako luzak. Czyzbys nie potrafil się bawic, smiac i robic rzeczy z pozoru glupich, ale pozwalających czlowiekowi nabrac psychicznej swiezosci? Wyglada na to, ze tak własnie jest. Nawet w miejscach przeznaczonych do zabawy nie potrafisz się rozluznic i pozostajesz sztywniakiem nawet pod plaszczykiem luzaka. Gdy wokol ciebie ludzie sa na zupelnym luzie, ty posrod nich wygladasz jak przybysz z innej planety. Dobra rada - czasami wrzuc na luz, a zobaczysz, ze zycie nabiera kolorow. Nie badz taki sztywniak, nie badz taka sztywniaczka. Byc jak luzak lub jak luzaczka jest o wiele przyjemniej.";
        }
 
        return 0;
} 

13th_Dragon uświadomiłeś mnie ile wiem o programowaniu :)

edytowany 1x, ostatnio: Rafik05
babubabu
Facepalma takiego zrobiłem, że mnie teraz czoło boli :/
0

Coś w ten deseń zrób:

Kopiuj
#include <iostream>
#include <string>
int main()
{
	const std::string tab [][4] = {
							{"Pytanie 1 ?", "1 tak", "2 nie", "3 nie wiem"},
							{"Pytanie 2 ?", "1 nie", "2 nie", "3 nie wiem"}
							{"Pytanie 3 ?", "1 nie", "2 nie", "3 nie wiem"}
							//...
							};
	int a, x = 0;
	int n = 3; //ilosc pytan
	for(int i = 0; i < n; i++)
	{
		std::cout << tab[i][0] << std::endl << tab[i][1] << std::endl;
		std::cout << tab[i][2] << std::endl << tab[i][3] << std::endl;
		std::cin >> a;
		
		if (a==1) x+=1; else
        if (a==2) x+=3; else
        if (a==3) x+=5; 
	}
	
	if(x <= 22) 
		std::cout << "Wariant 1" << std::endl;
	else if(x >= 23 && x <= 37) 
		std::cout << "Wariant 2" << std::endl;
	else if (x >= 38)
		std::cout << "Wariant 3" << std::endl;
	return(0);
}
Quirinnos
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 7 lat
  • Postów:16
0

Rafik05
Jeśli chcesz robić to w sposób jaki robisz, to aby działało musisz:

  • zadeklarować zmienną x jako zmienną globalną.
  • zadeklarować w funkcji main zmienną a.
  • Wywołać FUNKCJĘ z parametrem a - FUNKCJA(a);
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)