Você está na página 1de 2

BCC221 Programao de Computadores I L ABORATRIO 5

Vetores
Prof. Jos Romildo Malaquias DECOM UFOP 2011/1

Instrues Todos os exerccios que envolvem programas devem ser resolvidos atravs de programas em C. A entrega ser feita at o nal da aula atravs do Moodle, sem zipar. Na soluo dos exerccios, devem ser utilizados os conceitos listados no cabealho desta lista. Identique cada cdigo-fonte com seu nome, em um comentrio no incio de cada arquivo. Para cada exerccio, deve ser criado um arquivo com nome Nome_LabX_ExeY.c, em que Nome denota o nome do aluno, X denota o nmero da aula e Y denota o nmero do exerccio. Cdigos que no compilem sero zerados.

1. Faa um programa que leia dois vetores e calcule e exiba o produto escalar dos mesmos. O produto escalar de dois vetores v e w de tamanho n dado por:
n

v w = vi wi
i=0

2. Pedro aluno do curso de Engenharia de Computao e est empolgado com as suas novas habilidades em resolver problemas atravs de programas de computador. Recentemente seu professor de Estatstica pediu aos alunos da turma de Pedro que zessem um experimento com lanamentos de dado, contabilizando a frequncia com que cada face sorteada. Como o computador de Pedro no est funcionando, ele pediu a voc que desenvolvesse uma aplicao para simular este experimento no computador. Sua aplicao deve obter do usuro o nmero de lanamentos a serem realizados. Em seguida dever simular estes lanamentos, exibindo os nmeros das faces sorteadas, e calculando a frequncia com cada nmero foi sorteado. Finalmente exiba a frequncia (em porcentagem) contabilizada para cada face do dado. Dicas: (a) Para simular o lanamento de um dado no programa utilize as funes rand e srand da biblioteca stdlib. Esta biblioteca implementa um gerador de nmeros pseudo-aleatrios. A sequncia de nmeros geradas depende de uma semente, que um valor inteiro sem sinal usado internamente para congurar o gerador. Para que a sequncia seja diferente toda vez que o programa for executado, necessrio que esta semente tambm seja diferente. Uma boa sugesto utilizar o relgio do sistema para obter uma semente. O horrio atual do relgio do sistema pode ser obtido atravs da funo time, da biblioteca time. Assim o gerador de nmeros aleatrios da biblioteca padro do C pode ser inicializado usando o comando srand(time(NULL));

colocado no comeo da funo main. O prximo nmero da sequncia pseudo-aleatria pode ser obtido com a funo rand, que deve ser chamada sem argumentos e retorna um nmero inteiro na faixa de 0 a RAND_MAX, inclusive. Para se obter um nmero pseudoaleatrio no intervalo [1..6], pode-se utilizar a expresso rand() % 6 + 1 Portanto lanar um dado signica calcular o valor desta expresso para obter o nmero da face sorteada. (b) Pea ao usurio que informe o nmero de lanamentos desejados e utilize este nmero para controlar um comando de repetio onde sero realizados os lanamentos do dado. (c) Utilize um vetor de seis posies para fazer a contagem com que cada lado foi sorteado. Inicialmente cada elemento desse vetor deve ser zero, pois nenhuma face foi sorteada ainda. (d) Em cada lanamento, mostre o nmero da face sorteada e incremente o contador correspondente no vetor. Por exemplo, se o lado 5 foi sorteado, incremente o quinto componente do vetor, ou seja, o componente de ndice 4. (e) Para obter a frequncia de uma face em porcentagem divida o nmero de vezes em que a face foi sorteada pelo nmero total de lanamentos ralizados, e multiplique este resultado por 100.

Você também pode gostar