Você está na página 1de 4

Pontifícia Universidade Católica de Minas Gerais

Bacharelado em Sistemas de Informação


Algoritmos e Estruturas de Dados - 2009/1
Italo Stefani

Laboratório 09 – Structures (Registros)


Para a resolução deste trabalho, lembre-se organizar seu código seguindo os critérios:

• Nomes sugestivos para variáveis;

• Separar trechos de código pelas suas atividades em métodos e funções;

• Comentar os trechos de código conforme sua atividade.

Structures

Structures são estruturas heterogênea de dados, ou seja, as informações armazenadas podem ser de tipos
diferentes. Por exemplo, podemos utilizar structures para armazenar o registro de funcionários (nome, idade,
salário, endereço, registro do funcionário).

Declarando uma structure:


struct Funcionario
{
public string nome;
public int id;
public double salario;
public string endereco;
}


A atribuição a um membro ou o acesso ao mesmo é feito através do operador (.). Exemplo:



 Funcionario trabalhador;


 trabalhador.id = 12345;


 trabalhador.salario = 800;


 trabalhador.nome = “Jose da Silva Xavier”;

O escopo das variáveis é o mesmo da structure, ou seja, as variáveis só são válidas dentro do bloco ao qual a
structure foi definida.
Operações entre structures
struct venda
{
public int pecas;
public float preco;
}

************Trecho do código***********
venda A, B;
venda total;
total = A + B; // ERRADO
//Certo
total.pecas = A.pecas + B.pecas;
total.preco = A.preco + B.preco;


Uma função pode retornar uma structure


static venda novaVenda()
{
venda E;
* * *
return E;
}

Podem existir arranjos (vetores e matrizes) de structures, isto é, pode-se definir uma coleção de variáveis
associadas a um tipo structure.

• A declaração é da mesma forma que variáveis simples


o venda [] vendas = new venda [100];

• Acesso aos membros:


o vendas[i].preco = 100.00;
Exemplo de estrutura de funcionários
struct Funcionario
{
public string nome;
public int id;
public double salario;
public string endereco;
}

public class aula


{
public static void Main()
{
Funcionario func1;
Funcionario func2;

func1.nome="João da Silva";
func1.id = 1;
func1.salario = 2500;
func1.endereco = "Avenida Afonço Pena";

func2.nome = "Everaldo Machado";


func2.id = 2;
func2.salario = 800;
func2.endereco = "Rua dos Inconfidentes";

Console.WriteLine(func1.nome);
Console.WriteLine(func1.id);
Console.WriteLine(func1.salario);
Console.WriteLine(func1.endereco);

Console.WriteLine();
Console.WriteLine(func2.nome);
Console.WriteLine(func2.id);
Console.WriteLine(func2.salario);
Console.WriteLine(func2.endereco);

Console.ReadLine();
}
}

Exercício 1

Faça uma função que crie um novo funcionário. A função retorna o funcionário criado e recebe como
parâmetros nome, id_funcionario, salario, endereco.

Exercício 2

Repita o exercício 1, utilizando um procedimento que receba como parâmetro uma variável do tipo
funcionário, passada como referência.

Exercício 3

Dada a estrutura abaixo:

struct Funcionario
{
public string nome;
public int id;
public float salario;
public string endereco;
}

Faça um programa que crie um vetor de funcionários. Deve existir uma função para criar funcionários e os
dados do funcionário devem ser digitados pelo teclado. Durante o cadastro,deve ser perguntado ao usuário se
ele deseja continuar a cadastrar funcionários.

Por fim, crie um procedimento que, caso o usuário deseje, imprima todo o vetor de funcionários.

Exercício 4

Os trabalhadores da ATP Solutions LTDA ganham R$ 20,00 por hora normal trabalhada e R$ 35,00 por hora
extra trabalhada. Se o salário/mês for menor do que R$ 1.000,00, o trabalhador não paga imposto. Se o
salário for maior ou igual a R$ 1.000,00, o trabalhador deverá pagar 10% de imposto. Se o salário for maior
ou igual a R$ 2.000,00, o trabalhador deverá pagar 25% de imposto. Escreva um programa que:

• Leia o número de trabalhadores da ATP Solutions LTDA.

• Para cada trabalhador, leia o total de horas normais trabalhadas e o total de horas extras trabalhadas.

• Calcule e imprima o maior e menor salário bruto (antes de descontar o imposto) pago no mês.

• Calcule e imprima o maior e menor salário líquido (depois de descontar o imposto) pago no mês.