kgin
Membro Pleno-
Posts
380 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
Tudo que kgin postou
-
sim, vai funcionar como qualquer android instalado de fabrica (só posso dizer isso do lineageOs). sim e não apps de bancos provavelmente não vão funcionar sem instalar o playService e a playStore, mas isso e bem fácil de resolver (depende do seu entendimento técnico ¯\_(ツ)_/¯) Não vai (pode ser que ele só não ligue mais ). Eu acho bem mais seguro do que a própria rom do google, pelo fato de receber patchs de segurança bem mais rápidos e frequentes. Como você vai instalar sem root?
-
Bat Editar arquivo csv pelo batch
kgin respondeu ao tópico de Giovanni Uchoa em Programação - outros
a ideia seria criar um novo arquivo passando o antigo no comando for e salvando os cadastros que você não quer editar, então quando chegar a vez do que você quer editar ou apagar você edita e salva no arquivo e deixa o comando for terminar. por fim seria só apagar o arquivo velho e renomear o novo para o mesmo nome do antigo. Eu gostaria de dar um exemplo, mas já faz uns 10 anos que não mexo com batch. -
Bat Editar arquivo csv pelo batch
kgin respondeu ao tópico de Giovanni Uchoa em Programação - outros
se me lembro bem você tem que usar o comando for com opção de file parsing e de string parsing. Microsoft docs comando for Eu recomendaria você aprender alguma linguagem de programação como C ou javascrip, porque fazer isso em batch não é muito vantajoso. fora que em batch você tem um limite de quão grande um arquivo pode ser analisado mais precisamente seria 65535 linhas, enquanto em C o mínimo e 4 gigabytes. -
@IzeraXD Eu ainda não entendi claramente o que o seu programa tem que fazer. era só um exemplo, você tem que carregar os nomes em algum lugar temporário que foi isso que eu fiz. arquivos texto (ou não binários) tem o acesso sequencial, significa que você não pode ir em X linha sem ler o arquivo todo, que foi isso que eu fiz.
-
@IzeraXD Seria isso que você está tentando fazer? /* Copia a string para uma array */ printf("Mostra o nome letra por letra\n"); for (contador1 = 0; texto[0][contador1] != '\n' && texto[0][contador1] != '\0'; contador1++) { personagem[contador1] = texto[0][contador1]; printf("%c ", personagem[contador1]); } /* Coloca o sinalizador de final da string */ personagem[contador1] = '\0'; código fonte completo codigo_fonte.zip
-
Poste o enunciado (o que você esta tentando fazer) para ficar mais fácil de entender. Porque pra mim o que você está fazendo é só complicar o que parece fácil.
-
VisualG Logica de programação baisca
kgin respondeu ao tópico de Marechal Barros em Programação - iniciantes
Poste o enunciado, e tente rodar na plataforma que você está programando para ver o resultado. igual eu fiz aqui Exemplo -
@xidori Se você quer mesmo seguir com essa ideia eu recomendo ler no livro c completo e total sobre "declarando uma lista de parâmetros de extensão variável" na pagina 175. Mas ao meu ver já que você é um aprendiz (não só de C, mas de tudo) eu recomendo você instalar uma VM com alguma distro leve (xubuntu ou linux mint) e fácil de usar, é usar a biblioteca origina. https://github.com/cs50/libcs50 É só seguir os passos direitinho que da certo.
-
C Colocar os pontos lado direito do triângulo
kgin respondeu ao tópico de carolineandresa em C/C#/C++
@carolineandresa Seria bom você colocar o enunciado, porque se for só para fazer um triangulo com as letras há varias formas de fazer. Exemplo #include <stdio.h> #include <ctype.h> const char sinal = '_'; int main(void) { unsigned short q_pontos = 0, q_linhas = 0, q_letras = 0, pontos, linhas, letras; char letra = 0; /* Lẽ um caractere entre A a Z do úsuario */ do { printf("Digite uma letra de A a Z\n"); scanf("%c%*c", &letra); if (toupper(letra) < 'A' || toupper(letra) > 'Z') { printf("O caractere %c não e valido!\n", letra); } } while (toupper(letra) < 'A' || toupper(letra) > 'Z'); q_pontos = q_linhas = (toupper(letra)-'A')+1; q_letras = 1; for (linhas = 0; linhas < q_linhas; linhas++) { /* Mostra os pontos */ for (pontos = 0; pontos < q_pontos; pontos++) { putchar(sinal); } /* Mostra as letras em ordem normal */ for (letras = 'A'; letras < (q_letras+'A'); letras++) { printf("%c", letras); } /* Mostra as letras em ordem reversa se a quantidade de letras for maior que 1*/ if (q_letras > 1) { for (letras = (q_letras+'A')-2; letras >= 'A'; letras--) { printf("%c", letras); } } /* Mostra os pontos */ for (pontos = 0; pontos < q_pontos; pontos++) { putchar(sinal); } /* Salta uma linha */ putchar('\n'); q_pontos--; q_letras++; } return(0); } -
Pascal Auxilio com Estruturas de Repetição e Contadores
kgin respondeu ao tópico de Pedroso90 em Programação - outros
De uma estudada em logica de programação O seu algoritmo está incompleto. Eu fiz este para demonstrar program Estruturas_de_repeticao; uses crt; const Q_PESSOAS = 10; var pessoas_90_150, pessoas_10_30_190, contador : integer; peso, altura : real; idade : byte; begin { Inicia as variaveis } pessoas_10_30_190:= 0; pessoas_90_150:= 0; for contador:= 1 to Q_PESSOAS do begin clrscr; writeln('Digite a idade da pessoa'); readln(idade); writeln('Digite a altura da pessoa'); readln(altura); writeln('Digite o peso da pessoa'); readln(peso); if (peso > 90) AND (altura < 1.50) then inc(pessoas_90_150); if (idade >= 10) AND (idade <= 30) AND (altura >= 1.90) then inc(pessoas_10_30_190); end; writeln('A quantidade de pessoas obesas morbidas menores que 1,50 e:', pessoas_90_150); writeln('A porcentagem de de pessoas entre 10 e 30 anos e que medem mais de 1,90 e:', (pessoas_10_30_190/Q_PESSOAS)*100:2:0,'%'); readkey; end. De uma estudada nele -
Eu não posso afirmar com certeza (mesmo porque eu nunca estudei C), mas quando você declara char *str = "Uma string!"; você só está criando um ponteiro chamado *str que aponta para um local do código (no formato elf provavelmente vai ser na secessão .text ou .data) que não pode ser modificada. Mas quando você declara char str[] = "Uma string!"; você está pedindo para o compilador reservar memoria para o vetor na parte baixa da memoria e logo em seguida copiar o conteúdo do vetor para a memoria. Isso vai depender do compilador e tipo de formato do executável, mas no geral é sempre assim. Resumindo. Assim você só pode modificar o ponteiro char *str = "Uma string!"; char outra_str[] = "Outra string!"; str = outra_str; str[3] = 'a'; É assim você só pode modificar o conteúdo. char str[] = "Uma string!"; str[0] = ' '; /* OK */ str = NULL; /* Vai dar erro! */ Pense na primeira como sendo uma constante que você não pode modificar.
-
@codigo rápido Eu acho que seria melhor usar o mesmo espaço que foi passado para voltar a string. Dessa maneira que você fez você deixou um vazamento de memoria (mem leak) passar na hora que você reservou a memoria e não a liberou. Uma alternativa melhor seria #include <stdio.h> #define T_FRASE 60 char *inverteString(char *str); /* * Em caso de sucesso devolve a string invertida, ou NULL em caso de falha. */ int main(void) { char frase[T_FRASE]; puts("Digite uma frase para ser invertida"); fgets(frase, T_FRASE, stdin); /* Retira o newline */ { int contador; for (contador = 0; frase[contador]; contador++); frase[contador-1] = '\0'; } if (inverteString(frase) == NULL) { puts("Erro ao inverter a frase!"); } else { puts("Frase invertida"); puts(frase); } puts("Pressione enter para continuar..."); getchar(); return(0); } char *inverteString(char *str) { int contador1, contador2, tamanho_string = 0; /* Verifica o tamanho da string */ if (str != NULL) { for (contador1 = 0; str[contador1]; contador1++); tamanho_string = contador1-1; if (tamanho_string > 0) { char temporario[tamanho_string+1]; contador2 = tamanho_string; /* Inverte a string */ for (contador1 = 0; contador1 < tamanho_string+1; contador1++) { temporario[contador1] = str[contador2]; contador2--; } temporario[contador1] = '\0'; /* Copia a string de volta */ for (contador1 = 0; temporario[contador1]; contador1++) { str[contador1] = temporario[contador1]; } /* retorna a string */ return(str); } } /* Erro */ return(NULL); }
-
C Socket: Como pegar variaveis de um POST após um accept?
kgin respondeu ao tópico de codigo rapido em C/C#/C++
Olá a sua pergunta está meio ambígua. Você quer pegar o conteúdo da variável mandada por um método post ou você quer uma maneira de processar um cabeçalho HTTPS que tem um método post? -
@baji O que isso faz? Poste o algoritmo inteiro e o enunciado para que alguém possa te ajudar.
-
Javascript Porque o código não saiu como esperado (Iniciante Java Script)
kgin respondeu ao tópico de Gabrielmeia01 em Web e banco de dados
Eu não sei javascript, mas irei tentar explicar o que está acontecendo. Quando você compara o isósceles ele vai ser verdadeiro se qualquer lado for igual. const Isósceles = Lado1 == Lado2 || Lado2 == Lado3 || Lado3 == Lado1 ai quando você vai testar se o triangulo e equilátero a condição será falsa, porque você está dizendo se equilátero for diferente de isósceles que não é. if (Equilátero != Isósceles && Equilátero != Escaleno) return "Este triangulo é Equilátero" então você compara a variável equilátero com a isósceles que são ambas verdadeiras que vão dar o resultado de falso, é a mesma coisa acontece com equilátero e escaleno. -
@Rebeka Como você faria esse porcentagem na formula de um calculo?
-
@dve A ideia básica é, faça um vetor para guardar os números (com o tamanho entre 100 a 500 posições) declare uma variável para pegar a quantidade de números digitados e outra para auxiliar. Faça um loop com o repita ... até para pegar os números utilize a variável para pegar a quantidade de números como índice do vetor. Faça outro loop do tipo para ... faça e utilize a quantidade da variável usada para contar quantos números foram digitados como ponto final e use a variável auxiliar para contar, agora você só precisa mostrar os valores no loop. De uma olhada no manual do Visualg http://manual.visualg3.com.br/doku.php?id=manual
-
Outro Qual linguagem de programação devo começar?
kgin respondeu ao tópico de Blxck em Programação - iniciantes
@Blxck Antes de começar na recomendação do amigo aí, eu recomendo você dar uma estudada em algoritmos primeiro. -
Arduino Como enviar e receber strings de valores float em C
kgin respondeu ao tópico de WMAC em Microcontroladores
Eu posso está dizendo algo *****, mas não seria melhor converter o numero para uma representação por ponto fixo (fixed point) é mandar como dois bytes pela serial.write()? Se não sabe o que é, de uma olhada nesse site em inglês https://plutiedev.com/fixed-point -
@KingDasWinxBR Qual é o seu intuito em aprender a programar?
-
Pascal Menor, maior e suas posições.
kgin respondeu ao tópico de Nikollas G. Ohta em Programação - outros
Eu estou meio enferrujado no Pascal, mas as linhas de 14 a 22 estão fazendo basicamente a mesma coisa. O melhor seria fazer assim. Program Maior_Menor_Vet; const Q_ARRAY = 5; Var vet:Array [1..Q_ARRAY] of integer; i,maior,menor,localMai,localMen:integer; { Você também pode iniciar as variaveis aqui dessa maneira maior:integer = 0; } Begin { Inicia as variaveis, só por garantia ;) } maior := 0; menor := 0; localMen := 0; localMai := 0; For i:=1 to Q_ARRAY do Begin write('Digite um valor para o ', i ,'º vetor: '); readln(vet[i]); end; { Checa o maior } For i:=1 to Q_ARRAY do Begin { Se o valor no vet for maior que a variavel maior } if (vet[i]>maior) then begin { Salva a posição é o valor } maior:=vet[i]; localMai:=i; end; end; { Inicia a variavel menor com o maior valor achado } menor := maior; { Checa o menor valor } For i:=1 to Q_ARRAY do Begin { Se o valor no vet for menor que a variavel menor } if (vet[i] < menor) then begin { Salva a posição é o valor } menor:=vet[i]; localMen:=i; end; End; { Mostra o resultado } writeln; writeln('O menor valor é: ', menor,'. Está localizado no ',localMen,'º vetor.'); writeln('O maior valor é: ', maior,'. Está localizado no ',localMai,'º vetor.'); readkey; { Pausa o programa } End. As coisas entre as chaves {} são comentários, se você estiver usando um compilador que não suporte a constante que eu declarei (Q_ARRAY) apague ela e substitua pelo valor. Qual compilador você está usando? -
Pascal Menor, maior e suas posições.
kgin respondeu ao tópico de Nikollas G. Ohta em Programação - outros
@Nikollas G. Ohta Você precisa iniciar a variável menor com o valor da variável maior, porque a variável já é iniciada com o menor valor que é 0 (a maioria dos compiladores de pascal faz isso, os outros não iniciam). faça dois loops um para achar a maior variável e depois passe o valor da mesma para a variável menor, e depois faça o loop para achar o menor valor. -
Outro Ler excel, armazenar e condição
kgin respondeu ao tópico de Luizuk em Microsoft Office e similares
Disse jacaré porque Visual basic e "filho" do velho basic (uma linguagem da década de 60), se você vai dar uma olhada no JS eu recomendo começar por aqui Boa sorte -
C++ Verificar se existe duplicação de valor na minha lista
kgin respondeu ao tópico de jottinha852 em C/C#/C++
@jottinha852 Eu acho que você deveria separar o código da sua lista encadeada do seu programa. Isso só vai atrapalhar, aprenda a fazer a lista encadeada primeiro para só depois você começar a fazer o programa. Exemplo de lista encadeada. Não use system() nem fflush() para limpar a saída você só tera problemas usando isso. Aprenda a pegar a linha inteira passada pelo usuário e interpretar o conteúdo contido na mesma. -
Outro Ler excel, armazenar e condição
kgin respondeu ao tópico de Luizuk em Microsoft Office e similares
Pois é, como eu disse se você já sabe C seria um desafio relativamente fácil editar um arquivo CSV com as funções da própria linguagem. Mas se você que aprender outra linguagem tem varias que já suportam por natureza esse tipo de aquivo, Exemplo o (jacaré) do VBA que o @ricardo_br mencionou.
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