Você está na página 1de 197

crN OSBORNE/ McGRAW-HILL

Programas
Ustiais em
e Compativeis

LON POOLE
MERV BORCHERS
KARL KOESSEL

McGraw•Hill
PROGRAMAS
USUAIS
EM BASIC
para Sistemas Compativeis
corn o TRS-80
PROGRAMAS
USUAIS
EM BASIC
para Sistemas Compativeis
corn o TRS-130

Lon Poole
Mary Borchers
Karl Koessel

Traducao:
Paulo Boren'
Engenheiro

McGRAW-HILL
Sic Paulo • Rio de Janeiro • Lisboa • Porto • Bogotd • Buenos Aires • Guatemala
• Madrid • Mexico • New York • Panama • San Juan • Santiago
Auckland • Hamburg • Johannesburg • Kuala Lumpur • London • Montreal •
New Delhi • Paris • Singapore • Sydney • Tokyo • Toronto
Do original
Some Common Basic Programs, TRS-80Th Level II Edition
Copyright © 1981 by McGraw-Hill, Inc.
Copyright © 1984 da Editora McGraw-Hill do Brasil, Ltda.

Todos os direitos para a lingua portuguesa reservados pela Editora McGraw-Hill do Brasil, Ltda.

Nenhuma parte desta publicacao podera ser reproduzida, guardada pelo sistema "retrieval" ou transmitida de qualquer modo ou
por qualquer outro meio, seja este de-Ethnic°, meanie°, de fotocOpia, de gravacao, ou outros, sem previa autorizacao, por escrito,
da Editora.

Conselho Editorial: Prof. Gastao de Almeida Rocha (UERJ)


Prof. Oscar Benedicto Junior (FATEC)
Prof. Joao Jose Neto (US?)
Prof. Arnaldo Milstein Mefano (UERJ)
Eng'? Paulo Borelli

Editor: Jose Martins Braga


Supervisora de Producdo: Maria Celina Jurado
Capa: Cyro Giordano
Composiclio e Arte: Brasil Artes Grafica Ltda.

CIP-Brasil. Catalogacao-na-Publicac5o
Camara Brasileira do Livro, SP

Poole, Lon.
P862p Programas usuais em BASIC : para sistemas compativeis com o
TRS-80 / Lon Poole, Mary Borchers, Karl Koessel; traducao Paulo
Borelli. — Sao Paulo : McGraw-Hill do Brasil, 1984.

Bibliografia.

1. BASIC (Linguagem de programacao para computadores)


2. TRS-80 (Computador) — Programacao I. Borchers, Mary. II. Koessel,
Karl, 1952. — III. Tftulo.

17. CDD-651.8
18. -001.642
84-0354 18. -001.6424

indices para catalog° sistematico:

1. BASIC : Linguagem de prograrnacdo : Computadores : Processamento de


dados 651.8 (17.) 001.6424 (18.)
2. TRS-80 : Computadores : Programacao Processamento de dados 651.8
(17.) 001.642 (18.)
DELL' ARAcA0 DE GARANTIAS
E LIMITAcA0 DE RESPONSABILIDADE

Os autores tiveram cuidado em preparar este livro e os programas que ele contem, incluindo
pesquisa, desenvolvimento e teste para manter sua qualidade. Os autores e os editores nao
mantem responsabilidade expressa ou implicita em relacffo aos programas nem em relacdo
a documentagao suplementar dente livro. Sob nenhuma hipotese, os autores e editores podem
ser responsabilizados por danos ou outras conseqiiencias advindas do use dos programas
fornecidos, bem como por seu desempenho.
Sumario

Introducao IX

Programas
Valor futuro de um investimento 1
Valor futuro de depOsitos regulares (anuidade) 3
DepoSitos regulares 5
Retiradas regulares de um investimento 7
Investimento inicial 9
Minim° investimento para retiradas constantes 11
Taxa de juro nominal em investimentos 13
Taxa de juro efetiva em investimentos 15
Tabela de juros recebidos 17
Taxa de depreciacao 21
Valor depreciado 22
Valor residual 24
Letra de cambio 26
Calculo do principal em emprestimo 28
Calculo de prestacao ern um emprestimo 30
Ultima prestacao de urn emprestimo 32
Valor restante de urn emprestimo 35
Prazo de emprestimo 38
Taxa de juro anual em emprestimo 40
Tabela de amortizacao de emprestimo 43
Maximo denominador comum 49
Fatores primos de inteiros 51
Area de urn poligono 52
Partes de um triangulo 54
Analise de dois vetores 58
Operacao com dois vetores 60
Conversao de angulos: radianos para graus 61
Conversao de angulos: graus para radianos 63
Conversao de coordenadas 65
Desenho de coordenadas 67
Desenho da equagao polar 71
Desenho de funcoes 75
Interpolacao linear 78
Interpolacao curvilinea 80
Integracao: regra de Simpson 82
Integracao: regra do trapezio 84
Integracao: quadratura de Gauss 86
De rivacao 88
Raizes de equacties quadraticas 89
Raizes reais de polinornios: Newton 90
Raizes de polinOmios: pesquisa do intervalo medio 92
PolinOmio trigonometric° 94
Equagoes simultaneas 96
Programacao linear 98
Adicao, subtracao e multiplicacao escalar de matrizes 103
Multiplicacao de matrizes 106
lnversao de matrizes 109
Permutacao e combinacao 111
Teste U de Mann-Whitney 113

VII
Media, variancia e desvio-padrao 116
Media geometrica e desvio-padrao 119
Distribuicao binomial 120
Distribuicao de Poisson 122
Distribuicao normal 123
Distribuicao chi-quadrado 125
Teste chi-quadrado 128
Distribuicao t de Student 131
Teste t de Student 133
Distribuicao F 136
Coeficiente de correlacffo linear 139
Regressao linear 141
Regressao linear multipla 143
Regressao de enesima ordem 147
Regressao geometrica 150
Regressao exponencial 152
Confiabilidade de sistemas 154
Taxa media de crescimento, projecoes futuras 156
Escalonamento de deprecindo 158
Custo de receita 162
Verificacao de levantamento (teste em mapas) 166
Dia da semana 172
Dias entre duas datas 174
Conversao de sistemas de medida (ingles para metrico) 177
Ordenacao alfabetica 180
Re fe rencias bibliograficas 183

VIII
I ntrod ucgo

Este livro é uma colecao de 74 programas praticos escritos em linguagem de programacao BASIC especificamente
para o Radio Shack TRS-80 Modelo I Nivel I (ou similar). Os programas executam uma serie de rotinas praticas
comuns nos campos de financas, matematica, estatistica, ciencia e negocios.
Aqui nao ensinamos como programar em BASIC; existem provavelmente centenas de livros tentando
0 que fazemos é descrever cuidadosamente os programas, e incluimos exemplos de utilizacao, bem como a listagem.
Assim, caso nao haja familiaridade corn o BASIC, pode-se simplesmente copiar a listagem do programa no computador,
e em seguida executa-lo, como esta ilustrado nos exemplos.
Sao incluidas observacoes nos programas em BASIC para auxiliar os programadores a entender como cada
programa opera. Essas observacties indicam tambem partes dos programas que podem ser usadas dentro de outros
programas, mais tarde. Uma declaracao BASIC de comentario precede a linha ou linhas de comentario. A declaracao
REM pode ser suprimida ao se digitar o programa para execucao no computador porque ela é ignorada pelo computador
e apenas ocupa espaco na memOria.
Sao incluidas °pc-6es em alguns programas. Uma opcao é uma alteracao que modifica o formato de entrada ou
saida do programa original. As opcoes sugerem formas de alterar futuramente os programas. Incluimos uma breve
descricdo, exemplos, exemplos do processamento e listagem parcial para cada °Ka°. A listagem parcial inclui aquelas
declaracoes no programa que devem ser modificadas a partir do original, para se obter o programa opcional. As linhas
que devem ser alteradas sao sublinhadas em ambas as listagens.
Todos os programas podem rodar num computador TRS-80 corn 4K de memoria RAM (mem6ria de usuario).
Sera necessario urn cassete ou drive de disquette para guardar os programas, porem eles mesmos nao usam cassete
ou disquettes para guardar ou ler dados.
Os programas foram projetados para ocupar tela de 64 colunas. Toda a saida aparece na tela. Pode-se modificar
para sair pela impressora. Trocando-se 'PRINT' por far-se-a corn que os dados sejam enviados para a
impressora. Os parametros de entrada nab serao impressos a menos que:

LPR INT X 1 ; X2 ; X3
sejam inseridos apps cada
INPUT X1 , X2 , X3

onde X1, X2 e X3 sao variaveis de entrada requeridas.


Pode-se ainda alterar a declaracao PRINT em qualquer programa para usar mais de 64 colunas em uma impressora
de 80 colunas ou tela de video, porem isso nao é necessario.
Ao longo das listagens de programas, o caracter E 'representa "flexa acima". A impressora usa esse caracter para
o codigo ASCII 91 enquanto o TRS-80 usa o para a tela.
Todos os programas deste livro foram testados, rodados e listados num computador TRS-80 Modelo I Nivel II.
Os exemplos rodados e as listagens de programas foram feitos numa impressora EPSON MX802 . Os exemplos rodados
representam a saida como aparece na tela. Em alguns casos sera necessario modificar a declaracao PRINT para obter
o mesmo resultado diretamente na impressora.
Valor Futuro de um Investimento

Este programa calcula o valor futuro de urn investimento onde o fator sao os juros. Deve-se prover o valor do
investimento inicial, a taxa de juros nominal, o numero de periodos de composicao por ano e o numero de anos do
investimento.
Assumindo que ndo sejam feitos depositos adicionais e ndo haja retiradas, o valor futuro sera baseado na
seguinte formula:

T= P (1 + ilN) N. 37
onde: T = valor total depois de Y anos (valor futuro)
P = investimento inicial
i = taxa de juros nominal
N = numero de periodos de composicao por ano
Y = numero de anos

Exemplos:

Carlos faz urn investimento de $ 6800.00 a 9.5%. Se os juros sao compostos a cada quatro meses, qual sera o
valor do investimento depois de 10 anos?
Sr. Smith compra uma propriedade particular por $16050.00. 0 valor dessa propriedade cresce a taxa de 7%
ao ano. Qual sera o seu valor decorrido 5 1/2 anos?

E X ECU cAO:

VALOR FUTURO DE UM INVESTIMENTO

INVESTIMENTO INICIAL? 6000


TAXA DE JUROS NOMINAL. (7.)? 9.5
NUMERO DE COMPOSICOES POR ANO? 4
NUMERO DE ANOS? 10
VALOR FUTURO 117,308.57

MAIS CALCULOS (1=SIM, 0=NA0)?

INVESTIMENTO INICIAL.? 16050


TAXA DE JUROS NOMINAL (%)? 7
NUMERO DE COMPOSICOES POR ANO? 1
NUMERO DE ANOS? 5.5
VALOR FUTURO = $23285.52

MAIS CALCLJLOS (1=SIM,O=NA0)? 0

LISTAGEM DO PROGRAMA:

10 CLS
20 PRINT "VALOR FUTURO DE UM INVESTIMENTO"
30 DEFDBL
40 PRINT
49 REM — DECLARACOES 50 A 120 REQUEREM ENTRADA
50 PRINT "INVESTIMENTO INICIAL";
60 INPUT P
70 PRINT "TAXA DE JUROS NOMINAL. (%)?";
80 INPUT I
90 PRINT "NUMERO DE COMPOSICOES POR, ANO";
100 INPUT N
ii0 PRINT "NUMERO DE ANOS"7
120 INPUT Y
128 REM - CALCULA TAXA DE JUROS POR PERIOD();
129 REM - CONVERTE PERCENTUAL PARA DECIMAL
130 I=I/N/100
139 REM - CALCULA VALOR FUTURO PELA FORMULA
140 T=P*(1.4-I)^(N*Y)
149 REM - ARREDONDA PARA 0 CENTAVO MAIS PROXIMO, IMPRIME
150 PRINT "VALOR FUTURO=";
155 PRINT USING"501)0000,###0,#000.00";T
159 REM - IMPRIME LINHA PARA SEPARAR DADOS DA PERGUNTA
160 PRINT
169 REM - REINICIA OU TERMINA PROGRAMA? PERGUNTA AO USUARIO
170 PRINT "MAIS CALCULOS (1=SIM, 0=NA0)",
180 INPUT X
190 IF X=1 THEN 40
200 END

OPcOES

Este programa permite entrar urn investimento em anos inteiros ou decimais apenas. Em alguns casos se faz
necessario entrar anos e meses, em vez de apenas anos. As alteracoes no programa, para isso, seguem o exemplo abaixo.

Exemplo:

Jose investiu $12000.00 a uma taxa de 8%. Os juros sao compostos quatro vezes por ano. Qual sera o valor do
investimento apps 10 anos e 7 meses?

EXECUQA0 :
VALOR FUTURO DE UM 1NVESTIMENTO

INVESTIMENTO INICIAL? 12000


TAXA DIE JUROS NOMINAL (%)? 8
NUMERO DE COMPOSICOES POR ANO? 4
NUMERO DE ANOS, MESES? 10,7
VALOR FUTURO= $27,749.56

MAIS CALCULOS (1=5IM, 0=NA0)? 0

LISTAGEM DO PROGRAMA

I REM - OPCOES 110-125


10 CLS
20 PRINT "VALOR FUTURO DE UM INVESTIMENTO"
N

100 INPUT N
110 PRINT "NUMERO DE ANOS, MESES";
120 INPUT Y0,M
124 REM - CALCULA ANOS A PARTIR DE ANOS E MESES
125 Y=(12*Y0+M)/12
128 REM CALCULA TAXA DE JUROS POR PERIOD();

rs

:
1:
200 END

2
Valor Futuro de Depositos Regulares (Anuidade)

Este programa calcula o valor futuro de depositos efetuados regularmente. Todos os depOsitos sac) iguais. Deve-se
fornecer o valor de cada deposit°, o numero de depositos por ano, o 'Eimer° de anos e a taxa de juros nominal.
Assumindo que os juros sac) compostos a cada deposit°, o calculo é base ado na seguinte formula:

((1 + i/n) NeY - 1


T=R•
il N

onde: T = valor total apOs Y anos (valor futuro)


R = valor de cada parcela depositada
N = niimero de depositos por ano
Y = niimero de anos
i = taxa de juros nominal

Exemplos:

$50.00 s-ao transferidos a cada mes da conta corrente para a poupanca corn uma taxa de juros de 5%. Qual o
montante obtido no final do ano?
Mario faz pagamentos anuais de $175.00. A taxa de juros é de 5.5%. Qual sera o valor acumulado al:6s
15 anos?

EXECUcAO:
VALOR FUTLJRO DE DEPOSITOS REGULARES

VALOR DE CADA DEPOSITO? 50


TAXA DE JUROS NOMINAL(7.)? 5
NUMERO DE DEPOSITOS POR ANO'? 1.2
NUMERO DE ANOS? i
VALOR FUTURO = $61.3.92
MAIS DADOS (i=SIM, 0=NA0)? i
VALOR DE CADA DEPOSITO? 1.75
TAXA DE JUROS NOMINAL. (Z)? 5.5
NUMERO DE DEPOSITOS POR ANO? i
NUMERO DE ANOS? 1.5
VALOR FUTURO = $3,92i.50
MAIS DADOS (i=SIM, 0=NA0)? 0
LISTAGEM DO PROGRAMA
9 CLS
1.0 PRINT "VALOR FUTURO DE DEPOSITOS REGULARES (ANUIDADE)"
1.6 DEFDBL A•21
20 PRINT
29 REM - DECLARACOES 30 A i00 REQUEREM DADOS OF ENTRADA
30 PRINT "VALOR DE CADA DEPOSITO";
40 INPUT R
50 PRINT "TAXA DE JUROS NOMINAL";
60 INPUT I
70 PRINT "NUMERO DE DEPOSITOS POR ANO";

3
80 INPUT N
90 PRINT "NUMERO DE ANOS
100 INPUT Y
108 REM - CALCUL() DE TAXA DE JUROS POR DEPOSITO
109 REM - CONVERSAO DE PORCENTAGEM PARA DECIMAL..
110 I=I/N/100
119 REM - CALCUL() DO VALOR FUTURO PELA FORMULA
120 T=R*((i+I)E(N*Y)-1)/I
129 REM - ARREDONDA PARA 0 CENTAVO MAIS PROXIMO, IMPRIME
130 PRINT "VALOR FtJTURO = ";
135 PRINTUSING"Ii$00#0,####,O###,###0.##";T
139 REM - REINICIA OU FINALIZA PROGRAMA? PERGUNTA AO USUARIO
140 PRINT
150 PRINT "MAIS DADOS? (1=SIM, 0=NA0)";
160 INPUT X
170 IF X=1 THEN 20
180 END

OP cO E S

Pode-se desejar o prazo do investimento em termos de anos e meses em vez de anos. As modificacoes
necessarias seguem-se ao exemplo abaixo.

Exemplo:

Qual sera o valor final a ser recebido por Raul apOs 10 anos e 5 meses de depositos regulares de $50.00
numa conta corrente a taxa de juros de 5%?

EXECUcAO:
VALOR FUTURO DE DEPOSITOS REGULARES

VALOR DE CADA DEPOSITO? 50


TAXA DE JUROS NOMINAL. (%)? 5
NUMERO DE DEPOSITOS POR ANO? 12
NUMERO DE ANOS, MESES? 10,5
VALOR FUTURO = 438,178.98
MAIS DADOS (1•6IM, 0=NA0)? 0
LISTAGEM DO PROGRAMA
i REM - OPCAO 90-105
9 CLS
10 PRINT "VALOR FUTURO DE DEPOSITOS REGULARES (ANUIDADE)"
a

80 INPUT N
90 PRINT "NUMERO DE ANOS,MESES";
100 INPUT YO,M
104 REM * CALCUL.A ANOS A PARTIR DE ANOS E MESES
105 Y=4(12*Y04-M)/12
1U8 REM — CALCUL() DA TAXA DE JUROS POI DEPOSIT(),
U

180 END

4
Depositos Regulares

Este programa calcula o valor requerido para depOsitos regulares para gerar urn determinado valor futuro num
certo period° de tempo. Todos os depOsitos sao iguais. 1 necessario fomecer o valor futuro, a taxa de juros nominal,
o rainier° de depOsitos por ano e o ntimero de anos.
0 calculo do valor do deposit° regular é baseado na seguinte formula:

R=T "
k(1 i/N)N°Y- 1/
onde: R = valor de cada deposit° regular
T = valor futuro
i = taxa de juros nominal
N = thimero de depositos por ano
Y = niimero de anos

Exemplo:

Maria gostaria de ter $1000.00 no final de urn ano de economias em poupanca. Quanto ela deve depositor a
cada mes corn uma taxa de juros de 8%?

EXECUQAO:

DEPOSITOS REGULARES
VALOR TOTAL APOS Y ANOS? 1000
TAXA DE JUROS NOMINAL.. 00? 8
NUMERO DE DEPOSITOS POR ANO? 2
NUMERO DE ANOS?
DEPOSITOS REGULARES = $80.32
MA IS DADOS? (1=SIM, 0=NA0)? 0
LISTAGEM DO PRO(3RAMA

10 CLS
20 PRINT "DEPOSITOS REGULARES"
30 DEFDBL A-Z
40 PRINT
49 REM - DECLARACOES 50 A 120 REQUEREM ENTRADA
50 PRINT "VALOR TOTAL APOS Y ANOS";
60 INPUT T
70 PRINT "TAXA DE JUROS NOMINAL 00";
80 INPUT I
90 PRINT "NUMERO DE DEPOSITOS POR ANO";
ipo INPUT N
110 PRINT "MAIER° DE ANOS";
120 INPUT Y
128 REM -
CALCUL() DA TAXA DE JUROS POR DEPOSITO;
129 REM - CONVERSAO DE PORCENTAGEM PARA DECIMAL
130 I=I/N/100
139 REM - CALCULO DO VALOR DO DEPOSIT° REGULAR PELA FORMULA
140 R=T*I ( (:-1)E (N*Y)-1)

5
i49 REM - ARREDONDA PARA CENTAVO MAIS PROXIMO, IMPRIME
150 PRINT "DEPOSIT° REGULAR = $";
155 PRINTUSING"$$0#00,#000,0#00,###0.#0";R
159 REM - LINHA BRANCA SEPARA DADOS DA PERGUNTA
160 PRINT
169 REM - REINICIA OU FINALIZA PROGRAMA? ENTRADA DO USUARIO
170 PRINT "MAIS DADOS? (i=SIM, 0=N10)";
180 INPUT X
190 IF X=1 THEN 40
200 END

OPQOES

Pode-se desejar entrar o prazo do investimento em anos e meses em vez de anos. As alteracOes necessarias no
programa estao listadas seguindo o exemplo abaixo.

Exemplo:

Edu deseja juntar $2000.00 para comprar uma moto nova, em 1 ano e 5 meses. Quanto deve depositar a cada
mes corn uma taxa de juros de 8%?

EXECUQAO:

DEPOSITOS REGULARES

VALOR TOTAL. APOS Y ANOS'? 2000


TAXA DE JUROS NOMINAL (%)? 8
NUMERO DE DEPOSITOS POR ANO? 12
NUMERO DE ANOS , MESES? 1,5
DEPOSITOS REGULAR ES =

MAIS DADOS2(1=?3iM, 0=NA0)? 0

LT: TAGEM DO PROGRAMA

I. REM - 0PCOES110-125
10 CLS
20 PRINT "DEPOSITOS REGULARES"
N

100 INPUT N
ii0 PRINT "NUMERO DE ANOS,MESES";
120 INPUT YO,M
124 REM - CALCULA ANOS A PARTIR DE ANOS E MESES
125 Y=(1.2*Y04-M)/12
128 REM -. CACULA TAXA DE jUROS POR DEPOSIT();

:200 END

6
Retiradas Regulares de um Investimento

Este programa calcula o valor maxim° que pode ser recebido regularmente a partir de urn investimento apps urn certo
periodo de tempo. Todas as parcelas sat! iguais. Deve-se fornecer o valor do investimento inicial, a taxa de juros
nominal, o numero de parcelas por ano e o numero de anos.
0 valor maildmo para cada parcela recebida é calculado segundo a formula:

R P + i)
(1+ ilN) N.1 —1 N

onde: R = valor de cada parcela a receber


P = investimento inicial
i = taxa de juro nominal
N = numero de parcelas a receber por ano
Y = numero de anos

Devido a este programa calcular o maxim montante, um residual de $0.00 sera deixado na conta no final do
period°. Pode-se retirar qualquer quantia menor sob a mesma especificacdo, deixando o restante na conta.

Exemplo:

Davi investiu $8000.00 a 9.5%. Ele planeja fazer retirada em parcelas a cada mes durante 10 anos, sem resto
no final. Quanto devera ele retirar a cada mes?

EXECUcAO:
RETIRADAS REGULARES DE UM INVESTIMENTO

INVESTIMENTO INICIAL? 8000


TAXA DE JLJRO NOMINAL.. (%)? 9.5
NUMERO DE RETIRADAS POR ANO'? 12
NUMERO DE ANOS? 10
VALOR DE CADA RETIRADA = $103.52

MAIS DADOS'? (i=SIM, 0=NA0)? 0

LISTAGEM DO PROGRAMA

9 CLS
1.0 PRINT "RETIR ADA13 REGULARES DE UM INVESTIMENTO"
16 DEFDE31..
20 PRINT
29 REM DECLARACOES 30 A 100 REQUEREM ENTRADA
3 0 P R '.E N T "INVESTIMENTO INICIAL";
40 INPUT
50 PRINT "TAXA DE JURO NOMINAL (%)";
60 INPUT
70 PRINT "NUMERO DE RETIRADAS POR'ANO";
0 i3 INPUT N
90 PRINT "NUMERO DE ANOS";
100 INPUT Y
iOS REM — CALCUL() DA TAXA DE JURO PARA CADA RETIRADA;
109 REM — CONVER•E DE PORCENTAGEM PARA DECIMAL
i10 I=I/N/100
) DO VALOR DE CADA PARCELA PELA FORMULA
1.1.9 REM — CALCUL(
120 R=P*(i/((i+I)E(N*Y)-1)44
129 REM —
ARREDONDA PARA 0 CENTAVO MAIS PROXIMO, IMPRIME
130 PRINT "VALOR DE CADA RETIRADA ="
135 PRINTUSING"$%000#,O#00,00#0,0000.00"0
139 REM —
LINHA EM BRANCO SEPARA DADOS DA PERGUNTA
140 PRINT
149 REM - REINICIO OU Fill DE PROGRAMA ?
150 PRINT "MAIS DADOS? (1=SIM, 0=NA0)";
160 INPUT X
170 IF X=1 THEN 20
180 END

OPQ OES

Pode ser mais conveniente entrar com o investimento em termos de anos e meses em vez de anos apenas. As
modificacOes necessarias no programa seguem o exemplo abaixo.

Exempla:

Quanto deve ser retirado a cada semana tendo-se feito urn investimento de $ 8000.00 a 9.5% sendo que o periodo
contado é de 10 anos e 5 meses?

EXECUcA0 :
RETIRADAS REGULARES DE UM INVESTIMENTO
INVESTIMENTO INICIAL? 8000
TAXA DE JURO NOMINAL (%)? 9.5
NUMERO DE RETIRADAS POR ANO?
NUMERO DIE ANOS, MESES? 10,5
VALOR DE CADA RETIRADA = %23.28
MAIS DADOS? (1=SIM, 0=NA0)? 0
LISTAGEM DO PROGRAMA
1. REM - OPCOES 90-105
9 CLS
10 PRINT "RETIRADAS REGULARES DE UM INVESTIMENTO"

80 INPUT N
90 PRINT "NUMERO DE ANOS, MESES";
100 INPUT YO,M
104 REM - CALCULO DE ANO A PARTIR DE ANOS E MESES
105 Y=(12*Y0+M)/12
108 REM -- CALCULO DA TAXA DE JURO FARA CADA RETIRADA;

in END

8
Investimento Inicial

Este programa calcula o investimento necessario para gerar um valor futuro determinado apps urn determinado periodo
de tempo. Deve-se entrar corn o valor futuro do investimento, o numero de composicOes por ano e a taxa de juro
nominal.
A formula usada para calcular o valor inicial do investimento é a seguinte:

T
P
(1 + iIN) N.Y

onde: P = investimento inicial


T = valor futuro
N = numero de composicoes por ano
Y = numero de anos
i = taxa de juro nominal
Exemplos:

Quanto deve ser investido a 8.5% para gerar $10000.00 ao final de 10 anos corn juros compostos trimestralmente?
Uma fmanceira deseja vender letra de cambio cujo valor, decorridos cinco anos, devera ser $5000.00, a partir
da data de venda. A taxa de juro nominal é de 7.9% compostos dia.riamente. Qual o valor que deve ter essa letra?

E XECUQAO:

INVESTIMENTO INICIAL

VALOR TOTAL. APOS Y ANDS? 10000


NUMERO DE COMP OS I COES P OR ANO'? 4
NUMERO DE AMOS? 1.0
TAXA DE JURO NOMINAL (%)? 8.5
INVESTIMENTO INICIAL = $4,312.40

MATS DADOS? (1=SIM, 0=NA0)? 1


VALOR TOTAL APOS Y ANOS? 5000
NUMERO DE COMPOSICOES POR ANO? 365
NUMERO DE ANOS? 5
TAXA DE JURO NOMINAL. (%)? 7.9
INVESTIMENTO INICIAL = $3,368.34
MAIS DADOS? (1=SIM, 0=NA0)? 0

LISTAGEM DO PROGRAMA
10 CLS
20 PRINT "INVESTIMENTO INICIAL"
30 OE FDBL A—Z
40 PRINT
49 REM -- DECLARACOES 50 A 120 REQUEREM ENTRADA
50 PRINT "VALOR TOTAL APOS Y ANOS";
60 INPUT T
70 PRINT "NUMERO DE COMPOSICOES P OR ANC";
80 INPUT N
90 PRINT "NUM B RO ICE AMOS";
100 INPUT Y
110 PRINT "TAXA DE JURO NOMINAL 00";
120 INPUT I
128 REM - CALCULO DA TAXA DE JURO POR PERIOD();
129 REM - CONVERTE DE PORCENTAGEM PARA DECIMAL
130 I=I/N/100
139 REM - CALCULO DO VALOR INICIAL PELA FORMULA
140 P=T/(i+I)E(N*Y)
149 REM - ARREDONDA PARA 0 CENTAVO MAIS PROXIMO, IMPRIME
1•0 PRINT "INVESTIMENTO INICIAL • $";
155 PRINTUSING"%%0000,0000,0#00,011#0.0#";P
159 REM - LINHA EM BRANCO SEPARA DADOS DA PERGUNTA
160 PRINT
169 REM - REINICIO OU FIM DE PROGRAMA ? OPCAO DO USUARIO
170 PRINT "MAIS DADOS? (1=MM, (7=NA0)";
180 INPUT X
190 IF X=1 THEN 40
200 END

OPcOES

Pode ser mais conveniente entrar corn o investimento em termos de anos e meses em vez de anos apenas. As
modificacOes necessarias no programa seguem o exemplo abaixo.

Exemplo:

Maria deseja investir uma soma em poupanca. Em 3 anos e 8 meses ela deseja ter $4000.00 na conta. Se os juros
sdo compostos mensalmente e a taxa é de 8%, qual o montante que ela deve investir?

EXECUcAO:
INVESTIMENTO INICIAL.

VALOR TOTAL.. APO{ Y ANOS? 4000


NUMERO DE COMPOSICOES POR ANO? 12
NUMERO DE ANOS, MESES? 3,8
TAXA DE JURO NOMINAL (%)? 8
INVESTIMENTO INICIAL :: '12,986.01

MATS DADOS? (I•SIM, 0=NA0)? 0


LISTAGEM DO PROGRAMA

i REM -- OPCOES 90-105


10 CLS
20 PRINT "INVESTIMENTO INICIAL"

80 INPUT N
90 PRINT "NUMERO DE ANOS, MESE/3"; 414WWWWWWW
100 INPUT YO,M
104 REM - CALCUL() DE ANO A PARTIR DE ANOS E MESES
105 Y=(12*Y0-1-M)/12
110 PRINT "TAXA DE JURO NOMINAL (m/s)1 ;
n

200 END

10
Minimo Investimento para Retiradas Constantes

Este programa calcula o investimento minimo requerido para permitir retiradas parceladas constantes a cada intervalo
de tempo dado. 0 valor calculado depende de cada retirada, do nlimero de retiradas por ano, do mlmero de anos e
da taxa de juro do investimento. Todas as retiradas sao iguais.
E calculado apenas o menor valor do investimento; o programa assume urn residual nulo a ser deixado no final
do periodo. Qualquer investimento maior que o montante calculado permitird a retirada determinada, deixando,
porem,um residual ao termino do period°.
Assumindo que os juros -sao compostos a cada retirada, o calculo é baseado na seguinte fOrmula:

R•N
P
( 1 + ilN}N
i .Y )
onde: P = investimento inicial
R = valor de cada retirada
i= taxa de juro nominal
N= niunero de retiradas por ano
y= mimero de anos

Exemplo:

Quanto se deve investir a 6% para permitir uma retirada mensal de $100.00 por 5 anos?

EXECUcAO:
MINIM() INVESTIMENTO PARA RETIRADAS CONSTANTES

VALOR DE CADA RETIRADA? 100


TAXA DE JURO NOMINAL (%)? 6
NUMERO DE RETIRADAS POR ANO? 12
NUMERO DE ANO6? 5
INVESTIMENTO MINIM() = $5,172.54
MAIS DADOS? (1=SIM, 0=NA0)? 0
LISTAGEM DO PROGRAMA
10 CLS
20 PRINT "MINIM() INVESTIMENTO PARA RETIRADAS CONST'ANTES"
30 DEFDBL
40 PRINT
49 REM - DECLARACOES 50 A 120 REQUEREM ENTRADA
50 PRINT "VALOR DE CADA RETIRADA";
60 INPUT R
70 PRINT "TAXA DE JURO NOMINAL ($)";
80 :[NPUT I
90 PRINT "NUMERO DE RETIRADAS POR ANO";
100 :[NPUT N
110 PRINT "NUMERO DE ANOS";
120 INPUT Y
129 REM — CONVERTE DE PORCENTAGEM PARA DECIMAL
130 I=I/10()

11
139 REM - CALCUL() DO INVESTIMENTO MINIM() PELA FORMULA
140 P=R*N/I*(1-1((i+I/N)17.(N*Y)))
149 REM - ARREDONDA PARA 0 CENTAVO MAIS PROXIMO, IMPRIME
150 PRINT "MINIMO INVESTIMENTO = "7
1.55 PRINTUSING"$$####,O#00,110H#,#0##.00"0
159 REM - LINHA EM BRANCO GE PARA DADOS DA PE RGUNTA
160 PRINT
169 REM - REINICIO OU FIM DE PROGRAMA ?
170 PRINT "MAIS DADOS? (1=SIM, 0=NA0)";
180 INPUT X
190 IF X=1. THEN 20
200 END

OPcOES

Pode ser mais conveniente entrar corn o investimento em termos de anos e meses em vez de anos apenas. As
modificacoes necessarias no programa seguem o exemplo abaixo.

Exemplo:

Antonio retirou mensalmente $ 250.00 por 6 anos e 5 meses. Qual foi o valor initial aplicado se a taxa de juro
foi de 6%?

EXECUQAO:
MINIMO INVESTIMENTO PARA RETIRADAS CONSTANTES
VALOR DE CADA RET1RADA? 250
TAXA DE JURO NOMINAL. (X)? 6
NUMERO DE RETIRADAS POR ANO? 12
NUMERO DE ANOS, MESES? 6,5
INVESTIMENTO MINIMO = M. 1,5,944.76

MAIS DADOS (1=SIM, 0=NA0)2 0


LISTAGEM DO PROGRAMA
i REM - OPCOES 110-125
10 C: L.
20 PRINT "MINIMO INVESTIMENTO PARA RETIRADAS CONSTANTES"
a

i00 INPUT N
110 PRINT "NUMERO DE ANOS, MESES"7
120 INPUT YO,M
124 REM - CALCULO DE ANO A PARTIR DE ANOS E MESES
125 Y=(1.2*Y04-M)/12
129 REM - CONVERTE DE PORCEN1AGEM I ARA DECIMAL
N

200 END

12
Taxa de Juro Nominal em Investimentos

Este programa calcula a taxa de juro para urn dado investimento que gera urn certo valor dentro de urn period°
especificado. A taxa de juro é, em geral, subdividida para efeitos de composicao.
A "Taxa de Juro Nominal" é baseada na seguinte fOrmula:

1
i = N (TI P) N` Y N
onde: i = taxa de juro nominal
p = investimento inicial
T = valor futuro
N = numero de composicoes por ano
Y mimero de anos

A taxa de juro nominal é expressa conio uma taxa anual, apesar de a taxa usada ser composta ilN. A taxa de
juro nominal sera menor que a taxa de juro efetiva quando o juro for composto mais de uma vez ao ano. Isso é devido
a taxa de juro nominal nao considerar a parte composta pelo juro obtido em periodos anteriores do mesmo ano. Por
exemplo, o escalonamento de juros obtidos em $100.00 a 5%, com composicgo trimestral de juros, sera:

Novo
Periodo Valor Taxa
Valor
1 $100.00 • .0125 = $1.25 $101.25
2 $101.25 • .0125 = $1.27 $102.52
3 $102.52 • .0125 = $1.28 $103.80
4 $103.80 • .0125 = $1.30 $105.10

A taxa de juro efetiva no exemplo é de 5.1%, embora a nominal seja de 5%.

Exemplos:

Jane investiu $945.00 num banco de investimentos. Quatro anos e meio mais tarde seu montante na conta
era de $1309.79. Se os juros foram compostos mensalmente, qual a taxa de juro nominal oferecida pelo banco?
Mauricio investe $3000.00. Dez anos mais tarde recebe $1576.00 em juros. Sabendo que os juros sao compostos
mensalmente, qual a taxa de juro nominal da conta?

EXECUQAO:
TAXA DE JIIRO NOMINAL EM INVESTIMENTOS

P R INC I P AL? 945


VALOR TOTAL? 1309.79
NUMER 0 DE ANOS? 4.5
NUMERO DE COMP OEU COES P OR ANO? i2
TAXA DE JURO NOMINAL= 7.2761536 7.
MATS DADOS? (i=SIM 0=NA0)?
P R INC IP AL'? 3000
VALOR TOTAL? 4576

13
NUMERO DE ANOS? 1.0
NUMERO DE COMPOSICOES POR ANO? 12
TAXADE JURO NOMINAL= 4.2295933 %

MAIS DADOS? (I=SIM, (.l=NA0)? 0

LISTAGEM DO PROGRAMA

10 CLS
20 PRINT "TAXA DE JURO NOMINAL EM INVESTIMENTOS"
r
30 DEFDBL A-Z
40 PRINT
49 REM - DECLARACOES 50 ATE 120'REQUEREM ENTRADA
50 PRINT "PRINCIPAL".r
60 INPUT p
70 PRINT "VALOR TOTAL";
80 INPUT T
90 PRINT "NUMERO DE ANOS"p
1.00 INPUT Y
110 PRINT "NUMER0 DE •ERIODOS DE COMPOSICAO POR ANO".7
120 INPUT N
129 REM - CALCUL() DA 1AXA DE JUROS NOMINAL PI LA FORMULA IMPRE6SA0
130 I2=N*((T/P)E(1/(N*Y))-1)*100
140 PRINT "TAXA DE JURO NOMINAL=";*RINTUSING"000.00000##";I2;
141. PRINT" Z"
147 REM - LINHA EM BRANCO SEPARA DADOS DE PERGUNIA
150 PRINT
159 REM - .REINICIO OU FIM DI PROGRAMA? ENTRADA DO USUARIO
160 PRINT "MAIS DADOS? (1=SIM U=NA0)",
170 INPUT X
180 IF X=1 THEN 20
190 END

14
Taxa de Juro Efetiva em I nvestimentos

Este programa calcula a taxa efetiva para urn valor inicial conhecido que remonta urn valor futuro tambem conhecido
apos urn dado period() de tempo. Essa taxa expressa o juro real recebido pelo investimento a cada ano.
A taxa de juro efetiva a calculada segundo a formula:

Vanos
Taxa de juro valor futuro
efetiva (investimento inicial

Pode-se calcular a taxa de juro efetiva sobre valores investidos ou juros acumulados. Ou ainda se pode calcular
a taxa de juro efetiva necessaria para gerar, a partir de um principal, urn valor hipotetico apOs urn dado perIodo de
tempo. Por exemplo, investindo-se $ 5000.00 num banco e desejando $ 6800.00 apos seis anos, pode-se determinar
qual a taxa de juro que o banco devera proporcionar para gerar isso.
A "Taxa de Juro Efetiva" tambem pode ser usada para calcular o percentual efetivo de depreciacao de urn
investimento. Pegue seu carro, por exemplo. Se ele foi comprado por $7534.00 e vendido por $3555.00 tres anos
mais tarde, pode-se achar sua depreciacao real (taxa de juro negativa) de aproximadamente 22% a cada ano.

Exemplos:

Jane deposita $ 945.000 numa conta de poupanca. Quatro anos e meio mais tarde sua conta monta em
$1309.79. Qual a taxa de juro real que o banco paga anualmente?
Pedro comprou seu carro em 1970 por $7534.84 e o vendeu em 1973 por $3555.00. Qual foi a taxa efetiva
de depreciacao?

EXECUcAO:
TAXA DE JURO EFETIVA EM INVEST MENTOS

INVESTIMENTO INICIAL? 945


VALOR TOTAL AID O; Y ANOS? 1309.79
NUMERO DE ANOS? 4.5
TAXA DE JURO ANUAL = 7.52375 %

MAIS DADOS" (1=SIM, 0=NA0)?

INVESTIMENTO INICIAL? 7534.04


VALOR TOTAL AP OS Y ANOS? 3555
NUMERO DE ANOS? 3
TAXA DE JURO ANUAL. =-22.1506 %

MAIS DADOS? (i=SIM, 0=NA0)2 0

LISTAGEM DO PROGRAMA

10 CLS
20 PRINT "TAXA DE JLJRO EL ETIVA EM INVESTIMENTOS"
30 DEFDBL A-Z
40 PRINT
49 REM - DECLARACOES 50 A 100 REQUEREM ENTRADA
50 PRINT "INVESTIMENTO INICIAL";
60 - INPUT P
70 PRINT "VALOR TOTAL AP OS Y ANOS";

15
80 INPUT T
90 PRINT "NUMERO DE ANOS";
100 INPUT Y
i09 REM - CALCUL() DA TAXA EFETIVA, IMPRESSAO i/vil
110 PRINT "TAXA DE JURO ANUAL =";((T/P)E(1/Y)-1)*100; i.
119 REM - LINHA EM BRANCO SEPARA DADOS DE PERGUNTA
120 PRINT
129 REM - REINICIO OU FIM DE PROGRAMA?
130 PRINT "MAIS DADOS? (1=SIM, 0=NA0)";
140 INPUT X
150 IF X=1 THEN 40
160 END

16
Tabela de Juros Recebidos

Este programa calcula e imprime uma tabela de juros para investimentos. A tabela contern as seguintes informacoes:

1) Balanco periodic°
2) Juro acumulado entre dois perfodos
3) Total do juro acumulado
4) Taxa de juro efetiva

Esses valores podem ser calculados para urn ark() investimento ou para um investimento inicial corn depOsitos
ou retiradas regulares. Se a tabela for dirigida para investimento simples, deve-se informar o valor do investimento
inicial, a taxa de juro nominal e o numero de composicoes por ano. 0 balanco sera impresso para no maxim° quatro
vezes por ano. Se os juros forem compostos menos que quatro vezes por ano, o balanco sera dado a cada composicao
de juro.
Se a tabela for dirigida para depositos ou retiradas regulares, deve-se informar o valor do investimento inicial, a
taxa de juro nominal, o mimero de depositos ou retiradas por ano e o respectivo valor. Neste caso a composicao é
assumida como sendo diaria (360 vezes nor ano). 0 novo balanco é mostrado a cada deposit° ou retirada.

Exemplos:

Sueli investe $2000.00 a 9.5% num fundo de investimento por dez anos. Os juros sao compostos mensalmente.
Qual o seu balanco anual de juros recebidos nos illtimos dois anos?
Joao deposita $ 1000.00 a 8% num banco. A cada mes deposita urn cheque de $50.00 na conta. Qual a sua
tabela de juros recebidos no primeiro ano de seu investimento?
Teo deposita $1000.00 a 8% em poupanca. A cada quadrimestre retira $150.00. Qual a sua tabela de juros
recebidos no prirneiro ano de sua conta?

c
EX EC U A0 :
TABELA DE JUR 0 RECEB I DO
PRINCIPAL? 2000
TAXA DE JURO NOMINAL (7)? 9.5
NUMERO DE DEPOSITOS/RETIRADAS POR ANO? 0
NUMERO DE COMPOSICOES POR ANO? 12
INICIA EM QUAL ANO? 9
FINALIZA A IMPRESSAO EM QUE ANO? 10
TABELA DE JUR c R ECU; IDO
PR I NCI P AL '1 2000 A 9.5 74', NOMINAL P OR 10 ANOS
TAXA DE JURO 1::.'1' IVA DE 9.9247 P OR ANO
N0 1-.3 A L. (.1 NCO JURO JURO ACUMULADO
9 4 y 365 .; 8 4 $2,365.84 12 365 . . 84
% 4 47 (:1 „ 3 5 9;104.5A (.62 y 47(3. 3 5
(.1:1Y y 57 1 V.07„01 (1;2 y 577 „ 37
'1i ~ y 6E36.94 (1 .09.58 $ 2,686.94
I. 0 '14,799 .14 (1:.12„20 (12. , (..>") ,, 14
$4,9:1.4.03 $114.88 9;2 7 9 1. 4 ,, 0 3
,0 31 i!.) 6 $117.63 'I 3 , 0 3 1 t. 6 6
1. 5 2 1 9;120.45 (.6 3 , 152.11

17
TROCA DADOS E RECALCULA? (1=SIM, (:a =NA0)? 1
PRINCIPAL? 1000
TAXA DE JURO NOMINAL (%)? 8
NUMERO DE DEPOSITOS/RETIRADAS POR ANO? 12
VALOR DE CADA DEPOSITO/RETIRADA? 50
INICIA EM QUAL ANO?
FINALIZA A IMPRESSAO EM UL ANO? 1

TABELA DE JURO RECEBIDO


PRINCIPAL 1) 1000 A 8 % NOMINAL I } {1 I i. ANOS
DEPOSITOS/RETIRADAS REGULARES $ 50 12 VEZES POR ANO
TAXA DE JURO EFETIVA DI 8.3227 POR ANO

N. 0 13 1) A N C 0 JURO JURO ACUMULADO

:1. 11,056.70 $6.70 $6.70


$1,113.78 $7.08 $13.78
11,171.24 $7.46 (121.24
$1,229.08 17.84 1,29.08
$1,287.31 $8.23 137.31
11,345.94 $8.62 $45.94
11,404.95 c19.01 154.95
$1,464.36 $9.41 $64.36
$1,524.16 $9.81 5,74.16
11,584.37 $10.20 1,84.37
$1,644.97 $10.61 (L94.97
$1,705,99 111.01 1105,99

TROCA DADOS E RECALCULA? 41=SIM, 0=NA0)? 1

PRINCIPAL? 1000
TAXA DE JURO NOMINAL (%)? 8
NUMERO DE DEPOSITOS/RETIRADAS POI ANO? 4
VALOR DE CADA DEPOSITO/RETIRADA? -150
INICIA EM QUAL ANO?
FINALIZA A IMPRESSAO EM QUE ANO? 1

TABELA DE JURO RECEBIDO


PRINCIPAL % 1.000 A 8 % NOMINAL POR 1 ANOS
DEPOSITOS/RETIRADAS REGULARES $150 4 VI ZES POR AU()
TAXA DE JURO EFETIVA DE 8.3227 % p OR ANO

ANO BALANCO JURO JURO ACUMULADO

1. 1870.17 $20.17 12.0 1. 7


1

$737.71 $17.54 c.r) 1:..3 7 7 J.


1602.58 $14.87 2. t:.)
$464.71 $12.14 .6 6 4 7 1.
(

TR OCA DADOS E RECALCULA? (1=SIM, 0=NA0)? -0

LISTAGEM DO PROGRAMA

10 CLS
20 PRINT " TABELA DE JURO RECEBIDO"
30 D E F D B I... A-Z
40 DEFSNG J , K
50 PRtNT
59 REM - DECLARACOES 60 A 260 REQUEREM ENTRADA
60 PRINT "PRINCIPAL"

18
70 INPUT P
80 PRINT " TAXA DE JURO NOMINAL 00";
90 INPUT I
nn
7 7 REM .... CONVERTE PORCENTAGEM PARA is
100 I=I/100
110 INPUT "NUMERO DE DEPOSITOS/RETIRADAS POR ANO";Ni
120 IFNi0ABS(INT(Ni))THEN PRINT "FAVOR USAR VALOR POSITIVO
INTEIRO"GOT0110
129 REM — NAO PERGUNTA POR VALOR SE A FREQUENCIA FOR ZERO
130 IF Ni=0 THEN 190
138 REM — DEPOSITOS DIGITADOS COMO NUMEROS POSITIVOS
139 REM — RETIRADAS DIGITADAS COMO NUMEROS NEGATIVOS
140 PRINT "VALOR DE CADA DEPOSITO/RETIRADA";
150 INPUT R
159 REM — JURO COMPOSTO DIARIAMENTE
160 N=360
169 REM — IMPRIME A CADA DEPOSITO/RETIRADA
170 L2=Ni
180 GOTO •30
190 PRINT "NUMERO DE COMPOSICOES POR ANO";
200 INPUT N
210 Ni=0
219 REM — IMPRIME QUATRO VEZES POR AN()
220 L2=4
230 PRINT "INICIA EM QUAL. ANO"
240 INPUT X
250 PRINT "FINALIZA A IMPRESSAO EM QUE ANO";
260 INPUT Y
269 REM — INICIA A IMPRESSAO NO INICIO DO ANO
270 X=INT(X)
279 REM — INICIO DO PROCESSO PARA TOTAIS
280 BO=P
290 ii=0
300 12=0
310 13=0
320 K=66
330 Pi=4
340 FOR J0=1 TO INT(Y)44
349 REM — INICIA IMPRESSAO
350 IF JO<X THEN 520
359 REM — TESTE DE •FIM•DE PAGINA
360 IF K < 55 THEN 510
368 REM — PARA A PROXIMA PAGINA (PAG. = 66 LINHAS)
370 FOR i< :1.:::K TO 66
380 PRINT
39(3 NEXT Ki
400 K=6
409 REM — IMPRIME CABECALHOS
410 PRINT " TABELA DE JURO RECEBIDO"
420 PRINT " PRINCIPAL 11";P;" A";I*100;"% NOMINAL. POR"; Y;
ff

429 REM — PULA CABECALHO DE DEPOSITO/RETIRADA SE NAO HOUVER


430 IF N1=0 THEN 460
441) PRINT "DEPOSITOS/RETIRADAS REGULARES 1"0;" "01;" VEZES POR ANO"
449 REM — K CON TA NUM . DE L I NHAS USADAS POR PAGINA
450 K=K+1
460 PRINT " TAXA DE JURO EFETIVA DE";
470 PRINTUSING"###.0000";100*((l+I/N)£N-1);PRINT "% POR ANO"
480 PRINT
491) PRINT "ANO";TAB(14);"BALANCO","JURO","JURO ACUMULADO"
499 REM CALCULO DO JURO"
500 PRINT

19
5C)9 REM - IMPRIME NUMERO DO AN()
5i0 PRINTUSING"0140"; JO;
520 1...1. 1.
530 N2=1
540 P2=i
550 FOR J1.=1 TO N
rru o
J.J7 REM - MAIS ALGUMA ENTRADA/SAIDA NO ANO?
560 IF N2)Ni THEN 600
569 REM - DEVE FAZER DEPOSITO/RETIRADA?
570 IF N2/N1.›J1/N THEN .600
.579 REM - CALCUL() DE N()V() I: AL
500 130430+1
589 REM - CONTAR DEPOSITOS/RETIRADAS NO (NO
590 N2=N2+i
600 132=B0*(1.+I/N)
609 REM - II =VALOR DO JURO A CADA COMPOSICAO
i0 Ii432-130
61.9 REM - I3=VALOR DO JURO ACUMULADO ENTRE INTERVALOS
620 13=13+Ii
(.1r)
Oc7 REM - :I: }'-1'01'i Di JURO ACUMULADO ATE A DATA
630 12=12+I1.
640 IF P2/Pi›Ji/N THEN 600
670 P2 =P2+1.
6/9 REM - ANO PARA INICIAR IMPRESSAO 2
680 IF JO<X THEN 760
689 REM - DEVE IMPRIMIR LINHA '?
690 IF J1./N<1...1./L2 THEN 760
700 Li=Li+i
705 REM - DECLARACAO PRINTUSING USADA PARA ALIN•AR
706 REM - VALORES ARREDONDADOS NO ULTIMO CENTAVO
7i0 PRINTUSING"%$###0,0000,##00.00";B2,I3,I2
730 13::::()
740 K=K+i
747 REM - TRES BRANCOS PARA ALINHAR TABELA
748 REM - PORQUE 0 NUMERO DO ANO VAI NO PRIMEIRO CALCUL°
749 REM - DE CODA ON()
750 PRINT" ";
760 B0432
769 REM - Ut'0 HA MAIS LINHAS NO ULTIMO NO
770 IF JO+Ji/N-1)=Y THEN 830
780 NEXT J I
789 REM - INICIA IMP•ESSAO?
790 IF JO < X THEN 820
800 PRINT
810 K=K+1.
820 NEXT JO
830 PRINT
839 REM - REINICIA OU FINALIZA PROGRAMA?
840 PRINT "TROCA D•DOS E RECALCULA? (I=SIM, 0=NA0)";
850 INPUT Z
860 PRINT
070 IF 7=1. THEN 50
880 END

20
Taxa de Depreciacgo

Este programa calcula a taxa de depreciacao anual de um investimento. Deve-se fornecer o preco original do item, seu
preco de revenda e a idade em anos.
A taxa de depreciac-do é calculada segundo a formula:

1/idade
taxa de depreciacao 1 preco de revenda
prep original

Exemplo:

Andressa comprou seu carro por $4933.76 e o vendeu por $ 2400.00 tres anos mais tarde. Qual foi a taxa de
depreciacao real?

EXECUQAO:
TAXA DE DEPRECIACAO

PRECO OR 4933.76
PRECO DE REVENDA? 2400
ANDS? 3
TAXA DE DEPRECIACAO = 21.254 %
MATS DADOS (1=SIM, 0=NA0)? 0
LISTAGEM DO PROGRAMA
10 CLS
20 PRINT "TAXA DE DEPRECIACAO"
30 DEFDBL
40 PRINT
50 PRINT "PRECO OR
60 INPUT P
70 PRINT "PRECO DE REVENDA";
00 INPUT T
90 PRINT "ANOS";
100 INPUT "Y"
109 REM - CALCUL() DA TAXA DE DEPRECIACAO PELA FORMULA, CONV.PARA
PERCENTUAL
110 D=1.00*(1-(T/P)E(1/Y))
119 REM - ARREDONDA, IMPRIME
120 PRINT "TAXA DE DEPRECIACAO =";INT(1000*D+.5)/1000;"%"
130 PRINT
139 REM - REINICIA OU FINALIZA 0 PROBRAMA?
140 PRINT "MAIS DADOS (1=SI3'I, 0=NA0)";
150 INPUT X
160 IF X::::1 THEN 40
170 END

21
Valor Depreciado

Este programa calcula o valor depreciado apos urn dado numero de anos de urn investimento. Deve-se fornecer o preco
original do investimento, a taxa de depreciacao e os anos de depreciacao.
0 valor depreciado é calculado pela seguinte formula:

D= P • i • (1 - i) 17

onde: D= valor depreciado


p = preco original
i = taxa de depreciacao
Y = anos de depreciacao

Exemplos:

Ines comprou seu carro por $4933.76. 0 modelo de seu carro depreciou na taxa anual de 21%. Qual o
montante da depreciacdo em cada urn dos ties primeiros anos apos a compra?
Ela tambem deseja saber sobre o som de seu carro. Ele custou $ 155.00 dois anos atras e sofreu depreciacao de
22% ao ano. De quanto seu valor decresceu no terceiro ano?

EXECUcAO.
VALOR DEPRECIADO

PRECO ORIGINAL? 4933.76


TAXA DE DEPRECIACAO (%)? 21
ACUL() PARA 0 ITEM) - -
(ENT RE ANO=0 WJANDO NA() DESEJAR MAIS Cl
ANO?
DEPRECIACAO = % 1036.09

ANO? 2
DEPRECIACAO = % 818.51

AN O? 3
DEPRECIACAO 9; 646 ., 62

AN(? 0
MATS DADOS (1=SIM, 0=NA0)? d.

PRECO ORIGINAL? 155


TAXA DE DEPRECIACAO (%)?
-(ENTRE ANO=0 (WAND° NAO DESEJAR MA ]:5 CALCUL() P AR A () ITEM)--
ANO? 3
DEPRECIACAO = % 20.75

AN O? 0
MAIS DADOS (1=SM, 0=NA()? C)

LISTAGEM DO PROGRAMA
JO CLS
20 PRINT "VALOR DEPRECIADO"
30 DEEDBL A-Z

22
40 PRINT
50 PRINT " PRECO ORIGINAL";
60 INPUT P
70 PRINT "TAXA DE DEPRECIACAO (%)";
00 INPUT I
89 REM - CONVERTE PERCENTUAL PARA DECIMAL
90 .1=1/100
100 PRINT "--(ENTRE ANO=0 (WAND() MAO DESEJAR MAIS CALCULO PARA 0
ITEM)--"
i10 PRINT "ANO"
120 INPUT Y
129 REM - DEVE CALCULAR PARA ESSE ANO?
130 IF Y=0 THEN 160
139 REM - CALCULA VALOR DEPRECIADO PELA FORMULA
140 D=P*I*(1-I) C. (Y-1)
149 REM - ARREDONDA 0 ULTIMO CENTAVO, IMPRIME
150 PRINT "DEPRECIACAO = $";
i55 PRINTUSING"$$0#00,0000,0000,0000.#0"0
160 PRINT
169 REM - RETORNA PARA PROXIMO NUMERO DE ANO
170 GOTO 110
179 RIM - REINICIA OU FINALIZA 0 PROGRAMA
180 PRINT "MATS DADOS (1•SEM, (:1=NA0)";
190 INPUT X
20(; IF X=i THEN 20
210 END

23
Valor Residual

Este programa calcula o valor residual de urn item ao termino de urn certo numero de anos. 8 necessario fomecer
a idade do item, o preco original e a taxa de depreciacao.
0 valor residual é obtido pela seguinte formula:

S= P (1 - i) Y

onde: s= valor residual


p = preco original
i = taxa de depreciacao
Y = idade em anos

Exemplos:

Qual o valor residual do carro de Ines se ele tern tres anos, ela o comprou por $ 4933.76, e ele depreciou 21%
ao ano? Qual sera o seu valor residual no ano seguinte?
0 som do carro de Ines tern 2 anos. Qual é o seu valor se ele custou $155.00 na epoca e depreciou 22% ao ano?

EXECUCAO:

VALOR RESIDUAL

PRECO l ; l i1 1? 4933.76
O
TAXA DE DEPRECIACAO (%)? 21
.(ENTRE ANO=0 ()LANDO NA() (WISER MAIS CALCUL() PARA 0 ITEM--
ANOS?
VALOR

ANOS?
VALOR 9A.,92i.„70

ANOS? 0
hAIS DADOS? (1=SIM, 0=NA0)? i.

PRECO ORIGINAL? 155


TAXA DE DEPRECIACAO (%)? 22
(ENTRE ANO=0 (WANDO NA() QUISER MATS CALCUL° PARA () ITEM-
ANOS? 2
VALOR = %94.30

ANOS? 0
MATS DADOS? (1=STM, 0=NA0)? C)

Lic:JAGCM DO PROGRAMA

10 CLS
20 PRINT "VALOR RESIDUAL"
30 DEEDBL
40 PRINT
50 PRINT "PRECO ORIGINAL";
60 INPUT P
70 PRINT"TAXA DE DEPRECIACAO (%)

24
80 INPUT I
84 REM - CONVER SAO DA TAXA PARA DECIMAL.
85 REM - PARA USO NOS CALCULOS
86 ID::::I/ J.00
90 PR INT "-- ( ENTRE ANON. 0 QUANDO NAO QUISER MAI S CAL(:;UL() P ARA 0 II EM
If
)
100 PR INT "ANOS" 7
110 INPUT Y
119 REM .... CALCULAR OUTR 0 VALOR RESIDUAL. '?
120 IF Y=0 THEN 140
1.20 REM - CALCULA .0 VALOR RESIDUAL PELA FORMULA ,. ARREDONDA 7 I MP R I ME
1.30 PR INT "VALOR = 1"
135 PR INTUSING"Mittittitt , tittitit ,, MIMS , Olittit . MI" ; R0* ( J.-ID ) EY
J. 40 P,R INT
149 REM - RETORNA PARA OUTR AN()
150 GOTO 100
J. t:59 REM - REINICIA CU TERM] NA PROGRAMA?
:1.60 PR INT "MAIS DADOS ( 1.=SIM ,. (: =NAO )" ;
J. /0 INPUT X
180 IF X= 1 THEN 20
190 END

25
Letra de Cambio

Este programa calcula o valor do juro e o valor liquid° de uma letra de cambio. Deve-se prover o valor futuro do
papel, a taxa de juros e o numero de dias de maturacao.
As formulas usadas para calcular o juro e o custo sao as seguintes:

juro - T • D N
100 • 360

custo = T- juro
onde: T = valor futuro total
D = taxa de juro
N = numero de dias de maturacao

Exemplo:

Uma companhia adquire $625000.00 em letras durante 60 dias a 5.4%. Qual sera o juro e o custo?

EXECUcAO:
LETRA DE CAMBIO

VALOR FUTURO? 625000


TAXA DE JURO (%)? 5.4
Li 1.i DE -MATURACAO? 60
JURO = %5
*7 625.00
CUSTO = (.6619y 375.00

MATS DADOS? (1=SIM, (.1=NA0)? 0

LISTAGEM DO PROGRAMA

10 CLS
20 PRINT "LETRA DE CAMBIO"
0 DEFDBL ► -7
40 PRINT
49 REM - DECLARACOES 50 A ii0 PEDEM ENTRADA DE DA DOS
50 PRINT "VALOR FUTURO";
60 INPUT I
70 PRINT "TAXA DE JURO (%)";
80 INPUT D
89 REM - CONVERTE PORCENTAGEM PAR• DECIMAL
90 D=D/ 100 •
100 PRINT "DIAS DE MATURACAO";
110 INPUT N
ii9 REM - CALCULA 0 JUR°, IMPRIME
120 Di=T*D*N/360
i25 PUI="%%0000,ti000,0000,0P00.00"
130 PRINT "JURO = ".;PRINTUSINGPU$;D1
139 REM - CALCULA CUSTO, IMPRIME
140 PRINT "(;UST = "PRINTUSINGPIAuT-D1

26
149 REM — L INHA EM BR ANC SEP AR A DA DOS DE PERGUNTA
150 PRINT
ff?9 REM — RE IN ICIO Oh r I M DE PROGRAMA? ENTR ADA
160 PRINT "MA IS DADOB? (i =SIM (:a=NAO )" ;
170 INPUT X
18C) IF X=1 THEN 40
190 END

27
Ca!cub do Principal em Emprestimo

Este programa calcula o valor initial tornado emprestado. Este valor é dependente da taxa de juro, do valor das
prestacoes constantes, do numero de pagamentos por ano e do prazo do emprestimo.
0 calculo é baseado na formula seguinte:

P= R • N• 1 1
(
i (1 + il N) N.Y )

onde: P = principal
R = valor de cada prestacao
i -7. taxa de juro anual
N = numero de pagamentos por ano
y = numero de anos

Exemplos:

Martha concordou em pagar $250.00 a cada dois meses durante ties anos, a fim de saldar urn emprestimo a 20%
de juro. Qual o montante do emprestimo?
Antonio executa pagamentos de $180.00 por mes para pagar urn emprestimo. Se ele vai ficar quatro anos e meio
pagando e a companhia cobra 16% de juro, qual o valor do emprestimo assumido por ele?

EXECUcAO:
PRINCIPAL EM EMPRESTIMO

PRESTACAO? 250
PRAZO EM ANOS? 3
TAXA DE JURO ANUAL (%)? 20
NUMERO DE PRESTACOES F? OR ANO? 6
PRINCIPAL = %3,343.44

MAIS DADOS? (1=SIM, 0=NA0)2 i

PRESTACAO? 180
PRAZO EM ANUS? 4.5
TAXA DE JURO ANLJAL (")? 16
NUMER0 DE PRESTACOES POR ANO? 1.2
PR I NC IP AL = %6,897.54

MAIS DADOS? (1=SIM, 0=NA0)? 0

L I STAGEM DO r ROGR AMA

10 CLS
20 PRINT "PRINCIPAL EM EMPRESTIMO"
30 DEEDBL A—Z
40 PRINT
49 REM — DECLARACOES 30 A 100 REOUEREM ENTRADA
50 PRINT "PRESTACAO";
60 INPUT R
70 PRINT "PRAZO EM ANUS";
80 INPUT Y
90 PRINT "TAXA DE JURO ANUAL (%)".;
100 INPUT I

28
104 REM — JURO CONVERTIDO P AR A DECIMAL PARA OS
105 REM — CALCULOS
106 ID-.:I/100
110 PRINT "NUMERO DL r-' RI r' ()R ANO";
120 INPUT N
129 REM — CALCUL() DO VALOR PRINCIPAL PELA FORMULA
1.301 P=R*N*(1-1/(ID/N+1)E(N*Y))/ID
139 REM — ARREDONDA 0 ULTIMO CENTAVO, IMPRIME
140 PRINT "PRINCIPAL = ";
145 PRINTUSING"11)0000,#000,0000,00#0.00"; P
149 REM — LINHA EM BRANCO SEPARA DADOS DE PERGUNTA
150 PRINT
159 REM — RENICIO OU FIM DE PROGRAMA?
160 PRINT "MAIS DADOS? (1=SIM, 0=NA0)";
170 INPUT X
1.80 IF X=1 THEN 40
190 END

OPQOES

Ern alguns casos pode ser mais conveniente entrar-se o prazo em anos e meses em vez de anos apenas. As
alteracOes no programa sdo listadas abaixo do exemplo que segue.

Exemplo:

Qual seria o valor do emprestimo se se estivesse pagando $75.00 ao mes durante 11 meses a 3% de juro?

EXECUcAO:
PRINCIPAL EM EMPRESTIMO
PRESTACAO? 7!5
PRAM EM AMOS, MESES? 0,11
TAXA DE JURO ANUAL (Z)? 3
NUMERO DE PRESTACOES POR AN(? 12
PRINCIPAL = %812.81

MAIS DADOS? (1=6IM 0=NA0)20

LISTAGEM DO PROGRAMA
I. REM — OPCOES 70-85
10 CLS
20 PRINT "PRINCIPAL EM EMPRESTIMO"
.
n

60 INPUT R
70 PRINT "PRAZO EM ANOS, MESES" r
80 INPUT YO,M
84 REM — CALCUL() DE AMOS A PART):R DE AMOS E MESES
85 Y=(12*Y(:1-114)/12
90 PRINT "TAXA DE JURO ANUAL (%)";
n

190 END

29
Calculo de Prestageies em urn EmprOstimo

Este programa calcula o valor das prestacoes que devem ser pagas para resgatar urn emprestimo num determinado
prazo. Deve-se fornecer o valor do principal, a taxa de juro cobrada, o mimero de pagamentos por ano e o prazo em
anos. Assume-se aqui que todas as prestacoes serao iguais.
0 calculo é baseado na seguinte formula:
i • PIN
R= 1_ + - N•Y
\N

onde: R = valor da prestacao


i = taxa de juro anual
P = principal
N = numero de prestacoes por ano
Y = prazo em anos

Exemplos:

Quanto se deve pagar num emprestimo de $4000.00 a 8% se as prestacoes vencem a cada quatro meses durante
cinco anos?
Se Miguel emprestou $6500.00 a 12.5% para serem pagos num perfodo de 5 anos e meio, qual sera o valor de
cada prestacao mensal?

EX E CUPAO:
PRESTACAO EM UM EMP R EST IMO

PRAZO EM ANOS? 5
PRINCIPAL? 4000
TAXA DE JURO ANUAL (%)? 0
NUMERO DE PRESTACOES POR ANO? 4
VALOR DA PRESTACAO = %244.63

MAIS DADOS? (i=SIM, (.J=NA0)?

PRAZO EM ANDS? 5.5


PRINCIPAL? 6500
TAXA DE JURO ANUAL (%)?
NUMERO DE PRESTACOES P OR ANO? i2
VALOR DA PRESTACAO = qii36.68

MAIS DADOS? (i=SIM 0=NA0)2 0

LISTAGEM DO PROGRAMA

i0 CLS
20 PRINT "PRESTACAO EM UM EMPRESTIMO"
30 DE•DBL A—Z
40 PRINT
49 REM — DECLARACOES 50 A i20 REQUEREM ENT RADA
50 PRINT "PRAZO EM ANOS";
60 INPUT Y
70 PRINT "PRINCIPAL";
80 INPUT P
90 PRINT "TAXA DE JURO ANUAL (%)";

30
100 INPUT I
104 REM - CONVERSAO DA TAXA DE JURO PARA DECIMAL
105 REM - PARA OS CALCULOS
106 ID=I1100
1.1.0 PRINT "NUMERO DL PI,LSTACOES POR ANO";
120 INPUT N
129 REM - CALCULO DE PRESTACAO PELA FORMULA
130 R=(ID*P/N)/(1-1AID/N4.1)C(N*Y))
139 REM - ARREDONDA ULTIMO CENTAVO, IMPRIME
140 PRINT "VALOR DA PRESTACAO = ";
145 PRINTUSING"$$#000,#010,0##0,#OU#.00"0
149 REM - LIN•A EM BRANCO SEPARA DADOS DI PERGUNTA
150 PRINT
159 REM - REINICIO OU I I M DE PROGRAMA?
160 PRINT "MAIS DADOS? (1=SIM, 0=NA0)";
1.70 INPUT X
180 IF X=1 THEN 40
190 END

OPcOES

Pode ser mail conveniente entrar-se corn anos e meses em vez de anos. As modificacoes no programa estao
listadas apOs o exemplo abaixo.

Exemplo:

0 Sr. Oliveira precisa $10000.00 para comprar uma casa nova. A financiadora fomece esta quantia a uma
taxa de 14.0% para ser paga em 11 anos e 5 meses. Qual sera o valor de sua prestacao?

EXECUcAO:
PRESTACAO EM UM EMPRESTIMO
PRAZO EM AMOS, MESES? 11,5
PRINCIPAL? 10000
TAXA DE JURO ANUAL (%)? 14
NUMERO DE PRESTACOES POR ANO" 12
VALOR DA PRESTACAO = $146.59
MAIS DADOS? (1=SIM, 0=NA0)? 0
LISTAGEM DO PROGRAMA
I REM - OPCOES 50•65
10 CLS
20 PRINT "PRESTACAO EM UMEMPRESTIMO"
M'

It

49 REM - DECLARACOES 50 A 1.20 REQUEREM ENTRADA


50 PRINT "PRAZO EM ANOS, MESES";
60 INPUT YO r M
64 REM - CALCULA ANOS A PARTIR DE ANOS E ME ES
65 Y3::(12*Y0+M)/12
70 PRINT "PRINCIPAL";

M
90 END

31
Ultima Prestacgo de urn EmprOstimo

Este programa calcula o pagamento final de urn emprestimo. Esse Ultimo pagamento completa a amortizacdo
no tellnino do prazo. Deve-se fornecer o montante do emprestimo, o valor de cada prestacao, a taxa de juro usada, o
namero de prestacoes por ano e o prazo de pagamento.
0 valor do Ultimo pagamento normalmente é diferente do valor de cada prestacao. Ele é uma prestacao "baliro"
se o seu valor for maior que o das prestacOes normals. Ele é necessario se, aplicando o valor das prestacoes como
ultimo pagamento, ainda houver urn residual. Para saldar o emprestimo no final do prazo, este residual é somado na
Ultima prestacao e determina entao o seu valor.
Por outro lado, o valor do Ultimo pagamento pode ser menor que o das prestacOes normals se, aplicando-se o
valor da prestacao como prestacao final, der urn saldo negativo. Neste caso, a Ultima prestacdo deve ser ajustada para
baixo. Ent5o, o valor da Ultima prestacao sera o da prestacao normal, menos este valor da diferenca.

valor da Ultima prestacao = prestacao normal + resultado hipotetico apos N • Y prestacties normals

onde: N = numero de pagamentos por ano


y = ntimero de anos

Exemplos:

Luiz emprestou $6000.00 de seu pai a 5% para as despesas do colegio. Se ele paga $1000.00 anualmente
durante sete anos, qual sera o Ultimo pagamento?
Luiz emprestou $1150.00 a 8% de juro anual a ser pago corn prestacOes de $ 75.00 por mes. Urn ano e doffs
meses mais tarde, Luiz decide it para a Europa. Quanto ele deve pagar no mes seguinte para saldar o seu emprestimo?

E X ECUcAO:
ULTIMA PRESTACAO DE

VALOR DA PRESTACAO? 1000


PRINCIPAL? 6000
PRAZO EM ANOS? 7
TAXA DE JURO ANUAL (%)? 1:r

ULTIMA PRESTACAO = $1,300.59

MAIS DADOS? (1—SIM, 0=NAO)

VALOR DA PRESTACAO? 75
PRINCIPAL? 1150
PRA () EM ANOS? 1.17
TAXA DE JURO ANUAI... ("X)? 8
,
ULTIMA PRESTACAO = %240.38

i11 •i DADOS? (i—SIM, 0=NAO) 0

LISTAGEM DO PROGRAMA

JO CLS
HM
20 PRINT "ULTIMA PRESTACAO DE
30 DEFDBL A —Z
40 DEFSNG J

32
50 PRINT
59 REM - DECLARACOES 60 A 160 REQUEREM ENTRADA
60 PRINT "VALOR DA PRESTACAO";
70 INPUT R
00 PRINT "PRINCIPAL";
90 INPUT P
100 PRINT "PRAZ O EM ANOS.

ii0 INPUT Y
120 PRINT "TAXA DE JURO ANUAL (7.)";
130 INPUT I
139 REM - CONVERSAO DA TAXA DE PORCENTAGEM PARA DECIMAL
140 1=1/100
150 PRINT "NUMERO DE PRESTACOES POR ANO";
160 INPUT N
170 BO=P
170 REM - CALCULA TODAS AS PRESTACOES, COMPARA COM ULTIMA USANDO R
180 FOR Ji=i TO N*Y
18.9 REM - ARREDONDA ULTIMO CENTAVO DO JURO PA( O
190 Ii=INT(030*I/N)*100+.5)/100
199 REM - CALCULA 0 VALOR AMORTIZADO EM CADA PRESTACAO
200 A=R-Ii
209 REM - 0 RESTO CONTINUA DECRESCENDO A CADA PAGAMENTO
210 80=130-A
220 NEXT Ji
229 REM - CALCULA ULTIMA PRESTACAO, ARREDONDA, IMPRIME
230 PRINT "ULTIMA PRESTACAO = $";
235 PRINTUSING"$$####,000#0110##,000#.##"; R-1.130
240 PRINT
249 REM - REINICIO OU FIM DE PROGRAMA?
250 PRINT "MAIS DADOS? (I:.:: AIM 0=NA0)";
260 INPUT X
270 IF X=1 THEN 20
280 END

OPPOES

0 programa acima permite o prazo de pagamento apenas em anos. Pode ser mais conveniente entrar-se corn anos
e meses. As mudancas necessarias no programa seguem abaixo do exemplo.

Exemplo:

Pagando-se $40.00 por mes em 2 anos e 3 meses por um emprestimo de $1200.00 a 7.5%, qual sera o valor
da ilitima prestacao?

EXECUPAO:
ULTIMA PRESTACAO DE UM EMPRESTIMO

VALOR DA PRESTACAO? 40
PRINCIPAL? 1200
PRAM FM ANOS I MESES? 2,3
TAXA DE JURO ANUAL (7.)? 7.5
NUMERO DE PRESTACOES POR ANO? 12
ULTIMA PRESTACAO = $287.36
MAIS DADOS? (1-SIM, 0=NA0)?0

33
LISTAGEM DO PROGRAMA
1. REM - OPCOES i00-i15
1.0 CLS
20 PRINT "ULTIMA PRESTACAO DE UM EMPRESTIMO"
a

.
$8

90 INPUT P
100 PRINT "PRAM EM ANOS E MESES";
110 INPUT YO,M
114 REM - CAL DE AMOS A PARTIR DE ANOS E MESES
li5 Y=(12*Y04-M)/i2
,0";
120 PRINT "TAA DE jOkb ANUAL ('
.
:
:
1280 END

34
Valor Restante de urn Emprestimo

Este programa calcula o valor restante no pagamento de um emprestimo apes urn filmier° especificado de prestacoes.
—E necessario fornecer o valor de cada prestacao, o nitmero de prestacoes per ano, o valor do principal, a taxa de
juro anual, e o nfimero da ultima prestacffo, apps a qual deve ser calculado o restante.
0 valor do restante é calculado segundo a formula:

valor restante .7. principal - valor amortizado apps N • (V - 1) + N1 prestacoes

onde: N = niimero de prestacoes por ano


y = ano do calculo do valor restante
N1 = flamer° da prestacffo no ano Y, para calcular o restante

Exemplo:

Celia emprestou $ 8000.00 a 17.2% de juros ao ano. Sua prestagffo é de $200.00 por me's. Se ela acaba de pagar
a decima prestacao do quarto ano, quanta ela ainda deve?

EXECUQAO:
VALOR.RESTANTE DE UM EMPRESTIMO
VALOR DA PRESTACAO? •00
PRINCIPAL? 8000
NUMERO DE PRE; TACOES POR AN O?
TAXA DE JURO ANUAL (%)? 17.2
ULTIMA PRESTACAO PAGA (NUMERO ANO)? 10,4
VALOR RESTANTE = ¶2,496.17
MAIS DADOS? (i=SIM, 0=NA0)? 0
LISTAGEM DO P ROGR AMA
10 CLS
20 PRINT "VALOR RESTANTE DE UM EMPRESTIMO"
30 DEFDBL A-7
40 DEFSNG J
50 PRINT
59 REM — DECLARACOES 60 A 160 REQUEREM ENTRADA
60 PRINT "VALOR DA PRESTACAO";
70 INPUT R
so PRINT "PRINCIPAL";
90 INPUT P
100 PRINT "NUMERO DE PRESTACOES POR ANO";
110 INPUT P
120 PRINT "TAXA DE JURO ANUAL (%)";
130 INPUT I
139 REM — CONVERTE DE PORCENTAGEM PAI,ZA DECIMAL
149 REM — ENTRA PRESTACAO DENTRO DO ANO, COM NiOaN
150 PRINT "UI...TIMA PRESTACAO PAGA (NUMERO x ANO)";
160 INPUT Ni,Y
169 INICIALIZA VALOR RESTANTE
170
179 LOOP ACHA VALOR ATE A DATA
180 FOR J1 TO N*(Y-1)4-N1
189 REM — CALCULA JURO PAGO A CADA PRESTACAO
1.90 I1.=INT(8(:i*I/N)*100+.5)/100
199 REM — CALCULA VALOR AMORTIZADO A CADA PRESTACAO
00 A=R—I1
209 REM — CALCULA VALOR RESTANTE DO PRINCIPAL
210 BO=B0 —A
2 20 NEXT J.
229 REM — ARREDONDA E IMPRIME
230 PRINT "VALOR RESTANTE • ";
235 PRINTUSING"%%00007 #000,0000,40400.RP'
240 PRINT
249 REM — REINICIO OU F' 1:H DE PROGRAMA?
250 PRINT "MAIS DADOS? (1=SIM, 0=NA0)";
260 INPUT X
270 IF X=1 THEN 20
280 END

OPcOES

Pode-se especificar o numero da ultima prestacao como numero seqUencial, em vez de numero de prestacao
dentro do ano. Por exemplo, quando sdo feitos 4 pagamentos por ano, o pagamento 3 do ano 3 poderia ser entrado
como prestacao numero 11. As mudancas necessarias no programa estao listadas seguindo o exemplo abaixo.

Exemplo:

Joao realizou dez pagamentos quadrimestrais de $ 550.00 num emprestimo de $6000.00 corn taxa de juro de
16% ao ano. Qual o valor restante?

EX E CUQA O :
VALOR RESTANTE DE UM EMPRESTIMO

VALOR DA PRESTACAO? 550


PRINCIPAL? 6000
NUMERO DE PRESTACOES POR ANO? 4
TAXA DE JURO ANUAL (%)? 16
NUMERO DE PRESTACOES PAGAS? 10
VALOR RESTANTE • 9;2,278.09

MAIS DADOS? (1=SIM, (7=NA0)? C)

LISTAGEM DO PROGRAMA

1 REM — OPCOES 149-160,180


10 CLS
20 PRINT "VALOR RESTANTE DE UM EMPRESTIMO"
11

140 =I/100
1.49 REM - DIGITA NUMERO DE PRESTACOES ATE A DATA
150 PRINT "NUMERO DE PRESTACOES PAGAS";
160 INPUT Ni

36
169 REM - INICIALIZA VALOR RESTANTE
170 130::::P
179 REM - LOOP ACHA VALOR ATE A DATA
t80 FOR Ji=1 TO Ni,
J.89 REM - CALCUI...A „PAO PAGO A CADA PRESTACAO
re

280 E:ND

37
Prazo de Emprestimo

Este programa calcula o prazo necessario para pagar urn emprestimo. Deve-se especificar o valor do emprestimo, o
numero de prestacOes por ano, o valor de cada prestacao e a taxa de juro usada. Assume-se que todas as prestacoes
sdo iguais.
0 prazo é calculado baseando-se na seguinte formula:

P•i\
log k(1— N. R I 1
Y
log (1+ N

onde: Y = prazo em anos


P = principal
i tr- taxa de juro anual
N = numero de prestaciies por ano
R = valor de cada prestacao

Exemplos:

Qual deve ser o prazo de pagamento num emprestimo de $20000.00 a 18% se as prestacOes quadrimestrais
sao de $1000.00?
Sueli tomou emprestado $12669.00 a 16.8%. A cada dois meses ela paga uma prestacd'o de $512.34. Qual
o prazo de resgate desse emprestimo?

EXECUQAO:

PRAZO DE EMPRESTIMO

VALOR DA PRESTACAO? i000


PRINCIPAL? 20000
TAXA DE JURO ANUAL (%)? 1. f:3
NUMERO DE PRESTACOES POW ANO? 4
PRAZO = 1.3.1 ANOS

MATS DADOS? (1=SIM, 0=NA0)? 1.

VALOR DA PRESTACAO? 5i2.34


PRINCIPAL? i2669
TAXA DE JURO ANUAL (x)? i6.8
NUMERO DE PRESTACOES 1'' OR ONO''
PRAZO = 7.1. ANON}

MA'S DADOS? (i=SIM, 0=NA0)? 0

LISTAGEM 1)0 PROGRAMA

10 CLS
20. PRINT "PRAZO DE EMPRESTIMO"
DEFDOL A—Z
40 PRINT
49 REM — DECLARACOES 50 A i20 REQUEREM ENTRADA
5C) PRINT "VALOR DA PRESTACAO";
60 INPUT R
70 PRINT "PRINCIPAL";
80 INPUT P

38
90 PRINT "TAXA DE JURO ANUAL (%)";
100 INPUT I
104 REM — TAXA CONVERTIDA DI PORCENTAGEM PARA DECIMAL PARA CALCULOS
106 ID=I/100
110 PRINT "NUMER0 1)1 PRESTACOES P OR ANO";
120 INPUT N
129 REM — CALCULA PRAZO EM ANDS PELA FORMULA
1.30 Y=—(L00(1—(P*ID)/(N*R))/(LOG(itiP/N)*N))
139 REM — ARREbONbA ULTIMO CENTAVO r IMPiRiME
140 PRINT "PRAZO =";INT(Y*10.10..5)/10;"ANOS"
150 PRINT
159 REM — REINICIO OU FIM DE PROGRAMA?
1.60 PRINT "MAIS DADOS? (1=SIM, 0=NA0)";
170 INPUT X
180 IF X=1 THEN 40
190 END

OP cOES
E possivel calcular o prazo de pagamento em meses e anos em vez de anos apenas. Para isto, faca as alteracoes
no programa que seguem abaixo do exemplo.

Exemplo:

Dirce tomou emprestado urn valor de $8000.00 a 7.5%. Sua prestacffo é de $150.00 por mes. Quanto ela
demorard para saldar o emprestimo?

EX ECU PAO:
PRAZO DE EMPRESTIMO
VALOR DA PRESTACAO? 150
PRINCIPAL? 8000
TAXA DE JURO ANUAL (%)? 7.5
NUMERO DE PRESTACOES POR ANO? 12
PRAZO = ANUS, 5 MESES
MAIS DADOS? (1=SIM, 0=NA0)? 0
LISTAGEM DO PROGRAMA

i REM — OPCOES 134-140


10 CLS
20 PRINT "PRAZO DE EMPRESTIMO"

1130 Y=—(LOG(1—(P*ID)/(N*R))/(1...OG(14.ID/N)*N))
1

134 s — CALCULO DE MESES E AMOS A PARTIR DE ANOS


i
135 M=INT(Y*124..5)
436 YO=INT(M/i2)
M=M—YO*12
ie REM — SAI RESULTADO
i '
l
II140 PRINT "PRAZO ="0.0.4"ANOS,";M;"MESES"
150 PRINT

190 END

39
Taxa de Juro Anual em EmprOstimo

Este programa calcula a taxa de juro usada para calculo de emprestimo. Para o calculo dessa taxa deve-se fornecer o
valor do emprestimo, o valor de cada prestacao, o mlmero de prestacOes por ano e o prazo.
A taxa de juro é calculada usando o seguinte metodo de aproximacedo:

1) "Chute" uma taxa ao acaso


Primeiro palpite é 0

2) Calcule a prestacao usando a taxa de juro "chutada":

i • PIN
1 - (1 + N•Y
Arredonde R 1

3) Se a prestacao calculada for igual a prestacao real, a taxa de juro "chutada" sera aproximadamente
igual a real.

4) Caso contrario, guarde a taxa "chutada" e calcule outra nova:

i2 =
1+ se R I < R
i = i ± I (i i2 )12I
- se R I > R
5) Volte a 2

onde: i = taxa de juro


i2 = taxa de juro previa
R = prestacao digitada
R1 = prestacao calculada
P = principal
N = riiimero de prestacoes por ano
Y = numero de anos

Exemplos:

Chita emprestou $ 3000.00 de seu amigo Jorge, concordando em pagar $400.00 a cada quatro meses por doffs
anos. Qual foi a taxa de juro que vigorou?
Para ressarcir um emprestimo de $ 10000.00, Joao vai pagar mensalmente $120.00 por 9 anos e meio. Qual a
taxa de juro nessa transacdo?

EXECUcAO:
TAXA DE JURO ANUAL EM EMPRESTIMO

VALOR DA PRESTACAO? 400


PRAZO EM iNOS? 2
PRI CIP 3000
NUMERO DE PRESTACOES POI ANO? 4
TAXA DE JURO AN1JAL = 5.82886 %
MATS DADOS? (i=SIM, 0=NA0)? i.

VALOR DA PR ES TACAO? 120

40
PRAZO EM ANDS? 9.5
PRINCIPAL? 10000
NUMERO DE PRESTACOES POR ANO? 12
TAXA DE JURO ANIJAI.. = 6.93286 %
MAIS DADOS? (1•SIM, (:1=NA0)? 0
LISTAGEM DO PROGRAMA
10 CLS
20 PRINT "TAXA DE JURO ANUAL EM EMPRESTIMO"
30 PRINT
3() REM — DECLARACOES 40 A 1.1.0 REQUEREM ENTRADA
40 PRINT "VALOR DA PRESTACAO";
50 INPUT R
60 PRINT "PRAZO EM ANOS";
70 INPUT Y
BO PRINT "PRINCIPAL"n
90 INPUT P
100 PRINT "NUMERO DE PRESTACOES POR ANO";
110 INPUT N
119 REM — TAXA DE JURO ARBITRADA (1(:l%) PARA INICIAR () PI OCESS°
120 i=10
129 REM — 12= ULTIMO PALPITE OU ESTIMATIVA UNICE) COM 0)
1.30 12=0
139 REM — CALCULO DA PRESTACAO USANDO TAXA ESTIMADA
140 Ri=(I*P/N)/(1-1/((I/N.44)E(N*Y)))
149 REM — ARREDONDA ULTIMO CENTAVO
150 Ri=INT(Ri*10(:l4..5)/100
159 REM — I3=NUME1 O USADO PARA CERCAR 0 CALCULO DA TAXA
160 I3=ARS(I—I2)/2
169 REM — SALVA ESSE PALPITE
170 12=1
1.78 REM — COMPARA PRESTACAO ENTRADA (P 1.) COM CALCULADA (R);
179 REM — SE IGUAIS, ULTIMO PALPITE = TAXA APROXIMADA
180 IF Ri=R THEN 240
190 IF NiR THEN 220
199 REM — Ri<R, NOVO PALPITE Dl VE SER MAIOR QUE 0 ULTIMO
200 I=I4-1.3
209 REM — RE FAZ COM NOVO PALPITE
210 GOTO 140
219 REM — Ri>R, NOVO PALPITE DEVE SER MENOR QUE 0 ULTIMO
220 1=1-13
REM — P1:::1 A7 COM NOVO PALPITE
230 GO TO 140
239 REM — CALCULA TAXA EM PROPORCAO APROPRIADA, ARREDONDA, IMPRIME
240 PRINT "TAXA DE JURO ANUAL =";
250 PRINTUSING"0000.0#000";I*100;PRINT" %"
260 PRINT
269 REM — REINICIO OU FIM DE PROGRAMA?
270 PRINT "MAIS DADOS? (1=SIM, 0=NA()";
280 INPUT X
290 IF X=1 THEN 30
300 END

OPC A O

0 programa acima permite a entrada do prazo em anos apenas. Pode ser mais conveniente digitar-se tambem
meses. As alteracOes necessarias para isso seguem-se ao exemplo na pagina seguinte.

41
Exemplo:

Se Francisco paga $ 100.00 por mes durante 11 anos e 7 meses num emprestimo de $10000.00, qua1 a taxa
de juro que esti vigorando?

EXECUQ A 0:

TAXA DE JURO ANUAL EM EMPRESTIMO

VALOR DA PRESTACAO? 100


PRAZO EM ANOS, MESES? 11 , 7
PRINCIPAL? 10000
NUMERO DE PRESTACOES POR ANO? 12
TAXA DE JURO ANUAL = 6.00243 %

MAIS DADOS? (i=SIM, 0=NA0)? C)

LISTAGEM DO PROGRAMA

i REM — OPCOES 60-75


10 CL•
20 PRINT "TAXA DE JURO ANUAL EM EMPRESTIMO"
Is

11
":)0 INPUT R
60 PRINT "PRAZO EM ANDS, MESES";
70 INPUT YO,M
74 REM - CALCULO DE ANOS A PARTIR DE ANOS E MESES
7 Y=(12*Y04.M)/12
SC) PRINT "PRINCIPAL"

7300 E I)
:

42
Tabela de Amortizagab de Emprestimo

Este programa calcula e imprime uma tabela de pagamentos para emprestimos. Essa tabela contem as seguintes
informagoes:

1) Miner° da prestacffo
2) Valor de cada prestacao paga como juro
3) Valor amortizado do total em cada prestacao
4) Valor restante do principal a cada prestacao paga
5) Juro acumulado ate o pagamento da prestacao
6) Valor da ultima prestacao

Alem disso, os totals anuais de juro pago e valor amortizado slo apresentados.
Para usar este programa deve-se fornecer o valor de cada prestacao, o prazo do emprestimo em anos, o numero
de prestacOes por ano, o montante principal e a taxa anual de juro.
A tabela é calculada da seguinte forma:

1) Milner° de prestacao = ntimero da prestacao no ano


2) Valor de juro pago a cada prestacao = valor restante • i/N

onde: i = taxa anual de juro


N = flamer° de prestactoes por ano

3) Valor amortizado em cada prestaclo = R — I

onde: R = valor de cada prestacao


I = valor de cada prestacao como juro

4) Valor restante = p IA

onde: P = principal
XA = soma dos valores parciais amortizados ate a data

5) Juro acumulado = EI

onde: ' II = soma dos valores de juro pagos ate a data.

6) Valor da ultima prestacao = R + (p _ R • N • Y)

onde: R = valor da prestacao


P = principal
N = warner° de prestacoes por ano
Y = prazo em anos

Exemplo:

Davi precisa de $2100.00 para pagar contas. Sua irmff the oferece dinheiro a 6% de juro ao ano. Cora
prestacties mensais de $ 75.00 durante dois anos e meio, qual a planilha de pagamento dele?

43
EXECU cA0
TABELA DE AMORTIZACAO DE EMPRESTIMO
? S}
VALOR DA PRESTACAO? c- r J

PRAZO EM AN S? 2.5
PRINCIPAL? 2100
TAXA DE JURO ANUAL? 6
NUMERO DE PRESTACOES P OR ANO? 12
INICIO DA IMPRESSi0 NO ANO? i
TABELA DE AMORTIZACAO DE EMPRESTIMO
PRINCIPAL % 2100 A 6 % POR 2.5 ANOS
VALOR DA PRESTACAO = % 75
NO. JURO AMORTIZADO BALANCO JURO ACUMULADO
1. .610.50
( $64.50 $2,035.50 $10 .50
$10.18 W.)4.82 $1,970.60 $20 .68
3 5)9.85 `165.15 $1,905.53 ¶630 .53
4 $9.53 %65.47 $1,040.06 $40 .06
•9.20 $65.00 $1,774.26 $49 .26
6 18.07 166.13 $1,700.13 $58 .13
7 $0.54 (166.46 $1,641.67 $66 .67
8 $8.21 1 66. 79 $1,574.88 $74 .80
9 $7.87 $67.13 $1,507.75 %82 . 75
1.0 $7.54 $67.46 $1,440.29 $90.9 2
11. $7.20 $67.00 $1,372.49 (197 .49
12 16.06 $68.14 $1,304.35 $104 .35
ANO TOTAIS
$104.35 $795.65
1. '3;6. c:- $60.40 11,235.87 1110.87
%6. 10 $68.02 $1,167.05 $117.05
3 $5. 04 $69.16 1. 7 0971AN $122.09
4 $5. 49 (.669.51 ¶61 Y 026„38 1120.38
$5. 14 $69.86 1950.52 $1.33.r
•• r•)

6 $4. 79 $70.21 $000.31 $130.31


7 $4. 44 $70.56 $81.7.75 $142.75
8 $4. 09 170.91 $746.84 $146.84
9 $3. 73 $71.27 %675.57 (11.50.57
13. 30 (171.62 $603.95 $153.95
$3. 02 $71.98 (.6531.97 $156 97
i2 12. 66 $72.34 $459.63 1159.63
ANO 2 TOTAIS
$55.28 (1844.72
$2.30 %72 .70 )386.93 S161.93
,•,1. (11.93 $73 07 $31.3.06 $163.06
11.57 %73 .413 $240.43 $165.43
4 11.20
( $73 $i66.63 1)1.66.63
5)0.03 $74 $92.46 $167.46
$0.46 %92 $0.00 $167.92
ULTIMA PRESTACAO = $92.92
ANO 3 TOTAIS
$8.29 $459.63
TROCA DADOS E REFAZ CALCULOS? (1=SIM, 0=NA0)? 0

44
1...1STAGEM DO PROGRAMA
10 CLS
20 PRINT "TABELA DE AMORTIZACAO DE EMPRESTIMO"
30 DEFDBL i•Z
40 DEFINT J,K
50 PRINT
59 REM - DECLARACOES 50 A 180 REGUEREM ENTRADA
60 PRINT "VALOR DA PRESTACAO";
70 INPUT R
80 PRINT "PRAZO 1-41--- ANO$::
90 INPUT Y
100 PRINT "PRINCIPAL";
110 INPUT P
120 PRINT "TAXA DE JURO ANUAL";
130 INPUT :1
140 I=I/100
150 PRINT "NUMER0 DE PRESTACOES POR ANO";
160 INPUT N
170 PRINT "INICIO DA IMPRESSAO NO ANO" 7
is

180 INPUT X
189 REM - INICIA IMPRESSAO NO COMECO IX) ANO
190 X=INT(X)
199 REM - INICIALIZA VARIAVEIS
200 Ci=0
210 12=0
220 13=0
230 J0=0.
240 1. -:N
250 K=66
260 BO=P
270 Ai=0
280 A2=0
e.C77 REM - PRAZO MENOR (FIJI::. UM ANO?
290 IF INT(Y)(1 THEN 770
299 REM - LOOP DE C•LC(JL() PARA CADA AU()
300 FOR J0=1 TO INT(Y)
309 REM - INICIA IMPRESSAO?
310 IF JO<X THEN 440
319 REM - DEVE INICIAR NOVA PAGINA?
20 IF K4.N4.3<58 THEN 400
329 REM - ESPACO ATE A O(.1TRA PAGINA (ADOTA-SE 66 LINHAS POR PAGINA)
330 FOR I' .1...:I TO 66
340 PRINT
350 NEXT K1
360 PRINT
'':ig-
,J07 en
REM - IMPRIME CABECALHOS
370 PRINJ if TABELA DE AMORTIZAcA0 DE EMPRESTIMO"
380 pkiiNli „ PRINCIPAL $"0;" A";1*100% POR" 'ANOS''
3Y0 PRINT /: VALOR DA PRESTACAO =1";R
400 PRINT
410 PRINT "NO..","JURO","AMORTIZADO","BALANCO","JURO ACUMULADO"
41 REM - CONTA LINHAS IMPRESSAS EM CADA PAGINA EM K
420 K=7
430 K=K+N+3
440 FOR Ji=i TO Ni
449 REM - CALCULA JURO F'AG') NESTA PRESTACAO, ARREDONDA
450 Ii=INT((BO*1/N)*10(:1+.5)/100
59 REM - CONTA NUMERO DI PRESTACOES PAGAS ATE AGORA
460 Ci=01+1
-)07 REM - CALCULA VALOR AMORfIZADO NESTA PRESTACAO
470 A=R-ii
479 REM - ACUMULA AMORTIZADO ATE A DATA
480 Ai=A14.A
489 REM - CALCULA BALANCO NOVO
490 BO=P- Ai
498 REM - ULTIMA PRESTACAO? SE SIM, CALCULA VALOR PARA QUE
99 REM - 0 RESIDUAL SEJA %00.00 1} (S A PRESTACAO
500 IF CiON*Y THEN 550
510 R=R-4.130
520 A=A-4430
530 Ai=A1.1-B0
5.401 B0=0
549 REM - SOMA JUROS PAGOS ATE A DATA
550 12=12+11
559 REM - ACUMULA JURO PAGO ATE A DATA
560 13=13+11
562 REM - SOMA VALOR AKORTIZADO ATE A DATA
570 A2=A2A-A
579 REM- INICIOU IMPRESSAO? SE SIM, IMPRIME VALOR ACUMULADO ATE AQUI
58(3 IF JO<X THEN 6iO
582 REM - PRINTUSING PARA ALINHAR IMPRESSAO. SE ALGUM
583 REM - DADO INTRODUZIDO FOR MAIOR QUE 0 CAMPO RESPECTIVO
584 REM - A TABELA PERDE 0 FORMATO
585 PRINTUSING"#0";Ji;
588 PU%="%%0#00400,.00"
590 PRINTUSINOPU%;ii;
595 PRINTUSINGPUT);A;
600 PRINTUSING"%%######0,#0000#.#0"00;
605 PRINTUSIN3"9%0110000# 7 ###00.110";12
610 NEXT Ji
619 REM - ULTIMA PRESTACAO? SL SIM, ARREDONDA E IMPRIME
620 IF CiON*Y THEN 650
630 PRINT
640 PRINT " ULTIMA PRESTACAO = ";
645 PRINTUSINGPIA;R
649 REM - INICIOU IMPRESSAO? SE SIM, IMPRIME TOTAIS ANUAIS
650 IF JO<X THEN 710
660 PRINT
670 J9=J0
680 IF JOYY THEN J9=J0-i
690 PRINT "ANO".09;"TOTAIS"
(nrr
07,1 PRINT" ";gPRINTUSINGPUT);i302
700 PRINT
709 REM - PRAZO COMPLETO?
7i0 IF JOYY THEN 800
720 IF 130=0 THEN 800
729 REM - REINICIALIZA VARIAVEIS DE ANO
730 13=0
740 A2=0
750 NEXT JO
759 REM - DEVE IMPRIMIR ANO PARCIAL?
760 IF JO=Y THEN 800
767 REM - PARA PRAZO MENOR our UM ANO, AJUSTA VARIAVEIS
768 REM - PARA IMPRIMIR VALOR PARCIAL ( RETORNAR PARA ROTINA DE
IMPRESSAO
770 Ni=((Y-INT(Y))*12)/i2*N
780 JO=J0+1
790 GOTO 3i0
800 PRINT
809 REM - REINICIO OU •IM DC PROGRAMA?
810 PRINT "TRO(.:A DADOS r: REFAZ CAL (i=SIM, 0=NAO)";
820 INPUT 2:
830 IF Z=i THEN 50
840 END

46
OP Q O ES

Pode ser mais interessante entrar-se corn o prazo em termos de anos e meses em vez de apenas anos. As
alteracties necessarias no programa seguem o exemplo abaixo.

Exemplo:

Emprestando-se $ 700.00 de urn amigo a 9% e pretendendo-se pagar $100.00 por mes durante 8 meses, qual
sera a planilha do emprestimo?

EXECUQAO:

•I'•BEUI DE MORTIZICAO DE EMPRES•IMO

VALOR DA PRESTACAO? 100


PRAZO EM ANOS, MESES? 0,8
PRINCIPAL? 700
TAXA DE JURO ANUAL? 9
NUMERO DE PRESTACOES POR ANO? 12
INICTO DA IMP1';E3SA0 NO ANO? 1.
TABELA DE AMORTIZACAO DE EMPRESTIMO
PRINCIPAL 1 700 A 7% POR 0 ANOS E
VALOR DA PRESTACAO = % 100
NO. JURO AMORTIZADO BALANCO JURO ACUMULADO
:1.
F*5
.6 (.1
( 4 ,, •7 ,5 1605 al C.. 0
% 4 „ 54 $9546 1509 .79 (.1, 9 7 9
'1 :3. 82 196.18 1413 .61 % 1. „ 6 J.
4 ) 3 1, 1 0 6 90 1316.71 It 6 I. 7 J.
% „ 8 % (i j 7 2 1219. 0 9 151 '? 0 9
64 198.36 1120.73 % 2'. '7 3
7 % C) 9 199.09 121.64 % 2 1. „ 6 4
8 % 0 1. 6 121.64 10.00 :2 J. ,, 8 0

ULTIMA PRESTACAO 1 21.80

ANO 0 TOTAIS
121.80 1700.00

TROCA DADOS E REFAZ CALCULOS? (inSIM, 0=NA0)? 0

LISTAGEM DO PROGRAMA

REM - OPCOES GO-95.,380


10 CLS
20 PRINT "TABELA DE AMORTIZACAO DE EMPRESTIMO"

It

7" 0 N T F;
00 PRINT 'PRAZO EM ANOS, MESES";
90 INPUT YO,M
94 REM - CONVERTE DE ANUS E MESES PARt AN ?S '!
95 r:::(12Y•1'04.M)/t2

47
100 PRINT "PRINCIPAL";

370 PRINT " TABELA DE AMORTIZACAO DE EMPRESTIMO"


380 PRINT " PRINCIPAL $1 Y A". i00; % POR': "ANOS";M; •ME S"-
390 PRINT " VALOR DA PRESTACAO $";R
to

640 END

48
Maximo Denominador Comum

Este programa calcula o maxim° denominador comum de dois inteiros. 0 calculo é baseado no logaritmo de
Euclides:

1) Digite A e B

A = Valor absoluto de A
B = Valor absoluto de B

2) Calcula R = A — B • (inteiro de (A / B))

3) R = 0? Sim: o MDC é B
Na-o: vai para o passo 4

4) A = B
B=R
5) Vai para o passo 2

Exemplo:

Achar o maxim() denominador comum entre 50 e 18, e 115 e 150.


EXECKAO:
MAXIMO DENOMINADOR CO MUM

(ENTRE 0,0 PARA FIM DE PROGRAMA)


ENTRE DOTS NUMEROS? 50,1.8

ENTRE DOIS NUMEROS? 1.15,150


M.D.C. its
ti
I:7'

ENTRE DOIS NUMEROS? 0,0

LISTAGEM DO PROGRAMA

10 CLS ri DEFDBL A—Z


20 PRINT "MAX IMO DENOMINADOR COMUM"
30 PRINT
40 PRINT "(Et TRE 0,0 PARA F•M DE PROGRAMA)"
50 PRINT "ENTRE DOTS NUMEROS";
60 INPUT A, B
61. REM —AEBSA0 INTEIROS ?
z-N
oe. IF AOINT(A) OR BOINT(B) THEN PRINT "NUMEROS DEVEM SER INTEIROS"
“Yi0T050
64 REM — NUMEROS MAIORES QUE A 1:31.1F' I... PRECISAO DO TRS-00?
IF SAE >1D+16 OR BM.D4-16 —I THEN PRINT "NAO!!! VOCE ESTA
BRINCANDO !!! ::GOTO 50
69 REM — FIM DE PROGRAMA?
70 IF A<>0 THEN 100
00 IF a<>0 THEN 100
90 GOTO 190
99 REM — CALCULA M.D.C. DE ACORDO COM 0 ALGORITMO E IMPRIME

49
10(.J A=-ABS(A)
110 RA-B*INT(A/B)
120 IF R=0 THEN 160
130 B
1.40 B=R
150 GOTO 110
160 PRINT "M.D.C. ";f3
169 REM - IMPRIME RESULTADO
170 PRINT
179 REM - ESPACO EM BRANCO ENTRE CONJUNTOS DE DODO
180 GOTO 50
189 REM - REINICIA PROGRAMA
190 END

50
Fatores Primos de I nteiros
Este programa lista os fatores primos de urn inteiro. Ele n'ao testa pelo inteiro 0.

Exemplos:

Quais Sao os fatores primos de —49?


Fatorar 92 em primos.

EXECUgA0 :

FATORES PR IMOS DE INTEIR OS

K ENTRE 0 P ARA F INAL I ZAR )


NUMERO? -49
-1
"7 t 70
/ 12 iL.
NUMER 0? 92
i
2 C 2
23 E i

N Li il I:: R 0 ? C3

LISTAGEM DO PROGRAMA
10 CLS
0 PRINT "FATORES PRIMOS DE INTEIROS"
20 PRINT
40 PRINT "(ENTRE 0 PARA FINALIZAR)"
50 PRINT "NUMER0";
60 INPUT Z
69 REM - FIM DE PROGRAMA?
70 IF Z=0 THEN 210
"7 in
/7 REM - 0 SINAL DO NUMERO SEMPRE E UM FATOR
0 PRINT SON(Z)
89 REM - USA VALOR ABSOLUTO PARA CALCULOS
90 Z=ABS(Z)
98 REM - LOOP PARA TESTAR TODOS OS INTEIROS (2 A 7) COMO FATORES
Pi IMOS
99 REM - OS INTEIROS ) Z/2 ATE Z NAO TERM-) FATORES NOVOS
i00 FOR 1=2 TO Z/2
1.1.0 SO
120 IF Z/IOINT(Z/1) THEN 160
130 Z=Z/I
140 S=S+1
150 GOTO 120
159 REM - ACHOU FAT OR PRIMO? SE SIM, IMPRIME
160 IF S=0 THEN 180
169 REM - IMPRIME FAT ORES COM EXPOENTES;I'S = I AA PO•ENCIA S
170 PRINT I;"C";S
180 NEXT I
190 PRINT
199 REM - REINICIA PROGR AMA
200 COTO 50
210 END

51
Area de urn Poligono

Este programa calcula a area de urn poligono. Deve-se fornecer as coordenadas x e y de todos os vertices. Essas
coordenadas devem ser digitadas em ordem de ocorrencia sucessiva dos vertices.
A formula usada para este calculo é:

Area = [ (x1 + x2) • - Y2) + (x2 + x3) • CY2 - y3) x1) • (Yn - Yin/ 2
onde: n = o numero de vertices.

0 numero de vertices atual é no maxim 24. Pode-se aumentar ou diminuir o limite de acordo corn o seguinte
esquema:

Exemplo:

Calcular a area aproximada do lago Boyer, mostrado abaixo.



0 -maimilizi- 0
10
riiiimimmoi
waluommumilime
8
gamin a Ismimmimem
6 Mimi 1111111111111111ME
MINIM , B r I■ MAM
4 VI NM go °Ye IIIIIIINMIP
31111111111111111111 Mile
2 iiii701111 111111111111111111111
IIMPIIIIMIMIIII IIII 11110
iiiiiilECESPIIPPPY
0 2 4 6 8 10 12 14 16
Milhas

EXECUQAO:

AREA DE UM POLIGONO

NUMERO DE VERTICES (ENTRE 0 PARA FIN DE PROGRAMA)? 14


COORDENADAS DO VERTICE ? '0,4
VERTICE ' ? 1,7
VERTICE 3 ? ,8
VERTICE 4 ? 5,10
VERTICE 5 ? 7,11
VERTICE 6 ? 9,10
VERTICE 7 ? 12,9
VERTICE 8 ? 14,8
VERTICE 9 ? 13,4
VERTICE 10 ? 154
VERTICE ? 15,1
VERTICE i2
VERTICE 13 ? 5,1
VERTICE i4 ? 4,2
AREA = 108

52
NUMERO DE VERTICES (ENTRE 0 PARA FIM DE PROGRAMA)? 0
LISTAGEM DO P R O0 AM
10 CLS
20 PRINT "AREA DE UM POLIGONO"
29 REM — ARRANJO DE COORDENADAS COLOCADO EM (NUMER0 DE VERTICES 44)
30 DIM X(25),Y(25)
40 PRINT
50 PRINT "NUMERO DE VERTICES (ENTRE 0 PARA FIM DE PROGRAMA)";
60 INPUT N
70 IF N=0 THEN 240
78 REM — LOOP PARA ENTRADA SUCESSIVA DE COORDENADAS
79 REM — VERTICES SUCESSIVOS
BO FOR I=1 TO N
90 IF I>1 THEN 120
100 PRINT -"COORDENADAS DO VERTICE";I;
110 GOTO 130
120 PRINT " VERTICE"O;
130 INPUT X(I),Y(I)
140 NEXT I
149 REM — PRIMEIRO VERTICE = ULTIMO VERTICE
150 X(N-4-1)=X(1)
160 Y(N.4.1)=Y(i)
170 A=0
179 REM — CALCULA AREA E IMPRIME
180 FOR I=1 TO N
190 A=A4.(X(I)+X(I4-1))*(Y(I)—Y(I4.1))
200 NEXT I
210 PRINT "AREA ="0/2
"/ PRINT
1,10 REM — REINICIA PROGRAMA
i.c../
230 GOTO 50
240 END

53
Panes de urn Triangulo

Este programa calcula as ties partes desconhecidas de urn triangulo em que sao fomecidas tres partes. No minimo uma
parte dada deve ser o comprimento de um lado. Existem cinco possibilidades para a entrada dos dados:

1. Angulo, lado, Angulo


2. lado, Angulo, lado
3. Angulo, Angulo, lado
4. lado, lado, Angulo
5. lado, lado, lado

Os dados deem ser entrados na ordem em que aparecem no triangulo. No sentido horario ou anti-hothrio.

Exemplo:

A base de urn triangulo mede 14 polegadas. Os angulos de base medem 0.45 e 2.1 radianos. Quaffs sdo as medidas
do triangulo?

14"

EX E CU cAO :

PAR
TES DE UM T'I' IANGULO

TIPO DE PROBLEMA 1=ALA,2=LAL,3=AAL 4=111=.i 5=LLL,6=FIM


ENTRE 0 TIPO DO PROBLEMA?
ENTRE ANGULO,LADO,ANGULO? 45,14,2.1

LADO i. = :10.919
ANGULO OPOSTO= .45 RADIANOS
LADO t = 21.67
ANGULO OPOSTO= 2.1 RADIANOS
LADO 3 = 14
ANGULO OPOSTO= .592 RADIANOS

ENTRE 0 TIPO DO PROBLEMA? 6

LISTAGEM DO PROGRAMA

10 CLSn DEFDBL P u DEFINT


20 PRINT "PARTES DE UM TRIANGULO"
30 PRINT
40 DIM A(3),S(3)

54
49 REM GERA PI
50 P=3.1. 415927
58 REM — ENTRA TIPO DO PROBLEM DE ACORDO COM AS PARTES
59 REM CON•EC IDAS, O-DE A=ANGULO S=COMPRIMENTO DO LADO
6 0 PRINT "TIPO DE PROBLEMA 1=ALA,2=LAL,3=AAL,4=LLA,5=LLL
(3 PRINT ENTRE 0 TIPO DO PROBLEMA";
8 0 INPUT X
:39 REM — DIRECI ONA 0 PROGRAMA PIRA 0 CALCUL() APROPRIADO
90 IF X=6 THEN 560
10 0 IF X=5 THEN 390
i 0 IF X=4 THEN 300
120 IF X=3 THEN 290
130 IF X=2 THEN 190
i 4 0 PRINT "ENTRE ANGULO,LADO, ■ NGULO";
i 50 INPUT A(1),S(3),A(2)
1.6 0 (:(3)=P—A(1)—A(2)
170 Sci)=S(3)*SEN(A(1))/SEN(A(3))
180 S(2)=S(3)*SEN(A(2))/SEN(A(3))
190 GOTO 450
200 PRINT "ENTRE LADO,ANGULO,LADO";
21 €) INPUT S(3),(t(1),S(2)
220 S(1)=SQR(S(3)'24.S(2)'2-2*S(3)*S(2)*COS(A(1)))

240 IF A(2)=1THENA(2)=90*.01.74533ELSEA(2)=ATN(A(2)/4SH(1—A(2)C2))
A) A(2)
2 60 GOTO 450
• I 0 PRINT "ENTRE ANGULO,ANGULO,LADO"
INPUT A(3),A(2),S(3)
C) A(i)=P—A(2)—A(3)
300 GOTO 1.70
31.0 PRINT "ENTRE LADO,LAD(,ANOULO"
INPUT S(1),S(2),A(1)
3(2)*SEN(A(1))
340 IF S(1)<T2 THEN 520
350 S(3)=SQR(S(2)C2—TE2)
360 IF S(i)<=T THEN 380
:37C) Y=SQR(S(i)C2—TE2)
380 S(3)=S(3)JeA
3'20 GOTO 230
400 PRINT "EN 1111::. LADO,LADO,LADO";
410 INPUT S(1),S(2)S(3)
.41.9 P OR ( ? ) C 2
4 I..4 A(1)=(S(2)4S(2)+S(3)*S( ) — S ( ) * S( )V 2/ S 2 ) /
• 3 •)
430 IFA(1)=OTHENA(1)=90*.01 74533ELSEIA(i)=ATN(SOR(i—A(i)L2/A(1))
440 GOTO 230
450 PRINT
459 REM — IMPRIME RESULTADOS
46 0 FOR TO '3
A • ;'•t
467 REM — 0 ANGULO DE UM '1.1 :I: •AO PODE SER < 0
4:70 IF A(I)<0 THEN 530
480 PRINT "LADO"!,!Ii.;"=";INT(S(I)*1.0004..5)/1000
490 PRINT 'ANGULO OPOSTO="INT(A(I)*1)004..5)/1000
ti , t"RADIANOS"
500 NEXT I
510 PRINT
5 REM — REINICIA PRMRAMA
520 GOTO 70
530 PRINT
540 PRINT "SEM RESOLUCAO"
550 PRINT
REM — REINICIA PROGRAMA
560 GOTO 70
?0 END
OPQAO

Pode ser mais conveniente trabathar-se corn graus em vez de radianos. As modificayies para tanto vem depois
dos exemplos abaixo.

Exemplos:

Um quadrado mede 8.76" por 8.76". Qual o comprimento da diagonal?

8.76"

A escada de urn escorregador mede 10', a rampa 14' e a base 13' (do pe da escada ate o fun da rampa). Qual
o angulo da rampa?

13'

EXECUQAO:

PARTES DE UM TR I ANGULO

TIPO DE PROBLEMAg 1.=ALA,2=LAL,3=AAL,4=LLA, 6=FIM


ENTRE 0 TIPO DO PROBLEMA? 2
ENTR E:. LADO,ANGULO,LADO? 8.76,90,8.76

LADO 1. = i2.3885
ANGULO OPOSTO= 90 GRAUS
LAU) 2 = 8.76
ANGULO OPOSTO= 45 OR X11.1
I.J1DO 3 = 8.76
ANGULO OPOSTO= 45 GRAUS
ENTRE 0 T t P 0 DO PROBLEMA? 5
ENTRE LADO,LADO,LADO? i0,13,14

56
LADO = 10
ANGULO OPOSTO= 43.2792 GRAUS
LA DO 2 = 13
ANGULO OPOSTO= 63.0269 GRAUS
LADO 3 = 14
ANGULO OPOSTO= 73.6939 GRAUS

ENTRE 0 TIPO DO PROBLEMA? 6

LISTAGEM DO PROGRAMA

I REM - OPCOES 54-55,155-156,215,285-286,325,490


10 CLS n DEFDBL p DEFINT I,X
20 PRINT "PARTES Di UM TRIANGULO"

50 P=3.1415927
54 REM - CONVERSAO GRAUS PARA RADIANOS
55 DMAL C C=..0174532927:
58 REM j tNIra: 0 T100 DE PROBLEMA DE ACORDO COM AS PARTES CONHECIDAS

i50 INPUT A(i),S(3),A(2)


155 A(1)=A(1)*C
1.56 A(2)=A(2)*C
160 A(3)=:)-A(1 r -A(2)

210 INPUT S(3) x A(i) S(2)


.
215 A(1)=A(1)*C
220 S(1)=SGR(S(3)'2.4.S(2)'2-2*S(3)*S(2)NCOS(A(1)))

11

280 INPUT A(3),A(2),S(3)


285 A ( ) :r.; A ( 3 ) *
286 A( 2 ) :Ir. A ( 2 ) * C
290 A(1)=P-A(2)-A(3)

tI

3n INPUT S(1)IS(2) A(1)


325 A(1)=A(i)*C
330 T=S(2)*SEN(A(1))

11

480 PRINT "LADO"uIu""1:S(I)


49:0 PRINT "ANGULO OPOSTO="i!CSNG(A(I)/C)CGRAUS"
500 NEXT I
tr

It

570 END

57
Analise de doffs Vetores

Este programa calcula o angulo entre dot vetores dados, o angulo entre cada urn deles e as eixos e a magnitude de cada
um. Os vetores sAo fornecidos no espaco de tres dimens6es.

Exemplo:
Achar o angulo (teta) entre a diagonal de urn cubo e a diagonal de urna de suss faces. Esse cubo mede 4 X 4 X 4.

(0,4,4) (4,4,4)

(0,4,0)

(4,0,4)

(0,0,0) (0,0,4)

EXECUQAO:

ANALISE DE DOIS VETORES


tl
VETOR /
X y'Y •
4 4
)
VETOR •
!I. . SO X 7Y 7 ? 4,4 y 4

VETOR
MAGNITUDE: 5.65686
ANGULO COM 0 EIXO X It
Ii 90 GRAUS
ANGULO COM 0 EIXO Y II
li 45 GRAUS
ANGULO COM 0 EIXO z It
II 45 GRAUS

VETOR 2
MAGNITUDE: 6.92821
ANGULO'COM 0 EIXO X 11

It MA ."*g
ANGULO COM 0 EIXO I
ANGULO COM 0 EIXO z II 54.7356

ANGULO ENTRE VETOR ES : 35.2644

MAIS DADOS (i=SIM, 0=NA0)? 0

LISTAGEM DO PROGRAMA

10 CLS
20 PR 1.N I" "ANAL I SE DE DO I S VETORES"
30 DEFDL B A-Z DEFINT I
40 PRINT
49 REM - DECLARACOES 40 A 70 f' 1:::1" DADOS DOS YETORES
50 PRINT "VETOR 1: X,Y,Z"

58
60 INPUT X(1),4 (1),Z(i)
'2'0 PRINT "VETOR 2g X,Y,Z";
80 INPUT X(2),Y(2),Z(2)
90 PRINI
99 REM - LOOP PARA INICIALIZAR OS DOIS Vi TORES
100 FOR .1=1 TO
109 REM - CALCULA A MAGNITUDE E IMPRIME
110 M(I)=SQ1=(X(I)L24.Y(I)L24.Z(1)E2)
119 REM - SE 0 YETOR FOR UM PONTO NA() CALCULA ANGULO
120 IF M(I)=0 THEN 260
130 PRINT "YETOR"gIg"g"
140 PRINT "MAGNITUDEg";CSNG(M(I))
1.49 REM - CONYER•A0 DE FATORES DE RADIAN() , PARA GRAUS
150 6=57.29578
158 REM - CALCULA ANGULO ENTRE YETORES E 0 1:1: X() X, USARDO A
159 REM - SUBROTINA EN 410 QUE DA X9 = ARCCOS(J)
160 J=X(I)/M(I)
170 X9=J g GOSUB 410
17? REM - CONVERTE PARA GRAUS, IMPRIME
180 PRIN1 "ANGULO COM 0 EIXO Xg";CSNG(X9*S);"GRAUS"
188 REM - C•LCULA A•GULO ENTRE VETORES E () EIXO Y, USANDO A
189 REM - SUB-ROTINA EM 410 QUE DA X9 = ARCCOS(J)
10 J=Y(I)/M(I)
200 X9 =J g GOSUB 410
209 REM - CONYERTE PARA GRAUS , IMPRIME
210 PRINT "ANGULO COM 0 EIXO Yg";CSNG(X9*S);"GRAUS"
218 REM - CAL..CUL.A ANGULO ENTRE VETORES E 0 EIXO Z, USANDO A
219 REM - SUB-ROTINA EM 410 QUE DA X2 = ARCCOS(J)
220 J=Z(I)/M(I)
230 X9=J g GOSUB 410
(:1
f .,.),' REM - CONVER•E PARA GRAUS , IMPRIME
240 PRINT"ANGULO COM 0 1:..F X0 Zg";CSNG(X9*S);"GRAUS"
250 PR I NT
260 NE XT I
270 J=0
279 REM - SE QUALQUER •ETOR FOR PONTUAL NAO SE DEFINE ANGULO
280 IF M(1)=0 THEN 350
90 IF B(2)=0 THEN 350
,nn
7 REM - CALCULA ANGULO- ENTRE YETORES
300 J=tX(1)*X(2)+Y(1)*Y(2)+Z(1)*Z(2))/M(1)/M(2)
309 REM - OS DOIS VETORES SAO PERPENDICULARES '7
310 IF INT(J*10•.5)/10=0 THEN J=90 g GOTO 350
319 REM - OS DOIS YETORES TiM A MESMA DIRECAO ,)
320 IF INT(J*104..5)/10=1 THEN J=0 g GOTO 350
32? REM - OS DO .FS YET ORES SAO OPOSTOS ?
330 IF INT(J*10-1-.5)/i0=-1 THEN J=-180 g GOTO 350
339 REM - CALCULA ANGULO EM GRAUS, IMPRIME
34C) J=ATN(SQR(i-JI.2)/J*S
350 PRINT "ANGULO ENTRE YETORESg";CSNG(J)g"GRAUS"
360 PRINT
369 REM - REINICIA OH FINALIZA 0 PROGRAMA?
370 PRINT "MAIS DADOS (i=SIM, 0=NAO)";
38C) INPUT Z
390 IF Z=1 THEN 40
399 REM - PULA SUB•ROTINA PARA FINALIZAR PROGRAMA
400 GOTO 440
410 IF X=9 THEN X9=90/S : GOT() 430
420 X9=ATN(SQR(1-X9E2)/X9)
430 RETURN
440 END

59
Operacgo corn dois Vetores

Este programa executa quatro operacoes no espaco tridimensional corn dois vetores dados. As operacoes realizadas sac,:

1) Adicao
2) Subtracao
3) Produto escalar
4) Produto vetorial

Exemplo:

Dois vetores sac) desenhados a partir da origem ate os pontos A(5, — 1, 2) e B(1, 4, 9). Somar, subtrair e obter
os produtos escalar e vetorial desses vetores.

EXECUQAO:

OPERACAO COM DOTS VETORES


1.
VETOR n
COORDENADAS
v y 7 r)
VETOR .} n COORDENADAS .e .% I IA.. 7 4 7 9'

A.*43= 6 7 1.1.
A-13= 4 , %.)
""..1

A.B" 19
A4(43=-17

MAIS DADOS? (1=SIM, (,j=NA0)? 0


LISTAGEM DO PROGRAMA

10 dLS DEFUL A-2


20 PRINT "OPERACAO COM DOTS VETORES"
30 PRINT
40 PRINT "VETOR A COORDENADAS X r Y r z ";
50 INPUT X1,Y1,21
60 PRINT "VETOR 13 COORDENADAS ";
7• INPUT X2,Y2,Z2
BO PRINT
89 REM — EXECUTA ADICAO E IMPRIME RESULTADO
90 PRINT "A+P)=';Xi.i-X2;"7";Y1.0(2;"7";7.1+:12
99 REM — EXECUTA SUBTRACAO E IMPRIME RESULTADO
100 PRINT 'A—B=";Xi—X2;",";Yi—Y2;",";21—Z2
109 REM — EXECUTA PRODUTO ESCALAR E IMPRIME RESULTADO
110 PRINT "A.B=";X1.*X24-Y1*Y24.21*-1.2
119 REM — EXECUTA PRODUTO VETORIAL E IMPRIME RESULTADO
120 PRINT "AAB=";YI*22Zi*Y2;,;Zi*X2—Xl*Z2;,;Xi*Y2— Yi*X2"
130 PRINT
139 REM — REINICIO OU FIM DE PROGRAMA?
140 PRINT "MAIS DADOS? (i=SIM, 0=NA0)";
150 INPUT X
160 IF X=1 THEN 30
170 END

60
Conyers& de Angulos: Radianos para Graus

Este programa converte urn Angulo dado em radianos para graus, minutos e segundos.

Exemplo:
Quantos graus, minutos e segundos existem num Angulo de 2.5 radianos? E num de 118 radianos?

EXECUcAO:

CONYEW:PA,
.) DE mOUULO'../;= LA1)11.01,1:., PARA GRAM.;
J1 11:-
:101JULO LN PADSANW:; (ENTRE 0 PARA INALF/hP 0 PROGRAMAY.2 n

GRAUS " 143


MINUTOS i4
3EGUNDOS 22.01

ANGULO EM RADIANOS? 118


GRAUS 200
MINUTOS
SEGUNDO'S 6.78

1N' .31.U1....) EM RADIANOS

LISTAGEM DO PROGRAMA

10 CLS
20 PRINT "CONYERSA0 DE ANGULOSr. RADIANOS PARA GRAUS"
30 DEFDBL A-Z
40 PRINT
50 PRINT "ANGULO EM RADIANOS (ENTRE 0 PARA FINALIZAR 0 PROGRAMA)fr ;;
60 GOTO 00
70 PRINT "ANGULO EM RADIANOS"u
20 INPUT R
09 REM - TESTE DE FIM DE PROGRAMA
90 IF R"O THEN 170
I REM - CONVERTE RADIANOS PARA SEGUNDOS
100 A"3600*120*R/3.1415927
109 REM - CALCULA NUME•• DE GRAUS INTEIROS
110 D"INT(A/3600)
11 REM - CALCULA NUMERO DE CIRCULOS INTEIROS
120 DiTNT(D/360)
122 RUM - CALCULA GRAUS DO ANGULO Iii DE 360 GRAUS
129 REM - ::;AIDA DE DADOS FORMATADOS COM 0 YPRINTUSING 7
430 PRINT " GRAUS
105 PRINTUSING"4VO ' I,,....:.; +i..$.)r t) :I
439 REM - CALCULA MINUTOST 1WRIME. FORMATA SAIDA COM YPRINTUSINGY
140 PRINT " MINUTOS
145 PRINTUSING"60"0.NT((A -1*3600)/60)
14T REM -- CALCULA SEGUNDO'S,/ ARREDONDA E IMPRIME
150 4:4"A-D*3600-(INT111-D*3600)/60))A60
160 PRINT " SEGUNDOS
165 PRINTUSING"00.00"INT(100*S+.5)/100
FRINI
i79 REM — RI: TNICIA PROGRAMA
180 GOTO 70
190 END

OPQAO

Pode ser mais interessante obter a resposta em termos de decimos de graus em vez de graus, minutos e segundos.
As alteracOes no programa, para tanto, vem depois do exemplo abaixo.

Exemplo:

Quantos graus existem num angulo de 2.5 radianos?

E XECU PAO :
CONVERSA0 DE ANGULOS RADIAN) PAR A GRAUS

EM RADIANOS (ENTRE 0 PARA FINALIZAR 0 PROGRAMA)? a.


GRAUS = 143

l'INGULO EH RADIANOS? 0

LISTAGEM DO PROGRAMA

i REM — OPCAO 13.5


i0 CLS
20 PRINT "CONVERSAO DE ANGULOS: RADIANOS PARA GRAUS"

i9 REM — CALCULA GRAUS EM ANGULOS DENTRO DE 360 GRAUS E IMPRIME


PRINT " GRAUS
RINTUSINB"000.#011";INT((D-360*Di)*1004..5Ui00
I. 7 0 f p N'T
rt

11

rr

9o E

62
Conversao de Angulos: Graus para Radianos

Este programa converte urn Angulo dado em graus, minutos e segundos para radianos.

Exemplos:

Um Angulo medindo 30 graus, 5 minutos e 3 segundos. Qual sua medida equivalente em radianos?
Qual é a medida em radianos de dois Angulos, um corn 278 graus, 19 minutos e 54 segundos, e o outro corn
721 graus, 0 minutos, 0 segundos?

EXECUcAO:
.CONVERSA0 DE ANGULOS: GRAUS PARA RADIANOS

(PARA FINALIZAR 0 PROGRAMA ENTRE 0,0,(:l)


iii GULO EN GRAUS,MINUTOS,SEGUNDOS? 305,3
RADIANOS :::: .5250678

ANGULO EM GRAUS,MINUTOS,SEGUNDOS? 278,19,54


RADIANOS 4.8578040

ANGULO EM GRAUS,MINUTOS,SEGUNDOS? 721,0,0


RADIANOS 0.0174532

Ai' GULO EM GRAUS,MINUTOS,SEGUNDOS? 0,0,0

LISTAGEM DO PROGRAMA

10 CLS
20 PRINT "CONVERSAO DE ANGULOS: GRAUS PARA RADIANOS"
30 DEFDBL
A 7
40 PRINT
50 PRIN (PAR FINALIZAR 0 PROGRAMA ENTRE 0,07 0)"
60 PRINT "ANGULO EN GRAUS,MINUTOS,SEGUNDOS";
70 INPUT D,M,S
79 REM - TESTE PARA VER SE FIM DE PROGRAMA
80 IF D(>0 THEN 120
90 IF MOO THEN 120 -
WO Ir SOO THEN 120
ii0 GOTO 170
119 REM - CONVERSAO DE GRAUS,MINUTOS,SEGUNDOS 'PARA GRAUS
1n A=D+M/604.6/3600
129 REM - CALCUL() DO NUMERO DE CiRt0L6StbMPLEIOS
130 R =INT((:/360)
139 REM - CALCUL() DO ANG•LO DENTRO DE 360 GRAUS, IMPRESSAO
140 PRINT "RADIANOS
141 PRINTUSING"000.0H00000"; A*.01745329-R*6.2831853
149 REM - REINICIA PROGRAMA
150 PRINT
1.60 (30T0 60
171) END

63
OPQOES

Pode ser mail interessante entrar corn o Angulo em graus e fracoes de graus em vez de graus, minutos e segundos.
As alteracoes no programa Vern apOs o exemplo abaixo.

Exemplo:

Quantos radianos tern urn 'Angulo que mede 33.08 graus? 90 graus?

EXECUQAO:

CONVERSA0 DE ANGULOS: GRAUS PART RADIANOS


(PARA FINA1...IZ4 0 PROGRAMA ENTRE 0)
ANGULO EM GRAUS? 33.08
RADIANOS = .5772549

"AI'' GULO EM GRAUS? 90


RADIANOS = i .5707963

ANGULO EM GRAUS? 0

LISTAGEM DO PROGRAMA

i REM - OPCAO 50-80


10 CLS
0 PRINT 'C1 NVERSA0 DE AN1 U1...0v, GRAUS PARA RADIANOS"
30 DEFDBL A-7.
AO PRINT_ ...
0 PRINT "(PARA FINALIZAR 0 PROGRAMA ENTRE 0)"
60 PRIKT "ANGULO EM GRAUS";
:70 INPUT A ..
79 REM - TESTE PARA FIM DE PROGRAMA
00 IF A=0 THEN 170
,ALCULA NUMER DE CIRCULOS COMPLETOS
129 REM - ...
II

"
1. 70 I::.[ D

64
Conversab de Coordenadas

Este programa converte as coordenadas de urn ponto dado de cartesianas para polares, e vice-versa.
A formula de conversao é:

r = N./x2 + y2

A = arcotangente(y/x)
x = r •co-seno (A)

y = r • sena (A)

onde: x = abscissa (cartesiana)


y = ordenada (cartesiana)
r tamanho do raio (polar)
A 7- fingulo (em grans) (polar)

Exemplos:

Achar as coordenadas cartesianas do ponto (2,30.5°) dado em coordenadas polares.


Se um ponto esti em (7, 18) num sistema cartesiano, quais sffo suas coordenadas num sistema polar?
Urn ponto esti na posicao (0,-46.8). Qual é a sua localizacao em coordenadas polares?

E XECUcAO:

CONVERSAO DE COORDENADAS

( 1=CARTESIANA PARA POLAR)

(-1 =POLAR PARA CARTESI(NA)

( 0=FIM DE PROGRAMA)

71...
1.) i" DIRECA?

R,A? 2,30.5

X = 1.72 Y = 1 . 02

QUAL DIRECAO? I.
X,Y? 7,18

= 19.31 , A = 68.75

QUAL DIRECAO? i

X, Y? 0,-46.8

QUAL DIRECAO? 0

L I STAGEM DO P i OGR AMA

10 CLS

20 D R INT "CONVER SAO DE COORDENADAS"

30 EFDBL

40 :J R IN •

50 -I R INT ( 1= CAR TES I ANA PARA POLAR ) "

60 '
R INT (-1=POLAR PARA CARTESIANA)"

70 '
RINT ( 0=1 1M DE PROGRAMA)"

f] ' RINT 'r 1.)r31... DIRECA0 " 7

90 INPUT D

65
99 REM -- FIM DE PROGRAMA 2
100 IF D=0 THEN 400
109 REM - DIRECIONA 0 PROGRAMA PARA CONVERTER CORRETAMENTE
110 IF D=-1 THEN 340
118 REM - CONVERTE DE COORDENADAS CARTESIANAS PARA POLARES
119 REM - DIGITA-SE COORDENADAS CARTESIANAS (ABCISSA,ORDENADA)
120 PRINT "X,Y";
130 INPUT X,Y
139 REM - PONTO NO EIXO Y?
140 IF X=0 THEN 190
149 REM - PONTO NO EIXO X?
150 IF Y=0 THEN 280
159 REM - CAI...CULA COORDENADAS POLARES, ARREDONDA, IMPRIME
160 PRINT "R =";INT(S0N(X)*SQR(X1.24-YE2)*100+.5)/100;"7";
170 PRINT " A =";INT(ATN(Y/X)*180/3.1415927*100+.5)/100
180 GOTO 00
189 REM - PONTO NO EIXO Y;, NA OR I OEM '?
190 IF Y=0 THEN 260
200 PRINT "R= "OBS(Y);",";
209 REM - PONTO ACIMA OU ABAIXO DA ORIGEM?
210 IF Y<0 THEN 240
220 PRINT " A = 90"
230 GOTO 80
240 PRINT " A = 270"
250 GOTO 80
259 REM - PONTO NA ORIGEM
260 PRINT "R = 0, A = 0"
270 GOTO 80
279 REM - PONTO NO EIXO X
280 PRINT "R =";ABS(X);"7";
289 REM - PONTO ESTA A DIREITA OU ESQUERDA DA ORIGEM?
290 IF MO THEN 320
300 PRINT " A = 0"
310 GOTO 80
320 PRINT " A = 180"
330 GOTO 80
338 REM - CONVERTE DE COORDENADAS POLARES PARA CARTESIANAS
339 REM - ENTRA COORDENADAS POLARES ((AMANHO, ANGULO)
340 PRINT "R,A";
350 INPUT R,A
359 REM - CONVERTE DE GRAUS PARA RADIANOS
360 M=(A-INT(A/360)*360)*3.1514927/180
369 REM - CALCULA COORDENADAS CARTESIANAS,ARREDONDA,IMPRIME
370 PRINT (X =";INT(R*COS(M)*100+.5)/100;"7";
380 PRINT ( Y =";INT(R*SEN(M)*1004..5)/i00
390 GOT() 80
400 END

66
Desenho de Coordenadas

Este programa desenha pontos num sistema de coordenadas. Deve-se fornecer as coordenadas x e y de todos os
pontos a serem desenhados e o incremento entre cada ponto nos dois eixos.
O grafico no é convencional porque o seu eixo x é executado verticalmente, enquanto o eixo y flea na
horizontal. Alem disso, os eixos no se interseccionam no ponto 0,0. E mostrado no alto de cada grafico o ponto
onde ocorre a intersecgdo dos eixos x e y.
O limite do numero de pontos desenhados pode ser incrementado ou decrementado modificando-se a declaracdo
30 na forma seguinte:

30 DIM X (N+ /) Y (N+ 1 )


onde N e o narnero maximo de pontos que se deseja desenhar.

O comprimento do eixo y é limitado pela largura do seu dispositivo de saida. 0 programa testa para que
o comprimento nao exceda 61 espacos. Limitada em 61 espacos, mais urn para o eixo x e outro para o titulo do
eixo y, uma tela de 64 caracteres por linha no perdera seu formato por urn salto de linha no previsto, causado
por uma linha muito longa.
Querendo transferir para impressora e desejando uma linha de impressdo mais comprida, deve-se alterar a linha
100, bem como escrever uma rotina para posicionar de acordo as chamadas TAW) para Z > 63.

Exempio:

As alturas de 12 homens e de seus filhos estab colocadas na tabela abaixo. Fazer o grafico correspondente.

pal 65 63 67 64 68 62 70 66 68 67 69 71
filho 68 66 68 65 69 66 68 65 m 67 68 70
altura em polegadas

EXECUcAO:
DESENHO DE COORDENADAS
EIXO X:: EXTREMO ESQUERDO, EXTREMO DIREITO INCREMENTO? Oa.
f el
.79

EIXO Yg EXTREMO ESQUERDO, EXTREMO DIREITO INCREMENTO? O a. r .7 1'


9 r

NUMERO DE PONTOS A SEREM DESENHADOS? 12


COORDENADAS DO PONTO '? 65,68
PONTO ':r 63,66
PONTO 3 ? 67,68
PONTO 4 ? 64,65
PONTO : 68,69
PONTO 6 2 62,66
PONTO 7 2 70,68
PONTO 8 '? 66,65
PONTO 9 2 68,71
PONTO 10 2 67,67
PONTO 41 '? 69,68
PONTO i2 ? 71,70

67
INTERSECCAO DOS EIXOS EM ( 62 , 62 )

LISTAGEM DO PROGRAMA

10 CLS
20 PRINT "DESENHO DE COORDENADAS"
28 REM — DIMENSOES DE X E Y DEVEM SER LIMITADAS A ( 14-1);
29 REM — ONDE N=NUMER0 DE PONTOS A SEREM DESENHADOS, ATE 99
30 DIM X(100),Y(100)
40 PRINT
49 REM — INFORMACOES DE ENTRADA PARA MONTAR EIXOS
50 PRINT "EIXO EXTREMO ESQUERDO, EXTREMO DIREITO, INCREMENTO"
60 INPUT Ai,A2,A3
70 PRINT "EIXO EXTREMO ESGUERDO, EXTREMO DIREITO, INCREMENTO"
80 INPUT B1,13 2,B3
90 B2=([32-131)/133
98 REM — EIXO Y MAIOR QUE LARGURA? SE SIM, MUDA EXTREMOS
99 REM — OU AUMENTA C' INCREMENT°
100 IF B2<=61 THEN 130
110 PRINT "FAIXA Y MUITO LARGA"
120 ca() To 70
130 PRINT "NUMERO DE PONTOS i SEREM DESENHADOS";
140 INPUT N
149 REM — NAO HA PONTOS? •IM 1)1 PROGRAMA
•0 IF N=0 THEN 1080
159 REM — MUITOS PONTOS? SE SIM, REDIGITAR PONTOS
160 IF N<=99 THEN 180
170 PRINT "MUITOS PONTOS"
180 GOTO 130
189 REM — LOOP PARA ENTRAR X E Y PARA CADA PONT()
190 FOR 1•1 TO N
200 IF I>1 THEN 220

68
210 PRINT "COORDENADAS DO PONTO "0;
220 GOTO 240
230 PRINT " PONT() "0;
240 INPUT X(I),Y(I)
249 REM — ARREDONDA CADA X E Y PARA 0 PROXIMO INCREMENT° DE X
250 X(I)=INT((X(I)—Ai)/A3+.5 ;
260 Y(I)=INT((Y(I)-131)/B34-.5;4.1
270 NEXT 1
279 REM — CALCULA COORDENADA X E Y ADICIONAL
280 Y(N.1-1)=INT(B2+.5)+1
290 X( A2—A1)/A34-.5)+1
300 PRINT
309 REM — VER ONDE X F Y CRUZAM
310 PRINT "INTERSECCAO DOS EIXOS EM ("01;","01;")"
320 PRINT
.:)c.7 REM — SORT )AS COORDENADAS;REORDENA X(i) ATE X(N) MENOR PARA
MAIOR
330 FOR J=1 TO N
340 FOR i=i TO N—J
350 A=X(I)
360 B=Y(I)
370 C=X(.14.1)
380 D=Y(1.-§.1)
390 IF A<C THEN 440
00 X(I)=C
410 Y(I)=D
420 X(.14•1)=A
430 Y(I•1)=1:3
440 NEXT I
450 NEXT J
459 REM — PROXIMO PONT() A DESENHAR EM T
460 T=I
69 REM — PULA PONTOS FORA DA FAIXA DE X POSITIVO
470 FOR 1='=0 TO N-1
480 IF X(P4.1)>=0 THEN 500
490 NEXT p
499 REM — LOOP PARA ACHAR CADA INCREMENTO DE X DOS LINHAS A IMPRIMIR
500 FOR i=0 TO INT((A2—A1)/A3+.5)
510 T=T+P
519 REM — CONTA NUMERO DE PONT OS A SER COLOCADO EM C•DA LIN•A EM I'
52.0 P=0
529 REM — TODOS OS PONTOS DESENHADOS?
530 IF T>14 THEN 550
tr'.)0 REM — VALORES X NA LINHA X? SE
..),..)7 fl SIM, •ES•E PARA Y
540 IF X(T)=I THEN 600
549 REM — PRIMEIRA LINHA? SE SIM DESEN•AR EIXO V
550 IF 1=0 THEN 580
criv o
JJ7 REM — DESENHA EIXO X
560 PRINT "*";
570 GOTO 1050
580 .3:::: .+.:1.
590 GO TO 920
600 FOR L=T TO •N
609 REM — PROXIMO PONT() DESEN•ADO NA MESMA LIN•A?
6i0 IF X(L)>X(T) THEN 630
619 REM — CONTA PONTOS DESENHADOS NA ME{ MA LINHA
620 P=Piq
630 NEXT I...
639 REM — DESEN•A WI PONTO
640 IF P=1 THEN 740
648 REM — LOOP PARA ACHAR COORDENADA Y COM IDENTICA COORDENADA X;
649 REM — REORDENA DE MENOR PARA MAIOR

69
650 FOR J=1 TO P
660 FOR L=I TO P—J
670 D+Y(T-4-LiA)
680 B=Y(T+L)
69(i) IF D<=F3 THEN 720
700 Y(T•I•L—i)=E1
710 Y(T+L)=D
720 NEXT 1..
730 NEXT J
740 FOR L=0 TO P—i
750 Z=Y(TA-L)
759 REM — TESTAR SE FORA DA FAIXA DE Y
760 IF Z>=0 THEN 780
770 NEXT L
779 REM — PONTO A SER DESENHADO NO EIXO X?
780 IF 1"0 THEN 920
789 REM — PONTO A¶ ER DESENHADO NO EIXO Y?
790 IF Z=0 THEN 010
799 REM — DESENHA EIXO X
800 PRINT "*";
010 IF L"P-1 THEN 880
820 FOR J=L TO P—i
829 REM — VERIFICA SE FORA DA FAIXA NO EIXO Y
830 IF Z>B2 THEN i040
039 REM — PUL• COORDENADAS DUPLICADAS
840 IF Y(T4-J)=Z THEN 070
049 REM — DESEN•A PONTO
850 PRINT TAB(Z);"+";
860 Z"Y(T+J)
870 NEXT J
879 REM — VERIFICA SE FORA DA FAIXA NO EIXO Y
880 IF 1<0 THEN 1.050
890 IF Z>B2 THEN 1050
099 REM — DESENHA rONTO
900 PRINT TAB(7.);"+";
910 GOTO 1050
920 S=T+L
c)
Yr.V -);n REM — LOOP PARA ACHAR A PRIMEIRA LINHA DE IMPRESSA0
930 FOR J"0 TO B2
939 REM — PON•O A SER DESENHADO?
940 IF Y(S)0J THEN 1020
949 REM L DESENHA POI TO
950 PRINT "4-'1 ;
959 REM — NAO CONSIDERA COORDENADAS DUPLICADAS
960 FOR K=S TO T4—I
970 IF Y<K)=Y(S) THEN 1000
980 S=K
990 GO•O i030
1000 NEXT K
1010 GOTO 1030
10i9 REM — DESENHA EIXO I
1020 PRINT "*";
1030 NEXT J
1.039 REM — ROTULA EIXO Y
1040 PRINT "Y";
1.049 REM — AVANCA DISPOSITIVO DE IMPRESSAO Pi RA PI OXIMA LIN•A
1050 PRINT
1060 NEXT I
1069'REM — ROTULA EIXO X
1070 PRINT "X"
1080 END

70
Desenho da Equacao Polar

Este programa desenha uma dada fiincao em coordenadas polares. Pode-se ter ate 90 pontos desenhados, uma cada
quatro graus (alguns pontos podem coincidir).
grafico é convencional porque o eixo x corre horizontalmente e o eixo y verticalmente e se interceptam em
0,0. Somente é necessario especificar o valor absoluto do ponto final.
0 incremento entre cada ponto nos eixos x eye ajustado de forma que o valor de um em ambos os eixos
seja eqUidistante de zero. Isto permite que a funcao seja desenhada corn urn minimo de distorcao. Urn ajuste em cada
incremento é necessario devido ao .espacejamento diferente na horizontal e na vertical no dispositivo de saida.
(Este programa assume um dispositivo de 10 espacos horizontais e seis verticais por polegada. Se nao for o
caso, pode-se ter alguma distorcao no grafico.)
E necessario digitar a funcao a ser desenhada, antes de iniciar o desenho. Essa funcao deve ser entrada como
uma funcao de d Ad) sera entrada como funcao de Fna linha 130. Por exemplo:

130 F=2* (1--COS CD) )

Exemplo:

Desenhar a equacao f (d) = 2 • (1 - cos(d)).

71
>i30 F=2*(i-COS(D))

EXECKAO:
DESENHO DA EQUACAO POLAR
VALOR ABSOLUTO DOS LIMITES? 4
INCREMENT° DO EIXO X = .i33333
INCREMENT° DO EIXO Y = .222222

+ + +

+ + ++ *
+ +At +
+ *+
+ * ++
+ * +
+ * +
+ * +
* +
+ * +

+****** ***** **************** **+++****** ******* ****** *********X


+ * ++
+ * +
* +
+ * +
+ * +
+ * +
+ * ++
+ *+
- + +*+
+ + ++ *
+ + + + ++ *
+ + + *
*
*
*
*
*
*
Y
LISTAGEM DO PROGRAMA
JO CLS
20 PRINT "DESENHO DA EQUACAO POLAR"
30 PRINT
38 REM - ARRAN JO DE COORDENADAS PARA 90 PONTOS;
39 REM - NO PROGRAMA E CALCULADO UMA COORDENADA X EXTRA

72
40 DIM X(91 ) ,Y( 90 )
49 REM - NUMERO DE PONTOS A SER CALCULADO
50 N=90
52 REM - VALOR ABSOLUTO DE TODOS u LIMITES SAO IGUAIS
60 PRINT "VALOR ABSOLUTO DOS LIMITES";
70 INPUT 2:
80 PRINT
89 REM - CALCULA INCREMENT° DOS EIXOS DE ACORDO COM OS CARACTERES
POREIXO
90 PRINT "INCREMENT° DO EIXO X ="u2:/30
100 '/FRINT "INCREMENT() DO EIXO Y =11 ;21/18
110 :11RINT
120 :OR i=1 TO N
124 REM - CONVERTE GRAUS PAR RADIANOS
125 )=.06981317*1
129 REM - ENTRA FUNCAO NA LINHA 130 ---- (F= "FUNCAO")
130 :=2*(1-COS(D))
140 REM - CALCULA CADA COORDENADA CARTESIANA, ARREDONDA PARA
INCREMENT° DOS
149 REM - EIXOS MATS •ROXIMOS
150 X( I )=INT( ( (F)ECOS(D)/2:41-1 )*30)+.5)
160 Y(I)=INTM-F*SEN(D)/Z+1)*18)+.5
170 NEXT I
178 REM - ORDENA COORDENADAS DE Y(I) ATE:: Y ( N ) 14A OR DEM CR E SC EN T E
1.80 FOR J=1 TO N
190 FOR i=1 TO N-J
200 A=X ( I
210 13=Y ( I )
220 IF Ei<=(1.4.1) THEN 770
230 X(I)=X(I+1)
241) Y(I)=Y(1.4.1 )
250 X( DA )=A
260 Y(I+1 )=I3
270 NEXT I
280 NEXT J
289 REM - PR OX IMO PONT() A SER DE:3ENHADO EM 1
290 T=1
229 REM - PULA P ONTO FOR A DA F AI XA DE Y POSITIVO
300 FOR P=0 TO N-1
310 IF Y (P4-I ) >=0 THEN 330
320 NEXT P
329 RD-II-A..0OP PARA CHAMAR CADA INCREMENT° DE Y POR L.INHA PARA IMPR IMIR
330 FOR i=0 TO 36
340 T•T+P
349 REM - NUMER 0 N PONTOS A ,I::.R DESENHADO A CADA LINHA EM P
350 P=0
359 REM - TODOS OS PONTOS DESENHADOS?
360 IF T ›N THEN 380
369 REM - VALOR Y OU 1... INHA Y '?
370 IF Y ( T ) =I THEN 430
79 REM - IMPR IME EI X0 X?
380 IF i=if3 THEN 410
389 REM - IMPR I ME E I XO Y
390 PR INT TAB ( 30 ) '; "*" ;
400 t3OTO 870
410 S•N+1
420 GOT() 750
430 FOR L=T TO N
437 REM - PROXIMO PONTO A DESENHAR NA MESMA LINHA?
440 IF Y (L) >Y (T ) THEN 460
450 P=Plq
460 NEXT L.

73
470 IF P=i THEN 570
' REM 7 LOOP PARA ORDENAR COORDENADAS X COM Y CORRESPONDENTES
il7C:

IGUAISu
479 REM - REORDENA EM ORDEM CRESCENTE
480 FOR J=1. TO p
490 FOR L=i TO P-: )
500 C=X(T+L-i)
510 A=X(T+L)
520 IF C<=A THEN "0
530 X(T+L -1)=A
540 X(T+L)=C
550 NEXT L
560 NEXT J
569 REM - IMPRIME I:.::1: X() X?
570 IF I=i8 THEN 740
580 L= -1
590 S=0
600 FOR_ K=0 TO P-i
609 REM - MAIS DE UM PONTO NA MESMA LINHA DO GRAFICO
610 IF X(T+K)=L THEN 700
620 L=X(T +K)
6REM
29' - DESENHA PONTO NO EIXO I:
630 IF L=30 THEN 670
639 REM - DESENHA AA ESQUERDA DO EIXO V?
640 IF L.(30 THEN 680
650 IF S=1 THEN 680
659 REM - IMPRIME EIXO Y
660 PRINT TAB(30);"*";
670 S=1
0/7 REM - PONTO FORA DA FAIXA DE X POSITIYO?
630 IF LX60 THEN 870
689 REM - DESENHA PONTO
690 PRINT TAB(L);"+";
700 NEXT K
710 :IF 2=1 THEN 270
7i9 REM- IMPRIME EIXO Y
20 PRINT TAB(30)"*";
730 GOT° 870
740 D - 1
749 REM - LOOP PARA IMPRIMIR LINHA DO EIXO
750 FOR J=0 TO 60
/60 IF / X(S)0J THEN 840
iD7 REM - DESENHA PONTO NO EIXO X
770 PRINT '+';
780 FOR K =S TO T+P -1

-
7,;
:' 0 IF X(K)=X(S) THEN 820

800 S=K

810 GOTO 850

820 NEXT K

830 GoTO 850

0...J7 IMPRIME EIXO


REM — X
840 PRINT '.x.''' Y
050 NExT i

0J7 REM — I.•. EIx0 X

260 PRINT • Y

870 PRINT
800 NEXT 1

889 REM — ROTULA EIXO 1


)

890 PRINT TAB(30) n


Y i

74
Desenho de Funclies

Este programa calcula e desenha ate nove flinches. Todas as fungi:5es devem ser f(x), e sea) impresses no mesmo
conjunto de eixos.
Para determinar os eixos deve-se determinar os pontos extremos de x e y. Deve-se tambem fornecer os
incrementos que os pontos dos eixos x e y sofrerffo.
0 grafico produzido nao é convencional devido ao eixo x se apresentar na vertical e o y na horizontal. Para
ler o grafico deve-se rods-lo 90 graus no sentido horario ou ajustar-se mentalmente para considerar esse fato..
Outro ponto inconvencional é o de que os eixos x e y nao se cruzam no ponto 0,0. colocado urn lembrete
no ponto de interseccffo sobre o grafico.
Deve-se indicar as lunches a serem desenhadas como declaraches de prograrnas antes de rods-lo. As declaraches
de 221 a .229 esta-o reservadas para essa fmalidade. Elas devem ser colocadas na seqiiencia Y(1), Y(2), ... Y(9). Por
exemplo, se for desejado desenhar os graficos das funches f(x) = 2x + 1 e f (x) = N,f;, deve-se digitar:

221 (1)=2*X+1
-)-14 (2) =SCR (X)

0 comprirnento do eixo y é limitado pela largura do seu dispositivo de saida. 0 programa testa para que o
comprimento no exceda 61 espacos. Limitada em 61 espacos, mais urn para o eixo x e outro para o titulo do eixo y,
uma tela de 64 caracteres por linha nao perdera seu format() por urn salto de linha nao previsto, causado por uma
linha muito longa.
Querendo transferir para impressora e desejando uma linha de impressffo mais comprida, deve-se alterar .a linha
100, bem como escrever uma rotina para posicionar de acordo as chamadas TAB (Z) para Z > 63.

Exemplo:

Desenhar o grafico conjunto das funches f (x) = cos (x) e f (x) = sen (x).

>221 Y(1)=COS(X)
>222 Y(2)=SEN(X)
EXECKAO:
DESENHO DE FUNCOES

NUMERO DE FUNCOES A SEREM DESENHADAS2 2


EIXO-X :',EXTREMO - ESQUER DO ;EXTREMO D IR Ei TO INCREMENTO? -5,5,
E I XO-Y EXTREMO INFER I OR EXTREMO .sur ER I OR , NCR EMEVTO? -2,2 • et :I.

E IXO X ATRAVESSADO EM Y=-2


E IXO Y ATRAVESSADO EM X=-5

75
+++++++++++++++++++++++1++++++2++++++++++y
1
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
2 1
2 1
2 1
2 1
+ 2 1
+ 2 1
+ 2 1
4- 2 1
2 1
2 1
2 1
2 1

1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
21
2 1
2 1
2 1
2 1
X

LISTAGEM DO PROGRAMA

10 CLS
20 PRINT "DESENHO DE FUNCOES"
30 PRINT
40 DIM Y(9),A1(ii)
50 FOR 1=1 TO ii
60 READ Al(I)
70 NEXT 1
GO PRINT "NUMERO DE FUNCOES A SEREM DESENHADAS";
90 INPUT N
100 PRINT "ElX0 X=:EXTREMO ESQUERDO,EXTREMO DIREITO,INCREMENTO"

76
110 INPUT X1d(2,X3
120 PRINT "EIXO YEXTREMO INFERIOR,EXTREMO SUPERIOR,INCREMENTO",
130 INPUT Yi,Y2 7 Y3
1.40 Y2=(Y2-Y1)/Y3
150 IF Y2<=61 THEN 180
160 PRINT "EIXO Y M(.11. T:) GRANDE"
170 GO TO 120
100 PRINT*RINT
190 PRINT "EIXO X ATRAVESSADO EM Y=";Yi
200 is "EIXO Y ATRAVESSADO EM X="00.
210 PRINT
220 FOR XXi TO X2 STEP X3
221 REM FUNCOES Y(i) ATE Y(9) DEVEM SER ENTRADAS NAS LINHAS
22i A 229
222 REM DIGITADO NA LINHAS DE 221 A 229
250 FOR 1.1 TO N
c,J,
-:=1:vo REM - COLOCAR 0 VALOR DE Y A CADA INCREMENT() DE X
260 Y(I)=INT((Y(I)-Yi)/Y3+.5)
270 NEXT I
i REM - LOOP PARA LER VALOR A DADA INCREMENTO i)1 Y
:9'
280 FOR Irx0 TO Y2
288 REM - S CONTA 0 NUMERO DE VALORES A CADA
289 REM - INCREMENTO DE Y PARR CADA X
290 Srx0
300 FOR J=1. TO N
308 REM - DESENHA UM PONTO NESSE LOCAL?
309 REM - SE ,IM, GUARDA NUMERO DA FUNCAO EM T
310 IF Y(J)0I THEN 320
320 S=S+1
330 T=J
340 NEXT J
347 REM - TESTAR 0 NUMERO DE PONTOS A SEP COLOCADO EM CADA LOCAL
348 REM - SE 0, SERA /1•4." (APENAS PRIMEIRA LINHA),
349 REM - SE i COLOCA NUMERO DA FUNCAO. SE 2 OU MA'S, IMPRIME "IC/
350 IF S>0 THEN 360
360 PRINT Al(SGN(I)44(:1);
:370 (:JOTO 400
380 IFS. .)1 THEN 3 9 0
390 PRINT A% (T);
4(30 (30T0 400
410 PRINT "*";
420 NEXT 1
429 REM - ROTULA EIXOS NO ULTIMO ESPACO DE CADA EIXO
430 IF X>X1 THEN 430
440 PRINT "Y";
49 REM - AVANCA IMPRESSORA PARA PROXIMA LINHA
450 PRINT
458 REM - IMPRIME ESPACO AO rNvEs DE "4." Y
459 REM - AP OS P1=' :1:1 LINHA Y DE IMPRESSAO
460 Al(11)=" "
470 NEXT X
480 PRINT "X"
490 READ "1" Y "?" Y "3" - 7"4" Y`
"'"
J Y"t"
° Y"7" Y"8" Y
"9" "4."
Y
500 END

77
Interpolacgo Linear

Este programa calcula as coordenadas y de uma linha dadas as coordenadas x. E necessario saber as coordenadas de
dois pontos da mesma linha.
0 ponto a interpolado usando a seguinte formula:

(Y2 - Yi ) • (x - xi )
Y Y + (x2 - x1 )

onde: x1, y e = coordenadas do primeiro ponto da linha


x2, y2 = coordenadas do segundo ponto da linha
x = abscissa do ponto a ser interpolado
y = ordenada do ponto na linha cuja abscissa é x

Exemplos:

Uma tabela de conversao diz que 60 graus F ao 15.56 graus C e 90 graus F sao 32.22 graus F. Calcular a quantos
graus Celsius correspondem 73 e 85.6 graus Fahrenheit.
Foi apresentada uma nova tabela de vendas corn imposto adicional de 17.5%. Em quanto sera taxado um sofa
que ate hoje custou $455.68?

E XEC UcA 0:
INTERPOLACAO LINEAR

;x:., 'r DO PRIMEIRO PONTO? 60,15.56


X,Y DO SEGUNDO PONTO? 90,32.22
INTERPOLADOg X =? 73
.... .77in

MAIS PONTOS NESSA LINHA (1=SIM, 0::::NA))? 1.


'1
INTERPOLADO
= 1."11 en -7 '7

MWIS PONTOS NESSA LINHA 0—NAO) 0

NOVA LINHA (i=SIM, 0=NA0)? 3.

X,Y DO PRIMEIRO PONTO? 0,0


x, Y' DO SEGUNDO PONTO? i00,17.5
INTERPOLADOg X =? .455.60
Y = 79.744

MATS PONTOS NESSA, LINHA (i=SIM, Q=N(t0)? ,

NOVA LIN•A (I=SIM 0=NA0)? 0

LISTAGEM DO PROGRAMA

J. 0 I...
'Z.?. 0 P R 1 "INT E. I; P 0 I... AC A () I... N A i?.
30 DEEDBL

78
40 PRINT
49 REM - ENTRA COORDENADAS X E Y DE DOTS PONTOS DA LINHA
50 PRINT "X,Y DO PRIMEIRO PONTO";
60 INPUT Xi,Yi
70 PRINT "X,Y D( EGUNDO PO TO"
80 INPUT X2,Y2
89 REM - ENTRA COORDENADA X DO PONTO A GER INTERPOLADO
90 PRINT "INTERPOLADO: X =";
100 INPUT X
109 REM - CALCULA COORDENADA Y LORI ESPONDENTE
110 Y=Y1./.(Y2-Y1)/(X2-X1)*(X-X1)
119 REM - ARRE)ONDA, IMPRIME
1.20 PRINT i, Y = ";INT(Y*1000+.5)/1000
130 PRINT
140 PRINT "MAIS PONTOS NESSA LINHA (i=SIM, 0=NAO)";
150 INPUT 7.
i.60 PRINT
170 IF Z=i THEN 90
179 REM - IRTERPOLA EM OUTRA LINHA?
i80 PRINT "NOVA LINHA (i=SIM, 0=NA0)";
:190 INPUT Z
200 IF Z=1 THEN 40
210 END

79
I nterpo I acao Curvi I Inea

Este programa calcula as coordenadas y de pontos numa curva, dada a coordenada x correspondente. Deve-se informar
pontos conhecidos da curva, sem que dois deles tenham a mesma abscissa.
calculo é feito considerando-se o metodo de interpolacdo de Lagrange.
mimero de pontos conhecidos da curva que podem ser digitados é limitado em 50. Pode-se aumentar ou
diminuir esse limite, alterando a declaracao 30 de acordo com o seguinte esquema:

30 DIM X( P),Y(P )

onde P é o narnero de pontos conhecidos da curva.

Exemplos:

Considere a curva y = x3 - 3x + 3. Conhece-se os pontos (-3, -15), (-2, 1), (-1,5), (0,3), (1,1), (2,5) e
(3,21) da curva. Qual o valor de y quando x= -1.65 e 0.2?
Dados os seguintes pontos da curva seno, qua1 o seno de -2.47 e 1.5?
(-5,0.958) (0,0)
(-4,0.757) (1,0.841)
(-3,-0.141) (2,0.909)
(-2,-0.909) (3,0.141)
(-1,-0.841) (4,-0.757)
(5,-0.959)
EXE CUcAO:
INTERPOLACAO CURV 'LINEA

7
NUMERO DE PONTOS CONHECIDOS? i

A y l• DO PONTO d. ....) — 3, - 5
-.)
A y r DO PONTO c.. —271
.-1, ,.•
A I DO PONTO ,:) ., — 1,5
A,I DO PONTO 4 ? 0,3
r:.
X 7 Y DO PONT° ...) '..., 17 1
.,-,
X,Y DO PONTO 6
7 71 '",
X,Y DO FONTO 1 ,.1 r: 4I

INTERPOLACAO ii X=? — 1.65


Y = 3.4578750000000001

HATS X ''ESA CURVA (1=6IM, 0=NA0)20


X EM OUT RA CURVA (1=SIM, 0=NA0)21

NUMERO )E PONTOS CONHECIDOS? 11


X ,Y DO 'ONTO 1 ? —5
- 5 .958
X,Y DO ▪ ONTO 2 — 47 .757
X, •1 DO 'ONTO 3 ? — 3,— .141
X,Y DO 5 ONTO 4 ? - 2,— .909
X,Y DO 'ONTO — 1,— .841
X,Y DO "ONTO 6 2 0,0
X,Y DO "ONTO 7 2 1 7 .841
X 7 Y DO ▪ ONTO 8 2,.909
X,Y DO 'ONTO 9 ? 3,.141
X,Y DO .'ONTO 10 '7 4,— .757
X,Y DO '
ONTO ? 57—.959

80
INTERPOLAC-AO: X='? -2.47
Y= -.6218395970641992

MAIS X NESSA CURVA (1=SIM, 0=NA0)? 1.


INTERPOLACAO: X=? 1.5
Y= .9971637992858888

MAIS X NESSA CUR VA (1=SIM, 0=NA0)? C)


MAIS X EM OUTRA CURVA (1=SIM, ()::::NA()) "3 0

LISTAGEM DO PROGRAMA

10 CLS
20 DEFDBL ••Z DEFINT IyJ
28 REM - LIMITE X() E Y() AO MAXIMO NUMERO DI PONTOS A SER ENTRADO
29 REM - PARA QUALQUER C(.)1 VA DESEJADA
30 DIM X(50), Y(50)
40 PRINT "INTERPOLACAO CURVILINEA"
50 PRINT
60 PRINT "NUMER0 DE PONTOS CONHECIDOS";
70 INPUT P
80 FOR i•1 TO P
89 REM - ENTRA COORDENADAS DOS' PONTOS CON•ECIDOS DA CURVA
90 PRINT "X,Y DO PONTO";I;
100 INPUT X(I),Y(I)
NEXT :i
120 PRINT
12T REM - ENT RA COORDENADA X DO PONT() A SER INTERPOLADO
130 PRINT "INTERPOLACAO X=";
140 IN•HT A
150
158 REM - CALCULA i CORRESPONDENTE DE ACORDO COM 0 METODO
159 REM - DE LAGRANGE
160 FOR J=1 TO P
170 T=i
180 FOR I=1 TO P
190 IF I=J THEN 210
200 T=T*(A-X(I))/(X(J)-X(I))
210 NEXT I
220 B=U+T*Y(J)
230 NEXT J
239 REM - IMPRIME RESULTADO
240 PRINT "Y=";r3
2•0 PRINT
REM - INTERPOLA it PONTOS NA MESMA CURVA?
260 PRINT "MAIS X NESSA CURVA (i=SIM, 0=NA0)";
270 INPUT C
280 IF 1=1 THEN 120
289 REM. - REINICIO OU FIN DE PROGRAMA?
290 PRINT "MATS X EM OUTRA CURVA (1=3IM 7 0=NAO)il;
300 INPUT C
310 IF C=1 THEN 50
320 END

81
Integracab: Regra de Simpson

Este programa calcula a integral real de uma funcao de acordo corn o metodo de Simpson.
A metodologia a opcional: pode-se fornecer ou a funcao ou os valores dos pontos no intervalo especificado.
Para ambos os metodos, deve-se fornecer os limites de integragao e os incrementos entre cads urn dos pontos dentro
dos limites.
Se a funcao a integrar é conhecida, ela deve ser digitada antes de iniciar a execucab do programa. Ela deve ser
definida na linha 330. Por exemplo, a funcao f (x) = x3 sera digitada como segue:
330 X=X E 3
Exemplos:

Achar a integral finita da funcao f(x) = x3 entre 0 e 2 corn incrementos de .2 e .1.


Achar a integral de uma curva entre -1 e 1, cujos pontos conhecidos sac) os seguintes:

(-1,0.54) (0.25,0.969)
(-0.75,0.73) (0.5,0.878)
(-0.5,0.878) (0.75,0.73)
(-0.25,0.969) (1,0.54)
(0,1)

>330 X=XL3

EXECUcAO:
INTEGRACAO:: REGRA DE SIMPSON

SELECAO*4 1=FORMULA CONHECIDA, 0=FORMULA DESCONHECIDA? 1.


MENOR, MAIOR LIMITES DE INTEGRACAO? 0,2
INCREMENT° EM X? .2
INTEGRAL E 4

>RUN
INTEGRACAO:: REGRA DE SIMPSON

SELECAO:: 1=FORMULA CONHECIDA, 0=FORMULA DESCONHECIDA?


MENOR, MAIOR LIMITES DE INTEGRACAO? 0,2
INCREMENT() EM X? .i
INTEGRAL E 4

>RUN
INTEGRACAO:: REGRA DE SIMPSON

SELEC•O 1=FORMULA CON•ECIDA, 0•FORMULA DESCONHECIDA? 0


MENOR, MAIOR LIMITES DE INTEGRACAO? -1,1
INCREMENT° EM X? .25
PRIMEIRO, ULTIMO VALOR DL F(X)? .547 .54
VALOR DE F: (f) NO INTERVAL° i. (X=-.75)? .73
VALOR DE F(X) NO INTERVAL° 2 (X=-.5)? .878
VALOR DE. FKX) NO INTERVAL() a (X=-.25)? .969
VALOR DE I (I) NO INTERVALO 4 (X= (J)? i.
VALOR DE r(X) NO INTERVALO (X= .25)? .969
VALOR DE F' (x) NO INTERVAL° 6 (X= .5)? .878
VALOR OE F(X) NO INTERVAL° 7 (X= .75)2 .73
INTEGRAL E 1.682

82
LISTAGEM DO PROGRAMA
10 CLS
20 PRINT "INTEGRACAO: REGRA DE SIMPSON"
30 PRINT
40 PRINT "SELECAO: 1=FORMULA CONHECIDA, 0=FORMULA DESCONHECIDA";
50 INPUT S
6C) REM - DEFINA SUA FUNCAO NA LINHA 330
70 PRINT "MENOR, MAIOR LIMITES DE INTEGRACAO";
80 INPUT A,I3
90 PRINT "INCREMENT° EM X"-
Y
100 INPUT Xi
108 REM - 0 INCREMENT° DEVE DIVIDIR 0 INTERVALO EM PARTES IGUAIS
109 REM - sr NAO, TROCAR INCREMENT()
110 IF (13-A)/X1OINT ((3•A)/X1) THEN 90
12(3 IF 6=1 THEN 160
128 REM - FORMULA NAO CON•ECIDA;ENTRAR VALOR DA FUNCAO
129 REM - NOS LIMITES DE INTEGRACA0
130 PRINT "PRIMEIRO, ULTIMO VALOR Dl F(X)";
140 INPUT Y1,Y2
150 GOTO 180
159 REM - FORMULA CONHECIDA; CALCULA F(X) NOS LIMITES DE INTEGRACAO
160 X=A : GOSUB 330 : Y1=X
170 X=I3 : GOSUB 330 : Y2=X
180 C=0
190 D=0
129 REM - LOOP PARA CADA SUBINTERVALO
200 FOR I=1 TO (B-A)/X1-.5
210 IF 6=1 THEN 250
219 REM - ENTRE 0 VALOR CONHECIDO DA FUNCAO A CA DA INTERVAL°
220 PRINT "VALOR DE F(X) NO INTERVAL° ";I;"(X="04.I*X1;")";
230 INPUT '(
240 GOTO 260
249 REM - CAL(..ULA F(X) A CADA SUBINTERVAL°
250 X=A+INX : GOSUB 33( : Y=X
259 REM - INTERVAL() PAR OU TM PAR')
60 IF I/2=INT(I/2) THEN 290
.-1n
e.7 REM - SOMA TODOS VALORES DE FUNCAO DOS INTERVALOS IMPARES
270 C=C+Y
280 GOTO 300
89 REM - SOMA TODOS VALORES DE FUNCAO DOS INTERVALOS PARES
290 D=D+Y
300 NEXT I
309 REM - CALCULA INTEGRAL, IMPRIME
310 PRINT "INTEGRAL E";)(1/3*(Y1+4*C4-2*D4.Y2)
319 REM - PULA 'FUNCAO' GO SUB PARA TERMINAR
320 GOTO 350
330 REM - DEFINE AQUI A FUNCAO. (X="FUNCAO")
340 RETURN
350 END

83
Integracab: Regra do Trapezio

Este programa calcula a integral aproximada de uma tune-do. 0 calculo tem por base a regra do trapezio. Deve-se
fornecer os limites de integracao e o niimero de intervalos dentro do limite.
A funeao a ser integrada deve ser digitada antes de rodar o programa. A tuned° de x fica definida na linha 210. Por
exemplo, a tuned° f(x)= x 3 sera digitada assim:

210 X=Xt3

Exernplos:

Achar a integral finita da funea-o f(x) =x3 entre 0 e 2 corn 10 e 20 intervalos.


Achar a integral finita da funcab f(x) =x-2 entre 1 e 2 e 2 e 3 usando 10 subintervalos.

>2i0 X=XF.3

EXECUcA0
INTEGRACAOr. REGRA DO TRAPEZIO

(ENTRE 0,0 PARA FINALIZAR 0 PROGRAMA)


LIMITES DE INTEGRACAO (MENOR MAIOR)? 0,2
NUMERO DE INTERVALOS? 10
INTEGRAL = 4.04

LIMITES DE INTEGRACAO (MENOR, MAIOR)? 0,2


NUMERO DE INTERVALOS? 20
INTEGRAL = 4110i

LIMITES DE INTEGRACAO (MENOR, MAIOR)? 0,0

>210 X=1/XE2
>RUN
INTEGRACA0r, REGRA DO TRAPEZIO

(ENTRE - 0,0 PARA FINALIZAR () PROGRAMA)


-.1
LIMITES DE INTEGRACAO (MENOR, MAIOR)? i , C..
NUMERO DE INTERVALOS? 10
INTEGRAL = .50i455
171
LIMITES DE INTEGRACAO (MEN(1R, MAIOR)? to.
. S.)

NUMERO DE INTERVALOS? 10
INTEGRAL = .i668i3

LIMITES DE INTEGRACAO (MENOR, MAIOR)? 0,0

LISTAGEM DO PROGRAMA

JO CLS
20 PRINT INTEGRACAO: REGRA DO TRAPEZIO"
30 PRINT
40 REM — DEFINA A FUNCAO NA LINHA 2i0
5C) PRINT "(ENTRE 0,0 P AR A FINALIZAR 0 PRO(:aRAMA)"
60 PRINT "LIMITES DE INTEGRACAO (MENOR,MAIOR)";

84
70 INPUT A,B
79 REM - I:" "I.11 DE PROGRAMA?
80 IF A=B THEN 230
90 PRINT "NUMERO DE INTERVALOS";
100 INPUT N
ii0 I=0
119 REM - I) = TAMANHO DE CADA INTERVAL°
120 D=(B-A)/N
129 REM - ADICIONA A AREA DE CADA TRAPEZIO
130 FOR J=A TO B+D/2 STEP I)
140 X=J N GOSUB 210 I=I+X
150 NEXT J
159 REM - CALCULA INTEGRAL, IMPRIME
160 X=A 3 GOSUB 210 A=X 3 X=B GOSUB 210
170 I=(I-(A+X)/2)*D
180 PRINT "INTEGRAL ="0.
190 PRINT
199 REM - REINICIA PROGRAMA
200 GOTO 60
210 REM - DEFINA A FUNCAO AQUI ("X. "1
20 RETURN
230 END

85
Integracgo: Quadratura de Gauss

Este programa calcula a integral finita aproximada de uma tune-do. Deve-se fornecer os limites de integracao e o numero
de intervalos dentro dos limites.
0 intervalo de integracao é dividido em subintervalos. iguais. A integral finita é calculada sobre cada subintervalo
usando a formula de Gauss. As integrais dos subintervalos s-do somadas para a obtene-do da integral do intervalo inteiro.
Deve-se colocar a funcao a ser integrada antes de rodar o programa. A tuned() de x deve ser definida na linha 360.
Por exemplo, a funedo f(x) =x3 deve ser entrada como:

360 X9=X9AX9*X9

Atencio: Nao troque multiplicacoes ou divisoes sucessivas pela simbologia de flecha acima.

Exemplos:

Achar a integral finita da funcao f(x) =x3 entre 0 e 2 corn 10 e 20 subintervalos.


Achar a integral finita da tune-do f(x) =x-2 entre 1 e 2 com 10 subintervalos.

>360

E X EC U cAO:
INTEGRACAO QUADRATURA DE GAUSS

LIMITLS DE INTEGRACAO KMENOR,MAIOR)? 0,


NUMERO DE INTERVALOS? i0
INTEGRAL = 4.000000027ff,9i43

TROCA DADOS E RECALCULA?


(0=NAO, 1::::NOVOS LIMITES DE INTEGRACAO, 2=NOVO NUM.DE INTERVALOS)? 2
NUMERO DE INTERVALOS? 20
INTEGRAL = 4.00000002797286

TROCA DADOS E RECALCULA?


(0NAO, i=NOVOS LIMITES DE INTEGRACAO, 2=NOVO NUM.DE INTERVALOS)? 0

EXECUcAO:
INTEGRACAO:= QUADRATURA DE GAUSS

LIMITES DE INTEGRACAO (MENOR,MAIOR)? i


NUMERO DE INTERVALOS? 10
INTEGRAL :::: .5000000034959764

TROCA DADOS E RECALCULA?


1.0=1''iAO I=NOVOS LIMITES DE INTEGRACAO „D It 1%1 T I._ 0 :1.
LIMITES DE INTEGRACAO (MENOR,MAI(.•iR) 2 7
NUMERO DE INTERVALOS? i0
INTEGRAL = .1666666678329276

TROCA DADOS E RECALCULA?


(0=NAO, 1=NOVOS LIMITES DE INTEGRACAO, 2=NOVO NUM.DE INTERVALOS)? 0

86
LISTAGEM DO PI OGRAMA
10 CLS
20 PRINT "INTEGRACAO: QUADRATURA DE GAUSS"
30 DEFDBL A-7. : I: 1::.1•• I,J
40 PRINT
50 REM — ENTRE AQUI A FUNCAO DA LIN•A 360
59 REM — ABCISSAS E PESOS DE F•TO•ES PARA 20 PONTOS DA INTEGRACAO
DE GAUSS
60 DATA .076526521,.15275339,.22778585,.149172997 .37370609
70 DATA .14209611,.510867,.13168864,.63605368,“1181953
80 DATA .74633191,.10193012,.03911697,.083276742,.91223443
90 DATA .062672048,.96397193,04060143,.9931286,.017614007
i00 PRINT "LIMITES DE INTEGRACAO (MENOR,MAI(R)";
110 INPUT x„.Y
120 PRINT "NUMERO DE INTERVALOS";
130 INPUT N
140 S=(Y—X)/N/2
150 T=X+S
160 R=0
169 REM — CALCULA INTEGRAL PARA CADA INTERVALO
170 FOR 1=1 TO .0
180 P0
189 REM — CALCULA FATOR DE SOMA PARA CADA SUBINTERVAL°
190 FOR J=1 TO 10
200 READ A,B
210 X9=S*A.4.Y :GOSUB 360 F1=X9 . X9=T—S*A 1e GOSUB 360
220 1•'=F+1:*(FiJcX9)
230 NEXT J
240 RESTORE
250 R=R+P*S
260 T=T+24S
270 NEXT I
280 PRINT "INTEGRAL =";R
290 PRINT
30-0 PRINT "TROCA DADOS- E RECALCULA?"
3i0 PRINT "(0=NAO, i=NOVOS LIMITES DE INTEGRACAO, 2=NOVO NUM.DE
INTERVALOS)";
'n -m INPUT S
'"n IF S=1 THEN 80
340 IF S=2 THEN 100
349 REM — PULA A •ROTINA ."FUNCAO' PARA FIM
350 00TO 380
360 REM — ENTRE A FUNCAO AQUI (X9="FUNCAO")
370 RETURN
380 END

87
Derivacgo

Este programa calcula a derivacdo de uma dada funcao, num ponto determinado.
Deve-se entrar a funcffo considerada antes de rodar o programa. A funcffo sera entrada na declaracffo da linha 200.
Por exemplo, para calcular a equacffo f(x) =x2 + cos(x) deve-se digitar o seguinte:
200 Z=Z-HZ+COS(Z)

Exemplo:

Calcule a derivacdo da equacffo x 2 + cos(x) =0 quando x = -1, x =0 e x =1.

>200 Z=Z*Z+COS(Z)

EXECUQAO:

DERIVACAO
(ENTRE X=99999 PARA FIM DE PRO(: RAMA)
DERIVACAO DE X=2 -1 E.-1.158660868671875
DERIVACAO DE X=? 0

DERIVACAO DE A -:
E 1.15869140625
DERIVACAO DE X=2 99999

LISTAGEM DO PROGRAMA

10
20 'RINT "DERIVACAO"
30 )EFDBL i...Z
40 )EFSNG N
50 DRINT
60 REM - ENTRE A FUNCAO DEFFNC(X) AQUI
70 DRINT "(ENTRE X=99999 PARA FIM DE PROGRAMA)"
80 5 RiNT "DERIVACAO DE v -"-
90 INPUT Xi
99 REM - TESTE PARA FIM DE PROGRAMA
100 IF X1=99999 THEN 220
110 D=0
110 REM - CALCULA DIFERENCA Dh (WOCIENTE
119 REM - PARA PONTOS PROXIMOS A X
120 FOR N=9 TO 10
130 D1=D
140 X=X1+.5EN
150 Z=X g GOSUB 200 g F' n Z=Xi GOSUB 200
160 D=(F -7.)/(X -X1)
1.70 NEXT I` RM
IMPIE
179 REM - CALCULA DERIVACAO APROXIMADA DA FUN
180 PRINT ' E";2*D -Di
189 REM - REINICIA PROGRAMA
190 GOTO ao
200 REM -DEFINA A FUNCAO AQUI (Z="FUNCA( ")
210 RETURN
220 END
88
Ra fzes de Equacoes Quadraticas
Este programa calcula as raizes de uma equacao quadratica. A equacdo deve ser inserida na seguinte forma:

ax2 + bx + c = 0

onde a, b e c sao coeficientes reais


A formula usada para calcular as raizes é:

-b ± b2 - 4 • a • c
raiz
2• a

Exemplo:
Calcular as raizes das seguintes equagoes:

2x2 + x - 1 = 0
x2 + 4x + 6 = 0
EXECUQAO:
RAIZES DE E(WACOES QUADRATICAS

COEFICIENTES A,B,C? 2 7 1,-1


RAIZES(REAIS):: i.,

MAIS DADn'? 0::::NA0)? j.

COEFLCIENTES A,B,C? i Y 4 6
RA12:ESCOhP1...EXAS) 17 -L + OU - 1.4142i 1
1AI3 DAD032 0=NA0)? 0

LLAAGEM DO PROGRAMA

10 CL3
20 PRINT "RAIZE3 DE EQUACOES QUADRATICAS"
30 PRINT
o7 REM - ENTRE COEFICIENTES A,B,C DE El*X +C
40 PRINT 'COE.FICIEWIES. A,B,,
INPUT A,BC
60
70 R::::SCIR(ABS(S))
REM - RAIZES COMPLEVAS?
30 IF S>0 THEN 110
REM CALCULA RAIZES, ROTULOS I IMPRIME
?O-PRINT "RAIZES(REAIS):: ";( -13 -R)/(24A) ";(-P-R)/(2*A)
100 GOTO 1.20
110 PRINT "RAI2EE(COMPLEXAS):: ";-B/(24(A);" + OU -"0/(2*A)C I"
120 PRINT
.1 REM - REINICIO OU EIM DE PROGRAMA?
130 PRINT 'MATS DAD 1. 1=21M, 0=NA0)";
140 INPUT X
150 IF X=1 THEN 30
160 END

89
Raizes Reais de Polinornios: Newton

Este programa calcula as raizes reais de polinennios com coeficientes reais. Deve-se fomecer uma estimativa de
cada raiz.
Os calculos Sao realizados usando o metodo de Newton, para aproximacdo das raizes de equaciies. 0 valor do
erro e o derivativo sao incluidos para cada raiz calculada.
A equacao entrada presentemente se restringe ao grau 10. Pode-se entrar com graus maiores modificando-se
as declaracoes 30 e 40, de acordo corn o seguinte esquema:

30 DIM ACV+ /),B(N+/)


40 FOR I=1 TO N+1
onde N é o grau da equacao.

Exemplo:

Achar as raizes de 4x 4 2.5x2 - x + 0.5.

EXECUcAO:

RAIY.ES REAIS DE POLINOMIOSg NEWTON

GRAU DA EQUACAv:: .4

ENTRE OS COEFICIENTES EM ORDEM DO GRAU MENOR FARA .1 mciia


17.
COEFICIENTE DE XL 0 ": 11

COEFICIENTF. 1)1........ ...:


1...C- EFI1..IENTE DE Xr...

C 1. i"-.1 D 117: 0
"*,
COEFICiENTE DE XL 4

RAIZ ERRO DERIVAW)0

.303576 2.'
?:502SL - Ot"; . 2.0702

OUTRO VALOR (1:::: SIM, NA0)? 0

OUIRA FUNCAO 1. 1 = SIM, u = NA0)? 0

LISTAGEM DO PROGRAMA

i0
Z.0 PRINT ' RAIZE' REAL.:::: DE FOLINOMIO: NEWTON'
FRIN1
REM - F FA '..J F DO ENE.IIMO °RAU NUDE FI:4RA
DIM A. -:-.1.),F3 1.01) ,.
REM - DEVE MODIFICADO PARA TESTAR DE . A N+1
30 DIM l'-1,1 :..:70),(3(f.:.;0)
,'

REM - INICIALIZA t.)1WIAVEL.:3 DO 1)RRANjO


AO FOR 1=1 TO ii

0 NEXT I
41 GRAUS DA EQUACAO ;

90
90 INPUT N
1•0 PRINT '1(J.:141" R E: O&COEF CIENTE '':*; Eil ()R D F.: Fi D 0 G R AL1 MENORPARAOMAIOR)"
110 FOR .1=1 TO NA-I
120 PRINT "COEFICIENTE DE XL"; I-1; " "" i. 7,.
130 INPUT ((I)
140 NEXT I
150 FOR 1=1 TO 10
15'9 REM - CALCULA COEFICIENTE DO DERIVATIVO DO POLINOM10
160 13(I)=A(I.4.1)*I
I. NEXT .1
180 PRINT
i89 REM - INICIALIZA ESTIMATIVA
in PRINT "LSTIMATIVA' ;
200 INPUT v 1...
2i0 c:.::0
220 S=i
L30 Ei=0
240 F0=0
'') REM CON•A ITERA.:;OES
50 -:;(:'i
(.1 FOR i=i TO N-4-1
i,o7 REM - CALCULA VALOR DA FUNCAO
270 FO=FOA(I)AS
70) REM - CALCULA VALOR DO DERIVATiVO
2ao Fi=Fi+B(I)*S
290 Sm,SX
MO NEXT 1
307 REM - TESTE FARA DERIVATIV0=0; SE SIM, I°' 11 E IMPRiME
10 IF Fi::::0 THEN 370
319 REM - ACHA NOVA ESTIMATIVA USANDO A ANTERIOR
:''''n S=X-FO/F1
..,
..:.:.;-, REM - SE NOVA ESTIMATIVA = ANTERIOR PARA E IMPRIME
330 IF X.S THEN ::.;10
. s::: REM - SALVA NOVA ESTIMATIVA
.
::340
50 IF Q>100 THEN 500
':i60 00TO 220
370 PRINT "DERIVATIVO = 0 EM X ::::". 7 '.Y
380 GO•O 1.9b
390 PRINT
400 PRINT "RAIZ", "ERRO", "DERIVATIVO"
410 PRINT X,FD,F1
420 PRINT
42? REM - REFAZ PARA ACHAR OUTRA RAIZ DA MESMA FUNCAO?
430 PRINT 'OUTRO VALOR (im:SIM, 0=NAO)';
440 INPUTA '
450 IF A=1 THEN 180
45T REM - REINICIA OU FINALIZA PROGRAM A?
460 PRINT 'OUTRA FIJNCAO (1=3IM, 0=N AO)";
470 INruT A
•20 IF A•1 THEN 40
490 GO TO 560
499 REM - IMPRIME YALORES CALCLJLADOS AP OS 100 ITERACOES; PROCURA
MATS 100 2
500 PRINT "100 ITERACOES CO1''iPLETADAS:1";
510 PRINT " X =";X;" •(X) = ";F0
519 REM - PROCURA MAIS 100?
520 PRINT "CONTINUA? (1=5IM 0=NA0)";
530 INPUT A
540 IF Ar4:1 THEN 210
550 GOTO 430
560 END

91
Raizes de Polinomios: Pesquisa do Intervalo Medico

Este programa calcula rafzes de polinomios dentro de um intervalo dado. 0 programa primeiro gera pesquisa sobre
dois ninneros aleatorios dentro do intervalo que tenham sinais opostos. Se é encontrada uma 1;nudanca de sinal, entab
a raiz a calculada pelo metodo do intervalo medio. Se nao houver mudanca de sinal, outro intervalo é requisitado.
Podem aparecer erros neste programa por uma serie de razoes. Primeiro, uma raiz pode ser calculada onde nab
deveria. Isso pode acontecer se o menor ponto estiver tao proximo a zero que a raiz é encontrada por causa do
arredondamento. Segundo, duas rafzes podem estar tao prOximas que o programa nunca acha sinais opostos entre elas.
Dal resulta que nenhuma raiz a calculada.
E necessario entrar a equacao antes de rodar o programa. A equacao sera defmida como funcao de x na declaracao
440. Por exemplo, se for desejado achar as rafzes da equacao f (x) = 4x4 — 2.5x2 — x .5, deve-se entrar:

44n .X3::::4*X9*X9KX9*X9 —2.!DX9*X9

Exemplo:

Calcular as razes da fungdo f (x) = 4x4 - 2.5x2 - x + 0.5.

>440 X9=4*X9.x.X9*X9*X9-2..z;1-A7R-A7-r.

EXECUPAO:

RAIZES DE POLINOMIOS PESOUISA DO INTERVAL° MEDI°

(PARA FINALIZAR ENTRE 0,01


INTERVALO (LIMITE INFERIOR,SUPERIOR)? .,0
Ni- O FOI ENCONTRADA MUDANC ► DE SINAL
INTERVAL° (LIMITE INFERIOR,SUFERIOR 0,1
RAIZ • .303578

INTERVALO- (LIMITE INFERIOR,cAFERIOR) 0,0

LIST AOEM DO FROGRAMIti

JO CI...S
Cl PRINT "RAIZES DE POLINOMIOSg PESQUISA DO INTERVAL° ill
30 PRINT
40 REM - ENTRE A FUNCAO (DEFFNR(X)="FUNCAO") AQUI
50 DIM D(3)
60 PRINT "(PARA FINALIZAR ENTRE 0,0)"
69 REM - FORNECER INTERVAL° PARA PESQUISA
70 PRINT "INTERVAL° (LIMITE INFER1OR,3UPERIOR)";
80 INPUT (1,13
09 REM -- TESTE PARA VERIFICACAO DA DIGITACAO
90 IF AOR THEN 130
99 REM -- FIM DE PROGRAMA?
100 IF A•0 THEN 46()
110 PRINT "-- OS LIMITES DE INTERVALO NA() PODEM SER IGUAIS
120 GOT° 70
1.301 IF A<E3 THEN 160
140 PRINT "-- LIMITE INFERIOR DEVE SER ENTRADO PRIMEIRO

92
150 GOT° 70
160 X9=A : GOSUB 440 : A1=SGN(X9)
170 X9=B : GOSUB 440 : 1.,1=SGN(X9)
179 REM - TESTE DE RAIZ EM AMBOS OS LIMITES
180 IF Al*Bi=0 THEN 370
189 REM - TESTE PARA SINAIS OPOSTOS NOS LIMITES DO INTERVAL°
130 IF Ai*B1(0 THEN 290
199 REM - Loor PARA ACHAR 1000 NUMEROS COM SINAIS DIFERENTES
Ni; FUNCAO
200 FOR T=.1 TO 1000
210 1f.=A+RND40)*(B -A)
220 .fit 9=X : GOSUB 440 : Xi=SGN(X9)
,7,---,c,
g.t;..Y REM - YER A RAIZ DO NUMERO ALEATORIO; SE SIM, TERMINO, IMPRIME
230 IF X1=0 THEN 410
239 REM - TESTE DE SINAIS OPOSTOS NO ALEATORIO E LIMITE INFERIOR
240 IF Ai*Xi<0 THEN 280
249 REM - TENTA OUTRO NUMERO ALEATORIO
250 NEXT I '
260 PRINT "NAO FOI ENCONTRADA MUDANCA DE SINAL"
270 GOTO 70
1-!-.70 REM - ACHOU MUDANCA DE SINAL; CALCULA RAIZ

230 B=X
1::. o o REM - GUARDA POSITIVO EM D(3), NEGATIY0 EM D(1)
289 REM - D(i) E D(3) TORNAM -SE LIMITES DO INTERVAL°
290 D(2+A1)=A
300 D(2 -A1)=B
09 REM - CALCULA INTERMEDIARIO ENTRE OS PONTOS
310 Y=(D(i)+D(3))/2
320 X9=Y : GOSUB 440 : Yi=SGN(X9)
.71' . .1 REM - 'TI STE is RAIZ DO PONTO MEDIC'
330 IF Yi=0 THEN 410
REM - PEGA NOVO LIMITE PARA APROXIMAR A RAIZ
340 D(24.Y1)=Y
349 REM - YER SE 0 VALOR E PROXIMO DE ZERO PARA SER RAIZ
350 IF ABS(D(i) -1 (3)) 1 ABS(D(1)+ABS(D(3)))(5E -6 THEN 410
359 REM - RETESTA COM NOVOS LIMITES
360 GOTO 310
69 REM - RAIZ NUM LIMITE DO INTERVAL O; AC•AR QUAL E IMPRIMIR
370 IF.A1=0 THEN 390
380 Y=B
390 GOT;} 41.0
400 Y=A
•10 PRINT "RAIZ -";Y
420 PRINT
429 REM - REINICIA •ROGRAMA
430 GOTO 70
440 REM - DEFINA A FUNCAO AQUI (X9="FUNCAO")
450 RETURN
460 END

93
Polinomio Trigonometrico

Este programa calcula urea funcao trigonometrica num dado ponto. A fungab deve ser entrada da seguinte forma:

f (x) = A, sen (x) + B, cos (x) + A2 sen (2x) + B2 sen (2x) + An sen (n • x) + Bri cos (n • x)

onde n = mimero de pares de coeficientes.

Os coeficientes da funcao devem ser entrados na declaracao da linha 30. A declaracab DATA deve incluir o
niimero de pares de coeficientes (n) e os coeficientes do polinomio, o que sera entrado como segue:

30 D n, A,, B,, A 2, B2, An, Bn

Exemplo:

Resolva a equacao seguinte para os angulos de 45, 90 e 105 gfaus:

f (x) = sen(x) + 2 • cos (x) - 2 • sen(2x) + cos (2x) + 5 • sen (3x) - 3 • cos (3x)

)30 DATA :7; i 2 1. y 3

EXEC UcA0 :

P M 0 R. G 0 ri 0 ME: R
ti
(ENTRE ANGUL0=99999 AR A F INALIZAR 0 P R OGR AMA )
ANGUL0?
F( 45 3.09562

ANGULO? TO
F 90 )=-2.a3175

ANGULO? 1.05
F( 105 )=-1.5469

ANGULO? 99999

LISTAGEM DO F ROGR AMA

1.0 CLS
20 PRINT "FOLINOMIO TI' IGONOMETR ICO"
REM ENT
RE A LINHA DATA AQUI . ELA CONTEM 0
31. REM NUMER 0 DE P AR
ES SEGUIDO PELOS COLE ICILNTES
40 PRINT
t:j 0- DEFINT
0 PRINT ' ( ENTRE (iNGUL0=9999 ARA FI•ALIZAR 0 Pi OGRAMA)"
PRINT ' ANGULO";
f.30 INPUT R

94
89 REM — FIM DE PROGRAMA?
90 IF R:;99999 THEN 210
99 REM — PEGA NUMERO DE PARES DE TERMOS DO POLINOMIO
100 READ N
109 REM — LOOP PARA PEGAR YALORES DOS COEFICIENTES DA TABELA
110 FOR I::::1 TO N
120 READ A,I3
i29 REM — CALCULA. VALORES Di FUNCAO NO ANGULO X
130 Z=Z+A*SEN(I)cR)41i*COS(I*R)
140 NEXT I
150 REM — ImrRimE RESULTADOS
160 PRINT "F( ";R;")=";,Z.
16T REM — PREPARA PARA RELER OS COEFICIENTES DA FUNCAO
170 RESTORE
1B0 PRINT
190 Z=0
199 REM — REINICIA PI )(:;I
200 GOTO 70
210. END

95
Equagoes Simultaneas

Este programa resolve um sistema de equac6es lineares. 0 nfimero de coeficientes em cada equacao deve ser igual
ao numero de equacoes a ser resolvido. Deve-se digitar os coeficientes de cada equacao.
A declaracao DIM na linha 30 limita o mimero de equagOes que podem ser resolvidas. Pode-se trocar esse lirnite
de acordo com o esquema seguinte:

30 DIM A(RyR4A)

onde R = niunero mildrno de equacoes

Exemplo:
Resolva o seguinte sistema de equacoes:

x + 2x + 3x = 4
3x + bx =1
-3x + 4x - 2x = 0

EXECOPAO:
EOUACOE3 51MLTANLA:.,

NUMER0 DE ECIUACOES? 3
MATRIZ DE COEFICIENTES
EQUACAO 1
COEFICIENTE
COEFICIENTE
%)
CONSTANTE? 4
EKWAC•O
COEFICIENTE
COEFICIENTE 2 ? 6
COEFICIENTE 3 ? 0
(:.ONSTANTE? 2
ElatJACAO 3
COEFICIENTE 1.) -3
COEFICIENTE 2 f 4
COEFICIE1 E.3
CONSTANTE? 0

LISTAGEM DO PROGRAMA

10 CLS
20 PRINT "EQUACOES SIMULTANEAS"
,Tho REM - LIMITES A() EM A(R v R4.1. ONDE R.:4'1AX NUMERO DE EQUACOE
20 DIM A(20,1)

96
4F PRIM
50 DEFDBL A.... g DEFINT I,J,K
60 PRINT "NUMERO DE EQUACOES;
70 INPUT R
:.,
0 PRINT "MATRIZ DE COEFICIENTESr.
'';'0 FOR J=1 TO R
100 PRINT "EQUACAO";J
110 FOR i=1 TO R+1.
120 IF 1=R4.1 THEN 150
130 PRINT "COEFICTENTE";I;
140 GOTO 160
150 PRINT 'CONSTANTE'';
160 INPUT A(J,I)
170 NEXT I
iao NEXT J
l'-')0 FOR J=1. TO R
12Q REM - DECLARACOES 200 A 240 ACHAM A PRIMEIRA EQUACAO COM UM
1Y7 REM - COEFICIENTE DIFERENTE DE 0 PARA A COLUNA ATUAL
200 FOR I=J TO R
210 IF AKI,J)00 THEN 250
220 NEXT I
230 PRINT "SOLUCAO NAO UNICA"
40 00TO 460
.7' REM - DECLARACOES 250 A 290 MOVEM AQUELA EQUACAO PARA A COLUNA
. 4'
CORRENTE
250 FOR K=1 T^ t.) R+1
260 X=A(J„K)
270 A A(I,K)
80 A(I„K)=X
290 NEXT K
290 REM - DECLARACOES 300 A 330 PEOAM UM COEFICIENTE i
'''.'m REM - NA PRIMEIRA COLUNA DIF. DE ZERO DA LINHA ATUAL
300 Y=1/A 1.J,J)
310 FOR K=1 TO R+1
320 A(J,K)=Y*A(J,K)-
330 NEXT K
338 REM - DECLARACOES 280 A 380 SUBTRAEM A EGUACAO CORRENTE
339 REM - DAS OUTRAS LINHAS
340 FOR I=1 TO R
350 IF I=J THEN 400
360 Y=-A(I,J)
370 FOR K=1 TO R4.1
300 A(I,K)=A(IK)+Y*(J,K)
390 NEXT K
400 NEXT I
409 REM - ESTE PROCESS° SE REPETE PARA TODAS AS EQUACOES
410 NEXT J
420 PRINT
429 REM - IMPRIME RESULTADOS
430 FOR i=i TO R
440 PRINT 'X";I;"=";INT(A(I,R+1)*1000+.5)/1000
450 NEXT I
60 END

97
Programacio Linear*

Este programa usa o metodo Simplex para resolver um problema de programacao linear. Deve-se fornecer os coeficientes
da funcao objetivo e os coeficientes, relacoes e constantes de cada retracao. Essa informacao deve ser colocada numa
declaracao DATA antes de rodar o programa.
Apos carregar o programa, entre corn a declaracao DATA de acordo corn as instrucoes seguintes. Se for rodar
mais de um problema, lembre-se de limpar todas as declaracOes DATA do problema anterior antes de rodar o novo
problema. Nossa declaracao DATA inicia na linha 3000.

1) Arranje as contracOes do problema de acordo corn suas relacoes, de forma que as desigualdades
"menor que" precedam as igualdades, que, a seu tumo, devem preceder as desigualdades "maior que".
2) Digite como DATA os coeficientes das contracOes, na ordem em que elan aparecem no passo I. Nao
inclua coeficientes para variaveis sem importa.'ncia, variaveis excedentes ou variaveis artificiais. Inclua
um coeficiente '0' para qualquer variavel que nao apareca numa contracao particular.
3) Digite como DATA as constantes para as contracoes (lados direitos das contracoes) na mesma ordem
em que entraram as linhas dos coeficientes. Esses valores no podem ser negativos.
4) Digite como DATA os coeficientes da funcao objetivo.

Deve-se selecionar se a solucao do problema deve ser a de valor minimo ou mLamo. 0 programa tambem pede
para entrar o numero total de contracOes e o numero de variaveis permitido para cada uma, e o numero de contracoes
"menor que","igual" ou "maior que" que esta'o sendo consideradas.
A declaracao de dimensao na linha 20 limita o numero de variaveis e contracoes que podem ser entradas. Pode-se
trocar esses valores de acordo corn o seguinte esquema:

2 0 I.) .1.t i A (t + 1
;:.:. + C.: + .1. ) v (. )
onde: C = numero de contracoes
V = numero de variaveis
G = numero de contracOes "maior que"

Exemplo:

Um fabricante deseja produzir 100 libras de uma liga corn 83% de chumbo, 14% de ferro e 3% de antimonio.
Ele tern disponiveis cinco ligas corn as seguintes composicties e precos:

LIGA 1 LIGA 2 LIGA 3 LIGA 4 LIGA 5


90 80 95 70 30
5 5 2 30 70
5 15 3 0 0
i
$6.13 $7.12 $5.85 $4.57 $3.96

* Cortesia: Harold Hanes, Eariham College, Richmond, Indiana.

98
Como ele podera combinar essas ligas para obter o pro duto desejado corn minimo custo?
Veja que esse problema resulta no seguinte sistema de equacoes:

x + x2 + x3 + x4 + x5 = 100
0.90x, + 0.80x2 + 0.95x3 + 0.70x4 + 0.30x5 = 83
0.05x, + 0.05x2 + 0.02x3 + 0.30x4 + 0.70x5 = 14
0.05x, + 0.15x2 + 0.03x3 = 3
6.13x, + 7. 12x2 + 5.85x3 + 4.57x4 + 3.96x5 = Z (minimo)

EXECticA0 :
PROGRAMACAO LINEAR

DIGITE 'I' PARA MAXIMIZACAO E '—i' PARA MINIMIZACAO? —1


DIGITE NUMERO DE CONTRACOES NUMERO DE VARIAVEIS? 4,5
NUMERO DE CONTRACOES MENOR QUE, IGUAL OU MAIOR QUE? 0,4,0

SUAS VARIAVEIS i ATE .J


VARIAVEIS ARTIFICIAIS 6 ATE 9

RESPOSTAt
VARIAVEIS I.. R 11 ri T. '3
VARIAVEL VALOR
10.4348
47.0261
4 41.7391

VALOR DA FUNCAO OBJETIVO 544.826

LISTAGEM DO PROGRAMA

10 CLS
18 REM A DIMENSA0 DEVE SER DE ACORDO COM 0 NOMERO DE VARIAVEIS
17 REM I CONTRACOES I SER ENTRADA. *** YEJA 0 TEXTO ***
20 DIM A(6,10),B(6)
REM AS LINHAS DE DADOS:(3000 E ACIMA) DEVEM SER COMPLETADAS
REM ANTES DE RODAR 0 PROGRAMA.VEJA OBSERYACOES NAS LINHAS
2995-2998
0 PRINT
REM — PROGRAMACAO LINEAR, METODO SIMPLEX
40 PRINT "PROGRAMACAO LINEAR"
50 PRINT Y
60 PRINT "DIGITE 'I' PARA MAXIMIZACAO E . ' PARA MINIMIZACAO"
70 INPUT 2.
80
90 PRINT "DIGITE NUMERO DE CONTRACOES, NUMERO DE VARIAVEIS";
10E) INPUT M 7 N
.1. 1 i. PRINT "NUMERO DE CONTRACOES MENOR (U1::, IGUAL OU MAIOR QUE"
INPUT L,E,0
IF M=1...•E•11.13 THEN 160
4 0 PRINT "DADOS OU CONTRACOES INCONSISTENTES. TI NTE DE NOVO."
1 5 0 GOTO 110
j. 1..2 9 REM — ESTA E A ROTINA DE . INICIALIZACAO
6
70 C1=C+1
0

99
i90 Mi=Mi.j.
200 M2=M+2
2i0 PRINT
220 FOR i=1 TO M2
230 FOR J=i TO Ci
240 A(I, J)=0
250 NEXT J
260 NEXT I
270 FOR i=i TO P1
280 B(I)=0
290 NEXT 1
300 FOR I=i TO Ii
3i0 FOR J=i TO N
320 READ A(I,J)
330 IF I<=L THEN 350
340 A(M1,J)=A(M1.,J)-A(I,•)
350 NEXT J
36(.1 IF I>L THEN 400
370 B(I)=N44
380 A(I,N4-1)=i
390 GOTO 460
400 B(I)=N+0+1
410 A(I,N+I+(.1)=i
420 IF I>L+E THEN 440
430 GOTO 460
440 ACI,N+I-E)=-1
450 A(M1,N+I-E)=1
460 NEXT I
470 FOR I=i TO M
80 READ A(I,C1)
490 NEX Ti:
500 FOR J=1 TO N
510 READ A(M2,J)
520 A(M2,J)=2*A(M2,J)
530 NEXT J
540 PRINT
560 PRINT "SIAS VARIAVEIS DI i.ATE";N
570 IF L=0 THEN 590
580 PRINT "VARIAVEIS SEM IMPORTANCIA"04- 1CATE"04.L
590 IF 6=0 THEN 610
600 PRINT "VARIAVEIS EXCEDENTES".04.L+WATE";C
6i0 IF L=M THEN 800
620 PRINT "VARIAVEIS ARTIFICIAIS";C24. 1CATE";C
630 M3=Mi
40 GOSUB i040
650 PRINT
660 FOR ii=1 TO M
670 IF 13(.11)<=C2 THEN 780
680 IF AKII,C1)<=.00001 THEN 710
90 PRINT "() PROBLEMA NAO TEM SOLUCAO POSSIVEL"
700 (30 10 3060
7i0 FOR Ji=i TO Cr'
720 IF ABS(A(Ii,J1))<=.00001 THEN 770
730 R=I1
740 S=J1
750 GOSUB 1270
760 J1 =C2
770 NEXT J1
780 NEXT ii
800 PRINT
810 M3=M2
820 GOSUB 1040

100
830 :TINT
S40 'TINT "RESPOSTAS"
RIOT . ARIAVEIS PRIMAIS%"
860 'TINT "VARIAVEL""YALOR"
870 :70R J=1 TO C2
800 I=1 TO M
890 IF B(I)0J THEN 920
900 PRINT J,A(I,C1)
910 I=M
920 NEXT I
930 NEXT J
935 IF L=0 THEN 1000
940 PRINT "VARIAYEIS
950 PRINT "VARIAVEL","VALOR"
970 FOR I=1 TO L
9ao PRINT I,-Z*A(M2,N+1)
990 NEXT I
10► 0 PRINT "VALOR DA FUNCAO OB
1010 PRINT
1020 PRINT
1030 GOTO 3060
1.03 REM - ROTINA DE OTIMIZACAO
1039 REM - PRIMEIRO AS COLUNAS
1040 P=-.00001
1050 FOR J=1. TO C2
1060 IF A(M3,J)>=P THEN 1090
1070 S=J
1080 P=A(M3,J)
1090 NEXT J
1100 IF P=-.00001 THEN 1450
1110 GOSUB 1140
1120 00 SUB 1220
1130 00TO 1040
1139 REM - AGORA ACHE OUAL VARIAVEL DEIXA A BASE
1140 (=i.E-:-36
1150 FOR I=1 TO M
1160 IF A(I,S)<=.(000i THEN 1200
1170 IF A(I,C1)/A(I,3)=(...) THEN 1200
1180 R=I
1190 Q=A(I,C1)/A(I,S)
1200 NEXT 1
1210 RETURN
1220 IF C1=1.E4.36 THEN 1250
1230 00 SUB 1270
1240 RETURN
1250 PRINT "A SOLUCAO I DESLIGADA.'
1260 GOTO 3060
1269 REM - EXECUTA 0 PIVO
1270 P=A(R,S)
1280 FOR I=1 TO M2
1290 IF I=R THEN 1360
1300 FOR 1.!=1 TO Ci
1310 IF J=S THEN 1350
1320 A(I,J)=A(I,J)-A(I,S)*A(R,J)/P
1330 LF ABS(A(I,J))>=.00001 THEN 1350
1340 A(I,J)=0
1350 NEXT J
1.360 NEXT I
1370 FOR J=I TO C1
1380 ((R,J)=A(R,J)/P
1390 NEXT J
1400TOR i=i TO M2

101
1A10 A(I,S.)=0
1420 NEXT I
1430 A(R,S)=1.
I -440 D(R)=S
1450 RETURN
t.J I N. "1 Ei: SPASSOSAN E. E. E. "1" AR O_PROGRAM ***
REM - DIGI(•E OS COEFICTENTES DAS CC)NTRACOES '<','=' E 7 > 7 NA
DECLARACAO DATA INICIANDO NA LINHA 3000,. UMA DECLARACAO DATA
SEPARADA PARA COIDACONTRACAO(LINHASVKMM) --....MONONOSSO;EXEMPLO)
REM - DIGITE AS CONSTANTES DAS CONTRACOES NUMA DECLARACAO DATA
AA FRENflEDA DATA DOS COEFICIENTES, E NA MESMA ORDEM EM QUE OS
)ADOS DA CONTRACAO FORAM ENTRADO9 (LINHA 3040 NO NOSSO EXEMPLO)
299B ZEM - DIGITE OS COEFICIENTES DA FUNCAO OBJETIVO NUMA DECLARACAC
)ATA(LINHA 3050 NO NOSS° EXEMPLO) SEGUINDO AS CONSTANTES.
3000 )ATA 1,1,1 7 1,1
3010 )ATA
3020 .t A1 1105,.05,.02,.37 .7
3030 )ATA
3040 )ATA 100y83y14,3
3050 DATA 6.13,7.12,5.85,4.57,3.96
3060 END

102
Adicao, Subtracab e Multiplicacgo Escalar de Matrizes

Este programa adiciona ou subtrai duas matrizes, ou a multiplica por urn escalar. Deve-se entrar o valor de cada
element() da matriz. Para executar adi.cao ou subtracao, as dimensoes das duas matrizes devem ser iguais.
A dimensao das matrizes pode ser aumentada ou diminuida dependendo da quantidade de memoria disponfvel
no sistema. A declaracao 30 pode ser modificada de acordo corn:

30 DIM A(X, Y), B(X, Y)

onde (X, Y) sao os limites da dimensao das matrizes.

Exemplo:

Achar a soma das matrizes abaixo e multiplicar a resultante por 3.

[ 1 0 [-5 -1 21
8 .5 6 -. 1 0
-1 2 0 3 4 -2

E XECUcAO:

ADICAO '311RTRAA0 E MULTIPLICACAO ESCALAR DE MATRIZES

1=ADIC.;n0

LSCALAR
IAJAL A C.TrRAC'mu? i
TMENE. 0 DA MATRIZ
MAIR1Z 1=1
LANHA 1
VAL0R DA COLUNA 1
VALOR DA CIDLUNA 0
VALOR DA COLUNA '
LINHA
VALOR DA COLUNA
VALOR DA COLUNA
VALOR DA COLUNA ,
LINHA
VALOR DA COLUNA
VALOR DA COLUNA 2
VALOR DA COLUNA 0
MATRIZ.
LINHA
VALOR GA CO•U•A i. •••.. ••

VALOR DA i r.
VALOR DA COLUNA 3
LINHA
VALOR DA COLUNA j ti
VALOR DA COLUNA 2 ? -0.1
VALOR DA COLUNA J ? 0
LINHA
VALOR DA COLUNA i. ? 3

103
VALOR DA COL..UNA
VALOR DA COLUNA
-4 -1 i
P.) 6 -2
MAIS DAD S? (I=SIM, 0=NA0)2 1.
QUAL OPERACAO? 3
VALOR DO ESCALAR? 3
DIMENSAO DA MATRIZ. (R,C)2 r S., S.

MATRIZ i.
LINHA
VALOR DA COLUNA j. -4
VALOR DA COLUNA J )

VALOR DA COLUNA L.3.


LINHA 2
VALOR DA COLUNA i.
VALOR DA C 0 1.. U N A '7 2,

VALOR DA COLUNA ::3 n

LINHA •
VALOR DA
VALOR DA
VALOR DA
-12
33 1.5
0 18 -6

MAIS DADOS? (1=SIM, 0=1-' A0)? 0

LISTAGEM DO PROGRAMA
10 CLS
PRINT 'ADICAO,SUBTRACAO E MULTIPLICACAO ESCALAR DE MATRIZES"
REM - OS ARRANJOS DEVEM SER IGUAIS AS DIMENSOES DAS MATRIZES
30 DIM A • • •••••P 1 y :3 1"../
8 '1
.
.1?

40 PRINT
50 PRINT "1=ADICAO"
60 PRINT "2=SUBTRACAO"
70 PRINT "3=MULTIPLICACAO ESCALAR"
79 REM -SELECIONAR OPERACA( DIGITANDO DE i A : (NUMERO DA OPERACAO)
80 PRINT "QUAL A OPERACAO";
90 INPUT D
99 REM - VER SE E ADICAO OU SUBTRACAO
100 IF D<>3 THEN 130
110 PRINT "VALOR DO ESCALAR";
120 INPUT 6
130 PRINT "DIMENSAO DA MATRIZ (R,()";
140 INPUT R,C
148 REM - LOOP PARA ENTRAR VALORES NA MATRIZ
149 REM - PARA EUBTRACAO, MATRIZ 2 E SUBTRAIDA DA MATRIZ 1
150 FOR K=1 TO 2
1.60 IF 1 THEN 190
170 PRINT "MATRIZ i U

180 GOTO 200


190 PRINT "MATRIZ
200 FOR J=1 TO I
210 PRINT "LINHA";J
220 FOR i=i TO C
230 PRINT 'VALOR DA COLUNA".0.;
240 IF K=2 THEN 270
250 INPUT A(J,I)

104
260 GOTO 280
270 INPUT B(J,I)
260 NEXT I
290 NEXT J
299 REM - APENAS UMA MATRIZ E USADA PARA PRODUTO ESCALAR
300 IF D=2 THEN 320
310 NEXT K
3i9 REM - DE 320 A 420 EXECUTA-SE A OPERACAO E SE IMPRIME 0
RE: ULTADO
'7:...)ri FOR J=1 TO R
330 FOR ImA. Tp- C
340 IF DO2 THEN 360
350 B(J,I)-43(J,I)
360 IF D=3 THEN 390
370 PRINT A(J,I)+B(JI);" ";
380 00TO •00
390 PRINT A(J,I)*S;" ";
4C)0 NEXT 1
409 REM - AVANCA DISPOSITIVO DE SAIDA PARA IMPRN'iIR PROXIMA LINHA
410 PRINT
420 NEXT J
430 ETINT
439 REM - REINICIO OU I' 1.i DE PROGRAMA?
440 PRINT "MAIS DADOS")(1=SIM, 0::::NA0)";
450 INPUT D
460 IF 1:) •• THEN BO
470 END

105
Multiplicacab de Matrizes

Este programa multiplica duas matrizes. A primeira matriz é multiplicada pela segunda. Deve-se entrar os elementos
de cada matriz.
Para que a operacao seja realizada corretamente, o mimero de linhas da primeira matriz deve ser igual ao mimero
de colunas da segunda.
As dimensoes das matrizes estao no momento limitadas em 10 X 10. 0 limite pode ser aumentado ou diminuido
alterando a linha 30 de acordo corn o seguinte esquema:

30 DIM A(X, Y), 13(Z, X)

onde: (X, 1') = dimensao da matriz 1


(Z,X) = dimensao da matriz 2

Exemplo:

Multiplicar a matriz 1 pela matriz 2.

{ 2 -1 4 1 2
1 1 0 1 2 -1
2 3 -1 0 -2
2 -1 2
-0 2 1
2 1 4
3 0 -1
2 1 2

EXECUQAO:

MULTIPLICACAO DE MATRIZES

1::*
DIMENSA0 DA MATRIZ (R,C)

DIMENSAO DA MATRIZ 2 .R,C)


( 5 3

MATRIZ

LIMA :1.

VALOR DA COLUNA
1' •

VALOR DA COLUNA -1

VALOR DA COLUNA 3 4

VALOR DA COLUNA 1

VALOR DA COLUNA

LINHA

VALOR DA COLUNA

VALOR DA COLUNA ? 0

VALOR DA COLUNA 3 I.

VALOR DA COLUNA 4 :

VALOR DA COLUNA -1

LINHA 3

VALOR DA COLUNA 1

VALOR DA COLUNA :

VALOR DA COLUNA

VALOR DA COLUNA 4 ? 0

VALOR DA COLUNA = -- 2

106
MATRIZ 2g
LINHA
VALOR DA (:;OLUNA 1 '..)
VALOR DA COLUNA 7 a...)
VALOR DA COLUNA 3 ? ''
LINHA -...!
.7..
VALOR DA COLUNA i '..) 0
,-, J.)
VALOR DA COLUNA 2a. :. (....
VALOR DA COLUNA 3 7 :1.
LINHA .7.,
,.;
VALOR DA COLUNA i. ? —i
VALOR DA COLUNA ,.) a. 2 i
VALOR DA COLUNA 3 2 4
LINHA 4
VALOR DA COLUNA i ja) 3
VALOR DA COLUNA 2 ":" 0
VALOR DA COLUNA 3 —1
LINHA r.:-
,i
VALOR DA COLUNA i --)
VALOR DA COLUNA 2 I.) 1
VALOR DA COLUNA 3 .. ,.) a•
—1 --,
a. ',L,.....;
c..
i —I ....,
—7 i —1

LISTAGEM DO PROGRAMA

9 CLS
10 PRINT "MULTIPLICACAO DE MATRIZES"
16 DEFDBL A—Z DEFSNG I,K,J
20 PRINT
29 REM — OS ARRANJOS A E B DEVEM SER DO TAMANHO DAS MATRIZES
30 DIM A(10,10),B(10,1(:J)
40 PRINT "1)IMENSA0 DA MATRIZ i (R,C)";
50 INPUT Ri,Ci
60 PRINT "DIMENSAO DA MATRIZ 2 (R,C)";
70 INPUT R2,C2
79 REM — # DE COLUNAS DA MATRIZ i = NUMERO DE LINHAS DA MATRIZ 2
00 IF C1=R2 THEN 110
90 PRINT "N 1() PODE MULTIPLICAR. ERRO DE DIMENSIONAMENTO"
100 GO•O 40
109 REM — ENTRAM OS VALOR ES DA MATRIZ
110 PRINT "MATRIZ 1;:"
120 FOR J=1 TO Ri
130 PRINT "LINHA";J
140 FOR I=i TO Ci
150 PRINT "VALOR DA COLUNA";I;
160 INPUT A(J,I)
170 NEXT I
100 NEXT J
190 PRINT
200 PRINT "MATRIZ ).:7
210 FOR J=1 TO R2
220 PRINT "LINHA";
230 FOR I=i TO C2
240 PRINT "VALOR DA 111A"
250 INPUT B(J,I)
260 NEXT 1
270 NEXT J
200 PRINT

107
290
289 FOR REM 1=1 TO RI A MULrIFLICACAO, IMPRIME A MATNIZ RESULTANTE
- EXECUTA
300 FOR J::::i TO C2
3i0 S::::0
320 FOR K=I TO Ci
330
.:3417) i', ,104B(J,K)
11::: X T K
350 PRINT S;" 10
• . II

360 NEXT J

370
369 PRINT
REM - AVANCA DISPOSITIVO PARA PRoxImffl LINHA DE IMPRESSAO
380 NEXT I
290 END

108
I nversab de Matrizes

Este programa inverte uma matriz quadrada. A inversao é executada usando uma verso modificada do metodo de
eliminacao de Gauss-Jordan.
As dimensoes da matriz estao limitadas em 10 X 10 . Esse limite pode ser aumentado ou diminuido, alterando-se
a linha 30 de acordo corn o esquema:

30 DIM A(R, R), B(R,R)

onde R = flamer° de linhas (ou colunas) da matriz.

Exemplo:
Inverter a matriz A.

5 -1 -4
A
_0! 4
-2
6
—.7
0
0
-3
1
.3

EXECUcAO:
INVER SAO DE MATR *TIES

DIMENSA0 DA MATRIZ? 4
ELEMENT () S DA MATRIZ:=
L INHA 1
VALOR DA COLUNA i. 1••

VALOR DA COLUNA 2
VALOR DA COLUNA 3 i.
VALOR DA COLUNA 4
LINHA 2
VALOR DA COLUNA i 1.
VALOR DA COLUNA 2 4
VALOR DA COLUNA 3 7 fi

VALOR DA COLUNA 4
L INHA 3
VALOR DA COLUNA ..
VALOR DA COLUNA
VALOR DA COLUNA 3
VALOR DA CO LIMA 4
L INHA 4
VALOR DA COLU•A i.
VALOR DA CO•UNA 2
VALOR DA COLUNA 3
VALOR DA COLUNA 4

. 654
11 198
LISTAGEM DO PROORAW:i

i0 'TINT i!INVERSA0 GE MATRIXES'


0 TIJfl.
."'''' 'ZEN — A() E F3() DEVEM 3ER DIMENSIONADOS NO TAMANHO DA MATRIX
30 )IM A(10,10),D(10,10)
--i ',EM — AS MATRIXES SAO QUADRADAS. AFENAS UMA DIMENSA0 E NECESSARIA
40 TINT "DIMENSAO DA MAT•IX";
50 INPUT R
60 PRINT "ELEMENTOS DA MATRIZg"
69 REM — ENTRAM OS ELEMENTOS
70 FOR J=1. TO R
GO PRINT IlLINHW'ni
'..;;. 0 FOR I•1 TO R
100 PRINT l'VALOR DA COLUNA";
110 INPUT (:“.„1,1)
120 NEXT 1
130 B(J,J)=1
140 NEXT J
149 REM — DECLARACOES 150 A 420 INVERTEM A MATRIX
.150 FOR J=.1 TO R
160 FOR I=J TO I::
170 IF A(I,J)00 THEN 210
IGO NEXT I
190 PRINT 'MATRIX SINGULAR"
200 GOTO 500
210 FOR K=1 TO R
220 S=A(J,K)
230 A(J,K)=A(I,K)
240 A(1,K)=S
250 S=B(JyK)
260 B(,4K)43(IK)
270 B(I v K)=S
280 NEXT K
2'20 A(J 7 J)
00 FOR J=1 TO R
AKJ,K)=T*A(J 5,K)
320 B(,4K)=T*13(JyK)
330 NEXT K
340 FOR L=1 TO R
3::)0 IF 1...=j THEN 410
360 1—Af:LyJ)
70 FOR K=1 TO R
3G0 A(LK)::.:.A(L,K)i-T*A(J 7 K)
390 BcL,K)=B(L,K)+T*B(J,K)
400 NEXT K
410 NEXT I...
420 NEXT J
430 PRINT
•3:9 REM — IMPRI-ME RESULTADOS
440 FOR .1=1 TO R
450 FOR J=1 TO R
459 REM — ARREDONDA, IMPRIME
460 PRINT INT(B(I,J)*100(:J+.5)/i000;" ";
470 NEXT J
479 REM — AVANCA DISPOSITIVO DL SAIDA PART PROXIMA LINHA
400 PRINT
490 NEXT I
500 END

110
Permutacab e Combinacao

Este programa calcula o numero de permutacoes e combinacOes de N objetos tornados D a cada vez.

Exemplos:

Quantas permutacOes e combinacoes podem ser obtidas nas 26 letras do alfabeto, tomando-se 5 por vez?
De quantas formas diferentes é possivel que 12 pessoas sentem-se num banco, havendo lugar apenas para duas
delas por vez?

E X ECU PAO :
PERMUTACAO E COMBINACAO
(ENTRE 0 PARA FIJI DE PROGRAMA)
NUMERO TOTAL. DE OBJETOS? 26
TAMANHO DO SUBAGRUPAMENTO? 5
7893600 PERMUTACOES
65780 COMBINACOES
NUMERO TOTAL DE OBJETOS? 12
TAMANHO DO SUBAGRUPAMENTO? 2
132 PERMUTACOES
66 COMBINACOES
NUMERO TOTAL DE OBJETOS? 0

LISTAGEM DO PROGRAMA

10 CLS
20 PRINT " PERMUTACAO E COMBINACAO"
30 DEFDBL A—Z g DEFSNG .1 7,1,1(
40 PRINT
50 PRINT "(ENTRE 0 PARA ElM DE PROGRAMA)"
60 PRINT "NUMERO TOTAL. DE OBJETOS";
70 INPUT N
79 REM — VER SE E FIM DE PROGRAMA
80 IF N=0 THEN 300
90 PRINT "TAMANHO DO SUBAGRUPAMENTO";
100 INPUT D
109 REM — TAMANHO DO SUBGRUPO NAO PODE SER MAIOR QUE 0 DO GRUPO
110 IF 1.)<=N THEN 150
120 PRINT "SUBGRUPO MUITO GRANDE"
130 PRINT
140 GOTO 60
149 REM — L.INHAS DE 150 A 220 CALCULAM PERMUTACAO
150 P=1
160 C=1
170 FOR I=N—D-41. TO N
179 REM — NAO PERMITE (WE 0 TAMANHO DO NUMERO ESTOURE CAPACIDADE
180 IF 9.9E37/I)=P THEN 210
190 PRINT "MAIS DE 9.9E37 FERMUTACOES"
200 GOTO 300

111
2i0 P=P*I
220 NEXT I
229 REM - CALCULA FATORIAL INTERMEDIARIO PARA COMBINACAO
230 FOR J=2 TO D
240 C=C*J
250 NEXT J
260 PRINT PCPERMUTACOES"
270 PRINT P/CCCOMBINACOES"
280 PRINT
289 REM - RENICIA 0 PROGRAMA
290 GOTO 60
300 END

112 .
Teste U de Mann-Whitney

Este programa executa o teste U de Mann-Whitney em amostras de duas populacoes.


A dimensdo da linha 30 limita o tamanho das amostras. Pode-se aumentar ou diminuir os limites de acordo
corn o esquema seguinte:

30 DIM X(M),Y( N

onde : M = tamanho maxim() do primeiro lote


N = tamanho maximo do segundo lote

Exemplo:

Urn grupo de 10 mulheres e urn de 10 homens foram interrogados sobre o sabor de urn determinado alimento, e
foi pedido para que dessem uma nota entre 0 e 10. Abaixo estdo listados os resultados. Contar o numero de vezes em
que o resultado das mulheres foi menor que o dos homens e vice-versa.

mulheres 1 3 4 3 6 8 9 7 8 4
homens 7 9 8 5 10 9 10 6 5 2
, .

EXECUQAO:

TESTE Ll DE HANN—WHITNEY

L. E
TAMANHO? 10
DAD° I 11
DADO 2 "") 3
DODO 3 '.> 4
D ADO 4 ? 3
DADO 5 ? 6
DADO 6 ?
DADO 7 2 9
DADO A ? 7
DADO 9 ? 8
DADO 1.0 2 4

1..O E. 2
TAMANHO? 10
DADO 1. ? 7
DADO 2 9
DADO 3 2 8
DADO 4 ':' 5
DADO cr '2 10
DADO 6 ') 9
DADO 7
DADO 8 7 6
DADO 9 2 5
DADO 10 ? 2

PRECEDENDO 0 PR MEIR 0 LOTE U = 70


P R ECEDENDO 0 SEGUNDO LOTS 1.1 = 30

113
LISTAGEM DO PROGRAMA
10 CLS
20 PRINT "TESTS U DE MANN-WHITNEY"
26 REM - COLOCAR MAXIM() TAMANHO D6 LUTE EM X(M),Y(N) ( ONDE M=MAXIMO
29 REM - TAMANHO DO LOTE 1, E N=MAXIMO TAMANHO DO LOTE 2)
30 DIM X(25),Y(25)
40 PRINT
50 DIM N(2)
59 REM - ENTRADA DOS DOIS LUTES
60 FOR I=1 TO 2
70 PRINT "1..0TE"0;":"
80 PRINT " TAMANHO";
90 INPUT N(I)
100 FOR I=1 TO N(I)
1.1.0 PRINT " DADO";J;
120 INPUT Y(J)
130 NEXT J
139 REM - COLOCA CADA LOTE EM ORDEM
140 FOR J=1 TO N(I)
150 FOR K=1 TO N(I)-J
160 C=Y(K)
180 IF Y(14)(Y(K-4.1) THEN 210
190 Y(K)=Y(10.1)
200 Y(K4A)=C
210 NEXT K
220 NEXT J
230 PRINT
39 REM - TRANSFERE PRIMEIRO LOTE PARA 0 ARRANJO X
24€) IF 1=2 THEN 280
250 FOR J=I TO N(1)
260 X(J)=Y(J)
270 NEXT J
280 NEXT I
209 REM - ELEVA A CLASSE
290 R=1
300 1=0
310 J=0
320 i=1.4.1
330 J=J+1
340 IF UN(1) THEN 590
350 IF J>N(2) THEM 610
360 ir x(I)(y(J) THEN 630
370 IF Y(J)<X(I) THEN 600
379 REM - LINHAS DE 370 A 570 EQUALIZAM CONTAGEM DE AMBOS OS LUTES
380 K=2
390 M=I
400 L=J
410 Ri=2*R4-1
420 R=R-4.2
430 I=I+1
440 J=J+1
450 IF I>N(1) THEN 490
460 IF X(I)0X(I-1) THEN 490
470 I=I+1
480 GOTO 520
490 IF J>N(2) THEN 560
500 IF Y(J)0Y(J-1) THEN 560
510 J•J4.1
520 R1=R14-R
530 R=R+1
540 K=K4-1

114
550 GOTO 440
560 X=X4.(I-M)*Ri/K
570 Y=Y4-(J-L)*Ri/K
580 GOTO 330
590 IF J>N(2) THEN 670
600 Y=1"4-R
610 J=J+1
620 GOTO 650
630 X=X+R
640 J=J+i
650 R=R+1
660 GOTO 340
ADO DO LOTE I. EXCEDE 0 2
669 REM - U1•NUMERO DL VEZES QUE 0 RESULT
670 U1=N(1)*N(2)+N(1)*(N(1)4.1)/2-X
679 REM - U2=NUMERO DE VEZES QUE 0 RESULTADO DO LOT I PRECEDE () 2
680 U2=N(1)*N(2)+N(2)*(N(2)+1)/2-Y
690 PRINT
700 PRINT "PRE CEDENDO 0 PRIMEIRO LOTE, U ="0.11
710 PRINT "PRECEDENDO 0 SEGUNDO LOTE, U =";U2
720 END

115
Media, Variancia e Desvio-Padrab

Este programa calcula a media aritmetica, a variancia e o desvio-padrao de um grupo 4 dados agrupados ou
desagrupados. Os dados podem representar toda uma populacao ou apenas uma amostra.

Exemplos:

Existem 10 pessoas no saguao de um hotel corn idades de 87, 53, 35, 42, 9, 48, 51, 60, 39 e 44 anos. Qual sera
a media, a variancia e o desvio-padrao das idades de todas as pessoas no hotel, se tomarmos as pessoas do saga° como
amostra?
Achar a media, a variancia e o desvio-padrao do mimero de dias de permanencia de urn lote de iogurte no balcao
frigorifico de urn supermercado. A tabela mostra a distribuicao para 50 pecas. Assuma que a tabela abaixo represente
todo o estoque disponlvel. Qual a diferenca se o lote for apenas uma amostra?

idade 1 2 3 4 5 6
quantidade 15 10 9 6 7 3
iogurte

EXECUcAO:

MEDIA,, VAR ilANC.,IA E DESV 10 PADRAO

QUAL 0 METODO ( 0=P OPULACA0,1 =AMOSTR A )? 1


TIP 0 DE DADO ( 0=4AGRUPAD0 7 1.1aDESAGRUP ADO) ? i
NUMERO DE OBSERVACOES? 10
I TEM 1. ? 87
cr .$
ITEM 'Ll. t:) ,o
I TEM 3 ':' 35
ITEM. 4 1:' 42
ITEM cv0 ? 9
ITEM 6 ? 48
1 TEM 7 '') 51
ITEM 8 I? 6 0
ITEM 9 ? 39
I TEM 10 1 ? 44

MEDIA VAR IANC IA DESV I 0 P ADRIA°


46.8 389.734 19.7417

MAIS DADOS (1=SIM, 0=NA0)? i

QUAL 0 METODO (0=POPULACA0,1=AMOSTRA)? 0


TIPO DE DADO (0=AGRUPAD0,1=DESAGRUPADO)? 0
NUMERO DE OBSERVACOES? 6
ITEM, FREQUENCIA - i ? 1,15
ITEM, FREQUENCIA 2. ? 2,10
ITEM FREQUENCIA 3 ? 3,9
ITEM, FREQUENCIA 4 ? 4,6
ITEM, FREQUENCIA 5 ? 5,7
ITEM, FREQUENCIA 6 ? 6,3

MEDIA VAR I ANCIA DES V 10 P ADR AO


2■78 2.5716 1., 6036

116
MAIS DADOS (1=SIM, 0=NA0)?

(UAL () METODO (0=POPULACA0,1=AMO3TRA)?


TIPO DE DAF)O (0=AGRUPAD0,1=DE6AGRUPADO)? 0
NUMERO DE OBSERVACOES? 6
ITEM, •REQUENCIA i 2 1,15
ITEM, FREQUENCIA 2 2 2,10
ITEM, FREQUENCIA 3 ? 3,9
ITEM, FREQUENCIA 4 2 4,6
ITEM, •REQUENCIA 5 2 5,7
ITEM, FREQUENCIA 6 ? 6,3

MEDIA VARIANCIA DESVIO PADRAO


2.78 2.62408 1.6199

MAIS DADOS (1=SIM, 0=NA0)? 0

LISTAGEM DO PROGRAMA

9 CLS
10 PRINT "MEDIA, VARIANCIA E DESVIO PADRAO"
20 PRINT
30 PRINT "(UAL 0 METODO (0=POPULACA0,1=AMOSTRA)";
40 INPUT S
50 PRINT "TIPO DE DAD() (0=AGRUPAD0,1=DESAGRUPADO)"7
60 INPUT K
70 PRINT 4NUMERO DE OBSERVACOES";
80 INPUT N
9C) R:0
100 M=0
110 P=0
120 IF K=1 THEN 230
129 REM - PARA DADOS AGRUPADOS
130 FOR i=1 TO N
140 PRINT "ITEM, FREQUENCIA";I;
150 INPUT A,B
159 REM - ACUMULA VALORES ENTRADOS
160 R=R+B*A
169 REM - ACUMULA VALORES INTERMEDIARIOS PARA VARIANCIA
170 P=P-141
180 M=M44.3*AL2
190 NEXT I
199 REM -• CALCULA MEDIA E VARIANCIA
200 R=R/P
210 V=(M-P*RC2)/(P-6)
219 REM - IMPRIME RE SULTADO
220 GOTO 310
229 REM - PARA DADOS DESAGRUPADOS
230 FOR I=1 TO N
240 PRINT "ITEM";I;
250 INPUT D
259 REM - ACUMULA VALORES ENTRADOS
260 P=P•D
269 REM -. ACUMULA VALORES INTERMEDIARIOS PARA VARIANCIA
270 M=M+DC2
280 NEXT I
289 REM - CALCULA MEDIA E VARIANCIA, IMPRIME
290 R=P /N
300 V=(M-N*RE2)/(N-S)
310 PRINT

117
31.9 REM - IMPRIME RESULTADOS
320 PRINT "MEDIA","VARIANCIA","DESVIO PADRAO"
330 PRINT R,V,SOR(V)
340 PRINT
349 REM - REINICIA OU TERMINA 0 PROGRAMA?
350 PRINT "MATS DADOS (1x4SIM, 0=NA0)";
360 INPUT S
370 IF 6:i THEN 20
380 END

118
Media Geometrica e Desvio-Padrao

Este programa calcula a media geometrica e o desvio-padrao de um conjunto de dados.

Exemplo:

Calcular a media geometrica e o desvio-padrao de 3, 5,8,3, 7, 2.

EXECUQAO:

MEDIA GEOMETRICA E DESVIO PAI)RAO

(PARA FINALIZAR 0 PROGRAMA ENTRE 0 OBSERVACOES)


NUMERO DE OBSERVACOES? 6
ITEM i ? 3
ITEM 2 ' 5
ITEM 3 '? 8
ITEM 4 '? 3
ITEM 5 '') 7
ITEM 6 .. 2

MEDIA GEOMETRICA = 4.14068


DESVIO GEOMETRIC° = 1.72369
NUMERO DE OBSERVACOES 2 0

LISTAGEM DO PROGRAMA
10 CLS
20 PRINT "MEDIA GEOMETRICA E DESVIO PADRAO"
30 PRINT
40 PRINT "(PARA FINALIZAR 0 PROGRAMA ENTRE C) OBSERVACOES)"
50 PRINT "NUMERO DE OBSERVACOES";
60 INPUT N
69 REM - TESTA SE FIM DE PROGRAMA
70 IF Nm0 THEN 210
80 P=1/N
89 REM - INICIALIZA VARIAVEIS
90 M=1:0=0
1.00 FOR Imi TO M
110 PRINT "ITEM";I;
120 INPUT D
1.29 REM - CALCULA MEDIA ITERATIVA
130 H=M Dl
139 REM - CALCULA VALOR INTERMEDIARIO PARA DESVIO
140 6)m(41.LOG(D)E2
150 NEXT I
159 REM - CALCULA DESVIO
160 R=EXP(S(A(G/(N-1)-(N(N-1)*(LOG(M))112)))
170 PRINT "MEDIA GEOMETRICA m"01
180 PRINT "DESVIO GEOMETRICO m" ;R
1.90 PRINT
199 REM — REINICIA PROGRAMA
200 GOTO 50
210 END

119
Distribuicgo Binomial

Este programa calcula a probabilidade de se obter um dado numero de sucessos num dado numero de tentativas de
Bernoulli. Deve-se fornecer a probabilidade de sucesso numa Imica tentativa.

Exemplos:

Qual é a probabilidade de se obter tres caras em cinco tentativas numa moeda?


Qual a probabilidade de, em 5 jogadas de um dado, o framer() 1 aparecer duas vezes?

EXECUQAO:

DISTRIBUICAO BINOMIAL
(PARA FINAL TZAR 0 PROGRAMA DI(3ITE 0)
NUMERO DE TENTATIVAS? 5
NUMERO EXATO DE SUCESSOS? 3
PROBABILIDADE DE SUCESSO? .5
PROBABILIDADE DE 3 SUCESSOS EM 5 TENTATIVAS = .3125
NUMERO DE TENTATIVAS? 5
NUMERO EXATO DE SUCESSOS? 2
PROBABILIDADE DE SUCESSO? .166666667
PROBA6ILIDADE DE 2 SUCESSOS EM 5 TENTATIVAS .160751
NUMERO DE TENTATIVAS? 0

LISTAGEM DO PROGRAMA
10 CLS
20.PRINT "DISTRIBUICAO BINOMIAL"
30 DEFDBL A—Z 3 DEFSNG I,J
40 PRINT
50 PRINT "(PARA FINALIZAR 0 PROGRAMA DIGITE 0)"
60 PRINT "NUMERO DE TENTATIVAS";
70 INPUT N
80 IF N=0 THEN 280
90 PRINT "NUMERO EXATO DE SUCESSOS";
100 INPUT X
110 PRINT "PROBABILIDADE DE SUCESSO";
.• P
129 REM — CALCULA OS. FATORIAIS
130 M(1)=- N
140 M(2)=X
150 M(3):41—X
160 FOR i=i TO 3
170 IF M(I)=0 THEN 230
1.80 A=1
190 FOR J=1 TO M(I)
200 A=A-AJ
210 NEXT J
220 M(I)•LOG(A)

120
230 NEXT I
239 REM - U6ANDO OS FATORIAIS CALCULADOS, CALCULA PROBABILIDADE
240 R=EXP(M(i)-M(2)-M(3)+X*LOO(P)±(N-X)*LOG(i-P))
250 PRINT "PROBABILIDADE DE ";XCSUCESSOS EM"OCTENTATIVAS -",R
260 PRINT
270 GOTO 60
280 END

121
Distribuicab de Poisson

Usando a distribuicao de Poisson, este programa calcula a probabilidade de um evento ocorrer urn dado mimero
de vezes. Deve-se conhecer a freqffencia esperada do evento.

Exemplo:

2000 pessoas recebem injecao de uma vacina. A probabilidade de uma pessoa ter uma rend() negativa é de 0.001.
Assim, podemos esperar que Bois (0.001 X 2000 = 2) individuos tenham uma reacdo negativa. Qua1 a probabilidade
de quatro pessoas terem reacdo negativa? E uma so pessoa?

EXEC UgAO:
DISTRIBUICAO DE POISSON
(PARA FINALIZAR 0 PROGRAMA ENTRE 0)
FREGUENCIA CALCULADA? 2
FRED UENCIA A TESTAR? 4
PROBABILIDADE DE 4 OCORRENCIA .0902235
FREQUENCIA CALCULADA? 2
FREQUENCIA A TESTAR? 1.
PROBABILIDADE DE I OCORRENCIA .270671
FREGUENCIA CALCULADA? 0

LISTAGEM DO PROGRAMA
10 CLS
20 PRINT "DISTRIBUICAO DE POISSON"
30 DEFDBL A-Z DEFSNO I,J,K
40 PRINT
50 PRINT "(PARA FINALI2AR 0 PROGRAMA ENTRE 0)"
60 PRINT "FREQUENCIA CALCULADA";
70 INPUT L
79 REM - FIM DE PROGRAMA?
80 IF L=0 THEN 200
90 PRINT "FREGUENCIA A TESTAR"
100 INPUT X
109 REM - CALCULA FATORIAL
110 A=1
120 FOR i=i TO X
130 AA*I
140 NEXT I
149 REM - CALCULA A PROBABILIDADE
150 A=LOG(A)
160 A=EXP(-Li.X*LO(3(L)-A)
170 PRINT "PROBABILIPADE DE";X;"OCORRENCIAS
1.830 PRINT
189 REM - REINICIA PROGRAMA
190 GOTO 60
20(3 END

122
Distribuicab Normal

Este programa calcula a probabilidade e a freqiiencia de valores dados numa curva de distribuicao normal padrao.
Pode-se usar variaveis nao padronizadas, desde que se conheca a media e o desvio-padrao.

x
Distribuicao normal padrao

A area sombreada representa a probabilidade de x • y, correspondente a freqii6ncia de x.


A probabilidade normal Laproximada usando a seguinte formula:

probabilidade -7- I - r(ai t + a2t2 + a313 ) + e (x)

onde: al = 0.4361836
a2 = -0.1201676
a3 = 0.9372980
r = (e-x21 2 ) (27 ) -1/2
t = (1 + 0.3326x)-1
I € ( x) I < 10-5

Exemplo:

0 peso medio de uma estudante colegial é 150 libras. 0 desvio-padrao é 15 libras. Se os pesos sao normalmente
distribuidos, qual a probabilidade de uma estudante pesar entre 150 e 180 libras? E entre 130 e 150?

EXECUQAO:

DISTRIBUICAO NORMAL

(0=PADRAO, i= FORA DO PADRAO)


GUE TIPO DE VARIAVEL? i
MEDIA? i50
DESVIO PADRAO? i5
PARA FINALIZAR 0 PROGRAMA DIGITE X=99999
X=? i80
FREQUENCIA = .05399097i76227i85
PROBABILIDADE = .977241i862263639
X =? i30
FREQUENCIA = .1.640i00461887729
PROBABILIDADE = .908798074698635
X=? 99999

123
LISTAGEM DO PROGRAMA

10 CLS
20 PRINT"DISTRIBUICAO NORMAL"
30 DEFDBL A-Z DEFSNG I,J,K
40 PRINT
50 PRINT "(0=PADRAO, i= FORA DO PADRAO)"
60 PRINT "GUE T1PO DE VARIAVEL";
70 INPUT S
BO IF S=0 THEN 140
89 REM -- LINHAS 70-110 REGUEREM DADOS FORA DO PADRAO
90 PRINT "MEDIA";
100 INPUT M
i10 PRY.NT "DESVIO PADRAO";
1.20 INPUT S
130 GOTO 150
140 S7.gi
150 PRINT
160 PRINT "PARA FINALIZAR 0 PROGRAMA DIGITE X=99999"
170 PRINT "X
180 INPUT Y
190 IF 1=99999 THEN 3i0
199 REM -- A..JUSTA VARIAVEIS FORA DO PADRAO
200 Y=ABS((Y-M)/S)
209 REM - CALCULA FREGUENCIA (COORDENADA Y)
210 R=EXP(-(YE2)/2)/2.5066282746
220 PRINT "FREGUENCIA =";R
230 2=Y
239 REM - APROXIMA PROBABILIDADE (AREA SOB A CURVA)
240 Y=1/(i+.33267*ABS(1))
250 T=1-R*(.4361836*Y-.J.20i676*Y1:24.-937298*YE3)
259 REM - AJUSTA VALORES OEGATIVOS
260 IF Z)=0 THEN 280
270 T=i-T
280 PRINT "PROBABILIDADE =";Y
290 PRINT
300 GOTO i70
310 END

124
Distribuicab Chi-Quadrado

Este programa calcula o valor final de valores para pontos numa curva de distribuicdo chi-quadrado. Deve-se fornecer
o valor de X 2 e os graus de liberdade.

X2

Distribuicdo chi-quadrado

A area sombreada representa o valor final de X 2.


A funcdo distribuicdo X 2 é calculada usando as seguintes formulas:

e -x212 2 1/2
corn v Impar, valor final = 1 - (X2 ) (v + 1)/2 •
1•3•5. v \X2 Tr
(X2 )v/2 • e -x2 I 2
C( corn v par, valor final = 1 - Z
2 • 4 • ... v

onde: v par, valor final = graus de liberdade


CO
(x2)in
Z=1+
m= 1 (v + 2) • (v + 4) • . . . (y + 2m)

Como a soma no calculo de Z ndo pode se estender ao infinito, paramos o somatorio quando o ultimo termo
for menor que urn determinado grau de precisdo. A precisdo computacional é limitada em 10 -7.

Exemplo:

Num grupo de 168 pessoas que se queixam de no dormir direito, 54 receberam pilulas e as demais receberam
imitacdo inocua. Mais tarde foram questionadas se as pflulas haviam auxiliado no sono. A estatistica X2 para este
estudo foi calculada como sendo 2.571108 corn urn grau de liberdade. Qual o valor final?

EXECKAO:

DISTRIBUICAO CHI-QUADRADO
(PARA FINALIZAR 0 PROGRAMA DIGITE
GRAUS DE LIOERDADE? 1.
CHI-WADRADO? 2.57i10B
VALOR FINAL = .101383i50
GRAUS DE LIBERDADE? 0

125
LISTAGEM DO PROGRAMA
i0 CL5
20 PRINT "DISTRIBUICAO CHI—GUADRADO"
30 DEFDBL A—Z DEFSNG I
40 PRINT
SO PRINT "(PARA FINALIZAR 0 PROGRAMA DIGITE 0)"
60 PRINT "GRAUS DE LIBERDADE';
70 INPUT V
DO IF Y=0 THEN 300
90 PRINT "CHI—(MADRADO";
100 INPUT W
109 REM — R=PRODUTO DENOMINADOR
ii0 R=1
120 FOR i=k) TO c..
1.) STEP —2
130 R=R*1
140 NEXT 1
149 REM — K=PRODUTO NUMERADOR
150 K=WE(INWV4.1)/2))*EXP(—W/2UR
159 REM — 0 FATOR PI SO E USADO GRAU DE LIBERDADE E IMPAR
160 IF INT(V/2)=V/2 THEN 190
170 J=SH(2/W/3.141592653599
180 GOTO 200
189 REM — CALCULO DE L (FATOR SOM() NAS LINHAS 190-260
190 J=1
200 L=1
210 M=1
220 V=V-1-2
230 H=M*W/V
239 REM — TESTE PARA FIM DE SOMA
240 IF W.0000001 THEN 270
250 L=L+M
260. GOTO 220
270 PRINT "VALOR FINAL = ";:TRINTUSING"#.#00#####";. -J*K*L.
280 PiRlt4T
29€) GOT() 6€)
30(3 END

OPQAO

Pode-se querer calcular o percentil em vez do valor final. Este valor corresponde a area nab escurecida da
figura acima. As mudanyas necessarias ao programa estdo listadas depois do exemplo abaixo.

Exemplo:

Qual o percentil do exemplo acima?

EXECU cA0 :

DISTRIBUICAO CHI—QUADRADO
(PARA FINALIZAR 0 PROGRAMA DIGITE 0)
GRABS DE LIBERDADE? i
CHI—WJADRADO? 2.571108
PERCENTIL = .B9ii6850

126
GRAUS DE LIBERDADE? 0

LISTAGEM DO PROGRAMA
I REM -- OPCAO 270
JO CLS
20 PRINT "DISTRIBUICAO CHI-QUADRADO"
to

el

se

260 GOTO 220


270 PRINT "PERCEN" IL =";gPRINTUSING"#.000#0#0#";J*K*L
286 -PkINI
290 GOTO 60
300 END

127
Teste Chi-Quadrado

Este programa calcula a estatistica chi-quadrado (X2 ) e os graus de liberdade associados corn uma tabela de contingencia.
0 valor esperado para cada celula e sua contribuicdo para o X2 tambem sdo impressos.
A declaracdo de dimensab da linha 30 limita o tamanho da tabela de contingencia. Pode-se trocar as dimensoes
de acordo corn o esquema abaixo:

30 DIM VI (R• C) ,,V2(C) ,A(R)

code R = numero de linhas da tabela de contingencia


C = numero de colunas da tabela de contingencia

Exempla:

De urn grupo de pessoas que se queixaram de nab dormir direito, a algumas foram dadas pilulas ao passo que a
outras foram dados placebos. Mais tarde foi-lhes perguntado se as pilulas haviam auxiliado no sono. Os resultados
est-do detalhados abaixo. Qual o valor da estatistica X2?

dormiram dormiram
bem mal
pilulas para sono 44 10
placebo 81 35

EXECUQAO:
TESIE CHI—QUADR ADO

NUMERO DE LINHAS? 2
NUMERO DE COLUNAS? 2
TAE3ELA DE CONTINGENCIA:
LINHA
ELEMENTO i ') 44
EL.EMENTO 2 ') 10
LINHA 2
ELEMENTO i ? 8i
ELEMENTO 2 ? 35
VALOR OBSERVADO VALOR ESP ER ADO CONTR IBUICAO CHI E2
COLUNA
44 39.70588235 O.36254909
Bi 85.29411765 O.16877285
COLUNA 2
10 14.29411765 1.00708080
35 30.70588235 O.46881347
CHI—QUADRADO = 2.00721621
GRAUS DE LIBERDADE = i

128
LISTAGEM DO PROGRAMA

10 CLS
20 PRINT "TESTE CHI-QUADRADO"
28 REM - TAMANHO LIMITE DA TABELA DE CONTINGENCIA Vi(R*C),V2(C),A(R)
29 REM - ONDE R=NUMER0 DE LINHAS, C=NUMERO DE COL UNAS
30 DIM V1(25),V2(5),A(5)
40 PRINT
50 DEFDBL A-Z DEFINT I,J
59 REM - LINHAS 60 A 170 ENTRAM TABELA DE CONTINGENCIA
60 PRINT "NUMERO DE LINHAS";
70 INPUT R
80 INPUT "NUMERO DE COLUNAS";
90 INPUT C
100 PRINT 'TABELA DL CONTINGENCIA"
110 FOR I=1 TO R
120 PRINT "LINHA'l
130 FOR J=1 TO C
140 PRINT " ELEMENTO";J;
150 INPUT Vi((1-1)*C+J)
160 NEXT J
170 NEXT I
180 PRINT
189 REM - SOMA I° RI MARGINAIS A CADA LINHA
190 L=0
200 M=1
210 FOR 1=1 TO R
220 FOR J=1 TO C
230 A(I)=A(I)+Vi(M)
240 M=M4-1
50 NEXT J
260 L=L+A(I)
270 NEXT I
280 N=R*C
289 REM - SOMA FREQUENCIAS MARGINAIS PARA CADA COLUNA
290 FOR I=1 TO C
300 FOR J=1 TO N STEP C
310 V2(I)=V2(I)+V1(J)
320 NEXT J
330 NEXT I
340 Z=0
350 PRINT "VALOR OBSERVADO","VALOR ESPERADO";
360 PRINT " CONTRIBUICAO CHI E2"
370 FOR I=1. TO C
380 PRINT " COLUNA"0
390 FOR J=1 TO R
399 REM .7 - P-VALOR ESPERADO DA CELULA
400 P=A(J)*V2(I)/L
410 X=I4-(J-1)*C
418 REM - USA CORRECAO Di CONTINUIDADE
419 REM -- DE YATES NO TESTE CHI-(UADRADO 2 X 2
420 IF R < > 2 THEN 460
430 IF C < > 2 THEN 460
440 Y=<ABS(Vi(X)-P)-.5)1:2/P
450 GOTO 470
459 REM - Y= CONTRIBUICAO DESTA CELULA PARA CHI-QUADRADO
460 Y=(V(i(X)-P)E2/P
469 REM - Z=VALOR TOTAL DO CHI-QUADRADO
470 2=Z+Y
475 PU91="#000####.#00000##"
480 PRINT " ";Vi(X),:PRINTUSINGPLA;P;:PRINT" ";:PRINTUSINGPU1;Y
490 NEXT J

129
500 NEXT I
5i0 FT
520 PRINT "CHI-QUADRADO = ";:PRINTUSINGPUI;7.
530 PRINT "GRAUS DE LIBERDADE =";(C-i)*(R-i)
540 END

130
Distribuicao t de Student

Este programa calcula os valores a esquerda de pontos numa curva de distribuicao t. Deve-se fornecer o valor de t e
os graus de liberdade.

Distribuicao t de Student

A area sombreada representa o valor a direita da curva. Esse valor é aproximado usando-se a seguinte formula:

1
valor a direita = —
4 (1 + at x + a2x2 + a3x3 + a4x4)-4 + e (x)
onde: al = 0.196854
a2 = 0.115194
a3 = 0.000344
a4 = 0.019527

9
2d) -1/4
x=
VA (1 -+)(4 + t 4/3 •

E (x) f < 2.5 • 10-a

Exemplo:

Qual o valor a direita quando t = 2.921 e sao 16 os graus de liberdade?


Qual o valor a direita quando t =11.178 e sa.̀o 5 os graus de liberdade?

EXECUQAO:
DISTR IBUICAO I DE STUDENT

(PARA FINALIZAR ENTRE COM UM VALOR T=0)


VALOR DE T? 2.92i
GR ALM DE LIBERDADE'? 16
VALOR DA DIREITA = 4.9E-03
VALOR DE T? 11.178
GRAUS DE LIBERDADE? 5
VALOR DA DIREITA - 2.E-04

VALOR DE T? 0

131
LISTAGEM DO PROGRAMA

10 CLS
20 PRINT "gDISTRIBUICAO T DE STUDENT "
3(3 PRINT
40 PRINT "(PARA FINALIZAR ENTRE COM UM VALOR T=0)"
50 PRINT "VALOR DE T";
60 INPUT T
70 IF T=0 THEN 350
00 PRINT "GRAUS DE LIBERDADE";
90 INPUT D
100 X=1
110 Y=1
120 T=TE2
129 REM - CAL. t: USANDO INVERSO PARA Vim S•.. PEQUENOS DE T
130 IF T< J. THEN 180
140 S=Y
1
. 50 R=D

160 17:.=T
170 GOTO 200
180 S=D
190 R=
200 7=1/T
210 J=2/9/S
220 K=2/ 9/R
e.c:.7 REM - CALCULA USANDO FORMULAS DE APROXIMACAO
30 1...=A13S((1-K)*ZE(1/3)-ii.J)/SCA(K*ZE(2/3):4.J)
240 IF R(4 THEN 280
250 X=.25/(141.*(.1968544.L*(.1151944-L*(.0003444-L*.019527))))1:4
260 A=INT4 )4*10000+.5)/10000
270 GOTO 300
200 L:=L*(14..00*LL4/RE3)
290 GOT0250
299- REM - AJUSTA SE. FOI CALCULADO INVERSO
300 IF T>=1 THEN 320
310 X=1-X
320 PRINT 'VALOR DA DIREITA - ;A
330 PRINT
340 GOTO 50
50 END

132
Teste t de Student

Este programa calcula a estatistica t e os graus de liberdade para a distribuicao de Student. 0 calculo se baseia em
uma de tres hipoteses.
A primeira hipotese assume que uma media populacional a igual a urn dado valor.
As hipoteses restantes comparam duas populacOes. Em ambas as teses as medias das populacOes sab iguais,
porem os desvios-padrao podem ser ou na-o. Para essas hipOteses deve-se entrar os elementos de cada lote.
A declaracao de dimensdo da linha 30 limita o tamanho dos lotes a serem entrados. Pode-se alterar esses limiter
de acordo corn o esquema:

30 DIM P(N ,2)

onde N = tamanho maximo do lote.

Exemplos:

Foram medidos os QI's de urn conjunto de criancas. Os resultados foram 101, 99, 120, 79, 111, 98, 106, 112,
87 e 97. Calcular a estatistica t assumindo que o QI da media populacional é 100.
Numa outra etapa outras medidas foram feitas e os resultados foram 101, 95, 130, 150, 75, 79, 111, 100, 98
e 91. Calcular a estatistica t baseada na hipotese de que os dois conjuntos tenham igual media e desvio-padrao.

E X ECUQAO:

TESTE 1 DE STUDENT

TESTE i. n MEDIA=X
TESTE 2: MEDIA=MEDIA, DESVI(i PADRAO=DESVIO PADRAO
TESTE MEDIA=MEDIA, DESVIO PADRAO)DESVIO PAHA()
OUAL A HIPOTESE? i.

AMOSTRA i.
UMER0 DE ELEMENTOS? J.0
ELEMENT° I ? i0i
ELEMENT° 2 ? 99
ELEMENTO 3 ? 120
ELEMENTO 4 ? 79
ELEMENT() ?
ELEMENTO e.} ? 98
ELEMENTO 7 ? 106
ELEMENTO 8 2 1 i2
ELEMENT° 9 2 07
ELEMENT() 2 97

VALOR DA MEDIA? 100

VALOR DE T = 26 i509
ORAUS DE LIBER DADE =
READY
I E:s TE MEDIA=X
TE:STE: MEDIA=MEDIA, DESVIO PADRAO=DESVIO PADRAO
T EST E. %..?" MEDIA=MEDIA, DESVIO PADRAO>DESVIO PADRAO
()UAL , HIP OT ESE?

133
AMOSTRA 1
NUMERO - DE ELEMENTOS? 10
ELEMENT° 1. 22
101
ELEMENT° 2 99
ELEMENT° 3 ? 120
ELEMENT° 4 ? 79
ELEMENT° 5 ? 2
111
ELEMENTO 6 98
ELEMENT° 7 ? 106
ELEMENT° U ? 112
ELEMENTO 9 ? 87
ELEMENT° 10 2 97
AMOSTRA 2 :
NUMERO DE ELEMENTOS? 10
ELEMENT° 1. 2 101
ELEMENT° -1a . il: 95
ELEMENTO 3 2 130
ELEMENT° 4 ? 150
ELEMENT° 5
..1
,-:, i-.
n
,)
ELEMENT° 6 2 79
ELEMENTO 7 ? iii
ELEMENT° 8 2 100
ELEMENTO 9 2 9B
ELEMENT° 10 ? 91
VALOR DE T = .246513
GRAUS DE LIBERDADE .= 18

LISTAGEM DO PRO GRAMA


10 CLS
20 PRINT "TEST: T DE STUDENT"
29 REM - LIMITE DO TAMANHO DA AMOSTRA EM P(N,2) , N=TAMANHO MA IMO
30 DIM P(10,2)
40 PRINT
50 DEFDBL A-Z : DEFINT I,J,K
60 DIM V(2),R(2),M(2),D(2)
70 PRINT "TESTE 1: MEDIA=X"
BO PRINT "TESTE e..
2 MEDIA=MEDIA, DESVIO PADRAO=DESVIO PADRAO"
90 PRINT "TESTE 3: MEDIA=MEDIA, DESVIO PADRAO)DESVIO PADRAO"
100 PRINT "QUAL A HIPOTESE";
110 INPUT T
120 PRINT
129 REM - ENTROU i OU 2 DEPENDENDO DA HIPOTESE
130 FOR I=1 TO S0N(T-1)+1
140 V(I)=0
150 D(I)=0
160 PRINT "AMOSTRA"0;":"
170 PRINT "NUMERO DE ELEMENTOS'p
180 INPUT R(I)
190 FOR J=1 TO R(I)
200 PRINT " ELEMENTO"O;
210 INPUT P(J,I)
219 REM - ACUMULA AMOSTRAS
220 V(I)=V(I)+P(J,I)
230 D(I)=D(I)+P(J,I)C2
240 NEXT J
249 REM - CALCULA VALOR ES INTERMEDIARIOS
250 M(I)=V(I)/R(I)

134
260 V(I)=(D(I)-V(I)E2/R(D)/(R(I)-i)
270 NEXT I
280 PRINT
90 IF T=2 THEN 360
300 IF T=3 THEN 400
309 REM - ENTRA VALOR DADO PARA PRIMEIRA HIPOTESE
3i0 PRINT "VALOR DA MEDIA";
320 INPUT M
329 REM - CALCULA T E GRAUS DE LIBERDADE PARA PRIMEIRA HIPOTESE
330 A=(M(1)-M)*SOR(R(i)/V(i))
340 B=R(i)-i
350 GOTO 440
359 REM - CALCULA T I GRAUS DE LIBERDADE PARA A SEGUNDA HIPOTESE
360 k=(M(i)-M(2))/SOR(i/R(A/R(2))
370 B=R(i)+R(2)-2
380 A=AISQRO(R(i)-i)*V(1).4-(R(2)-1)*V(2))/B)
390 6010 420
399 REM - CALCULA T E GRAUS DE LIBERDADE PARA A TERCEIRA HIPOTESE
400 A=(M(i)-M(2))/SQR(V(i)/R(1)+V(2)/R(2))
4i0 B=(V(i)/R(1)+V(2)/R(2))E2
420 B=B/((V(1)/R(i))12/(R(1)+1).4-(V(2)/R(2))C2/(R(2)-1.1))-2
430 B=INT(B+.5)
441) PRINT
450 PRINT "VALOR DE I =';ABS(A)
460 PRINT "GI AU DE LIBERDADE ="0
470 END

135
Distribuicgo F

Este programa calcula valores percentuais para valores dados numa curva de distribuicdo F. Deve-se fornecer o valor
de F, os graus de liberdade do numerador e os graus de liberdade do denominador.

A distribuicao F

A area sombreada representa o percentual.


A funcao distribuicao F é aproximada usando a seguinte formula:

percentual = 1 - (1 + a l.)) + a2y2 + a3y3 + a4y4 ) -4 4. (y)


2

onde: al = 0.196854
a2 = 0.115194
a3 = 0.000344
a4 = 0.019527

y, 1_ 92d2) 1_ 92d1)) 92d 1+ F y, 9d2


2 1112
d1 = graus de liberdade do numerador
d2 = graus de liberdade do denominador

I E (Y) I < 2.5 • 10 -4

Exemplos:

Qual o percentual de uma curva de distribuicao F quando o valor de F e 0.474 e os graus de liberdade sao 1 e 18?
Qual o percentual quando o valor de F é 23.7 e os graus de liberdade sao 3 e 6?

EXECUQAO:
DISTRIBUICAO F

(PARA FINALIZAR 0 PROGRAM ENTRE UM VALOR DE F 0)


VALOR DE F? .474
GRALIS DE LIBERDADE DO NUMERADOR? i.
GRAUS DE LIBERDADE DO DENOMINADOR? 18
PERCENTUAL = .4937

VALOR DE F? 23.7
GRAUS DE LIBERDADE DO NUMERADOR? 3
GRAUS DE LIBERDADE DO DENOMINADOR? a
PERCENTUAL = .9984

136
V A L.. () k DE. F. ':. 0

LISTAGEM DO PROGRAMA

10 CLS
20 PRINT DISTRiBUICAO F"
30 PRINT
40 PRINT "(PARA FINALIZAR 0 PROGRAMA ENTRE UM VALOR DE F = 0)"
50 PRINT VALOR DE F';
60 INPUT
70 IF F=0 THEN 250
80 PRINT 'GRAUS DE LIBERDADE DO NUMERADOR';
90 INPUT Di
100 PRINT 'GRAUS DE LIBERDADE DO DENOMINADOR";
110 INPUT D2
120 X=1
i29 REM — CALCULA U:: ANDO INVERSA0 PARA PE(UENOS VALORES DE F
130 IF F( 1 THEN 170
140 S=D1
150 T=D2
160 Z=F
170 GOTO 210
180 S=D2
190 T=Di
200 Z=1/F
210 J=2/9/S
220 K=2/9/T
229 REM — CALCULA USANDO FORMULAS APROXIMADAS
230 Y=AF3S —1+J)/SciR(K*7.1(2/3)J)
240 IF 4 THEN 280 4
250 X=.5/(14.Y*(.196854+ *(.1151944.Y*(.000344.0.4(.019527))))1:4
260 X=INI (X*100004..05)/1 0000
270 60 TO 300
280 Y=Y*( 1+06*11:4/TC3)
290 GO TO 250
299 REM — AJUSTA SE FOR CALCULADO COM INVERSAO
300 IF F)=1 THEN 320
310 X=1—X
32,0 PRINT A.TRUNTUAL
330 PRINT
340 GOTO 50
350 END

OPQOES

Pode-se querer calcular o valor da area residual (a area nao sombreada da figura acima). As mudancas necessarias
no programa seguem o exemplo abaixo.

Exemplos:

Qual o valor da area residual numa distribuicao F quando F = 0.474 e os graus de liberdade sao 1 e 18?
Qual o valor da area residual quando F = 23.7 e os graus de liberdade sao 3 e 6?

EXECUcAO:
DISTRIBUICAO F

137
PARA FINALIZAR 0 PROGRAMA ENTRE UM VALOR DE 0)
VALOR DE F? .474
ORAUS DE LIDERDADE DO NUMERADOR? I
GRAUS DE LIBERDADE DO DENOMINADOR? i0
VALOR RESIDUAL DA AREA = .5063
VALOR DE F2 23.7
GRAUS DE LIBERDADE DO NUMERADOR?
ORAUS DE LIBERDADE DO DENOMINADOR? 6
VALOR RESIDUAL DA AREA = 1.6E-03
VALOR DE F2 0

LISTAGEM DO PROGRAMA
I REM -- OPCAO
i0 CLS
20 PRINT "DISTRIBUICAO F"

X=i-X
320 PRINT 'VALOR RESIDUAL DA AREA
330 PRINT
340 GOTO 50
350 END

138
Coeficiente de Correlacgo Linear

Este programa calcula o coeficiente de correlacao entre duns variaveis. E assumido urn relacionamento linear entre as
variaveis. Deve-se digitar as coordenadas de um grupo de dados para formar a linha a regressao.

Exempla:

A altura de doze homens e de seus filhos estao anotadas na tabela abaixo. Qual é o coeficiente de correlacao
entre as alturas dos pais e dos filhos?

pais 65 63 67 64 68 62 70 66 68 67 69 71
filhos 68 66 68 65 69 66 68 65 8167 68 70
altura em polegadas

EXECU PAO:

COEFICIENTE DE CORRELACAO LINEAR

NUMER0 DE PONTOS*? 12
X,Y DO P ONTO ? 65,68
X,Y DO F' ONTO 2 ? 63,66
X,Y DO PONTO 3 ? 67,68
X,Y DO P ONT 0 4 ? 64,65
X 7 Y DO P ONTO 5 ? 68,69
X,Y DO P ONTO 6 ? 62,66
X,Y DO P ONTO 7 ? 70,68
X,Y DO P ONTO 8 '? 66,65
X,Y DO P ONTO 9 ? 68,71
X,Y DO P O NT 10 ? 67,67
X,Y DO POil TO ? 69,68
X,Y DO P ONTO i2 ? 71,70
COEFICIENTE CORRELACAO za .702738

LISTAGEM DO PROGRAMA

JO CLS
20 PRINT "COEFICIENTE DE CORRELACAO LINEAR"
30 DEFDBL A-2 : DEFSNG 1
40 PRINT
50 PRINT "NUMERO DE PONTOS";
60 INPUT N
70 J=0
SO K=0
90 L=0

139
100 M=0
110 R=0
11.9 REM - ENTRAM COORDENADAS DOS PONTOS
120 FOR .1=1'10 N
130 PRINT "X,Y DO PONTO";I;
140 INPUT X,Y
149 REM - AC(JMULA VALORES INTERMEDIARIOS
150 J•J+X
160 K=10•Y
170 LguL4-XE2
1.801 M.1.414-IC2
190 R=R+X*Y
200 NEXT I
209 REM - CALCULA COEFICIENTE, IMPRIME
210 R2=(N*R-J40/SOR((N*L-A2)*(N*M-10:)
220 PRINT
230 PRINT "COEFICIENTE DE CORRELACAO =";CSNG(R2)
240 END

140
Regresao Linear

Este programa acha uma linha reta a partir de urn nornero dado de coordenadas, pelo metodo dos minimos quadrados.
A equacAo da linha, o coeficiente do denominador, o coeficiente de correlacdo e o erro padra9 estimados sao impressos.
Uma vez que a linha foi achada, pode-se predizer os valores de y dados osx correspondentes.

Exemplo:

A tabela abaixo mostra a altura e o peso de 11 meninos de um colegio. Achar a curva para esses pontos. Qua1
é o peso medio de um menino de 70" e urn de 72"?

altura (polegada) 71 73 64 65 61 70 65 72 63 67 64
peso (libra) 160 183 154 168 159 180 145 210 132 168141

EXECUcAO:
REORESSA0 LINEAR

NUMERO DE PONTOS CONHECIDOS


(DEVEM SER 3 OU MAIS)2 11
. Y DO PONTO i. ? 71,160
X Y DO PONTO 2 73,183
X i DO PONTO 3 ? 64,1.54
X, i DO PONTO 4 2 65,168
X,Y DO PONTO 5 2 61,159
x,`t' DO PONTO 6 70,180
X, Y DO PONTO 7 65,145
X,Y DO PONTO 8 72,210
X,Y DO PONTO 9 ? 63,132
X,Y DO PONTO 10 2 67,168
X,Y DO PONTO i i 7 64,141
F(X) =-106.823 ( 4.04769 * X
COEFICIENTE DO DENOMINADOR (RE2) = .556372
COEFICIENTE DE CORRELACAO = .745904
ERRO PADRAO 1)A ESTIMATIVA = 15.4109
INTERPOLACAOu CENTRE X=0 PARA FIM DE PROGRAMA)
X =? 70
= 176.515
'7 elt
•X :

Y = 164.611

X =? 0

LISTAGEM DO PROGRAMA

9 CLS
10 PRINT "REGRESSAO LINEAR"

141
16 DUCAL A-Z : DEFSNG I
20 PRINT
30 PRINT "NUMERO DE PONTOS CONHECIDOS
(DEVEM SER 3 OU MAIS)";
40 INPUT N
50 J=0
60 K=0
70 L=0
EJO M=0
90 R2=0
99 REM - LOOP PARA EN•RAR COORDENADAS DOS PONTOS
100 FOR 1=1 TO w
i10 PRINT 'X,Y DO PONTO";I;
120 INPUT X,"
29 REM - ACUMULA SOMAS INTERMEDIARIAS
130 ,J=J+X
i40 K=K+Y
150 L=L+XE2
too M=M+YE2
170 R2=R2+X*Y
180 NEXT I
189 REM - CALCULA COEFICIENTE DA CUR VA
190 B=(N*R2-K*J)/(N*L-JL2)
200 A"(K-B*JUN
210 PRINT
220 PRINT "F(X) =";" + ("OW * X )"
229 REM - CALCULA ANALISE DA REGRESSAO
230 J=B*(R2-J*K/N)
240 M=M-KE2/N
250 K=M-J
260 PRINT
270 R2=J/M
280 PRINT "COEFICIENTE DO DENOMINADOR (RC2) =";CSNG(R2)
290 PRINT "COEFICIENTE DE CORRELACAO =';S(a(R2)
300 PRINT 'ERRO i'DRAO is ESTIM(TIVA =";(K/(N-2))L.5
310 PRINT
3i9 REM - ESTIMAR PONTOS Y DADOS OS ♦ CORRESPONDENTES
320 PRINT "RPOLACAO:
LITE (ENTRE X=0 PARA 1:=- IM DE PROGRAMA)"
330 PRINT "X =";
340 INPUT A
349 REM - REINICIO OU FIM DE PROGRAMA?
350 IF X=0 THEN 390
360 PRINT "Y ="pCSNG(A+B*X)
370 PRINT
330 GOTO 330
390 END

142
Regressao Linear Maltipla

Este programa acha os coeficientes da equacao linear de mitltiplas variaveis usando o metodo dos minimos quadrados.
A equacao tern a seguinte formula:

= c + ai x, + a2x2 + anxt,

onde: y= variavel dependente


c = constante
al , a2 , . . , an = coeficientes dependentes das variaveis X , X2 • • • , Xn

Sao impressos as constantes e os coeficientes.


Deve-se fornecer as coordenadas x e y dos pontos conhecidos. Uma vez que a equacao tenha sido achada usando
os dados entrados, pode-se predizer valores de variaveis dependentes para valores de variaveis independentes conhecidos.
A declaracao de dimensao da linha 30 limits o numero de pontos conhecidos que a equacao pode conter. Pode-se
alterar esse limite de acordo corn o esquema abaixo:

30 DIM X(N+1),SIN+1),T(N+1),A(N+1 I N+2)


onde: N = dller° de pontos conhecidos.

Exemplo:

A tabela abaixo mostra a idade, a altura e o peso de oito meninos. Usando o peso como variavel dependente,
calcule a curva dos dados. Estime o peso de urn menino de 7 anos que tenha 51 polegadas de altura.

idade 8 9 6 10 8 9 9 7
altura 48 49 44 59 55 51 55 50
peso 59 55 50 80 61 75 67 58

E X EC U AO:
REGRESSAO L INEAR MULT IP LA

NUMERO DE P ONT OS CONHECIDOS?


NUMERO DE VAR I AVE IS INDEPENDENTES? 2
PONT 0 I
VAR I AVEL ? 8
VAR I AVEL 2 ? 48
VAR I AVEL DEP ENDENTE?
P ONTO 2
VAR I AVEL i ? 9
VAR I AVEL 2 ? 49
VAR I1AVEL DEP ENDENTE? JO
P ON 3
VAR I AVEL 1. ? 6
VAR I AVEL 2 ? 44
VAR I AVEL DEP ENDENTE? 50

143
PONTO 4
VARIAVEL i ? 10
VAR I AVEL. ? 59
WiRIAYEL DEPENDENTE? 80
PONTO 5
YARIAYEL J. ":,
'7 t: i
VARIAVEL. r
Ca . ,...10
YARIAYEL DEPENDENTE? 6/
PONTO 6
YARIAVEL i ? 9
VARIAVEL -I
a. ? 51
VAR LAVEL. DEPENDENTE? 75
PONTO 7
VAR IAVEL i ? 9
VARIAVEL ,--,a. ,: %.JE 5.1
VARIAVEL DEPENDENTE? 67
PONTO @
VARIAVEL i ? 7
VARIAVEL 2 ? 50
VARIAVEL DEPENDENTE? 58
COEFICIENTES DA EWJACAO:
CONSTANTE:-15.70212765957447
VARIAVEL ( 1 ): 3.680851063829788
VARIAVEL ( 2 ): .9432624113475177

COEFICIENTE DE DETERMINACAO (R C:2) = .715683


COEFICIENTE DE MULTIPLA CORRELACAO = .845981
ESTINATIVA DO ERRO PADRAO = 6.42911
INTERPOLACAO: UINTRE 0 PARA FIN DE PROGRAMA)
VARIAVEL 1 2 7
VARIAVEL 2 2 Si.
VARIAVEL DEPENDENTE = 58.17021276595745

VARIAVEL i 2 o

LISTAGEM DO PROGRAMA
i CLS
10 PRINT 'RE0RESSA0 LINEAR MULTIPLA"
16 DEFDBL A-Z : DEFSN6 I : DEFINT J,K,L
20 PRINT
29 REM - UNITE 0 ARRANJO EM X(1144)yS(N.4.1),T(N-4.1),A(N4-1,N1-2)
30 DIM X(10),S(1(:3),T(10),A(10,10)
40 PRINT "NUNERO DE PONTOS CONHECIDOS";
50 INPUT N
60 PRINT "NUNERO DE YARIAVEIS INDEPENDENTES"-?
70 INPUT V
GO X(1)=11
90 FOR I=1 TO N
100 PRINT "PONTO";
110 FOR J=1 TO V
119 REM - ENTRA YARIAVEL INDEPENDENTE PARA CADA PONTO
120 PRINT " VARIAVEL".0;
130 INPUT X(J4.1)
140 NEXT J
149 REM - ENTRA VARIAVEL DEPENDENTE PARA CADA PONTO
150 PRINT " VARIAVEL DEPENDENTE";
160 INPUT X(V4.2)

144
169 REM - ENCHER A MATRIZ A SER USADA NO CALCUL° DA CURVA
170 FOR K=i TO V4.1
100 FOR L=i TO V+2
19(3 ACK,L)=A(K,L)+X(K)*X(L)
200 S(K)=A(K,V4•2)
2i0 NEXT L
220 NEXT K
230 S(V-4.2)=S(V4-2)+X(V4.2)E2
240 NEXT I
248 REM - DE 250 A 600 CALCULA-SE A CURVA RESOLVENDO 0 SISTEMA
249 REM - DE EQUACOES LINEARES NA MATRI2 A ( )
250 FOR 1=2 TO V4.1
260 T(I)•A(1,I)
270 NEXT 1
280 FOR 1=1 TO V+1
290 J=1
300 IF A(J,I)<>0 THEN 340
305 J=J4-1.
310 IF J‹ =V4-1 THEN 300
320 PRINT "SOLUCAO NAO UNICA'
330 0010 810
340 FOR K=1 TO V+2
350 B=A(I,K)
360 A(I,K)=A(J y K)
370 A(J,K)=B
380 NEXT K
390 Z=1/A(I,I)
400 FOR K=1 TO V+2
410 A(I,K)=Z*A(I,K)
420 NEXT K
430 FOR J=1 TO V+1
440 IF J=I THEN 490
450 Z=-A(J,I)
460 FOR K=1. TO V+2
470 A(J,K)=A(JyK)+Z*A(I,K)
480 NEXT K
490 NEXT J
500 NEXT I
510 PRINT
520 PRINT "COEFICIENTES DA EQUACAO:"
m.,..m
525 PRINT " CONSTANTE:"0(1 7 V+2)
530 FOR 1=2 TO V+1.
540 PRINT 'VARIAVEL (";I-1;"):";A(I,V4.2)
550 NEXT 1
560 P=0 .
570 FOR 1 2 TO V+1
580 P=P+A(I,V+2)*(S(I)-T(I)*S(1)/N)
"590 NEXT I
600 R=S(V+2)-S(i)E2/N
610 Z=R-P
620 L=N-V-i
640 PRINT
650 I=P/R
660 PRINT 'COEFICIENTE DE DETERMINACAO (RI:2) ="0:
670 PRINT 'COEFIC1ENTE DE MULTIPLA CORRELACAO ="OAR(I)
680 PRINT "ESTIMATIVA DO ERRO PADRAO =";SQR(ABS(Z/L))
690 PRINT
9e REM - ESTIMA VARIAVEL DEPENDENTE I'' AI AS VARIAVEIS
99 REM - iNDEPENDENTES ENTRADAS
700 PRINT "IN1'ERPOLACA0g (ENTRE 0 PARA FIM DE PRO(RAMA)z f
710 P=A(1,V+2)
720 FOR J=1 TO V

145
730 PRINT "VARIAVEL'Op
740 INPUT X
749 REM - rESTE PARA FIM DE PROGRAMA
'750 IF "X=0 THEN 810
760 P=P+A(J4A,V+2)*X
770 NEXT j
780 PRINT VARIAVEL DEPENDENTE ="0.1
790 PRINT
GOO GOTO 710
GAO END

146
Regressao de Enesima Ordem

Este programa acha os coeficientes de uma equacdo de enesima ordem usando o metodo dos minimos quadrados. A
equacao tern a seguinte forma:

y = c + al x + a2x2 + . . . anxn

onde: y = variavel dependente


c = constante
al , a2 , ... , an = coeficientes das varialeis independentes x, x2, xn, respectivamente.

Os coeficientes da equacao, da deterrninacao, da correlacao e o erro pada.° estimados sao impressos.


Deve-se fornecer as coordenadas x e y dos pontos conhecidos. Uma vez que a equacffo seja determinada, pode-se
predizer valores de y dados os x.
A declaracao de dimensao da linha 30 limita o grau da equack. Pode-se mudar os limites de acordo corn o
seguinte esquema:

30 DIM A(2-D4-1) , RCD+1 ,D+2) T(D-4-2)

onde D = maxim° grau da equacao.

Exemplo:

A tabela abaixo di a distancia de parada (reacao mais distancia de parada) de um automovel em varias
velocidades. Achar uma curva exponencial para os dados. Estimar a distancia de parada a 55 milhas por Nora.

MPH 20 30 40 50 60 70
distancia de parada 54 90 138 206 292 396

EXECUcAO:
RI GRESSA0 DE ENESIMA ORDEM
GRAU DA EQUACAO? 2
NUMERO DE PONTOS CONHEC IDOS?
, DO P ONTO i. ? 20,54
X DO P ONTO 2 30,90
X , DO P ONTO 3 '? 40,13a
• ,Y DO PONTO 4 50,206
;: . DO P ONTO 5 ? 60,292
Y DO P ONTO 6 "7 70,396

C;ONSTANTE 4i.776
COEFICIENTE DE GRAU =-i.09594
COEFICIENTE DE GRAU .. = .0B7856

COEFICIENTE DA DETERMINACAO (RC2) = .999926


tOEFICIENTE DA CORRELACAO .999963
ERRO PADRAO DA ESTIMATIVA • 1.43E398

147
INTERPOLACAO: (ENTRE 0 PARA FIM DE PROGRAMA)
X rx? 55
'1. • = 247.274

X =? 0

LISTAGEM DO PROGRAMA

10 CLS
20 PRINT '''REGRES8A0 DE ENESIMA ORDEM"
28 REM — tiMITES DO GRAU DA EGIUACAO EM A(2D4.1)1 R(D+i r D+2), 1(04-2)
29 REM — (ONDE D=MAXIMO GRAU DA EQUACAO)
30 DIM A(5),R(3 1 4),T(4)
40 PRINT
50 DEFDI3L A--Z 41 DEFSNG I,J,K
60 PRINT"GRAU DA E GAJACA0; '
70 INPUTD
80 PRINT 'NUMERO DE PONTOS CONHECIDOS";
90 INPUT N
100 A(1)=N
109 REM — ENTRAM AS COORDENADAS DOS PONTOS
110 FOR 1=1 TO N
1.20 PRINT "X,Y, DO PONTO";I;
130 INPUT X r Y
138 REM — LINHAS 140-220 ENCHEM A MATRI1 COM
i39 REM — UM SISTEMA DE EQUACOES
140 FOR J=2 TO 2*04.1.
150 A(J)=A(J)+XL(J-1)
160 NEXTJ
170 FOR K=1 TO 0+1
180 R(K 1 D4.2)=T(K).4-Y*XL(K-1)
190 1(K)=T(K)+Y*XE(K-1)
200 NEXT K
210 1(042)=T(04-2)+YL2
220 NEXT I
229 REM — LINHAS 230-510 RESOLVEM 0 SISTEMA DC EQUACOES NA MATRIZ
230 FOR J=1 TO 0+1
240 FOR K=i TO D+i
250 R(J,K)=A(J+k—i)
260 NEXT K
270 NEXT J
280 FOR J=1 TO 0+1
2?0 K=J
30€) IF R(K,J)) THEN 340
310 K=k•i
315 IF K<=D+1 THEN 300
320 PRINT "SOLUCAO NAO UNICA"
330 GOTO 030
340 FOR 1=1 TO 0+
350 S=RJ,I)
(
3o0 J ,I=kkic r i
3/t1 1K,1)=
380 NEXT .1
390 Z=i/R(J,J)
400 FOR 1=1 TO D+2
4i0 R(J,I)=Z*R(J,1)
420 NEXT :i.
430 FOR K=1 10 0+1
440 IF K=J THEN 190
450 Z=—R(K,J)
460 FOR 1=i TO 04.2

148
470 R(K 7 1)=R(K,1)1.-Z*R(J 7 1)
480 NEXT I
490 NEXT K
500 NEXT ..J
5i0 PRINT
520 PRINT ' CONSTANTE =';CSNG(R(I,D+2))
REM — IMPRIME COEFICIENTES DA EOUACAO
530 FOR Jx41 TO 0
540 PRINT "COEFICIENTE DE 7RAU'O;R(J44,0+2)
550 NEXT J
560 PRINT
569 REM — CALCULA ANALISE DA REGRESSAO
570 P=0
500 FOR J=2 TO D+i
590 P=P+R(J,D+2)*(1(J)—A(J)*1 (i)/N)
00 NEXT J
610 DEFDBL . is r ,.1
620 G=1 (D+2)—T(1)C2/N
630 2=(it—E
640 ,1.=;' ...D...
650 PRINT
660 J=P/Q
670 PRINT 'COEFICIENTE DA DETERMINACAO (R12) ='';CSNG(J)
680 PRINT 'COEFICIENTE DA CORRELACAO =";SOR(J)
690 PRINT 'ERR° PADRAO DA ESTDIAMM =" ';GR (27 I )
700 PRINT
709 REM — CALCULA COORDENADA Y DO X ENTRADO
7i0 DEFSNO J
720 PRINT l'INTERF0LACA04 (ENTRE 0 P AR A FIM DE PROGRAMA)";
730 P=R(i r D+2)
•40 PRINT "X =";
750 INPUT X
760 IF X=0 THEN 830
770 FOR J=1 TO 0
780 P=P+R(J+1,D+2)*XEJ
790 NEXT J
000 PRINT "Y
@i0 PRINT
B20 GOPO 730
G30 END

149
Regress& Geometrica

Este programa calcula uma curva a partir de um conjunto de coordenadas usando o metodo dos minirnos quadrados.
Sffo impressos a equacao, o coeficiente de determinacao, coeficiente de correlacgo e o erro padrffo de estimativa.
Deve-se fornecer as coordenadas x e y dos pontos conhecidos. Uma vez calculada, a curva permite predizer
valores de y dados os x correspondentes.

Exemplo:

A tabela listada abaixo da a pressffo media de um gas, sob varios volumes em um experimento. 0 relacionamento
entre pressao e volume do gas é dado pela seguinte formula:

P VK = C

onde: P = pre ssffo


V 7- volume
C e K sffo constantes

Esta formula pode ser reescrita na forma geometrica padronizada:

P = CV -K

Note que o expoente é negativo e assim é usado pelo programa.


Ache a curva geometrica para os dados e estime a pressffo de 90 polegadas clibicas de gas.

volume 56.1 60.7 73.2 88.3 120.1 187.5


pressffo 57.0 51.0 39.2 30.2 19.6 10.5

EXECUcAO:
REGRESSA0 GEOMETRICA

NUMER 0 DE PONTOS CONHEC 'DOS? 6


Ai r )/ DO PONTO I '? 56.1,57.0
X 7 Y DO PONTO 2 ? 60.7,5i.0
X 7 Y DO PONTO 3 ? 73.27 39. 14.
X 7 Y DO PONTO 4 ? 88.37 30 I.:. et

X 7 ' DO PONTO 5 120.1,19.6


X,Y DO PONTO 6 ? 1.87.5 7 i0.5
F( ) • 6103. 68991715 * X I-1 .40159

COEF 'CIENTE DE DE TERM INACAO ( R 2) = i .0000i


COEF I C I ENT E DE (:;ORR ELACAO 00001
ERR 0 P ADR AO DA EST IMAT IVA •... 2 .52825E-03

INTERPOLACAO (ENTRE 0 PAP A FIM DE PROGRAMA)


X =? 90
Y = 29.3735

150
LISTAGEM_DO PROGRAMA

10 CLS
20 PRINT "REGRESSA0 GEOMETRICA"
30 DEFUL A-2 : DEFINI I
40 PRINT
50 PRINT 'NUMERO DE PONTOS CONHECIDOS";
60 'INPUT N
70 J=0
80 K=0
90 L=0
100 M=0
110 R2=0
119 REM - ENTRAM COORDENADAS DOS PONTOS CONHECIDOS
120 FOR 1=1 TO N
130 PRINT "XyY DO PONTO";I;
1.40 INPUT X 7 1
149 REM - ACUMULA VALORES INTERMEDIARIOS
150 Y=LOG(Y)
160 X=LOG(X)
170 J=J+x
180 10=K-4.Y
190 L=L+AL2
200 M=M-4-YE2
210 R2=R24.X*Y
220 NEAT I
229 REM - CALCULA E IMPRIME INDI:ES DA EQUACAO
230 B=(N*R2-K*J)/(N*L-JL2)
240 A=(K-BikJ)/N
250 PRINT
260 PRINT "F (X) =";EXP(A);"x Xr."0
269 REM CALCULA.ANALISE DA REORESSA0
270 , (R2-J*K/N)
280 ti=M-10:2/N
290 K=M-J
300 PRINT
310 R2=J/M
320 PRINT "COEFICIENTE DE DETERMINACAO (R12) =";R2
330 PRINI "COEFICIENTE DE CORRELACAO =";S(A(R2)
340 PRINT "ERRO PADRAO DA ESTIMATIVA =";SQR(K/(N-2))
350 PRINT
359 REM - ESTIMA COORDENADA Y A PARTIR DL X Dr DO
360 PRINT "INTERPOLACAO (ENTRE 0 PARA FIM DE PROGRAMA)
I'

370 PRINT "X =";


300 INPUT X
3?0 IF X=0 THEN 430
400 PRINT 'A =';EXP(A)*XEB
410 PRINT
420 0010 370
430 END

151
Regressao Exponencial

Este programa acha os coeficientes de uma equacao exponencial. Essa equaca-o tern a seguinte forma:

f (x) = aebx

onde a e b sdo coeficientes calculados.

Os coeficientes da equacdo, coeficiente de determinacao, coeficiente de correlacdo e erro padrao estimados sao
impressos.
Deve-se fornecer as coordenadas x e y dos pontos conhecidos. Uma vez calculada, a curva pode predizer valores
de y, dado os valores de x.

Exemplo:

A tabela abaixo mostra o numero de bacterias presentes numa cultura em diversos instantes. Ache uma curva
exponencial para os dados e estime o numero de bacterias al:6s 7 horas.

numero de horas 0 1 2 3 4 5 6
numero de bacterias 25 38 58 89 135 206 315

EX EC U cAO:
R EGR ESSAO EXP ONENC I AL

NUMERO DE PONTOS CONHECIDOS? :


X,Y' DO PONTO ? 07 25
x, Y' DO PONTO 2 ? 1 7 38
X, DO PONTO 3 '? 27 58
X,"11 DO PONT° 4 ? 3,.89
X,f-.ti DO PONTO 5 ? 4,1.35
X+ DO PONTO 6? 5 7 206
7Y DO PONTO 7 ? 67 3i5

A = 24 .96i7
B w4 22375

COEF IC I ENTE DE DE TERM I ACAO ( R E2) = .999999


COEF IC IENTE DE CORRELACAO =
ER R0 P ADR AO DA ESTIMATIVA = 00352E-03
INTER F' OLACAO ( ENTRE 0 PARA F IM DE P R OGR AMA I
X =? 7
Y = 48 0 086

X =';' 0

152
CISTAGEM DO PROGRAMA

10 CLS : PRINT "REGRESSAO EXPONENCIAL"


20 DEFDBL i= -Z : DEFINT i
30 PRIN1
40 PRINT "NUMERO DE PONTOS CONHECIDOS';
50 INPUT N
60 J=0
70 K=0
60 L=0
90 M=0
100 R2=0
i09 REM - ENTRAM COORDENADAS DOS PONTOS CONHECIDOS
110 FOR I=1 TO N
120 PRINT "X,Y DO PONTO";I;
130 INPUT X,"i
139 REM - ACUMULA VALORES INTERMEDIARIOS
140 I=LOG(Y)
150 J=J.4X
160 K=K.4A
170 L=L+XE2
180 M=M+YE2
190 R2=R24-X*Y
200 NEXT 1
09 REM - CALCULA E IMPRIME INDICES DA EQUACAO
210 B=(N*R2-K*J)/(N*L-JL2)
220 A=(K-B*J)/N
230 PRINT
240 PRINT 'A =";EXP(A)
250 PRINT "B =' ;Ii
259 REM - CALCULA ANAL J.::}1::. DA REGRESSAO
260 J=B*(R2-J*K/N)
270 M=M-KE2/N
280 K=M-J
290 PRINT
300 R2=J/M
3i0 PRINT 'COEFICIENTE DE DETERMINACAO (RE2) =";R2
320 PRINT "COEFICIENTE DE CORRELACAO =";SOAR(R2)
330 PRINT "ERRO PADRAO DA ESTIMATIVA =';S(3R(ABS(K/(N-2)))
340 PRINT
350 PRINT "INTERPOLACAO (ENTRE 0 PARA FIM DE PROGRAMA)"
360 PRINT "X =";
370 INPUT X
380 IF X=0 THEN 420
390 PRINT "Y =";EXP(A)*EXP(B*X)
400 PRINT
410 GOTO 360
420 END

153
Confiabilidade de Sistemas

Este programa calcula a confiabilidade de urn sistema em operacao, que esti sujeito a desgaste e falhas. Deve-se fornecer
o tempo de desgaste e o tempo medio entre falhas de cada componente.

Exemplo:

Calcular a confiabilidade de urn sistema de computacao para 1000 horas, corn as especificacoes dos componentes
dadas abaixo.

desgaste (horas) falhas


CPU 15,000 0.00020
terminals 3,000 0.00010
disco 3,000 0.00015
impressora 1,500 _ 0.00015

EXECUQAO:

CONFIABILIDADE DE SISTEMAS

kpARA FINAL:(2AR 0 PROGRAMA EN RE 0)


TEMPO DE OPERACAO EM HORAS? 1000
NUMER0 DE COMPONENTES? 4
COMPONENTE J.
TEMPO MEDIO DE DESOASTE? 15000
TAXA MEDIA DE FALHAS? .0002
COMPONENTE 2
TEMPO MEDIO DE DESGASTE? 3000
T AXA MEDIA DE FALHAS? .0001
COMPONENTE 3
TEMPO MEDIO DE DESOASTE? 3000
TAXA MEDIA DE FALNAS? .00015
COMPONENTE 4
TEMPO MEDIO DE DESGASTE? 1500
TAXA MEDIA DE FALHAS? .00015
CONFIABILIDADE DO SISTEMA = .135335
TEMPO DE OPERACAO EM HOR AS? 0

LISTAGEM DO PROGRAMA
10 CLS
U PRINT 'CONFIABILIDADE DE SISTEMAS"
30 DEFDBL A-2 : DEFINT I
40 PRINT
50 PRINT "(PARA FINALIZAR 0 PROGRAMA ENTRE 0)"
60 PRINT "TEMPO DE OPERACAO EM HORAS";
70 INPUT I
—1 , -s,
/ 7 REM - TflTi DE •IM DE PROGRAMA

154
00 IF 1=0 THEN 250
90 PRINT "NUMERO DE COMPONENTES"-7
100 INPUT N
ii0 Z=0
119 REM --ENTRAM DADOS F'ARA CADA CO4ONENTE
120 FOR I=1 TO N
130 PRINT "COMPONENTE";I
140 PRINT " TEMPO MEDIO DE DESGASTE";
V50 INPUT W
160 PRINT " TAXA MEDIA DE FALHAS";
170 INPUT F
i79 REM - INCLUI CADA COMPONENTE NA CONFIABILIDADE
180 2=2.4.1,144T
190 NEXT I
200 PRIN1
209 REM - CALCULA CONFIA6ILIDADE r IMPRIME
210 Z=EXP(-Z*7)
20 PRINT 'CONFIAGILIDADE DO SISTEMA =";Z
230 PRINT
239 REM - REINICIA PROGRAMA
240 GOTO 60
250 END

155
Taxa Media de Crescimento, Projecoes Futuras

Este programa calcula a taxa media de crescimento de uma empresa, projetando figuras para os anos seguintes. A taxa
de crescimento e as projecOes podem ser calculadas para qualquer aspecto da empresa, tal como vendas, recebimentos,
rulmero de empregados e pro labore. Deve-se fornecer as figuras existentes para os anos anteriores.
A declaracao de dimensao na linha 30 limita o numero de figuras anteriores a serem entradas. Qualquer alteracao
desse dado pode ser feita mudando-se da seguinte maneira:

30 DIM S(N)
onde N = ntimero de anos para os quais a figura é conhecida.

Exemplo:

0 grafico de emprestimos da livraria MGHB esti configurado no grifico abaixo. Qual é a taxa de crescimento?
Quantos livros ela devera emprestar no seu decimo e decimo segundo anos de atividade?

70

0 60

18 50
tEL
40
0
30

0 20

I0

4 5
Anos

EXECUcAO:
fAAA MENA DE i .<IRESCIMENTO, PROJECOES FUTURAS

i•.
NUMERO DE ANOS COM DADOS Ex I STENI ES?
FIGURC“ ANO i ? 26
ANO : 35
ANO 3 cf42
NO 4 2 45
ANO j.
ANO 6 r f Si
ANO 7 60
ANO 62
ANO 9 74
T i'.:11XA MEDIA DE CR ESC I MENT 0 = n 88 I.,

156
..
kENTRE 0 PARA t 1. t1 or PROGRAMA)
FROJECAO FARA 0 ANO? 10
81.29
PROJE(.,AO PARA 0 ANC)? 12
249.8G
PROJECOES PARA 0 ANO? 0

LISTAGEM DO PROGRAMA

10 CLS
LO PRINT "TAXA MEDIA DE CRESCIMENTO, PROJE:',OES FUTURAS"
26 REM - ACERTE 0 ARRANJO PARA 0 NUMERO
29 REM - DE ANOS CONHECIDOS
30 DIM s 20)
0 PRINT
50 DEFDDL A I g DEFINT I
n
0 7 REM - DECLARACOES 60 A 140 REQUEREM ENTRADA
60 PRINT NUMERO DE ANOS COM DADOS EXISTENTES';
n
70 INPUT N
80 FOR I=1. TO N
90 IF 1>i THEN 120
100 PRINT "FIGURAg Ai O";I;
110 GOTO 130
120 PRINT " ANO";I;
130 INPUT s(I)
140 NEXT I
149 REM - INICIALIZA VARIAVEIS PARA 0 PRIMEIRO ANO
150 T=LOG(S(i))
160 V=0
169 REM - LOOP PARA OS DEMAIS ANDS DA HISTORIA
170 FOR 1=2 TO N
180 L=LOG(S(I))
190 =T +I...
200 V=V+(i-i)L
210 NEXT 1
2i9 REM - CALCULA TAXA MEDIA 1)E CRESCIMENTO
220 A=6*(2*Vi(N-1)-T)/(N)/(N-1)
230 G=EXP(A)-i
239 REM - ARREDONDA, IMPRIME
240 PRINT "TAXA MEDIA DE CRESCIMENTO =1. ;INT(G*1000(.1+.5)/100;
250 PRINT
259 REM - CAL TA :A MEDIA ANUAL DE CRESCIMENTO
260 S=EXP(1/N-A*(N-1)/2)
270 PRINT "(ENTRE 0 PARA FIM DE PROGRAMA)"
279 REM - ENT RA NUMERO DO ANO
280 PRINT 'PROJECAO PARA 0 ANO";
290 INPUT Yi
99 REM 1. - VERIFICA SE FIM DE PROGRAMA
300 IF . i=0 THEN 340
310 Si=S*(i+G)E(Yi-i)
319 REM - :F RE IMPRIME
320 PRINT ' =";INT(S1*100+.5)/100
329 REM -- RETORNA PARA MAIS DADOS
330 GOTO 280
0 LW)

157
Escalonamento de Depreciacab

Este programa fornece o valor anual de depreciacao. Pode-se usar o metodo da soma dos dIgitos ou qualquer metodo
de taxa de balanco depreciada desejado. Deve-se saber o preco de aquisicao do bem (valor inicial), valor residual no
final do period() de amortizac-do e o tempo de depreciacao do bem. Se for usado o metodo de depreciacao pelo metodo
de balanco decrescente, deve-se tambem saber o metodo do percentual.

Exemplos:

A MGHB Ind. Corn. Ltda. comprou urn equipamento para sua producffo per $27,000.00. Ela espera troca-lo em
9 anos. Qual deve ser o valor de depreciacao anual usando o metodo de soma dos digitos?
0 Banco Nosso Lar comprou urn novo edificio por $1.2 milhoes. Montar a tabela de depreciacao escalonada
do predio, sabendo que ele usa o metodo de taxa de balanco depreciada a 150% por um perfodo de 30 anos. Assuma
urn valor residual de $250,000. Perceba que a depreciac-do cai numa reta ($31,666.67 por ano) no ano 9.

EX E CUcAO:
ESCALONAMENTO DE DEPRECIACAO

FRECO DE COMP RA? 27000


PRECO RESIDUAL? 0
PERIODO EM ANOS? 9
ENTRE i PARA SOMA DOS DIGITOS E 2 PARA TAXA DE BALANCO DEPRECIADA? I.

•AXA DE DE 1: POR SOMA DE DIGITOS


PI ECO: 127000.00
VALOR RESIDUAL 10 00
DEP R EC I ACAO L i(iU IDA 127000.00
PER I ODO 9 ANDS

DEP R EC I ACAO BALANCO


j. $5,400.00 121,600.00
14,800.00 1i6,800.00
14,200.00 112,600.00
4 $3,600.00 19,000.00
13,000.00 16,000.00
6 12,400.00 13,600.00
7 11,800.00 1k, B00.00
1 1,200.00 1600 . C)0
1600.00 10.00

Di',:iDOS?(1=SIM,O=N0)? 1.

FRECO DE COMPRA? 1200000


PRECO RESIDUAL? 250000
PERIODO EM ANOS? 30
ENTRE i PARA SOMA DOS DIGITOS E 2 PARA TAXA DE BALANCO DEP R EC I ADA?
MEIODO EM 150

TAXA DE DEPRECIACAO POR TAXA DE BALANCO DEP R ECIADA


PRECO: 11,200,000.00
VALOR RESIDUAL: 1250,000.00
DEFRECIACAO 1950,000.00

158
PERIODO 30 ANOS
METODO 150 %
•NO DEPRECIACAO BALANCO
147,500. 00 1902,500.00
145,125. 00 1857,375.00
142,868. 75 1814,506.25
4 140,725. 31 1773,780.94
r.
138,689. 05 17K:7 091.89
136,754. 59 169ci,337.30
134,916. 87 (f)3 , 420.43
ti 133,171. 02 J30,249.41
9 1K,5t2. 47 1598,736.94
10 129,936. 05 1568,800.09
11 128 440. 00 1540,360.09
12 127,018. 00 1513,342.09
13 125,667. 10 1487,674.99
14 124,383. 75 1463,291.24
15 122,164. 56 1440,126.68
16 122,006. 33 1418,120.35
17 120,906. 02 1397,214.33
iG 119C60. 1377,353.61
19 118,867. 68 1358,485.93
20 117,924. 30 1340,561.63
21 117,028. 08 1323,533.55
116,176. 68 1307,356.87
115,367. 84 1291,989.03
24 114,599. 45 1277,389.58
--)cr 113,869. 48 1263,520.10
113 176. 01 1250,344.09
27 112,517. 20 1237,826.89
28 111,891. 34 1225,935.55
29 111 7 •296. 78 1214,638.77
30 110,731. 94 1203,906.83

MAIS DADOS2(1=SIM,O=NA0)2 0

LISTAGEM DO PROGRAMA
10 LL; PU1='11#0#0,00#0,0##0,####.##"
20 PRINT 'ESCALONAMENTO DE DEPRECIACAO"
30 DEFDBL A—Z wDEFINT I
40 PRINT
49 REM — ENTRA VALOR INICIAL ARREDONDANDO NOS CENTAVOS
50 PRINT "PRECO DE COMPRA";
60 INPUT V
70 V=INI(V*100+.5)/100
79 REM — ENTRA PRECO RESIDUAL F ARREDONDA NOS CENTAVOS
GO PRINT "PRECO RESIDUAL'
TO INPUT ::
100 S=INT(S*1004..5)/100
109 REM — CALCULA VALOR DA DEPRECIACAO
110 Dz:V—S
ii9 REM — EN•RA PERIOD() DA DEPRECIACAO
120 PRINT "PERIOD() EM ANDS" r.
130 INPUT Y
139 REM — SELECIONA 0 METODO DEE. DEPRECIACAO
140 PRINT "ENTRE i PARA SOMA DOS DIGITOS E 2 PARA TAXA DE. BALANCO
DEPRECIADA v

159
150 INPUT X
160 IF X=2 THEN 470
170 IF X<>1 THEN 14C)
178 REM — METODO PELA SOMA DOS DIGITOS
179 REM — Ri E 0 VALOR DEPRECIADO ACUMULADO
180 RI=O
/89 REM — N E 0 CONTADOR DE LINHA DE IMPRESSAO
190 N=66
200 PRINT
210 PRINT
220 FOR I=1 TO Y
(L.., REM — TESTE DE PAGINA CHEIA
230 IF 1 •iI(55 THEN 350
..),-c.,
c.or REM — PAGINA CHEIA
; ESPACOS PARA PROXIMA E CABECALHO
240 FOR :I: :N TO 66
250 PRINT
260 NEXT li
270 N=7
279 REM — IMPRIME CABECALHO
280 PRINT "TAXA DE DEPRECIACAO POR SOMA DE DIGITOS'
290 PRINT PRECO %";PRINTUSINGPUTV
300 PRINT " VALOR RESIDUAL $';PRINTUSINGPU1;S
310 PRINT ' DEPRECIACAO L1(i lJ1DA T";PRINTUSINGPU$01 —S
320 PRINT ,e, PERIOD0"0;"ANOS"
330 PRINT
340 PRINT "ANO","DEPRECIACAO"," BALANCO"
349 REM — (:iALCULA DEPRECIACAO E ARREDONDA OS CENTAVOS
350 R=2*D*(Y-14-1)/((Y+1)*Y)
360 R=INT(R*100+.5)/100
369 REM — ACUMULA OEPRECIACAO
370 Ri=R -14-R
379 REM — CALCULA BALANCO A DEPRECIAR
380 B=D—Ri
389 REM — TEBTE PARA DE PRECIACAO COMPLETA
390 IF B>=0 THEN 430
400 Ri=R1.4.B
410 R=R•B
420 F3=0
430 PRINTUSINGPUT);1,PRINTUSINGPU$0,B
440 N=N4.1
450 NEXT 1
460 GOTO 730
468 REM — PELO METODO DE TAXA DE BALANCO DEPRECIADA
469 REM — ENTRE 0 PE RCENTUAL
470 PRINT "METODO EM /";
480 INPUT N
489 REM — CONVERTE PORCENTAGEM PARA DECIMAL.
490 M=M/100
499 REM — N CONTA AS L.INI-IAS IMPRESSAS EM CADA PAGINA
500 N=66
509 REM — R E 0 RESTANTE A SER DEPRECIADO
510 R=D
5•0 PRINT
530 FOR Ir=i TO V
539 REM — TESTE PARA VER SE PAGINA INTEIRA NUMA
540 IF N(55 THEN 670
549 REM — PAGINA CHEIA, ESPACOS PARA PI OXIMA PAGINA E CABECALHO
550 FOR 11=N TO 66
560 PRINT
570 NEXT ii
sao N=8
5Ei REM — IMPRIME CABECALHO

160
590 PRINT "TAXA DE DEPRECIACAO POR TAXA DE BALANCO DEPRECIADA"
600 PRINT ti.
PRECO $";PRINTUSINGPU4);V
610 PRINT I/ VALOR RESIDUAL li";PRINTUSINGPUI;S
620 PRINT i, DEPRECIACAO LIQUIDA $";PRINTUSINOPU$;D
630 PRINT // PERIODO";YCANOS"
640 PRINT it
METODO ";M*10(.1;""4"
650 PRINT
660 PRINT "ANO","DEPRECIACAO",/1 BALANCO"
670 R1=INT(R*1i/Y)*1004..5)/100
679 REM - ACUMULA BALANCO RESTANTE
680 R.:=R-Ri
690 R=INT(R*100)/100
700 PRINTUSING"##"; Iy3PRINTUSINGPU%;Ri 7 R
710 N=N4.1.
720 NEXT I
730 PRINT
739 REM - REINICIO OU FIM DE PROGRAMA?
740 PRINT "MAIS DADOS2(1=SIM,O=NA0)";
750 INPUT X
760 IF X:=1. THEN 40
770 END

161
Custo de Receita

Este programa calcula o custo total e por porcao de uma receita. Para cada ingrediente deve-se fornecer o preco de
compra, a quantidade comprada, a quantidade usada na receita e o numero de receitas que se pode fazer corn a
quantidade comprada.

Exemplo:

Abaixo estao listados os ingredientes usados numa torta de morangos. Calcular o custo da receita e o custo por
pow-do. Qual seria o custo da receita se ela fosse servida para 12 pessoas? Os fatores de conversdo e o preco por
ingrediente sa-o fornecidos.

Torta de morangos
8 pow-6es

3 xicaras de farinha 2,5 xicaras/libra $ 1.59 5 libras


3 1/4 colheres cha fermento 15 cc/onca 0.43 4 oncas
1/4 xicara de acticar 2 xicaras/libra 1.24 5 libras
1 1/4 colheres cha sal 6 cc/ono 0.29 1 libra
1/2 xicara de manteiga 2 xicaras/libra 1.49 1 libra
1 ovo 12/dtizia 0.75 1 duzia
2/3 xicara de leite 4 xicaras/embal. 0.40 1 embal.
3 potes de morango 0.49 1 pote
1/2 pote creme de leite 0.59 1/2 pote

EXECUcAO:
CUSTO DE RECEITA
NUMER 0 DE INGREDIENTES? 9
INGR EDI ENTE
CUSTO DE AQUISICAO NO MERCADO? i .59
NUMER O DE UNIDADES ADGUIRIDAS? 5
nr,
RENDI MEW.° EM RECEITAS DO INGR EDIENTE?
NUMER O. DE UNIDADES DESEJADAS? 3
INGRED I ONTE 2
CUSTO DE AQUISICAO NO MERCADO? 43 n

NUMER O DE UNIDADES ADQUIRIDAS? 4


RENDI MENTO EM RECEITAS DO INOR ED IENTE?
NUMER 0 DE UNIDADES DESEJADAS? 3.25
INGR ED I ENTE 3 :
CUSTO DE AQUISICAO NO MERCADO? i .24
NUMER O DE UNIDADES ADOUIRIDAS? 5
RENDI MENTO EM RECEITAS DO INOR EDIENTE?
NUMER Cr DE UNIDADES DESEJADAS? .25

162
INGREDIENTE 4 g
CUSTO DE ACIUISICAO NO MERCADO? .29
NUMER0 pE UNIDADES ADOUIRIDAS?
RENDIMENTO EM RECEITAS DO INGREDIENTE? 96
NUMERO DE UNIDADES DESEJADAS? 1.25
Ii GREDIENTE 5 g
GUSTO DE AOUISICAO NO MERCADO? 1.49
NUMERO DE UNIDADES ADQUIRIDAS?
RENDIMENTO EM RECEITAS DO INGREDIENTE? 2
NUMERO DE UNIDADES DESEJADAS? .5
INGREDIENTE 6
CUSTO DE AQUISICAO NO MERCADO? .75
NUMERO DE UNIDADES ADQUIRIDAS?
RENDIMENTO EM RECEITAS DO INGREDIENTE? J.
NUMERO DE UNIDADES DESEJADAS?
INGREDIENTE 7
GUSTO DE AQUISICAO NO MERCADO? .40
NUMERO DE UNIDADES ADQUIRIDAS?
RENDIMENTO EM RECEITAS DO INGREDIENTE? 4
NUMERO DE UNIDADES DESEJADAS? .6666667
INGREDIENTE 8 g
CUSTO DE AQUISICAO NO MERCADO? .49
NUMER0 DE UNIDADES ADOUIRIDAS?
RENDIMENTO EM RECEITAS DO INGREDIENTE?
NUMERO DE UNIDADES DESEJADAS? 3
INGREDIENTE 9 g
CUSTO DE AOUISICAO NO MERCADO? .59
NUMER0 DE UNIDADES ADQUIRIDAS?
RENDIMENTO EM RECEITAS DO INGREDIENTE?
NUMER0 DE RECEITAS DESEJADAS?
NUMERO DE PORCOES? 8
CUSTO TOTAL DE UMA RECEITA $3.00
CUSTO POR PORCAO 10.30
'1 R0(: NUMERO DE PORCOES (1=SIM,1.1=NA0)? I.
NUMERO DE PORCOES? i2
CUSTO TOTAL DE UMA RECEITA = $3.00
CUSTO POR PORCAO = $0.25
TROCA NUMER0 DE PORCOES (1=SIM,O=NA0)? (1

LISTAGEM DO PROGRAMA
10 CLS
20 PRINT "CUSTO DE RECEITA
30 PRINT
0`}' REM - DE 40 A 190 PEDE L)AUO
40 PRINT 'NUMERO DE INGREDIENTES'p
50 INPUT N
59 REM - LOOP PARA ENTRAR DADOS DE CADA INGREDIENTE
.50 FOR 10 N
70 PRINT "IN44EbIENTE".0"g"
80 PRINI "CUSTO DE AOUISICAO NO MERCADO'.7
90 INPUT C
100 PRINT 'NUMERO DE UNIDADES ADOUIRIDAS';
.

110 INPUT U
.

120 PRINT 'RENDIMENTO EM RECEITAS DO INGREDIENTE";


J30 INPUT E
I.40 PRINT 'NUMERO DE UNIDADES DESEJADAS";

163
150 INPUT'
£59 REM - SOMA CUSTO DE WA INGREDIENTE AO TOTAL
160 P=P+C/U/F*R
170 NEXT I
180 PRINT "NUMERO DE PORCOES";
190 INPUT S
200 PRINT
205 REM - ARREDONDA ULTIMO CENTAVO a IMPRIME
209 PU1="11####,####,####7 .##'
10 PRINT "CUSTO TOTAL Di UMA RECEITA =1";gPRINTUSINGPU10-1
220 PRINT "CUSTO POR PORCAO = VOPRINTUSINGPUW/S
230 PRINT
240 PRINT "TROCA NUMERO DE PORCOES (1=SIM,0=NA0)",
250 INPUT N
260 IF N=1 THEN 180
270 END

OPQA0

Corn o habit°, pode-se mais tarde fazer corn que o programa seja mais conciso na introducao das informacOes
necessarias, corn uma linha para cada ingrediente. As alteracifies necessarias para isso vem abaixo do exemplo a seguir.

Exemplo:

Calcular o custo por porcab da torta de morango do exemplo anterior, quando servida sem creme.

EXECKAO:
CUSTO DE RECEITA
NUMERO DE INGREDIENTES2
INGREDIENTE 4 ITO V

INGREDIENTE . 4 3,4 15,3.25


:
INGREDIENTE 1.24,5,2,.25
INGREDIENTE 4 .29,1,96,1.25
Z:'
INGREDIENTE £.49,1,2,.5
INGREDIENTE 6 .75,1,12,1
INGREDIENTE 7 .40,1,4,.6666667
INGREDIENTE .49,1 i 3
NUMERO DE P ORCOES? 8
CUSTO TOTAL DE UMA RECEITA = 12.41
CUSTO POR PORCAO = 10.30
TROCA N1.iMER0 DE PORCOES (1=SIM,O=NA0)?
NUMERO DE PORCOES? 12
CUSTO TOTAL DE UMA RECEITA = 12.41
CUSTO POR PORCAO = 10.20
TROCA NUMERO DE FORCOES (1=6IM,O=NA0)? 0

LISTAGEM DO PROGRAMA
I REM - OPCOES 65-80
AO CLS

164
20 PRINT "CUSTO DE RECEITA"
a

60 FOR I. =i TO N
65 REM - ENTRAM C,U,F,R
66 REM - ONDE C=CUSTO DE AQUISICAO NO MERCADO
67 REM - U=NUMERO DE UNIDADES ADQUIRIDAS
68 REM -
- F=RENDIMENTO EM RECEITAS DO INGREDIENTE
69 REM - R=NUMERO DE UNIDADES DE SEJADAS
70 PRINT "INGREDIENTE";I;
80 INPUT C,U,F,R
i59 REM - SOMA GUSTO DE CADA INGREDIENTS AO TOTAL
se

Is

'i;70 END

165
Verificacgo de Levantamento (Teste em Mapas)*

Este programa calcula o erro de aproximacao e a area de um percurso para o qual tern-se o perimetro. 0 programa
tambern calcula a distancia de urn percurso aberto em relacao a sua origem (a Norte e Leste). As coordenadas locais
da origem podem ser entradas, para urn percurso aberto. Valores negativos de Norte e Leste representam Sul e Oeste,
respectivamente, a partir da origem 0,0 do levantamento.
Cada uma das arestas do percurso pode ser uma linha reta ou um arco de circunferencia. Para calcular o percurso,
deve-se ter a direc ao e o comprimento de cada aresta. Tambem é necessario o raio, direcao da corda e o comprimento
da corda (ou arco, raio medido e direcao da tangente) para cada lado curvo.
Para um percurso fechado, tome qualquer ponto de interseccao como ponto de partida e numere as linhas e
arcos, iniciando com 1, no sentido horario, ao longo do perimetro. Se algum arco tiver 180 graus ou mais, ele deve
ser quebrado em arcos menores, cada urn corn menos de 180 graus.
Pot convencao, os caminhos sac) medidos na direcao Leste e Oeste e Norte e Sul, como mostra a figura abaixo. A
convencao foi estabelecida muito antes dos computadores existirem, de forma que as funcoes trigonometricas podiam
ser lidas facilmente em tabelas que nao excediam 90 graus. Para cada pema, deve-se entrar o numero do quadrante e os
graus, minutos e segundos a Leste ou Oeste do eixo Norte-Sul. 0 programa indicara a direcao da perm (ex.: SE), e
converters o quadrante, graus etc. em urn angulo de azimute. 0 azimute medido no sentido horario a partir do Norte
ate 360 graus.

Esquema de numeracao dos quadrantes. Note que angulos sao medidos a partir da linha Norte-Sul.


4
E
3 2
• 0

Uma perna curva, ou arco, é definida por duas pemas auxiliares, cada uma sendo urn raio do arco. 0 sentido da
primeira perm auxiliar é a direcao do raio a partir do primeiro fun do arco encontrado ate o centro do arco. Pode-se
calcular esse sentido a partir do sentido da tangente do arco nesse ponto, pois o raio é perpendicular a tangente. 0
mapa pode mostrar a direcao da tangente. Se nao, pode-se calcular somando metade da extensab angular do arco
direcao do arco da corda, como mostrado na figura seguinte.

* Robert Irwing, Northridge, California.

166
raio

Direcao da tangente = direcao da corda 1- T

A direcao do segundo raio é do centro do arco ate o extremo oposto, e a distancia é entrada como negativa,
para indicar ao computador que essa perna e a anterior nab sao pemas do perimetro, mas pemas auxiliares de urn arco.
0 programa pergunta pelo sentido e a distancia de cada perna pelo nlimero. As pernas sao entradas em conjuntos
de dez (ou menos). Seguindo a entrada no Ultimo conjunto, pode-se corrigir qualquer digitacao do conjunto. Deve-se
entrar as duas pernas auxiliares de urn arco no mesmo conjunto. Pode-se entrar corn urn sentido composto de zeros
para terminar urn conjunto e depois digitar-se mais pemas no conjunto seguinte.
Apos ter corrigido urn conjunto, uma tabela a impressa para ele. Ela inclui cada ntimero de perna, direcao, angulo
de azimute e distancia, e incremental e acumulados direcionais em relacao ao Norte e Leste. 0 acumulado, apos a
Ultima perna num percurso fechadO, da o erro de aproximacao. 0 angulo do arco, raio, area do setor, comprimento
da corda e comprimento da tangente sac) impressos entre duas pemas auxiliares de cada perna curva.
Seguindo a impressao da ultima perna de urn caminho fechado, a area do desenho sera impressa, em pes
quadrados e em acres. A area calculada é bem precisa, desde que duas condicoes sejam obedecidas:

1) o erro de aproximacao seja pequeno (0.01 pes para o lote de uma casa), e
2) a area seja suficientemente pequena para que a curvatura da Terra nab se tome significante. Mapas que cobrem
varias dezenas de milhas devem contar corn esse fator adicional.

Exemplo:

A figura abaixo mostra os limites de urn lote corn urn lado curvo. Os nameros .das pemas estao nos circulos. Os
sentidos e as distancias sao apresentados para cada perm. Ache o erro de avroximacao e a area do lote.

1. S39°0'0"E
149.83
2. S39°0'0"E
50.00
3. N85° 23'53"W
50.00
4. N85°23'53"W
114.32
5. N1°5'0"E
132.78
6. N46°0'0"E
14.00
7. S89°0'0"E
25.46

167
EXECUcAO:

VERIFICACAO DE MAPA — LEVANTAMENTO & AREA

LEVANTAMENTO ABERTO (i) OU FECHADO (0)? 0


CONJUNTO SEGUINTE DE PERNAS:
PERNA NO. 1:QUADRANTE,GRAUS,MINUTOS, SEGUNDOS? 2,39,0,0
DIS•ANCIA (NEGATIVA SE RAIO EXTERN()) .'149.83
PERNA NO. 2:QQADRANTE,GRAUS,MINUTOS, SEOUNDOS? 2,39,0,0
is ISTANCIA (NEGATIVA SE RAIO EXTERNO) ? 50
PERNA NO. 3:QUADRANTE,GRAUS,MINUT06, SEGUNDOS? 4,85,23,53
DISTANCIA (NEGATIVA SE RAIO EXTERNO) ? —50
PERNA NO 4:QUADRANTE,GRAUS,MINUT06, SEGUNDOS? 4,85,23,53
DISTANCIA (NEGATIVA SE RAIO EXTERNO) ? 114.32
PERNA NO. 5:QUADRANTE,GRAUS,MINUTOS, SE•UNDOS? 1,17 5 7 0
DISTANCIA (NEGATIVA SE RAE) EXTERNO) ? 132.78
PERNA NO. 6:QUADRANTE,GRAUS,MINUTOS, SEGUNDOS? 1,46,0,0
DISTANCIA (NEGATIVA SE RAIO EXTERNO) 2 14
PERNA NO. 7:QUADRANTE,GRAUS,MINUTOS, SEGUNDOS? 2,89,0,0
DISTANCIA (NEGATIVA SE RAIO EXTERNO) ? 25.46
PERNA NO.•8:QUADRANTE,GRAUS,MINUTOS, SEGUNDOS? 0 7 0 7 0,0
PERNA A CORRIGIR NESTE CONJUNTO (0= N A 0 ALTERA)? 0

PER/DIR. AZIMUTE/DIST. is :Is N/DIS L NOR T E /LEST E


M 07 0
i /SE 141 0 0 / 149.83 —116.44 / 94.291 —116.440/ 94.29i

C:e /SE 141 0 0 / 50 —38.857 / 31.466 —115.297 / 125.757

ARCO: 46 23 53 R= 50 A= 2024.497 C= 39.393 T=21.429

/NW 274 36 7 I 50 4.012 /-49.839 —151.285 / 75..916

4 /NW 274 36 7 / 114.32 9.172 di-113.95i —142.ii3 /-38.033

S /NE 4 60 132.78 132.756 / 2.51 —9.357 /-35.523.

/NE 46 0 0 / 14 9.725 / 10.071 .368 / —25.452

7 /SE 91 1) (3 / 25..46 —.444 / 25.456 —7.60E-02 / 4.0E•03

MAIS ALGUMA PERNA (i=SIM, 0=NA0)? 0


AREA DESENHADA TEM 13,347.680 PES QUADRADOS

AREA DESENHADA TEM .30642056 ACRES

LISTAGEM DO PROGRAMA

3 REM — VERIFICACAO DE MAPA & DESENHO DE AREA


4 REM — PARA VERIFICACAO DE CAMINHO FECHADO SIGA SENTIDO HORARIO
5 REM — SIGA 0 DESENHO A PARTIR DA DIREITA DE CADA PERNA NO
PERIMETRO
o REM — CALCULA PERNAS AUXILIARES EM RADIANOS PARA CADA
7 REM — FINAL DE ARCO. ARCO < 180 GRAUS.
0 PUI="000#.0#0":PV$="##0"
9 CLS :DEFDDL : DEFINT
10 REM — VALOR DE PI
20 P1=3.141592654
29 REM -- KO=NUMERO DE PERNAS POR CONJUNTO
30 K0=10
40 DIM B(10) ,L(10)
49 REM — R E .0 FATOR DE CONVERSAO ENTRE GRAUS E RADIANOS

168
50 1i =1.745329251E-2
60 PRINT 'VERIFICACAO DE MAP - LEVANTAMENTO & AREA"
70 PRINT "LEVANTAMENTO A6ERTO (1) OU FECHADO (0)'
BO INPUT F
90 IF F=0 THEN 120
100 PRINT "ORIGEM: NORTE,LESTE";
ii0 INPUT N,E.
120 CLS : PRINT 'CONJUNTO SEGUINTE DE PERNAS:"
130 G=H
140 FOR K=1 TO KO
1.417 REM - ENTRA DIRECAO E DISTAN(::IA PARA PROXIMA PERNA
150 GO SUB 2000
159 REM - SE DIRECAO E FIM DE ENTRADA PARA 0 CONJUNTO
160 IF 0=0 THEN 190
1.70 0=04.1
180 0010 250
189 REM - EL RA PERNAS NAO USADAS NO CONJUNTO
190 IF K=KO'THEN 240
20G FOR J=K4.1 TO KO
210 n(J)=0
220 L(J)=0
230 NEXT J
240 K=K0
250 NEXT K
260 PRINT "PERNA A CORRIGIR NESTE CONJUNTO (0= NAO ALTERA)";
270 INPUT K .
279 REM - NAO ALTERA SE ENTRADA =0
280 IF K=0 THEN 320
290 K=K-H
300 GOSUB 2000
310 GOTO 260
319 REM - CALCULA VALORES E IMPRIME TAOELA
320 PRINT
330 PRINT "PER/DIR. AZIMUTE/DIST" . ;
340 PRINT " DIS N/DIS L NORTE/LESTE"
350 PRINT TAB(8)"D M S";
360 PRINTTAB(52);:PRINTUSING"0#11";N;:PRINT"/ "-:PRINTUSING"0##"
7 ;
380 FOR K=I TO KO
390 LI=L(K)
400 IF Li(0 THEN 1080
410 IF Li=0 THEN 970
418 REM - CALCUL.A INCREMENT° A NORTE/ESTE
419 REM - (CONVERTE REFERENCIA DE GRAUS PARA RADIANOS)
420 L=L(K)*COS(8(K)*R)
430 D=L(K)*SEN(B(K)*R)
440 N=N+L
450 E=E+0
459 REM - INCREMENTA AREA
460 A=A-E*L+N*D
470 PRINTUSING"#00";H+K;:PRINT"/";
479 REM - DA REFERENCIA, GERA DIRECAO
480 IF B(K)=0 THEN 500
490 GOTO 520
500 PRINT 'N";
510 0010 860
520 IF B(K)<90 THEN 540
530 GOTO 560
540 PRINT "NE";
550 GOTO 860
560 IF B(K)=90 THEN 580
570 GOTO 600
580 PRINT "E ";

169
590 GOTO 860
600 IF B(K)<1.80 THEN 620
610 GOTO 640
620 PRINT "SE";
630 GOTO 860
640 IF B(K)=180 THEN 660
650 GOTO 680
660 PRINT "S ";
670 GOTO 860
680 IF B(K)<270 THEN 700
690 GOTO 720
700 PRINT "SW"
71.0 GOTO 860
720 IF B(K)=270 THEN 740
730 0010 760
740 PRINT "W ";
750 GOTO 860 '
760 IF B(10<360 THEN 780
770 00TO 800
780 PRINT "NW";
790 GOTO 860
800 IF B(10=360 THEN 820
810 GOTO 840
820 PRINT "N ";
830 0010 860
840 0(K)=B(K)-360
850 00TO 480
859 REM - QUEBRA REFERENCIA EM GRAUS, MINUTOS E SEGUNDOS
860 Di=INT(B(10)
670 Mi=(B(K)-D1)*60
860 M=INT(Mi)
890 S=INT(Mi-M)*604-.5?, D
900 PRINT " ";:PRINTUSING1;."1-M;S;PRINT"/";
920 PRINTUSINGPU$;L(K);:PRIN1 P "-:PRINTUSIN0PU$0.-
940 PRINT "/';uPRINTUSINOPU$0);:PRiNT" ";:PRINTUSii4P GPUI;N
945 PRINT "/";:PRINTUSINGPUlp;E
`./60 L(K)=Li
970 NEXT K
980 H=0
990 PRINT "MAI'S ALOUMA PERNA (1=SIM, 0=NA0)";
1000 INPUT U
1010 IF U<>0 THEN 120
1019 REM - NfiO HA AREA PARA LEVANTAMENTO ABERTO
1020 IF F<>0 THEN 1070
1030 A=ABS(A/2)
A rf i 111EA DE i.NHADA TEM";:PRINTUSING"###0,########.14#0"0;
S.7

1041 PRINT "PEi GUi;;DRADOS"


1.050 PRINT
1060 PRINT "AREA DESENHADA TEM";:PRINTUSING"00#0,###.00#00###" to

A/43560;
1061 PRINT " ACRES"
1070 GOTO 9999
1079 REM - CALCULA PERNA DA CURVA E IMPRIME NA TABELA
1080 C=ABS(B(10-B(K-1))
1090 C:•ABS(180-C)
1100 D=-Li
111.0 L(K)=D
1120 Air-IC/180*Pi*D*D
1130 Ci=2*D*SEN(C/2*R)
1140 T=D*TAN(C/2*R)
1150 B9=B(10-B(K-1)
1160 IF B9<-180 THEN 1210

170
1170 IF 69>180 THEN 1210
1180 IF 89)0 THEN 1210
1190 A=A+Ai
1200 GOTO 1220
1210 A=A-A1
1220 Di=INT(C)
1230 Mi=kC-D1)*6-0
1240 M=INT(Mi)
1250 6=INT(iMi-M)*604..5)
1260 PRINT " ARCO;:PRINTUSINGPV$;Di;M;S;:PRINT" R::::' ,.7
1270 PRINTUSINGPUI;D;:PRINT" A=";*RIN•USINGPUW1;
1.260 PRINT" C=";4PRINTUSINGPU$;C1;gPRINT" T=";gFRINTUSINGPUT);T
1310 GOTO 420
1999 REM - ENTRA DADOS PARA UMA PERNA
2000 B(K)=0
2010 L(K)=0
2020 PRINT "PERNA NO. "0-14-K ,CgQUADRANTE,GRAUS,MINUTOS T SEGUNDOS";
2030 INPUT Q,D,M,S
2040 IF Q=0 THEN 2270
2050 IF Q>4 THEN 2020
2060 IF Q<0 THEN 2020
2070 IF D<,0 THEN 2020
2080 IF M<0 THEN 2020
2090 IF $:0 THEN 2020
2100 13(K)=D+(M+S160)/60
2110 IF B(K)>90 THEN 2020
2120 IF Q=1 THEN 2220
2130 IF Q=2 THEN 2150
2140 GOTO 2170
2150 B(K)=180-6(K)
2160 GOT() 2220
2170 IF Q=3 THEN 2190
2180 GOTO 2210
2190 13(10=180-BOO
2200 GOTO 2220
221(J IF (<>4 THEN 2220
2215 B(K)=360-13(K)
2220 PRINT "DISTANCIA (NEGATIVA SE RAIO EXTERNO)";
2230 INPUT L(K)
2240 IF L(K))0 THEN 2270
225(i IF ABS(L(K))0ABS(L(K-1)) THEN 2270
2270 RETURN
9999 END

171
Dia da Semana

Este programa calcula em que dia da semana cai uma determinada data. Ele informa, por exemplo, que o dia 25 de
dezembro de 1980 foi uma terca-feira.
Deve-se digitar a data em forma numerica, na ordem: mes, dia e ano. Por exemplo, 12 de setembro de 1975
sera digitado como 9,12,1975, separados por virgula. No separar corn barras ou tracos.

Exemplos:

Cintia nasceu em 4 de marco de 1953. Em que dia da semana caiu?


Tio Lon morreu dia 30 de setembro de 1977. Que dia da semana era?

EXECUcAO:
DIA DA SEMANA
(ENTRE 0,0,0 PARA FIM DE PROGRAMA)
MES, DIA E ANO?3,4,1953
(WINTA
MES, DIA E ANO?9,30,1977
SEXTA
MES, DIA E ANO?0,0,0

LISTAGEM DO PROGRAMA
10 CLS
20 PRINT "DIA DA SEMANA"
30 PRINT
39 REM - ENTRADA DE DADOS
40 PRINT "(ENTRE 0,0,0 PARA FIM DE PI OGRAMA)"
50 PRINT "HES, DIA E ANO";
60.IN•UT M,D,Y
64 REM - VERIFICA ENTRADA ERRADA
65 IFM<OORM>12THEN60
66 IFD<OORD)31THEN60
69 REM - TESTE DE FIM DE PROGRAMA
70 IF M< >0 THEN 110
BO IF D<>0 THEN 110
90 IF Y<>0 THEN 110
100 GOTO 370
109 REM - AJUSTA DADOS PARA CALCUL02
110 IF M)2 THEN 140
119 REM - AJUSTA DADO ENTRADO
120 M=M4-12
130 Y=Y-1
139 REM - CALCULA 0 NUMERO DO DIA
140 N=D4-2*M-FINT(.6*(M1-1))+Y.FINT ('r'/4).- [NT (Y/100)•INT(Y/400)+2
150 N:INT((N/7-INT(N/7))*7+.5)
159 REM - ACHA 0 DIA CORRETO, TRANSFORMA EM DIA, IMPRIME
160 IF N>0 THEN 190

172
170 PRINT "SABADO
i80 GOTO 350
190 IF N>i THEN 220
200 PRINT "DOMINGO"
210 GOTO 350
220 IF N>2 • THEN 250
230 PRINT IISEGUNDWI
240 GOTO 350
250 IF N>3 THEN 280
260 PRINT "Ti .RCA"
270 GOTO 350
280 IF N>4. THEN 310
290 PRINT ICE
GO TO 350
310 IF N>5 THEN $40
320 PRINT "QUINTA"
330 GOTO 350
340 PRINT "SEXTWI
350 PRINT
J„, :y REM - REINICIA PROGRAMA
360 GOTO 50
370 END

173
Dias entre Duas Datas

Este programa calcula o mimero de dias entre duas datas dadas. Os anos bissextos tambem sao considerados. 8 assumido
que existe um dia entre hoje e amanha. Por exemplo, existem dois dias entre os dias 1 e 3 de marco do mesmo ano.
Existem algumas precaucoes para assegurar o funcionamento do programa. Primeiro, deve-se digital- a data mais
antiga. Segundo, as datas devem ser digitadas de forma numerica (3, no marco) e na ordem correta (dia, mes e ano,
ex.: 17,3,1976). Virgulas, e nab barras ou tracos, devem separar cada campo. Terceiro, o ano nao pode ser abreviado
(1976, nao 76), mesmo que ambas as datas sejam do mesmo ano. Finalmente, o mes digitado nao podera ser maior que
12 e o dia nab maior que o maior numero de dias do referido mos. Em tal caso, a mensagem data irreal é impressa para
alertar que uma data nao possivel (como 32,14,1975) foi digitada. Isso resulta numa resposta incorreta.

Exemplo:

Joao nasceu em 8 de agosto de 1951. Quantos dias se passarao quando ele completar 30 anos?

EXECUcAO:
DIAS ENTRE DUAS DATAS

PRIMEIRA DATA? B,8,1951


SEGUNDA DATA? 0,8,1981
DIFERENCA 10958 DIAS

MAIS DADOS (1=5IM, 0=NA0)? 0

L.. :15T AGEM DO P R OGR AMA

1.0 CLS
20 PRINT "DIA i ENTRE DUAS Di.tiTAS"
30 PRINT
39 REM - DECLARACOES 40 A 70 ENTRAM DADOS
40 PR INT "PRIMEIRA DATA"
50 I NP UT Di,Mi T Y1
60'PRINT "SEGUNDA DAT A'' Y
70 INPUT D2,M2,Y2
79 REM - GERA VARIAVEIS A SEREM USADAS EM SUB -ROTINA
GO M=Mi
90 U = D 1
100 Y=1'- 1

ii9 REM - SAL.VA NUMERO DE DI AS CALCULADO EM N


120 N=A
129 REM A US TA VAR IAVE I S PARA USAR NA SUB -ROTINA
:130 M=M2
140 f) 1:)
150 Y=Y2
160 3 0 B 40
169 REM - CALCULA DIFERENCA E IMPRIME
170 N=A-N
180 PRINT "DIFERENCA ="0;"DIA9"
190 PRINT
199 REM - REINICIO OU FIM DE PROGRAMA?
200 PRINT "MAIS DADOS (i=SIM, 0=NA0)";

174
210 INPUT X
220 IF X=1 THEN 30
229 REM -. FIM DE PROGRAMA
230 (O (O 490
237 REM SUB-ROTINA PARA CALCULAR NONDE DIAS ENTRE 0,0,0 ATE D,M,Y
238 REM - INICIA COM TESTE PARA DATA IRREAL
239 REM - VAI AO PONT() CORRETO DE DIAS DO NEE
240 ON M ooio 270,290,270,350,270,350,270,270,350,270,350,270
249 REM - SE ESTA MENSAGEM APAR•CE, A DATA ESTA PROVAVEL.MENTE
INCORRETA
250 PRINT "DATA IRREAL"
59 REM - PARA CALCUL.0S, VOLTA AO PROGRAMA PRINCIPAL
260 RETURN
269 REM - MES TEM 31 DIAS
270 IF D>31 THEN 250
280 GOTO 360
289 REM - MES r FEVEREIRO; ANO BISSEXTO?
290 IF Y/40INT(Y/4) THEN 320
300 IF Y/400=INT(Y/400) THEN 330
310 IF Y/100‹>INT(Y/100) THEN 330
319 REM - NAO E BISSEXTO, MES TEM 28 DIAS
320 IF D>28 THEN 250
229 REM - ANO BISSEXT0 v MES COM 29 DIAS
330 IF D>29 THEN. 250
340 GO TO 360
349 REM -MES TEM '10 DIAS
'350 IF 0)30 THEN 250
359 REM - TABELA DE DIAS DO PRIMEIRO DO ANO AO PR1MEIRO DE CADA MES
360 DATA 0,31 7 59 r 90,i20y151,101 7 212,243,273,304,334
370 RESTORE
300 FOR H=1 TO h
388 REM - PEGA NUMERO DE DIAS DE i DE JANEIRO
369 REM - ATE 0 DIA i DO MES
390 READ A
400 NEXT H
409 REM - CALCULA NUMERO DE DIAS DE 0,0,0 ATE D,M,Y
410 A=A+Y*3654-INT(Y/4)+D+1-INT(Y/100)+INT(Y/400)
419 REM - POSSIVEL (UE SEJA BISSEXTO?
420 IF INT(Y/4)0Y/4 THEN 480
429 REM - CONTINUA TESTE PARA ANO Iii.: 5I
440 IF W400=INT(Y/400) THEN 460
450 IF Y/100=INT(Y/100) THEN 480
45G REM - ANO BISSEXTO;
459 REM - SE E JANEIRO OU FEVEREIRO, AJUSTA NUMER0 DE DIAS CALCULADO
460 IF h>2 THEN 480
470 A=A-1
•Yn
REM - FIM DA SUB-ROTINA, RETORNA AO PROGRAMA PRINCIPAL
480 RETURN
490 END

°PQM)
Para diminuir este programa pode-se diminuir o teste de data irreal. Pode-se notar que se for entrado urn mes
maior que 12 e esse teste for omitido, acontecera um erro de entrada. As linhas do programa que devem ser eliminadas
estdo mostradas depois do exemplo abaixo.

Exemplo:

Quantos dias ha entre 4 de julho e o Natal?

175
EXECUQAO:

DIAS ENTRE DUAS DATAS

PRIMEIRA DATA? 4,7,1977


SE(:iUNDA DATA? 2512,1977
DIFERENCA = 174 I: IA

MA IS DADOS 11=5I11, 0=NA0)? 0

FIM DO PROGRAWi

LISTAGEM DO PROGRAMA

i REM - OPCOES 110,160 E ELIMINACAO DE 238-350


10 CLS
20 PRINT -1.)IAS ENTRE DUAS DATAS"
01

-ii0 GOSUB
ii9 REM - SALVA NUMERO DI DIAS CALCULADOS EM N

i50 Y. =Y2
1.60 (30Z';
169 REM - CALCULA DIFERENCA E IMPRIME

237 REM - SUB-ROTINA PARA CALCULAR NO.DE DIAS ENTRE 0,0,0 E D,M,Y
ELI MINE AS LINHAS 238-350):,
.356 - TABELA DO NUMERO DE DIAS ENTRE PRIMETRO DO ENO E 0 DE
CADA MES

11

490 END

176
Conversao de Sistemas de Medida Ongles para Metrico)

Este programa converte uma medida em unidades do sistema ingles para o sistema metric° decimal. As conversOes
existentes no programa sao:

1 polegadas para centimetros


2 pes para centimetros
3 pes para metros
4 jardas para metros
5 milhas para quilometros
6 colheres de cha para centimetros cithicos
7 colheres de sopa para centimetros cithicos
8 copos para litros
9 pintas para litros
10 quartos para litros
11 galoes para litros
12 alqueires para litros
13 pecks para litros
14 oncas para gramas
15 libras para quilogramas
16 tons para quilogramas
17 graus Fahrenheit para graus Celsius

Deve-se fornecer o valor medido e o nilmero da conversao (1-17 como listado acima) para executar a
conve rsao.

Exemplo:

Execute as seguintes conversOes:

8.5 milhas para quilOmetros


75 graus Fahrenheit para Celsius
10 galoes para litros

EXE C UcAO:
INGLES PARA METRIC

(PARA FINALIZAR 0 PROGRAMA ENTRE 0 )


QUAL A CONVER A() DESEJADA? 5
VALOR A SER CONVERTIDO? 8.5
1.5 MILHAS = i3.6765 QUILOMETROS

QUAL A CONVERSAO DESEJADA? if


VALOR A SER CONVERTIDO? 75
75 GR•US FAHREN'TIT = 23.88a8888888$889 CELSIUS

QUAL A CONVERSAO DESEJADA? ii


VALOR A SER CON9ERTIDO? i0
i0 °ALOES = 37.85 LITROS
QUAL.. i CONVER SAO DESEJADA? 0

177
LISTA(3EM DO PROGRAMA
JO CLS
g.:0 PRINT "INGLES PARA METRICO"
30 DEFDBL A-2. g DEFINT N
40 PRINT
49 REM - FSABELECE VAR IAVEIS PARA 17 FATORES DE CONVERSAO
50 DIM C(17)
59 REM - COLOCA FATOR EM C( )
60 FOR N=1 TO 17
70 READ C(N)
GO NEXT N
G9 REM •• TABELA DE DADOS PARA OS 17 FATORES DE CONVERSAO
90 DATA 2.540,30.480.30487 .9144,1.6097 4.929,14.788,2366,.4732
i00 DATA .94637 3.785,35.247 8.809,28.3495,.4536,907.2,.6214
109 REM - PEGA NUMERO DA CONVERSAO DE ACORDO COMM 0 DADO
110 PRINT "(PAR FINALIZAR 0 PROGRAMA ENTRE 0 )"
120 PRINT 'CIT A CONVERSAO DESEJADA.";
130 INPUT A
139 REM - TIM DE PROGRAMA?
140 IF N=0 ;HEM 560
149 REM - CONVERSAO DISPONIVEL?
150 IF N>17 THEN 120
160 PRINT "VALOR A SER CONVERTIDO";
170 INPUT I
179 REM - EXECUTA CONVERSAO USANDO A TABELA
180 R=I*C(N)
i89 REM - DIRE CIONA 0 PROGRAMA PARA Ai VARIAVEIS E IMPRIME
RESULTADOS
190 ON N 00TO 180 , 200 , 220 , 240 , 260 , 280 , 300320 y 340
360 , 380 , 400 , 420 , 440 , 440 , 460
7 480 7 506
200 PRINT I;"POLEGADAS =";RCCENTIMETROS"
210 00TO 540
220 PRINT ICPES =";RCCENTIMETROS"
230 00TO 540
240 PRINT ICPES =";RCMETROS"
250 GOTO 540
260 PRINT ICJARDAS =it; RCMETROS"
270 GOTO 540
280 PRINT ICMILHAS _-.. " 0,"GUILOMETROS"
290 GOTO 540
300 PRINT ICCC =";RCCENTIMETROS CUBICOS"
310 00TO 540
320 PRINT ICCS ="OCCENTIMETROS ClUADRADOS"
330 GOTO 540
340 PRINT ICCOPOS="0CLITROS"
350 GOTO 540
360 PRINT ICPINTAS=";RCLITROS"
70 &OTO 540
380 PRINT ICQUARTOS=" 0; LITROS"
I1

390 GOTO 540


400 PRINT ICGALOES =";R;" LITROS"
410 GOTO 540
420 PRINT ICALGUEIRES=";RCLITROS"
430 GOTO 540
440 PRINT ICPECKS=";RCLITROS"
450 GOTO 540
460 PRINT I;"ONCAS =";RCGRAMAS"
470 GOTO 540
480 PRINT ICLIBRAS ="0;"QUILOGRAMAS"
490 GOTO 540

178
500 PRINT ICTONS =';RCQUILOGRAMAS'
510 00-10 540
i:: ' 4 i,...)
...1, REM - CONVERTE DE GRAUS FAHRENHEIT PARA CELSIUS
520 .:::(1-32).x5/9
530 PRINT Ig'GRAUS FAHRENHEIT =";RCCELSIUS"
540 FRIN1
549 REM - REINICIA PROGRAMA
550 GOTO 120
560 END

179
Ordenacffo Alfabetica

Este programa coloca uma lista de palavras ou frases em ordem alfabetica.


Podem existir niimeros dentro de uma frase alfanumerica. Entretanto, des no sera° colocados na ordem
numerica, a menos que tenham o mesmo numero de digitos. Os numeros com menos digitos devem ser alinhados
a direita corn zeros para completar. Assim, se os nAlmeros a serem ordenados estiverem ocupando ate a casa das
centenas, o numero 13 devera ser entrado como 013.
Para economizar memoria, o arranjo na declaracao 40 deve ser limitado ao maxim° numero de itens a ser
colocado em ordem. A declaracao de dimensffo pode ser alterada da seguinte forma:

40 DIM AS( AT )

onde N = numero de itens a ser ordenado.

Exempla:

Ordenar os seguintes nomes:

Robert Wilson
Susan W. James
Kent Smith
Michael Mitchell
Ann T. Mcgowan
Alexander Lee II
Mary Mitchell
David Bowers
Steven Evans
Carol Jameson
Linda North

EXECU QAO:
ORDENACAO ALFABETICA

& P ARA FINALIZAR 0 PROGRAMA D1GITE 0)


NUMER 0 DE ITENS?
I TEE: f1 ? WILSON ROBERT
ITEM 2 JAMES SUSAN W.
I TEM 3 ? SMITH KENT
ITEM 4 ? MITCHELL MICHAEL
ITEM 5 ? MCGOWAN ANN T.
ITEM 6 ? LEE ALEXANDER Ii
I TEM 7 ? MITCHELL MARY
ITEM 8 ? BOWERS DAVID
I TEM 9 2 EVANS STEVEN
ITEM :10 ? JAMESON CAROL
I TEM ? NORTH LINDA

180
BOWERS DAVID
EVANS STEVEN
JAMES SUSAN W.
JAMESON CAROL
LEE ALEXANDER II
MCGOWAN ANN T.
MITCHELL MARI
MITCHELL MICHAEL
NORTH LINDA
SMITH KENT
WILSON ROBERT
NUMERO DE ITENS? 0

LiSTAGEM DO PROGRAMA
10 L.
20 PRINT "ORDENACAO ALFABETICA"
30 CLEAR •00
8 REM — LIMITA 0 ARRANJO AO NUMERO MAXI MO DE ITENS
9 REM — A S'ER DIGITADO DE UMA VEZ
40 DIM A$(25)
50 PRINT
60 PRINT "(PARA FINALIZAR 0 PROGRAMA DI(3ITE 0)"
70 PRINT "NUMERO DE ITENS"
0 INPUT N
90 IF N=0 THEN 290
100 FOR I=1 TO N
110 PRINT "ITEM';I7
120 INPUT Al(I)
13(:1 NEXT I
iaa REM — A TECNICA DE SORT COMPARA CADA ITEM COM 0 CONSECUTIVO
139 REM — E TROCA 0 INDICE # SE NECESSARIO PARA ORDENAR
140 FOR I=i TO N
150 FOR J=1 TO N-1
160 AlF=A1(J)
170 BI=A1(J4-1)
180 IF A1M$ THEN 210
190 Al(J)=B$
200 Al(J+1)=A1
210 NEXT J
220 NEXT I
230 PRINT
240 FOR I=i TO N
250 PRINT Al(I)
260 NEXT
270 PRINT
280 GOTO 70
290 END

OPPOES

Pode-se querer a ordenacao alfabetica de forma reversa, ou do maior para o menor. As mudancas necessarias vao
apos o exemplo abaixo.

EXEMPLO:

Os resultados na prova de matematica foram de 82 a 117. Colocar os estudantes na ordem, de acordo corn as
notas, da major para a menor.

18
89 Bowers
102 Evans
111 James
100 Jameson
99 Lee
117 McGowan
102 Mitchell
82 Mitchell
97 North
91 Smith
108 Wilson

EXECUcAO:
ORDENACAO ALFABETICA

(PARA FINALIZAR 0 PROGRAMA DIGITE 0)


NUMERO DE ITENS? 11
ITEM i ? 089 BOWERS
ITEM 2 7 102 EVANS
ITEM 3 ? iii JAMES
.-1M 4 ? i00 JAMESON
ITEM 5 ? 099 LEE
ITEM 6 ? 117 MCGOWAN
ITEM 7 ? :1.02 MITCHELL
ITEM 8 ? 082 MITCHELL
ITEM 9 ? 097 NORTH
ITEM 10 7 091 SMITH
ITEM 11 2 106 WILSON
117 MCGOWAN
111 JAMES
108 WILSON
102 MITCHELL
102 EVANS
100 JAMESON
099 LEE
097 NORTH
09/ SMITH
009 BOWERS
082 MITCHELL
NUMERO DE ITENS? 0

LISTAGEM DO PROGRAMA

i REM - OPCAO 180


10 CLS
20 PRINT "ORDENACAO ALFABETICA"

i70 BI=AI(J4ri)
180 IF AgOB1 THEN 210
190 AS(J)=B1
12

I.

90 END

182
Referencias Bibliograficas
Mendenhall, William, et. al., Statistics: A Tool for the Social Sciences.
North Scituate, Massachusetts: Duxbury Press, 1974.
Paige, Lowell J. e J. Dean Swift, Elements of Linear Algebra .
Boston: Ginn and Company, 1961.
Sakarovitch, M., Notes on Linear Programming.
New York: Van Nostrand Reinhold Company, 1971.
Speigel, Murray R., Theory and Problems of Statistics.
New York: Schaum's Outline Series, Schaum Publishing Company, 1961.
Thomas, George B., Jr., Calculus and Analytic Geometry, parte 1, 40- ed.
Reading, Massachusetts: Addison-Wesley Publishing Company, 1968.
U.S. Department of Commerce, Handbook of Mathematical Functions.
National Bureau of Standards, Applied Mathematics Series, 55, 1964.
Impresso em off-set por
EDITORA SANTUARIO
Rua Pe. Claro Monteiro, 342
Aparecida - Sao Paulo
Pone DOD (0125) 36-2140
corn filmes fornecidos pelo editor.

Você também pode gostar