Baixe o app para aproveitar ainda mais
Prévia do material em texto
Algoritmos Aplicados a Engenharia Aula 13 Os direitos desta obra foram cedidos à Universidade Nove de Julho Este material é parte integrante da disciplina, oferecida pela UNINOVE. O acesso às atividades, conteúdos multimídia e interativo, encontros virtuais, fóruns de discussão e a comunicação com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE. Uso consciente do papel. Cause boa impressão, imprima menos. Aula 13: Comandos de entrada e saída de dados Objetivo: Compreender todo o uso da função scanf(), printf() e sprintf(), e ser capaz de ler informações do teclado e imprimir na tela, utilizando formatos pré-existentes. Na aula anterior foi explorado um pouco das funções printf(). Agora serão passados argumentos indispensáveis no uso destas funções. Função printf() A Tabela 1 apresenta como algumas funções ou caracteres especiais são passadas para a função printf(), por exemplo, se uma nova linha deve ser impressa na tela, então o argumento de printf() deve ser “\n”. Código printf() Significado \n Nova linha \r Retorno do cursor \t Tabulação \b Retrocesso \” Aspas \\ Barra \f Salta página de formulário \0 Nulo Tabela 1 - Lista de códigos para se inserir os caracteres informados. A Tabela 2 apresenta os códigos para impressão de dados formatada. Código printf() Formato %c Caractere simples. %d Decimal. %e Notação científica. %f Ponto flutuante. %g Opta pelo mais curto entre %e ou %f. %o Octal. %s Cadeia de caracteres. %u Decimal sem sinal. %x Hexadecimal. %ld Decimal longo. %lf Ponto flutuante longo (double). Tabela 2 - Códigos de impressão formatada. O programa a seguir exemplifica o uso das formatações acima. Como já foi apresentado, a função prinft() utiliza o percentual (%) para identificar o formato da impressão. Para que o percentual seja realmente impresso na tela, deve-se digitar %%. Dessa forma, o compilador entenderá que o que se quer imprimir realmente é o caractere, e não um formato. O uso do printf() também permite estabelecer o tamanho mínimo para a impressão de um campo. Por exemplo, a saída do código: é: Pode-se também utilizar o tamanho do campo para obter precisão e arredondamento em ponto flutuante: #include <stdio.h> #include <stdlib.h> int main () { printf ("A letra %c ",’j’); printf ("pronuncia-se %s.", "jota"); printf ("\nPara se imprimir uma barra invertida (\\) é necessário digitar duas barras."); system ("PAUSE"); } #include <stdio.h> #include <stdlib.h> int main () { printf ("O numero correto e %2d.",100); printf ("O numero correto e %4d.",100); printf ("O numero correto e %5d.",100); system ("PAUSE"); } O numero correto e 100. O numero correto e 100. O numero correto e 100. é: Função scanf() A função scanf() é utilizada para fazer a leitura de dados através do teclado e utiliza o percentual (%) para identificar o formato da entrada de dados para a variável. Uma outro ponto que mão deve passar desapercebido, é o emprego do (&) antes da variável que esta sendo atribuído o valor na leitura. Veja o exemplo a seguir: Como pode ser observado no exemplo, no comando scanf temos dentro das aspas a atribuição do tipo de dados que esta sendo lindo e em seguida, antes da variável existe o operador &. Este uso é obrigatório e serve para alocar um endereço na memória RAM do computador, pois uma variável em C deve sempre estar alocada em um endereço #include <stdio.h> #include <stdlib.h> int main () { printf ("%4.2f\n",345.57); printf ("%3.1f\n",345.57); printf ("%7.1f",345.57); system ("PAUSE"); } 345.57 345.6 345.6 #include <stdio.h> #include <stdlib.h> int main () { int x; char nome[50]; printf ("Digite o nome: "); scanf("%s", &nome); fflush(stdin); printf ("Digite um numero qualquer: "); scanf("%d", &x); printf ("%s digitou o valor %d\n", nome, x); system ("PAUSE"); } da memória do computador. Outro detalhe importante a respeito deste programa é o emprego do comando fflush(stdin) após a leitura da variável do tipo texto. Isso se faz necessário para a limpeza do buffer do teclado que deve sempre ser realizada após a leitura de variáveis do tipo texto. Caso não tenha o emprego deste comando pode ocorrer falha nas próximas leituras ou escritas na tela. Função sprintf() A função sprintf é utilizada para imprimir em uma variável do tipo string (cadeia de caracteres, ou vetor de caracteres) na linguagem C. Com o uso deste comando é possível atribuir um valor qualquer a uma variável deste tipo sem usar a leitura via teclado. Veja o exemplo abaixo do uso da função sprintf na atribuição de um texto a uma variável qualquer. Como pode ser observado no exemplo, no comando sprintf temos a variável no inicio do comando, depois do parênteses, logo em seguida um texto com formatação, e depois temos um texto para entrar no lugar da formatação (%s). Exemplo de uso das funções scanf e printf #include <stdio.h> #include <stdlib.h> int main () { int numero=10; char texto[50]; sprintf(texto, "%s", "A UNINOVE e "); printf("%s %d\n", texto, numero); system ("PAUSE"); } #include <stdio.h> #include <stdlib.h> /* Cálculo da área de um triângulo. */ int main () { float Base, Altura, Area; //Declaracao de Variaveis printf ("Entre com a base do triângulo em metros: "); scanf ("%f”,&Base); //Entrada de Dados printf ("Entre com a altura do triângulo em metros: "); scanf ("%f",&Altura); //Entrada de Dados Area=Base*Altura/2; /* Cálculo da área */ printf ("\nBase:%f, altura:%f, área:%f m2.\n",Base, Altura, Area); system ("PAUSE"); } Análises sobre o programa Primeiramente são declaradas três variáveis do tipo float (ponto flutuante). A segunda linha imprime na tela uma mensagem para que seja inserido o comprimento da base do triângulo. Após a mensagem impressa, é necessário que alguma função leia o valor digitado. Esse papel é feito pela função scanf(), que guarda o valor na variável Base. A string “%f” informa à função que o dado de entrada será do tipo ponto flutuante. O mesmo é feito para a entrada da altura do triângulo. É importante ressaltar a importância do uso do operador & na função scanf(). Mais tarde o uso desse operador ficará claro. Finalmente, a área é calculada e armazenada na variável Area. A impressão da área do triângulo fica a cargo novamente da função printf(). Note que é possível passar vários argumentos para essa função, separando-os por vírgulas. Para a entrada da base igual a dois e altura igual a cinco, o programa imprimirá na tela a mensagem: Um triângulo de base dois e altura cinco possui área de cinco metros quadrados. * O QR Code é um código de barras que armazena links às páginas da web. Utilize o leitor de QR Code de sua preferência para acessar esses links de um celular, tablet ou outro dispositivo com o plugin Flash instalado. Referências DASGUPTA, Sanjoy; PAPADIMITRIOU, Christos; VAZIRANI, Umesh. Algoritmos. São Paulo: McGraw Hill, 2009. HEINEMAN, George T.; POLLICE, Gary; SELKOW, Stanley.Algoritmos: o guia essencial. Rio de Janeiro: Alta Books, 2009. MANZANO, André Luiz N. G.; MANZANO, Maria Izabel N. G. Estudo dirigido de informática básica. São Paulo: Érica, 2008. MANZANO, José Augusto N. G. Estudo dirigido de linguagem C. São Paulo: Érica, 2009. MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de Oliveira. Algoritmos, Lógica para desenvolvimento de programação de computadores. São Paulo: Érica, 19 ed., 2006. MIZRAHI, Victorine Viviane. Treinamento em linguagem C. São Paulo: Pearson, 2008. 2v. SCHILDT, Herbert. Mayer. C completo e total. São Paulo: Pearson, 2006. VILARIM, Gilvan. Algoritmos de programação para Iniciantes. São Paulo: Ciência Moderna, 2004.
Compartilhar