Buscar

558924_Introdução_Revisão

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 39 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 39 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 39 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

Algoritmos
DEFINIÇÃO: Algoritmo é uma sequência de passos finitos e 
não ambíguos, com o objetivo de solucionar um problema.
• OBSERVAÇÕES:
• Um algoritmo não é a solucão do problema e sim, uma 
sequência de passos finitos para resolvê-lo ou para chegar à 
conclusão de que não é possível fazê-lo.
• Um problema pode ser resolvido por vários algoritmos.
 
Ex 1: Algoritmo para Fritar um Ovo
ALG – Fritar um Ovo
 1) Pegar frigideira, ovo e óleo.
 2) Colocar óleo na frigideira.
 3) Acender o fogo.
 4) Colocar a frigideira no fogo.
 5) Esperar o óleo esquentar.
 6) Colocar o ovo.
 7) Retirar quando pronto.
FIM
 
Ex 2: Fazer Purê de Batatas
ALG – Fazer Purê de Batatas
 1) Colocar 5 xícaras de água na panela.
 2) Acender o fogo e colocar a panela sobre o fogo.
 3) Pegar 6 batatas médias e descascá-las.
 4) Lavar as batatas e cortá-las ao meio.
 5) Colocar as batatas na água fervendo.
 6) Colocar sal a gosto.
 7) Deixar cozinhar por aproximadamente 20 minutos
 8) Amassar as batatas.
 9) Acrescentar uma xícara de leite aproximadamente (sub-alg)
 10) Acrescentar manteiga e misturar até obter um aspecto cremoso
FIM
 
Características de um bom algoritmo
Simplicidade: Chegar à solução do problema com o menor número de 
passos e com os passos mais simples que se possa.
Objetividade: Envolver somente os pontos necessários à solução do 
problema em questão.
Clareza: Sempre indicar (comentários) o que se está fazendo para que 
outra pessoa possa entender, sem dificuldade. 
Facilidade de Manutenção: Construir o algoritmo de maneira que, 
se um dia for necessário mudar algum detalhe, seja fácil fazê-lo sem 
ter que alterar nada além do que se deseja. (EX: Uso de constantes)
 
Método de Trabalho com Algoritmos
→ Cada algoritmo é completamente inédito para o computador e, 
logicamente, ele deve ser alimentado com todos os detalhes necessários 
à solução do problema. 
→ Sequência aconselhada para desenvolver um bom algoritmo: 
 1) Compreender o problema a resolver
 2) Dividí-lo em passos simples
 3) Escrever um algoritmo para cada passo simples
 4) Encadeá-los de maneira a que, juntos, cheguem à solução do 
problema original. 
→ OBS: Se aprende a programar com os dedos (programando) 
 
Componentes de um Algoritmo
→ Ordens ou Comandos
→ Destinatário (das ordens ou comandos)
→ Capacidade básica do destinatário
• OBSERVAÇÕES:
• Οrdens completas: de completo conhecimento por 
parte do destinatário.
• Algoritmo completo: Aquele em que seu destinatário 
sabe como cumprir com todas as suas ordens. 
 
Algoritmos – Exercício Prático
Autômata Controlado por voz 
 - Comandos Conhecidos: 
 - Inclinar Tronco para frente(Xgraus) - Inclinar Tronco para trás(Xgraus)
 - Erguer Tronco sobre as pernas -Baixar Tronco sobre suporte traseiro
 - Colocar peso do corpo sobre a perna(QPerna)
 - Levar perna à frente() - Unir pernas()
 - VoltarADireita() - VoltarAEsquerda()
 -Estruturas Conhecidas:
 -Repetir (Nvezes) …. Fim_Repetir
 -Repetir Enquanto (Condição) … Fim_Repetir 
 -Se (condição) … então …. [Senão …] Fim_Se
 - Construir Novo Comando: Comando <Nome> Parâmetros <n1,...nu/vazio>
 Fim_Parâmetros
 … …
 Fim_Comando
 - Criar Comandos: Ficar em Pé()
 Sentar()
 VoltarARetaguarda()
 PassosEmFrente(QuantPassos)
 
 
FicarEmPé()
Comando <FicarEmPé> Parâmetros <Vazio> FimParâmetros
 Inclinar Tronco para Frente(45)
 Erguer Tronco sobre as pernas
 Inclinar Tronto para Trás(45) 
Fim_Comando
 
Sentar()
Comando <Sentar> Parâmetros <Vazio> FimParâmetros
 Inclinar Tronco para Frente(45)
 Baixar Tronco sobre suporte traseiro
 Inclinar Tronto para Trás(45) 
Fim_Comando
 
VoltarARetaguarda()
Comando <VoltarARetaguarda> Parâmetros <Vazio> FimParâmetros
 Repetir(2)
 VoltarAEsquerda()
 Fim_Repetir 
Fim_Comando
 
