1.13k likes | 1.49k Views
A lgoritmos. Fabrício Costa Santana prof.fabricio@outlook.com http://professorfabricio.net. Plano da Disciplina. EMENTA Declaração de variáveis e constantes Tipos de variáveis Instruções de entrada e saída Tipos de representações de algoritmos
E N D
Algoritmos Fabrício Costa Santana prof.fabricio@outlook.com http://professorfabricio.net
Plano da Disciplina • EMENTA • Declaração de variáveis e constantes • Tipos de variáveis • Instruções de entrada e saída • Tipos de representações de algoritmos • Operadores aritméticos e lógicos • Comandos de decisão • Estruturas de recepção • Vetores e matrizes
Plano da Disciplina • OBJETIVO GERAL • Estudar as técnicas de programação, baseando-se no aprendizado de algoritmos computacionais. • OBJETIVOS ESPECÍFICOS (Competências/Habilidades – aprendizagens que serão consolidadas pelos estudantes) • Resolver problemas computacionais. • Desenvolver o raciocínio lógico voltado para criação de programas e permitir o domínio das principais técnicas para a produção de algoritmos
Avaliações • UNIDADE I • INSTRUMENTO NOTA • Prova Individual Peso 8 • Trabalho em Grupo – Listas de Exercícios Peso 2 • UNIDADE II • INSTRUMENTO NOTA • Prova Individual Peso 8 • Trabalho em Grupo – Listas de Exercícios Peso 2
Referências Básicas • MANZANO & OLIVEIRA. Algoritmos: Lógica para Desenvolvimento de Programação de Computadores • FORBELONE & EBERSPACHER. Lógica de Programação • GUIMARÃES & LAGES. Algoritmos e Estruturas de Dados • PEREIRA, S.L. Estruturas de Dados Fundamentais
Introdução • O raciocínio lógico • O raciocínio lógico na tecnologia da informação: Um esquema sistemático que define as interações de sinais no equipamento automático do processamento de dados, ou o computador científico com o critério e princípios formais de raciocínio e pensamento • Segundo Venancio (1997) lógica pode ser definida como sendo o estudo das leis do raciocínio e do modo de aplicá-las corretamente na demonstração da verdade. A utilização da lógica na vida do indivíduo é constante, visto que é ela quem possibilita a ordenação do pensamento humano (Forbellone, 1993).
Introdução à lógica É possível trocar uma lâmpada obedecendo a sequência de ações abaixo? • Pegar uma escada; • Posicionar a escada embaixo da lâmpada; • Buscar uma lâmpada nova; • Colocar a lâmpada nova; • Retirar a lâmpada velha; • Subir na escada. • Pegar uma escada; • Posicionar a escada embaixo da lâmpada; • Buscar uma lâmpada nova; • Subir na escada; • Retirar a lâmpada velha; • Colocar a lâmpada nova.
Introdução à lógica André e quatro amigos praticam esportes diferentes. Com base nas dicas determine o nome e sobrenome de cada homem e o esporte que pratica. a) João pratica pesca. Um sobrenome é Sr. Soares. b) O Sr. Saraiva não pratica ciclismo, ele pratica golfe. c) Nem Davi Silva nem o Sr. Rocha praticam natação. d) O esporte de Pedro (cujo sobrenome não é Bernardes) é canoagem. e) Nem o Sr. Bernardes nem Mauro praticam natação. Nome Sobrenome Esporte André Soares Natação João Bernardes Pesca Davi Silva Ciclismo Pedro Rocha Canoagem Mauro Saraiva Golfe
Respostas Exercício 1 Carolina
A receita Ingredientes: • 1 Lata de leite condensado • 1 Lata de milho sem a água • 1 colher (de sopa) de manteiga • 1 pacote de coco ralado • 3 ovos • 1 colher (de sopa) de fermento em pó Modo de preparo: • Bata no liquidificador, o milho, o leite condensado, a manteiga, o coco e os ovos. • Despeje a mistura acima em uma tigela. • Peneire o fermento e adicione-o à mistura. • Mexa delicadamente a mistura. • Em uma fôrma média de bolo, untada e polvilhada com fubá, despeje a massa. • leve ao forno médio pré-aquecido, por 35 min.
O problema da média • O problema: exibir a média das notas de um aluno de matemática do ensino médio, sabendo que o aluno recebe uma nota em cada unidade e o ano letivo possui 4 unidades. • Entradas • Processamento • Saída
Algoritmo Compreender o problema Identificar os dados de entrada Identificar os dados de saída Determinar o que é preciso para transformar dados de entrada em dados de saída: • usar a estratégia do dividir-para-conquistar • observar regras e limitações • identificar todas as ações a realizar • eliminar ambiguidades Construir o algoritmo Testar o algoritmo Executar o algoritmo
Dividir-para-conquistar É conhecido por método descendente (top-downmethod) ou método de refinamento passo-a-passo Consiste em dividir um problema em partes menores (ou subproblemas) de modo a que seja mais fácil a sua resolução. Exemplo: Fazer suco de laranja? • Lavar laranja; • Partir laranja ao meio; • Espremer laranja; • Filtrar o suco; • Servir o suco. Passo-a-passo, significa que cada passo é completado antes que o próximo comece. Exemplo: é impossível “ver novela” antes de executar por inteiro o passo anterior de “ligar a TV”
Características dos Algoritmos Um algoritmo tem cinco características importantes: • Finitude: deve sempre terminar após um número finito de passos. • Definição: cada passo de um algoritmo deve ser precisamente definido. As ações devem ser definidas rigorosamente e sem ambiguidades. • Entradas: deve ter zero ou mais entradas, isto é informações que são lhe são fornecidas antes do algoritmo iniciar. • Saídas: deve ter uma ou mais saídas, isto é quantidades que tem uma relação específica com as entradas. • Efetividade: deve ser efetivo. Isto significa que todas as operações devem ser suficientemente básicas de modo que possam ser em princípio executadas com precisão em um tempo finito por um humano usando papel e lápis.
Dicas para a criação de algoritmos • Procure conhecer e compreender, ao máximo, o problema a ser resolvido; • Identifique e defina os dados que, essencialmente, deverão ser informados para que o processamento seja realizado com sucesso (dados de entrada); • Descreva, detalhadamente, o processamento ou a transformação a ser executada sobre os dados de entrada, em busca dos resultados desejados (como chegar no objetivo); • Identifique e defina quais serão os dados resultantes do processamento ou transformação (dados de saída); • Construa o algoritmo que represente a solução encontrada com o detalhamento necessário para o seu entendimento; • Teste o algoritmo por meio de simulações e efetue as devidas correções que possam vir a ser necessárias na lógica proposta.
Como representar um algoritmo • A descrição narrativa • O fluxograma: Ex.: diagrama de blocos, diagrama de Chapin • Linguagem algorítmica (também chamada de pseudocódigo). Ex.: Português Estruturado
Como representar um algoritmo • Linear • Estruturada • Modular • Diagrama de Chapin • Português Estruturado
Estruturada Linear
Português Estruturado algoritmo "media" var n1, n2, n3, n4, soma, media: real inicio leia(n1, n2, n3, n4) soma <- n1 + n2 + n3 + n4 media <- soma / 4 escreva("Media: ", media) fimalgoritmo
Tipos de Dados 1. Dados Numéricos: Tipos Inteiros: nos positivos e negativos. exemplos: 35 0 -12 Tipos Reais: nos positivos, negativos e fracionários. exemplos: 9 -12 4.6 -89.726 2. Dados Caracteres : São sequências contendo letras, números e símbolos especiais. Deve ser indicado entre aspas (“”). Também chamado de alfanumérico, literal, string ou cadeia. exemplos: “Rua Alfa, 52” “Fone: 211-3456”
Tipos de Dados 3. Dados Lógicos: Pode representar apenas dois valores: verdadeiro e falso. Também chamado de booleano. Deve ser indicado entre pontos. exemplos: .Falso. .F. .N. .Verdadeiro. .V. .S.
Tipos de Dados Exercício: Identifique os tipos de dados presentes na frase abaixo: Ela tem 8 filhos, pesa 48,3 kg, seu exame de gravidez deu positivo e pintou numa placa: “Precisa-se de Babás. Urgente!”
Variáveis • É um dado que será armazenado no computador e que assumirá valores diferentes à medida que for utilizado e manipulado. • Regras de representação • O primeiro caractere do nome de uma variável não poderá ser, em hipótese alguma, um número; sempre deverá ser uma letra; • O nome de uma variável não poderá possuir espaços em branco; • O nome de uma variável não poderá ser uma palavra reservada (uma instrução ou comando); • Não poderão ser utilizados outros caracteres a não ser letras, números e sublinhado (underscore).
Variáveis • Exemplo: NOMEALUNO (Pedro, Afonso, Ana) NOTAALUNO (7,23 10 2,8) Deve ser identificado por um nome e pelo seu tipo. Exemplo: NOMEALUNO : caractere NOTAALUNO : real
Constantes • Área da Circunferência = 3.14159 * Raio ^ 2 • Kelvin = Celcius+ 273 • Celcius/ 5 = (Fahrenheit – 32) / 9 • (Kelvin – 273) / 5 = (Fahrenheit– 32) / 9
Expressões Aritméticas • AREA <- ( BASE * ALTURA ) / 2 • X = { 43 . [ 55 : ( 30 + 2 ) ] } • X <- ( 43 * ( 55 / ( 30 + 2 ) ) ) • X <- 2 * 5 + 4 • X <- 2 * ( 5 + 4 )
Expressões Aritméticas • a * x ^ 2 + b * x + c
Respostas Exercício 2 1 - a) 2 ^ x +1 / 2 - y b) z <- (1 + x) * (2 + y ^ 2) + 5 c) delta <- b ^ 2 - 4 * a * c d) (8 / x + 6 / y ) * (3 ^ x / 2) e) (1 / 2 - 5 ) + 2 ^ 3 * (5 + 3 / 2) f) x <- 5 + sqrt(10) + (1 / 2) ^ 3 g) (sqrt(125) + 2 * 1 / 5) + 5 ^ 3 + (1/2*(5 / 2 + 8 + 1 / 3)) ^ 2 2 – a) I b) L c) S d) R e) R f) I g) S h) S i) L j) S k) S l) I 3 – a, f, g, l, n
Diagrama de Blocos • Os diagramas devem ser feitos e quebrados em vários níveis. Os primeiros devem conter apenas as ideias gerais e detalhando-os posteriormente. • Deve ser desenvolvido preferencialmente de cima para baixo e da esquerda para a direita. • As linhas de fluxo de dados nunca devem se cruzar.
Algoritmos Simples – Soma de dois números algoritmo "soma_numeros" var X: inteiro A: inteiro B: inteiro inicio leia(A) leia(B) X <- A + B escreva(X) fimalgoritmo
Algoritmos Simples – Cálculo da área de um círculo algoritmo "area_circulo" var A: real R: real inicio leia(R) A <- 3.114159*R^2 escreva(A) fimalgoritmo
Estruturas de Controle – A Tomada de Decisões • Desvio Condicional Simples • Desvio Condicional Composto • Desvios Condicionais Encadeados
Desvio Condicional Simples se (<condição>) então <instruções para condição verdadeira> fimse
Desvio Condicional Simples algoritmo "Soma_numeros" var X, A, B: inteiro inicio leia(A) leia(B) X <- A + B se (X>10) entao escreva (X) fimse fimalgoritmo