520 likes | 696 Views
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
E N D
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 A Caneta aqui B Batata na porta C C Caneta 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
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 tex3 Fim 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: !