Ir ao conteúdo
  • Cadastre-se

s4lezardv1A

Membro Pleno
  • Posts

    75
  • Cadastrado em

  • Última visita

Tudo que s4lezardv1A postou

  1. Pessoal, eu novamente. Entaõ simon, fiquei pensando no que você escreveu. O meu codigo o professor falou que eu fiz o SELECTION SORT, o bubble seria esse que você fez. Algum de vcs pode me mostrar qual seria a diferença de estrutura do bubble e do selection? porque eu pensava q o que eu tinha feito era o bubble. adicionado 39 minutos depois for (i=0;i<14;i++) { for (j=0;j<15-i;j++) { if (vetor[j] > vetor[j+1]) { aux = vetor[j]; vetor[j] = vetor[j+1]; vetor[j+1] = aux; cont=cont+1; é isso?Bubble sort? A primeira q eu tinha feito la no começo seria o selection sort isso?
  2. Obrigado pessoal, valeu mesmo. dando o segundo FOR com o valor inicial de J igual a i, deu certinho. Agora estou na segunda parte do codigo. Tenho que fazer com que o codigo faça o menos comparações possiveis para ordenar. for (i=0;i<14;i++) { for (j=i+1;j<15;j++) alterei o segundo FOR para j=i+1 para que ele sempre conte uma casa acima do primeiro FOR, ja que depois de posicionado no indice 0,1,etc ele não tem necessidade de fazer outra comparação. e coloquei o limite para 14 loops no primeiro FOR, ja que vi que ate o decimo quarto ciclo o vetor ja esta organizado e não precisa mais fazer comparações. Tem como maximizar ainda mais essa comparação? Não coloquem dica, só quero saber se da pra fazer ou isso é o maximo que vou conseguir?
  3. porque esqueci isso afff, face palm para mim!!!! Agora deu certo. #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { system ("title NOME EM ORDEM CRESCENTE THIAGO"); int i,j,cont=0; char aux[10]; char vetor[10][10] = {"Andre","Maria","Marcio","Bruno","Henrique","Zoraide","Daniel","Danilo","Zuleica","Adriano"}; for (i=0;i<10;i++) { for (j=0;j<10;j++) { if (strcmp(vetor[i], vetor[j]) > 0) { strcpy(aux,vetor[i]); strcpy(vetor[i],vetor[j]); strcpy(vetor[j],aux); } } } printf("vetor em ordem:\n\n"); for (i=0;i<10;i++) { printf("%s\n",vetor[i]); } return 0; } Desculpem incomodar vcs, mas queria pedir um favor, se puderem rodar esse codigo ai. porque aqui ele ta dando em ordem decrescente, e para dar em ordem crescente eu tenho que alterar essa linha, mas a logica ficaria errada: if (strcmp(vetor[i], vetor[j]) > 0) PARA ESSA: if (strcmp(vetor[i], vetor[j]) < 0) Sei q a logica ta errada mas porque ta dando esse erro nessa parte. E no exercicio de ordenar numeros tambem deu, e do nada, depois q eu abri mais tarde ele ficou certo. Eu tenho q resetar alguma coisa talvez? adicionado 18 minutos depois Acho q descobri porque: char aux[10]={0}; atribui zero uma vez nessa variavel e agora ta indo normal, mesmo eu tirando o zero. Se puderem me responder só essa ultima pergunta, porque eu atribuindo uma unica vez, e depois tirando não da mais problema? No mais muito obrigado pessoal.
  4. #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { system ("title NOME EM ORDEM CRESCENTE THIAGO"); int i,j,cont=0; char aux[10]; char vetor[10][10] = {"Andre","Maria","Marcio","Bruno","Henrique","Zoraide","Daniel","Danilo","Zuleica","Adriano"}; for (i=0;i<10;i++) { for (j=0;j<10;j++) { if (strcmp(vetor[i], vetor[j]) > 0); { strcpy(aux,vetor[i]); strcpy(vetor[i],vetor[j]); strcpy(vetor[j],aux); } } } printf("vetor em ordem:\n\n"); for (i=0;i<10;i++) { printf("%s\n",vetor[i]); } return 0; } perdão, arrumei, ainda fica incompleto.
  5. verdade, consertei, coloquei : or (i=0;i<10;i++) { for (j=0;i<10;i++) { if (strcmp(vetor[i], vetor[j]) > 0); { strcpy(aux,vetor[i]); strcpy(vetor[i],vetor[j]); strcpy(vetor[j],aux); } Agora melhorou, mas ainda assim não ordenou todos os nomes, ficou incompleto, ficou: Adriano/Andre/Maria/Marcio/Bruno/Henrique/Zoraide/Daniel/Danilo/Zuleica; O que pode ser? Mais uma pergunta, para declarar a variavel aux é assim mesmo?: char aux[10]; esse 10 reserva 10 espaços de caracteres isso? mas na função strcpy não necessito colocar aux[10] porque?
  6. alterei aux[10] para somente aux mas ainda o vetor aparece sem ordenar. na declaração das variaveis aux tem que ser aux[10] mesmo né? para poder receber palavras com ate 10 caracteres isso? Onde pode ser q eu esteja errando?
  7. Estou tentando achar algum lugar explicando como comparar strings dentro de um vetor, estou achando só comparação normal, tentei fazer isso: #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { system ("title NOME EM ORDEM CRESCENTE THIAGO"); int i,j,cont=0; char aux[10]; char vetor[10][10] = {"Andre","Maria","Marcio","Bruno","Henrique","Zoraide","Daniel","Danilo","Zuleica","Adriano"}; for (i=0;i<10;i++) { for (i=j;i<10;i++) { if (strcmp(vetor[i], vetor[j]) > 0); { strcpy(aux[10],vetor[i]); strcpy(vetor[i],vetor[j]); strcpy(vetor[j],aux[10]); } } } printf("vetor em ordem:\n\n"); for (i=0;i<10;i++) { printf("%s\n",vetor[i]); } return 0; } mas ainda n achei a solução, estou procurando ainda... se puderem me dar uma ajuda...
  8. usarei dois FOR para isso então? para usar essa função incluo string.h isso? como é a estrutura dessa função strcmp?pode me mostrar a formatação q uso para usa la?
  9. Boa tarde pessoal. Estou aprendendo C faz pouco tempo. Aprendi os condicionais e estruturas de repetição(if else,switch,while,for,do while). Agora estou em vetores. Estou com um exercicio aqui que pede para incluir 10 nomes("Andre","Maria","Marcio","Bruno","Henrique","Zoraide","Daniel","Danilo","Zuleica","Adriano) e colocar em um vetor de 10 posiçoes e depois colocar em ordem crescente. Ja fiz um exercicio que era pra colocar numeros em ordem crescente mas de nomes nunca fiz. Como faria? A linguagem C só aceita um caractere por vez isso? eu teria que usar uma string né,fica assim? O que eu tentei ate agora: #include <stdio.h> #include <stdlib.h> int main() { system ("title NOME EM ORDEM CRESCENTE THIAGO"); int i,j,aux,cont=0; char vetor[10][10] = {"Andre","Maria","Marcio","Bruno","Henrique","Zoraide","Daniel","Danilo","Zuleica","Adriano"}; for (i=0;i<10;i++) printf("%s\n",vetor[i]); return 0; } 1] Ate agora eu consegui imprimir os nomes, eu fiz da maneira certa? fiz um vetor CHAR de 10 posições com um maximo de 10 caracteres cada, é isso? e na hora da escrita eu coloco %s para dizer que é uma string, isso? 2] Como eu comparo 2 nomes para ver se é maior ou não dentro de um vetor?
  10. Obrigado pelo esclarecimento pessoal. então, a minha ideia era ir fazendo cursos conforme a grade da minha faculdade, no proximo semestre vou ter C e no outro terei JAVA. Faria pelo certificado para entrar nas atividades extra curriculares e para me adiantar e ficar mais fácil o aprendizado conforme vou tendo aula de linguagem C, java,etc.. Nenhum certificado da udemy vale ou tenho que verificar se a empresa/pessoa que esta dando o curso tem cnpj? estou motivado a me aprofundar em JAVA, pois sempre ouço falar dessa linguagem,falam que é complexa em comparação a outras e gosto de desafios... recomendam então só fazer cursos no que eu realmente quero?(java), nenhum outro contaria na hora da escolha para uma empresa?(em geral, não sendo a especialidade pedida pela empresa)
  11. Boa noite, gostaria de saber de algum site que ofereça um curso GRATUITO e com CERTIFICADO para linguagem C. Tem o udemy que oferece cursos super baratos, mas gostaria de saber se tem algum site que tenha gratuito e com certificado.
  12. finalizei com os 16 Se mesmo. nao consegui pensar em nada. E para fazer a condição de dar velha? De nenhum dos dois ganharem, o que pode ser colocado?
  13. usando esses 8 SE então poderia ser assim? se tab 11 e tab 12 e tab 13 = 0 ou tab11 e tab12 e tab13=X então? isso uma duvida que surgiu agora. Tem como unir essas posições? tipo, eu quero q a primeira linha ganhe se tudo for X. posso escrever se (tab11 e tab 12 e tab 13)= X então. se que tem como fazer algo do tipo? adicionado 3 minutos depois Deu certo esse ultimo kkkk, vai diminuir um tanto.
  14. consigo verificar somente então com 8 possibilidades para os 2 jogadores? A condição ficaria bem grande né? assim: se (tab[1,1]=jog1rep) e (tab[1,2]=jog1rep) e (tab[1,3]=jog1rep) então jog1rep representa o que o jogador 1 escolheu, X ou 0. Nessa eu só fiz a primeira linha, teria que ter então mais 7 SE (16 no total) E no seu caso, 8 no total isso? A unica forma que eu penso em deixar só com 8 SE é se eu escrever uma condição longa mesmo.
  15. valeu devair! Não acredito q era tão simples assim, quebrei a cabeça kk. Agora estou na parte da condição para vitorias. Por enquanto estou pensando só em SE(if). Se linha, se diagonal,se coluna igual a X...etc. Tem outro jeito de fazer isso? To pensando em tentar fazer dentro de uma matriz novamente.
  16. Boa noite pessoa, dentro do meu codigo eu tenho uma matriz. Do jogo da velha. do vetor tab eu tenho numeros de 1 ate 9 e do vetor rep tambem de 1 ate 9 , mas somente o tab recebe o X ou O. então eu quero colocar uma condição, que o usuario leia a jogada. Verifique o numero que ele leu na matriz rep e veja se a matriz tab na mesma posição tem X ou O. Ate ai eu fiz. Mas que quero que a cada novo leia, ele veja a matriz inteira novamente. O que ele esta fazendo: coloquei X e O na primeira e segunda posição da matriz TAB. quando digito novamente 1 ele da como ocupada, quando digito 2 ele tambem da como ocupada. Mas quando digito novamente 1 ele n zera a matriz e continua a contagem normalmente ate o final: para m de 1 ate 3 faca para n de 1 ate 3 faca // aqui nesse primeiro eu encontro onde é a jogada se numpcarac(jogada1) = rep[m,n] então //aqui faz a comparação das duas matrizes se tab[m,n] <> rep[m,n] então repita escreval(" posição ja preenchida!") escreva(jogador1," escolha a sua jogada novamente:") leia (jogada1) ate (rep[m,n] <> numpcarac(jogada1)) m<-1 n<-1 fimse fimse fimpara fimpara O que posso fazer para ele zerar a contagem, e verificar desde o começo esse codigo novamente sempre a cada leia? adicionado 32 minutos depois Conseguiiiiiiiiiiiiiiiiiiiii!! Afff 1:30 tentando. Coloquei um repita logico e a matriz dentro, se FALSO repita, se VERDADEIRO não repita. Alguem sabe se tem outro jeito(deve ter) de resolver? só por curiosidade
  17. entendi a logica certa então? O que eu entendi é que no primeiro algoritmo ele escrevia sempre em cima dos dados, acredito que como você disse era por causa do vx <>0 vx=0 em alguma parte um dos dois iria escrever por cima do outro, gerando erro isso?
  18. CONSEGUIIII!!!!! eu acho.... kkk simon vegas, veja se a minha logica esta certa. Eu percebi que enquanto fazia o SE dentro do PARA ele ia vendo todo o vetor e escrevia os dados por cima, eu entendi então que eu precisava parar o codigo quando encontrasse um NUMERO=VETORX ou NUMERO<>VETORX... mas eu não conseguia, então toda hora ia escrevendo por cima, tentei com uma variavel logica, se = ele sai, ou se <> ele sai tambem, mas ele mudava o que estava dentro do SE. Era isso que estava faltando né? o que eu fiz é colocar uma condiçao se = ele ficava 1 e não importava se fosse por todo o vetor, ainda continua 1. dai depois do para ele usava esse 1 ai sim escrevia, e senão tivesse encontrado, ai ele escrevia outro dado: veja se ficou certo sem erros. Se puder rodar os 2 codigos. eu entendia que no primeiro codigo ele escrevia por cima, mas eu ainda assim não entendo porque ele escreve somente em cima do segundo numero repetido... o codigo acredito que certo: Var // Seção de Declarações das variáveis Vx,Vy: vetor[1..5] de inteiro i,j,k,l,numero,repetido: inteiro trava: inteiro Inicio // Seção de Comandos, procedimento, funções, operadores, etc... escrevaL("Digite 5 numeros") escreval("") para i de 1 ate 5 faca escreval("Digite o ",i,"° numero:") leia (numero) trava<-0 para j de 1 ate 5 faca se numero=vx[j] então se (numero<>0) então trava<-1 fimse fimse fimpara se trava=1 então vx[i]<-0 vy[i]<-numero numero<-0 fimse se trava<>1 então vx[i]<-numero vy[i]<-numero numero<-0 fimse fimpara escreval("") escreval("") para l de 1 ate 5 faca repetido<-0 para k de 1 ate 5 faca se vx[l] = vy[k] então repetido<-repetido+1 fimse fimpara se repetido>1 então escreval ("O numero ",vy[l]," apareceu ",repetido," vezes nas posições: ") para k de 1 ate 5 faca se vx[l] = vy[k] então escreva ("{",k," }") fimse fimpara escreval("") fimse fimpara eu gostaria de saber tambem se tem outra forma de comparar se um numero digitado se repete em um vetor...
  19. galera perdi o dia inteiro tentando achar o erro aqui. Eu estou fazendo um algoritmo que leia 5 numeros e veja qual deles se repete, e imprima qual numero é , quantas vezes ele se repete e em quais indices. Ja fiz TUDO. mas ele tem um pequeno bug . Na primeira parte para comparar eu fiz com que se o numero fosse igual, o vetor x recebia 0, se fosse diferente o vetor x recebia o numero lido. Mais tarde eu fazia outra comparação e escrevia o vetor que repetia. Da tudo certo. Só que na segunda vez ele não grava o 0. exemplo: eu coloco 1 1 2 2 5.. beleza... era pra ele gravar 1 0 2 0 5 assim eu saberia que o numero 1 e 2 se repetiram. Mas ele ta gravando 1 0 2 2 5. o codigo: Var // Seção de Declarações das variáveis Vx,Vy: vetor[1..5] de inteiro i,j,k,l,numero,repetido: inteiro Inicio // Seção de Comandos, procedimento, funções, operadores, etc... escrevaL("Digite 5 numeros") escreval("") para i de 1 ate 5 faca escreval("Digite o ",i,"° numero:") leia (numero) para j de 1 ate 5 faca se (numero= vx[j]) e (numero<>0) então vx[i]<-0 vy[i]<-numero numero<-0 fimse se (numero<>vx[i]) e (numero<>0) então vx[i]<-numero vy[i]<-numero numero<-0 fimse fimpara fimpara escreval("") escreval("") para l de 1 ate 5 faca repetido<-0 para k de 1 ate 5 faca se vx[l] = vy[k] então repetido<-repetido+1 fimse fimpara se repetido>1 então escreval ("O numero ",vy[l]," apareceu ",repetido," vezes nas posições: ") para k de 1 ate 5 faca se vx[l] = vy[k] então escreva ("{",k," }") fimse fimpara escreval("") fimse fimpara Podem ver que se colocar por exemplo: 1 1 2 5 4 ele vai dar certo. Agora se colocar um segundo numero repetido ele ja não da certo.
  20. Também estou com um exercício parecido de vetores. Ainda estou pegando o jeito. No meu eu tenho que ler 10 números (coloquei 4 para facilitar os testes), e ver se é repetido, quantas vezes ele repete, e em quais índices ele aparece repetido: Var // Seção de Declarações das variáveis V1: vetor[1..4] de inteiro v2: vetor[1..4] de inteiro cont,cont2,cont3: inteiro Inicio // Seção de Comandos, procedimento, funções, operadores, etc... para cont de 1 ate 4 faca escreval("Digite o",cont,"° numero:") leia (v1[cont]) fimpara escreval("________________") para cont2 de 1 ate 4 faca para cont3 de 1 ate 4 faca se (V1[cont3] = V1[cont2]) e (cont2<>cont3) então escreval("O numero",V1[cont2]," apareceu no ",cont2,"º indice") fimse fimpara fimpara Fimalgoritmo Fiz somente ate aqui, tirando as explicações acima que são referentes a pergunta do outro colega, mesmo envolvendo o mesmo tema, vcs podem me ajudar a entender a lógica de como fazer?? tem que dar algo assim: o numero 45 apareceu 3 vezes, no índice 2, no índice 8 e no índice 10
  21. Pessoal consegui. Usei um algoritmo em que tem um laço, leia 10 numero,depois do leia ele tem outro laço, dentro desse laço tem um loop, se o numero digitado for igual a outra variavel peça para digitar novamente. Se não a variavel recebe o numero digitado. Exemplo: para counter de 1 ate 10 faca escreval( "Digite o",counter,"º numero:") leia (V[counter]) para counter1 de 1 ate counter faca enquanto (V[counter] =V1[counter1]) faca escreval escreval escreval("Numero ",V[counter]," ja foi digitado como",counter1,"º numero") escreval("Digite novamente o ",counter,"° numero.") leia (V[counter]) fimenquanto fimpara V1[counter1]<-V[counter] a logica principal fica assim, e no resto ele só exibe com outro laço
  22. ok vou mudar as variaveis e tentar pensar em alguma coisa dessa forma. Mas colocando esses 2 laços, primeiramente o programa ira permitir que eu digite os 10 numeros, para depois ele mostrar os repetidos e pedir para digitar um novo numero.? Ou permitira com que se eu digitar um numero 10 no indice1 e digitar o numero 10 no indice 3, ele ja peça para digitar um novo numero para o indice 3?
  23. sim sim vou postar o codigo que eu fiz ate agora, perdão não tinha me informado sobre essa parte. Estou no primeiro semestre de T.I, o codigo que eu fiz ate agora: ================================================================= Var // Seção de Declarações das variáveis vNumbers,vNumbers2: vetor[1..10] de inteiro counter,counter2,repetido: inteiro Inicio // Seção de Comandos, procedimento, funções, operadores, etc... Para counter de 1 ate 10 faca escreval("Digite um numero:") leia (vNumbers[counter]) repetido<- vNumbers[counter] se vNumbers[counter] = repetido então escreval("numero repetido") fimse fimpara Fimalgoritmo =========================================================== se vNumbers[counter] = repetido então escreval("numero repetido") Esssa comparação que não estou conseguindo, quero que a variavel repetido receba o numero digitado, e ela percorra todo os vetores procurando se tem numero repetido ou não. Acredito que tenha que colocar outro para e reformular a comparação, mas não sei como.
  24. Pessoal estou com uma duvida nesse exercicio. Não estou entendendo muito vetores, alguem pode ajudar a resolver? O começo eu ja consegui, o que eu não estou conseguindo é que depois do numero digitado, o programa percorra do inicio ate o final dos vetores para saber se o numero digitado é igual ou não: Faça um algoritmo que leia 10 números e armazene-os em um vetor de 10 posições. Porém, antes de armazenar o número, verifique se ele já não existe no vetor, caso exista mostre uma mensagem de erro ao usuário juntamente com os números que já foram digitados e peça para que o usuário digite um número diferentes dos que já existem. Se alguem puder dar uma verificada no codigo e dizer onde estou errando por favor.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!