-
Posts
75 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
Tudo que s4lezardv1A postou
-
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?
-
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?
-
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.
-
#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.
-
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?
-
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?
-
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...
-
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?
-
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?
-
C Curso gratuito com certificado - linguagem C
s4lezardv1A respondeu ao tópico de s4lezardv1A em C/C#/C++
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) -
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.
-
VisualG Fazer a matriz dar um loop até condição
s4lezardv1A respondeu ao tópico de s4lezardv1A em Programação - iniciantes
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? -
VisualG Fazer a matriz dar um loop até condição
s4lezardv1A respondeu ao tópico de s4lezardv1A em Programação - iniciantes
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. -
VisualG Fazer a matriz dar um loop até condição
s4lezardv1A respondeu ao tópico de s4lezardv1A em Programação - iniciantes
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. -
VisualG Fazer a matriz dar um loop até condição
s4lezardv1A respondeu ao tópico de s4lezardv1A em Programação - iniciantes
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. -
VisualG Fazer a matriz dar um loop até condição
s4lezardv1A postou um tópico em Programação - iniciantes
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 -
VisualG VETORES - falha em logica para ler numero repetido
s4lezardv1A respondeu ao tópico de s4lezardv1A em Programação - iniciantes
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? -
VisualG VETORES - falha em logica para ler numero repetido
s4lezardv1A respondeu ao tópico de s4lezardv1A em Programação - iniciantes
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... -
VisualG VETORES - falha em logica para ler numero repetido
s4lezardv1A postou um tópico em Programação - iniciantes
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. -
VisualG Vetores - números repetidos - visualg
s4lezardv1A respondeu ao tópico de ET Bilu em Programação - iniciantes
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 -
VisualG VISUALG - Exercicio com Vetores
s4lezardv1A respondeu ao tópico de s4lezardv1A em Programação - iniciantes
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 -
VisualG VISUALG - Exercicio com Vetores
s4lezardv1A respondeu ao tópico de s4lezardv1A em Programação - iniciantes
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? -
VisualG VISUALG - Exercicio com Vetores
s4lezardv1A respondeu ao tópico de s4lezardv1A em Programação - iniciantes
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. -
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