Algoritmos e 
Programação 
Prof. Marcos Saúde 
marcosr@pitagoras.com.br
Quem sou eu ? 
 Pós-Graduação em Engenharia de Sistemas 
 Faculdade Novo Milênio – Vila Velha-ES 
 Graduação: Ciência d...
Quem sou eu ? 
 Atividades já exercidas 
 Consultor de Banco de Dados e Analista de 
Sistemas em empresas como: Gaia Imp...
O que é a disciplina ? 
 Ementa 
 Estruturas de Decisão; Estruturas de Repetição; 
Vetores e Matrizes; Cadeias de Caract...
O que é a disciplina ? 
 Objetivo Geral 
 A disciplina Algoritmos e Programação tem como 
objetivo apresentar aspectos f...
O que é a disciplina ? 
 Objetivos Específicos 
 Apresentar a importância da construção de 
algoritmos e as habilidades ...
O que é a disciplina ? 
 Competências 
 Raciocinar de forma lógica e abstrata, tornando-se 
apto ao desenvolvimento de a...
Programa da Disciplina 
 1 CONCEITOS INICIAIS 
 1.1 Definição de algoritmos. 
 1.2 Formas de representação. 
 1.3 Tipo...
Como ser aprovado ? 
 Procedimentos de Avaliação 
 Etapa 1: 30 pontos – sendo 20 pontos em avaliações 
individuais e 10 ...
Onde estudar ? 
 Bibliografia Básica 
 ARAÚJO, Everton C. Algoritmos: fundamento e 
prática. 2.ed. Florianópolis: Visual...
Conceitos Básicos 
 Lógica de Programação 
 é a técnica de encadear pensamentos 
para atingir determinado objetivo; 
 S...
Conceitos Básicos 
 Instruções 
 são conjuntos de regras ou normas definidas para 
a realização ou emprego de algo. Em i...
Conceitos Básicos 
 Programas de computadores 
 São algoritmos escritos em uma linguagem 
de programação; 
 Linguagens ...
Conceitos Básicos 
 Regras para construção de um 
bom algoritmo: 
 Usar somente um verbo por frase; 
 Imaginar que você...
Algoritmos 
 Os computadores somente fazem aquilo que 
mandamos, e não necessariamente o que desejamos 
que eles façam; 
...
Algoritmos 
 Programar é fácil ? 
 NÃO. Mas podemos tornar a tarefa de 
programar mais fácil. 
 De que forma ? 
 Divid...
Algoritmos 
 Ilustração de um algoritmo 
 Algoritmo para realizar uma tarefa 
bastante familiar: a substituição de 
uma ...
Algoritmos 
 Ilustração de um algoritmo 
 1. Posicione a escada debaixo da lâmpada queimada 
 2. Escolha uma nova lâmpa...
Algoritmos 
 Ilustração de um algoritmo 
 1. Posicione a escada debaixo da lâmpada queimada 
 2. Selecione uma nova lâm...
Algoritmos 
 Este processo de aumentar o detalhamento 
de um algoritmo pode continuar quase que 
indefinidamente. Entreta...
Algoritmos 
 Como saber se já temos um nível suficiente de 
detalhes no algoritmo ? 
 Depende do “agente” que irá execut...
Formas de representar um 
algoritmo 
Como representar 
um algoritmo?
Formas de representar um 
algoritmo 
 Algoritmos podem ser representados, dentre outras maneiras, 
por: 
 DESCRIÇÃO NARR...
Formas de representar um 
algoritmo 
Exemplo: 
Algoritmo para converter uma 
temperatura em Fahrenheit 
para Celsius
Formas de representar um 
algoritmo 
 Descrição narrativa do algoritmo 
Fahrenheit-Celsius: 
1. solicite a temperatura em...
Formas de representar um 
algoritmo 
 Fluxograma (Diagrama de Módulos) 
 Seus principais símbolos gráficos são: 
