Algoritmos. Um algoritmo pode ser expresso de diversas maneiras, dentre elas: Linguagem Natural Fluxograma Pseudocódigo Linguagem de Programação

Documentos relacionados
Aula 02. MC Algoritmos e Programação de Computadores. Algoritmos: Definição e Exemplos.

LINHA DO TEMPO. Movimentação nas redes sociais;

Programação de Computadores I

Lógica para programação II Seção 1 - Histórico e Introdução Primeiros Programas

Introdução à Programação

Introdução à Lógica de Programação. Adaptação de Luis Otavio Alvares

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

Introdução à Programação. slides de Deise Sacol

Introdução a Programação de Jogos

Programação Estruturada

Algoritmo de Programação. Aula1

Aula 02. Algoritmos e Pseudocódigo

Introdução à Programação. slides de Deise Sacol

Bolo simples Ingredientes

Algoritmos e Ciclo de Desenvolvimento Aula 02: 01/03/2012

Disciplina de Algoritmos e Programação

Programação de Computadores I Introdução PROFESSORA CINTIA CAETANO

Programação de Computadores:

Introdução à Programação

Engenharia Civil. Introdução à Programação

Computação. Introdução

ESTRUTURAS DE CONTROLE

Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre. T. 04 Algoritmos e Programação Estruturada

Programação de Computadores III

INF 1005 Programação I

Introdução aos algoritmos computacionais

Programação de Computadores IV. Introdução a Algoritmos SLIDES CEDIDOS POR Bruno Marques

Algoritmos e Programação. Noções de Lógica e Algoritmos Tarcio Carvalho

Unidade 2: Algoritmos e programação

Linguagem de Programação

Estruturas de repetição. Objetivos: - Compreender diversos tipos de comandos de repetições disponíveis na linguagem C.

Introdução à Algoritmos INF 1005 e INF Programação I

Introdução à Programação. Ceça Moraes

Computação Começando do começo ;-)

Algoritmos e Estruturas de Dados. Algoritmos e Estruturas de Dados MEEC 2014/2015. Algoritmos eficientes usam "boas" estruturas de dados

Linguagens de Programação

Prof. A. G. Silva. 14 de março de Prof. A. G. Silva INE5231 Computação Científica I 14 de março de / 26

Introdução a Computação

Algoritmos Computacionais

Introdução à Informática. Conceitos Nomenclaturas

Introdução a Computação

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

PROGRAMAÇÃO I. Introdução

Introdução aos Algoritmos

Linguagens de Programação Classificação

Introdução à Programação de Computadores Parte II

Introdução à Computação MAC0110

Programação Básica. Estrutura de um algoritmo

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Introdução aos Algoritmos

Fundamentos de Programação

Introdução à Programação de Computadores Parte I. Componentes Básicos do Computador e de um Programa

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA : INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ASSUNTO: ALGORITMOS

Page Content: 10 Receitas de bolos simples e fáceis Ana Luiza Tudisco Todos os direitos reservados.

Primeiros programas.

CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO

Laboratório de Programação 1 Algoritmos e a Lógica de Programação

3 Introdução aos algoritmos

1 Introdução e Conceitos básicos

ORGANIZAÇÃO DE COMPUTADORES

Algoritmos e Técnicas de Programação

LINGUAGEM ALGORÍTMICA

Programação Procedimental

4 O conceito de variável

Arquitetura de Von Neumann

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 06

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2

Fundamentos de Programação 1

Funcionamento do computador. Conceito e definição de algoritmos. Prof. Alex Camargo

Aula 4 Introdução ao C

& somadosnumeros = valor

Ambiente de desenvolvimento

AUTORA MARIA NEUSA LIMA CARVALHO RECEITA DE BOLO

Técnicas de Programação

AEDI Introdução Revisão 2

MC-102 Aula 01. Instituto de Computação Unicamp

Computação Eletrônica

Infraestrutura de Hardware. Funcionamento de um Computador

Introdução à Computação

