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

Post on 16-Apr-2015

111 views 0 download

Transcript of Pseudo-código: sintaxe. Motivação Resolver problemas muitas vezes requer: Uso de ferramentas...

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