roccoC/C++

Membros
  • Content Count

    496
  • Joined

  • Last visited

Community Reputation

0 Neutro

4 Followers

About roccoC/C++

Perfil

  • Gender
    Male
  • Location
    Guarulhos

Recent Profile Visitors

3179 profile views
  1. Apenas para fins didáticos, e sem me responsabilizar por uso indevido, apresento este gerador de cpf. O gerador aqui proposto pode gerar até 11 cpfs de uma só vez, e foi criado em linguagem C. Quantidades inferiores a 1, ou maior que 11 não passa pela entrada, como também qualquer caractere, passando mesmo tão somente dígitos. Fica em sua responsabilidade o uso, não indicado pelo autor que sou eu mesmo. Veja abaixo uma imagem do programa em execução: Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2017/10/gerador-de-cpf-linguagem-c.html
  2. Olá hitalobastos Vou te passar o link atualizado do código, já que este em cima não está funcionando. Só quero deixar claro que fiz este código logo no início quando estava começando a programar, o código tá rodando normalmente, más acredito que se eu fosse fazer uma análise nele hoje faria várias mudanças, tiraria códigos sem efeitos, em fim, faria algumas otimizações que julgo necessárias. Más se lhe serve para alguma coisa fique a vontade. Aproveite e faça uma pesquisa no meu blog, entre os mais de 280 códigos em C disponibilizados gratuitamente para todo o público, e veja a qualidade e clareza dos exemplos lá postados. http://codigosfontes-ccplus-plus.blogspot.com.br/2012/11/campeonato-brasileiro.html Abraço
  3. Como não entendi direito o que você quer, vou te passar dois links de exemplos de comparação de vetores, um de inteiros e outro de caracteres: http://codigosfontes-ccplus-plus.blogspot.com.br/2015/03/comparando-dois-vetores-de-caracteres.html http://codigosfontes-ccplus-plus.blogspot.com.br/2015/03/comparando-dois-vetores.html Abraço Como não entendi direito o que você quer, vou te passar dois links de exemplos de comparação de vetores, um de inteiros e outro de caracteres: http://codigosfontes-ccplus-plus.blogspot.com.br/2015/03/comparando-dois-vetores-de-caracteres.html http://codigosfontes-ccplus-plus.blogspot.com.br/2015/03/comparando-dois-vetores.html Abraço
  4. Neste post mostro um bom exemplo de como copiar o conteúdo de um arquivo em outro, coisa muito fácil de fazer e entender para os que tem envolvimento com Linguagem C. Isto pode ser feito em poucas linhas de código, más como gosto das coisas bem organizadas, criei funções para deixar tudo mais claro. Breve descrição: A função int Abre_Arq_Um ( ); abre um arquivo existente contendo alguns nomes de pessoas e imprime no vídeo, onde usei as funções mais usadas para isto. A função int Abre_Arq_Dois ( ); abre um arquivo vazio criado previamente por mim e não pelo programa, a causa é só para mostrar que o arquivo está mesmo vazio antes de receber a cópia. A função int Abre_E_Copia ( ); abre o arquivo principal novamente, aqui criamos dois ponteiros para arquivo e um vetor de char para armazenamento das string do arquivo principal. Temos um laço while(); que varre os arquivos enquanto fputs(); faz a cópia dos dados que estão no vetor de char para o arquivo II, vindo então o fechamento dos dois arquivos. Quero que entenda que não cabe a mim detalhar o funcionamento dos comandos usados por este programa, isto fica a cargo dos interessados pelo código. Veja abaixo uma imagem do programa em execução: Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2016/06/arquivo-copiando-conteudo.html
  5. Pode ser que você utiliza um computador compartilhado com outros usuários, numa mesma rede ou conta, e as vêzes deseja escrever algo que ninguém possa ler. Talvez você possua senhas complexas com caracteres maiúsculos com minúsculos e números onde o copiar e colar é preciso para logar. A minha sugestão é que você venha codificar suas senhas ou arquivos utilizando o meu programa apresentado aqui neste post. Breve descrição do funcionamento: As ações originais de operações bit a bit são: testar, atribuir ou deslocar os bits vinculados a caracteres, palavras, ou números inteiros, que são respectivamente os tipos char e int da linguagem C, incluindo as variantes destes tipos. O futuro programador já deve ficar ciente que operações bit a bit não podem ser usadas em tipo float ou double, long double, void ou qualquer outro tipo mais complexos. Más estou me referindo ao único que é usado neste programa que é o " ~ ", entre as aspas na nossa língua portuguêsa, chamamos de "til", porém na linguagem C chamamos de complemento de um. Este operador inverte o estado de variáveis específicas em operações conjuntas, onde os zeros passarão a ser um, e os uns passarão a ser zeros. Como nossa máquina só entende 0 e 1,tal qual num circuito digital, não foi muito difícil criar este programa usando como componente principal este importante operador do C, e os leitores devem achar isto muito interessante e pode ser tudo o que você procurava em se tratando de um exemplo claro e funcional. O programa começa mostrando um belo e organizado menu de seis opções usando comandos ifs para interação com o usuário. Veja abaixo algumas imagens do programa em execução: Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2016/05/pode-ser-que-voce-utiliza-um-computador.html
  6. Para finalizar esta série de exemplos de ordenação com qsort(); apresento este ótimo programa que mostra primeiramente um vetor de 100 elementos inteiros todo desordenado e do lado direito depois que clicamos em qualquer tecla, a função qsort (); faz a ordenação completa e perfeita de todos elementos. No primeiro post sobre qsort(); cujo o nome foi: Qsort - ordenando um vetor de struct Escrevi um pouco sobre esta importante função do C. aliás, eu recomendo que o futuro programador em linguagem C, guarde este exemplo porque não é nada fácil encontrar outro como este. A única surpresa, más que não foge da lógica é o método escolhido para fazer as comparações, que é usando a função strcmp (); da biblioteca string.h dentro da função int Qsort_Ord (); onde pares de elementos são comparados e retornados para a função principal. Veja abaixo uma imagem do programa em execução: Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2016/05/qsort-ordenando-um-vetor-de-inteiros.html
  7. A função qsort(); é mesmo fantástica, nós já nos sentimos muito satisfeito em saber usá-la em nossos programas para ordenação em qualquer tipo aceito do C, imagine os responsáveis pela criação desta incrível função o quanto não se alegraram ao vê-la funcionando assim plenamente. No primeiro post sobre qsort(); cujo o nome foi: Qsort - ordenando um vetor de struct Escrevi um pouco sobre esta importante função do C. Neste exemplo eu mostro como ordenar uma matriz de inteiros previamente declarada, aliás, eu recomendo que o futuro programador em linguagem C, guarde este exemplo porque não é nada fácil encontrar outro como este. A única surpresa, más que não foge da lógica é o método escolhido para fazer as comparações, que é usando a função strcmp (); da biblioteca string.h dentro da função int Qsort_Ord (); onde pares de elementos são comparados e retornados para a função principal. Veja abaixo uma imagem do programa em execução: Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2016/05/qsort-ordenando-uma-matriz-de-inteiros.html
  8. No post anterior os leitores observaram o quanto é fácil usar a função qsort(); para ordenar um vetor de estrutura, ode nele escrevi um pouco sobre esta importante função do C. Neste exemplo mostro como ordenar uma matriz de string, o que é ainda mais fácil a única surpresa, más que não foge da lógica é o método escolhido para fazer as comparações, que é usando a função strcmp (); da biblioteca string.h dentro da função int Comp_ord (); onde pares de elementos são comparados e retornados para a função principal. Veja abaixo uma imagem do programa em execução: Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2016/05/qsort-ordenando-uma-matriz-de-string.html
  9. Neste exemplo que trago agora vou mostrar como ordenar uma um vetor de estrutura usando a função qsort(); da biblioteca padrão stdlib.h do C. A função qsort(); é derivada de uma série de refinamento da famosa e antiga função quicksort(); e na realidade passou a ser padrão há alguns anos atrás, o que mais me impressiona é a facilidade de uso em imprementações para ordenação em qualquer tipo de dados do C, e mesmo assim não é muito usada, nem sei porque se evitam tanto esta função, talvez seja por não conhecê-la... A função qsort(); utiliza alguns parâmetros veja na sua síntaxe abaixo: void qsort (void* base, size_t num, size_t size, int (*compar)(const void*,const void*)); onde base: é um Ponteiro genérico para o primeiro elementoo da matriz a ser ordenado, a importância de ser ponteiro genérico se refere a poder usar a função com qualquer tipo de dados do C. num: Número de elementos na matriz apontada por base. size_t: é um tipo integral sem sinal. tamanho: Tamanho em bytes de cada elemento na matriz. size_t é um tipo integral sem sinal. compar: Ponteiro para uma função que compara dois elementos. Essa função é chamada repetidamente por qsort para comparar dois elementos até que todos tenham sido comparados e consequentemente ordenados. Talvez entender esta função seja bem mais complicado do que saber usá-la nos nossos programas, na verdade para entender a função qsort(); devemos primeiro entender o comportamento de ponteiro para função que é um recurso avançado do C. Fica a cargo do leitor deste post pesquisar para entender mais a fundo como funciona a função qsort();, onde naturalmente o assunto ponteiro para função é fundamental. Más para não virmos a sentir dores de cabeça com isto vamos a um exemplo bem claro de utilização da função qsort(); para ordenação de um vetor de struct. Veja abaixo uma imagem do programa em execução: Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2016/05/qsort-ordenando-um-vetor-de-struct.html
  10. Se já estamos acostumados a ler de forma formatada com scanf(); não estamos muito longe de entender como ler de modo idêntico com fscanf(); Ora, estudantes de linguagem C devem achar isto perfeitamente possível e necessário em alguns casos. A função fscanf() funciona como a função scanf(). A diferença é que a saída de fscanf() é um arquivo e não o teclado do computador. Considere muito correto a seguinte síntaxe para fscanf();: int fscanf (FILE *fp,char *str,...); Como já acredito que você conhece a síntaxe de scanf(); imagino que você já detectou que a única diferença das duas síntaxe, é a especificação do arquivo destino através do ponteiro de arquivo. Alguns programadores não recomendam o uso de fprintf(); e fscanf(); para ler e escrever dados em arquivos, pois trabalham com dados ASCII e não binários o que ocasiona uma perda de desempenho no programa dando preferência o uso de fread e fwrite. Uma boa dica para uma leitura formatada com sucesso é fazer uma análise no arquivo primeiro e procurar estabelecer um determinado padrão se não houver. Note que no nosso arquivo lendo da esquerda para direita temos na primeira coluna nomes com sobrenomes de pessoas, na seguinte dia de nascimento, na próxima mês de nascimento, na seguinte o ano de nascimento, na coluna de origem leitura de strings referente à nacionalidade, e nas próximas colunas, são pêsos e altura de cada um, onde é óbvio que usei floats para ler isto. Exemplo mais claro que este que mostro agora acho impossível de encontrar, portanto o iniciante de linguagem C deve ficar satisfeito com tudo isto que é apresentado agora com clareza. Na imagem abaixo você ver o programa em execução: Abaixo está o link para acesso gratuito do código: http://codigosfontes-ccplus-plus.blogspot.com.br/2016/05/arquivo-formato-especifico-com-fscanf.html
  11. Sempre que um arquivo é aberto, podemos escolher pelo menos três maneiras para lê os seus dados que são: Caracter por caracter através das funções fgetc() e fputc(); da biblioteca padrão ou uma string de cada vez pelas funções fgets() e fputs(); , ou especificando um formato através das funções fscanf() e fprintf(). Neste exemplo simples de leitura de um arquivo usei fscanf(); para fazer a leitura completa do arquivo, com um macete muito usado por programadores em C, onde se permite que fscanf(); idem scanf(); lê strings com espaços. Num próximo exemplo vou mostrar como especificar a leitura por tipos separados. Veja o link do código abaixo: http://codigosfontes-ccplus-plus.blogspot.com.br/2016/05/sempre-que-um-arquivo-e-aberto-podemos.html
  12. Tudo começa com a impressão de dois vetores de inteiros inicializados por um contador com laço for, um com elementos de 6 a 15, que representa o total de de números que serão jogados, já o outro com números de 1 a 60 são os dígitos que serão marcados, onde a escolha mínima é de 6, e a máxima é de 15 veja as regras da Mega-sena. Cada número entre os dois vetores são capturados pelas suas coordenadas; com o posicionamento exato capturado, ficou fácil atribuir as marcações necessárias para cada posicionamento, na verdade cada número capturado pelos eventos do mouse representa um botão criado na marra em linguagem C e para o dos e isto graças a API do windows que sem ela nada seria conseguido. Quando o usuário marca suas jogadas, o computador faz o sorteio automático de 6 dezenas e marca com a cor vemelho. O próximo passo é fazer as comparações das jogadas do usuário e das dezenas que ele mesmo sorteou, e por fim são marcadas em roxo as que foram acertadas, ou que estão em comuns entre os dois, USUÁRIO X COMPUTADOR. O programa foi finalizado com 1.717 linhas, sendo que algumas foram usadas para fazer separações onde achei necessário para minha orientação. Assista o vídeo abaixo por favor: https://www.youtube.com/watch?v=NqQa7QK5aOc
  13. roccoC/C++

    PROGRAMA LOTECA

    Ótimo programa criado em linguagem C, com exeção de poucas funções da API do windows para manipulação do mouse no cmd, ( prompt de comando ), é um tanto impressionante criar esta interface com todos os detalhes que foram aplicados, nem parece que o programa está sendo rodado na velha telinha preta do dos. O usuário escolhe uma das três opções que são: Coluna 1, coluna 2 e coluna do meio. O interessante é a capacidade do programa não permitir que se preencha outra opção na mesma linha, isto não foi nada fácil de se fazer, más quando uma opção é escolhida o retângulo correspondente é colorido com a cor ciano claro, e é assim em todas opções, quando chega a vez do computador, ele vai marcando seus palpites automaticamente, com a cor roxo claro, más o destaque maior fica por conta das jogadas que foram feitas em comum, entre usuário e computador, estas são coloridas com a cor vermelha, e por fim chegamos ao final do programa, veja o vídeo abaixo
  14. Como prometi apresento este segundo exemplo mais avançado sobre Macro. E falando ainda sobre a diretiva #define um recurso poderoso do C. Blocos de códigos, rotinas completas e até mesmo funções podem ser encapsuladas dentro de uma macro, como é o caso deste exemplo. Criei algumas Macros, a macro GOT recebe uma função inteira, justamente a que cria uma moldura na tela do dos, e na macro NPRIM criei uma rotina completa para mostrar números primos e não primos dentro do vetor que recebe de um contador os 100 primeiros números narurais. Observe que na macro NPRIM chamamos outras macros, inclusive a função got_color(2, 25, 3, 79, 2, 15); com seus seis parâmetros. Aproveite este exemplo prático, copie e guarde o código para estudo, saiba que dificilmente você encontrará outro exemplo como este e como os outros que já postei no blog, disponibilizado em público sem querer nada em troca. Veja abaixo uma imagem do progtrama em execução: Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2016/04/macros-uso-avancado.html
  15. Um outro recurso que impressiona e que também faz parte do C, são as macros. Para criar uma macro basta usar a diretiva #define e incluir na frente um nome que será o identificador da macro. O c possui diversas diretivas que foram definida pelo padrão C ANSI, más neste e na maioria dos programas mais simples, usamos pelo menos duas que são: #include e #define. Estas diretivas são definidas geralmente numa única linha e ponto-e-vírgula não são usados. Espaços são aceitos entre o nome e a string desde que a macro não esteja recebendo parâmetros. Vale lembrar que se a string for muito longa basta colocar uma barra invertida no final da linha para que o compilador entenda que tem que continuar na linha seguinte. Definir os nomes de uma macro em maiúscula pode ser uma boa prática de programação, porém não são regras. O programa que criei para exemplo gera 12 números num vetor, e em seguida embaralha seus elementos, e são chamados um por vez, para que as operações sejam feitas individualmente. Criei algumas macros para este exemplo e mostro na prática seu funcionamento, na verdade fui bem além, em chamar a função textcolor(); da conio.h através de macro rodando perfeitamente. Pretendo mostrar outro exemplo de uso de macros mais avançado, e não quero incluir neste programa para não torna-lo mais complicado, portanto será muito bom vê-lo no próximo post. Veja abaixo uma imagem do programa em execução: Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2016/04/macros-criando-e-utilizandoo.html