2. Algoritmos. Prof. Renato Tinós. Local: Depto. de Computação e Matemática (FFCLRP/USP) Introdução à Computação I IBM1006

Curso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber 3/10/ :43 AM

Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

CONCEITOS DE ALGORITMOS

Sâmia Rodrigues Gorayeb. Arquitetura de Computadores Linguagem de Máquina

Aula 01 Algoritmos e lógica de programação e introdução ao C++

4) Defina o que vem a ser um algoritmo, e porque, o mesmo depende do processo.

Programação Estruturada

MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador

Algoritmos Parte 2. Introdução à Ciência da Computação

Informática I. Aula 14. Aula 14-10/10/2007 1

Introdução à Programação I

Conceitos Básicos de Programação - Algoritmos

Aula 3: Algoritmos: Formalização e Construção

Fundamentos de Lógica e Algoritmos Aula 2.5 Conceitos Básicos de Algoritmos. Prof. Dr. Bruno Moreno

SSC510 Arquitetura de Computadores 1ª AULA

ESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza

Introdução a Programação de Jogos

Introdução à Programação. João Manuel R. S. Tavares

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal

Transcrição:

capa

Um algoritmo pode ser expresso de diversas maneiras, dentre elas: Linguagem Natural Fluxograma Pseudocódigo Linguagem de Programação

Método para resolver problemas.

É a descrição de uma sequência de passos (ações/instruções) que devem ser seguidas para a solução de um problema.

Um exemplo clássico para definir algoritmos é uma receita culinária. Problema: produção de refeições. Solução: repetir passos definidos (fazer iterações) e tomar decisões até que a refeição esteja pronta para ser servida. A solução é o algoritmo.

Exemplo 1: receita de bolo simples Ingredientes 2 xícaras de açúcar 3 xícaras de farinha de trigo 4 colheres de margarina bem cheias 3 ovos 1 e 1/2 xícara de leite aproximadamente 1 colher (sopa) bem cheia de fermento em pó Dr. Oetker Fonte: http://www.tudogostoso.com.br/receita/29124-bolo-simples.html

Exemplo 1: receita de bolo simples Modo de Preparo 1. Bata as claras em neve 2. Reserve 3. Bata bem as gemas com a margarina e o açúcar 4. Acrescente o leite e farinha aos poucos sem parar de bater 5. Por último agregue as claras em neve e o fermento 6. Coloque em forma grande de furo central untada e enfarinhada 7. Asse em forno médio, preaquecido, por aproximadamente 40 minutos 8. Quando espetar um palito e sair limpo estará assado Fonte: http://www.tudogostoso.com.br/receita/29124-bolo-simples.html

Pergunta 1: de acordo com o exemplo, podemos observar que a execução do algoritmo do bolo é composta por: A. Ingredientes (Entrada Estado Inicial). B. Sequência de passos (Processamento Estado Intermediário). C. O Bolo (Saída Estado Final). D. Todas as alternativas acima.

Pergunta 1: de acordo com o exemplo, podemos observar que a execução do algoritmo do bolo é composta por: A. Ingredientes (Entrada Estado Inicial). B. Sequência de passos (Processamento Estado Intermediário). C. O Bolo (Saída Estado Final). D. Todas as alternativas acima. R: Alternativa D.

Pergunta 1 - Análise: Como pudemos observar, para a execução de um algoritmo (modo de preparo), foi necessário a presença de dados iniciais (ingredientes) a serem manipulados resultando em um estado final (o bolo).

Exemplo 2: descobrir a hipotenusa de um triângulo retângulo dado dois catetos. Dados iniciais: Cateto 1 Cateto 2 H=? C1 C2

Exemplo 2: descobrir a hipotenusa de um triângulo retângulo dado dois catetos. Algoritmo: 1. Eleve o cateto 1 ao quadrado. 2. Escreva o resultado 1 da operação acima. 3. Eleve o cateto 2 ao quadrado. 4. Escreva o resultado 2 da operação acima. 5. Some o resultado 1 com o resultado 2. 6. Escreva o resultado 3 da operação acima. 7. Tire a raiz quadrada do resultado 3. 8. Escreva o resultado da operação acima que será a hipotenusa.

