| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2010 11:40:35
|
cristhianetais
Entusiasta Java
Membro desde: 17/11/2010 11:32:06
Mensagens: 23
Offline
|
Oi Pessoal,
Sou nova aqui no fórum e gostaria muito de contar com a gentileza e ajuda de vocês.
Estou fazendo uma cadeira de algoritmo na faculdade e estou com dificuldade num exercício que segue abaixo:
Escreva um programa que crie um vetor (com 10 ocorrências), com números inteiros e aleatórios
entre 1 e 6.
Crie um segundo vetor (com 6 ocorrências) que deverá armazenar, na ocorrência
correspondente a cada número, quantas vezes este aparece no primeiro vetor.
Esse foi o codigo que fiz até agora... mas o segundo vetor não conta o conteúdo do primeiro.
Me ajudem.... PLEASE !!!
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
main()
{
clrscr();
int vet[10], vet2[6], i, j, cont=0;
randomize();
printf("\nNumeros sorteados entre 1 a 6:");
printf("\n\n");
for(i = 0; i < 10; i++)
{
vet[i] = ((rand() % 6) + 1);
printf("%d\t", vet[i]);
}
printf("\n\n");
for(i = 0; i < 6; i++)
{
for(j = 0; j < 10; j++)
{
if(vet[i] == vet[j])
{
cont++;
}
vet2[i] = cont;
}
}
for(i = 0; i < 6; i++)
{
printf("%3d\t", vet2[i]);
}
getch();
}
|
| Nome do arquivo |
Screenshot_2010-11-17_11-40-53.jpg |
Download
|
| Descrição |
Exemplo |
| Tamanho |
14 Kbytes
|
| Baixado: |
33 vez(es) |
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2010 12:24:18
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
Tio, seu problema com contagens é de algoritmo, não de programação.
Além disso, nomes bons para as variáveis ajudam a programar melhor. vet1 e vet2 são nomes de clínicas veterinárias . Use nomes como "entrada" e "contagem".
Vamos fazer isso no papel, que ele aceita melhor as coisas.
Pra começar, vamos criar um vetor com 6 posições, e preenchê-las com 0.
0 0 0 0 0 0
A seguir, vamos percorrer o tal vetor de entrada ( 4 3 1 3 6 5 3 4 1 5 )
Pegamos o valor 4. Então incrementamos a 4a. posição do vetor de 6 posições (ou seja, o elemento [3]. Fica então:
0 0 0 1 0 0
A seguir, pegamos o valor 3. Então incrementamos a 3a. posição (o elemento [2]). Fica:
0 0 1 1 0 0
Vá fazendo isso até chegar ao final. Deve ficar algo como:
2 0 3 2 2 1
Que era o tal resultado esperado.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2010 13:21:06
|
cristhianetais
Entusiasta Java
Membro desde: 17/11/2010 11:32:06
Mensagens: 23
Offline
|
entanglement,
Pra começar é TIA,
Desculpa, mas acho que não leu o enunciado do exercício... Numeros aleatórios....
E não entendi o exemplo que tu deu... que tem problema de algoritmo é verdade... mas minhas variaveis acredito que mudar agora só iria me confundir mais, pois como coloquei no assunto no tópico sou uma mera iniciante.
Alguém que saiba explicar poderia me ajudar?
This message was edited 1 time. Last update was at 17/11/2010 13:22:06
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2010 13:33:19
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
Dona Cris,
Desculpe eu não ter reparado que seu nome é Cristhiane Taís. É que normalmente eu desligo os avatares (por exemplo, nem sei se você usa um avatar ou não) e não vejo o nome até para ser o mais imparcial possível. Imagine se eu resolvesse não responder só porque o nick do rapaz é "satan665+1" ou coisa parecida
Sim, eu sei que são números aleatórios.
Mas para você entender o algoritmo, eu usei aqueles números que você pôs naquela figura.
Pra começar, uma forma de resolver problemas é você quebrar o problema em pedaços. (O famoso método "Jack o Estripador"). A seguir, resolver cada pedaço separadamente, e depois (com um pouco de sorte), juntar os pedaços (às vezes fica igual a um Frankenstein, mas isso é outra história).
Então seu problema, por exemplo, pode ser quebrado em:
a) Gerar os números aleatórios (isso você deve ter feito direitinho, não vi seu código com muita atenção).
b) Zerar o vetor de contagens.
c) Efetuar a contagem dos números, como o algoritmo que mostrei acima.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2010 13:34:36
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
Vou dar um exemplo de como você poderia resolver esse problema. (O meu compilador não tem conio.h , portanto talvez você tenha de corrigir alguma coisa ).
Só 2 minutos.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2010 13:45:20
|
getAdicted
Virtual Machine Man
![[Avatar]](/images/avatar/355f4ae9f22df3742aa06eb6f5b1429f.jpg)
Membro desde: 07/09/2010 13:49:22
Mensagens: 556
Offline
|
Olá Chris,
O entanglement irá resolver seu problema, esse site, eu acredito, deva ser muito útil a você como foi para mim: http://www.cplusplus.com/reference/clibrary/
[]'s
|
--
Desenvolvedor de Sistemas
Cursando Bacharelado em Análise de Sistemas e Tecnologia da Informação pela Faculdade de Tecnologia de São Paulo |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2010 13:45:22
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
O lugar onde você usou "randomize" eu usei "srand (time (NULL))", mas é porque meu compilador não tem conio.h. Esteja à vontade para mudar.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2010 17:51:44
|
cristhianetais
Entusiasta Java
Membro desde: 17/11/2010 11:32:06
Mensagens: 23
Offline
|
entanglement
Desculpa se fui ríspida demais (e sei que fui). Mas só queria uma explicação que eu entendesse e não algo como se eu tivesse que nascer sabendo... como se fosse uma obrigação. Como disse, estou engatinhando na linguagem C e em algoritmos, e por vezes, quando necessito de uma explicação, seja de professor, seja de alguém que já programa, estas pessoas acham tão bobas minhas dúvidas que me acho uma estúpida. Não sei se isso é normal... Mas vou ter que aprender a lidar com isso.
Bom, quanto ao código... Era isso mesmo e tinha razão quanto as variáveis também. Ficaram muito melhores de entender.
Deu certinho. Eu já tinha feito o código com esta linha:
contagem [n-1] = contagem [n-1] + 1;
Porém tentei zerar o cont do meu codigo e incremetando ele... o que não deu certo.
Não sei se me fiz entender....
Muito obrigado de coração... Passei uma semana fazendo esta pergunta a programadores que não me explicavam nada... Quase arrancando meus cabelos... pq quando não consigo resolver até o sono perco... heheh
This message was edited 1 time. Last update was at 17/11/2010 17:52:48
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2010 17:54:59
|
cristhianetais
Entusiasta Java
Membro desde: 17/11/2010 11:32:06
Mensagens: 23
Offline
|
getAdicted
Já estou entrando no site e colocando nos meus favoritos...
Pretendo seguir meus estudos e assim que melhorar em algoritmos pretendo começar a estudar outra linguagem: Java? PHP?
Ainda não sei. Aceito conselhos....
Abraço aí...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2010 18:05:52
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
Na faculdade não dão Java não? Eu sou do tempo que Pascal era novidade, mas hoje em dia Java é quase onipresente nas faculdades.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/11/2010 18:15:24
|
cristhianetais
Entusiasta Java
Membro desde: 17/11/2010 11:32:06
Mensagens: 23
Offline
|
Algoritmo é C.
Java acho que só em estrutura de dados talvez. Só mais para frente...
E nas férias já quero começar a estudar algo mais, apesar de gostar bastante de C.
Tenho alguns livros de PHP em casa... Mas dizem que Java é mais promissor.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/11/2010 00:40:58
|
GradeBook
JavaChild
Membro desde: 08/07/2009 15:27:10
Mensagens: 142
Offline
|
cristhianetais wrote:
Como disse, estou engatinhando na linguagem C e em algoritmos, e por vezes, quando necessito de uma explicação, seja de professor, seja de alguém que já programa, estas pessoas acham tão bobas minhas dúvidas que me acho uma estúpida. Não sei se isso é normal... Mas vou ter que aprender a lidar com isso.
Oi Cristhiane
Você não é estúpida, suas dúvidas não são bobas. Você é uma iniciante com dúvidas de iniciante, só isso. O problema é que tem muita coisa pra se aprender em muito pouco tempo daí a matéria acaba sendo enfiada goela abaixo, você que se lasque pra aprender/acreditar no que está sendo dito.
Normal esse tipo de atitude não é mas acabou se tornando comum principalmente na internet.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/11/2010 13:02:11
|
sidzuza
Debugger
![[Avatar]](/images/avatar/2625e71721bf8a56e5b453ff7b74748e.jpg)
Membro desde: 01/11/2008 22:36:37
Mensagens: 58
Offline
|
Oi Cris!
Provavelmente você vai ter Programação Orientada a Objetos em Java
Eles usam C para Algoritmos para o aluno não se perder nos conceitos de orientação a objetos e sim na lógica de programação. E pra isso, uma linguagem estruturada com o C é melhor.
Abraço!
|
"Uma lei imutável nos negócios é que palavras são palavras, explicações são explicações, promessas são promessas - mas somente o desempenho é realidade." - Harold S. Green |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/11/2010 13:34:43
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
sidzuza wrote:Oi Cris!
Provavelmente você vai ter Programação Orientada a Objetos em Java
Eles usam C para Algoritmos para o aluno não se perder nos conceitos de orientação a objetos e sim na lógica de programação. E pra isso, uma linguagem estruturada com o C é melhor.
Abraço!
Se bem que nada impede o professor de começar direto com Java só que usando um monte de "static" pra lá e pra cá - se fizer isso, um programa Java fica igualzinho a um programa C, exceto pelo fato que você ainda é obrigado a alocar arrays com new em Java - infelizmente, não dá para escrever um programa em Java sem um único "new" se você tiver arrays no meio.
Uma coisa que acho terrível em C é que você fica brigando muito com bugs que simplesmente travam seus programas, e você fica sem absolutamente pista nenhuma para resolvê-los (nada de stack trace, etc.)
Isso é intolerável, em minha opinião.
This message was edited 1 time. Last update was at 18/11/2010 13:36:02
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/11/2010 15:34:27
|
sidzuza
Debugger
![[Avatar]](/images/avatar/2625e71721bf8a56e5b453ff7b74748e.jpg)
Membro desde: 01/11/2008 22:36:37
Mensagens: 58
Offline
|
Fala entanglement!
Então, eu disse pois comigo foi assim. Tive C em algoritmos mas não nos aprofundamos na linguagem. Os problemas que você citou não cheguei a ver, mas acredito que seja como disse.
Concordo em relação ao Java, mas aí confundiria legal a cabeça do aluno quando chegasse na linguagem Java de fato. E realmente o new do array ia quebrar as pernas
Abraço!
|
"Uma lei imutável nos negócios é que palavras são palavras, explicações são explicações, promessas são promessas - mas somente o desempenho é realidade." - Harold S. Green |
|
|
 |
|
|