52
Pseudo-código: sintaxe

Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Embed Size (px)

Citation preview

Page 1: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Pseudo-código: sintaxe

Page 2: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Motivação

Resolver problemas muitas vezes requer:

Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Page 3: 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

Page 4: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Exemplo

ACaneta

aqui

BBatata na porta C

CCaneta na porta

A

Onde está o dinheiro?

Page 5: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 6: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 7: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Algoritmos

Como transformar o raciocínio lógico em algoritmos?

Não há algoritmos para construir algoritmos

Um algoritmo depende muito de seu criador

Page 8: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 9: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 10: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 11: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Escreva um algoritmo para descrever como você faz para ir da sua casa para a faculdade

Page 12: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Algoritmos - sintaxe

Algoritmo nome (<entradas>)

Inicio

/*corpo*/

fim

Page 13: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 14: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 15: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 16: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Assim o comando

Imprimir “teste de impressão”

Irá imprimir no dispositivo de saída a

expressão teste de impressão

Page 17: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Algoritmo imprimirTeste ()

Inicio

imprimir “teste de impressão”

fim

Page 18: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Exemplo: escreva um algoritmo que imprima o seu nome

Page 19: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 20: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Variáveis - exemplo

Inteiro idade

Real salário

Texto nome

Lógico bomPagador

Page 21: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 22: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Variáveis-inicialização

Algoritmo imprimeNúmero()

Inicio

Inteiro num=5

imprimir num

imprimir 5

fim

Page 23: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Variáveis - Operadores gerais

Atribuição: =

Comparação positiva: ==

Comparação negativa: !=

Page 24: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Variáveis-inicialização

Algoritmo imprimeNúmero()

Inicio

Inteiro num=5 /* inicializando variável */

imprimir num

num = 6 /* alterando valor*/

imprimir num

fim

Page 25: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Variáveis – Operadores numéricos

Adição: + Subtração: - Multiplicação: * Divisão inteira: / Resto de divisão: % Sinalização: + e – (operadores unários)

Page 26: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Variáveis-inicialização

Algoritmo imprimeNúmero()

Inicio

Inteiro num1=5

Inteiro num2=6

Inteiro num3=num1+num2

imprimir num3

fim

Page 27: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 28: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Avalie as seguintes expressões

1 + 2 * -1

1*2 / 3

1+4 * 5 – 2

1%2 -1

Page 29: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Avalie as seguintes expressões

1 + 2 * -1 -> -1

1*2 / 3 -> 0

1+4 * 5 – 2 -> 19

1%2 -1 -> 0

Page 30: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 31: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Operador de texto

Concatenação: +

Agrega o texto contido no segundo operando no final do primeiro

Page 32: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Algoritmo imprimeTexto()

Inicio

Texto tex1=“minas”

Texto tex2=“gerais”

Texto tex3=tex1+tex2

imprimir tex3

Fim

Page 33: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Algoritmo imprimeTexto()Inicio Texto tex1=“minas” Texto tex2=“gerais” Texto tex3=tex1+tex2 imprimir tex3Fim

Saída -> minasgerais

Page 34: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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)

Page 35: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 36: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Algoritmo imprimeLógico()

Inicio

Inteiro int1=3

Inteiro int2=5

Lógico log = int1> int2

imprimir log

Fim

Page 37: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Operadores relacionais

== - retorna verdadeiro se o primeiro operador for igual ao segundo

!= - retornam verdadeiro se o primeiro operador for diferente do segundo

Page 38: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Algoritmo imprimeLógico()

Inicio

Inteiro int1=3

Inteiro int2=5

Lógico log = int1== int2

imprimir log

Fim

Page 39: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 40: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 41: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 42: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 43: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Assim,

Ler x

Irá atribuir à variável x o valor passado pelo usuário

Page 44: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Exemplo

Algoritmo entradaTeste()

Inicio

Inteiro int1=0

imprimir “digite um número inteiro”

Ler int1

imprimir int1

Fim

Page 45: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 46: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 47: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

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

Page 48: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Operadores lógicos

E: &

Ou: |

Negação: !

Page 49: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Tabela Verdade &

Operando

1

Operando

2

Resultado

Verdadeiro Verdadeiro Verdadeiro

Verdadeiro Falso Falso

Falso Verdadeiro Falso

Falso Falso Falso

Page 50: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Tabela Verdade |

Operando

1

Operando

2

Resultado

Verdadeiro Verdadeiro Verdadeiro

Verdadeiro Falso Verdadeiro

Falso Verdadeiro Verdadeiro

Falso Falso Falso

Page 51: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização

Tabela Verdade !

Operando

1

Resultado

Verdadeiro Falso

Falso Verdadeiro

Page 52: Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas lógicas Uso de pensamento lógico Padronização