• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

program w funkcji... czy jakoś tak ;)

Object Storage Arubacloud
0 głosów
183 wizyt
pytanie zadane 3 listopada 2015 w C i C++ przez barteku12 Obywatel (1,340 p.)
edycja 3 listopada 2015 przez barteku12
#include<iostream>
#include<windows.h>
#include<time.h>
#include<cstdlib>
#include<stdio.h>
using namespace std;
int los, stawka,pula=200;
char n;

void program_1() {

    HANDLE kolor;
kolor = GetStdHandle( STD_OUTPUT_HANDLE );
SetConsoleTextAttribute( kolor, 14 );
    cout<<"WITAMY W KASYNIE !"<<endl;
 Sleep(1500);
 system("cls");
     HANDLE kolor2;
kolor = GetStdHandle( STD_OUTPUT_HANDLE );
SetConsoleTextAttribute( kolor, 5 );

for(;;) {
    cout<<"RULETKA "<<endl;
    cout<<"Masz : "<<pula<<" zl"<<endl;
    cout<<"Podaj stawke : ";
cin>>stawka;
cout<<endl;
    cout<<endl;
    cout<<"wybierz parzyste - 1 lub nieparzyste - 2 "<<endl;
    cout<<"Wyjscie - 3"<<endl;
    cin>>n;
    srand(time(NULL));
    los = rand () % 60 +1;

    switch (n)
    {
        case '1':   cout<<"Wylosowales : " <<los<<endl;
             if  (los%2==0)
          {
            cout<<"Wygrales!"<<endl;
             pula+=stawka*2; }
          if (los%2==1) { cout<<"Przegrales"<<endl;
         pula-=stawka; }
        break;
        case '2':   cout<<"Wylosowales : "<<los<<endl;
            if (los%2==0)
{ cout<<"Przegrales"<<endl;
          pula-=stawka; }
          if (los%2==1) {
            cout<<"Wygrales"<<endl;
            pula+=stawka*2; }
              break;
            case '3': exit(0);
            break;
            default: cout<<"Nie ma takiej opcji!"<<endl;

}
getchar(); getchar();
system("cls");

}

}
 int main(){

program_1();

return 0;
    }

 

 

EDIT: wrzuciłem poprawny kod, bo wcześniej dałem coś całkiem innnego a chodziło mi o ten. dzięki wszystkim za odpowiedzi ;)

2 odpowiedzi

+1 głos
odpowiedź 3 listopada 2015 przez ZakosiliMiNeta Nałogowiec (30,870 p.)
wybrane 4 listopada 2015 przez barteku12
 
Najlepsza

No zobacz sam zdefiniowałęś funkjcę mile co ? Czyli funkcje mozemy potraktować ( w tym przypadku ) jako pudełko do którego coś wżucamy i wyciągamy.  Również  ( można powiedzieć, że są 2 rodzaje funkcji ) funkcję możemy potraktować jako lokatę w banku czyli wżucamy do banku pieniądze i nie oczekujemy, że odrazu coś dostaniemy. Czyli obrazując na twoim przykładzie int main () to też jest funkcja, tylko teraz pytanie jaka ? Taka od której czegoś oczekujemy czy nie ?No raczej zbytnio nie oczekujemy by nam coś dała.

#include<iostream>
#include<cstdlib>
#include<conio.h>
#include<windows.h>
#include<stdio.h>
using namespace std;

float metry;
char n;

float kilometry(float x)
{
    return x/1000;
 
}
float centy (float x)
{
    return x*100;
}
float mili (float x)
{
    return x*1000;
}
float mile (float x)
{
    return x*1852;
}
 
 
 
void funkcja (){ // od tej funkcji  nie oczekujemy, że nam coś wypluje
 
 
 
for(;;)
{
    cout<<"Podaj ile metrow: "<<endl;
cin>>metry;
cout<<endl;
cout<<"Na co chcesz zamienic ? "<<endl;
cout<<"1.Na kilometry."<<endl;
cout<<"2.Na centymetry"<<endl;
cout<<"3.Na milimetry"<<endl;
cout<<"4.Na mile"<<endl;
cout<<"5.wyjscie."<<endl;
 
cout<<"wybierz : "<<endl;
cin>>n;
 
switch(n)
    {
    case '1' :
         cout<<metry<<" metrow to : "<< kilometry(metry)<< " kilometrow"<<endl;
    break;
case '2':  cout<<metry<<" metrow to : "<< centy(metry)<< " centymetrow"<<endl;
break;
case '3':  cout<<metry<<" metrow to : "<< mili(metry)<< " milimetrow"<<endl;
break;
 case '4': cout<<metry<<" metrow to : "<< mile(metry)<< " mil"<<endl;
break;
case '5': return; // tutaj chcemy przerwać funkcję więc dajemy return; zamiast exit(0);
    }                    // można powiedzieć, że już nie chcemy mieć pieniędzy na lokacie
 
getchar(); getchar();
system("cls");
}
cin.get();
}




int main (){ // nasza głowna funkcja  czyli mistrz wszystkich mistrzów :)
 funkcja () 

}

Jak coś nie jasne to śmiało pytaj :)

+1 głos
odpowiedź 3 listopada 2015 przez furas Maniak (53,800 p.)

Już masz to w funkcji - bo main() to też funkcja. 

Ale jeśli zamienisz jej nazwę na `program_1()` i dorobisz 

int main(){
    program_1();
}

to tym bardziej będziesz miał to w funkcji.

