Você está aqui: C ::: Dicas & Truques ::: Struct (Estruturas, Registros)

Como criar uma instância de uma estrutura (struct) e acessar e manipular seus membros

Quantidade de visualizações: 11777 vezes
Como visto anteriormente, uma estrutura (struct) permite o agrupamento de variáveis de diferentes tipos e que podem ser referenciadas por um único nome. Além disso, a declaração de uma struct nos permite definir as características principais que todos os itens criados a partir desta estrutura terão.

Considere a seguinte struct:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// define a estrutura Livro
struct Livro{
  char *titulo;
  int codigo;
  int paginas;
};

A partir daqui podemos criar quantas cópias quisermos desta estrutura. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// cria duas instâncias de Livro
Livro a, b;

Cada atributo (ou propriedade) de uma determinada cópia da estrutura Livro pode ser acessada precedendo-se o nome da propriedade desejada com um ponto. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// preenche os dados do primeiro Livro
a.titulo = "Programando em Java";
a.codigo = 342;
a.paginas = 230;

Veja 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>

// define a estrutura Livro
struct Livro{
  char *titulo;
  int codigo;
  int paginas;
};

int main(int argc, char *argv[]){
  // cria duas instâncias de Livro
  Livro a, b;

  // preenche os dados do primeiro Livro
  a.titulo = "Programando em Java";
  a.codigo = 342;
  a.paginas = 230;

  // preenche os dados do segundo Livro
  b.titulo = "JavaScript - O Guia Prático";
  b.codigo = 675;
  b.paginas = 930;

  // exibe os dados do primeiro livro
  printf("Primeiro Livro\nTitulo: %s\nCodigo: %d\nPaginas: %d\n",
    a.titulo, a.codigo, a.paginas);

  // exibe os dados do segundo livro
  printf("\nSegundo Livro\nTitulo: %s\nCodigo: %d\nPaginas: %d\n",
    b.titulo, b.codigo, b.paginas);

  puts("\n\n");
  system("PAUSE");
  return 0;
}


Link para compartilhar na Internet ou com seus amigos:

C ::: Dicas & Truques ::: Matemática e Estatística

Como elevar uma base a um determinado expoente usando a função pow() da linguagem C

Quantidade de visualizações: 2593 vezes
Em algumas situações nós precisamos efetuar cálculos de potenciação em C, ou seja, elevar um número (uma base) a um determinado expoente e obter sua potência. Veja a figura a seguir:



Veja que aqui o valor 5 foi elevado ao cubo, ou seja, ao expoente 3 e obtemos como resultado sua potência: 125.

A linguagem C nos fornece a função pow(), presente no header math.h que recebe como argumentos a base e o expoente e nos retorna a potência (como um valor double). Veja um exemplo de seu uso no código abaixo:

----------------------------------------------------------------------
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[]){
  int base = 4;
  int expoente = 5;
  double potencia = pow(4, 5);
  printf("A base %d elevada ao expoente %d é igual à potência %f\n\n",
	  base, expoente, potencia);
  
  system("PAUSE");  
  return 0;
}

Ao executarmos este código C nós teremos o seguinte resultado:

A base 4 elevada ao expoente 5 é igual à potência 1024.000000

Note que a função pow() da linguagem C retorna um valor double.


C ::: Dicas & Truques ::: Matemática e Estatística

Como calcular juros simples e montante usando C

Quantidade de visualizações: 8357 vezes
O regime de juros será simples quando o percentual de juros incidir apenas sobre o valor principal. Sobre os juros gerados a cada período não incidirão novos juros. Valor Principal ou simplesmente principal é o valor inicial emprestado ou aplicado, antes de somarmos os juros. Transformando em fórmula temos:

J = P . i . n

Onde:

J = juros
P = principal (capital)
i = taxa de juros
n = número de períodos

Imaginemos uma dívida de R$ 2.000,00 que deverá ser paga com juros de 5% a.m. pelo regime de juros simples e o prazo para o pagamento é de 2 meses. O cálculo em C pode ser feito assim:

----------------------------------------------------------------------
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[])
{
  float principal = 2000.00;
  float taxa = 0.08;
  int meses = 2;

  float juros = principal * taxa * meses;

  printf("O total de juros a ser pago é: %f\n\n", juros);

  printf("\n\n");
  system("pause");
  return 0;
}

O montante da dívida pode ser obtido das seguintes formas:

a) Montante = Principal + Juros
b) Montante = Principal + (Principal x Taxa de juros x Número de períodos)

M = P . (1 + (i . n))

Veja o código:

----------------------------------------------------------------------
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[])
{
  float principal = 2000.00;
  float taxa = 0.08;
  int meses = 2;

  float juros = principal * taxa * meses;
  float montante = principal * (1 + (taxa * meses));

  printf("O total de juros a ser pago é: %f\n", juros);
  printf("O montante a ser pago é: %f", montante);

  printf("\n\n");
  system("pause");
  return 0;
}



C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercícios Resolvidos de C - Escreva um programa C para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no array

