Upload
internet
View
111
Download
0
Embed Size (px)
Citation preview
Pseudo-código: sintaxe
Motivação
Resolver problemas muitas vezes requer:
Uso de ferramentas lógicas Uso de pensamento lógico Padronização
Exemplo
Ganhando 1 milhão de Reais Há 3 portas para se escolher uma Atrás de cada porta há um “prêmio” Os prêmios são: $$$, caneta, batata Em cada porta há uma frase escrita Sabe-se que a frase da porta do $$$ é
verdade e a porta da batata mentira
Exemplo
ACaneta
aqui
BBatata na porta C
CCaneta na porta
A
Onde está o dinheiro?
Exemplo 2
Suponha que 5 rãs posicionadas em 6 casas da seguinte maneira
Descreva os passos para que elas atinjam a seguinte configuração
r1 r2 r3 r4 r5
r5 r4 r3 r2 r1
Exemplo 2
Uma rã pode pular para uma casa vizinha se ela estiver vazia
Uma rã pode pular a rã vizinha (apenas uma) se a casa estiver vazia
Algoritmos
Como transformar o raciocínio lógico em algoritmos?
Não há algoritmos para construir algoritmos
Um algoritmo depende muito de seu criador
Algoritmos - Características
Finitude – um algoritmo deve ter um número finito de passos
Definição – cada passo do algoritmo deve ser corretamente definida e não possuir ambiguidades
Algoritmo - Características
Entrada – um algoritmo deve ter zero ou mais entradas
Saída – um algoritmo deve ter uma ou mais saídas
Efetividade – um algoritmo deve ter operações suficientemente básicas de modo que possa ser executado com precisão por um humano, usando papel e lápis, em um tempo finito
Algoritmos
Todos sabemos fazer algoritmos
Conseguimos sair de casa, ir para o trabalho e voltar para casa
Para fazer isto tudo é necessário uma série de entradas como: horário de acordar, horário para entrar no trabalho, etc
Escreva um algoritmo para descrever como você faz para ir da sua casa para a faculdade
Algoritmos - sintaxe
Algoritmo nome (<entradas>)
Inicio
/*corpo*/
fim
O nome de um algoritmo é um identificador válido
Devem começar com caracteres (a-z,A-Z) e podem ser seguidos de um ou mais caracteres ou dígitos(a-z,A-Z,0-9,_)
O nome deve ser significativo, mostrando qual a função do algoritmo
Na matemática é comum chamar algoritmos e funções por letras – função f
Isto é mal visto pela computação pois dificulta o entendimento do código
Comandos básicos
Imprimir
Usado para imprimir no dispositivo de saída
Irá imprimir tudo aquilo estiver depois do comando até o fim da linha
Assim o comando
Imprimir “teste de impressão”
Irá imprimir no dispositivo de saída a
expressão teste de impressão
Algoritmo imprimirTeste ()
Inicio
imprimir “teste de impressão”
fim
Exemplo: escreva um algoritmo que imprima o seu nome
Variáveis
Regiões de memória que são tratadas segundo regras de um tipo específico
Podem armazenar dados, ser usadas como operandos em operações
Sintaxe: tipo nome
Variáveis - exemplo
Inteiro idade
Real salário
Texto nome
Lógico bomPagador
Variáveis-inicialização
Atribui a região de memória designada pela variável um valor inicial
É importante pois nem todas as linguagens tem mecanismo automático de inicialização
Variáveis-inicialização
Algoritmo imprimeNúmero()
Inicio
Inteiro num=5
imprimir num
imprimir 5
fim
Variáveis - Operadores gerais
Atribuição: =
Comparação positiva: ==
Comparação negativa: !=
Variáveis-inicialização
Algoritmo imprimeNúmero()
Inicio
Inteiro num=5 /* inicializando variável */
imprimir num
num = 6 /* alterando valor*/
imprimir num
fim
Variáveis – Operadores numéricos
Adição: + Subtração: - Multiplicação: * Divisão inteira: / Resto de divisão: % Sinalização: + e – (operadores unários)
Variáveis-inicialização
Algoritmo imprimeNúmero()
Inicio
Inteiro num1=5
Inteiro num2=6
Inteiro num3=num1+num2
imprimir num3
fim
Operadores numérico - Precedência As operações são analisadas da esquerda
para a direita seguindo a seguinte precedência:
1- Sinalização: + e – (operadores unários) 2 – Multiplicação, Divisão inteira e Resto
de divisão 3 – Adição e Subtração
Avalie as seguintes expressões
1 + 2 * -1
1*2 / 3
1+4 * 5 – 2
1%2 -1
Avalie as seguintes expressões
1 + 2 * -1 -> -1
1*2 / 3 -> 0
1+4 * 5 – 2 -> 19
1%2 -1 -> 0
Operador Parêntesis ()
Operador de mudança de precedência (2+1)*8
Indica que a soma deve ser realizada antes da multiplicação
Composição de parêntesis ((2+1)/10)*3
Operador de texto
Concatenação: +
Agrega o texto contido no segundo operando no final do primeiro
Algoritmo imprimeTexto()
Inicio
Texto tex1=“minas”
Texto tex2=“gerais”
Texto tex3=tex1+tex2
imprimir tex3
Fim
Algoritmo imprimeTexto()Inicio Texto tex1=“minas” Texto tex2=“gerais” Texto tex3=tex1+tex2 imprimir tex3Fim
Saída -> minasgerais
Exercício
Escreva um algoritmo que declare cada parte do seu nome como uma variável do tipo texto
O algoritmo deve imprimir os nomes na ordem correta
O algoritmo deve imprimir o nome como se faz na lingua inglesa (Souza, Maurício de)
Operadores relacionais
Retornam falso ou verdadeiro dependendo dos operadores
>, >= - retornam verdadeiro se o primeiro operador for maior(ou igual) ao segundo
<, <= - retornam verdadeiro se o primeiro operador for menor(ou igual) ao segundo
Algoritmo imprimeLógico()
Inicio
Inteiro int1=3
Inteiro int2=5
Lógico log = int1> int2
imprimir log
Fim
Operadores relacionais
== - retorna verdadeiro se o primeiro operador for igual ao segundo
!= - retornam verdadeiro se o primeiro operador for diferente do segundo
Algoritmo imprimeLógico()
Inicio
Inteiro int1=3
Inteiro int2=5
Lógico log = int1== int2
imprimir log
Fim
Exercício
Faça um algoritmo que declare o número de letras do seu primeiro e último nome como números inteiros
O algoritmo deve imprimir se o número de caracteres do seu primeiro nome é igual ao número de caracteres do segundo
Exercício
Faça um algoritmo que declare o número de letras do seu primeiro e último nome como números inteiros
O algoritmo deve imprimir se o número de caracteres do seu primeiro nome é impar
Entrada de dados
Há necessidade de troca de informações entre o usuário e o programa
Esta troca de informações se efetua através de entrada e saída de dados
Ler
Usado para ler informações a serem passadas pelo usuário
Atribui à variável após o comando o valor informado pelo usuário
Assim,
Ler x
Irá atribuir à variável x o valor passado pelo usuário
Exemplo
Algoritmo entradaTeste()
Inicio
Inteiro int1=0
imprimir “digite um número inteiro”
Ler int1
imprimir int1
Fim
Exercício
Faça um algoritmo que leia as notas de 10 alunos de uma turma
O algoritmo deve calcular a média desta turma e imprimi-la
Exercício
Faça um algoritmo que leia o primeiro e o último nome do usuário
O algoritmo deve imprimir o nome na forma normal e como é escrito na língua inglesa
Exercício
Faça um algoritmo que leia 2 números reais e imprima o resultado das quatro operações básicas da aritmética utilizando estes dois números como operandos
Operadores lógicos
E: &
Ou: |
Negação: !
Tabela Verdade &
Operando
1
Operando
2
Resultado
Verdadeiro Verdadeiro Verdadeiro
Verdadeiro Falso Falso
Falso Verdadeiro Falso
Falso Falso Falso
Tabela Verdade |
Operando
1
Operando
2
Resultado
Verdadeiro Verdadeiro Verdadeiro
Verdadeiro Falso Verdadeiro
Falso Verdadeiro Verdadeiro
Falso Falso Falso
Tabela Verdade !
Operando
1
Resultado
Verdadeiro Falso
Falso Verdadeiro