Download - Algoritmos introdução
2
Conceitos Básicos
-AlgoritmosAlgoritmos
-Programação Programação EstruturadaEstruturada
-Linguagens de Linguagens de ProgramaçãoProgramação
3
Os computadores, infelizmente,
só fazem aquilo que
mandamos, e não
necessariamente o que
desejamos que eles façam
4
ProblemaProblema
Solução em forma de
ALGORITMO
Solução como um
PROGRAMA de computador
Passo DifícilPasso Difícil
Fase de Resolução do
problema
Fase da Implementação
LINGUAGEM DE PROGRAMAÇÃO
5
O conceito central da Programação e
da Ciência da Computação
“Programar é basicamente construir Algoritmos”
ALGORITMOALGORITMO
7
Algoritmo Bolo_Chocolate: Este algoritmo descreve os passos necessários para fazer um BOLO DE CHOCOLATE.
1. [Início: Separar os Ingredientes]
1.1. 3 ovos
1.2. 1 xícara e 1/2 de açucar
1.3. colher (chá) de baunilha
1.4. 1 xícara (chá) de maionese
1.5. 1 xícara e 1/2 de farinha
1.6. 1 colher (sopa) de pó royal
1.7. 1 xícara (chá) de chocolate em pó
2. [Após ter os ingredientes separados executar o modo de fazer]
2.1. Faça o bolo da maneira de costume
3. FIM
8
Algoritmo MENOR_2: Este algoritmo lê três números (A, B, C), determine e imprime o menor deles. Assumir os três números diferentes.
1. [Início: Ler os três números]
Declarar inteiros A,B,C,Menor;
Leia (A, B, C);
2. [Calcular o menor deles]
SE (A<B e A<C)
ENTÃO MENOR = A;
SENÃO SE (B<C)
ENTÃO MENOR = B;
SENÃO MENOR = C;
FIM DO SE;
FIM DO SE;
3. [Imprimir o menor deles]
Escreva (MENOR);
4. FIM
9
ALGORITMOALGORITMO Dia a Dia temos contato com algoritmos Exemplos
Indicações dadas para se chegar até uma determinada rua
Um receita culinária Uma planta serve ao mesmo propósito num
projeto de construção Instruções para o uso de medicamentos,
equipamentos Indicações de como montar um aparelho
11
• Uma Sequência Ordenada e sem Ambiguidade de passos executáveis,
• Precisamente definidos, que manipulam um conjunto de informações (dados) a fim de resolver um dado problema.
ALGORITMOALGORITMO
12
Propriedades de um AlgoritmoA descrição dos passos de um algoritmo deve ser simples e sem ambiguidades;
Os passos devem estar numa ordem cuidadosamente definida;
Deve ser efetivo, ou seja, resolver o problema utilizando um número finito de passos;
Têm um caráter imperativo, na qual a ocorrência de uma ação num algoritmo também é chamada de comando;
Legível, bem documentado, claro e de fácil compreensão
13
ALGORITMOALGORITMO
Definição de um algoritmo:
DESENVOLVIMENTO DA SOLUÇÃO DO PROBLEMA
+CODIFICAÇÃO DO PROGRAMA EM UMA
LINGUAGEM ESPECÍFICA
Como a PRECISÃOPRECISÃO é essencial, existem notações para descrever algoritmos
14
Descrição de AlgoritmosDescrição de Algoritmos
A descrição de um algoritmo de uma forma clara e fácil de ser seguida.
Ajuda o desenvolvimento e a subsequente transformação do mesmo num programa,
Ajudando ainda na preparação de sua documentação
15
Formas de descrever Formas de descrever um Algoritmosum Algoritmos
Descrição Narrativa Descrição Verbal em Linguagem
Natural Linguagem Algorítmica
Linguagem simplificada Fluxograma
Linguagem gráfica
16
Descrição NarrativaDescrição Narrativa Método direto é expressar seus passos verbalmente Linguagem Natural (LN) é PROLIXA (cansativa,
longa, irritante) e IMPRECISA Problemas:
Perigo de má interpretação Perda de informação
Dificuldade de se transmitir informação com a LN é a base de um jogo popular
Explicar um caminho para sair do Anchieta e chegar em casa
17
Linguagem AlgorítmicaLinguagem Algorítmica
É uma linguagem especial para a expressão de algoritmos
É uma linguagem de programação simplificada
19
Objetivos:
Introduzir uma linguagem textual e outra gráfica para a representação de algoritmos.
Desenvolver as habilidades de leitura, interpretação e escrita de algoritmos em Portugol.
21
Declaração de variáveisTipos básicos.Inteiro: qualquer número inteiro, negativo, nulo ou positivo (integer).Real/Float: qualquer número real, negativo, nulo ou positivo (real).String: Conjunto de caracteres Char: um único carácter alfanumérico.Lógico: conjunto de valores FALSO ou VERDADEIRO em proposições lógicas (boolean).
22
Exemplos:
inteiro : X1;
real : A,B;
char: ‘F’,’ N’; ‘1’
String: ‘Informática’, ‘Aniversário’, ‘XPT45’,
lógico: TEM;
23
Comandos básicos:
Comando de atribuição: usaremos o símbolo de atribuição <destino> <fonte>Operadores aritméticos: operações básicas e os nomes das funções matemáticas mais comuns ( +, -, *, / ).Operadores lógicos: e , ou, nãoOperadores relacionais:
=, >=, <= etc.
24
Prioridades para as operações mistas:Primeiro: parênteses e funções.Segundo: expressões aritméticas
• 1º - ^ e sqrt• 2º *, /• 3º - +, -
Terceiro: comparaçõesQuarto: nãoQuinto: eSexto: ou
25
Exemplos:
A 3;
I I+1;
DELTA B*B - 4*A*C
TEM f also;
NOME ‘ABACATE’;
X1 raiz (DELTA);
RESTO N mod 2
26
Exemplo de um algoritmo em Portugol :
início inteiro: A, BA 1;B 2;se A > B
então A 5;senão A 10;
fim se Exibir (A)fim
30
Rastreando um Rastreando um AlgoritmoAlgoritmo
Uma vez desenvolvido um algoritmo, como saber se ele faz o que se supõe que faça?
Uma forma é executar o algoritmo manualmente, com dados representativos, utilizando lápis e papel para registrar os valores tomados pelas variáveis em cada passo do algoritmo, a este processo damos o nome de teste de mesa.
31
ALGORITMO
Técnicas de Programação
PROGRAMA COMPUTACIONAL
(SOFTWARE)
Linguagem de Linguagem de ProgramaçãoProgramação
32
PROGRAMA COMPUTACIONAL
Consiste na tradução de um algoritmo em uma
forma inteligível para a máquina, o que é feito com
o uso de uma Linguagem de Programação
Função Básica: Indicar ao computador as etapas
que precisam ser cumpridas para
se executar uma tarefa
33
PROGRAMA COMPUTACIONALPROGRAMA COMPUTACIONAL
Formulações concretas de algoritmos abstratos, baseados em representações e estruturas específica de dados
Conjunto de informações representadas de forma compreensível para o computador (máquina).
Utilizando uma linguagem de programação, a máquina pode executar os passos estabelecidos no programa e executar uma determinada tarefa.
34
Programação Estruturada
Wirth:
“A arte ou técnica de construir e formular algoritmos de uma forma sistemática”
35
LINGUAGEM DE LINGUAGEM DE PROGRAMAÇÃOPROGRAMAÇÃO
Linguagem que a máquina “entende”, direta
ou indiretamente. Possui uma técnica de notação para
programar, com intenção de servir de veículo para: a expressão de um raciocínio algorítmico execução automática de uma algoritmo no
computador
36
TIPOS DE LINGUAGEMTIPOS DE LINGUAGEM
Linguagem de Máquina
Linguagem de Montagem
Linguagem de Alto Nível
37
Linguagem de MáquinaLinguagem de Máquina
Os computadores executam diretamente algoritmos expressos em linguagem de máquina - um conjunto de instruções capazes de ativar diretamente os dispositivos eletrônicos do computador (utiliza somente os bits - símbolos 0 e 1).
Desvantagens para os programadores é diferente para cada tipo de computador, pois
depende da arquitetura da máquina é extremamente difícil de programar (lembrar das
seqüências possíveis de bits) é totalmente expressa em forma numérica
(binária ou hexadecimal) ou que torna pouco expressiva
38
Linguagem de MontagemLinguagem de Montagem Facilitar a programação - possibilidade de programar
através de mnemônicos Criou-se um sistema de codificação para representar as
instruções em linguagem de máquina. Este conjunto de códigos é chamado Linguagem Montadora (Assembler - Assembly Linguagem).
Exemplo desta linguagem, onde está sendo executada a soma de 1+1.
PUSH AX MOV BX, 1PUSH BX ADD AX, BXMOV AX, 1 POP BX
POP AX
39
Linguagem de Alto NívelLinguagem de Alto Nível OBETIVOS:
Conseguir independência em relação à máquina, podendo um mesmo programa ser utilizado em diferentes equipamentos.
Aproximar-se da linguagem humana para que o programa possa ser escrito e lido de uma maneira mais simples, eliminando muitas das possibilidades de se cometerem erros, presentes no uso da linguagem de máquina.
40
Linguagem AnoFORTRAN 1954-57ALGOL 60 1958-60COBOL 1959-60APL 1956-60LISP 1959-62SNOBOL 1962-66PL/I 1963-64BASIC 1965SIMULA 67 1967ALGOL 68 1963-68PROLOG 1970BLISS 1971PASCAL 1971C 1972-74MESA 1974Concurrent PASCAL 1975CLU 1974-77EUCLID 1977GYPSY 1977
43
Calcular o lucro obtido de um investimento de R$ 42.5000,00, após um período de um ano, para uma taxa anual de remuneração de 17.55%. Todos os valores usados para o cálculo deverão ser escritos pelo programa.
44
Etapas a serem cumpridas para a resolução do problema
1 – Estabelecer os dados a serem usados para o cálculo do lucro.
2 – Calcular o lucro.
3 – Escrever todos os valores.
45
Refinando a solução1. Estabelecer os dados a serem usados para o cálculo
do lucro. 1.1 Definir a quantidade principal investida como R$
42.500,00. 1.2. Definir a taxa de juros como 0.1755.
2. Calcular o lucro.2.1. O lucro obtido é a taxa de juros multiplicada pela
quantidade principal investida.
3. Escrever todos os valores. 3.1. Escrever a quantidade principal investida e a taxa de juros.3.2. Escrever o lucro obtido.
46
Escrevendo em PortugolPrograma investimentoDeclarar float cap, jur, luc;Início
{Definir a quantidade principal} cap R$ 42.500,00;{Definir a taxa de juros} jur 17.55;{O lucro obtido é a taxa * principal}Luc cap * jur / 100Escrever ( cap, jur);Escrever (luc);
Fim.