CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - powrót do początku programu

powrót do początku programu

dział ogólny

Re: powrót do początku programu

Nowy postprzez tomass » czwartek, 6 stycznia 2011, 15:57

Dzięki działa, a teraz mam taki problem:

KOD cpp:     UKRYJ  
//Tu includy

void fun1()
{
system("echo widzisz fun1 !");
system("pause>nul");
}

void fun2()
{
system("echo widzisz fun2 !");
system("pause>nul");
}

void fun3()
{
system("echo widzisz fun3 !");
system("pause>nul");
}

void main()
{
fun1();
fun2();
fun3();
_getch();
}


działa ale jak zmienić by zamiast po zrobieniu fun1 bylo fun2 a puxniej fun3 i sie program wylaczyl tylko by było losowo ze raz sie wlaczy fun2 a raz np. fun3 itp, jak to zrobić ?
Avatar użytkownika
tomass
Bladawiec
Bladawiec
 
Posty: 16
Dołączył(a): czwartek, 23 grudnia 2010, 18:46
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: windows
Kompilator: visual c++ 2008
SKYPE: byakuyaPL
Gadu Gadu: 9698486
    Windows VistaChrome

Re: powrót do początku programu

Nowy postprzez Cyfrowy Baron » piątek, 7 stycznia 2011, 15:38

Nigdy nie słyszałeś o generatorze randomize() i funkcji random(int num)?!

KOD cpp:     UKRYJ  
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include <tchar.h>
#include <iostream.h>
#include <fstream.h>
#include <conio.h>
#include <stdlib.h>
//---------------------------------------------------------------------------

using namespace std;

#pragma argsused

void fun1(void);
void fun2(void);
void fun3(void);

const int ESCAPE = 27;

//---------------------------------------------------------------------------
int main(void)
{
 randomize();

 char esc;

 while(1)
 {
  int r = random(3);

  switch(r)
  {
    case 0: fun1(); break;
    case 1: fun2(); break;
    case 2: fun3(); break;
  }

  esc = getch();
  if(esc == ESCAPE) /* jeżeli wciśnięto klawisz Esc */
  {
   char result[2];
   printf("Czy chcesz zakonczyc dzialanie programu? (TAK/NIE) T/N\n");
   cin >> result;

   if( !stricmp(result, "T" ) ) return 0;
  }
 }

 return 0;
}
//---------------------------------------------------------------------------

void fun1(void)
{
 printf("Wylosowano funkcje fun1\nNacisnij dowolny klawisz by kontynuowac\n\n");
 //getch();
}
//---------------------------------------------------------------------------
void fun2(void)
{
 printf("Wylosowano funkcje fun2\nNacisnij dowolny klawisz by kontynuowac\n\n");
 //getch();
}
//---------------------------------------------------------------------------
void fun3(void)
{
 printf("Wylosowano funkcje fun3\nNacisnij dowolny klawisz by kontynuowac\n\n");
 //getch();
}
//---------------------------------------------------------------------------
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: powrót do początku programu

Nowy postprzez tomass » piątek, 7 stycznia 2011, 16:30

A może ktoś dać ten kod ale współpracujący z visual c++ 2008 ?
Bo mój visual jakby nie miał includów albo co.

Nigdy nie słyszałeś o generatorze randomize() i funkcji random(int num)?!

Uczę się z poradnika "Od zera do gier kodera" i tam tylko było o losowych liczbach, a jaką książkę możecie polecić do podstaw c++ ?
Avatar użytkownika
tomass
Bladawiec
Bladawiec
 
Posty: 16
Dołączył(a): czwartek, 23 grudnia 2010, 18:46
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: windows
Kompilator: visual c++ 2008
SKYPE: byakuyaPL
Gadu Gadu: 9698486
    Windows VistaChrome

Re: powrót do początku programu

Nowy postprzez Cyfrowy Baron » piątek, 7 stycznia 2011, 16:32

Bo mój visual jakby nie miał includów albo co.


Człowieku! Jak zgłaszasz problem to pisz go dokładnie! :evil: Których funkcji i metod nie możesz użyć?
Jeżeli nie możesz użyć jakiejś funkcji lub metody to sprawdź w pliku pomocy, jaką bibliotekę musisz włączyć.

A może ktoś dać ten kod ale współpracujący z visual c++ 2008 ?


Długo możesz się nie doczekać, gdyż na tym forum nie ma użytkowników z doświadczeniem w środowisku VC++ 2008. Uczysz się, więc zaglądaj do pliku pomocy.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: powrót do początku programu

Nowy postprzez tomass » piątek, 7 stycznia 2011, 16:46

fatal error C1083: Cannot open include file: 'vcl.h': No such file or directory
Avatar użytkownika
tomass
Bladawiec
Bladawiec
 
Posty: 16
Dołączył(a): czwartek, 23 grudnia 2010, 18:46
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: windows
Kompilator: visual c++ 2008
SKYPE: byakuyaPL
Gadu Gadu: 9698486
    Windows VistaChrome