Passos em Frente(QuantPassos)
Comando <PassosEmFrente> Parâmetros <QuantPassos> FimParâmetros
 Colocar peso do corpo sobre a perna(Direita)
 Repetir (QuantPassos)
 Levar perna à frente()
 Colocar peso do corpo sobre a perna(DaFrente)
 Fim_Repetir
 Unir pernas()
Fim_Comando
 
Variáveis (princípios)
1) Um espaço alocado na memória RAM para ser 
utilizada por um ou mais processos que necessitam 
de armazenar ou manipular alguma informação.
2) Representam locais de armazenamento
3) Devem ser declaradas, assim terão um tipo 
associado a elas que determinará que valores 
podem ser armazenados e manipulados.
 
Variáveis(Nomeação)
1) Regras de nomeação: 
 - O nome deve conter letras, números, ou 
caracteres de sublinhado( _ ).
 - Deve conter no máximo 255 caracteres.
 - Pensando sempre em “Facilidade de Manutenção” 
e em “Clareza”, é importante ressaltar que você adote 
um padrão para a declaração dessas variáveis.
 
Variáveis – Declaração (C#)
 
 TIPO <nome> [ = Valor] ;
 Ex 1: int QuantPassos;
 Ex 2: int Qpassos = 3;
Dica: utilize nomes significativos. Não utilize nomes de 
variáveis temporárias, nem reutilize nomes – isso vai fazer o 
código ficar muito confuso!
 
 
Tipos Básicos
1) Inteiro (sem parte decimal)
TIPO DESCRIÇÃO
byte Inteiro de 1 byte sem sinal (0 a 255)
sbyte Inteiro de 1 byte com sinal (-127 a 128)
int Inteiro de 4 bytes com sinal (-2.147.483.648 a 2.147.483.147)
uint Inteiro de 4 bytes sem sinal (0 a 4.294.967.295)
long Inteiro de 8 bytes com sinal (-9.223.372.036.854.775.808 a 9.223.372.036.854.775.807)
ulong Inteiro de 8 bytes sem sinal (0 a 18.446.744.073.709.551.615)
short Inteiro de 2 bytes com sinal (-32.768 a 32.767)
ushort Inteiro de 2 bytes sem sinal (0 a 65.535)
 
Tipos Básicos
2) Ponto Flutuante 
TIPO DESCRIÇÃO
float
double
Ponto flutuante binário de 4 bytes ( ≅ 1.5 x 10 -45 a ≅ 3.4 x 10 38 )
Este tipo tem uma precisão de 7 casas decimais.
 Ponto flutuante binário de 8 bytes ( ≅ 1.5 x 10 -45 a ≅ 1.7 x 10 308 ) 
 Este tipo tem uma precisão de 15 casas decimais.
 
Tipos Básicos
3) Lógico
TIPO DESCRIÇÃO
bool true ou false
 
Tipos Básicos
4) Caracter
 char letra = 'a'; 
 letra = '\x61'; letra = '\u61'; 
 letra = (char)97; 
TIPO DESCRIÇÃO
char Um único caracter unicode de 2 bytes
 
Tipos Básicos
5) String
 string VarNome = “lranaldo”;
 string VarNemail = “ira@hotmail.com”; 
 string VarCaminho = @”c:\temp\nara.txt”;
TIPO DESCRIÇÃO
string Unicode com até 1 GB de caracteres
 
Tipos Básicos
5) String
 string VarNome = “lranaldo”;
 string VarNemail = “ira@hotmail.com”; 
 string VarCaminho = @”c:\temp\nara.txt”;
TIPO DESCRIÇÃO
string Unicode com até 1 GB de caracteres
 
Constantes
Constante é um valor que não se altera 
durante a execução de um programa
Constantes Numéricas: 
 
Sufixo Descrição
l,L Constante tipo Long
u,U Constante tipo Uint
ul,UL Constante tipo Ulong
f, F Constante tipo float
m, M Constante tipo decimal
 
Constantes
Exemplo: Constantes Numéricas
 Console.Writeline(2000L); // long
 Float saldo1 = 1900.0F; // float (decimal)
 Float saldo2 = 7.0e3f // float (exponencial)
 Int limite1 = 0xF; // decimal 15
 
 
 
Constantes
Constantes Simbólicas: valor constante identificado por 
um nome.
 Exemplo:
 const double PI = 3.1415;
 const int limite = 10;
 int[] valores = new int[limite];
 // constante simbólica do tipo string
 const string texto =“Digite seu nome:” ;
 
 
 
 
Arrays
Arrays: coleção de elementos de um 
mesmo tipo em que o acesso a cada 
elemento é feito por meio de índices.
 Arrays Unidimensionais: acesso por um 
único índice.
 Tipo [] nome = new tipo[[n]] ; 
 
