Buscar

Aula 03 Linguagem de Programação I

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Aula
03Linguagem de Programação I - UNIGRAN
COMANDOS DE ENTRADA 
DE DADOS
Nesta aula veremos as operações de entrada de dados, via teclado, 
mais comuns. Estas são operações fundamentais em qualquer linguagem. 
A entrada de dados é primordial para que haja comunicação entre 
o usuário e a aplicação. Com uma operação de entrada é possível pedir ao 
usuário que informe (digite) valores para serem utilizados no programa. 
As principais funções de entrada, via teclado, são:
• scanf
• cin
• getchar
• gets
CURIOSIDADE
O comando Escreva da linguagem Portugol é uma 
operação de saída. 
59
Linguagem de Programação I - UNIGRAN
Objetivos de aprendizagem
Ao término desta aula, vocês serão capazes de:
• conhecer os principais comandos de leitura;
• identificar o melhor comando para cada tipo de operação realizada;
• utilizar esses comandos de maneira eficiente.
Seções de estudo
• Seção 1 – A função scanf
• Seção 2 – O objeto cin 
• Seção 3 – A função getchar
• Seção 4 – A função gets
Seção 1 - A função scanf 
Esta função lê um valor informado via teclado, e este valor é atribuído a 
uma variável. 
Os valores a serem lidos, podem ser de qualquer um dos tipos existentes 
na linguagem C (int, float, char...). 
scanf é a função é padrão de C para leitura de valores via teclado, e sua 
sintaxe é muito parecida com a da função printf, exceto pelo uso do operador de 
endereço "&" antes do nome da variável.
Sintaxe: 
scanf(formato, &variável);
• formato (ou formatador): é uma cadeia de caracteres, geralmente 
delimitada com aspas (""), que especifica o formato da variável que será lida. Usa-
se o formatador, para que seja informado para o compilador, o tipo de dado que será 
lido, para que este reserve memória suficiente para armazenar o dado lido.
• &variável: é a variável que será lida, precedida pelo operador de 
endereço &. Mais a frente conheceremos melhor o operador de endereço, por 
enquanto, basta saber que seu uso é imprescindível. 
60
Linguagem de Programação I - UNIGRAN
A função scanf faz parte da biblioteca stdio, portanto, quando utilizar 
essa função é preciso incluir essa biblioteca, exemplo: #include <cstdio>.
a) Lendo um único caracter
Podemos usar a função scanf para ler um único caracter, utilizando o 
formatador "%c".
A figura 1.1 representa um programa que faz a leitura de uma variável 
do tipo char de tamanho 1. 
Porque foi colocado o printf com uma mensagem antes do scanf?
Para informar ao usuário o que ele deve digitar, assim evitamos que 
aconteçam erros grosseiros, como o usuário informar um texto, onde era para ser 
informado um número.
A figura 1.2 representa a tela de saída do programa 1.1, depois de digitar 
o valor 'M' e pressionar a tecla ENTER.
Código Formato
%c Um único caracter (char)
%s String (char[N])
%d Um número do Ɵ po int em formato decimal
%i Um número inteiro do Ɵ po int
%e Um ponto fl utuante do Ɵ po fl oat (notação cienơ fi ca)
%f Um ponto fl utuante do Ɵ po fl oat
%lf Um ponto fl utuante do Ɵ po double
%o Número octal
%x Número hexadecimal
%p Ponteiro
QUADRO 3.1 - Especifi cadores de tipos de dados.
Fonte: criação nossa
FIGURA 1.1 - Utilização da função scanf para ler uma variável do tipo char
Fonte: criação nossa
61
Linguagem de Programação I - UNIGRAN
b) Lendo vários caracteres 
Ler uma cadeia de caracteres com a função scanf é uma tarefa bem 
simples e parecida com a leitura de um único caracter. Mas existem duas diferenças 
básicas entre estes dois tipos de leituras: 
• tipo de formatador que deve ser usado, que ao invés de "%c" usamos "%s", e
• quando vamos ler uma string (ou cadeia de caracteres) não é necessário 
usar o operador de endereço "&" antes do nome da variável.
A figura 1.3 representa um programa que faz a leitura de uma cadeia 
de caracteres. 
A figura 1.4 representa a tela de saída do programa 1.3 depois que o texto 
"programacao" foi digitado e a tecla ENTER foi pressionada.
FIGURA 1.2 – Tela de saída do programa 1.1
Fonte: criação nossa
FIGURA 1.3 - Utilização da função scanf para leitura de cadeia de caracteres
Fonte: criação nossa
FIGURA 1.4 – Tela de saída do programa 1.3
Fonte: criação nossa
62
Linguagem de Programação I - UNIGRAN
c) Lendo um tipo inteiro
Para ler um tipo inteiro com a função scanf, precisamos identificar o seu 
tipo, com os formatadores "%d" ou "%i".
A figura 1.5 representa um programa que faz a leitura de um valor 
numérico do tipo int usando o formatador "%d" (este é o formatador mais usado). 
Vemos a tela de saída do programa representado pela figura 1.5 na figura 
1.6 depois que o valor 6 é digitado e a tecla ENTER pressionada.
d) Lendo números fracionários
Vamos ver agora como fazemos a leitura de números fracionários do tipo 
float a função scanf com os formatadores: %f e %e sucessivamente.
A figura 1.7 representa um programa que faz a leitura de um valor para a 
variável numero que foi definida do tipo float utilizando o formatador "%f".
scanf não é muito efi ciente para ler valores para cadeias de caracteres (strings). 
Quando scanf encontra um espaço em branco, ela termina a string, e tudo o que for 
digitado depois disto, será descartado.
FIGURA 1.5 – Utilização da função printf com variável do tipo int
Fonte: criação nossa
FIGURA 1.6 – Tela de saída do programa 1.5
Fonte: criação nossa
63
Linguagem de Programação I - UNIGRAN
A tela de saída do programa representado pela figura 1.7 pode ser vista 
através da figura 1.8 depois que o valor 3.6 foi digitado e a tecla ENTER pressionada.
Vamos ver agora como ficaria este programa se estivéssemos usando o 
formatador %e ao invés do formatador %f?
Segue abaixo um exemplo representado pela figura 1.9.
Podemos ver a tela de saída do programa representado pela figura 1.9 
FIGURA 1.7 – Utilização da função scanf com variável do tipo fl oat
Fonte: criação nossa
FIGURA 1.8 – Tela de saída do programa 1.7
Fonte: criação nossa
FIGURA 1.9 – Utilização da função scanf com variável do tipo fl oat
Fonte: criação nossa
64
Linguagem de Programação I - UNIGRAN
Agora vamos ver como fazemos a leitura de valores para números do tipo 
double. O tipo double pode ser entendido como um float maior do que o convencional. 
Para este tipo de variável temos que usar o formatador "%lf" que corresponde 
a long float ou float longo, porque o tipo double aceita números maiores do que o 
float, então o compilador tem que estar preparado para receber esses valores e quem 
prepara o compilador (para leitura de valores) é o formatador. Porém a impressão 
pode ser igual à de um float comum, somente é preciso modificar a leitura.
A figura 1.11 mostra um programa que lê um valor para uma variável do 
tipo double
Vamos ver a tela de saída do programa 1.11? Então observe a figura 1.12. Note 
que a tela de saída do programa é igual a do programa representado pela figura 1.10.
FIGURA 1.10 – Tela de saída do programa 1.9
Fonte: criação nossa
FIGURA 1.11 – Utilização da função scanf com variável do tipo double
Fonte: criação nossa
FIGURA 1.12 – Tela de saída do programa 1.0
Fonte: criação nossa
65
Linguagem de Programação I - UNIGRAN
Seção 2 – O objeto de fl uxo de entrada cin 
O objeto de fluxo de entrada cin (C in, ou entrada em C) tem basicamente 
a mesma utilidade da função scanf: ler alguma informação do teclado. O que será 
lido, não importa, pois este comando não usa formatadores, portanto o valor lido 
pode ser um número inteiro, um número fracionário, um único caracter ou até 
mesmo uma string (cadeia de caracteres).
O comando cin foi criado pela linguagem C++ e faz parte da biblioteca 
iostream. Para acessá-lo é necessário especificar o namespace std assim como o 
cout que foi visto na aula anterior.
Sintaxe:
cin>>variavel;
Como podemos observar o comando cin é precedidodo operador >> que 
indica uma entrada de dados para o programa. 
?
?Podemos usar o formatador "%lf" para imprimir um Ɵ po double? 
Sim, podemos, visto que este formatador é uƟ lizado por este Ɵ po de 
dando tanto para leitura como para impressão, podendo a impressão 
ser realizada também pelos demais formatadores.
CURIOSIDADE
Na práƟ ca, a diferença básica entre cin e scanf é que o 
primeiro não uƟ liza o especifi cador (ou formatador), enquanto 
o segundo usa. Ele lê o dado diretamente para a variável 
especifi cada depois de >>. Veja sua sintaxe a seguir.
REGRA
Depois do cin usa-se >>
Importante!!!
Não confunda o operador usado pelo cin e o operador usado pelo cout.
 cin cout