Re: powrót do początku programu

Nowy postprzez Cyfrowy Baron » piątek, 7 stycznia 2011, 18:46

Po co włączasz tą bibliotekę?! :twisted: Nie kopiuj kodu bezmyślnie, lecz myśl nad tym co robisz. Zamieściłem listing całego kodu programu dla środowiska C++Builder 2010. Dobrze, że w przykładzie zmodyfikowałem funkcję main, gdyż u mnie ma taka postać:
KOD cpp:     UKRYJ  
int _tmain(int argc, _TCHAR* argv[])


Gdybyś ją tak przekopiował to kompilator by kompletnie zgłupiał.

Pokazałem jak można to zrobić i istotne są tutaj funkcje i zawartość funkcji main, to co jest poza tymi funkcjami zależy od wersji środowiska.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: powrót do początku programu

Nowy postprzez tomass » piątek, 7 stycznia 2011, 19:10

a teraz mam takie błędy:
Kod: Zaznacz cały
error C3861: 'randomize': identifier not found

Kod: Zaznacz cały
error C3861: 'random': identifier not found
Avatar użytkownika
tomass
Bladawiec
Bladawiec
 
Posty: 16
Dołączył(a): czwartek, 23 grudnia 2010, 18:46
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: windows
Kompilator: visual c++ 2008
SKYPE: byakuyaPL
Gadu Gadu: 9698486
    Windows VistaChrome

Re: powrót do początku programu

Nowy postprzez Cyfrowy Baron » piątek, 7 stycznia 2011, 19:46

Sprawdź w pliku pomocy w jakiej bibliotece te funkcje się znajdują i dodaj tą bibliotekę w sekcji include. Prawdopodobnie musi dodać bibliotekę stdlib.h lub time.h o ile takowe w VC++ 2008 występują.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: powrót do początku programu

Nowy postprzez tomass » piątek, 7 stycznia 2011, 21:19

Dodałem te oto includy i nadal mam error
Avatar użytkownika
tomass
Bladawiec
Bladawiec
 
Posty: 16
Dołączył(a): czwartek, 23 grudnia 2010, 18:46
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: windows
Kompilator: visual c++ 2008
SKYPE: byakuyaPL
Gadu Gadu: 9698486
    Windows VistaChrome

Re: powrót do początku programu

Nowy postprzez Cyfrowy Baron » piątek, 7 stycznia 2011, 21:23

A co masz napisane w pliku pomocy dołączonym do środowiska VC++ 2008 odnośnie funkcji randomize?
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: powrót do początku programu

Nowy postprzez polymorphism » piątek, 7 stycznia 2011, 22:42

randomize to funkcja z C++ Buildera. Zamiast niej użyj standardowych srand i rand.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: powrót do początku programu

Nowy postprzez Cyfrowy Baron » piątek, 7 stycznia 2011, 23:36

To ciekawe, że w VC++ nie ma funkcji randomize i random, gdyż w C++Builder są również funkcje srand i rand.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: powrót do początku programu

Nowy postprzez tomass » sobota, 8 stycznia 2011, 00:46

Zmieniłem z randomizer(); na rand(); i o 1error mniej ale teraz to:
Kod: Zaznacz cały
error C3861: 'random': identifier not found   
Avatar użytkownika
tomass
Bladawiec
Bladawiec
 
Posty: 16
Dołączył(a): czwartek, 23 grudnia 2010, 18:46
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: windows
Kompilator: visual c++ 2008
SKYPE: byakuyaPL
Gadu Gadu: 9698486
    Windows VistaChrome

Re: powrót do początku programu

Nowy postprzez masnyk » sobota, 8 stycznia 2011, 01:51

może to i oklepane, weź się za książkę: Jerzy Grebosz Symfonia C++
bo wygląda tutaj to trochę tak, jakbyś dał zlecenie na kod a nie starał się uczyć programowania.
Avatar użytkownika
masnyk
Bladawiec
Bladawiec
 
Posty: 5
Dołączył(a): piątek, 7 stycznia 2011, 16:20
Podziękował : 1
Otrzymał podziękowań: 0
System operacyjny: Windows7
Kompilator: bcb6
Gadu Gadu: 0
    Windows 7Firefox

Re: powrót do początku programu

Nowy postprzez polymorphism » sobota, 8 stycznia 2011, 11:52

Cyfrowy Baron napisał(a):To ciekawe, że w VC++ nie ma funkcji randomize i random, gdyż w C++Builder są również funkcje srand i rand.

Tylko, że te dwie ostatnie to funkcje standardowe biblioteki C, a random i randomize to funkcje przeniesione z Pascala. Zatem obecność srand i rand w środowiskach C/C++ nie powinna dziwić (ich brak powinien).
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Poprzednia stronaNastępna strona

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 4 gości