ajuda à resoluçao de exercicio em C
|
17-03-2010, 21:06
Mensagem: #1
|
|||
|
|||
ajuda à resoluçao de exercicio em C
Sou ainda muitissimo "verde" no universo da programação, nesse sentido precisava da vossa ajuda para tentar resolver um exercício em C no qual estou a ter bastantes dificuldades, apesar de estudar bastante.
foi-me dado o seguinte exercicio: Os livros são identificados pelo número ISBN (International Standard Book Number), por exemplo: 0-393-16945-2. O primeiro número designa a língua em que o livro foi escrito (por exemplo, 0 – inglês, 2 – português, …). O segundo número designa a editora (393 refere-se à W. W. Norton), o terceiro é um número dado pela editora que identifica o livro (sempre 5 números e começa sempre por 1) e o quarto é um “check digit” destinado a comprovar a validade do número. Construa um programa em C que dado um ISBN separe os seus diferentes números, por exemplo: Insira o ISBN: 0-393-16945-2 Editora: 393 Código: 16945 É necessário implementar o seguinte menu com as seguintes opções: 1 – Obter Referencia da Editora 2 – Obter Referencia do Código 0 – Sair O menu deverá aparecer enquanto o utilizador não inserir a opção 0 (Sair). a minha dificuldade está principalmente em conseguir separar o numero e atribuir o mesmo às referentes opções, contudo, e não querendo abusar da vossa ajuda, se tiverem alguma dica para ajudar a resolver o exercicio, agradecia imenso. grande abraço |
|||
18-03-2010, 02:43
Mensagem: #2
|
|||
|
|||
RE: ajuda à resoluçao de exercicio em C
Epá, se fosse em C# terias o Método Split, que te permite dividir uma String por caracteres, ou seja, farias o Split pelo símbolo "-".
Se ISBN for uma constante melhor ainda ... Se as línguas fossem constante e não pudessem ser alteradas podias criar um enumerador, senão podes ter num ficheiro editável, bem como as editoras. Por exemplo: Tendo em consideração que ISBN é uma constante, tens de apanhar o valor "0-393-16945-2" numa variável (string) e depois fazes o Split por "-", que te devolve uma Array de strings de 4 dimensões: String 1 = "0" String 2 = "393 String 3= "16945" String 4 = "2" A partir daí tens a informação toda ... para trabalhar com as Línguas e editoras (estejam elas em Enumerador, Ficheiro, Base de Dados, whatever) Mas isto seria em C# ... em C nem sei se existem estes comandos sequer .. |
|||
18-03-2010, 12:50
Mensagem: #3
|
|||
|
|||
RE: ajuda à resoluçao de exercicio em C
boas.
tens de trabalhar com índices. tens o isbn guardado num char string[13] (exemplo). declaras uma variável do tipo int (int i, por ex). se quiseres escrever para o ecra o numero do isbn "393" fazes: for(i=2;i<5;i++) { printf("%s",string[i]); } espero ter ajudado. qualquer erro avisa |
|||
18-03-2010, 21:04
Mensagem: #4
|
|||
|
|||
RE: ajuda à resoluçao de exercicio em C
mt obrigado, vou tentar isso, em breve publico se funcionou.
abraço |
|||
19-03-2010, 13:11
Mensagem: #5
|
|||
|
|||
RE: ajuda à resoluçao de exercicio em C
logo que possa posto um pequeno exercício para veres melhor como funciona.
Cumprimentos |
|||
19-03-2010, 16:08
(Esta mensagem foi modificada pela última vez a: 19-03-2010 17:44 por stb_airlines.)
Mensagem: #6
|
|||
|
|||
RE: ajuda à resoluçao de exercicio em C
tou comm alguma duvidas, mandei te uma PM para me esclareceres uma parte.
espero k nao te importes mt obrigado, fico a aguardar abraço |
|||
21-03-2010, 18:37
Mensagem: #7
|
|||
|
|||
RE: ajuda à resoluçao de exercicio em C
mesmo com a dica que o zee me deu, ainda nao consegui resolver isso. de tanto pesquisar e tentar, axo k me estou a confundir ainda mais.
será que alguem me pode ajudar com algum exemplo, ou algo assim? |
|||
22-03-2010, 14:12
Mensagem: #8
|
|||
|
|||
RE: ajuda à resoluçao de exercicio em C
calma moço...
Posta o que já tens feito para ver onde esta o erro... Este exercicio é simples... Fazes o menu e duas funções uma void editora e outra void codigo. Dentro do menu, na opção 1 fazes a chamada da editora e na opção 2 fazes a chamada da funçao codigo. Depois basta fazeres a validação do menu para q apresente sempre o mesmo menu quando for digitado um numero diferente de 1 ou 2. as funções sao praticamente iguais: void editora (int string []) { int i; for(i=2;i<5;i++) { printf("%s",string[i]); } } Isto é sem testar, é provavel que de erro... publica o teu codigo que logo a noite ja te coloco ai mais alguma ajuda... |
|||
15-04-2010, 10:39
Mensagem: #9
|
|||
|
|||
RE: ajuda à resoluçao de exercicio em C
Já tá resolvido isto?
|
|||
15-04-2010, 11:45
(Esta mensagem foi modificada pela última vez a: 15-04-2010 11:49 por WebDevXtream.)
Mensagem: #10
|
|||
|
|||
RE: ajuda à resoluçao de exercicio em C
Olá,
Experimenta qualquer coisa deste género: Código: int main(){ Pesquisei na net várias opções e ajustei as mesmas a uma possível solução. Se estiver tudo correcto e sem erros no fim ficas com um array de inteiros (valores) com os valores indexados, desta forma (usando o teu exemplo): valores[0] = 0 valores[1] = 393 valores[2] = 16945 valores[3] = 2 Espero ter-te ajudado. Um abraço, WebDevXtream.com - WebDesign, SEO, Domínios, Alojamento, e-Commerce e Publicidade |
|||
« Mais Antigo | Mais Recente »
|
Utilizadores a ver este tópico: 3 Visitante(s)