>> <<
66
Linguagem de Programação I - UNIGRAN
Utilizando o operador cin, a leitura de variáveis independe do seu tipo. 
Portanto, ao usar o operador cin, não é necessário informar o especificador (ou 
formatador) que identifica o tipo de variável que estamos lendo.
A figura 1.13 representa um programa que faz a leitura de uma variável 
do tipo char de tamanho 1. 
A figura 1.14 representa a tela de saída do programa 1.13, depois de 
digitar o valor 'M' e pressionar a tecla ENTER. 
Para ler uma variável do tipo char e de tamanho maior do que um, não 
haveria mudança alguma na sintaxe da instrução onde está o cin. Veja um exemplo 
através da figura 1.15.
FIGURA 1.13 - Utilização do operador cin para ler uma variável do tipo char
Fonte: criação nossa
FIGURA 1.14 – Tela de saída do programa 1.13
Fonte: criação nossa
FIGURA 1.15 - Utilização do operador cin para ler uma variável do tipo char de tamanho 30
Fonte: criação nossa
67
Linguagem de Programação I - UNIGRAN
Como podemos notar, a única diferença do programa da figura 1.13 para 
o programa da figura 1.15 está no tamanho e nome das variáveis que são lidas, 
pois a instrução cin, permanece igual nos dois programas.
Os programas que acabamos de ver, também podem ser utilizados para 
ler variáveis numéricas: int, float, double... as alterações necessárias para que eles 
funcionem seriam somente no tipo das variáveis criadas e, caso necessário, nos 
nomes destas variáveis. Veja um exemplo:
FIGURA 1.16 – Tela de saída do programa 1.15
Fonte: criação nossa
Assim como o scanf, o cin não é muito efi ciente para ler valores para cadeias de 
caracteres (strings). 
FIGURA 1.17 - Utilização do operador cin para ler uma variável do tipo int
Fonte: criação nossa
FIGURA 1.18 – Tela de saída do programa 1.17 depois que o valor 52 foi digitado e a tecla ENTER pressionada
Fonte: criação nossa
68
Linguagem de Programação I - UNIGRAN
Seção 3 – A função getchar
A função getchar, que também faz parte da biblioteca cstdio, é utilizada 
para ler um único caracter do usuário, via teclado. 
Sintaxe:
variável = getchar();
Onde variável é uma variável qualquer do tipo char e de tamanho 1. 
Vejamos um exemplo:
CURIOSIDADE
Assim como com cout, o objeto cin também precisa do 
namespace std.
FIGURA 1.17 - Utilização do operador getchar 
Fonte: criação nossa
FIGURA 1.18 – Tela de saída do programa 1.17 depois que a letra 'R' foi digitada e a tecla ENTER pressionada
Fonte: criação nossa
69
Linguagem de Programação I - UNIGRAN
Seção 4 – A função gets
A função gets faz parte da biblioteca cstdio, assim como a função puts. 
Ela foi criada especificamente para ler uma string do teclado (quando o usuário 
do programa digita uma string) – lembrando que em C uma string é do tipo char 
e de tamanho maior do que 1.
Sintaxe:
gets(variável);
Onde: variável é uma variável qualquer do tipo char e de tamanho 
maior do que 1.
Vamos ver um exemplo? A figura 1.19, representa um programa que lê 
um valor, informado pelo usuário, e atribui esse valor, à variável "texto".
Veja a tela de saída do programa representado pela figura 1.19, através 
da figura 1.20.
FIGURA 1.19 - Utilização do operador gets 
Fonte: criação nossa
FIGURA 1.20 – Tela de saída do programa 1.19 depois que o texto "Linguagem de Programacao I" foi 
digitado e a tecla ENTER pressionada
Fonte: criação nossa
70
Linguagem de Programação I - UNIGRAN
Retomando a conversa inicial
• Seção 1 – A função scanf
A função scanf é utilizada para ler um valor e armazenar em uma variável. 
O tipo do valor a ser lido, tem que ser especificado no momento da criação da 
instrução, pois a função scanf necessita do formatador de tipo (que fica entre 
aspas e indica o tipo de variável que deve ser lida (int, float, char...)).
• Seção 2 – O objeto cin
Também utilizado para ler um valor e armazenar em uma variável. Este 
operador dispensa o uso do formatador (visto no exemplo anterior). Faz parte da 
linguagem C++ e não C.
• Seção 3 – A função getchar
Função utilizada para ler apenas um caracter do teclado. Uma vez que 
o caracter é informado (e a tecla ENTER pressionada), o programa passa para a 
próxima instrução.
• Seção 4 – A função gets
Lê uma string do teclado e armazenada em uma variável indicada entre 
parênteses. A finalidade desta função é facilitar a leitura de variáveis do tipo vetor 
de caracteres, uma vez que, as outras funções vistas anteriormente não aceitam o 
caracter em branco (ou espaço em branco).
RESUMINDO
Sempre use a função gets para ler strings do teclado.
Vamos relembrar um pouco do que vimos na aula 3?
71
Linguagem de Programação I - UNIGRAN
Sugestões de leituras e sites
Leituras
• http://www.global.estgp.pt/engenharia/Alunos/eSebentas/Tutoriais/c.htm
• http://pt.wikibooks.org/wiki/Programar_em_C 
Sites
• http://informatica.hsw.uol.com.br/programacao-em-c.htm
Autoavaliação
Veja se aprendeu a Aula 02 respondendo ao questionário auto-avaliativo. Depois confi ra 
o resultado das respostas, que está disponível na ferramenta Arquivos da plataforma.
1. Para ler uma variável do tipo int, usando a função printf, utiliza-se o formatador 
"%i".
( ) Verdadeiro ( ) Falso
2. A seguinte instrução: scanf("%c",texto); está correta.
( ) Verdadeiro ( ) Falso
3. Para ler um valor do tipo double com cin é preciso usar o formatador %lf.
( ) Verdadeiro ( ) Falso
4. O objeto cin faz parte do namespace std.
( ) Verdadeiro ( ) Falso
5. Posso ler uma cadeia de caracteres com a função gets.
( ) Verdadeiro ( ) Falso
6. Posso ler uma cadeia de caracteres com a função scanf.
( ) Verdadeiro ( ) Falso
72

Continue navegando