Exemplo 2: descobrir a hipotenusa de um triângulo retângulo dado dois catetos. Dados finais: Cateto 1 Cateto 2 H=? Hipotenusa C1 C2

Variáveis: Conforme observamos, para executar um algoritmo é essencial a manipulação de dados, valores ou objetos. O mesmo vale para o computador.

Variáveis: Quando um computador executa um algoritmo, o mesmo precisa armazenar e manipular valores. Esses valores são armazenados e acessados da memória do computador. O acesso à memória é abstraído no conceito de variáveis.

Variáveis: As variáveis podem ser entendidas como caixas que podem guardar um valor Cada vez que guardamos um novo valor nela, apagamos o antigo Para guardarmos um novo valor em uma variável usamos o comando de atribuição.

Variáveis: Para a atribuição de valores iremos utilizar uma seta ( <- ) A variável sempre irá se encontrar à esquerda Na parte direita ficará uma expressão O resultado da expressão será armazenado pela variável

Variáveis: x <- 5 x <- 2+3*5 x <- (2+3)*5

Variáveis: Exemplo: Determine o valor final da variável x ao final da sequência de passos: A. 4 B. 7 C. 10 D. 25

Variáveis: Exemplo: Determine o valor final da variável x ao final da sequência de passos: R: Alternativa C. A. 4 B. 7 C. 10 D. 25

Variáveis: Exemplo: Determine o valor final da variável x ao final da sequência de passos: A. 20 B. 22 C. 16 D. 24

Variáveis: Exemplo: Determine o valor final da variável x ao final da sequência de passos: R: Alternativa B. A. 20 B. 22 C. 16 D. 24

Variáveis: Exemplo: Determine o valor final da variável x ao final da sequência de passos: A. 3 B. 6 C. 9 D. 21

Variáveis: Exemplo: Determine o valor final da variável x ao final da sequência de passos: R: Alternativa A. A. 3 B. 6 C. 9 D. 21

Variáveis: Exemplo: Determine o valor final da variável x ao final da sequência de passos: A. 143 B. 105 C. 215 D. 47

R: Alternativa C. Algoritmos Variáveis: Exemplo: Determine o valor final da variável x ao final da sequência de passos: A. 143 B. 105 C. 215 D. 47

Um algoritmo pode ser constituído por 3 estruturas de fluxo: Estruturas Sequenciais Estruturas Condicionais Estruturas de Repetição

Estruturas Sequenciais Exemplo: Algoritmo para calcular média de três notas a <- leiaumnumerodoteclado() b <- leiaumnumerodoteclado() c <- leiaumnumerodoteclado() media <- (a+b+c)/3 exiba media

Estruturas Sequenciais Exemplo: Dado o total de vendas de um vendedor, calcule a sua comissão. Suponha que a comissão do vendedor seja de 10% do total de vendas. totalvendas <- leiaumnumerodoteclado() comissao <- totalvendas*0,1 exiba comissao

Estruturas Sequenciais Exemplo: Algoritmo que troca o valor de duas variáveis a e b auxiliar <- a a <- b b <- auxiliar

Um algoritmo pode ser constituído por 4 estruturas de fluxo: Estruturas Sequenciais [OK] Estruturas Condicionais Estruturas de Repetição

Estruturas Condicionais Acontecem apenas quando alguma condição é verdadeira Uma condição só pode ser verdade ou falsa São usadas as palavras chave se-então-senão se(condição) então senão fim-se... <instruções> <instruções> Verdade Instruções <Condição> Falsa Instruções

Estruturas Condicionais Exemplo: Algoritmo que imprime qual o menor entre dois numeros a <- leiaumnumerodoteclado() b <- leiaumnumerodoteclado() se(a < b)então menor <- a senão menor <- b fim-se exiba menor

