Lógica de Programação e Algoritmos Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com
2 Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Constantes, Variáveis e Tipos de Dados Variáveis e constantes são os elementos básicos que um programa manipula. Uma variável é um espaço reservado na memória do computador para armazenar um tipo de dado determinado. Variáveis devem receber nomes para poderem ser referenciadas e modificadas quando necessário. Um programa deve conter declarações que especificam de que tipo são as variáveis que ele utilizará e as vezes um valor inicial. Tipos podem ser: inteiros, reais, caracteres, etc. As expressões combinam variáveis e constantes para calcular novos valores.
3 Constantes Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Constante é um determinado valor fixo que não se modifica ao longo do tempo, durante a execução de um programa. Conforme o seu tipo, a constante é classificada como sendo numérica, lógica e literal.
4 Variáveis Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Variável é a representação simbólica dos elementos de um certo conjunto. Cada variável corresponde a uma posição de memória, cujo conteúdo pode se alterado ao longo do tempo durante a execução de um programa. Embora uma variável possa assumir diferentes valores, ela só pode armazenar um valor a cada instante. Exemplos de variáveis:
Tipos de Variáveis Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com As variáveis e as constantes podem ser basicamente de quatro tipos: Numéricas Específicas para armazenamento de números (cálculos). Podem ser ainda classificadas como Inteiras ou Reais. As variáveis do tipo inteiro são para armazenamento de números inteiros e as Reais são para o armazenamento de números que possuam casas decimais. Caracteres Específicas para armazenamento de conjunto de caracteres que não contenham números (literais). Ex: nomes. Alfanuméricas Específicas para dados que contenham letras e/ou números. Pode em determinados momentos conter somente dados numéricos ou somente literais. Se usado somente para armazenamento de números, não poderá ser utilizada para operações matemáticas. Lógicas Armazenam somente dados lógicos que podem ser Verdadeiro ou Falso. 5
Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com 6 Comando de Atribuição Ao criarmos uma variável, partimos do princípio que em algum momento ou vários momentos dentro do nosso algoritmo, ela receberá valores, ou seja, armazenaremos dados na memória através de nossas variáveis. Para atribuirmos um valor ou uma expressão a uma variável, utilizamos o comando de atribuição Assim, a sintaxe do comando é: identificador expressão; Exemplo: Salario 1000; Nome Ana ;
Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com 7 Comentários Comentários devem ser inseridos no algoritmo a fim de esclarecer o desenvolvimento do mesmo. Os comentários são inseridos entre { e }. { Texto de comentário delimitado por chaves }
Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com 8 Operadores Operadores Aritméticos É comum necessitarmos realizar cálculos matemáticos com as informações que estamos manipulando. Para isso, é necessário sabermos qual a representação dos símbolos de operações matemáticas. Vejamos: Operador Operação Exemplo + Adição 10 + 15 - Subtração 20 10 * Multiplicação 3 * 5 / Divisão (onde o resultado será um número real) 5 / 2 = 2,5 DIV Divisão (onde o resultado será um número inteiro) 10 div 2 = 5 7 div 2 = 3 MOD Resto de uma divisão 7 mod 2 = 1 exp(a, b) Exponenciação exp(5, 2)
Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com 9 Operadores Operadores Relacionais Além de operações matemáticas, é frequente nossa necessidade em comparar informações. Por exemplo: Se média for maior ou igual a 7. Para isso, utilizamos operadores relacionais. Operador Relação = Igualdade ou <> Diferente > Maior que ou >= Maior ou igual que < Menor que ou <= Menor ou igual que
10 Operadores Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Operadores Lógicos É frequente precisarmos analisar expressões lógicas, aquelas que só possuem dois valores possíveis: Verdadeiro ou Falso. Os operadores usados em expressões lógicas são os Operadores Lógicos. Veja: Operador E (And) Ou (Or) Não (Not) Ou-X (Xor) Relação E lógico Ou lógico Negação lógica Ou Exclusivo
11 Operadores Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Operadores Lógicos Veja a seguinte tabela (Tabela Verdade) para entender melhor os operadores lógicos. P Q P e Q P ou Q P ou-x Q* F F F F F F V F V V V F F V V V V V V F * o valor da saída é V se as entradas são diferentes e F se as entradas são iguais
Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com 12 Prioridade na Avaliação de Expressões 1º Parênteses e funções (resolvidos da esquerda para a direita) 2º Multiplicação (*), Divisão ( / e div ) e Resto ( Mod ) (resolvidos da esquerda para a direita) 3º soma e subtração 4º Operadores relacionais: >, <,,, =, 5º Operador Lógico Não (Not) 6º Operador Lógico E (And) 7º Operador Lógico Ou (Or) 8º Operador Lógico Ou Exclusivo (XOr)
13 Comandos de Entrada e Saída Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Para atingirmos os objetivos de um algoritmo, necessitamos receber dados do mundo externo e precisamos exteriorizar as informações produzidas. Para obtermos e exteriorizarmos esses dados, utilizamos os seguintes comandos de entrada e saída, LER, ESCREVER e IMPRIMIR. O comando ler espera receber um determinado dado (sem importar a origem). O comando escrever mostra a informação produzida no vídeo. O comando imprimir faz a impressão em papel da informação produzida.
Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com 14 Veja a sintaxe dos comandos: Comandos de Entrada e Saída ler(variável1, variável2,..., variável); escrever(lista de constantes, variáveis e/ou expressões); imprimir(lista de constantes, variáveis e/ou expressões); Exemplos: ler(numero1); numero2 numero1 * 2; escrever( O dobro do número é, numero2);
Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com 15 Exercícios 1) Tendo as variáveis SALARIO, IR e SALLIQ, e considerando os valores abaixo. Informe se as expressões são verdadeiras ou falsas. 2) Sabendo que A=3, B=7 e C=4, informe se as expressões abaixo são verdadeiras ou falsas. [ ] (A+C) > B [ ] B >= (A + 2) [ ] C = (B A) [ ] (B + A) <= C [ ] (C+A) > B
Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com 16 Exercícios 3) Sabendo que A=5, B=4 e C=3 e D=6, informe se as expressões abaixo são verdadeiras ou falsas. [ ] (A > C) AND (C <= D) [ ] (A+B) > 10 OR (A+B) = (C+D) [ ] (A>=C) AND (D >= C) 4) Escreva um algoritmo e elabore um diagrama de blocos que leia um número. Verifique se o número é positivo ou negativo. No final mostrar o resultado. 5) Escreva um algoritmo e elabore um fluxograma que leia um número e verifique se ele é par ou ímpar. Mostre o resultado no final do processamento.
Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com 17 Exercícios 6) Construa um diagrama de blocos para ler uma variável numérica N. Mostre a variável somente se ela for maior que 100, caso contrário mostre o valor zero. 7) Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um algoritmo que calcule seu peso ideal, utilizando as seguintes fórmulas: Para homens: (72.7*h) - 58 Para mulheres: (62.1*h) - 44.7 (h = altura)
18 Algoritmos Estruturados. Referências Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com FARRER, Harry, BECKER, Christiano G., FARIA, Eduardo C., MATOS, Helton Fábio de, SANTOS, Marcos Augusto dos, MAIA, Miriam Lourenço. Rio de Janeiro: Editora Guanabara, 1989. Lógica de Programação A Construção de Algoritmos e Estruturas de Dados Forbellone, André Luiz Villar. São Paulo, Prentice Hall, 2005: Algoritmos e estruturas de dados. GUIMARÃES, Angelo de Moura, LAGES, Newton A de Castilho. Rio de Janeiro: LTC Livros Técnicos e Científicos Editora, 1985. Programação e lógica com Turbo Pascal. MECLER, Ian, MAIA, Luiz Paulo. Rio de Paulo Janeiro: Campus, 1989. Unicamp - Centro de Computação DSC. Sérgio de Moraes, abril 2000. Algoritmos. SALVETTI, Dirceu Douglas, BARBOSA, Lisbete Madsen. São Paulo: Makron Books, 1998. Concursos Públicos Raciocínio Lógico. SILVA, Joselias Santos da. São Paulo: R&A Editora Cursos e Materiais Didáticos, 1999. Algoritmos e Estruturas de Dados. WIRTH, Niklaus. Rio de Janeiro: Editora Prentice-Hall do Brasil, 1986. Sites na Web: http://www.inf.pucrs.br/~egidio/algo1/