400 likes | 528 Views
Tema: Descrição e construção básica de algoritmo: operadores matemáticos e lógicos, tipos de dados, atribuição, leitura e escrita Professor MSc . Edilene A. Veneruchi de Campos. Objetivos deste encontro Entender e usar diferentes tipos de dados;
E N D
Tema: Descrição e construção básica de algoritmo: operadores matemáticos e lógicos, tipos de dados, atribuição, leitura e escrita Professor MSc. Edilene A. Veneruchi de Campos
Objetivos deste encontro • Entender e usar diferentes tipos de dados; • Criar e usar variáveis • Linearizar expressões matemáticas para uso em algoritmos; • Conhecer e aplicar operadores matemáticos, relacionais e lógicos; • Criar algoritmos com estrutura sequencial; • Criar algoritmos com estrutura condicional.
Tipo de Dados Define o espaço de memória necessário para armazenar um valor que será utilizado pelo algoritmo. Espaço de memória cujo conteúdo não pode ser alterado durante a execução é chamado de constante. Espaço de memória cujo conteúdo pode ser alterado durante a execução é chamado de variável.
Possíveis tipos de dados • Tipo Inteiro • Tipo Real • Tipo Caractere • Tipo Lógico Exemplo: Var idade: INTEIRO; peso: REAL; tamanho: CHAR; situacao: LOGICO;
Matemática e programação ? Grande parte dos problemas computacionais trabalha com números e com funções matemáticas Fonte: http://commons.wikimedia.org/wiki/File:Lots_ of_math_symbols_and_numbers.svg
Exemplos de função f(x) = 2x + 1 ou y = 2x + 1 y 5 3 1 x -1 1 2 -1
Exemplos de função f(x) = x2 ou y = x2 y 4 1 x -2 -1 0 1 2
Operadores aritméticos básicos em linguagem algorítmica Fonte: Adaptado de Piva Jr et al (2012) Em algoritmos (ou programas) não são usados colchetes e chaves. Utiliza-se apenas parêntesis.
Operadores aritméticos mais complexos em linguagem algorítmica Fonte: Adaptado de Piva Jr et al (2012)
Funções matemáticas em linguagem algorítmica Fonte: Adaptado de Piva Jr et al (2012)
Tomada de Decisão Em programação, decisão significa definir um dentre dois possíveis caminhos a seguir dentro do algoritmo. Exige análise de uma situação. A partir do resultado desta análise define-se qual o caminho apropriado.
Estrutura Condicional Simples Permite decidir se um comando (ou um conjunto de comandos) será executado caso uma situação se mostre verdadeira. ... Falsa ... Inicio Fim Condição ? Verdadeira Ações
Exemplo Exemplo: acrescentar bônus de R$ 300,00 ao salários dos funcionários que possuírem 3 filhos ou mais. Algoritmo “Salario” Var S, F: INTEIRO ESCREVA(“Digite salário: “); LEIA (S) ESCREVA(“Digite qtd de filhos: “); LEIA (F) SE F >= 3 ENTAO S S + 300 FIMSE ESCREVA (“Salário é ”, S) fimalgoritmo Inicio S, F Sim S S + 300 F >=3 Não S S + F Fim
Estrutura Condicional Composta Permite decidir qual, dentre dois possíveis caminhos, será executado. A decisão será tomada com base na análise de uma situação. ... Fim Ações 2 Inicio Verdadeira ... Falsa Condição ? Ações 1
Exemplo Algoritmo “Maior” Var a, b: INTEIRO ESCREVA(“Digite o valor de a: “); LEIA (a) ESCREVA(“Digite o valor de b: “); LEIA (b) SE a > b ENTAO ESCREVA ( “Maior é ”, a) SENÃO ESCREVA (“Maior é ”, b) fimalgoritmo Mostrar o maior número informado pelo usuário. Inicio a, b Sim a > b? Maior é a Não Maior é b Fim
Operadores relacionais em linguagem algorítmica Fonte: Adaptado de Piva Jr et al (2012)
Operadores lógicos em linguagem algorítmica Fonte: Adaptado de Piva Jr et al (2012)
Tabela verdade do NÃO Cenário para inverter situação de um aluno. p = proposição (conteúdo que pode ser tomado como verdadeiro ou falso) V = Verdadeiro F = Falso
Tabela Verdade do E Cenário para um aluno ser considerado aprovado (atendeu a todos os requisitos impostos pela escola).
Tabela Verdade do OU Cenário para um aluno não ser aprovado direto (não atendeu a pelo menos um dos requisitos impostos pela escola).
Tabela Verdade do XOU Cenário para um aluno um aluno fazer recuperação.
Exemplo do uso do operador E Receber como entrada a média e o total de faltas de aluno. Mostrar mensagem informando se ele passou ou se deverá tentar recuperação. Inicio V m >= 7 E f <=15 Passou m, f F Tentar recuperação Fim
Algoritmo “Resultado” Var m: REAL f: INTEIRO ESCREVA (“Digite a média: “) LEIA (m) ESCREVA (“Digite total de faltas: “) LEIA (f) SE m >= 7 E f <= 15 ENTAO ESCREVA(“Aprovado“) SENAO ESCREVA(“Tentar recuperação“) FIMSE fimalgoritmo
Exemplo do uso do operador E Aplicar 10% de desconto no preço dos produtos que possuírem mais de 100 unidades em estoque e cujo preço seja superior a R$ 250,00. Para os demais produtos aplicar desconto de 2% sobre o preço. Mostrar o novo preço. Inicio V Fim q > 100 E p > 250 d p*10/100 p, q F p d p*2/100 p p - d
Algoritmo “Desconto” Var p, q, d: REAL ESCREVA (“Digite a quantidade: “) LEIA (q) ESCREVA (“Digite preço de venda: “) LEIA (p) SE q > 100 E p > 250 ENTAO dp*10/100 SENAO dp*2/100 FIMSE pp-d ESCREVA(“Novo preço de venda: “, p) fimalgoritmo
Exemplo do uso do operador OU Receber como entrada a média e o total de faltas de aluno. Mostrar mensagem informando se ele deverá tentar recuperação ou se já está aprovado. Inicio Tentar recuperação V m < 7 OU f > 15 m, f F Fim Aprovado
Algoritmo “Resultado” Var m: REAL f: INTEIRO ESCREVA (“Digite a média: “) LEIA (m) ESCREVA (“Digite total de faltas: “) LEIA (f) SE m < 7 E f > 15 ENTAO ESCREVA(“Tentar recuperação“) SENAO ESCREVA(“Aprovado“) FIMSE fimalgoritmo
Exemplo do uso do operador OU Uma escola aceita matrícula de alunos com idade entre 6 e 18 anos. Criar uma algoritmo que receba uma idade de um candidato e informe se ele poderá ou não se matricular. Inicio V Matrícula recusada id < 6 OU id > 18 id F Matrícula aceita Fim
Algoritmo “Matricula” Var id: INTEIRO ESCREVA (“Digite a idade: “) LEIA (id) SE id < 6 OU id > 18 ENTAO ESCREVA(“matrícula recusada“) SENAO ESCREVA(“matrícula aceita“) FIMSE fimalgoritmo
Exemplo condicional em C Com base na média e no total de faltas, definir se um aluno está aprovado ou deverá tentar recuperação. #include <stdio.h> main() { float m; int f; printf(“Digite a média: ); scanf(“%f%*c”, &m); printf(“Digite total faltas: ); scanf(“%d%*c”, &f); if (m >= 7 && f <=15) printf(“Aprovado”); elseprintf(“Tentar recuperação”); getchar(); }
Exemplo condicional em Pascal Fornecer bônus de R$ 300,00 aos funcionários com 3 ou mais filhos. PROGRAM SALARIO; VAR s: REAL; f: INTEGER; BEGIN WRITELN(“Digite o salário: ); READLN(s); WRITELN(“Digite qtd de filhos: ); READLN(f); IF f >= 3 THEN s := s + 300; WRITELN(“Salário = ”, s); READLN(); END.
Condicional em Java Fornecer 10% de desconto para produtos com mais de 600 unidades em estoque ou com preço superior a R$ 500,00. Nos demais casos, fornecer desconto de 4%. importjava.util.Scanner; publicclass Calculo { publicstaticvoidmain(String args[]) { double p, q; Scanner e = new Scanner(System.in); System.out.println(“Digite o preço: “); p = e.nextFloat();
System.out.println(“Digite ta quantidade: “); q = e.nextFloat(); if (p > 500 || q > 600) p = p – (p * 10 / 100); else p = p – (p* 4 / 100); System.out.println(“Novo preco = “ + p); } }
Conclusões... Estruturas condicionais são estruturas de controle (ou fluxo de controle) que possibilitam incorporar mais flexibilidade aos algoritmos. Assim, é possível que um mesmo algoritmo resolva uma quantidade maior de problemas.