Estruturas Condicionais Exemplo: Algoritmo que imprima qual o menor entre dois numeros a <- leiaumnumerodoteclado() b <- leiaumnumerodoteclado() se(a < b)então menor <- a senão menor <- b fim-se exiba menor

Estruturas Condicionais Exemplo: Algoritmo para calcular as raízes de uma equação do segundo grau: a*x² + b*x + c = 0

Estruturas Condicionais a <- leiaumnumerodoteclado() b <- leiaumnumerodoteclado() c <- leiaumnumerodoteclado() delta <- Opções: A. delta B. a+b+c C. 4*a*c D. b*b - 4*a*c

Estruturas Condicionais a <- leiaumnumerodoteclado() b <- leiaumnumerodoteclado() c <- leiaumnumerodoteclado() delta <- b*b 4*a*c Opções: A. delta B. a+b+c C. 4*a*c D. b*b - 4*a*c

Estruturas Condicionais a <- leiaumnumerodoteclado() b <- leiaumnumerodoteclado() c <- leiaumnumerodoteclado() delta <- b*b 4*a*c se ( delta >= 0 )então x1 <- (raiz(delta) b)/(2*a) x2 <- (-1*raiz(delta) b)/(2*a) fim-se Opções: A. delta = 0 B. delta > 0 C. delta >= 0 D. delta

Estruturas Condicionais a <- leiaumnumerodoteclado() b <- leiaumnumerodoteclado() c <- leiaumnumerodoteclado() delta <- b*b 4*a*c se ( delta >= 0 )então x1 <- (raiz(delta) b)/(2*a) x2 <- (-1*raiz(delta) b)/(2*a) fim-se Opções: A. delta = 0 B. delta > 0 C. delta >= 0 D. delta

Estruturas Condicionais a <- leiaumnumerodoteclado() b <- leiaumnumerodoteclado() c <- leiaumnumerodoteclado() delta <- b*b 4*a*c se (delta >= 0)então x1 <- (raiz(delta) b)/(2*a) x2 <- (-1*raiz(delta) b)/(2*a) fim-se

Um algoritmo pode ser constituído por 4 estruturas de fluxo: Estruturas Sequenciais [OK] Estruturas Condicionais [OK] Estruturas de Repetição

Estruturas de Repetição Irão repetir enquanto uma condição for satisfeita São usadas as palavras chave enquanto-faça enquanto (<condição) faça <instruções> fim-enquanto <Condição> Verdade Instruções Falsa

Estruturas de Repetição Exemplo: Faça um algoritmo que imprima todos os números de 1 a 20 num <- 1 enquanto(num <= 20) faça exiba num num <- num+1 fim-enquanto

Estruturas de Repetição Exemplo: Faça um algoritmo que imprima todos os números de 1 a 20 num <- 1 enquanto(num <= 20) faça exiba num num <- num+1 fim-enquanto

Estruturas de Repetição Exemplo: Faça um algoritmo que some todos os números entre 200 e 400 num <- 200 soma <- 0 enquanto(num <= 400) faça soma <- soma + num num <- num + 1 fim-enquanto

Estruturas de Repetição Exemplo: Faça um algoritmo que some todos os números entre 200 e 400 num <- 200 soma <- 0 enquanto(num <= 400) faça soma <- soma + num num <- num + 1 fim-enquanto

Um algoritmo pode ser constituído por 4 estruturas de fluxo: Estruturas Sequenciais [OK] Estruturas Condicionais [OK] Estruturas de Repetição [OK]

Por que estudar algoritmos? O seu impacto é amplo e de longo alcance. Internet. Busca na web, roteamento de pacote, compartilhamento de arquivos,... Biologia. Projeto do genoma humano, enovelamento de proteínas,... Computador. Layout de circuitos, sistema de arquivos, compiladores (fique ligado!)... Computação gráfica. filmes, video games, realidade virtual... Segurança. celular, e-commerce, urna eletrônica,... Multimídia. MP3, JPG, DivX, HDTV, reconhecimento de face,... Redes Sociais. recomendações, feeds de notícia, propagandas,... Física. simulação de partículas, simulação de colisão de partículas,...

