Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Algoritmo e Estrutura de Dado II2

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 48

ALGORITMO E ESTRUTURA DE DADO I

RECAPITULAÇÃO DE LÓGICA DE PROGRAMAÇÃO USANDO C#

Índice

1. Tipos de dados básicos em C#


2. Estruturas sequencial
a. Entrada
b. Processamento
c. Saída
3. Operadores
a. Aritméticos
b. Comparativos
c. Lógicos
4. Estruturas de controle
a. If
b. If-else
c. Switch-case
d. While
e. Do-while
f. For
5. Estruturas de dados
a. Arrays

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

INTRODUÇÃO

A Long long Time ago…

LINGUAGEM DE PROGRAMAÇÃO

Uma linguagem de programação é um conjunto de símbolos (comandos,


identificadores, caracteres ASCII, etc.…) E regras de sintaxe que permitem a
construção de sentenças que descrevem de forma precisa ações compreensíveis
e executáveis para o computador.

Uma linguagem de programação é uma notação formal para descrição de


algoritmos que serão executados por um computador.

Como todas as notações formais, uma linguagem de programação tem dois


componentes: SINTAXE e SEMANTICA. A SINTAXE consiste em um conjunto de
regras formais, que especificam a composição de programas a partir de letras,
dígitos, e outros símbolos. Por exemplo, regras de sintaxe podem especificar que
cada parêntese aberto em uma expressão aritmética deve corresponder a um
parêntese fechado, e que dois comandos quaisquer devem ser separados por um
ponto-e-vírgula. As regras de SEMANTICA especificam o significado de qualquer
programa, sintaticamente valido, escrito na linguagem.

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

ALGORITMOS E ESTRUTURAS DE DADOS

 ALGORITMO:

 Sequência de ações executáveis para a solução de um determinado


tipo de problema

 Exemplo: “Receita de Bolo”

 Em geral, algoritmos trabalham sobre

 PROGRAMAS

 Um programa é uma formulação concreta de um algoritmo abstrato,


baseado em representações de dados específicas.

 Os programas são feitos em alguma linguagem que pode ser


entendida e seguida pelo computador, como:

 Linguagem de máquina
 Linguagem de alto nível (uso de compilador)

Aqui vamos utilizar a Linguagem C#

C# e .NET: é uma linguagem de programação (regras sintáticas).

.NET (2002): uma plataforma de desenvolvimento para se criar diversos tipos de


aplicações, podendo usar várias linguagens de programação.

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

O que é composto este .NET?

O .Net tem dois componentes:

 BCL – Base Class Library


 CLR – Common Language Runtime (Máquina Virtual)

TIPOS BÁSICOS EM C#

Nome Descrição Exemplos

byte Um byte é uma composição de 8 bits, o 3, -10, 128, 0


que corresponde a 28 possibilidades de
dados, sendo, portanto, possível
representar valores numéricos inteiros
que variam de 0 a 255, ou valores de

-128 a 127.

short Corresponde a 2 bytes (16 bits), podendo -10000, 0, 10, 128 20000
representar valores numéricos inteiros
de -32768 a 32767

int Corresponde a 4 bytes (32 bits), -2000000000, 0, 11, 1913331112


podendo representar valores
numéricos inteiros de -2147483648 a
2147483647

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Nome Descrição Exemplos

long Corresponde a 8 bytes (64 bits), -2000000000000000000, 0, 1,


podendo representar valores 12345678
numéricos inteiros de

-9223372036854775808 a

9223372036854775807

float Tal como o tipo int, este utiliza 4 bytes da -10.0, 0.1, 0.22, 3.1415926,
memória, porém os dados são 2344.123,
armazenados de maneira que se possa
representar de números reais, portanto
com casas decimais. Um float permite
números reais com até 7 digitos e é
capaz de representar valores com
expoentes de até 10-38 ou 1038.