A jak dodasz jeszcze inne funkcje to będziesz mógło robić

cout << "wybierz : " << endl;
cin >> n;
 
switch(n)
{
    case '1' :
         program_1();
         break;
    case '2' :
         program_2();
         break;
}

 

komentarz 3 listopada 2015 przez barteku12 Obywatel (1,340 p.)
nie bardzo rozumiem... dodawalem to co napisałeś w różne miejsca i nie działa... gdzie mam to dodać? i jak to działa?
komentarz 3 listopada 2015 przez furas Maniak (53,800 p.)

Zamieniasz nzwę `main()` na `program_1()` i dopisujesz nowe `main()`
 

int main(){
    program_1();
}

i już masz cały ten program jako wywołanie funkcji `program_1()`

 

komentarz 3 listopada 2015 przez barteku12 Obywatel (1,340 p.)
#include<iostream>
#include<windows.h>
#include<time.h>
#include<cstdlib>
#include<stdio.h>
using namespace std;
int los, stawka,pula=200;
char n;

program_1 () {

    HANDLE kolor;
kolor = GetStdHandle( STD_OUTPUT_HANDLE );
SetConsoleTextAttribute( kolor, 14 );
    cout<<"WITAMY W KASYNIE !"<<endl;
 Sleep(1500);
 system("cls");
     HANDLE kolor2;
kolor = GetStdHandle( STD_OUTPUT_HANDLE );
SetConsoleTextAttribute( kolor, 5 );

for(;;) {
    cout<<"RULETKA "<<endl;
    cout<<"Masz : "<<pula<<" zl"<<endl;
    cout<<"Podaj stawke : ";
cin>>stawka;

    cout<<endl;
    cout<<endl;
    cout<<"wybierz parzyste - 1 lub nieparzyste - 2 "<<endl;
    cout<<"Wyjscie - 3"<<endl;
    cin>>n;
    srand(time(NULL));
    los = rand () % 60 +1;


    switch (n)
    {
        case '1':   cout<<"Wylosowales : " <<los<<endl;
             if  (los%2==0)
          {
            cout<<"Wygrales!"<<endl;
             pula+=stawka*2; }
          if (los%2==1) { cout<<"Przegrales"<<endl;
         pula-=stawka*2; }
        break;
        case '2':   cout<<"Wylosowales : "<<los<<endl;
            if (los%2==0)
{ cout<<"Przegrales"<<endl;
          pula-=stawka*2; }
          if (los%2==1) {
            cout<<"Wygrales"<<endl;
            pula+=stawka*2; }
              break;
            case '3': exit(0);
            break;
            default: cout<<"Nie ma takiej opcji!"<<endl;

}
getchar(); getchar();
system("cls");
}
int main(){

program_1(); }

return 0;

 

tak raczej nie, bo nie działa :D ja nadal nie bardzo rozumiem... próbuję to wstawić i nie idzie mi...

komentarz 3 listopada 2015 przez furas Maniak (53,800 p.)

tak wstępem: masz niesformatowany kod i nie chce się na niego patrzyć.

---

Czy to Ci się kompiluje ?

`return 0` powinno być wewnątrz `main()`.

funkcja `program()` jak każda inna funkcja musi mieć zdefiniwany typ zwracanego wyniku.

void program_1() { ... kod funkcji ...}

komentarz 3 listopada 2015 przez furas Maniak (53,800 p.)
po porządnym sformatowaniu kodu wyszło mi, że nie ma klamerki zamykajacej kod funkcji program_1().
komentarz 3 listopada 2015 przez barteku12 Obywatel (1,340 p.)
udało się skompilowało, wielkie dzięki ;)

 

a co to formatowania, to się uczę i tak powiem, że bardziej mi zależy żeby w ogóle działał. ale postaram sie coś z tym zrobić jeśli umiem ;)  przyda się na przyszłość
komentarz 3 listopada 2015 przez furas Maniak (53,800 p.)
Niektóre IDE zdaje się mają funkcję formatowania kodu.
komentarz 3 listopada 2015 przez barteku12 Obywatel (1,340 p.)
ja nie wiem, piszę w Code Blocks, nigdy tego nie robiłem.
komentarz 3 listopada 2015 przez furas Maniak (53,800 p.)
Nie każde IDE to ma a jak ma to nie zawsze formatuje automatycznie podczas pisania tylko trzeba ręcznie to wywołać.

http://wiki.codeblocks.org/index.php/Source_Code_Formatter_plugin

---

Formatowanie kodu nie jest potrzebne kompilatorowi tylko ludzim, którzy muszą kod oglądać.
komentarz 3 listopada 2015 przez emSon Stary wyjadacz (10,480 p.)
CodeBlocks ma funkcją pod prawym przyciskiem myszy. Coś z AStyle.

Podobne pytania

0 głosów
0 odpowiedzi 530 wizyt
pytanie zadane 15 kwietnia 2022 w Sieci komputerowe, internet przez Mateusz Mariasik Początkujący (330 p.)
0 głosów
1 odpowiedź 472 wizyt
pytanie zadane 20 lipca 2018 w JavaScript przez Bish0p Obywatel (1,940 p.)
0 głosów
2 odpowiedzi 369 wizyt
pytanie zadane 3 marca 2018 w C i C++ przez th2cm1k5l632 Nowicjusz (120 p.)

92,632 zapytań

141,499 odpowiedzi

319,877 komentarzy

62,011 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...