MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA CAMPUS SÃO JOSÉ – SANTA CATARINA Lógica de Programação Módulo II Prof. Tiago Semprebom [email protected] www.sj.ifsc.edu.br/~tisemp Lógica de Programação Estruturas de dados • Representação computacional das informações do problema a ser resolvido • Informações podem ser de diferentes tipos, então implicam diferentes representações • Ex. Identifique os dados de entrada e saída neste algoritmo para calcular a aceleração de um corpo: • 1. Leia para variável M a massa do corpo em Kg. • 2. Leia para variável F a força a ser aplicada ao corpo. • 3. Calcule a aceleração: a = F/M – ac * Mg • 4. Mostre o valor da variável a na tela Lógica de Programação Tipos primitivos de dados • Numéricos: – Inteiros: um subconjunto dos números inteiros, podendo ser sinalizados ou não (ex: 4, -5, 1034, 0). – Reais: um subconjunto dos números reais, com determinada precisão (ex: 1.34, 2.7828). • Não-numéricos: – Alfanuméricos: sequência de letras, algarismos e símbolos (ex: “ABCDEF”, “FX90”, “R$ 10,00”). – Booleanos: valores que representam verdadeiro ou falso (ex: TRUE ou FALSE). Lógica de Programação Constantes e variáveis • Informações podem estar guardadas em constantes ou variáveis • Constantes: valores que não mudam ao longo do tempo • Variáveis: guardam valores que podem mudar – Conteúdo: valor da variável. – Identificador: o nome da variável. – Do ponto de vista computacional, uma variável é uma área de memória RAM Lógica de Programação Constantes e variáveis • Ex. Algoritmo para calcular a aceleração de um corpo: 1. Leia para variável M a massa do corpo em Kg. 2. Leia para variável F a força a ser aplicada ao corpo. 3. Calcule a acelaração: a = F / M – ac * Mg 4. Mostre o valor a na tela. F: variável que representa a força aplicada M: variável que representa a massa do corpo a: variável que representa a aceleração resultante ac: constante que representa o atrito cinético g: constante que representa a aceleração gravitacional constantes Lógica de Programação Constantes e variáveis • Ex: Algoritmo para formatar o nome de uma pessoa: 1. Leia para variável nome o primeiro nome de uma pessoa. 2. Leia para variável sobrenome seu sobrenome. 3. Faça variável NomeCompleto = nome + “” sobrenome 4. Mostre o valor da variável NomeCompleto na tela. variáveis: nome, sobrenome, NomeCompleto constantes: “ ” Obs.: todas as variáveis e constantes são alfanuméricas. Lógica de Programação Constantes e variáveis • O identificador é o nome de um local onde se podem guardar valores de determinado tipo de dados. • A definição de identificadores possui regras (sendo algumas de bom senso): – – – – Devem iniciar com caractere alfabético; Segundo caractere em diante pode ser numérico; Pode-se usar símbolo “_” como parte do identificador; Devem ajudar a lembrar do que se trata a informação guardada (i.e: mnemônico) – Exemplo: nome, sobrenome, a, F, lista, ... Lógica de Programação Declaração de variáveis • As variáveis necessárias em um algoritmo devem ser previamente declaradas – Assim se reserva memória para guardar seus conteúdos • A declaração inclui o tipo de dados da variável e seu identificador, na forma: Tipo variável1, variável2,...; • Exemplos: real: x, y; // coordenadas do ponto caracter Nome; inteiro Dia, mes, ano; booleano Sucesso; /* verificação do nome bem sucedida */ Lógica de Programação Declaração de variáveis • Ao serem declaradas as variáveis não estão inicializadas – Quer dizer, não possuem valor • A declaração ocorre antes das ações do algoritmo • Os comentários representam qualquer explicação inserida no algoritmo, para ajudar seu entendimento – Comentários são precedidos por // – ... Ou delimitados por /* e */ (neste caso, podem ocupar mais de uma linha) Lógica de Programação Operações básicas • Atribuição: – Atribuir ou associar um valor a uma expressão – Sintaxe genérica: identificador expressão; – Expressão pode ser: uma constante, variável, expressão matemática, função matemática, expressão booleana,... – O resultado da expressão deve respeitar o tipo da variável! • Ex: X 10; Y x * 2; Sucesso (x < 20) and (y > 10); A se(αx+ωt); Lógica de Programação Operações básicas • Operadores aritméticos: +, - Adição e subtração (unários) * Multiplicação / Divisão div Divisão inteira ou truncada mod Resto da divisão inteira • Operadores relacionais: >, >=, <, <=, == (igual), != (diferente) • Operadores lógicos ou booleanos: And, Or, Not Lógica de Programação Operações básicas • Funções matemáticas: Nome da função (lista de argumentos) • Exemplos: – – – – Sin(x) Sqrt(x) Int(y) Abs(x) Seno do valor contido em x Raiz quadrada do valor contido em x Parte inteira do valor contido em y Valor absoluto (módulo) do valor contido em x Lógica de Programação Descrição do algoritmo em pseudo-linguagem: Declaração de variáveis e constantes INICIO Inicialização de variáveis e constantes Comandos de entrada de dados Processamento / cálculo Comandos de saída de dados FIM Lógica de Programação Descrição do algoritmo em pseudo-linguagem: Ex: cálculo de média Real P1, P2, P3, P4, M; INICIO Leia(P1); Leia(P2); Leia(P3); Leia(P4); M (P1+P2+P3+P4) / 4; Escreva(“Média final = ”, M); FIM Lógica de Programação Exercícios: 1) Faça um algoritmo para ler dados pessoais (nome, ano de nascimento, endereço, sexo), e mostre esses dados da seguinte forma: Nome: nome completo Nascimento: ano de nascimento Idade: idade Sexo: M ou F Maior de idade: Verdadeiro ou Falso Lógica de Programação Exercícios: 2) Faça um algoritmo para calcular e mostrar o perímetro de um polígono qualquer. 3) Faça um algoritmo para ler a base e a altura de um triângulo. Em seguida, escreva a área do mesmo. Obs: Área = (Base * Altura) / 2. 4) Desenvolva um programa que leia uma temperatura em graus Fahrenheit e apresente convertida em graus Centígrados. A fórmula de conversão é: C = (F - 32) * (5/9). Onde F é a temperatura em Fahrenheit e C é a temperatura em Centígrados. Lógica de Programação 5) Faça um algoritmo para calcular a resistência equivalente para um circuito com duas resistências em paralelo. 6) Em um cinema as cadeiras são numeradas seqüencialmente, começando no canto esquerdo próximo à tela. Essas cadeiras estão organizadas em 40 fileiras de 20 cadeiras. Faça um algoritmo que informe que fileira se encontre determinada cadeira, e sua posição em relação ao início da fileira. Lógica de Programação Estruturas de controle: • Condicional: faz a escolha de ações a serem executadas, dependendo de condições definidas. • Condições são dadas por expressões booleanas, que resultam em Verdadeiro ou Falso. • Sintaxe geral: Se condição então Bloco de comandos Fim se Se condição então Bloco de comandos Senão Bloco de comandos Fim se Lógica de Programação Exercícios: 1) Faça um algoritmo para fazer a divisão de dois números reais. Antes de dividi-los deve ser feito um teste de validade. Caso não seja possível dividi-los, deve ser mostrada uma mensagem de erro. Se for possível, deve-se mostrar o resultado da divisão. 2) Faça um algoritmo para fazer a divisão de dois números inteiros. No entanto, antes de efetuar a divisão deve-se verificar se é possível fazer a divisão sem resto, gerando-se uma mensagem de erro caso contrário. Lógica de Programação Exercícios: 3) Escreva um programa para ler as notas da primeira e segunda avaliações de um aluno, calcular a media e escrever se este aluno foi APROVADO (media maior ou igual a 7), REPROVADO (media inferior a 4), ou se esta' em EXAME (entre 4 e 7). Escrever também a media calculada. 4) Elaborar um programa que efetue o cálculo do reajuste de salário de um funcionário. Considere que o funcionário deverá receber um reajuste de 15% caso seu salário seja menor que 500, se o salário for maior ou igual a 500 mas menor ou igual a 1000, seu reajuste será de 10%, caso seja ainda maior que 1000, o reajuste deverá ser de 5%. Lógica de Programação 5) Faça um algoritmo para calcular o imposto de renda anual (anocalendário de 2008) devido para uma pessoa que receba um determinado salário. i) Salários menores que R$ 1372,81 estão isentos. ii) Salários entre R$ 1372,81 e R$ 2743,25 pagam alíquota de 15% (deduz-se R$ 205,92 na base do imposto devido). iii) Salários acima de R$ 2743,25 pagam alíquota de 27,5% (deduz-se R$ 548,83 na base do imposto devido). Lógica de Programação 6) Escreva um programa que receba um número e mostre a mensagem "O número está na faixa de 20 a 90" caso o valor fornecido para a número lido seja um valor entre 20 e 90. Qualquer valor fornecido fora da faixa definida apresentará a mensagem "O número não está na faixa de 20 a 90". 7) Elabore um programa que receba um Texto e mostre a mensagem "O seu sexo é válido", caso o valor fornecido para o Texto lido seja um valor masculino ou um valor feminino. Qualquer outro valor fornecido apresentará a mensagem "O seu sexo é inválido". Lógica de Programação 8) Qual será o valor da variável C após a execução do programa abaixo, sabendo que A = 4, B = 3, C = 5 e X = 2; Programa Exemplo; variaveis A,B,C,X: Inteiro; begin leia(A, B, X); if not (X > 5) then C := (A + B) * X else C := (A - B) * X; imprima(C); end. Lógica de Programação 9) Faça um teste de mesa para o algoritmo descrito neste fluxograma, de acordo com os dados fornecidos: Considere a tabela abaixo para o teste de mesa: Lógica de Programação Exercícios: 10) Traduza para pseudo-linguagem o algoritmo descrito no fluxograma da questão 9.