double Da mesma forma que o float, neste tipo -1.0, 0.0, 3.1415926535897
os bytes são formatados de maneira a
suportarem números reais, porém aqui
utilizam-se 8 bytes, podendo-se
representar números com até 15 dígitos
e é capaz de representar valores com
expoentes de até 10-308 ou 10308.

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Nome Descrição Exemplos

char Este tipo, formado por 2 bytes, armazena A, b, 4 (caractere 4, não o


um caractere simples, tal como A, a, t, *. número 4).
Também pode conter um caractere
especial, tal como uma quebra de linha
ou um indicador de final de texto. Ao
associar um caractere a esta variável,
deve-se usar o símbolo ´ para identificar
que o caractere não é uma variável ou um
operador:

char letra;

letra = ´A´

boolean Este é um tipo lógico, que pode apenas True, false


ser true ou false. Será usado para
expressões lógicas e de
relacionamentos

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Nome Descrição Exemplos

String Consiste numa sequência de “Hello Word”, “para o além e


caracteres. Para que o programa não infinito”, “dois”, “1, 2, 3 e já!”, “2”
confunda esta sequência de caracteres
com nomes de variáveis, coloca-se o
seu conteúdo entre aspas:

String mensagem;

mensagem = “Apertem os cintos”

Caso não houvesse aspas, o


compilador pensaria que as palavras
Apertem, os e cintos seriam nomes de
variáveis e iria procurar o conteúdo das
mesmas. Neste caso, como as
variáveis não foram declaradas,
ocorreria um erro do tipo “variável
Apertem não declarada”...

Tudo o que estiver dentro das aspas é


tratado como um texto ou expressão e
podemos ficar tranquilo, pois o
compilador não irá executar nada;
apenas copiará estes caracteres para
uma área de memória ou para a
interface de saída.

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Continuação... Aula nº 03
Os tipos de dados têm um valor máximo a suportar e mínimo a receber que
chamamos de funções para valores mínimos e máximos:

 int.MinValue
 int.MaxValue
 sbyte.MaxValue
 long.MaxValue
 decimal.MaxValue
 etc...

RESTRIÇÕES PARA NOMES DE VARIÁVEIS

 Não pode começar com dígito: use uma letra ou _


 Não usar acentos ou til
 Não pode ter espaço em branco
 Sugestão: use nomes que tenham um significado

Errado: Correto:
int 5minutos; int _5minutos;
int salário; int salario;
int salario do funcionário; int salarioDoFuncionario;

CONVENÇÕES

 Camel Case: lastName (parâmetros de métodos, variáveis dentro de


métodos)
 Pascal Case: LastName (namespaces, classe, properties e métodos)
 Padrão _lastName (atributos “internos” da classe)

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

SAÍDA DE DADOS EM C#

Saída de dados é quando o programa informa dados para usuário, no caso será
imprimir dado na tela do computador através do terminal.

Imprimir na saída padrão (console)

 Comandos
 Console.WriteLine(valor);
 Console.Write(valor);

PLACEHOLDER, CONCATENAÇÃO E INTERPOLAÇÃO

 Placehold
 Interpolação
 Concatenação de String

EXERCÍCIO DE FIXAÇÃO

Em um novo programa, inicie as Em seguida, usando os valores das variáveis,


seguintes variáveis: produza a seguinte saída na tela do console:
string produto1 = “Computador”;
string produto2 = “Mesa de escritório”; Produtos:
byte idade = 30; Computador, cujo preço é KZ 210,00
int código = 5290; Mesa de escritório, cujo preco é KZ 650,50
char gênero = ‘M’;
double preco1 = 2100.0; Registro: 30 anos de idade, código 5290 e gênero: M
double preco2 = 650.50;
double medida = 53.234567; Mediada com oito casas decimais: 53,23456700
Arredondado (três casas decimais): 53,235
Separador decimal invariant culture: 53,235

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Tema Abordar na próxima aula...


 OPERADORES
 Aritméticos
 Atribuição
 Conversões Implícitas e Casting

