Programação C - Estruturas / Registros



 

  • Registros são: estruturas de dados que contem diferentes tipos de dados em um mesmo grupo;
  • O objetivo de um registro é armazenar diferentes dados de um mesmo objeto;
  • Um registro é um tipo estrutura, para tanto é necessário após a declaração do registro, declarar variáveis ou vetores do tipo registro para ser utilizado pelo sistema;
  • Assim como variáveis, registros podem ser locais ou globais;

 

 

Existem 3 modos de declaração de registros;

1º modo de declaração:

  • Primeiro é definida a estrutura “struct “ com um nome qualquer (Ficha);
  • Em seguida é declarada as variáveis, que serão utilizadas no sistema, que serão do tipo desta estrutura;
  • Observe que tem que ser escrito “struct Ficha” para declarar as variáveis.

 

 

2º modo de declaração:

  • É definida a estrutura “struct” com um nome qualquer (Ficha);
  • As variáveis, que serão utilizadas no sistema, são declaradas entre o fecha parênteses e o ponto e vírgula;
  • Observe que neste caso as variáveis são declaradas no instante da declaração da estrutura.

 

 

3º modo de declaração:

  • É definida a estrutura “struct” com um nome qualquer (Ficha). Neste caso é utilizado “typedef” para determinar que esta sendo definido um novo tipo;
  • Em seguida é declarada as variáveis que serão utilizadas no sistema;
  • Observe que neste caso para a declaração das variáveis não é utilizado a palavra “struct”, e sim diretamente o tipo da estrutura “Ficha”.

 

 

Para atribuir dados em um campo do registro, é necessário indicar qual é o campo que irá receber o dado.

<nome da variável registro> <ponto> <campo do registro>

No caso de vetor de registros, á necessário indicar também o índice do vetor.

 

 

 

 

Registros pode conter registros. Lembrando que neste caso deve-se indicar todo o caminho da variável do registro.

 

 

Vetor de registros. Cada posição do vetor conterá um registro distinto.

 

 

 

 

Quando é declarada uma variável do tipo registro, é reservado na memória um espaço relativo ao tamanho das variáveis que compõe o Registro.

 

 

 

O exemplo a seguir apresenta como realizar passagem de registro como parâmetros para funções.

 

 

 

 

 

 


Exercícios

 

1) Dado as seguintes informações de um funcionário:  Nome, idade cargo e salário bruto considere: A) O salário bruto teve um reajuste de 38%; B) O funcionário receberá uma gratificação de 20% do salário bruto; B) O Salário total é descontado em 15%. Faça um algoritmo utilizando registro para: 1) Imprimir Nome, idade e cargo; 2) Imprimir o salário bruto; 3) Imprimir o salário líquido.

 

2) Dado que cada pessoa tenha o seu nome, idade e peso em uma ficha, faça um algoritmo que: A) Imprima o nome da pessoa cujo a idade está na faixa de 20 a 30 anos inclusive os extremos; B) Calcule a idade média das pessoas com peso maior que 80 Kg, considere que exista N pessoas.

 

3) Faça um programa que receba a idade, o peso, a altura, a cor dos olhos (A- Azul, P- Preto, V- Verde e C- Castanho) e a cor dos cabelos (P- Preto, C- Castanho, L- Louro, e R- Ruivo) de 20 pessoas e que calcule e mostre: A) a quantidade de pessoas com idade superior a 50 anos e peso inferior a 60 quilos; B) a média das idades das pessoas com altura inferior a 1,50; C) a percentagem de pessoas com olhos azuis entre todas as pessoas analisadas; D) a quantidade de pessoas ruivas e que não possuem olhos azuis.

 

4) Dado um número indeterminado de funcionários, onde é fornecido o Nome, número de dependentes e o número de horas trabalhadas. Pede-se que seja impresso, para cada funcionário, o seu Nome, salário bruto, salário líquido e o valor descontado. A empresa, paga R$ 2.250,00 por hora de trabalho, e R$ 125,55 por dependente, e ainda faz um desconto de 12% sobre o salário bruto. Pede-se ainda que seja impresso o total de funcionários da empresa, o total gasto com salários, e o total descontado.

 

5) Dado um conjunto de ‘n' registros, cada registro contendo o nome e a idade dessa pessoa faça um algoritmo que: A) Guarde todos os dados na memória; B) Escreva o nome das pessoas que tem idade maior que a idade da primeira; C) Listar os nomes das pessoas que tem a idade maior que a média; D) Listar o nome da pessoa de maior e menor idade.

 

