Upload
internet
View
110
Download
1
Embed Size (px)
Citation preview
AlgoritmoConceitos Básicos
Luis Antonio Tavares
EmentaProblemas de lógica Tipos e variáveis
Conceitos básicos Instruções básicas
Algoritmo cotidiano vs. computacional
Linearização de Expressões
Fluxograma Condições
Pseudocódigo Laços de repetição
Estrutura de um programa
Funções
O QUE É LÓGICA? Estudo das leis do raciocínio e do modo de aplicá-las corretamente na demonstração da verdade.
Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo.
A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas, ela permite definir a seqüência lógica de operação do programa.
Introdução
O QUE É ALGORITMO? Seqüência de passos que visam atingir um objetivo pré-definido e bem definido.
O algoritmo formado e bem definido que pode ser seguido por qualquer pessoa, e o objetivo será alcançado com certeza.
Introdução
Cada linha de um algoritmo é uma instrução.
Instruções são um conjunto 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.
Um programa é, nada mais, que um conjunto de instruções que executadas cumprem uma finalidade.
Introdução
O que é Programação: Processo de escrita, teste e manutenção de um programa de computador.
Os programas de computadores nada mais são do que algoritmos escritos numa linguagem de computador (Pascal, C, Delphi, Java, PHP entre outras) e que são interpretados e executados por um computador.
O algoritmo deve ser fácil de se interpretar e fácil de codificar. Ou seja, ele deve ser o intermediário entre a linguagem falada e a linguagem de programação.
Programação
Por que Algoritmo?
ALGORITMOCÓDIGO-FONTE EM
LINGUAGEM DEPROGRAMAÇÃO
ADAPTAÇÃO
LINGUAGEMNATURAL
INSTRUÇÕES
COMPILAÇÃO
(EXECUTÁVEL)LINGUAGEMDE MÁQUINA
TRADUÇÃO
01000101001....
PORTUGUÊS, INGLÊS...
ALTO NÍVEL
BAIXO NÍVEL
Por que criamos algoritmos?
Linguagem natural não pode ser interpretada por um computador;
Porém a linguagem algorítmica é similar a uma linguagem de programação e próxima à linguagem natural;
Logo, aprendendo a criar algoritmos, teremos facilidade em aprender uma linguagem de programação.
Para montar um algoritmo, precisamos primeiro dividir o problema apresentado em três fases fundamentais
ENTRADA: São os dados de entrada do algoritmoPROCESSAMENTO: São os procedimentos
utilizados para chegar ao resultado finalSAÍDA: São os dados já processados
Regras para fazer um algoritmo
Analogia com o Homem
Representações de um Algoritmo
Fluxograma ou Diagrama de Blocos.
Pseudocódigo, Português Estruturado ou Portugol.
SUBJETIVIDADE
PRECISÃO
Fluxograma é um tipo de diagrama, e pode ser entendido como uma representação esquemática de um processo.
Podemos entendê-lo, na prática, como a documentação dos passos necessários para a execução de um processo qualquer.
Fluxograma ou Diagrama de Blocos
Fluxograma
Fluxograma Exemplo
Pseudocódigo O pseudocódigo é uma maneira intermediária
entre a linguagem natural e uma linguagem de programação de representar um algoritmo.
Ela utiliza um conjunto restrito de palavras-chave, em geral na língua nativa do programador.
Pseudocódigo Exemplo
Algoritmo PROGRAMA_EXEMPLOVariáveis
A, B, SOMA: Inteiros;
Inicio ESCREVA("Digite o primeiro número:"); LEIA(A); ESCREVA("Digite o segundo número:"); LEIA(B); SOMA A + B;ESCREVA (“A SOMA É: “, SOMA);
Fim
ESCREVA(); - Responsável por escrever uma mensagem na tela.
LEIA(); - Responsável por ler um valor do teclado e armazenar numa variável, ou seja, num espaço em memória.
VARIÁVEIS – Responsável por definir todos as variáveis que serão necessárias no programa.
Início e Fim – Delimitam o corpo do programa.
Instruções Básicas do Pseudocódigo
Adição + Ex.: A+B Subtração - Ex.: A-B Multiplicação * Ex.: A*B Divisão / Ex.: A/B Potência Ex.: A^B
Operadores Aritméticos
Ex.: Resultado Preco * QtdOperador de Atribuição
As variáveis do exemplo anterior são A, B e SOMA.
Variáveis são espaços em memória usados para armazenar valores. A, B e SOMA são somente o nome desses espaços.
No programa, as variáveis A e B estão, por exemplo, usando um espaço em memória para armazenar os valores lidos do teclado. Assim, sempre que os nomes A e B forem mencionados, estarão fazendo referência a esses valores lidos.
Variáveis
Inteiros (Ex. de uso: armazenar idade)Ex.: 1 2 3 4 -5 -90 (números sem casa decimal)
Reais (Ex. de uso: preço, altura)Ex.: 2.5 -9.32 -11.1 (números com casa decimal)
Caracteres (Ex. de uso: nomes, endereços, CPF)Ex.: “IFSULDEMINAS”, “Rua da Casas, nº 25”(valores literais)
Tipos de Variáveis
1. Sempre começa com uma letra2. Não se pode utilizar o Ç e letras acentuadas3. Não se mistura letras maiúsculas e
minúsculas4. Podem ser utilizados algarismos de 0 a 95. Dos caracteres especiais, só pode ser
utilizado o sublinhado ou underscore ( _ )6. Não pode haver espaço em branco7. Não se pode utilizar palavras reservadas, ou
seja, palavras que significam comandos (escreva, leia, inteiro, real).
Nomes de Variáveis
É boa prática escolher nomes que significam alguma coisa no contexto do programa e indiquem a função da variável;
Recomenda-se que os nomes de variáveis sejam em letras minúsculas.
Nomes de Variáveis
1. O que é uma variável?
2. Classifique os conteúdos abaixo em [C] caractere, [I] inteiro ou [R] real:
a) 258.23 b) Yuri c) 127 d) Ae) Casa f) 1000.35 g) 10 h) 4.0
Exercícios
3. Quais dos seguintes nomes são válidos para uma variável:
a) 3ab b) inteiro c) X**X d) _sim
e) _A f) A123 g) N_a_o h) Y_2
i) y-2j) 00fim k) \meu l) 6y2
m) n_2 n) nota2 o) n4t p) &casa
Exercícios
As linguagens de programação não entendem uma expressão matemática da maneira que nós escrevemos.
Portanto é necessário converter uma expressão matemática para uma expressão de computador.
Por exemplo, converter: RESULTADO = N1 x N2 Para: RESULTADO N1 * N2
Linearização de Expressões
Linearização de expressões
Para construção de algoritmos que realizam cálculos matemáticos, TODAS expressões aritméticas devem ser linearizadas;
Linearizadas = Colocadas em uma únicas linha;
Numa expressão para computador, não deve haver {} ou []. Somente parênteses. Exemplos:
{80-[(5x4+1)÷3]} expressão matemática (80-((5*4+1)/3)) expressão linearizada
80 + (2 x 3) expressão matemática 40 80/40+(2*3) expressão linearizada
Linearização de Expressões
Ordem de precedência dos operadores:
1º () Parênteses 2º ^ Potência 3º */ Multiplicação ou Divisão (o que aparecer
primeiro) 4º +- Adição ou Subtração (o que aparecer
primeiro)
Linearização de Expressões
Passe as expressões abaixo para forma computacional:
a) {5 + [3x2 – (4+1)]}
b) 5 x { [(4 + 2) x 2] – 3 x 2}
c) 80 – 7 x 3 + [(5 – 1) + 8] x 3
d) [5 + (8+4 – 4x2)]2
Exercícios
AlgoritmoCondições
Luis Antonio Tavares
Condições serão usadas sempre que precisarmos testar o valor de uma variável.
Desta forma podemos definir instruções que serão executadas caso uma condição seja verdadeira e instruções alternativas, caso a condição não seja verdadeira.
Condições
Formas Usadas no Fluxograma
Fluxograma Maior Número
Início
Escreva o 1º
número:
A
Escreva o 2º
número:
B
A > B
B
A
Fim
Verdadeiro
Falso
Algoritmo MAIOR_NUMEROVariaveis
A, B: REAIS;
Inicio ESCREVA ("Digite o primeiro numero: "); LEIA ( A ); ESCREVA ("Digite o segundo numero: "); LEIA ( B ); SE ( A > B ) ENTAO
ESCREVA (“O maior numero eh: ”, A);SENAO
ESCREVA (“O maior numero eh: ”, B);FIM_SE
Fim
Fluxograma Média
Início
Escreva o 1º
número:
A
Escreva o 2º
número:
B
MEDIA (A+B) / 2
MEDIA
MEDIA >= 60
Reprovado
Aprovado
Fim
Verdadeiro
Falso
Pseudocódigo ExemploAlgoritmo PROGRAMA_EXEMPLOVariaveis
A, B, MEDIA: REAIS;
Inicio ESCREVA ("Digite a nota da primeira prova:"); LEIA ( A ); ESCREVA("Digite a nota da segunda prova:"); LEIA ( B ); MEDIA (A + B) / 2;ESCREVA (“A MEDIA EH: “, MEDIA);SE (MEDIA >= 60) ENTAO
ESCREVA (“APROVADO!”);SENAO
ESCREVA (“REPROVADO!”);FIM_SE
Fim
Maior > Ex.: A > B Maior Igual >= Ex.: A >= B Menor < Ex.: A < B Menor Igual <= Ex.: A <= B Diferente != Ex.: A != B Igual == Ex.: A == B
Exemplo:SE ( NUM == 20 ) ENTAO
ESCREVA (“O NUMERO INFORMADO EH O NUMERO 20!”);
FIM_SE
Operadores Relacionais
Operador E Ex.: A > 60 && B < 40
Operador OU Ex.: A > 60 || B < 40
Operador NÃO Ex.: ! (A > 60)
Operadores Lógicos
Exemplo Operador E:SE ( NUM > 20 && NUM < 30 ) ENTAO
ESCREVA (“O NUMERO EH MAIOR QUE 20 E MENOR QUE 30!”);
FIM_SE
Exemplo Operador OU:SE ( NUM > 20 || NUM < 30 ) ENTAO
ESCREVA (“O NUMERO EH MAIOR QUE 20 OU MENOR QUE 30!”);
FIM_SE
Operadores Lógicos
Algoritmo PROGRAMA_EXEMPLOVariaveis
A, B, MEDIA: REAIS;
Inicio ESCREVA ("Digite a nota da primeira prova:"); LEIA ( A ); ESCREVA("Digite a nota da segunda prova:"); LEIA ( B ); MEDIA (A + B) / 2;ESCREVA (“A MEDIA EH: “, MEDIA);SE ( MEDIA >= 60 ) ENTAO
ESCREVA (“Aprovado!”);SENAO SE ( MEDIA >= 30 ) ENTAO
ESCREVA (“Recuperação!”);SENAO
ESCREVA (“Reprovado!”);FIM_SE
Fim
1. Sabendo que A = 3, B = 7 e C = 4, informe se as expressões abaixo são verdadeiras ou falsas:
a) (A + C) > B _______________b) B >= (A + 2) _______________c) C == (B – A) _______________d) (B + A) <= C _______________e) (C + A) > B _______________
Exercícios
2. Sabendo que A = 5, B = 4, C = 3 e D = 6, informe se as expressões abaixo são verdadeiras ou falsas:
a) (A > C) && (C <= D) _______________b) (A + B) == (C + D) _______________c) (A < B) || (D <= C) _______________d) (A < B) || (D >= C) _______________e) (C < 10) && (D > A) _______________f) (B > C) && (C >= A) _______________g) (B > C) || (C >= A) _______________
Exercícios
AlgoritmoLaços de RepetiçãoLuis Antonio Tavares
Os laços de repetição se encarregam de repetir determinado bloco de instruções enquanto uma condição for verdadeira.
Esses laços também podem ser chamados de loops.
Temos basicamente dois tipos de loops: O para e o enquanto.
Laços de Repetição
O primeiro loop que vamos conhecer é o enquanto. Pois se trata do loop mais simples.
Funcionamento: O bloco de código definido no loop enquanto fica em execução enquanto uma determinada condição for verdadeira. Cada vez que o bloco é iniciado, a condição é novamente testada, quando não for mais verdadeira, o loop é encerrado.
Laço de Repetição ENQUANTO
A sintaxe do loop ENQUANTOALGORITMO LOOP_ENQUANTOVARIAVEIS
CONT : INTEIRO;INICIO
CONT 1;ENQUANTO ( CONT < 5 ) FAÇA
ESCREVA (“Numero: ”, CONT);CONT CONT + 1;
FIM_ENQUANTOFIM
Loop ENQUANTO ExemploALGORITMO PROGRAMA_MEDIA_COM_LOOPVARIAVEIS
MEDIA, N1, N2: REAIS;NUM: INTEIRO;
INICIONUM 1;ENQUANTO ( NUM == 1 ) FAÇA
ESCREVA (“Informe a primeira nota: ”); LEIA ( N1 ); ESCREVA (“Informe a segunda nota: ”); LEIA ( N2 ); MEDIA ( N1 + N2 ) / 2; ESCREVA (“Sua media eh: ”, MEDIA); ESCREVA (“Digite 1 se deseja continuar no programa”); LEIA ( NUM );
FIM_ENQUANTOFIM
O loop para trabalha de uma forma um pouco diferente do loop enquanto.
Funcionamento: No loop para, uma variável pode ser inicializada com um valor qualquer, e o bloco de código definido neste loop vai ser executado até que a variável atinja um determinado valor. No loop também definidos um passo, ou seja, um valor que será incrementado na variável cada vez que o loop rodar.
Laço de Repetição PARA
A sintaxe do loop PARAALGORITMO LOOP_PARAVARIAVEIS
CONT : INTEIRO;INICIO
PARA CONT 1 ATÉ 5, PASSO 1, FAÇAESCREVA (“IF Sul de Minas”);
FIM_PARAFIM
A cada execução do loop dá-se o nome de iteração (iteração sem o N mesmo, não confunda com interação.)
Loop PARA Exemplo 1
ALGORITMO ESCREVE_ATE_5VARIAVEIS
CONT: INTEIRO;INICIO
PARA CONT 1 ATÉ 5, PASSO 1, FAÇAESCREVA (“Numero: ”, CONT);
FIM_PARAFIM
Loop PARA Exemplo 2
ALGORITMO EXIBE_PARESVARIAVEIS
CONT: INTEIRO;INICIO
PARA CONT 2 ATÉ 10, PASSO 2, FAÇAESCREVA (“Numero: ”, CONT);
FIM_PARAFIM
Loop PARA Exemplo 3ALGORITMO SOMA_NUMEROS_ATE_DEZVARIAVEIS
CONT, SOMA: INTEIRO;INICIO
SOMA 0;PARA CONT 1 ATÉ 10, PASSO 1, FAÇA
SOMA SOMA + CONT;
FIM_PARAESCREVA (“A soma dos numeros eh: ”, SOMA);
FIM
O loop faça... enquanto é uma derivação do loop enquanto. A diferença é que com esse loop o bloco de código é executado uma vez antes da condição ser verificada.
Laço de Repetição FAÇA ENQUANTO
A sintaxe do loop FAÇA... ENQUANTO
ALGORITMO LOOP_FACA_ENQUANTOVARIAVEIS
CONT: INTEIRO;INICIO
CONT 0;FAÇA
ESCREVA (“Numero: ”, CONT);CONT CONT + 1;
ENQUANTO ( CONT < 5 ) FIM
Algoritmo MAIOR_NUMEROVariaveis
A, B, NUM: REAIS;
Inicio FAÇA
ESCREVA ("Digite o primeiro numero: "); LEIA ( A ); ESCREVA ("Digite o segundo numero: "); LEIA ( B ); SE ( A > B ) ENTAO
ESCREVA (“O maior numero eh: ”, A);SENAO ESCREVA (“O maior numero eh: ”, B);FIM_SEESCREVA (“Para continuar digite o numero 1: "); LEIA (NUM);
ENQUANTO(NUM == 1)Fim
Algoritmo PROGRAMA_MEDIAVariaveis
A, B, MEDIA, NUM: REAIS;
Inicio FAÇA
ESCREVA ("Digite a nota da primeira prova:"); LEIA ( A ); ESCREVA("Digite a nota da segunda prova:"); LEIA ( B ); MEDIA (A + B) / 2;ESCREVA (“A MEDIA EH: “, MEDIA);SE (MEDIA >= 60) ENTAO
ESCREVA (“APROVADO!”);SENAO ESCREVA (“REPROVADO!”);FIM_SEESCREVA("Digite o numero 1 para continuar:"); LEIA (NUM);
ENQUANTO (NUM == 1)Fim
Maior > Ex.: A > B Maior Igual >= Ex.: A >= B Menor < Ex.: A < B Menor Igual <= Ex.: A <= B Diferente != Ex.: A != B Igual == Ex.: A == B
Exemplo:ENQUANTO ( NUM < 20 ) FAÇA
ESCREVA (“O NUMERO INFORMADO EH MENOR QUE 20!”);ESCREVA (“INFORME NOVAMENTE UM NUMERO: ”);LEIA ( NUM );
FIM_ENQUANTO
Operadores Relacionais
Exemplo Operador E:ENQUANTO ( NUM > 20 && NUM < 30 ) FAÇA
ESCREVA (“O NUMERO EH MAIOR QUE 20 E MENOR QUE 30!”);ESCREVA (“INFORME NOVAMENTE UM NUMERO: ”);LEIA ( NUM );
FIM_ENQUANTO
Exemplo Operador OU:ENQUANTO ( NUM > 20 || NUM < 30 ) FAÇA
ESCREVA (“O NUMERO EH MAIOR QUE 20 OU MENOR QUE 30!”);ESCREVA (“INFORME NOVAMENTE UM NUMERO: ”);LEIA ( NUM );
FIM_ENQUANTO
Operadores Lógicos
Algoritmo PROGRAMA_MEDIAVariaveis
A, B, MEDIA, CONT : REAIS;
Inicio PARA CONT 1 ATÉ 5, PASSO 1, FAÇA
ESCREVA ("Digite a nota da primeira prova:"); LEIA ( A ); ESCREVA("Digite a nota da segunda prova:"); LEIA ( B ); MEDIA (A + B) / 2;ESCREVA (“A MEDIA EH: “, MEDIA);SE ( MEDIA >= 60 ) ENTAO
ESCREVA (“Aprovado!”);SENAO SE ( MEDIA >= 30 ) ENTAO ESCREVA (“Recuperação!”);SENAO ESCREVA (“Reprovado!”);FIM_SE
FIM_PARAFim
Programa que calcula a média de 5 pessoas usando o loop para.
Exercícios
AlgoritmoFunções
Luis Antonio Tavares
São utilizadas para dividir um algoritmo maior (mais complexo) em partes menores (mais simples).
Quando uma mesma tarefa é realizada várias vezes em um programa, não é necessário duplicar o código, apenas faz-se a chamada da função que contém o código da tarefa.
Este processo é conhecido como modularização.
Funções
Reduzem o tamanho do algoritmo.
Melhoram a legibilidade do algoritmo.
Reaproveitamento de código.
Facilitam a manutenção.
Facilitam a divisão de trabalho.
Vantagens
Sintaxe de uma funçãoFUNÇÃO ANALISA_NUMERO (NUM : INTEIRO)INICIO
SE (NUM > 0) ENTAOESCREVA (“Numero Positivo”);
SENAO SE (NUM < 0) ENTAOESCREVA (“Numero Negativo”);
SENAOESCREVA (“Numero Zero”);
FIM_SEFIM_FUNÇÃO
Chamada de função
ALGORITMO PROGRAMA_EXEMPLOVARIAVEIS
NUM: INTEIRO;INICIO
ESCREVA (“Informe um numero: ”);LEIA ( NUM );ANALISA_NUMERO ( NUM );
FIM
Sintaxe de função com retorno
FUNÇÃO SOMA (A, B : REAIS)VARIAVEIS
RESULT : REAIS;INICIO
RESULT A + B;RETORNE RESULT;
FIM_FUNÇÃO
Chamada de funçãoALGORITMO PROGRAMA_SOMAVARIAVEIS
RESULT, A, B: REAIS;INICIO
ESCREVA (“Informe o primeiro numero: ”);LEIA ( A );ESCREVA (“Informe o segundo numero: ”);LEIA ( B );
RESULT SOMA ( A, B );ESCREVA (“A soma eh: ”, RESULT);
FIM
Alguns pontos importantes
Na chamada de uma função, os valores que são passados para esta função devem vir entre parênteses após o nome da mesma. Exemplo:
ANALISA_NUMERO ( NUM );
Esses valores passados para a função são chamados de argumentos ou parâmetros.
Alguns pontos importantes A linha de definição da função deve declarar os valores
recebidos e o tipo dos mesmos. Exemplo:
FUNÇÃO SOMA (A, B : REAIS)
Não há a necessidade das variáveis passadas para uma função terem os mesmos nomes dos argumentos declarados na função. Exemplo de chamada para a função do exemplo anterior:
RESULT SOMA (N1, N2);
Mas os parâmetros devem ser do mesmo tipo e estar em mesma quantidade que os valores passados.
Alguns pontos importantes Analisando os exemplos, podemos observar que
uma função pode retornar um valor ou não retornar nenhum valor.
Mas uma função nunca retorna mais de um valor.
Quando um função retorna um valor, em sua chamada deve haver uma variável recebendo esse valor, por exemplo:
RESULT SOMA ( A, B );
Alguns pontos importantes Quando necessário, é possível criar variáveis internas
à função, ou seja, que serão acessadas somente internamente no escopo da função. Como é o caso da variável RESULT no exemplo abaixo:
FUNÇÃO SOMA (A, B : REAIS)VARIAVEIS
RESULT : REAIS;INICIO
RESULT A + B;RETORNE RESULT;
FIM_FUNÇÃO
ALGORITMO PROGRAMA_MEDIAVARIAVEIS
A, B, RESULT, CONT : REAIS;
INICIO PARA CONT 1 ATÉ 5, PASSO 1, FAÇA
ESCREVA ("Digite a nota da primeira prova:"); LEIA ( A ); ESCREVA ("Digite a nota da segunda prova:"); LEIA ( B ); RESULT CALCULA_MEDIA ( A, B );ESCREVA (“A MEDIA EH: “, RESULT);
FIM_PARAFIM
FUNÇÃO CALCULA_MEDIA ( A, B : REAIS)VARIAVEIS
RESULT, SOMA : REAIS;INICIO
SOMA A + B;RESULT SOMA / 2;RETORNE RESULT;
FIM_FUNÇÃO
Programa que calcula a média de 5 pessoas usando o loop para e função.
Exercícios