João Araujo
Dr. en Informatique, Université de Versailles, França.

Primeira Prova de Laboratório de Programação 2008-1

Prof. João Araujo

1) Um número ISBN (International Standard Book Number) é usado nos livros para identificá-los de maneira única. Este número consiste em 10 dígitos. Os primeiros 9 dígitos representam o livro e o décimo é usado para validação. O algoritmo de validação é bem simples: O primeiro dígito é multiplicado por 10, o segundo por 9, o terceiro por 8 e assim sucessivamente até o último dígito seja multiplicado por 1. Para o ISBN ser válido, esta soma deve ter resto zero quando dividida por 11.
Por exemplo: o número ISBN do livro de C é 8570015860 ⇒ 8×10 + 5×9 + 7×8 + 0x7 + 0x6 + 1×5 + 5×4 + 8×3 + 6×2 + 0x1 = 242 ⇒ 242/11 = 22 com resto zero.

Os primeiros 9 dígitos assumem valores entre 0 e 9. Algumas vezes é necessário que o último dígito seja igual a 10, neste caso é usado a letra X, por exemplo: 156881111X.
Escreva um programa com pelo menos três funções:
a) Uma função que receba um número ISBN e diga se é válido ou não.
Pontuação:
Testa se o ISBN tem o número correto de dígitos. (1pt)
Testa se foi entrado somente números e X (1pt).
Testa se o X, se existir, está na posição correta. (1pt).
Testa se o resto da soma é igual a zero. (1pt).

b) Uma função que receba um ISBN válido, mas que um dos dígitos foi substituído pelo caractere '?' e retorne o valor do dígito que falta.
ex: 15688?111X falta o dígito 1. (3pt)

c) Uma função que receba um número ISBN que tenha dois de seus dígitos em posições trocadas e imprima quais são os números ISBN possíveis. (2pt)

2) Escreva um programa que gere todas as peças de um dominó, sem repetição. (1pt)

OBS: Cada variável global desconta um ponto.

Os ansiosos podem ir direto à Resolução final da p1 - 2008-1. Uma versão comentada está em Solução Comentada

c/primeira_prova_-_2008-1.txt · Última modificação: 21/05/2008 11:18:18 (edição externa)
geomatica Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0