Continuação... Aula nº 04
Entrada de dados
CONVERSÕES IMPLITA E CASTING
 Conversão implícita entre tipos
É quando um conteúdo do certo tipo pode ser naturalmente atribuído para uma
variável de outro tipo.
float x = 4.5f;
double y = x;
Console.Writeline(y);

 Casting: conversões explicita entre tipos COMPATÍVEIS

ENTRADA DE DADOS EM C# - PARTE 1


É quando o programa vai ler os dados que o usuário digitar ou quando o programa
leia os dados de outra fonte.
Comando
Console.ReadLine();
 Lê da entrada padrão até a quebra de linha.
 Retorna os dados lidos na forma de string.

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

EXERCÍCIO DE FIXAÇÃO

Fazer um programa para executar a Saída esperada (número reais com duas casas
seguinte interação com usuário, lendo decimais):
os valores destacados em vermelho, e
depois mostrar os dados na tela
Alex Green
Entre com seu nome completo:
3
Alex Green
500.50
Quantos quartos tem na sua casa?
Green
3
21
Entre com o preço de um produto:
1.73
500.50
Entre seu último nome, idade e altura
(mesa linha):
Green 21. 1. 73

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Continuação... Aula nº 05
 OPERADORES
 Comparativos
 Aritméticos: Pesquisa.
 Atribuição

Expressão Comparativas

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

E exemplos de operadores lógicos no contexto de programação:

Expressão Lógica

São expressão quando avaliada resultam também em um valor verdade.

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

 Ideia por trás do operador E

Você pode aprovar a uma disciplina no Instituto Superior de


Tecnologia Agro-Alimentar de Malanje – ISTAM e no ISPCAN se:
 Tiveres a média 7 das duas provas parcelares dos Professores
e fores ao exame,
E
 Fazeres a prova de exame,
E
 For aprovado no Exame da
disciplina em causa.

E exemplos de operadores lógicos no contexto de programação:

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Precedência:

 Ideia por trás do operador OU

Você pode ser etendido de emediato em um banco nacional se:


 For idoso(a),
OU
 For uma pessoa com deficiência,
OU
 For uma gestante,

E exemplos de operadores lógicos no contexto de programação:

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

 Ideia por trás do operador NÃO


Você tem direito a receber uma bolsa de estudo de Mestrado se;

NÃO
 Ter uma média a baixo de 14 valores.

E exemplos de operadores lógicos no contexto de programação:

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Continuação... Aula nº 06
 ESTRUTURA CONDICIONAIS
 Simples
 Composta
 Encadeada/aninhada
 Switch –case: Pesquisa

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Conceito
Estrutura condicional:
É uma estrutura de controle que permite definir que
um certo bloco de comandos somente será executado
dependendo de uma condição.

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

E exemplos de operadores lógicos no contexto de programação:

E exemplos de operadores lógicos no contexto de programação:

E se eu tiver mais de duas possibilidades?

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Encadeamento de estrutura condicional:

Para entender como funciona a composta, farei um pequeno programa proposto:

Entre com um número inteiro: Entre com um número ímpar?


10 15
Par! Ímpar!

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Fazer um programa para ler as duas notas que um estudante do ISPCAN obteve no
primeiro e segundo semestre de uma disciplina anual. Em seguida, mostrar a nota
final que o estudante obteve no ano juntamente com um texto explicativo. Caso a
nota final do estudante seja inferior a 10.00, mostra a mensagem “REPROVADO”,
conforme exemplos. Todos os valores devem ter uma casa decimal.

Entrada: Saída:

10.5 NOTA FINAL = 19.8


9.3

Entrada: Saída:

5.0 NOTA FINAL = 7.3


2.3 REPROVADO

