ALGORITMOS. Supervisão: Prof. Dr.º Denivaldo Lopes



Documentos relacionados
Algoritmos Computacionais ( Programas )

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos com VisuAlg

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Lógica de Programação

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma

Lógica. Everson Santos Araujo

Algoritmos e Programação de Computadores

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo

Estruturas de Repetição Parte II PARA-ATÉ

Introdução a Algoritmos Parte 04

CURSO BÁSICO DE PROGRAMAÇÃO AULA 7

Linguagem algorítmica: Portugol

3. Tipos de Dados, Constantes e Variáveis.

Algoritmo e Programação

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Resolução de problemas e desenvolvimento de algoritmos

Dadas a base e a altura de um triangulo, determinar sua área.

Programação de Computadores I Pseudocódigo PROFESSORA CINTIA CAETANO

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

Estruturas de Repetição

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

e à Linguagem de Programação Python

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados)

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

Arquitetura de Computadores. Tipos de Instruções

Introdução à Lógica de Programação

Computação e Processamento de Dados CPD INF400

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

ALGORITMOS cont. Universidade Federal do Rio Grande do Norte Centro de Tecnologia Departamento de Computação e Automação

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

Algoritmos: Estruturas de Repetição. Prof. Carlos Lopes

Exercícios de Fixação Pseudocódigo e Estruturas Básicas de Controle

Organização e Arquitetura de Computadores I

MC102 Algoritmos e Programação de Computadores 1ª Aula Introdução à Programação de Computadores

1.1. Organização de um Sistema Computacional

ESTRUTURA CONDICIONAL

Programação científica C++

VisuALG Estruturas de Repetição. Professores: Vilson Heck Junior Felipe Schneider Costa

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

COMPUTADOR SIMPLIFICADO E COMPUTADOR DIGITAL. Algoritmos e Programação APG0001

Aula 01 Parte 03 Computadores e Algoritmos. Prof. Filipe Wall Mutz

ULA Sinais de Controle enviados pela UC

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

2 Diagrama de Caso de Uso

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Componentes do Computador e. aula 3. Profa. Débora Matos

Capítulo 2 Introdução à Programação Estrutura de Controle

2. ALGORITMOS. Unesp Campus de Guaratinguetá. Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

Programação Básica em Arduino Aula 2

OPERADORES E ESTRUTURAS DE CONTROLE

Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO

ALGORITMOS E FLUXOGRAMAS

Apostila de Introdução a Algoritmos

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

Algoritmos não se aprendem: Copiando algoritmos Estudando algoritmos Algoritmos só se aprendem: Construindo algoritmos Testando algoritmos

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Web site. Objetivos gerais. Introdução. Profa. Patrícia Dockhorn Costa

Algoritmos Estruturas Seqüenciais. José Gustavo de Souza Paiva

PHP AULA1. Prof. Msc. Hélio Esperidião

Linguagem de Programação Introdução a Linguagem Java

Aritmética Binária e. Bernardo Nunes Gonçalves

Introdução aos Computadores

CURSO TÉCNICO EM PROCESSAMENTO DE DADOS

Introdução a Informática. Prof.: Roberto Franciscatto

Figura 01 Kernel de um Sistema Operacional

Estruturas de Repetição

IFTO LÓGICA DE PROGRAMAÇÃO AULA 01

Curso Técnico em Redes

Orientação a Objetos

Placa Acessório Modem Impacta

Algoritmos e Pseudocódigo

Aula 10 Introdução à Algoritmos. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

Programação de Computadores III

Algoritmos e Linguagem de Programação de Computadores I

Sistema de Computação

3. O NIVEL DA LINGUAGEM DE MONTAGEM

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Programação Funcional. Aula 5. Funções Recursivas. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2011.

Aula 3 - Sistemas de Numeração

CAPÍTULO 6 - ESTRUTURA DE SELEÇÃO

INF1004 e INF1005: Programação 1. Introdução à Programação

CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

Introdução à Lógica de Programação

1. CAPÍTULO COMPUTADORES

Introdução ao HTML 5 e Implementação de Documentos

Programação de Computadores I. Linguagem C Vetores

3. Arquitetura Básica do Computador

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Engenharia de Requisitos Estudo de Caso

Algoritmos e Programação Parte Teórica

Metodos de Programação

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

Transcrição:

Laboratory of Software Engineering and Computer Network Engineering for a better life Universidade Federal do Maranhão Curso de Engenharia Elétrica ALGORITMOS Supervisão: Prof. Dr.º Denivaldo Lopes Adelman Wallyson de Sousa Benigno LESERC (Laboratório de Engenharia de Software e Rede de Computadores) Web Site: http://www.leserc.dee.ufma.br/ Contato: denivaldo.lopes AT dee.ufma.br

