Вы находитесь на странице: 1из 5

Pontifícia Universidade Católica de Minas Gerais

Bacharelado em Sistemas de Informação


Algoritmos e Estruturas de Dados - 2009/1
Italo Stefani / Eduardo Habib

Laboratório 03 – Entregar até 28/03/2009 às 23hs

Vetores (arranjos)
Arranjo é um tipo de dado em C# usado para representar uma coleção de variáveis de mesmo tipo. Imagine o
problema de calcular a média aritmética das notas de prova de cinco alunos. Você poderia escrever o seguinte
programa:

using System;
namespace ATPLab
{
class Program
{
static void Main(string[] args)
{
int nota0, nota1, nota2, nota3, nota4;

Console.Write("\n Digite a nota do aluno 1: ");


nota0 = int.Parse(Console.ReadLine());
Console.Write("\n Digite a nota do aluno 2: ");
nota1 = int.Parse(Console.ReadLine());
Console.Write("\n Digite a nota do aluno 3: ");
nota2 = int.Parse(Console.ReadLine());
Console.Write("\n Digite a nota do aluno 4: ");
nota3 = int.Parse(Console.ReadLine());
Console.Write("\n Digite a nota do aluno 5: ");
nota4 = int.Parse(Console.ReadLine());

int media = (nota0 + nota1 + nota2 + nota3 + nota4) / 5;


Console.Write("\n \n A média das notas é: " + media);
Console.ReadLine();
}
}
}


Imagine agora se você pretendesse encontrar a média aritmética das notas de uma classe de 60 alunos ou de uma
escola toda com 2000 alunos? É evidente que precisamos de uma maneira conveniente para referenciar tais
coleções de dados similares. Vetores é o tipo de dado oferecido por C# para esse propósito.

Um vetor é um conjunto de variáveis, do mesmo tipo, referenciadas por um único nome, onde cada variável é
diferenciada por meio de um número chamado “índice”. Os colchetes são usados para conter o índice.
A declaração

int [] notas;
notas = new int[5];

declara uma variável chamada notas do tipo vetor de inteiros (int) e aloca memória para armazenar cinco
elementos.

Vamos reescrever programa anterior usando um vetor:

using System;
namespace ATPLab
{
class Program
{
static void Main(string[] args)
{
int [] notas;
float soma = 0, media=0;

notas = new int[5];

for (int i = 0; i < 5; i++)


{
Console.Write("\n Digite a nota do aluno " + (i+1) + ": ");
notas[i] = int.Parse(Console.ReadLine());
soma += notas[i];
}

media = soma/5;

Console.Write("\n \n A média das notas é: " + media);


Console.ReadLine();
}
}
}

O seguinte trecho de código a seguir pode ser utilizado para inicializar um vetor na declaração:

int [] notas;
notas = new int[5]{1,2,3,4,5};
Exercícios sobre Vetor

1. Faça um programa para ler o tamanho de um vetor de inteiros. Em seguida, lê todos os elementos do vetor
escolhido e imprime na tela. As leituras dos dados devem ser realizadas a partir do teclado.

2. Considerando o vetor do exercício 1, faça:

a. Mostre o maior elemento.

b. Mostre o menor elemento.

c. Mostre a soma dos elementos.

d. Mostre a média dos elementos.

3. Em um frigorífico existem 10 bois numerados de 1 a 10. Cada boi traz em seu pescoço um cartão contendo
seu número de identificação e seu peso. Faça um algoritmo que encontre e escreva o número e o peso do boi
mais gordo e do boi mais magro.

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:

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

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

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

d. Calcule e imprima o maior e menor salário líquido (depois de descontar o imposto) pago no mês.
Matrizes
Problema: Ler a nota de todos os alunos do 1 primeiro período.

Solução:

int mat1[40], mat2[40], mat3[40], mat4[40];

Exemplo:

Console.Write ("Entre com as notas da materia 1");


for (i=0; i<40; i++)
mat1[i] = int.Parse(Console.ReadLine());


Console.Write ("Entre com as notas da materia 2");
for (i=0; i<40; i++)
mat2[i] = int.Parse(Console.ReadLine());

Console.Write ("Entre com as notas da materia 3");
for (i=0; i<40; i++)
mat3[i] = int.Parse(Console.ReadLine());


Console.Write ("Entre com as notas da materia 4");
for (i=0; i<40; i++)
mat4[i] = int.Parse(Console.ReadLine());


Em C# podemos definir um vetor em que cada posição contém um outro vetor.

int materias[4,40];


onde temos 4 matérias (linhas), cada uma com 40 alunos (colunas).

Exemplo:

int [,]mat1 = new int[2,4];


for (int i = 0; i < 4; i++) {
Console.Write("\nEntre com as notas da materia " + i + " :");
for (int j = 0; j < 40; j++) {
Console.Write("\nEntre com as notas do aluno " + j + " :");
mat1[i, j] = int.Parse(Console.ReadLine());
}
}
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 40; j++) {
Console.WriteLine("mat["+i+","+j+"] = "+ mat1[i,j]);
}
}
Exercícios de Matriz

1. Faça um programa que leia as notas de 5 alunos em 4 matérias diferentes. Para cada matéria:

a. Informe a maior nota.

b. Informe a menor nota.

c. Informe a média das notas.

d. Informes quantos alunos tiveram média acima de 60%.

2. Complemente o programa do item 1 para informar:

a. A maior nota entre todas as matérias.

b. A menor nota entre todas as matérias.

c. A média global considerando todas as matérias.

d. Informes quantos alunos tiveram média acima de 60%.