Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
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
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
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 ..
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
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 Wink
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
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
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
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
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
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 importesTongue
mt obrigado, fico a aguardarWink
abraço
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
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?
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
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...
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
15-04-2010, 10:39
Mensagem: #9
RE: ajuda à resoluçao de exercicio em C
Já tá resolvido isto?
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
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(){

   int valores[4];  
   char *token = NULL;

   printf("Escreva o ISBN\n");
   gets(isbn);

   token= strtok( isbn, "-" );
   int i = 0;
    while( token )
    {
        valores[i] = token;
        token = strtok( NULL, "-" );  
        i++;                        
    }
}

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,

[Imagem: 1_joao5_4.png] [Imagem: logo.png]
WebDevXtream.com - WebDesign, SEO, Domínios, Alojamento, e-Commerce e Publicidade
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Saltar Fórum:


Utilizadores a ver este tópico: 3 Visitante(s)