Você está aqui: C ::: Dicas & Truques ::: Data e Hora |
Como usar a função mktime() para construir datas e horas em CQuantidade de visualizações: 4180 vezes |
A função mktime(), do header <time.h> é usada quando queremos construir novas datas e horas em C. Esta função recebe um ponteiro para uma estrutura tm e retorna um valor do tipo time_t (ou -1 em caso de erro). Veja sua assinatura:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- time_t mktime(struct tm *timeptr); A função mktime() interpreta o conteúdo da estrutura tm apontada pelo parâmetro timeptr como uma hora de calendário expressa na hora local. Esta hora de calendário é usada para ajustar corretamente os valores dos membros da estrutura tm e retorná-la como um objeto do tipo time_t. Os valores originais dos membros tm_wday e tm_yday do parâmetro timeptr são ignorados, e as faixas de valores para o restante de seus membros não são mais restritos ao seus valores normais (como a restrição de valores de 1 a 31 para o membro tm_mday). O objeto apontado por timeptr é modificado, ajustando tm_wday e tm_yday para seus valores apropriados e modificando os demais membros, se necessário, para acomodar as faixas normais de valores. Veja um exemplo de como podemos contruir a data 23/04/2001: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <time.h> int main(int argc, char *argv[]){ time_t data_hora_segundos; // guarda os segundos deste 01/01/1970 struct tm *timeinfo; // declara uma estrutura tm time(&data_hora_segundos); // preenche a variável data_hora_segundos // preenche a estrutura timeinfo timeinfo = localtime(&data_hora_segundos); // data que queremos construir int dia = 23; int mes = 4; int ano = 2001; // vamos modificar a estrutura timeinfo timeinfo->tm_year = ano - 1900; timeinfo->tm_mon = mes - 1; timeinfo->tm_mday = dia; // vamos atualizar a estrutura timeinfo mktime(timeinfo); // e agora exibir o resultado printf("Data construída: %s\n\n", asctime(timeinfo)); system("PAUSE"); return 0; } Ao executar este código teremos uma saída parecida com: Data construída: Mon Apr 23 09:40:59 2001 |
Link para compartilhar na Internet ou com seus amigos: |
C ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como testar se uma matriz é uma matriz identidade usando CQuantidade de visualizações: 1691 vezes |
Seja M uma matriz quadrada de ordem n. A matriz M é chamada de Matriz Identidade de ordem n (indicada por In) quando os elementos da diagonal principal são todos iguais a 1 e os elementos restantes são iguais a zero. Para melhor entendimento, veja a imagem de uma matriz identidade de ordem 3, ou seja, três linhas e três colunas: Veja um código C completo no qual nós declaramos uma matriz quadrada de ordem 3, pedimos para o usuário informar os valores de seus elementos e no final informamos se a matriz é uma matriz identidade ou não: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <locale.h> int main(int argc, char *argv[]){ setlocale(LC_ALL,""); // para acentos do português int n = 3; // ordem da matriz quadrada int matriz[n][n]; // matriz quadrada int i, j, linha, coluna; int identidade = 1; // vamos pedir para o usuário informar os elementos da matriz for (i = 0; i < n; i++){ for (j = 0; j < n; j++) { printf("Elemento na linha %d e coluna %d: ", (i + 1), (j + 1)); scanf("%d", &matriz[i][j]); } } // agora verificamos se a matriz é uma matriz identidade for(linha = 0; linha < n; linha++){ for(coluna = 0; coluna < n; coluna++){ if(matriz[linha][coluna] != 1 && matriz[coluna][linha] != 0){ identidade = 0; break; } } } // agora mostramos a matriz lida printf("\n"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf("%d ", matriz[i][j]); } printf("\n"); } if (identidade){ printf("\nA matriz informada é uma matriz identidade."); } else{ printf("\nA matriz informada não é uma matriz identidade."); } printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: Elemento na linha 1 e coluna 1: 1 Elemento na linha 1 e coluna 2: 0 Elemento na linha 1 e coluna 3: 0 Elemento na linha 2 e coluna 1: 0 Elemento na linha 2 e coluna 2: 1 Elemento na linha 2 e coluna 3: 0 Elemento na linha 3 e coluna 1: 0 Elemento na linha 3 e coluna 2: 0 Elemento na linha 3 e coluna 3: 1 1 0 0 0 1 0 0 0 1 A matriz informada é uma matriz identidade. |
C ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
Como usar um ponteiro para acessar e alterar o valor de mais de uma variável do tipo int usando a linguagem CQuantidade de visualizações: 9986 vezes |
Esta dica mostra a você como podemos usar apenas um ponteiro para acessar e manipular os valores de três variáveis do tipo int. Veja o uso do símbolo "&" para acessar o endereço de uma variável e "*" (operador de indireção) para acessar o valor da variável apontada pelo ponteiro. Observe o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // declara e inicializa três variáveis int a = 23; int b = 40; int c = 3; // exibe seus valores printf("a = %d, b = %d, c = %d\n\n", a, b, c); // declara um ponteiro para uma variável do tipo int int *p; // aponta para a variável "a" e altera seu valor p = &a; *p = 12; // aponta para a variável "b" e altera seu valor p = &b; *p = 695; // aponta para a variável "c" e altera seu valor p = &c; *p = 90; // exibe os novos valores das variáveis printf("a = %d, b = %d, c = %d\n\n", a, b, c); system("PAUSE"); return 0; } Ao executar este código nós teremos o seguinte resultado: a = 23, b = 40, c = 3 a = 12, b = 695, c = 90 Pressione qualquer tecla para continuar... |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Operadores de Manipulação de Bits (Bitwise Operators) |
Exercícios Resolvidos de C - Como converter de decimal para binário usando os operadores de bits em CQuantidade de visualizações: 703 vezes |
Pergunta/Tarefa: Escreva um programa C para pede para o usuário informar um número decimal e faça a conversão para binário usando os operadores de bits. Sua saída deverá ser parecida com: Informe um número decimal: 9 O número binário é: 00000000000000000000000000001001 Veja a resolução completa para o exercício em C, comentada linha a linha: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <locale.h> // vamos definir o tamanho do vetor para guardar // os dígitos do número binário #define TAM_INT sizeof(int) * 8 int main(int argc, char *argv[]){ // variáveis para ajudar a resolver o problema int decimal, indice, i; // vetor para guardar o número binário int binario[TAM_INT]; setlocale(LC_ALL,""); // para acentos do português // vamos pedir para o usuário informar um decimal inteiro printf("Informe um número decimal: "); scanf("%d", &decimal); // ajustamos índice para o último elemento do vetor indice = TAM_INT - 1; // enquanto índice for maior ou igual a 0 while(indice >= 0){ // vamos guardar o bit menos significativo LSB binario[indice] = decimal & 1; // diminuímos o índice indice--; // desloca bits para a direita uma posição decimal = decimal >> 1; } // agora vamos exibir o número binário printf("O número binário é: "); for(i = 0; i < TAM_INT; i++){ printf("%d", binario[i]); } printf("\n\n"); system("PAUSE"); return 0; } |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
Android Java - Como usar o método startActivity() da classe Activity ou AppCompatActivity do Android para mudar de telas |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |