Buscar

Aula 13

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.

Continue navegando