EXERCÍCIO DE FIXAÇÃO
Leia 3 valores de ponto flutuante e efetue o cálculo das raízes da equação de
Bhaskara. Se não for possível calcular as raízes, mostre a mensagem
correspondente “impossível calcular”, caso haja uma divisão por 0 ou raiz de
número negativo.
Entrada
Leia três valores de ponto flutuante (double) A, B e C
Saída
Se não houver possibilidade de calcular as raízes, apresente a mensagem
“impossível calcular”. Caso contrário imprima o resultado as raizes com 5 digito
após o ponto, com uma mensagem correspondente conforme exemplo abaixo.
Imprima sempre o fina da linha após cada mensagem.

Exemplo de Entrada: Saída:

10.0 20.1 5.1 R1 = -0.29788


R2 = -1.71212

0.0 20.0 5.0 impossível calcular

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Pesquisa
ESCOPO E INICIALIZAÇÃO.

Continuação... Aula nº 07
 ESTRUTURA CONTROLE
 WHILE
 DO – WHILE
 FOR

OBS. Entrando para o contexto da disciplina de


Algoritmos e estrutura de dados.
Obrigado!

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Continuação... Aula nº 07
 ESTRUTURA CONTROLE
 WHILE

ESTRUTURA REPETITIVA ENQUANTO (WHILE)


É uma estrutura de controlo que repete um bloco de comandos enquanto uma
condição for verdadeira.
Quando usar: quando não se sabe previamente a quantidade de repetições que
será realizada.
Por exemplo:
Fazer um programa que lê números inteiros até que um zero seja lido. Ao final
mostra a soma dos números lidos.

Entrada Saída

5 11
2
4
0

Sintaxe / regra

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Resolvido:

using System;

namespace whileAula1
{
class Program
{
static void Main(string[] args)
{
int num, soma;
num = int.Parse(Console.ReadLine());
soma = 0;

while (num != 0)
{
soma = soma + num;
num = int.Parse(Console.ReadLine());
}
Console.WriteLine(soma);
Console.ReadLine();
}
}
}

Obs. Trabalhar com o teste de mesa manual


using System;
namespace TesteMesa1
{
class Program
{
static void Main(string[] args)
{
int x = 0;
int y = 4;
while (x < 3)
{
y = y + 2;
x = x + 1;
}
Console.WriteLine(x + " - " + y);
Console.ReadLine();
}
}
}

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

1. Problema Exemplo (Enquanto)


Leia uma quantidade indeterminada de duplas de valores inteiros X e Y. Escreva
para cada X e Y uma mensagem que se indica se estes valores foram digitados em
ordem crescente ou decrescente.

Entrada
A entrada contém vários casos de teste. Cada caso contém dois valores
inteiros X e Y. A leitura deve ser encerrada ao ser fornecido valores para X e Y

Saída
Para cada caso de teste imprima “Crescente” caso os valores tenham sido
digitados na ordem crescente, caso contrário imprima a mensagem
“Descrescente”.

Exemplo de Entrada Exemplo de Saída

54 Descrescente
72 Descrescente
38 Crescente
22

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

2. Problema Exemplo (Enquanto)


Faça um programa para ler um número indeterminado de dados, contendo cada
um, a idade de um indivíduo. O último dado, que não entrará nos cálculos, contém
um valor de idade negativa, calcula e imprimir a idade média deste grupo de
indivíduos. Se for entrado um valor negativo na primeira vez, mostra a mensagem
“impossível calcular”.

Exemplo de Entrada Exemplo de Saída

31 34.67
27
46
-5

Exemplo de Entrada Exemplo de Saída

-10 Impossivel calcular

Resumo da aula
 Estrutura repetitiva enquanto
 Recomendada quando não se sabe previamente a quantidade de
repetições

 Regra:
o V: Executa e volta
o F: Pula fora

Continuação... Aula nº 08
 FOR

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Continuação... Aula nº 08
 ESTRUTURA CONTROLE
 FOR(Para)

