Lógica de Programação Prof. Msc. Raul Paradeda Aula 4 Entrada/Saída Sumário Entrada/Saída; Depuração. Entrada e Saída As linguagens de programação estão preparadas para receberem entradas e apresentarem saídas. Dessa forma, durante a execução de um programa, um usuário poderá informar valores de entrada para que sejam processadas pelo computador, que, por sua vez, retornará o resultado do processamento (saída). Entrada e Saída Para um problema onde queremos calcular o número de vértices de um cubo, o usuário fica restrito a esta figura. E se quisesse calcular os vértices de um triângulo? Ou seja, os valores não devem ser pré-definidos (definidos pelo programador). Teríamos que modificar o algoritmo toda vez que quiséssemos valores diferentes? Por esse motivo, basta que o usuário informe para o programa quais os valores que este deve processar. É o esquema Entrada->Processamento->Saída. Entrada É o meio pelo qual o usuário pode informar para o programa valores de entrada. Ou seja, não são valores pré-definidos, e sim definidos pelo usuário. É realizado pelo comando: leia(<variável>); A leitura de um valor implica no uso de uma variável, pois tal valor precisa ser armazenado em algum espaço na memória: var variável1:real; inicio leia(variável1); fim. Entrada Var n1,n2,S:inteiro;Var n1,n2,S:inteiro;Var n1,n2,S:inteiro; inicio inicio inicio n1<-8; leia(n1); leia(n1,n2); n2<-2; leia(n2); s<-n1+n2; s<-n1+n2; s<-n1+n2; fim fim fim Entrada - Exercícios 1. Crie programas que peçam dois números inteiros para o usuário e calcule: 1. 2. 3. A soma entre os dois números; A subtração dos valores; A multiplicação dos valores. 2. Crie um programa que calcule a divisão entre dois valores reais informados pelo usuário. 3. Crie um programa que calcule a soma entre dois valores inteiros pares e calcule a multiplicação entre três valores inteiros impares, todos informados pelo usuário. 4. Crie um programa que subtraia o resultado da soma e da multiplicação do exercício anterior. Saída Para que o usuário consiga visualizar o resultado processamento do programa, toda linguagem de programação fornece mecanismos de apresentação (saída) dos dados. Para realizar a impressão de informações na tela é utilizado o seguinte comando: escreva(<valor>); O valor escrito na tela do monitor pode ser um texto (neste caso, o texto é escrito entre aspas duplas “ ”) ou o conteúdo de uma variável/constante. Em Portugol pode-se intercalar texto com variáveis, separando-os por vírgulas. Saída inicio escreva(“Texto que será impresso na tela”); fim Entre aspas o texto! Saída var variável1:real; inicio variável1 <- 4.3; escreva(variável1); fim Sem aspas se for variável! Saída var numero:inteiro; inicio numero <- 15; escreva(“O valor é:”,numero); fim Separar texto de variável com vírgula! Saída var numero:inteiro; inicio escreva(“Informar um valor”); leia(numero); escreva(“O ”,numero,” foi digitado!”); fim Exemplos reais de algoritmos Adaptação do problema do cubo. var vértices, faces, arestas: inteiro; Início escreva(“Entre com o número de faces do objeto: “); leia(faces); escreva(“Entre com o número de arestas do objeto: “); leia(arestas); vértices <- arestas + 2 – faces; escreva(“O número de vértices do objeto especificado é: “, vértices); fim Saída - Exercícios 1. Crie um programa que imprima três frases pré-definidas para o usuário. 2. Crie um programa que peça dois valores para o usuário e calcule e mostre o resultado: 1. 2. 3. Da soma entre os dois números; Da subtração dos valores; Da multiplicação dos valores. 3. Crie um programa que calcule a taxa de juros de um determinado valor, ambos informados pelo usuário. Mostre o valor e a taxa informado pelo usuário e o resultado obtido do juros. Depuração Verificar o algoritmo linha por linha a procura de erros. Esse procedimento pode ser feito utilizando o chamado “teste de mesa”. Exemplo: Teste de mesa para o objeto geométrico cubo. Depuração Primeiramente colocam-se números nas linhas que serão executadas. var vértices, faces, arestas: inteiro; Início 1. escreva(“Entre com o número de faces do objeto: “); 2. leia(faces); 3. escreva(“Entre com o número de arestas do objeto: “); 4. leia(arestas); 5. vértices <- arestas + 2 – faces; 6. escreva(“O número de vértices do objeto especificado é: “, vértices); fim. Depuração Segundo, fazer um quadro onde as colunas serão as variáveis do algoritmo, e as linhas serão cada linha referente ao algoritmo. 1. escreva(“Entre com o número de faces do objeto: “); 2. leia(faces); 3. escreva(“Entre com o número de arestas do objeto: “); 4. leia(arestas); 5. vértices <- arestas + 2 – faces; 6. escreva(“O número de vértices do objeto especificado é: “, vértices); Exemplos reais de algoritmos Intercambiar os valores de duas variáveis. Crie um algoritmo que armazene dois números e que retornem para o usuário uma troca de valores. Exemplo: var a, b: inteiro: início 1. leia(a, b); 2. a <- b; 3. b <- a; 4. escreva(a, b); fim. Exercício: Façam a depuração (teste de mesa) do algoritmo de intercambiar e vejam se está correto! Depuração NÃO HOUVE A TROCA DE VALORES! Alguém sabe o porquê e como resolver? Variável Como já mencionado, uma única variável pode manter apenas um valor a cada momento. É a mesma coisa que dois corpos não podem ocupar o mesmo lugar no espaço, um precisa dar lugar para o outro. Ou seja, para que dê certo o nosso exemplo, é necessário o uso de mais uma variável que possa armazenar temporariamente o valor de uma das variáveis que contem valor. Exercício Façam o problema de intercambiar valores, resolvendo o problema de troca de valores, e façam também o teste de mesa. var a, b, aux: inteiro; início 1. leia(a, b); 2. aux <- a; 3. a <- b; 4. b <- aux; 5. escreva(a, b); fim. Exercícios de reforço 1 – Resolva as seguintes expressões lógicas: não (V e (V ou F)) não (V e não(V ou F)) ((F ou V) e F) ou não ((V e F) e (V e F)) 2 – Faça um algoritmo que calcule a média de quatro números introduzidos pelo usuário. 3 – Faça um algoritmo que receba a temperatura em graus Celsius e apresente-a em graus Fahrenheit, de acordo com a fórmula ºF = (1.8 ºC) + 32. 4 – Faça um algoritmo que leia um número de 4 dígitos e escrevao invertido. Por exemplo, se o número lido for 2548, o resultado será 8452. (Dica: qualquer número pode ser decomposto mediante sucessivas divisões inteiras e com operações de “resto”. Por exemplo, 2579 div 1000 = 2, 2579 resto 1000 = 579.