


Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
Documento contendo instruções para desenvolver um programa em c que calcula e imprime as pontuações parciais e finais de duplas jogando boliche, com até 4 duplas e 8 jogadores. Os dados de pinos derrubados por bola/partida devem ser lidos de um arquivo.
O que você vai aprender
Tipologia: Notas de aula
1 / 4
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Departamento de Ciˆencia da Computa¸c˜ao – IME-USP MAC 115 – Introdu¸c˜ao `a Computa¸c˜ao IF - Turma 21 / 2o. Semestre 2005
Exerc´ıcio–Programa: Segundo Data de entrega: at´e 16 de novembro de 2005
Uma vez que vocˆes j´a fizeram um bom programa para computar a pontua¸c˜ao de um jogo de boliche, o dono de um estabelecimento de jogos de boliche nos convidou para controlarmos a pontua¸c˜ao de jogos de boliche quando temos at´e 4 duplas jogando (podemos ter de 0 a 4 duplas – 8 jogadores). Neste estabelecimento, grupos de pessoas chegam para jogar juntas e querem criar uma competi¸c˜ao entre duplas. Dessa forma, os usu´arios fornecem inicialmente o n´umero de duplas que ir˜ao jogar e seus respectivos nomes. Na competi¸c˜ao, cada dupla perfaz um jogo (as 10 partidas) de forma alternada com as outras duplas. Al´em disso, os jogadores das duplas se alternam nas partidas consecutivas. Se temos, por exemplo, 3 duplas jogando (6 jogadores),
teremos as jogadas na seguinte ordem (note que cada jogador joga apenas 5 partidas):
Partida P1 P1 P1 P2 P2 P2 · · · P10 P10 P Dupla D1 D2 D3 D1 D2 D3 · · · D1 D2 D Jogador Maria Inˆes Paulo Jo˜ao Pedro Carla · · · Jo˜ao Pedro Carla No in´ıcio de cada partida a ser jogada, aparece no visor a partida a ser jogada e o nome do jogador da vez. No final de cada partida, aparece no visor o total de pontos da dupla at´e a dada partida e o n´umero de pinos derrubados pelo dado jogador e a pontua¸c˜ao correspondente at´e o momento. A pontua¸c˜ao da dupla segue as mesmas regras de um jogo de boliche. Isto significa que uma dupla pode completar, no m´aximo, 300 pontos em um jogo (vide “Regras do Boliche”). No final do jogo, dever´a ser mostrada no visor a pontua¸c˜ao das duplas para cada partida jogada, juntamente com os n´umeros de pinos derrubados e a pontua¸c˜ao final. Primeiro ´e mostrada a dupla vencedora, a dupla que fez a segunda melhor pontua¸c˜ao, etc. Exemplo:
P. 1 P. 2 P. 3 P. 4 P. 5 P. 6 P. 7 P. 8 P. 9 P. 10 Pontos 1o. Lugar: Inˆes e Pedro X – X – X – X – X – X – X – X – X – X X X 300 30 30 30 30 30 30 30 30 30 30 2o. Lugar: Maria e Jo˜ao 3 3 X – X – 5 5 X – 2 7 8 0 2 1 6 3 X X X 149 6 25 20 20 19 9 8 3 9 30 3o. Lugar: Paulo e Carla 2 4 5 5 2 1 0 0 X – 0 10 1 0 2 4 6 3 2 8 5 83 6 12 3 0 20 11 1 6 9 15
Regras do Boliche O objetivo do boliche ´e derrubar, em uma s´erie de 10 partidas, a quantidade m´axima de pinos poss´ıvel. Em cada uma das 10 partidas de um jogo, cada jogador tem 2 possibilidades para derrubar os pinos. Em cada jogo, o n´umero de pontos marcados ´e dado pelo n´umero de pinos
derrubados ao longo das 10 partidas. Al´em disso, quando o jogador consegue derrubar todos os pinos com 2 bolas (chamado spare) o valor da bola seguinte ´e somado ao n´umero de pontos nesse jogo. Se o jogador consegue derrubar todos os pinos com a primeira bola (chama-se strike), o valor das duas bolas seguintes ´e computado ao valor da bola atual (que ´e 10). Note que, caso ocorra uma s´erie de dois strikes ou um strike e um spare, os pontos da bola seguinte s˜ao computados trˆes vezes. Veja o exemplo a seguir, onde mostramos o n´umero de pontos marcados nas 4 primeiras partidas de um dado jogo:
P. 1 P. 2 P. 3 P. 4 strike strike 5 5 2 7 10 + 10 + 5 10 + 5 + 5 10 + 2 9
Um jogo ´e formado por dez partidas, e a d´ecima partida ´e especial. Nela, caso o jogador consiga um strike na primeira bola, ter´a direito a duas novas bolas. Caso ele consiga um spare, ter´a direito a uma bola extra. Programa Fa¸ca um programa em C que dado o n´umero de duplas, os nomes do jogadores por dupla, e o n´umero de pinos derrubados por bola/partida de cada dupla alternadamente calcula e imprime os resultados parciais e totais da competi¸c˜ao como descrito acima. Para facilitar o teste dos programas, os dados sobre o n´umero de pinos derrubados por bola/partida de cada dupla ser˜ao lidos de um arquivo. Assim, V. poder´a testar o seu programa v´arias vezes para um mesmo conjunto de dados sem ter que digitar esses n´umeros a cada vez. Aqui seguem as fun¸c˜oes necess´arias para ler dados a partir de um arquivo, e um arquivo de dados exemplo (o exemplo mostrado na p´agina 1).
(a) Cada linha do arquivo deve conter os pontos de todas as duplas para uma dada par- tida, saltando de linha para a pr´oxima partida e deixando sempre um espa¸co entre os n´umeros. Assim, a primeira linha conter´a os pontos de todas as duplas para a primeira partida, a segunda linha conter´a os pontos de todas as duplas para a segunda partida, ... at´e a d´ecima partida. N˜ao deixar linhas em branco. (b) Se houver strike na partida, a representa¸c˜ao para uma dupla dever´a ser: 10 0 (c) Se n˜ao forem derrubados pinos em uma jogada, a representa¸c˜ao para uma dupla dever´a ser: 0 0 (d) Para o jogo mostrado na p´agina 1, com as trˆes duplas na ordem de jogada mostrada na tabela, o arquivo deve conter (suponha que V. grava o arquivo com esses dados com o nome dados1.txt):
3 3 10 0 2 4 10 0 10 0 5 5 10 0 10 0 2 1 5 5 10 0 0 0 10 0 10 0 10 0 2 7 10 0 0 10 8 0 10 0 1 0 2 1 10 0 2 4 6 3 10 0 6 3 10 10 10 10 10 10 2 8 5
Note que da linha 1 `a linha 9, as quais representam as partidas de 1 a 9, existem 6 jogadas: as duas primeiras da dupla D1, as duas seguintes da dupla D2, e as duas
bola = le_numero_arquivo(arquivo);
// c´odigo do seu programa ...
}
// c´odigo do seu programa ...
// important´ıssimo: fechar o arquivo antes de terminar o programa fecha_arquivo(arquivo);
system("PAUSE"); exit(0); }
E importante notar que os dados de cada bola/partida ser˜^ ´ ao fornecidos com o desenrolar do jogo, e todo o c´alculo da pontua¸c˜ao dever´a ser feito `a medida que tais dados s˜ao fornecidos (n˜ao tente ler todos os dados p/ depois come¸car a fazer o c´alculo, isto n˜ao ´e permitido). Neste programa vocˆe dever´a usar, pelo menos, uma fun¸c˜ao que realiza uma partida para todas as duplas, uma fun¸c˜ao que imprime o resultado parcial ap´os cada partida, e uma fun¸c˜ao que imprime o resultado final de cada dupla.
Informa¸c˜oes gerais
(************************************************************************) (*** Nome do aluno ) ( Data ) ( Exerc´ıcio-programa 2 de Introdu¸c~ao `a Computa¸c~ao - IF T21 - 2004 ) ( ) ( Tipo e vers~ao do compilador C: ***) (************************************************************************)