Fazer um programa que lê um valor inteiro N e


depois N números inteiros. Ao final, mostra a
soma dos N números lidos
Entrada Saida

3 11
5
2
4

Sintaxe / regra

Obs. O intuito da estrutura PARA é construir o intervalo de valores, quando for


montar a estrutura para é isso que devemos ter em mente.

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Resolvido:
using System;

namespace For
{
class Program
{
static void Main(string[] args)
{
int N, x, soma;
N = int.Parse(Console.ReadLine());
soma = 0;
for (int i = 1; i <= N; i++)
{
x = int.Parse(Console.ReadLine());
soma = soma + x;
}
Console.WriteLine(soma);
Console.ReadKey();

}
}
}

Importante
Perceba que a estrutura “para” é ótima para se fazer uma repetição baseada em
uma CONTAGEM:
using System;
namespace for1._1
{
class Program
{
static void Main(string[] args)
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine($" O valor de i {i}");
}
Console.ReadKey();
}
}
}

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Contagem regressiva

using System;
namespace for1._1
{
class Program
{
static void Main(string[] args)
{
for (int i = 4; i >= 0; i--)
{
Console.WriteLine($" O valor de i {i}");
}
Console.ReadKey();
}
}
}

Resumo da aula
 Estrutura repetitiva para
 Usar quando se sabe previamente a quantidade de repetições
 Ótima para fazer contagens (progressiva ou regressiva)
 Regra:

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

1. Problema Exemplo (Para) - Tabuada


Leia 1 valor inteiro N (2 < N < 1000). A seguir, mostre a tabuada de N:
1xN=N 2 x N = 2N .... 10 x N = 10N
Entrada
A entrada contém um valor inteiro N (2 < N < 1000).
Saída
Imprima a tabuada de N, conforme o exemplo fornecido

Entrada Saída

140 1 x 140 = 140


2 x 140 = 280
3 x 140 = 420
4 x 140 = 560
5 x 140 = 700
6 x 140 = 840
7 x 140 = 980
8 x 140 = 1120
9 x 140 = 1260
10 x 140 = 1400

Caro estudante, conheça o meu segredo como programador em C# resolvendo


todos os dias um exercício do uri: www.urionlinejudge.com.br

Resolver o exercício 1001 e 1071 como proposta.

Continuação... Aula nº 09
 ESTRUTURA CONTROLE

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Continuação... Aula nº 09
 ESTRUTURA CONTROLE
 DO – WHILE

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Resposta

using System;
using System.Globalization;
namespace do_while_ahrenheit_
{
class Program
{
static void Main(string[] args)
{
double f, c;
char repetir;
do {
Console.Write("Digite a temperatura em Celsius:");
c = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture);
f = 9 * c / 5 + 32;
Console.WriteLine($"Equivalente em Fahrenheit: {f.ToString("F1",
CultureInfo.InvariantCulture)}");
Console.Write("Deseja repetir (s/n)?");
repetir = char.Parse(Console.ReadLine());
} while (repetir == 's');
Console.ReadKey();
}
}
}

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Resumo da aula
 Estrutura repetitiva "faça-enquanto"

 O bloco de comandos executa pelo menos uma vez, pois a condição é


verificada no final.
 Regra: do {
o V: volta comando 1 comando 2
o F: pula fora } while ( condição );

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Aula nº 10
 ESTRUTURA DE DADOS
 VETORES

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Memória RAM

0 0
Como criar um vetor? 0
1
int[] A; 1
2 1
double[]B; 2
2
declaração 3
3
string[] C; 4 3
4
4
5
A = new int[10]; 5
B
6
B = new double[5]; 6
instanciação
7
C = new string[8]; 7
8

9
A C

Memória RAM

Como acessar os
0 0
elementos de um vetor? 10