Arrays “tipados”
Exemplo:
 var pares = new[] {2,4,6,8}; //do tipo int
 var nomes = new[] {“Roberto”, “Arnalcema”, 
“Paulo”} 
 
 
 
 
 
Arrays
 Public static void Main()
 {
 var pares = new[] { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 }; // array tipado -> int
 var nomes = new[] { "Arnalberto", "Paulo", "Arnalcema", "Roberto" }; // 
array tipado - string
 int[] val1 = new int[3]; // array inicializado automaticamente.
 double[] val2 = new [] { 154e-1, 1725e-2, 256e-1 };
 
...
...
 }
 
Arrays
Inicialização Automática
TIPO DESCRIÇÃO
numérico(int, float, etc) 0
bool False
char \0
string null
 
Arrays – Ingresso de dados
 ...
Console.Write("Entre com o tamanho do vetor de inteiros: ");
N = long.Parse(Console.ReadLine());
int[] V = new int[N];
for (int i = 0; i < N; i++)
 {
 Console.Write("Ingresse valor para V[{0}]: ", i);
 V[i] = int.Parse(Console.ReadLine());
 }
 ...
 
Arrays – Parâmetro de Método
 ...
public void Exibe(int []V, int N)
 {
 if (N == 1)
 Console.Write(“{0}”,V[0]); // condição de parada
 else { Exibe(V,N-1)
 Console.Write(“ - {0}”,V[N-1]);
 }
 }
 ...
 
Arrays – Passagem de Argumento
public static void Main() {
 Console.Write("Entre com o tamanho do vetor de inteiros: ");
 N = long.Parse(Console.ReadLine());
 int[] V = new int[N];
 for (int i = 0; i < N; i++){
 Console.Write("Ingresse valor para V[{0}]: ", i);
 V[i] = int.Parse(Console.ReadLine());
 }
 Exibe(V,N);
}
 
Arrays Bidimensionais (Matrizes) 
-Comparados a Tabelas
- Acesso por meio de 2 índices.
 Tipo [ , ] nome = new tipo[[n1,n2]] ; 
 
Matrizes - Inicialização
public static void Main() {
...
 // tres formas de declarar inicializando
 int[,] M1 = new int[2, 3] { { 1, 2, 3 }, { 4, 5, 6 } };
 int[,] M2 = new int[,] { { 2, 4, 6 }, { 8, 10, 12 } };
 int[,] M3 = { { 1, 3, 5 }, { 2, 4, 6 } };
...
}
 
Matrizes - Inicialização
...
 // inicializando depois.
 int[,] M4 = new int[3, 3];
 M4[0, 0] = 1;
 M4[0, 1] = 2;
 M4[0, 2] = 3;
 for(int i = 1; i < 3; i++)
 for (int j = 0; j < 3; j++)
 { Console.Write(" Ingresse M4[{0},{1}]: ", i, j);
 M4[i, j] = int.Parse(Console.ReadLine());
 }
...
}
 
Método
- Corresponde às ações a serem 
executadas sobre objetos
- Conjunto de comandos definidos 
em uma Classe ou estrutura.
 
Método
INTERFACE DESCRIÇÃO
void metodo() não retorna valor e não recebe argumento
void metodo(int valor) não retorna valor mas recebe argumento
int metodo() retorna valor mas não recebe argumento
int metodo(int valor) retorna valor e recebe argumento
 
Método – Passagem valor
...
public int Somar(int n1, int n2)
{
 Console.WriteLine("n1: {0} ",n1);
 Console.WriteLine("n2: {0} ",n2);
 n1 += 800;
 Console.WriteLine("Novo valor de n1: {0} ", n1);
 return (n1 + n2);
}
…
 Calcular Obj = new Calcular();
 tot = Obj.Somar(num1, num2);
 
}
 
Método – Passagem referência
...
public int Somar2(ref int n1, ref int n2)
{
 Console.WriteLine("n1: {0} ",n1);
 Console.WriteLine("n2: {0} ",n2);
 n1 += 800;
 Console.WriteLine("Novo valor de n1: {0} ", n1);
 return (n1 + n2);
}
…
 Calcular Obj = new Calcular();
 tot2 = Obj.Somar2(ref num1, ref num2);
 
}
 
Método – Observações
● Somar e Somar2 são métodos definidos na Classe 
Calcular
● Obj é um objeto da classe Calcular, declarado 
assim:
 Calcular Obj = new Calcular();
 
Método – Argumentos nomeados
 static void Main()
 {
 exibe(idade: 35, nome: "Paula", sexo: 'F');
 exibe(sexo: 'M', nome: "Arnalberto", idade: 51);
 exibe("Paulo Roberto", 47, 'M');
 }
 static void exibe(string nome, int idade, char sexo)
 {
 string s = (sexo == 'F') ? "Feminino" : "Masculino";
 Console.WriteLine(" {0} tem {1} anos e é do sexo {2}.", nome, idade, s);
 }
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 39

Outros materiais