6) Faça um programa que receba a idade, a altura e o peso de 25 pessoas. Calcule e mostre: A) a quantidade de pessoas com idade superior a 50 anos; B) a média das alturas das pessoas com idade entre 10 e 20 anos; C) a percentagem de pessoas com peso inferior a 40 quilos entre todas as pessoas analisadas.

 

7) Foi feita uma pesquisa entre os habitantes de uma região. Foram coletados os dados de idade, sexo (M/F) e salário. Faça um programa que calcule e mostre: A) A média dos salários do grupo; B) A maior e a menor idade do grupo; C) A quantidade de mulheres com salário até R$ 200,00; D) A idade e o sexo da pessoa que possui o menor salário. E) Finalize a entrada de dados ao ser digitada uma idade negativa.

 

8) Para cada nota de compra, tem-se o Nome do produto comprado, o valor e o imposto. Faça um algoritmo que escreva o valor total bruto, o imposto total cobrado e o valor total líquido de todas as notas. Considere 500 notas.

 

9) Uma determinada empresa pode ter em seu quadro de funcionários no máximo 100 funcionários, que trabalhão por hora. O total de horas a serem trabalhadas no mês é 100 e para cada hora extra é pago o dobro da hora normal. Escrever para esta empresa um modelo simplificado de folha de pagamento, onde será declarado um registro com os seguintes dados: nome, código do empregado, horas trabalhadas no mês, salário/hora, desconto de INSS, desconto por hora não trabalhada, horas extras e salário a receber. O programa deverá ter as opções para registrar novos funcionários, solicitar que seja informado os dados para gerar a folha de pagamento, listar a folha de pagamento calculada e sair do programa. Utilizar registros e funções.

 

10) Criar um programa utilizando estrutura que armazene o nome do aluno as 4 notas e as faltas das matérias de Algoritmos, Programação e Análise, para uma turma de 80 alunos. O programa deverá ter a possibilidade de registrar os dados, apresentar a média de cada aluno por matéria, informar aprovado se o aluno obteve nota superior ou igual a 7 e faltas inferior a 30 em todas as matérias, reprovado caso contrário, e sair do programa. Utilizar registros e funções.

 

11) Uma determinada empresa seguradora ira sortear um seguro, entre os primeiros 1000 carros que entrarem em um determinado shopping, para o veículo com as seguintes características: motorista mais idoso, carro mais novo e maior número na placa (nesta ordem de desempate). Para isso necessita de um programa para determinar o ganhador. Utilizar registro e funções.

 

12) Uma determinada biblioteca possui obras de ciências exatas, ciências humanas e ciências biomédicas, totalizando 1500 volumes, 500 de cada área. O proprietário resolveu informatiza-la e para tal, agrupou as informações sobre cada livro do seguinte modo: Código de Catalogação, Doado, Nome da Obra, Nome do Autor, Editora, Número de Páginas. A) Construa um algoritmo que declare tal estrutura e que reúna todas as informações de todas as obras em três vetores distintos para cada área; B) Elabore um procedimento que realiza a consulta as informações. O usuário fornecerá código da obra e sua área, existindo tal livro o algoritmo informa seus campos, do contrário envia mensagem de aviso. A consulta se repete até que o usuário introduza código finalizador com valor –1; C) Idem as b, porém o usuário simplesmente informa o nome e a área do livro que deseja consultar. D) Escreva um procedimento que liste todas as obras de cada área que representem livros doados; E) Idem ao d, porém obras cujos livros sejam comprados e cujo número de páginas se encontre entre 100 e 300; F) Escreva um procedimento que permita alteração em um registro, para tal, o usuário fornece o código, a área e as demais informações sobre o livro. Lembre-se que somente pode ser alterado um livro existente; G) Construa um algoritmo que efetue a exclusão de algum livro, o usuário fornecerá o código e a área. Lembre-se de que somente pode ser excluído um livro existente.

 

13) Para o controle dos veículos que circulam em uma determinada cidade, a Secretaria dos Transportes criou o seguinte registro padrão: Proprietário, Combustível, Modelo, Cor, Número do Chassi, Ano, Placa. Sabendo-se que o número máximo de veículos da cidade é 5000 unidades e que os valores não precisam ser lidos, construa um algoritmo que: A) Possibilite listar todos os proprietários cujos carros são do ano de 1990 ou posterior e que sejam movidos a diesel; B) Possibilite listar todas as placas que comecem com a letra A e terminem com 0, 2, 4 ou 7 seus respectivos proprietários. (sugestão utilize placa como um vetor de caracter); C) Possibilite listar o modelo e a cor dos veículos cujas placas possuem como segunda letra uma vogal e cuja soma dos valores numéricos fornece um número par; D) Possibilite a troca de proprietário com o fornecimento do número do chassi.