Quantidade de visualizações: 723 vezes
Pergunta/Tarefa:

Dado o seguinte vetor de inteiros:

// vamos declarar e construir um vetor de 8 inteiros
int valores[] = {0, 3, 0, 5, 7, 4, 0, 9};
Escreva um programa C para mover todos os zeros para o final do vetor, ou seja, para a direita, sem alterar a ordem dos elementos diferentes de zero já presentes no array e sem criar um vetor adicional ou temporário.

Sua saída deverá ser parecida com:

Vetor na ordem original:

0   3   0   5   7   4   0   9   

Vetor com os zeros deslocados para o final:

3   5   7   4   9   0   0   0
Resposta/Solução:

Veja a resolução comentada deste exercício usando C:

----------------------------------------------------------------------
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[]){
  // vamos declarar e construir um vetor de 8 inteiros
  int valores[] = {0, 3, 0, 5, 7, 4, 0, 9};
  int i; // para o controle do laço
  int j; // variável auxiliar
  int temp; // variável temporária
  
  setlocale(LC_ALL,""); // para acentos do português
		
  // vamos mostrar o vetor na ordem original
  printf("Vetor na ordem original:\n");
  for(i = 0; i < 8; i++){
    printf("%d   ", valores[i]);
  }
    
  // vamos inicializar j como 0 para que ele aponte para
  // o primeiro elemento do vetor
  j = 0;
    
  // agora o laço for percorre todos os elementos do vetor,
  // incrementanto a variável i e deixando o j em 0
  for(i = 0; i < 8; i++){
    // encontramos um valor que não é 0
    if(valores[i] != 0){
      // fazemos a troca entre os elementos nos índices
      // i e j
      temp = valores[i];
      valores[i] = valores[j];
      valores[j] = temp;
      // e avançamos o j para o elemento seguinte
      j++;
    }
  }
    
  // agora mostramos o resultado
  printf("\n\nVetor com os zeros deslocados para o final:\n");
  for(i = 0; i < 8; i++){
    printf("%d   ", valores[i]);
  }
    
  printf("\n\n");
  system("pause");
  return 0;
}

Não se esqueça: A resolução do exercício deve ser feita sem a criação de um vetor, array ou lista adicional, e os elementos diferentes de zero devem permanecer na mesma ordem que eles estavam antes.


Vamos testar seus conhecimentos em Hidrologia

Assinale a alternativa que apresenta uma justificativa para a importância dos rios:

A) A manutenção do equilíbrio ambiental local.

B) A disponibilidade somente de água potável.

C) A ausência de grandes eventos de inundação.

D) O desgaste da superfície das rochas ígneas.

E) O aumento da temperatura de forma pontual.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Domínios de Deformações

Vigas de concreto armado, com seções submetidas a um momento fletor e a um esforço cortante, são dimensionadas de tal forma que se determine uma armadura longitudinal para resistir ao momento fletor e uma armadura transversal para resistir ao esforço cortante.

Analise as informações a seguir, a respeito da solicitação normal do tipo momento fletor:

I) Solicitação de flexão simples ocorre quando a única solicitação atuante é o momento fletor.

II) Solicitação de flexão composta ocorre quando, além do momento fletor, há uma força normal atuante.

III) Solicitação de flexão oblíqua ocorre quando o plano de flexão compreende um eixo de simetria da seção transversal.

Assinale a alternativa correta:

A) Somente a afirmação I está correta.

B) Somente as afirmações I e II estão corretas.

C) Somente a afirmação II está correta.

D) Somente a afirmação III está correta.

E) Somente as afirmações II e III estão corretas.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Hidrologia

(CEBRASPE - 2019 - Analista de Gestão de Resíduos Sólidos SLU DF) Julgue o item, acerca de aspectos relacionados aos componentes do ciclo hidrológico.

A interceptação vegetal de parte da precipitação tende a reduzir a vazão ao longo do ano e a retardar e reduzir o pico de cheias.

A) Verdadeiro
B) Falso
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fundações

Fundações profundas

A grande vantagem das estacas moldadas in solo em relação às pré-moldadas é permitir que o comprimento estritamente necessário seja concretado.

O tipo de fundação profunda constituída por concreto, moldada in loco e executada por meio de trado contínuo e injeção de concreto pela própria haste do trado, é a:

A) estaca escavada mecanicamente.

B) estaca injetada.

C) estaca hélice contínua.

D) estaca Franki.

E) estaca-raiz.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual o resultado da execução do seguinte código Python?

# cria uma lista
valores = [1, 2, 3, 4]
valores[1], valores[2] = 5, 7
print(valores)

A) Um erro de execução na linha 2

B) [5, 7, 5, 7]

C) [4, 2, 3, 1]

D) TypeError: cannot unpack non-iterable int object

E) [1, 5, 7, 4]
Verificar Resposta Estudar Cards Todas as Questões

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

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware 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 funcionalidadesControle 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
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 84 usuários muito felizes estudando em nosso site.