Sumário Introdução a algoritmos - Pseudolinguagem-Portugol Portugol - Variáveis - Operadores aritméticos ticos - Operadores relacionais - Operadores LógicosL Controle de Fluxo - Estruturas sequenciais - Estruturas condicionais - Estruturas de repetição - Estruturas de múltipla m escolha Função - Conceito - Objetivos - Como funciona - Algoritmo exemplo Recursividade - Conceito - Vantagens e Desvantagens - Algoritmo exemplo Gerenciamento de Exceções - Conceito - Tratamento de exceções - Algoritmo exemplo Considerações finais Referências bibliográficas

INTRODUÇÃO A ALGORITMOS Conceito Algoritmo é a descrição de um conjunto de ações que resultam numa sucessão finita de passos, com o intuito de resolver um determinado problema. O O conceito central da programação e da ciência da computação é o conceito de algoritmo. (WIRTH - Professor da Universidade de Zurique, autor de diversos livros na área e responsável pela criação de linguagens de programação como ALGOL e PASCAL)

INTRODUÇÃO A ALGORITMOS Pseudolinguagem-Portugol Portugol - O Portugol (simbiose do Português com o ALGOL e PASCAL) é uma pseudolinguagem de programação, que permite pensarmos no problema sem perder a flexibilidade e a proximidade com a linguagem humana, facilitando a interpretação. - Neste tutorial, nós n s usamos o software Visualg (http://www.apoioinformatica.inf.br/ http://www.apoioinformatica.inf.br/) ) para emular a execução dos algoritmos em portugol.

INTRODUÇÃO A ALGORITMOS Variáveis - É como são chamados os locais onde são armazenados possíveis valores do tipo básico b associado. O nome da variável vel é um identificador. - Tipos básicos b de dados: INTEIRO: qualquer número n inteiro, negativo, nulo ou positivo. Ex.: -15, 0, 101 REAL: qualquer número n real, negativo, nulo ou positivo. Ex.: -1, -0.5, 0, 5, 9.5 CARACTER: qualquer conjunto de caracteres alfanuméricos. Ex.: 123, A123, CASA LÓGICO: conjunto de valores (FALSO ou VERDADEIRO)

INTRODUÇÃO A ALGORITMOS Operadores aritméticos ticos Operador + Adição Operação Exemplo 10 + 15 - * / DIV MOD ^ ou exp(a, b) Subtração Multiplicação Divisão (onde o resultado será um número real) Divisão (onde o resultado será um número inteiro) Resto de uma divisão Exponenciação 20 10 3 * 5 5 / 2 = 2,5 10 div 2 = 5 7 div 2 = 3 7 mod 2 = 1 5 ** 2 ou exp(5, 2)

INTRODUÇÃO A ALGORITMOS Operadores relacionais Operador = Igualdade Relação <> > >= < <= Diferente Maior que Maior ou igual a Menor que Menor ou igual a

INTRODUÇÃO A ALGORITMOS Operadores lógicosl Operador Relação E (And) E lógico Ou (Or) Ou lógico Não (Not) Negação lógica Ou-X (Xor) Ou Exclusivo P Q P e Q P ou Q P ou-x Q F F F F F F V F V V V F F V V V V V V F

CONTROLE DE FLUXO Conceito - Habilidade de ajustar a maneira como um programa realiza suas tarefas. Por meio de instruções especiais, chamadas comandos, essas tarefas podem ser executadas.

CONTROLE DE FLUXO Estruturas Sequenciais -Conjunto de comandos que serão executados numa seqüência linear de cima para baixo. comando 1 comando 2 início comando 3 meio comando 3 fim comando 3... comando n

CONTROLE DE FLUXO Algoritmo exemplo

CONTROLE DE FLUXO Estruturas Condicionais -Quando um conjunto de ações a para ser executado, depender de uma condição. se <condição> então <comando 1> <comando 2> <comando n> senão <comando 3> <comando 4> <comando m> fimse

CONTROLE DE FLUXO Algoritmo exemplo

CONTROLE DE FLUXO Estruturas de repetição - Quando um conjunto de ações a é executado repetidamente enquanto uma determinada condição permanece válida. v» Para - Quando precisamos repetir um conjunto de comandos um número pré-definido de vezes. para varcontrole de ValInicial ate ValFinal faca <comando 1> <comando 2> <comando n> fimpara

» Enquanto - Utilizada quando não sabemos o número de repetições e quando possuímos uma expressão que deve ser avaliada para que os comandos da estrutura sejam executados. enquanto <condição> faca <comando 1> <comando 2> <comando n> fimenquanto» Repita... Até que - Utilizada quando não sabemos o número de repetições e quando os comandos devem ser executados pelo menos uma vez, antes da expressão ser avaliada. repita <comando 1> <comando 2> <comando n> ate <condição>

CONTROLE DE FLUXO Algoritmo exemplo

CONTROLE DE FLUXO Algoritmo exemplo

CONTROLE DE FLUXO Algoritmo exemplo

CONTROLE DE FLUXO Estruturas de múltipla m escolha - Utilizada quando temos muitas possibilidades para uma determinada situação, onde a aplicação da estrutura se...então...senão...fim fim-se,, tornaria o algoritmo muito complexo. escolha <expressão> caso valor1 : <comando 1> caso valor2 : <comando 2>... senão <comando n> fimescolha

CONTROLE DE FLUXO Algoritmo exemplo

FUNÇÃO Conceito - Mecanismo que tem a característica especial de retornar ao programa que a chamou, um valor associado ao nome da função.

FUNÇÃO Objetivos - Facilitar a compreensão e manutenção do código. c - Melhor estruturação do programa. - Possibilitar o reaproveitamento de código. c - O código c da função fica isolado,, sendo a ligação com o programa principal feita pelos argumentos enviados pelo programa chamador da função.

FUNÇÃO Como funciona - Após s ser chamada transfere o controle para a função - Executa a tarefa desejada - Coloca o resultado da execução em um lugar (área( de memória ou registradores). - Retornar o controle (fluxo do programa) para o ponto de origem.

Algoritmo exemplo FUNÇÃO

RECURSIVIDADE Conceito - Mecanismo que permite a uma função chamar a si mesma.

Como funciona RECURSIVIDADE - Diminui sucessivamente o problema em um problema menor, até que o tamanho ou a simplicidade do problema permita resolvê-lo lo de forma direta. - Uma condição de finalização deve estar presente em pelo menos um local do algoritmo, pois sem esta condição, o algoritmo não pára p de chamar a si mesmo, até estourar a capacidade da pilha de execução. - A cada nova execução, vai se aproximando da condição de finalização.

RECURSIVIDADE Vantagens - Código mais claro (legível) e mais compacto do que os correspondentes não-recursivos; - Algoritmos para resolver problemas de natureza recursiva são fáceis f de serem implementados em linguagens de programação de alto nível. n

RECURSIVIDADE Desvantagens - Maior consumo de recursos; - Algoritmos recursivos são mais difíceis de serem depurados, especialmente quando existem muitas chamadas em espera na pilha de execução.

RECURSIVIDADE Algoritmo exemplo

GERENCIAMENTO DE EXCEÇÕES Conceito - É um conjunto de medidas na estrutura de um algoritmo, que possuem o intuito de evitar possíveis falhas em um programa, como overflow aritmético tico e divisão por zero.

GERENCIAMENTO DE EXCEÇÕES Tratamento de exceções - Identificar as causas de uma possível falha do algoritmo. - Estabelecer estruturas ao algoritmo, que analisem as condições, e gerenciem um tratamento a essas causas. - Configurar o algoritmo de forma que seja retomado, após s a análise das condições, o processamento normal do programa.

GERENCIAMENTO DE EXCEÇÕES Algoritmo exemplo

CONSIDERAÇÕES FINAIS Os algoritmos são a base para o aprendizado de todos os assuntos presentes em nosso cronograma. Entender as estruturas básicas b e principalmente a lógica l de programação, é extremamente importante para a absorção de conhecimentos que serão necessários futuramente.

REFERÊNCIAS BIBLIOGRÁFICAS PINTO, Wilson. Introdução ao Desenvolvimento de Algoritmos e Estruturas de Dados.. São Paulo: Editora Érica, 1990. MANZANO, José Augusto N.G. Algoritmos: lógica l para desenvolvimento de programação ão.. São Paulo: Érica, 1996. SANTOS, Wellington Lima dos. Algoritmos e Estruturas de Dados II. Disponível em: http://www.ufgd.edu.br/~wlsantos/algo/recursividade.pdf Acesso em: 13/02/07 RUBIRA, Cecília. Tratamento de Exceções. Disponível em: http://www.ic.unicamp.br/~zanoni/mc600/java/livrojava/livrojava-cap_12.pdf cap_12.pdf Acesso em: 14/02/07 NIELEBOCK, Denise Guedes. Revisão de Introdução a Algoritmos. Disponível em: http://www.eduardostefani.eti.br/bennett/classificacao/mpc-lista1.doc lista1.doc Acesso em: 14/02/07 Visualg,, Disponível em: http://www.apoioinformatica.inf.br/