0 1 1
11
Maria
1 2 2
12
A[3] = 10; 2 3 3
3 13 4 4
10
for (int i=0; i<5; i++) 4 14 B 5
{ B[i] = i + 10; 5 6
} 7
6
7 C
C[1] = "Maria";
8
9
A

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Problema exemplo
Fazer um programa para ler um número inteiro positivo N, depois ler N números
quaisquer e armazená-los em um vetor. Em seguida, mostrar na tela todos
elementos do vetor.
Entrada Saída

4 10.5
10.5 4.2
4.2 -7.1
-7.1 15.0
15.0

using System;
using System.Globalization;
namespace VetorLista
{
class Program
{
static void Main(string[] args)
{
int N;
double[] vet;

N = int.Parse(Console.ReadLine());
vet = new double[N];

for (int i = 0; i < N; i++) {


vet[i] = double.Parse(Console.ReadLine(),
CultureInfo.InvariantCulture);
}
for (int i = 0; i < N; i++) {
Console.WriteLine(vet[i].ToString("F1",
CultureInfo.InvariantCulture));
}
Console.ReadKey();
}
}
}

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Resumo da aula
0
 Vetor: coleção de dados
 Tamanho fixo 1
 Arranjo unidimensional
 Indexada 2
 Homogênea
3
 Declaração: double[] B;
4

 Instanciação: B = new double[5];


 Acesso: B[3] = 20;

 Problema exemplo: ler e imprimir na tela um vetor

Exercícios:
Testes de mesa com vetores execute manualmente os testes de mesa a seguir,
preenchendo o comportamento das variáveis (se alguma variável não for usada
no teste de mesa, apenas ignore-a).

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Exercícios propostos

1. faça um programa que leia N números reais e armazene-os em um vetor. Em


seguida, mostrar na tela o maior número do vetor (supor não haver empates).
Mostrar também a posição do maior elemento.
Entrada Saída
6 14.0
8.0 4.0 10.0 14.0 13.0 7.0 3

Exemplo:
2. faça um programa que leia N números inteiros e armazena-os em um vetor. Em
seguida, mostre na tela:
 Todos os números pares
 A quantidade de números pares

Entrada Saída
6 8 2 14 20
8 2 11 14 13 20 4

Exemplo:

3.Tem-se um conjunto de dados contendo a altura e o sexo (M, F) de N pessoas. Fazer um


programa que calcule e escreva:
 A maior e a menor altura do grupo
 A média de altura das mulheres
 O número de homens

Exemplo:

Entrada Saída
5 Menor altura = 1.54
1.70 F Maior altura = 1.83
1.83 M Media das alturas das mulheres =
1.54 M 1.69
1.61 F Numero de homens = 2
1.75 F

Aula nº 11

 ESTRUTURA DE DADOS
 MATRIZ
Obs. Segundo Semestre

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Índice
1. Estrutura de dados
a. Matriz
b. Projeto do Grupo (Apresentado como defesa geral)
2. Lista de Prioridade
a. Criando a Primeira Lista de Inteiros
b. Criando Uma Lista de String e Adicionando Itens
c. Trabalhando Com a Propriedades Capacity e Count
d. Percorrendo a Lista Com Foreach
e. Percorrendo a Lista com For
f. Utilizando os Métodos Insert e InsertRange
g. Utilizando os Métodos Remove e RemoveAt
h. Utilizando o Método Sort
i. Projeto do Grupo (Apresentado como defesa geral)
j. Árvores B
3. Grafos
a. Definições básicas
b. Representação e implementação
c. Grafos ponderados
d. Caminhamentos: largura e profundidade
e. Operações sobre grafos
1. Detenção de ciclos e ordenação topológica
2. Detenção de componentes
3. Aplicações

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Exercício - enunciado

Fazer um programa para armazenar os dados de produtos e pedidos de uma loja de


