Buscar

608673_AED (2) - Revisão Geral

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Revisão Geral
• Introdução – Objetivos
• Definição de Algoritmo
• Estruturas Básicas em Algoritmos – Implementação em C# .NET
• Sequencial
• Condicional
• Repetição/Iteração
• Vetores e Matrizes
• Funções e Procedimentos
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Bibliografia
• MANZANO, José Augusto N. G.; OLIVEIRA, Jayr F. – Algoritmos: Lógica para Desenvolvimento de Programação
• CORMEN, Thomas H. et al. – Algoritmos: Teoria e Prática
• DEITEL & DEITEL – C# - Como Programar – 2003
• PREISS, Bruno – Estruturas de dados e algoritmos. Rio de Janeiro: Campus, 2001. 584p.
• SZWARCFITER, Jayme Luiz; MARKENZON, Lilian – Estruturas de dados e seus Algoritmos
• VILLAS, Marcos Vianna; VILLASBOAS, Luiz Felipe P. – Programação – Conceitos, Técnicas e Linguagens.
Rio de Janeiro: Campus, 1988. 196p.
• MCDONALD, Matthew – Begining ASP.NET 4 in C# 2010 – Apress – 2010
• MCMILLAN, Michael – Data Structures and Algorithms Using C# – Cambridge University Press – 2007
• Stellman & Greene – C# - Use a Cabeça – 2ª Edição – 2011
• Material de Aula – Algoritmos e Técnicas de Programação – Aluísio Eustáquio da Silva – 2012
2
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Introdução
Objetivo
• Revisão rápida e objetiva dos conceitos sobre algoritmos trabalhados em ATP
• Revisão das estruturas básicas de programação da Linguagem C# .NET
• Identificação de falhas de aprendizagem e discussão de mecanismos para resgate de conteúdos
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Introdução
Algoritmo? Definição de Algoritmo
“Algoritmo é uma sequência de passos que visa atingir um objetivo bem definido”
(FORBELONE, 1999).
“(...) é a descrição de uma sequência de passos que deve ser seguida para a realização de uma tarefa.”
(ASCENCIO, 1999).
“Algoritmo é a sequência finita de instruções ou operações cuja execução, em tempo finito, resolve um
problema computacional, qualquer que seja sua instância”
(SALVETTI, 1999)
3
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Introdução
Algoritmo? Definição de Algoritmo
Algoritmos não são necessariamente computacionais. Eles representam passos necessários para a
realização de uma atividade.
Diferentes algoritmos podem realizar a mesma tarefa utilizando um conjunto diferente de instruções e
isso pode demandar mais ou menos tempo e esforço.
A complexidade do algoritmo depende de estruturas de dados e do uso de instruções adequadas a
uma aplicação. Por exemplo, vestir meias e sapatos antes da calça é diferente de vestir a calça e depois
as meias e os sapatos, embora no final um mesmo objetivo tenha sido alcançado.
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Estruturas de Algoritmos – Implementação em C# .NET
• Estrutura Sequencial
• Estrutura Condicional
• Estruturas de Repetição (Iteração)
• Funções e Procedimentos
• Matrizes e Vetores
4
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Estrutura Sequencial
...
Console.Write("Salário do Funcionário: ");
Salário = float.Parse(Console.ReadLine());
Console.Write("Aumento Percentual....: ");
Percentual = float.Parse(Console.ReadLine());
NovoSalário = Salário + Salário * Percentual/100;
Console.WriteLine("\nSalário Atual: {0:F2}", NovoSalário);
Console.ReadKey();
...
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Estrutura Condicional
IF - ELSE
...
Delta = Math.Pow(b, 2)-4*a*c;
if (Delta < 0)
Console.WriteLine("\nNão existem Raízes Reais!\n");
else
{
Raiz1 = (-b + Math.Sqrt(Delta)) / (2 * a);
Raiz2 = (-b - Math.Sqrt(Delta)) / (2 * a);
Console.WriteLine("\nRaiz 1 = {0:F2}", Raiz1);
Console.WriteLine("Raiz 2 = {0:F2}\n", Raiz2);
}
...
5
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Estrutura Condicional
Estrutura SWITCH
...
switch (Op)
{
case 1:
if (Console.CapsLock)
Console.WriteLine("O NumLock está Ligado");
break;
case 2:
Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.Black;
break;
default:
Console.WriteLine("Opção Inválida !!!");
break;
...
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Estruturas de Repetição
Estrutura FOR
...
Random x = new Random();
Console.WriteLine("Exemplo com FOR\n");
for (i = 1; i <= 10; i++)
{
Console.WriteLine(“Sorteio {0:00}: {1,10}",i,x.Next());
}
Console.ReadKey();
...
6
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Estruturas de Repetição
Estrutura FOREACH
...
string[] Frase = new string[]
{"SI","ST","EM","AS"," D","E ","IN","FO","RM","AÇ","ÃO"};
foreach(string Letras in Frase)
{
Console.Write(Letras);
}
...
{COLEÇÃO}
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Estruturas de Repetição
Estrutura WHILE
...
i=1;
while(i<=10)
{
Console.WriteLine(“Sorteio {0:00}: {1,10}",i,x.Next());
i++;
}
Console.ReadKey();
...
Teste
7
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Estruturas de Repetição
Estrutura DO - WHILE
...
i = 1;
do
{
Console.Write("\nSorteio {0:00}: {1,10}", i, x.Next());
i++;
Console.Write("\t\tDeseja um outro Número? (S/N) ");
Resp = Console.ReadKey();
} while (Resp.KeyChar == 'S' || Resp.KeyChar=='s');
...
Teste
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Exercício
Alguns números de quatro algarismos possuem uma característica particular. Se separamos esse
número em dois grupos e os somarmos encontramos um outro número cujo quadrado é exatamente
igual ao número fornecido anteriormente. Veja o exemplo:
Número = 3025
Separando o número em dois grupos de dois algarismos temos o 30 e o 25 .
A soma de 30 com 25 é igual a 55
O Quadrado de 55 é igual a 3025.
Faça um programa que mostre os números de 1000 a 9999 que possuem essa característica.
8
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Vetores e Matrizes
Um vetor é uma variável composta, homogênea e unidimensional, formada por um conjunto de
variáveis do mesmo tipo, com o mesmo identificador, e alocadas sequencialmente na memória.
Como elas possuem o mesmo nome, o que as distingue é um índice que referencia sua localização
dentro da estrutura.
int[] Idades = new int[100];
idades[0] = 24;
idades[1] = 12;
idades[2] = 19;
...
idades[99] = 23;
Vetor 24 12 19 23
1 2 3 4 ... 98 99 100
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Vetores e Matrizes
O trabalho com Matrizes segue o mesmo princípio.
float[,] Notas = new float[4,5];
Notas[0, 0] = 13.6F;
Notas[0, 1] = 17.2F;
Notas[2, 2] = 23.1F;
Notas[3, 4] = 37.7F;
1 13,6 17,2
2
3 23,1
4 37,7
1 2 3 4 5
9
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Vetores e Matrizes
Exemplo de Código (Vetor)
...
int i;
int[] Vetor = new int[5];
//Entrada de Dados
Console.WriteLine("Entrada de Elementos dos Vetores\n");for (i = 0; i < 5; i++)
{
Console.Write("Digite o Elemento {0} do Vetor: ", i + 1);
Vetor[i] = int.Parse(Console.ReadLine());
}
...
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Vetores e Matrizes
Exemplo de Código (Matriz)
...
int i, j;
int[,] Matriz=new int[3,3];
//Entrada dos Dados da Matriz
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
Console.Write("Elemento ({0},{1}) da Matriz: ", i + 1, j + 1);
Matriz[i, j] = int.Parse(Console.ReadLine());
}
}
...
10
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Exercício
Faça um programa que receba os elementos de dois vetores, A e B, cada um com 5 posições.
Considere que nenhum dos vetores possui elementos repetidos.
Crie um vetor resultante C que possua os elementos comuns entre A e B.
Crie um vetor resultante D que contenha os elementos de A que não existam em B.
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Exercício
Faça um programa que receba os elementos de uma matriz de 5 linhas por 3 colunas.
Mostre a soma dos elementos de cada uma das linhas e das colunas da matriz.
11
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Funções e Procedimentos
Uma Função ou um Procedimento compreende um agrupamento de código que serve a uma atividade
específica dentro de uma estrutura de programa.
Modularizar um programa através do uso de Funções e de Procedimentos é uma maneira fácil e ao
mesmo tempo sofisticada de organizar seu código.
Funções e Procedimentos possuem um único nome pelo qual são chamados. A execução do programa
principal é desviada para a rotina e somente ao término dela é que o controle retorna ao programa
que a chamou.
Programa
Principal
Rotina
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Funções e Procedimentos
static void Main(string[] args)
{
...
...
Func_A();
...
...
...
Resultado = Func_B();
...
...
}
void Func_A()
{
...
...
...
}
int Func_B()
{
...
...
return x;
}
Função – Retorno de Valor (explícito)
Procedimento – Não há retorno de valor através da rotina (void)
12
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Funções e Procedimentos
Uma Função ou Procedimento pode precisar ter acesso a dados do programa principal para a
computação de alguma coisa. Isso é feito através do uso de parâmetros.
static void Main(string[] args)
{
...
...
Resultado = Func_A(a, b, c);
...
} int Func_A(int x, int y, float z)
{
...
...
return R;
}É possível termos em um programamais de uma função com mesmo nome?
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Exercício
Faça um programa que chame uma função capaz de calcular o Fatorial de um número inteiro.
13
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Funções e Procedimentos – O que é Passagem de Parâmetros por Referência??
Em uma passagem de parâmetros por referência não existe a cópia do valor do parâmetro real para o
parâmetro formal dentro da rotina.
Apenas uma referência a esse valor é passada para a função e uma alteração nesse parâmetro afeta o
valor real referenciado por ele.
static void Main(string[] args)
{
...
...
Func_A(x, ref y);
...
}
void Func_A(int a, ref int b)
{
...
...
b = 99;
}
y = 99
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Algoritmos e Estruturas de Dados
Revisão Geral
Exercício
Faça um programa que chame uma função capaz de calcular , sendo e inteiros.
Utilize passagem de parâmetros por referência.

Outros materiais