Bolsa de Valores
Você é um empresário que possui ações de cinco empresas e um capital inicial de 15.000 cruzados.
Teste o programa no WebMSX – The Online MSX Emulator
No início da simulação é solicitado o seu objetivo financeiro, que deve ser atingido nesta simulação: digite um número entre 16000 e 100000 e tecle [ENTER].
Sugiro que você inicie sua carreira de empresário das ações com objetivos financeiros modestos (algo entre Cz$ 16.000 e 17.000) e que, com o passar do tempo (e algumas simulações), aumente-os gradualmente.
Uma vez indicado o objetivo, aparecerá na tela do seu MSX a situação da Bolsa de Valores no dia.
Note que a cada dia você é informado sobre as chances (probabilidades) do valor de cada ação subir ou cair.
Também são impressos dados referentes à quantia que você tem no banco (BANCO) e ao valor total do seu capital (VALOR TOTAL).
Agora tecle [S] para vender/comprar ações ou [N] em caso contrário.
Você pode efetuar, no máximo, uma operação de venda e uma operação de compra de ações por dia.
A mensagem TECLE ESPAÇO PARA PROSSEGUIR indica o término de um dia de atividades na Bolsa de Valores.
Somente no próximo dia de atividades você saberá qual foi o comportamento de suas ações e de seu capital e também se atingiu o seu objetivo.
Fonte: Livro Simulações MSX
Editora: McGraw Hill
Autor: Oscar Júlio Burd
Digitação: Renato Faria Lopes
Código fonte
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
10 ' B O L S A D E V A L O R E S 20 ' 30 ' 40 DIM S!(5),N!(5),P!(5),D!(5) 50 KEY OFF 60 FOR CO=1 TO 5: READ S(CO): NEXT CO 70 DATA 1.49, 1.99, 2.49, 2.99, 3.49 80 FOR CO=1 TO 5: READ N(CO): NEXT CO 90 DATA 2000, 1500, 1200, 1000, 800 100 BB=265: TV=15000: QQ=TV: DIA=1 110 SCREEN0: PRINT:PRINT"INFORME O SEU OBJETIVO PARA ESTA SIMULA-CAO"; 120 PRINT; " (DE Cz$16000 a Cz$100000)" 130 PRINT:INPUT "Objetivo: Cz$ ";OBJETIVO 140 IF OBJETIVO<16000 THEN PRINT "MUITO BAIXO!!": GOSUB1330:GOTO 110 150 IF OBJETIVO > 100000! THEN PRINT "MUITO ALTO!!": GOSUB 1330: GOTO 110 160 ' 170 '*********************** 180 '* LOOP PRINCIPAL * 190 '*********************** 200 ' 210 FOR C=1 TO 5 220 'MODIFICA-SE O VALOR 55 DA LINHA SEGUINTE P/MUDAR O JOGO: 80=MUITO DIFICIL, 30=MUITO FACIL 230 D(C)=INT (RND(9)*55) + 1 240 P(C)=INT (RND(9)*100-D(C)) + 1 250 NEXT C 260 GOSUB 300 270 GOTO 560 280 ' 290 '*********************** 300 '* IMPRESSAO * 310 '*********************** 320 ' 330 CLS 340 PRINT"-------------------------------------" 350 PRINT"DIA"; DIA; " SEU OBJETIVO E' Cz$ ";OBJETIVO 360 PRINT"-------------------------------------" 370 PRINT "Empresa numero:" 380 FOR I=0 TO 4: PRINT TAB(2+I*6)I+1;: NEXT I: PRINT: PRINT 390 PRINT "Probabilidade de incremento (%)" 400 FOR I=0 TO 4: PRINT TAB(2+I*6)P(I+1);: NEXT I: PRINT:PRINT 410 PRINT "Probabilidade de decremento (%)" 420 FOR I=0 TO 4: PRINT TAB(2+I*6)D(I+1);: NEXT I: PRINT:PRINT 430 PRINT "Valor atual por acao (Cz$)" 440 FOR I=0 TO 4: PRINT TAB(I*6+2) INT(S(I+1)*100)/100;:NEXT I :PRINT:PRINT 450 PRINT "Numero de acoes que voce tem" 460 FOR I=0 TO 4: PRINT TAB(2+I*6) N(I+1);: NEXT I: PRINT: PRINT 470 PRINT "BANCO Cz$" INT(BB) " VALOR TOTAL Cz$" INT(TV) 480 PRINT"--------------------------------------" 490 IF TV>OBJETIVO THEN PRINT "OBJETIVO COMPLETO! PARA BENS!!!": STOP 500 RETURN 510 ' 520 '************************** 530 '* VENDER * 540 '************************** 550 ' 560 PRINT "DESEJA VENDER ALGUMA ACAO?" 570 A$ = INKEY$ 580 IF A$<>"S" AND A$<>"N" AND A$<>"s" AND A$<>"n" THEN GOTO 570 590 IF A$="N" OR A$="n" THEN GOTO 810 600 GOSUB 300 610 PRINT "DE QUAL EMPRESA QUER VENDER?" 620 A$ = INKEY$ 630 IF A$<"1" OR A$>"5" THEN GOTO 620 640 C = VAL(A$) 650 PRINT "QUANTAS DE " C " QUER VENDER? 660 INPUT N 670 IF N>N(C) THEN PRINT "NAO POSSUI TANTAS!!": GOTO 660 680 ' 690 '************************* 700 '* AJUSTE DE VALORES * 710 '************************* 720 ' 730 BB = BB+S(C)*N: 'SOMA VALOR NO BANCO 740 N(C) = N(C)-N: 'RETIRA ACOES VENDIDAS DO TOTAL 750 TV=0: ' COLOCA VALOR TOTAL EM ZERO 760 'DETERMINA O VALOR ATUAL 770 FOR C=1 TO 5 780 TV = TV+N(C)*S(C) 790 NEXT C 800 TV = TV+BB:' SOMA AO BALANCO DO BANCO 810 GOSUB 300 820 ' 830 '********************** 840 '* COMPRAR * 850 '********************** 860 ' 870 PRINT "DESEJA COMPRAR ALGUMA ACAO?"; 880 A$ = INKEY$ 890 IF A$<>"S" AND A$<>"N" AND A$<>"s" AND A$<>"n" THEN GOTO 880 900 IF A$="N" OR A$="n" THEN GOTO 1060 910 GOSUB 300 920 PRINT "DE QUAL EMPRESA QUER COMPRAR?"; 930 A$ = INKEY$ 940 IF A$<"1" OR A$>"5" THEN GOTO 930 950 C = VAL(A$) 960 PRINT:PRINT "QUANTAS DE " C " QUER COMPRAR?" 970 INPUT N 980 IF N*S(C)>BB THEN PRINT "NAO TEM DINHEIRO SUFICIENTE!": GOTO 970 990 ' 1000 '************************ 1010 '* AJUSTE DE VALORES * 1020 '************************ 1030 ' 1040 BB = BB-S(C)*N 1050 N(C) = N(C)+N 1060 TV = 0 1070 FOR C=1 TO 5 1080 TV = TV+N(C)*S(C) 1090 NEXT C 1100 TV = TV+BB 1110 GOSUB 300 1120 ' 1130 '*************************** 1140 '* MUDA TODOS INDICADORES * 1150 '*************************** 1160 ' 1170 TV = 0 1180 FOR C=1 TO 5 1190 K = INT (RND(9)*100)+1 1200 IF K<P(C) THEN LET S(C)=S(C)*(1+(P(C)/1000)) 1210 K = INT(RND(9)*100)+1 1220 IF K<D(C) THEN LET S(C)=S(C)/(1+(D(C)/1000)) 1230 TV = TV+(S(C)*N(C)) 1240 NEXT C 1250 TV = TV+BB 1260 QQ = QQ*1.005 1270 PRINT: PRINT" TECLE ESPACO PARA PROSSEGUIR" 1280 IF INKEY$ <> " " THEN 1280 1290 DIA = DIA + 1 1300 GOTO 210 1310 END 1320 ' LOOP DE TEMPO 1330 FOR JJ=1 TO 300: NEXT JJ: RETURN |