Algoritmos e Técnicas de Programação Prof. Msc. Raul Paradeda Aula 04 Comandos de Entrada/Saída Sumário Entrada/Saída; Depuração. Entrada e Saída As linguagens de programação estão preparadas para receberem dados de entradas e apresentarem dados de saída. 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) fimalgoritmo Entrada Var n1,n2,s:inteiro inicio n1<-8 n2<-2 s<-n1+n2 fimalgoritmo Var n1,n2,s:inteiro inicio leia(n1) leia(n2) s<-n1+n2 fimalgoritmo Var n1,n2,s:inteiro inicio leia(n1,n2) s<-n1+n2 fimalgoritmo Entrada - Exercícios 1. Crie programas que solicitem dois números inteiros para o usuário e calcule: 1. A soma entre os dois números; 2. A subtração dos valores; 3. 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”) fimalgoritmo O texto DEVE ficar entre aspas duplas! Saída var variável1:real inicio variável1 <- 4.3 escreva(variável1) fimalgoritmo Sem aspas se for variável! Saída var numero:inteiro inicio numero <- 15 escreva(“O valor é:”,numero) fimalgoritmo 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!”) fimalgoritmo 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) fimalgoritmo 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. Da soma entre os dois números; 2. Da subtração dos valores; 3. 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) fimalgoritmo 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) fimalgoritmo 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) fimalgoritmo 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 escreva-o 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.