móveis. Cada produto possui código, descrição e preço, e cada pedido possui um código,
data, além da listagem dos produtos vendidos, sendo que cada produto vendido pode ter
uma quantidade específica e uma porcentagem de desconto. Seu programa deve iniciar
com cinco produtos já cadastrados:

Código Descrição Preço


1001 Cadeira simples 500.00
1002 Cadeira acolchoada 900.00
1003 Sofá de três lugares 2000.00
1004 Mesa retangular 1500.00
1005 Mesa retangular 2000.00

Após iniciado, o programa deve tratar um menu com as seguintes opções:

1 – Listar produtos ordenadamente


2 – Cadastrar produto
3 – Cadastrar pedido
4 – Mostrar dados de um pedido
5 – Sair

* Os produtos devem ser ordenados por nome, e depois decrescentemente por preço

EXEMPLO DE LISTAGEM DE PRODUTOS:


LISTAGEM DE PRODUTOS:
1002, Cadeira acolchoada, 900.00
1001, Cadeira simples, 500.00
1005, Mesa retangular, 2000.00
1004, Mesa retangular, 1500.00
1003, Sofá de três lugares, 2000.00

EXEMPLO DE CADASTRO DE PRODUTO:


Digite os dados do produto:
Código: 1010
Descrição: Sofá de dois lugares
Preço: 1500.00

EXEMPLO DE CADASTRO DE PEDIDOS:

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Digite os dados do pedido:


Código: 101
Dia: 25
Mês: 8
Ano: 2017
Quantos itens tem o pedido? 2
Digite os dados do 1º item:
Produto (código): 1005
Quantidade: 1
Porcentagem de desconto: 5.0
Digite os dados do 2º item:
Produto (código): 1001
Quantidade: 4
Porcentagem de desconto: 10.0

EXEMPLO DA EXIBIÇÃO DOS DADOS DE UM PEDIDO:


Digite o código do pedido:
101 Pedido 101, data:
25/8/2017 Itens:
Mesa retangular, Preço: 2000.00, Qte: 1, Desconto: 5.0%, Subtotal:
1900.00 Cadeira simples, Preço: 500.00, Qte: 4, Desconto: 10.0%,
Subtotal: 1800.00 Total do pedido: 3700.00

Normas para a elaboração de relatório dos projecto:


1. identificação do (s) autor (es); data;
2. o projecto deverá ser feito em grupo no máximo 5 estudantes;
2. descrição geral do trabalho;
4. documentação interna;
5. justificação das decisões mais importantes;
6. explicação sobre qualquer passo no código que julgue menos óbvio, importante de
salientar ou original;
7. testes e resultados relevantes;
8. implementação do programa no documento.
Obs. Todos os projecto iguais serão considerados como fraude, consequentemente serão
anulados. O programa tem de correr, ou seja, têm de compilar. Caso o programa não
compilar o grupo terá a cotação inicial de 0.
Os projecto devem ser entregues suporte físico e digital, criar um ciclo do. While para
perguntar se para ou não o teste.
Obs. Projeto vai servir como avaliação do semestre correspondendo a 20% das PP.

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Aula nº 11

 ESTRUTURA DE DADOS
 MATRIZ

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Memória RAM

Como criar uma matriz? 0 1 2 3


0
declaração 1
double[,] A;
2

instanciação A = new double[3, 4];

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Memória RAM

Como acessar os
elementos de uma matriz? 0 1 2 3
0

1 10
A[1, 2] = 10;
2
A

Problema exemplo
Fazer um programa para ler dois números inteiros positivos M e N, depois ler uma
matriz de M linhas e N colunas contendo números inteiros. Em seguida, mostrar na
tela a matriz lida conforme exemplo.
Entrada Saída

2 3 6 3 10
6 3 10 8 12 5
8 12 5

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

using System;

