Buscar

POO - Revisão Geral (1)

Prévia do material em texto

Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 1
Revisão Geral
• Introdução – Objetivos
• Definição de Algoritmo
• Estruturas Básicas em Algoritmos – Implementação em C# .NET
• Estrutura Sequencial
• Expressões Aritméticas e Ordem de Avaliação de Operadores
• Estrutura Condicional
• Operadores Relacionais e Lógicos
• Ordem de Avaliação de Operadores Lógicos
• Estruturas de Repetição/Iteração
• Vetores e Matrizes
• Funções e Procedimentos
• Métodos de Passagem de Parâmetros
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 2
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
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 3
Introdução
Objetivo
• Revisão rápida e objetiva dos conceitos sobre algoritmos trabalhados em ATP e LabATP
• Revisão das estruturas básicas de programação na 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
Programação Orientada por Objetos
Revisão Geral
Slide 4
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)
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 5
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 qualquer.
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 possa ser alcançado.
Complexidade de software diz respeito a tempo de execução e consumo de recursos computacionais.
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 6
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
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 7
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
Programação Orientada por Objetos
Revisão Geral
Slide 8
Expressões Aritméticas
• Ordem de Avaliação de Operadores Aritméticos
• ++ e -- (Incremento e Decremento - Pré-Fixado)
• ++ e -- (Incremento e Decremento - Pós-Fixado)
• * e / (Multiplicação e Divisão)
• + e - (Soma e Subtração)
• Uso de Parênteses
• Exemplo em C# - Cálculo das Raízes de uma Equação do 2º Grau
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 9
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);
}
...
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 10
Operadores Relacionais
• Operadores
• > Maior que
• < Menor que
• >= Maior ou Igual a
• <= Menor ou Igual a
• == Igual a
• != Diferente de
• Exemplo em C#
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 11
Operadores Lógicos
• Operadores Básicos e Ordem de Avaliação de Operadores Lógicos
• ! NÃO (NOT)
• && E (AND)
• || OU (OR)
• Exemplo em C#
Exp1 Exp2 Exp1 AND Exp2 Exp1 OR Exp2 NOT Exp1
V V V V F
V F F V F
F V F V V
F F F F V
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 12
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
Programação Orientada por Objetos
Revisão Geral
Slide 13
Estruturas de Repetição
Estrutura FOR
(Estrutura de Repetição baseada em Contador)
...
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();
...
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 14
Estruturas de Repetição
Estrutura WHILE
(Estrutura de Repetição baseada em Lógica)
...
i=1;
while(i<=10)
{
Console.WriteLine(“Sorteio {0:00}: {1,10}", i, x.Next());
i++;
}
Console.ReadKey();
...
Teste
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 15
Estruturas de Repetição
Estrutura DO – WHILE
(Estrutura de Repetição baseada em Lógica)
...
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
Programação Orientada por Objetos
Revisão Geral
Slide 16
Estruturas de Repetição
Estrutura FOREACH
(Estrutura de Repetição baseada em Coleção)
...
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
ProgramaçãoOrientada por Objetos
Revisão Geral
Slide 17
Exercício I
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.
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 18
Exercício II
Um Número é dito Primo se possui como divisores o número 1 e ele mesmo. Em outras palavras, um
Número Primo possui dois divisores de 1 até ele.
Faça um programa que mostre se um determinado número inteiro, lido pelo teclado, é Primo.
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 19
Exercício III
Um Número é dito Perfeito se a soma de seus divisores menores que ele é igual a ele. Por exemplo, o
número 6 possui os divisores 1, 2 e 3, cuja soma é igual a 6. Ele é um Número Perfeito.
Faça um programa que liste os números perfeitos de 1 a 1000.
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 20
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 essas variáveis são referenciadas por um 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
Programação Orientada por Objetos
Revisão Geral
Slide 21
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
Programação Orientada por Objetos
Revisão Geral
Slide 22
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
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 23
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());
}
}
...
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 24
Exercício IV
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
Programação Orientada por Objetos
Revisão Geral
Slide 25
Exercício V
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.
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 26
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/Função
Desvio
Retorno
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 27
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)
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 28
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 programa
mais de uma função com mesmo nome?
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 29
Exercício VI
Faça um programa que chame uma função capaz de calcular o Fatorial de um número inteiro.
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 30
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
Programação Orientada por Objetos
Revisão Geral
Slide 31
Exercício VII
Faça um programa que chame uma função capaz de calcular , sendo e inteiros.
Utilize passagem de parâmetros por referência.
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 32
Exercícios Gerais de Fixação
Pontifícia Universidade Católica de Minas Gerais
Curso de Sistemas de Informação
Programação Orientada por Objetos
Revisão Geral
Slide 33
Faça um programa que mostre o resultado das seguintes séries numéricas: = − 1 − 2 − 3 … 1 = 1000 + 1 − 2 + 3 − 4 + ⋯± 
Um professor tem uma turma de 80 alunos. Faça um programa que leia a nota de cada um dos alunos,
calcule a média da turma e relacione aqueles alunos que estão com nota abaixo da média, indicando a
diferença de pontos.
Dados dois vetores R e S, cada um com 10 posições. Faça um algoritmo que leia os valores de R e S e
gere o vetor V resultante com os elementos comuns a R e S, sem repetição.
Dados dois vetores R e S, cada um com 10 posições. Faça um algoritmo que leia os valores de R e S e
gere o vetor V resultante com os elementos de R que não estão em S, sem repetição.
Faça um programa que gere uma matriz de números aleatórios de ordem n, fornecido pelo usuário.
Mostre os elementos dessa matriz que estão na diagonal principal, que estão acima e abaixoda
diagonal principal, e que estão na diagonal secundária.

Mais conteúdos dessa disciplina