Calculo numerico-numeros binarios

Calculo numerico-numeros binarios

Calculo Numerico Primeira lista de Exercıcios

Vanessa Souza dos Santos

Manaus 2011

1a lista de exercıcios Questao 1 Converter os seguintes numeros binarios para a base decimal:

Solucao

Questao 2 Converter os seguintes numeros decimais para a base binaria (converter a parte fracionaria ate no maximo 5 casas decimais).

Solucao Parte inteira

Parte inteira: 12 2

Parte Fracionaria:

Questao 3 Efetuar as seguintes operacoes binarias:

Questao 4 Considere o seguinte computador hipotetico com dois dıgitos (p = 2), base B = 10 e expoente na faixa −5 e 5. Logo temos .d1d2 × 10e. Represente os seguintes numeros neste computador. Indique quando houver overflow ou underflow.

(c) 371

Questao 5 Efetuar as seguintes operacoes de ponto flutuante e calcular os erros absoluto e relativo para cada uma delas. Identificar se em algum dos casos ocorre overflow ou underflow. Considere a mesma maquina do exemplo anterior.Considere que nas operacoes de soma e subtracao voce tem 4 dıgitos para armazenar temporariamente o resultados e os numeros APOS a conversao de base necessarias nas operacoes e para a operacao de multiplicacao voce tem 4 dıgitos para armazenar os resultados. Nao esqueca de colocar os resultados na forma .d1d2 × 10e.

underflow, pois o expoente e esta fora do limite emin = −5

Questao 6 Em um campeonato de futebol de pontos corridos cada vitoria vale tres pontos e cada empate 1. Elabore um algoritmo que calcule quantos pontos um time tem e qual o seu aproveitamento no campeonato (pontos obtidos em funcao dos pontos disputados).

Solucao Nessa questao e nas proximas, sera usado o software R, que tem interface com a linguagem C. O software R nao precisa declarar variaveis, porem vou adicionar antes da execucao verdadeira no programa. No lugar da linguagem em portugol ler(variavel) vai ser gerado numeros ou caracteres aleatorios, pelos comandos do proprio R, mas ao lado, nos comentarios, estara a funcao scanf(variavel).

Inıcio > #Variaveis int: njogos,vitoria,empate,derrota,total,nvitorias,nempates,nderrotas; caracter: resultado float: aproveit #------------------------------------------------------------------ > njogos<-10 # numero de partidas no campeonato

> vitoria<-3

> empate<-1

> derrota<-0

> total<-0 #total de pontos

> nvitorias<-0 #numero de vitorias

> nempates<-0 #numero de empates

> nderrotas<-0 #numero de derrotas

> for(i in 1:njogos){ + print("Informe o resultado do jogo")

+ resultado<-sample(c("vitoria","empate","derrota"),1) #scanf(resultado)

+ if(resultado=="vitoria"){

+ total<-total+vitoria

+ nvitorias<-nvitorias+1

+ }else if(resultado=="empate"){

+ total<-total+empate

+ nempates<-nempates+1

+ }else if(resultado=="derrota"){

+ total<-total+derrota

+ nderrotas<-nderrotas+1

> aproveit<-100*total/(njogos*vitoria) > print(total) #Total de pontos [1] 19 > print(aproveit) # aproveitamento [1] 63.3 > print(nvitorias) #Numero de vitorias [1] 5 > print(nempates) #Numero de Empates [1] 4 > print(nderrotas) #Numero de Derrotas [1] 1 Fim

Questao 7 Faca um algoritmo que receba o valor de 1 carro e a forma de pagamento (′V ′− a vista e′P′ − a prazo), calcule e mostre o preco final do carro, considerando o seguinte:

(a) O preco final para compra a vista tem desconto de 20%; (b) O preco final para compra a prazo tem acrescimo sobre o valor do carro.

Solucao

Inıcio #Variaveis: int:desc; float:acresc,valor,pag; caracter: forma; print("Informe o valor e a forma de pagamento V-a vista ou P-a prazo") #------------------------------------ > desc<-20

> acresc<-5000

> valor<-round(runif(1,10000,300000),2) #scanf(valor)

> forma<-sample(c("V","P"),1) #scanf(forma)

> if(forma=="V"){ + pag<-valor-valor*(desc/100)

+ }else if(forma=="P"){

+ pag<-valor+acresc

+ } > print(pag) #preco final [1] 56234.05 Fim

Questao 8 Joao Papo-de-Pescador, homem de bem, comprou um microcomputador para controlar o rendimento diario de seu trabalho. Toda vez que ele traz um peso de peixes maior que o estabelecido pelo regulamento de pesca do estado de Sao Paulo (50 quilos) deve pagar uma multa de R$ 4,0 por quilo excedente. Joao precisa que voce faca um algoritmo o peso de peixes e verifique se ha excesso. Se houver calcular e mostrar o valor do excesso e da multa que Joao devera pagar. Caso contrario escrever ”Nao havera multa”.

Solucao

Inicio #Variaveis: int:norma; float:peso; #------------------------------------ > norma<-50

> peso<-round(runif(1,40,60),0) #scanf(peso)

> if(peso>norma){ + multa<-(peso-norma)*4

+ print(multa)

+ }else if(peso<=norma){

+ print("n~ao ha multa")

Questao 9 Faca um algoritmo que determine o maior entre N numeros. A condicao de parada e a entrada de um valor 0, ou seja, o algoritmo deve ficar calculando o maior ate que a entrada seja igual a 0 (ZERO). O algoritmo nao deve aceitar numeros negativos.

Inicio int: N,valor,maior,numero,i,j,n vector:n[1...10] de inteiro N<-1000 #armazenar variaveis em um vetor for(j in 1:N){ scanf(valor) if(valor>=0){ n[i]<-valor }else print("numero invalido") } #------------------ maior<-0 for(i in 1:N){ if(n[i]>maior){ maior<-n[i] } scanf(numero) if(numero==0){ interrompa }

} print(maior) Fim

Questao 10 Elabore um algoritmo que some os numeros pares ate N.

Inicio #Variaveis: int:soma,N,j; #------------------------------------ > soma<-0

> N<-20

> j<-0

> for(i in 1:N){ + j<-j+2

+ soma<-soma+j

Comentários