namespace Matriz
{
class Program
{
static void Main(string[] args)
{
int M, N;
int[,] A;

M = int.Parse(Console.ReadLine());
N = int.Parse(Console.ReadLine());
A = new int[M, N];

for (int i = 0; i < M; i++){


string[] s = Console.ReadLine().Split(' ');
for (int j = 0; j < N; j++){
A[i, j] = int.Parse(s[j]);
}
}

for (int i = 0; i < M; i++){


for (int j = 0; j < N; j++){
Console.Write(A[i, j] + " ");
}
Console.WriteLine();
}
Console.ReadKey();
}
}
}

Resumo da aula
0 1 2 3
• Matriz: coleção de dados
• Tamanho fixo 0
• Arranjo bidimensional
• Indexada 1 10
• Homogênea
2

• Declaração: double[,] A; A
• Instanciação: A = new double[3, 4];
• Acesso: A[1, 2] = 10;

• Problema exemplo: ler e imprimir na tela uma matriz

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Exercícios Propostos:
Fazer um programa para ler um número inteiro N e uma matriz quadrada de
ordem N contendo números inteiros. Em seguida, mostrar a diagonal principal e a
quantidade de valores negativos da matriz.

Exemplo:

Entrada Saída

3 DIAGONAL PRINCIPAL
5 -3 10 5 8 -4
15 8 2 QUANTIDADE DE NEGATIVOS = 2
7 9 -4

2) fazer um programa para ler duas matrizes de M linhas e N colunas, contendo números
inteiros. Depois, gerar uma terceira matriz onde cada elemento desta é a soma dos elementos
correspondentes das matrizes originais. Imprimir na tela a matriz gerada.

Entrada:

A entrada contém os valores de M e N, depois os valores da primeira matriz, depois os valores


da segunda matriz, conforme exemplo.

Saída:

A saída contém os valores da matriz gerada, conforme exemplo.

Exemplo:

Entrada Saída
2 3 5 9 7
3 5 2 5 13 9
4 5 1
2 4 5
1 8 8

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

3) Ler um inteiro N e uma matriz quadrada de ordem N. Mostrar qual o maior elemento de
cada linha. Suponha não haver empates.

Exemplo:

Entrada Saída
4 12
10 5 12 3 7
4 7 0 6 8
3 3 8 1 15
15 13 4 7

4) Ler um inteiro N e uma matriz quadrada de ordem N. Mostrar a soma dos elementos acima
da diagonal principal.

Exemplo:

Entrada Saída
3 12
10 3 2
5 15 7
8 6 4

6) No jogo de xadrez, a torre pode se mover livremente somente na horizontal e vertical,


conforme indicado na figura. Durante uma partida de xadrez, se a torre se move até uma outra
peça, então a torre captura essa peça. Considerando o sistema de coordenadas da figura, você
deve fazer um programa para ler uma matriz 8x8 contendo "zeros" e "uns", representando um
tabuleiro de xadrez, onde cada "um" indica que há uma peça naquela posição do tabuleiro. Em
seguida, você deve ler a posição de uma torre. O programa deve então dizer se a torre tem ou
não condição de capturar alguma peça.

Prof. Osvaldo QUETA


ALGORITMO E ESTRUTURA DE DADO I

Entrada:

A entrada inicia com um número inteiro N (1 < N < 1000) indicando a quantidade de casos de
testes. Cada caso de teste contém a matriz, seguida da posição da torre. É garantido que a
posição da torre não chocará com a posição de outra peça.

Saída:

A saída contém, para cada caso de teste, a letra "S" (maiúscula) se a torre tem condição de
capturar alguma peça, ou a letra "N" (maiúscula) caso contrário.

Exemplo:

Entrada Saída
2 S
0 0 0 0 0 0 0 0 N
0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 0 0
0 5 3
0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0
5 4

Aula nº 12

 LISTA DE PRIORIDADE
 Criando a Primeira Lista de Inteiros
 Criando Uma Lista de String e Adicionando Itens

Prof. Osvaldo QUETA

Você também pode gostar