= Iníci...
Formas de representar um 
algoritmo 
 Fluxograma do algoritmo Fahrenheit-Celsius 
Início 
Fahrenheit 
Celsius = 5/9 * (Fa...
Formas de representar um 
algoritmo 
 Linguagem algorítmica (pseudo-código) 
 A forma geral de um algoritmo em pseudo-có...
Formas de representar um 
algoritmo 
 LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO) 
 Onde: 
 Algoritmo 
 Indica o início da d...
Formas de representar um 
algoritmo 
 LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO) 
 Onde: 
 Início 
 Palavra que delimita o ...
Formas de representar um 
algoritmo 
 Pseudo-código do algoritmo Fahrenheit-Celsius 
Algoritmo Fahrenheit-Celsius 
Real: ...
Formas de representar um 
algoritmo 
Ling. Algorítmica 
Algoritmo Fahrenheit-Celsius 
Real: Fahrenheit, Celsius; 
Início 
...
Formas de representar um 
algoritmo 
Vantagens Desvantagens 
Descrição 
Narrativa 
· O português é bastante conhecido 
por...
Construindo algoritmos 
 Uma boa prática para construir algoritmos é dividir o problema 
em 3 fases (Entrada, Processamen...
Construindo algoritmos 
 No algoritmo Fahrenheit-Celsius temos: 
 ENTRADA: Temperatura em Fahrenheit 
 PROCESSAMENTO: C...
Construindo algoritmos 
Dividir o problema em Entrada, 
Processamento e Saída 
irá ajudá-lo a ordenar corretamente as 
ins...
Construindo algoritmos 
Por isso, antes de construir um algoritmo, 
pare para pensar e identificar: 
Que dados preciso par...
Atividade 1 
 Identifique a entrada, o processamento e a saída dos problemas 
abaixo: 
1. Calcular e exibir a média ponde...
Atividade 1 – Respostas 
1. Calcular e exibir a média ponderada de 2 notas 
dadas. (nota1= peso 6 e nota2= peso 4) 
 ENTR...
Atividade 1 – Respostas 
2. Reajustar um salário em 7,75%. 
 ENTRADA: salário 
 PROCESSAMENTO: salárioR = salário+ 
(sal...
Atividade 1 – Respostas 
4. Dada uma taxa de câmbio, transformar um valor em Dólar para Reais. 
 ENTRADA: câmbio e dólar ...
Algoritmos 
 Dados 
 Tipos de Dados 
 Operações primitivas
Algop - aula 01
Algop - aula 01
Algop - aula 01
Próximos SlideShares
Carregando em…5
×

Algop - aula 01

355 visualizações

Publicada em

Material de apoio para Algoritmos e Programação da Faculdade Pitágoras em Linhares – 2010

Publicada em: Engenharia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
355
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Algop - aula 01

  1. 1. Algoritmos e Programação Prof. Marcos Saúde marcosr@pitagoras.com.br
  2. 2. Quem sou eu ?  Pós-Graduação em Engenharia de Sistemas  Faculdade Novo Milênio – Vila Velha-ES  Graduação: Ciência da Computação  UFES – Universidade Federal do Espírito Santo  Especialização em Sistemas de Informação;  DBA em SQL Server (Administração de Bancos);  Desenvolvedor de Aplicações Microsoft ASP.NET Web usando Visual Studio .NET;  Análise e Desenvolvimento de Sistemas com especialidade em Programação C# para a plataforma Microsoft .NET e Programação Avançada em Delphi;
  3. 3. Quem sou eu ?  Atividades já exercidas  Consultor de Banco de Dados e Analista de Sistemas em empresas como: Gaia Importação e Exportação de Frutas Ltda; Agra Export; Caldara; Aracruz Celulose; Tribunal de Contas do Estado do Espírito Santo; CAAP Têxtil;  Professor de Cursos de Extensão na área de Programação Básica e Avançada; Implementação e Administração de Bancos de Dados;
  4. 4. O que é a disciplina ?  Ementa  Estruturas de Decisão; Estruturas de Repetição; Vetores e Matrizes; Cadeias de Caracteres; Subalgoritmos: Funções e Procedimentos; Estilo de Programação; Particularidades da Linguagem C;
  5. 5. O que é a disciplina ?  Objetivo Geral  A disciplina Algoritmos e Programação tem como objetivo apresentar aspectos fundamentais sobre os algoritmos e a programação de computadores, bem como as estruturas que podem ser utilizadas na construção de programas;  A disciplina mostrará ao aluno a forma como os algoritmos são implementados em uma linguagem de programação;
  6. 6. O que é a disciplina ?  Objetivos Específicos  Apresentar a importância da construção de algoritmos e as habilidades necessárias nessa etapa da construção do programa;  Identificar as possíveis estruturas e técnicas que podem ser utilizadas no projeto de algoritmos;  Estabelecer um primeiro contato com a linguagem de programação C, através da qual poderão ser implementados os programas correspondentes aos algoritmos projetados;
  7. 7. O que é a disciplina ?  Competências  Raciocinar de forma lógica e abstrata, tornando-se apto ao desenvolvimento de algoritmos;  Reconhecer as melhores estruturas, técnicas e estilos de programação a serem aplicados na resolução de um determinado problema;  Utilizar a linguagem C para a implementação de algoritmos;
  8. 8. Programa da Disciplina  1 CONCEITOS INICIAIS  1.1 Definição de algoritmos.  1.2 Formas de representação.  1.3 Tipos de dados, variáveis e constantes.  1.4 Instruções primitivas.  2 ESTRUTURAS DE DECISÃO  2.1 Estrutura condicional simples.  2.2 Estrutura condicional composta.  2.3 Estrutura condicional com múltiplas possibilidades de escolha.  3 ESTRUTURAS DE REPETIÇÃO  3.1 Repetição controlada por variável.  3.2 Repetição condicional com teste no início.  3.3 Repetição condicional com teste no final.  4 VETORES E MATRIZES  4.1 O vetor como estrutura de dados.  4.2 Operações sobre vetores.  4.3 Classificação e pesquisa com vetores.  4.4 Matrizes.  5 CADEIAS DE CARACTERES  5.1 Conceitos iniciais em strings.  5.2 Operações básicas para manipulação de cadeias.  6 SUBALGORITMOS: FUNÇÕES E PROCEDIMENTOS  6.1 Procedimentos.  6.2 Funções.  6.3 Parâmetros e passagem de parâmetros.  6.4 Variáveis locais e globais.  7 ESTILO DE PROGRAMAÇÃO E O MÉTODO “TOP-DOWN”  7.1 Importância do estilo e a qualidade do programa.  7.2 Refinamentos e o método “Top-Down”.  7.3 Fases do processo de programação.  7.4 A programação como atividade humana.  8 TIPOS ESTRUTURADOS  8.1 Registros.  8.2 Arquivos.  9 INTRODUÇÃO A ESTRUTURAS DINÂMICAS  9.1 Ponteiros.  9.2 Estruturas dinâmicas.
  9. 9. Como ser aprovado ?  Procedimentos de Avaliação  Etapa 1: 30 pontos – sendo 20 pontos em avaliações individuais e 10 pontos em equipe;  Etapa 2: 30 pontos – sendo 20 pontos em avaliações individuais e 10 pontos em equipe;  Etapa 3: 40 pontos – sendo 30 pontos em avaliações individuais e 10 pontos em equipe;  Datas das provas a serem estabelecidas pela coordenação;
  10. 10. Onde estudar ?  Bibliografia Básica  ARAÚJO, Everton C. Algoritmos: fundamento e prática. 2.ed. Florianópolis: VisualBooks, 2005.  MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo. Algoritmos: lógica para desenvolvimento de programação de computadores. 17.ed. São Paulo: Érica, 2005.  SALIBA, Walter Luís Caram. Técnicas de programação: uma abordagem estruturada. São Paulo: Pearson Education do Brasil, 1992.
  11. 11. Conceitos Básicos  Lógica de Programação  é a técnica de encadear pensamentos para atingir determinado objetivo;  Seqüência Lógica  são passos executados até atingir um objetivo ou solução de um problema;
  12. 12. Conceitos Básicos  Instruções  são conjuntos de regras ou normas definidas para a realização ou emprego de algo. Em informática, é o que indica a um computador uma ação elementar a executar;  Algoritmo  é uma seqüência de instruções ordenadas de forma lógica, e sem ambiguidade, para a resolução de uma determinada tarefa ou problema;
  13. 13. Conceitos Básicos  Programas de computadores  São algoritmos escritos em uma linguagem de programação;  Linguagens de programação  São programas que permitem o desenvolvimento de programas;
  14. 14. Conceitos Básicos  Regras para construção de um bom algoritmo:  Usar somente um verbo por frase;  Imaginar que você está desenvolvendo um algoritmo para pessoas que não trabalham com informática;  Usar frases curtas e simples;  Ser objetivo;
  15. 15. Algoritmos  Os computadores somente fazem aquilo que mandamos, e não necessariamente o que desejamos que eles façam;  Não deve haver nenhuma ambiguidade nas instruções dos programas que fornecemos aos computador, nem a possibilidade de interpretações alternativas;  Uma afirmação como “calcule a média das notas neste teste” é muito imprecisa, apesar de parecer especificar aquilo que desejamos. Muitos detalhes foram omitidos; entre eles citamos: onde estão as notas, quantas são, os ausentes devem ou não ser incluídos etc.
  16. 16. Algoritmos  Programar é fácil ?  NÃO. Mas podemos tornar a tarefa de programar mais fácil.  De que forma ?  Dividindo o problema. Um trabalho de programação pode tornar-se muito mais fácil se o dividirmos sistematicamente em partes menos complexas (a abordagem de dividir para conquistar).
  17. 17. Algoritmos  Ilustração de um algoritmo  Algoritmo para realizar uma tarefa bastante familiar: a substituição de uma lâmpada queimada;  1. Remova a lâmpada queimada  2. Coloque a nova lâmpada
  18. 18. Algoritmos  Ilustração de um algoritmo  1. Posicione a escada debaixo da lâmpada queimada  2. Escolha uma nova lâmpada de mesma potência da queimada  3. Suba na escada até que a lâmpada possa ser alcançada  4. Gire a lâmpada queimada no sentido anti-horário até que ela se solte  5. Posicione a nova lâmpada no soquete  6. Gire-a no sentido horário até que ela se firme  7. Desça a escada
  19. 19. Algoritmos  Ilustração de um algoritmo  1. Posicione a escada debaixo da lâmpada queimada  2. Selecione uma nova lâmpada para a substituição  Se a potência não for a mesma da queimada, repita o processo até encontrar uma que sirva  Descarte a lâmpada selecionada  Selecione uma nova lâmpada  3. Repita até que a lâmpada possa ser alcançada  Suba num degrau da escada  4. Repita até que lâmpada fique livre do soquete  Gire a lâmpada no sentido anti-horário  5. Posicione a nova lâmpada no soquete  6. Repita até que a lâmpada esteja firme no soquete  Gire a lâmpada no sentido horário  7. Desça a escada
  20. 20. Algoritmos  Este processo de aumentar o detalhamento de um algoritmo pode continuar quase que indefinidamente. Entretanto, o algoritmo para trocar uma lâmpada queimada mostra como os algoritmos podem ser expressos;  As operações indicadas são simples e sem ambiguidade, as decisões necessárias são imediatas e a ordem na qual os passos devem ser seguidos é claramente expressa;
  21. 21. Algoritmos  Como saber se já temos um nível suficiente de detalhes no algoritmo ?  Depende do “agente” que irá executar o algoritmo;  Se estivermos dando uma receita para o chefe principal da cozinha de um grande hotel, estaremos admitindo sua familiaridade com muitos detalhes de cozinha que teriam de ser explicados em termos compreensíveis para uma pessoa que estivesse fervendo sua primeira chaleira de água;  Analogamente, o mesmo é verdadeira para algoritmos que se destinam à execução no computador. Seu nível de detalhe dependerá da ferramenta de programação que estamos utilizando;
  22. 22. Formas de representar um algoritmo Como representar um algoritmo?
  23. 23. Formas de representar um algoritmo  Algoritmos podem ser representados, dentre outras maneiras, por:  DESCRIÇÃO NARRATIVA  Utiliza uma linguagem de escrita natural para descrever algoritmos.  FLUXOGRAMA (DIAGRAMA DE MÓDULOS)  Utiliza uma linguagem de representação gráfica para descrever algoritmos.  LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO)  Utiliza uma linguagem de escrita artificial para descrever algoritmos.
  24. 24. Formas de representar um algoritmo Exemplo: Algoritmo para converter uma temperatura em Fahrenheit para Celsius
  25. 25. Formas de representar um algoritmo  Descrição narrativa do algoritmo Fahrenheit-Celsius: 1. solicite a temperatura em Fahrenheit; 2. transforme a temperatura em Fahrenheit para Celsius; 3. informe a temperatura em Celsius.
  26. 26. Formas de representar um algoritmo  Fluxograma (Diagrama de Módulos)  Seus principais símbolos gráficos são: = Início e final do fluxograma = Operação de entrada de dados = Operação de saída de dados em impressora = Operação de saída de dados em vídeo = Operações de processamento = Decisão = Seta de Fluxo de Dados = Conector de Fluxo de Dados
  27. 27. Formas de representar um algoritmo  Fluxograma do algoritmo Fahrenheit-Celsius Início Fahrenheit Celsius = 5/9 * (Fahrenheit – 32) Celsius Fim Início do algoritmo Entrada da temperatura (F) Cálculo da temperatura (C) Apresentação do resultado Fim do algoritmo
  28. 28. Formas de representar um algoritmo  Linguagem algorítmica (pseudo-código)  A forma geral de um algoritmo em pseudo-código: Algoritmo <nome_do_algoritmo> [<declaração_de_variáveis>] Início <corpo_do_algoritmo> Fim.
  29. 29. Formas de representar um algoritmo  LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO)  Onde:  Algoritmo  Indica o início da definição do algoritmo.  <nome_do_algoritmo>  Nome dado ao algoritmo para distingui-lo dos demais.  [<declaração_de_variáveis>]  Parte opcional onde são declaradas as variáveis globais usadas no algoritmo principal e, eventualmente, nos sub-algoritmos.
  30. 30. Formas de representar um algoritmo  LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO)  Onde:  Início  Palavra que delimita o início do corpo do algoritmo.  <corpo_do_algoritmo>  Conjunto de instruções do algoritmo.  Fim  Palavra que delimita o término do corpo do algoritmo.
  31. 31. Formas de representar um algoritmo  Pseudo-código do algoritmo Fahrenheit-Celsius Algoritmo Fahrenheit-Celsius Real: Fahrenheit, Celsius; Início Ler (Fahrenheit); Celsius  5/9 * (Fahrenheit – 32); Escrever (Celsius); Fim
  32. 32. Formas de representar um algoritmo Ling. Algorítmica Algoritmo Fahrenheit-Celsius Real: Fahrenheit, Celsius; Início Ler (Fahrenheit); Celsius  5/9 * (Fahrenheit – 32); Escrever (Celsius); Fim Desc. Narrativa Fluxograma 1. Solicite a Início temperatura em Fahrenheit. Fahrenheit 2. Transforme de Fahrenheit para Celsius. Celsius = 5/9 * (Fahrenheit – 32) 3. Informe a temperatura em Celsius Celsius. Fim
  33. 33. Formas de representar um algoritmo Vantagens Desvantagens Descrição Narrativa · O português é bastante conhecido por nós. · Imprecisão. · Pouca confiabilidade (a imprecisão acarreta a desconfiança). · Extensão (normalmente, escreve-se muito para dizer pouca coisa). Fluxograma · Padrão mundial. · Ferramenta bem conhecida. · Figuras dizem muito mais que palavras. · Complica-se à medida que o algoritmo cresce. · Pouca atenção aos dados, não oferecendo recursos para declará-los. Linguagem Algorítmica · Independência de linguagem de programação. · Usa o português como base. · Define-se melhor quais e como os dados vão estar estruturados. · Passagem quase imediata do algoritmo para uma linguagem de programação qualquer. · Exige a definição de uma linguagem não real para trabalho. · Não é padronizada.
  34. 34. Construindo algoritmos  Uma boa prática para construir algoritmos é dividir o problema em 3 fases (Entrada, Processamento e Saída).  Lembra-se do seu primeiro mantra de programação? EEnnttrraaddaa PPrroocceessssaammeennttoo SSaaííddaa  ENTRADA: São os dados de entrada do algoritmo.  PROCESSAMENTO: São os procedimentos utilizados para chegar ao resultado final.  SAÍDA: São os dados já processados.
  35. 35. Construindo algoritmos  No algoritmo Fahrenheit-Celsius temos:  ENTRADA: Temperatura em Fahrenheit  PROCESSAMENTO: Celsius = 5/9 *(Fahrenheit – 32)  SAÍDA: Temperatura em Celsius  Num algoritmo para calcular a área de um triângulo temos:  ENTRADA: Base e Altura do triângulo  PROCESSAMENTO: Área = (Base * Altura)/2  SAÍDA: Área
  36. 36. Construindo algoritmos Dividir o problema em Entrada, Processamento e Saída irá ajudá-lo a ordenar corretamente as instruções do seus algoritmos.
  37. 37. Construindo algoritmos Por isso, antes de construir um algoritmo, pare para pensar e identificar: Que dados preciso para começar? – Entrada Quais são os cálculos e decisões? – Processamento Que dados devem ser exibidos? – Saída
  38. 38. Atividade 1  Identifique a entrada, o processamento e a saída dos problemas abaixo: 1. Calcular e exibir a média ponderada de 2 notas dadas. (nota1= peso 6 e nota2= peso 4) 2. Reajustar um salário em 17,75%. 3. Calcular o desconto de 23% sobre o preço de um produto. 4. Dada uma taxa de câmbio, transformar um valor em Dólar para Reais. 5. Dada uma taxa de câmbio, transformar um valor em Reais para Dólar.
  39. 39. Atividade 1 – Respostas 1. Calcular e exibir a média ponderada de 2 notas dadas. (nota1= peso 6 e nota2= peso 4)  ENTRADA: nota1 e nota2  PROCESSAMENTO: médiaP=((nota1 * 6)+(nota2 * 4))/(6+4)  SAÍDA: médiaP
  40. 40. Atividade 1 – Respostas 2. Reajustar um salário em 7,75%.  ENTRADA: salário  PROCESSAMENTO: salárioR = salário+ (salário*0,0775)  SAÍDA: salárioR 3. Calcular o desconto de 23% sobre o preço de um produto.  ENTRADA: preço  PROCESSAMENTO: desconto = preço*0,23  SAÍDA: desconto
  41. 41. Atividade 1 – Respostas 4. Dada uma taxa de câmbio, transformar um valor em Dólar para Reais.  ENTRADA: câmbio e dólar  PROCESSAMENTO: real = dólar * câmbio  SAÍDA: real 5. Dada uma taxa de câmbio, transformar um valor em Reais para Dólar.  ENTRADA: câmbio e real  PROCESSAMENTO: dólar = real/câmbio  SAÍDA: dólar
  42. 42. Algoritmos  Dados  Tipos de Dados  Operações primitivas

×