Linguagens de Programação Computador X Pessoas O que é conveniente para as pessoas às vezes não é conveniente para o computador Pessoas querem fazer X, máquinas só fazem Y Como proceder?

Linguagens de Programação Níveis de linguagens Computador recebe instruções (ordens) Instruções lógicas e padronizadas Processa essas instruções e gera um resultado Uma LP é uma forma padronizada de comunicação com o computador

Linguagens de Programação Níveis de linguagens A maioria dos computadores utilizam lógica digital binária A crescente complexidade dos programas Novas formas de programar

Linguagens de Programação Máquina multinível Solução para comunicação homem X máquina Cada máquina possui sua linguagem

Linguagens de Programação Linguagem de baixo nível Forte relação com o hardware Restritas a linguagem de máquina Codificação rígida com a arquitetura 00111010100100100100001111010101 01110101010111110010010001111101 00100011010100101100000001010010 10101010101111110000010101010010 01111111111010101001001010010010 01000010100100100100101000101001 00100011010101010100000001010010 01000110101010101000000010100100 10001101010101010000000101001001 00011010101010100000001010010010 00110101010101000000010100100100 01101010101010000000101001001000 00000010100001010010010010101010 10101010101000000010101010101001 11010101101010100100100111010010 01001000100110101001110010010010 01000110101010101000000010100100 10001101010101010000011111011001

Linguagens de Programação Arquitetura de Von Neumann Unidade de memória CPU Dispositivos de entrada Unidade de Controle ULA Dispositivos de saída

Linguagens de Programação Linguagem de montagem É uma linguagem de baixo nível Cada comando produz uma única instrução de máquina.data x1:.word 10 x2:.word 5 x3:.word -1.text lw $t0, x1 lw $t1, x2 add $t2, $t0, $t1 sw $t2, x3 li $v0, 1 move $a0, $t2 syscall li $v0, 10 syscall

Linguagens de Programação Linguagem de alto nível Se aproxima da linguagem utilizada por humanos Cada comando produz várias instruções de máquina #include <stdio.h> int main() { int a = 10, b = 5; printf ( %d\n, a+b); return 0; }

Linguagens de Programação Linguagens de alto nível X Linguagens de baixo nível ALTO NÍVEL Facilidade de manipulação, por tratar comandos com linguagens mais próximas do programador. Facilidade em encontra erros Possui portabilidade Lenta, se comparada a linguagem de baixo nível Rotinas mais complexas, portanto utiliza mais memória BAIXO NÍVEL Dificuldade de programação devido a forte proximidade com a sistemática de hardware. Dificuldade em encontrar erros Totalmente dependente da arquitetura computacional utilizada Rápida, pois opera em um nível próximo do hardware Utiliza menos espaço de memória

Linguagens de Programação Processamento de Linguagens O computador entende apenas a linguagem de máquina Alternativas: Interpretação e tradução

Linguagens de Programação Interpretação Comandos diretamente executados Sequência: Obter próximo comando Converter o comando em instruções em linguagem de máquina Executar as instruções

Linguagens de Programação Tradução Traduz um programa de uma linguagem para outra de nível mais baixo Ocorre com os programas escritos em linguagem de alto nível

Linguagens de Programação Compilador Traduz linguagem de alto nível (código fonte) em linguagem de de baixo nível (código objeto) na forma de um executável Exemplos: gcc, Turbo C, Visual C, Visual Basic, etc C é uma linguagem compilada!

Linguagens de Programação #include <stdio.h> int main() { int a = 10, b = 5; printf ( %d\n, a+b); return 0; }.data x1:.word 10 x2:.word 5 x3:.word -1.text lw $t0, x1 lw $t1, x2 add $t2, $t0, $t1 sw $t2, x3 li $v0, 1 move $a0, $t2 syscall li $v0, 10 syscall

capa