Ir para conteúdo
Fórum Script Brasil

roccoC/C++

Membros
  • Total de itens

    496
  • Registro em

  • Última visita

Posts postados por roccoC/C++

  1. Comparar dois vetores de inteiros e procurar por elementos repetidos
    e numerar o total de ocorrências, é a finalidade deste programa,

    que pode ser alterado, mudando os vetores pré - definidos para vetores com entrada
    de dados com scanf();
    O código é indicado a iniciantes em C, que com poucas modificações
    pode ser adaptado, foi criado no eclipse onde rodou
    sem nenhum warnings.

    Veja abaixo uma imagem do programa em execução:

    http://2.bp.blogspot.com/-nk8q4opPdCE/VTOaym-VZLI/AAAAAAAACNw/WpFlcOETVPg/s1600/vetcm.PNG

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/04/elementos-comuns-entre-dois-vetores.html

  2. Em algumas ocasiões um programa em C pode exigir o uso de uma variável global,

    que como sabemos estas variáveis podem ser usadas por todo o programa,

    em qualquer bloco de código. Estas variáveis estão áptas a manter seus valores

    enquanto o programa estiver sendo executado.
    Para criar uma variável global, basta declará-la fora de todas as funções do programa,

    de preferência no início, sendo que sua declaração pode ser feita antes da função main();

    desde que não seja usada em alguma função do programa.
    Devemos evitar que o nome de uma variável global seja o mesmo que de uma local,

    evitando assim conflitos entre as duas onde a referência se dará a variável local anulando os efeitos da global.
    Já que variáveis globais ocupam espaços na memória durante todo tempo em que o programa

    está em execução, elas devem ser evitadas, isto torna um desperdício de memória inútil,

    procure sempre substituir por uma local se possível.
    Más o prograama aqui proposto traz praticamente uma novidade,

    inicializei um vetor de ponteiro para char na função copia_valores ( ); e
    fiz a cópia no vetor de ponteiro char *str [ 10 ]; que foi declarado como global,

    fiz o mesmo com o vetor de inteiro Vet [ 10 ]; também declarado nesta mesma função,

    fazendo a cópia no vetor global de inteiros, de nome
    Vetor [ 10 ]. Note que o procedimento normal seria passá-los como parâmetros para a função repr_matriz ( );

    onde serão imprimidos por printf(); esta alternativa é bem válida principalmente quando já temos uma função

    com vários parâmetros e precisamos passar outros valores, vindo tornar o código mais complicado.

    Veja abaixo uma imagem do programa em execução:

    http://2.bp.blogspot.com/-ZhytnC43g3c/VTKdskEj3JI/AAAAAAAACNc/oHlrQhRLc5s/s1600/glob.PNG

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/04/variaveis-globais.html

  3. Quando precisamos agrupar elementos de um mesmo tipo
    numa variável, recorremos aos vetores, que em C são
    matrizes unidimensionais.Um vetor também é uma estrutura
    de dados, e é muito utilizado no C, devido sua
    facilidade de uso e eficiência quando usado adequadamente.
    Quando declaramos um vetor como no exemplo abaixo:
    tipo nome_da_variavel_vetor [ total de elementos ];
    O C reserva a quantidade de memória suficiente para
    armazenar os elementos em total de elementos.
    Como nosso vetor é de tamanho 15, bastou multiplicar
    4 x 15, pra saber que nosso vetor ocupa 60 bytes de memória de maneira contígua.
    No C a contagem começa sempre em zero, sendo assim, os
    dados serão armazenados em posições de 0 14, e que podem
    ser acessados independemente um dos outros.
    Más no programa proposto aqui, nosso vetor só pode ser
    preenchido dentro de limitações que coloquei, para
    mostrar na prática aos iniciante como proceder em
    situações em que sejam exigidas estas limitações.
    O programa recusa números abaixo de 5 e números acima de
    15, recusa também caracteres e números que não sejam inteiros.
    Observe as duas funções que criei para agir auxiliando a
    entrada de dados barrando estas condições.

    Veja abaixo imagens do programa em execução:

    http://2.bp.blogspot.com/-6x3i6PKx464/VTJb8SmQL0I/AAAAAAAACMc/yu-PphV1zrI/s1600/vtrv.PNG

    http://4.bp.blogspot.com/-Zsa2Ttte98c/VTJb9JEYr8I/AAAAAAAACMs/Lrk6YMRqTCs/s1600/vts.PNG

    http://3.bp.blogspot.com/-iJzK-XLFTXc/VTJb8UMf4zI/AAAAAAAACMg/YF72eCTwxAM/s1600/vtst.PNG

    http://1.bp.blogspot.com/-CILlh37ujKM/VTJb99prUSI/AAAAAAAACM0/Wo4UpyZheQo/s1600/vttox.PNG

    http://4.bp.blogspot.com/-nY5kOQnQ5VU/VTJb9lNAQII/AAAAAAAACMw/dhT0nKSiNy0/s1600/vttu.PNG

    http://3.bp.blogspot.com/-xF4Ga9pJ9NY/VTJb_jiWGeI/AAAAAAAACNI/eXaIGWvYx0s/s1600/vttz.PNG

    http://2.bp.blogspot.com/-6nRTGh8fmvQ/VTJb_EXkQ5I/AAAAAAAACNE/PBQ8uVmQKmI/s1600/vtty.PNG

    Veja abaixo o código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/04/vetor-sem-repeticoes.html

  4. Entendendo claramente o que é variável, que não passa de uma parte de memória onde se armazena valores de um determinado tipo,
    podemos dizer que ponteiro também é uma variável que carrega um endereço de uma posição de outra variável.
    Quando uma variável possui o endereço de outra, dizemos em C que a variável está apontando para outra.
    Para declarar um ponteiro escolhemos primeiro o tipo, adequado permitido e em seguida damos um nome precedendo de *.
    Ex: tipo *nome_da_variavel;
    Vale lembrar que podemos criar ponteiros para qualquer tipo aceito no C, e que são usados só dois operadores especiais, que são o * e o &.
    O operador que devolve o endereço de memória é o & que é considerado um operador unário, isto é, trabalha sobre uma variável para modificar, ou manter um determinado valor.
    A matriz de ponteiro static char *Mat_Mesg [ ] = {}; com a palavra reservada static declarada local, utiliza a passagem de parâmetros,

    observe o uso do apontador e veja que uma cópia fiel
    é passada para a função Sub_Titulos ( int x, char *Mat_Mesg [ ] );
    De onde vem as chamadas das mensagens de interação com o usuário do programa.
    Em outras funções que também receberam parâmetros forcei o uso de ponteiros, onde foram obrigatoriamente

    usados para um bom desempenho do programa.
    A função Sorteia_Mega_Sena( int *A ); é a mais importante, é nela onde são gerados os números aleatórios dentro de uma faixa estreita, entre 1 e 60, fiquei muitas horas empenhados nesta função porque os valores se repetiam, não foi fácil fazer isto que parece ser tão simples.
    A lógica pra resolver isto foi trabalhar com estas repetições, anulando a sequência e gerando outra, isto é feito automaticamente pelo programa, e duvido que alguém perceba que houve repetições, porque tudo acontece muito rápido.
    Fica bem claro que é exigido um bom conhecimento de ponteiros e alocação dinâmica para entender este código,

    portanto não é indicado a quem está iniciando agora.

    Veja abaixo imagens do programa em execução:

    http://3.bp.blogspot.com/-Z7isn1X9Lz4/VRbRSp3_fMI/AAAAAAAACKc/SWJVBhIoDdQ/s1600/me_g.PNG

    http://3.bp.blogspot.com/-fQGwT6mN3rs/VRbRTuzuB3I/AAAAAAAACKo/LM2epW12mVo/s1600/meg.PNG

    http://3.bp.blogspot.com/-hegvJGS9K-Y/VRbRTaGCEzI/AAAAAAAACKk/3dkyLjc3ius/s1600/megs.PNG

    http://3.bp.blogspot.com/-09QPg2ecJ9A/VRbRUnc4hKI/AAAAAAAACK0/5lcwKx_NvKk/s1600/megsn.PNG

    http://3.bp.blogspot.com/-EesfgC5Nonc/VRbRV6GsQGI/AAAAAAAACLA/YCmxIzZJhoU/s1600/megso.PNG

    http://1.bp.blogspot.com/-mzW8VCXK_ww/VRbRVga3P5I/AAAAAAAACK8/0RoKuWE0yiU/s1600/megsp.PNG

    http://3.bp.blogspot.com/-vkZVAL-i394/VRbRWecWS7I/AAAAAAAACLM/vTc8FH1KwpQ/s1600/sen.PNG

    http://3.bp.blogspot.com/-hGAIlbB_Fm8/VRbRZS8GPzI/AAAAAAAACLY/KRydd30bgTM/s1600/sen_me.PNG

    http://2.bp.blogspot.com/-fxJjjmJQEK8/VRbRY_39SbI/AAAAAAAACLU/Sw4Li2wS_Lw/s1600/sen_meg.PNG

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/03/programa-mega-sena_28.html








  5. Assim como o comando goto, o comando return deve ser limitado, evitando complicações no programa,

    ou até mesmo funcionamento duvidoso, isto quando um programa possui funções mais complicadas.

    neste código limitei o comando return em um só na função
    int Comp_Caractere ( int a, int b );
    O comando return provoca um interrompimento imediato da função executada

    retornando um valor para a função onde foi chamado e prosseguindo com a execução.
    O programa está ápto a comparar dois vetores de caracteres dinâmicos que são preenchidos

    por entradas de dados com scanf(); desde o seu tamanho até as posições de cada um.

    Veja abaixo imagens do programa em execução:

    http://1.bp.blogspot.com/-8qdT-yZYPMM/VQDHeBLzb-I/AAAAAAAACHs/OmDQvnMU4No/s1600/carcp.PNG

    http://1.bp.blogspot.com/-F3JbJp8OsRk/VQDHeW-h13I/AAAAAAAACH0/ocNW0q-ppio/s1600/copcr.PNG

    http://1.bp.blogspot.com/-GaCx-3wQgPE/VQDHeEbkLFI/AAAAAAAACHw/YU-a_ZyVyFk/s1600/copcy.PNG

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/03/comparando-dois-vetores-de-caracteres.html

  6. O C nos dá amplas possibilidades de criar e utilizar matrizes com mais de duas dimensões.

    Sinceramente não sei o limite exato das dimensões suportadas, más de uma coisa sei,

    matrizes de três ou mais dimensões não são recomendadas em uso estático

    devido à grande quantidade de memória que elas consomem.
    Para calcular o consumo de memória de sua matriz, basta multiplicar o número
    de linhas por colunas vêzes o total de bytes do tipo.
    Aqui no meu computador um inteiro vale 4 bytes, como a matriz apresentada é tridimensional,

    com tamanhos de 4, o consumo total ficou em 256 bytes.
    Cabe ao programador em C optar por alocar dinamicamente matrizes multidimensionais acima

    de duas dimensões, isto traz melhores desempenho para seus programas em C.
    O exemplo aqui proposto imprime uma matriz tridimensional, e ainda permite uma
    precisa pesquisa pelos elementos contidos.

    Veja abaixo imagens do programa em execução:

    http://3.bp.blogspot.com/-W6lKHNDLaiU/VO5lSELigaI/AAAAAAAACDA/p9QbyxZB8qM/s1600/matr.PNG

    http://1.bp.blogspot.com/-onvULicKJdE/VO5lUUpcS7I/AAAAAAAACDM/QYVKY9LsrbA/s1600/matt.PNG

    http://3.bp.blogspot.com/-AHfsvRwO5tw/VO5lUbWRQgI/AAAAAAAACDI/jB7xt7TkjIQ/s1600/mattr.PNG

    http://3.bp.blogspot.com/-g0c2_kZzKW0/VO5lXqlganI/AAAAAAAACDY/EaAGEF8WITY/s1600/mattt.PNG

    http://1.bp.blogspot.com/-WTX0kF_1GUc/VO5lmE1EjlI/AAAAAAAACDg/vQdcqhcb6vI/s1600/matttriz.PNG

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/02/matriz-tridimensional-estatica.html

  7. Bons programadores em C tem pleno domínio em ponteiros, e isto é o que diferencia um bom programador

    em linguagem C, porque o C é altamente dependente de ponteiros.
    O C possui um recurso complexo e avançado onde denomina-se ponteiro para função,

    que na realidade consiste em passar uma função como parâmetro para outra.
    Para criar um ponteiro para função espelhe-se no exemplo abaixo:
    int ( *exemplo ) ();Veja que é usado parênteses nos nomes das variáveis, e é bem parecido

    com a declaração de função que retorna ponteiro, só precisaria retirar os parênteses.
    Sabemos que função não é variável, más o C reserva uma posição plena na memória onde permite

    o recebimento de um ponteiro, sendo assim um uso justo do ponteiro chamando uma função específica.

    Poderia falar mais sobre o assunto más deixaria o tópico enfadonho e complicado,

    por isso nada melhor que entrarmos num ótimo exemplo para mostrar como a coisa funciona.

    Veja abaixo imagens do programa em execução:

    http://2.bp.blogspot.com/-tOIhgx331FU/VPuKY_Atd2I/AAAAAAAACGs/dFGEgI2VUhY/s1600/funcp.PNG

    http://4.bp.blogspot.com/-Xd4tHpCoOxU/VPuKY-uRZ3I/AAAAAAAACGw/lS0wzjPb5fw/s1600/funcpt.PNG

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/03/ponteiro-para-funcao.html

  8. Assim como o comando goto, o comando return deve ser limitado, evitando complicações no programa,

    ou até mesmo funcionamento duvidoso, isto quando um programa possui funções mais complicadas.

    Neste código limitei o comando return em um só na função int Comp_Num ( int a, int b );
    O comando return provoca um interrompimento imediato da função executada retornando um

    valor para a função onde foi chamado e prosseguindo com a execução.
    O programa está ápto a comparar dois vetores dinâmicos que são preenchidos por

    entradas de dados com scanf(); desde o seu tamanho até as posições de cada um.

    Veja abaixo imagens do programa em execução:

    http://3.bp.blogspot.com/-RjpigS7aLZ4/VP4Q8jlrmAI/AAAAAAAACHM/VTnjWA7roOs/s1600/cmpv.PNG

    http://3.bp.blogspot.com/-PxZTRlCi-sM/VP4Q8YZm8xI/AAAAAAAACHI/87BndXDqoNI/s1600/cmpvt.PNG

    http://2.bp.blogspot.com/-4mk3KwFo_v0/VP4Q8sULPSI/AAAAAAAACHQ/0XmaJ94YGj4/s1600/cmpvtrs.PNG

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/03/comparando-dois-vetores.html

  9. Da mesma forma que lemos dados formatados com scanf(); também é possível fazer o mesmo
    com fscanf(); fscanf( );É para o arquivo o que scanf é para o console,
    esta função também pertence ao arquivo de cabeçalho stdio.h.
    A sintaxe da função fscanf é:
    int fscanf ( FILE *arq, variável );
    Bons programadores evitam o uso desta função em seus programas, alegando que por elas

    trabalharem com dados ASCII e não binários ocasiona perda de desempenho e de apresentação

    de caracteres indesejados na saída em alguns casos, coisa que eu ainda não contemplei.
    Neste código mostro como usar fscanf();para lê uma matriz quadrada de inteiros
    dimensionada em 10 x 10, ainda no código coloquei um bloco permitindo uma eficiente

    pesquisa nos elementos inteiros do arquivo.

    Salve os números no bloco comentado como matriz.txt, e coloque do lado do executável para testes.

    Veja abaixo imagens do programa em execução:

    http://3.bp.blogspot.com/-d5rn602ZEAc/VPM-n13QgWI/AAAAAAAACFU/Cq9EhsX8JUM/s1600/arqatp.PNG

    http://1.bp.blogspot.com/-tx8NFbs3fjk/VPM-niHPhPI/AAAAAAAACFQ/d51yLJiRhxE/s1600/arqmat.PNG

    http://1.bp.blogspot.com/-k0E0OlZSUbw/VPM-oKPs1TI/AAAAAAAACFY/xM1j83GfBaU/s1600/arqmatp.PNG

    http://4.bp.blogspot.com/-LixBhohBj_0/VPM-oYQWpEI/AAAAAAAACFc/gA63wH4CATU/s1600/arqmtp.PNG

    http://3.bp.blogspot.com/-ZMnnVrPcvCQ/VPM-vMEP14I/AAAAAAAACFw/30ykk4mbC-4/s1600/armatx.PNG

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/03/arquivo-pesquisa-em-matriz-quadrada.html

  10. É válido lembrar que ponteiro é uma variável que contém um endereço de memória.
    Também quero lembrar que funções em algumas vêzes podem retornar um valor para a função main();

    fica bem claro que o valor retornado é do tipo declarado no protótipo da função.
    Programas mais complexos em C algumas vêzes nessecitam de funções
    que retornam um ponteiro, isto é, um endereço de memória.
    Criar uma função que retorna um ponteiro em C é muito fácil, basta colocar um asterisco antes do nome da função.
    No exemplo mostrado aqui, temos a função *primo_Nprimo(); que como você ver

    retorna um ponteiro que será usado para uma alteração
    numa posição específica do vetor original. Esta função é capaz de mostrar

    números primos e não primos contidos no vetor.

    Veja abaixo uma imagem do programa em execução:

    http://4.bp.blogspot.com/-hQKYj0Tsp28/VPpAivZ5KlI/AAAAAAAACGY/K9rxEf5DPAU/s1600/primNprim.PNG

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/03/retornando-ponteiro.html

  11. Matriz pode ser definida como uma variável capaz de guardar diversos valores
    porém do mesmo tipo.Matrizes estáticas são sem dúvidas mais fácil de usar e de entender,

    más se você não especificar o tamanho correto, provavelmente haverá
    desperdício de memória, e isto num computador de pouca memória pode ser um problema.

    Quando não sabemos o tamanho de que precisamos recorremos a uma alocação dinâmica,

    que recebe memória do computador em tempo de execução, ao contrário de variáveis globais

    que são alocadas na hora da compilação, ou locais que usam a pilha.
    Quando alocamos memória dinamicamente usando as funções do C, ela é obtida de áreas de memórias

    livres que se encontra na armazenagem real do computador, e a pilha.
    Neste código aloquei memória usando a função malloc(); e liberei com free();
    ambas da biblioteca stdlib.h, más o C possui outras funções de alocação dinâmica,

    porém para a demonstração deste exemplo não se fez necessárias.

    Veja abaixo imagens do programa em execução:

    http://1.bp.blogspot.com/-48qAqCQQdfk/VO-ojAnYyAI/AAAAAAAACD4/VePXPlhJQWQ/s1600/matdin.PNG

    http://4.bp.blogspot.com/-XNjDD0vZ1XY/VO-oistTDXI/AAAAAAAACD0/-5aDtvlbkDo/s1600/mattdin.PNG

    http://3.bp.blogspot.com/-FvPiUoO2RwE/VO-ojfY9wlI/AAAAAAAACEA/4T_UKfleOUI/s1600/mattdina.PNG

    http://1.bp.blogspot.com/-ek7w8yM6H4M/VO-olGOrVSI/AAAAAAAACEM/lwYnG-2Ac_k/s1600/mattdna.PNG

    http://2.bp.blogspot.com/-c78zB6rjKT0/VO-olfVWMfI/AAAAAAAACEQ/Pb2CtcgLPEU/s1600/mttdna.PNG

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/02/matriz-tridimensional-dinamica.html

  12. Há sem dúvidas grande relação entre matrizes e ponteiros em C,
    e o interessante é que o endereço da primeira posição de uma matriz é um ponteiro.
    Sabemos que um ponteiro é uma variável que guarda um endereço de memória, e
    quase não conseguimos programar em C sem usar ponteiros,
    a não ser que os programas sejam simples demais.
    Na realidade um ponteiro pode ser indexado como se fosse uma matriz,
    porque o C trata matrizes como ponteiros apontando para o primeiro elemento da matriz.
    Neste código mostro um excelente exemplo de como indexar ponteiros como se fosse matriz.

    Veja abaixo imagens do programa em execução:

    http://4.bp.blogspot.com/-HGIi5_Zl-MY/VOoCKK0uHuI/AAAAAAAACCo/-fGXcNy3t1o/s1600/indp.PNG

    http://4.bp.blogspot.com/-z5JST_c_L4M/VOoCKFTpOCI/AAAAAAAACCs/itNRQqF9EqM/s1600/indpt.PNG

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/02/indexando-ponteiros.html

  13. Informando ao compilador uma dimensão, a da direita para ser mais preciso,
    numa matriz não-dimensionada, a dimensão da esquerda pode ficar vazia
    ficando por conta do compilador indexar a matriz de forma correta.
    É perfeitamente possível alterar os valores da dimensão da direita
    sem que prejudique as dimensões da matriz.
    Neste exemplo trago um excelente exemplo de manipulação de matriz
    não dimensionada, o programa imprime a matriz e em seguida pede
    que se escolha uma linha e uma coluna, dentro de restrições que foram
    aplicadas por mim mesmo.Feito tudo certo, o programa pede que se escolha um

    número para introduzir na posição escolhida em linhas x colunas, más se engana

    o usuário que tentar repetir o mesmo número que se encontra na posição, o programa não aceita.

    Veja abaixo imagens do programa em execução:

    http://3.bp.blogspot.com/-htWdqlTzlME/VOjtm3zRDRI/AAAAAAAACCI/DxKyiypCltk/s1600/matns.PNG

    http://4.bp.blogspot.com/-W64N57e27C4/VOjtleTn4mI/AAAAAAAACB0/YnMjocc8qm8/s1600/mater.PNG

    http://1.bp.blogspot.com/-ONtUKSSidpQ/VOjtluKN4cI/AAAAAAAACB8/Qs9_lxErir4/s1600/matn.PNG

    http://2.bp.blogspot.com/--GOPpsilRas/VOjtl56yp3I/AAAAAAAACCA/YX6C4O1ikMA/s1600/matnda.PNG

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/02/matriz-não-dimensionada_21.html

  14. Podemos declarar um ponteiro como vetor ou matriz multidimensional
    E se quizermos armazenar ou trabalhar com endereços de memória
    recorremos aos ponteiros.
    O símbolo * é uma referência ao compilador para que ele armazene numa variável um endereço de memória.
    Este programa foi criado para a demonstração do funcionamento de uma matriz de ponteiro.
    O usuário pode escolher uma das linhas da matriz respeitando as limitações pois o

    programa está preparado para rejeitar que se escolha por exemplo um número

    de linha acima do limite ou inferior a zero,

    e o que chama mais a atenção é na escolha de uma posição dentro
    da linha escolhida, o programa avisa se o usuáruio escolher um espaço
    dentro da linha ou se for escolhido a última posição que é o '\0'.

    http://3.bp.blogspot.com/-e3dim18_MKw/VOOpAAxYZyI/AAAAAAAACA8/ufskRWbcDno/s1600/mate.PNG

    http://2.bp.blogspot.com/-MhLWTnMRFi4/VOOpKJGJg7I/AAAAAAAACBE/IKLO0af1jzk/s1600/maptr.PNG

    http://3.bp.blogspot.com/-S_zcduBntFc/VOOpQKDPRKI/AAAAAAAACBU/ymBGLGPQitE/s1600/matpt.PNG

    http://4.bp.blogspot.com/-MqV3kSBcL8Q/VOOpNtenvWI/AAAAAAAACBM/6MsjI6z8YEs/s1600/matptri.PNG

    http://1.bp.blogspot.com/-evq9_l1wZBk/VOOpQeevQ3I/AAAAAAAACBY/AbypKPFjEQc/s1600/matptrio.PNG

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/02/matriz-de-ponteiro.html

  15. Matriz transposta é uma matriz invertida, as linhas da matriz original,

    passarão a ser as colunas da matriz transposta, e as colunas da matriz original

    passarão a ser as linhas da matriz transposta.

    Se você já domina matrizes não terá dificuldades em entender o que é matriz transposta.

    Na verdade, aproveitei o último código que postei e fiz poucas alterações

    para chegar nestes ótimos resutados.

    Veja abaixo imagens do programa em execução:

    http://4.bp.blogspot.com/-5UYzdgaMnS0/VN0hmA4lLEI/AAAAAAAACAg/4Xzw-r6X8rg/s1600/mattr.PNG

    http://2.bp.blogspot.com/-kcJ7T9dekTI/VN0hmBM5uII/AAAAAAAACAk/H7AxTQ2-8mo/s1600/mattrs.PNG

    http://3.bp.blogspot.com/-bHSJbpBP21U/VN0hmRl8cGI/AAAAAAAACAo/bCp_-5kg7LA/s1600/mattrsta.PNG

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/02/matriz-transposta.html

  16. Se você tentou gerar uma sequência de números inteiros aleatórios e se decepcionou

    por causa das repetições que surgiram, seu problema acaba com este exemplo que trago agora.
    Três pequenos blocos de códigos foram suficientes pra fazer nosso programa,
    onde no primeiro bloco geramos e adicionamos os números nas linhas e colunas de uma matriz,

    já no segundo bloco de código, com os números já gerados, usamos a famosa função rand();

    que atua como embaralhador dos números gerados no primeiro bloco.
    Já no terceiro, que é o último bloco, imprimimos nossa matriz, onde previamente,

    colhemos o total de linhas e de colunas por uma entrada de dados com scanf();

    e finalmente o total de elementos gerados são contados e o programa encerra sua execução agradecendo o uso.

    Veja abaixo imagens do programa em execução:

    grel.PNGgrelale.PNGgrlale.PNG

     

     

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/02/numeros-aleatorios-em-matriz-sem.html

     

  17. Em eletrônica Os filtros passa-faixa ou passa-banda,filtros passa-baixas e passa-altas
    são largamente usados em circuitos onde determinadas frequências devem ser rejeitadas,
    passando apenas só mesmo a frequência ideal. Fórmulas matemáticas eram usadas para se obter
    um cálculo exato das frequências exigidas, onde envolvia a bitola do fio esmaltado, o número
    de espiras num bastão de ferrite, onde o tamanho e o diâmetro também fazia parte dos cálculos.
    Saudades deste tempo dos transmissores e receptores didáticos que agente montava e via funcionar.
    O código aqui proposto atua como um filtro impedindo que caracteres que não seja "f" ou "m"
    possam passar, existe várias formas de fazer isto, e este é um método fácil e seguro.

    Veja abaixo imagens do programa em execução:

    http://2.bp.blogspot.com/-ysRZwbkiyPE/VNX1xWzwp2I/AAAAAAAAB_E/2bdtmnVZw9Q/s1600/fitc.PNG

    http://2.bp.blogspot.com/-UkjPTpJp4_A/VNX1wIKYjhI/AAAAAAAAB-4/bXAoJYBuPPc/s1600/fitcr.PNG

    http://1.bp.blogspot.com/-tngZWkev3jA/VNX1w-lc22I/AAAAAAAAB_A/5ujKSwIgWk8/s1600/fitcrt.PNG

    http://1.bp.blogspot.com/-lGkwdi__5yc/VNX1x1ajtuI/AAAAAAAAB_M/rx6jxTvgOPg/s1600/fitcrtr.PNG

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/02/em-eletronica-os-filtros-passa-faixa-ou.html

  18. Na biblioteca stdilb.h que é uma das bibliotecas padrão do C, encontramos a função
    rand(); para aplicações onde um valor randômico é exigido, e isto é um procedimento
    muito normal em programação.
    Esta função geralmente trabalha com valores pré-definidos limitados por uma constante
    que se encontra também na mesma biblioteca.
    Más o que ocorreu, foi que os valores declarados nas matrizes de string sempre se repetiam,
    eram sempre iguais.Notei então depois de algumas pesquisa que a função rand(); assume um valor
    real, forçando sempre a mesma sequência serem apresentadas.
    Com muita paciência recorri a função srand(); que trabalha dando um ponta-pé na função rand();
    injetando um determinado valor diferente a cada execução do programa.
    Este valor foi obtido usando o comando time da biblioteca time.h.
    Para usar a função srand(); a seguinte declaração se fez necessária: srand ( time ( NULL ) );
    Este programa forma nomes com sobrenomes, em um giro automático comandado por um do while,
    com os tempos determinados pela função Sleep();
    Quando o nome "Sandro" é encontrado, a função strcmp(); barra a execução e imprime a mensagem
    "fim do programa!!".
    Neste código passei os valores das matrizes de string como parâmetros na função
    Nome_sobrenome ( char *No_me, char *Sobre_Nomes ); e esta por sua vez retorna os endereços
    para a função main();

    Veja abaixo imagens do programa em execução:

    http://2.bp.blogspot.com/-dD9vMic1uEw/VNOZBX7SElI/AAAAAAAAB-I/M9qG8tPuxIA/s1600/aaa.PNG

    http://3.bp.blogspot.com/-AGPMUJSCU74/VNOZCG_OPaI/AAAAAAAAB-Q/GRXt9CZr7x8/s1600/sran.PNG

    http://1.bp.blogspot.com/-JSzstVWA5sg/VNOZCHsEVTI/AAAAAAAAB-U/tlMGhSRq3Gg/s1600/srand.PNG

    http://2.bp.blogspot.com/-nVBnV81V7DE/VNOZCgssNHI/AAAAAAAAB-c/0RQj7M9H8H8/s1600/srn.PNG

    http://4.bp.blogspot.com/-bhwBvkaT8KU/VNOZDFDuWQI/AAAAAAAAB-k/lK9WtrZtW6A/s1600/srnd.PNG

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/02/funcao-rand-e-srand.html

  19. Declarei uma variável ponteiro para ponteiro do tipo char de nome char **p_t;
    como membro da estrutura "ssss".
    Também declarei na função principal duas estruturas xxxx e yyyy.
    Colhemos do teclado uma frase e guardamos na variável char *str;
    Note que scanf(); trabalha com a entrada formatada impedindo que passe acima de 11 caracteres
    contando com o espaço.
    O membro ponteiro para ponteiro **p_t; de ssss está recebendo o endereço de memória
    da vaviável que aponta para ela.
    Quando copiamos a estrutura xxxx em yyyy, o valor do membro ponteiro para ponteiro
    em xxxx também é copiado para o membro de yyyy.
    Sendo assim, os membros apontarão para o mesmo endereço de memória, e para a mesma variável.
    A prova disto é que se alterarmos o valor que aponta pelo membro de uma das duas estruturas.
    elas passarão a receber o mesmo valor, o que foi alterado.

    Veja abaixo imagens do programa em execução:

    http://1.bp.blogspot.com/-mgtjwTrRwZw/VM0GzJ44b5I/AAAAAAAAB9Y/F1NcLQc0QjA/s1600/stalt.PNG

    http://4.bp.blogspot.com/-ktElbnWYjZA/VM0GzqDPPGI/AAAAAAAAB9g/b7vNwZYZgVA/s1600/staltv.PNG

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/01/struct-atribuindo-e-alterando-valor.html

  20. Em linguagem C somos obrigados a usar apontadores para passagem
    de parâmetros por valor.Neste exemplo,
    Os valores que estão guardados no endereço da estrutura
    são copiados e passados por parâmetros para função.
    A função Vetor_struct ( Imp_Par *a ); recebe as cópias dos valores
    que foram declarados no vetor de struct e imprime com printf();
    Já a função Epar_Impar ( Imp_Par *a ); está encarregada de separar
    os números ímpares dos pares, porque também recebe uma cópia fiel
    dos mesmos valores do vetor de struct.

    Veja abaixo imagens do programa em execução:

    http://2.bp.blogspot.com/-mmqyA8xILI8/VMv7KjhIU-I/AAAAAAAAB9A/8gzaiNnz3o0/s1600/strp.PNG

    http://3.bp.blogspot.com/-Wm_slVjFKOQ/VMv7KlXjd-I/AAAAAAAAB9E/GIqp0ERzc2I/s1600/strps.PNG

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/01/struct-copiando-e-passando-valores-de.html

  21. À prática de se multiplicar um número por todos os seus
    antecessores, denomina-se "fatorial".
    Definindo o fatorial de 3 representa-se por 3! e lê-se 3 fatorial.

    Veja abaixo o fatorial de alguns números:

    3! = 3 * 2 * 1 = 6
    4! = 4 * 3 * 2 * 1 = 24
    5! = 5 * 4 * 3 * 2 * 1 = 120
    6! = 6 * 5 * 4 * 3 * 2 * 1 = 720
    7! = 7 * 6 * 5 * 4 * 3 * 2 * 1 = 5040
    8! = 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 40 320
    9! = 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 362 880
    10! = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 3 628 800

    Más estamos em linguagem c, que é nossa paixão, portanto já
    aviso que o propósito deste código e mostrar passagem por cópia de valor da estrutura, na verdade estamos passando a struct inteira
    como parâmetros para função.

    Veja abaixo algumas imagens do programa em execução:

    http://1.bp.blogspot.com/-tqzLCshWqe8/VM1pYpMpe6I/AAAAAAAAB90/reEWFUMSWqA/s1600/strfat.PNG

    http://3.bp.blogspot.com/-5WocxSgJfPU/VM1pZgdFikI/AAAAAAAAB94/QmX3tiDalRU/s1600/strfa.PNG

    Veja abaixo o link do código do programa:

    http://codigosfontes-ccplus-plus.blogspot.com.br/2015/01/fatorial-em-struct.html

×
×
  • Criar Novo...