• Nenhum resultado encontrado

As funções gets( ) e puts( )

No documento 3123 CouC++ (páginas 75-83)

As funções gets( ) e puts( ) permitem a leitura e escrita de strings de caracteres no console. O protótipo das funções é encontrado em stdio.h .

A função gets( ) lê uma string de caracteres através do dispositivo padrão de entrada (teclado). Para corrigirmos erro de digitação usamos a tecla Back Space antes de pressionar <enter>. Após a leitura, coloca a string no endereço apontado por seu argumento ponteiro de caracteres. Espaços e tabulações são aceitos por gets( ). Exemplo de programa: /* Programa Exemplo_1 */ # include <stdio.h> # include <conio.h> main( ) { char nome [50]; int idade;

printf (“Qual seu nome ?\n”); gets (nome);

printf (“\nQual sua idade?\n”); scanf (“%d”,&idade);

printf(“\nOlá %s, em seu último aniversário você completou %d dias de vida !”,nome,idade*365);

getch( ); }

No exemplo, o programa utiliza a diretiva stdio.h pois contém os protótipos para as funções printf( ) , gets( ) e scanf( ). Os protótipos para as funções clrscr( ) e getch( ) estão em conio.h .

84 Através de printf( ) pergunta-se o nome ao Usuário que será digitado e associado à variável chamada “nome” do tipo char que possibilita um número máximo de 50 caracteres, e também a visualização no vídeo. Em seguida, através de scanf( ) é inserido um novo dado à uma variável do tipo int chamada idade. Se por exemplo a variável nome for: João da Cruz e a variável idade for 21, teremos na tela impresso o seguinte resultado:

Olá João da Cruz, em seu último aniversário você completou 7665 dias de vida!

A função puts( ) é utilizada quando deseja-se um código altamente otimizado, de fácil uso ! Esta função é o complemento de gets( ) e imprime na tela uma única string por vez seguido por uma nova linha. Reconhece os códigos de escape de printf( ) assim como o

null (\0) como fim de string.

Uma chamada a puts( ) requer menos tempo do que a mesma chamada a printf( ) pelo fato de puts( ) escrever apenas strings caractere. Exemplo de programa: /* Programa Exemplo_2 */ #include <stdio.h> #include <conio.h> main( ) { char nome [50]; clrscr( );

puts (“Qual o seu nome ?”); gets (nome);

puts;

puts (“Olá”); puts (nome);

puts (“tudo bem ?”); getch( );

}

O exemplo de programa, solicitará através de um texto o nome do usuário, que por sua vez será lido por gets( ). Se, por exemplo, o nome digitado for RONALDO o programa imprime:

Qual o seu nome ? RONALDO

85

Olá

RONALDO tudo bem ?

Comparando printf( ) com puts( ) :

Exemplo: printf(“%s\n”,nome);

... é o mesmo que: puts(nome);

Obs: A função puts( ) imprime somente uma string. Para a impressão

de um número maior de strings é necessário o uso de printf( ).

Podemos utilizar o operador de endereço em puts( ). Se acrescentarmos ao programa Exemplo_2 as linhas:

puts(“Seu apelido é”); puts(&nome[2]);

puts(“?”);

....será visualizado:

Qual o seu nome? RONALDO Olá RONALDO Tudo bem? Seu apelido é NALDO ?

O operador nos possibilita a determinar o número de caracteres iniciais que não deverão ser impressos.

Exercícios

1 – Defina Operador de Endereço:

________________________________________________________ ________________________________________________________ _____________________________________________________

86 2 – Qual a sintaxe da função scanf( ) ?

________________________________________________________ ______________________________________________________ 3 – Por que uma string é finalizada pelo caractere null ?

________________________________________________________ ______________________________________________________ 4 – Dê 5 exemplos de especificadores de formato scanf( ) e explique a sua utilização. ________________________________________________________ ________________________________________________________ ________________________________________________________ ________________________________________________________ ___________________________________________________

5 – Por que a função scanf( ) é considerada limitada para a leitura de strings ?

________________________________________________________ ______________________________________________________ 6 – O programa funciona corretamente? Por que ?

#include <stdio.h> #include <conio.h> main( ) { char PALAVRA [50]; clrscr( );

puts(“Escreva uma palavra:”); scanf(“%c”,PALAVRA); puts(PALAVRA); getch( ); } ________________________________________________________ ________________________________________________________ ________________________________________________________ ____________________________________________________ 7 – Qual a principal diferença entre getch( ) e getche( ).

________________________________________________________ ________________________________________________________

87 ________________________________________________________ ____________________________________________________

8 – Para ler uma string de caracteres qual função deve ser utilizada: getchar( ) ou gets( ) ? Explique:

________________________________________________________ ________________________________________________________ ________________________________________________________ ____________________________________________________

9 – Se for digitada a palavra FUNÇÃO, o que será visualizado na tela após a execução do programa ?

#include <stdio.h> #include <conio.h> main( ) { char palavra; clrscr( );

puts(“Digite uma palavra:”); palavra = getchar( ); putchar(palavra); getch( ); } ________________________________________________________ ________________________________________________________ ________________________________________________________ ____________________________________________________

10-No exercício anterior, se utilizássemos gets( ), quais as modificações necessárias para o correto funcionamento? O que seria impresso ? ________________________________________________________ ________________________________________________________ ________________________________________________________ ________________________________________________________ ________________________________________________________ ________________________________________________________ _________________________________________________

88 11-Elabore um programa que calcule a quantidade de combustível gastos em uma viagem. O programa deve solicitar ao usuário os seguintes dados: Qual distância(em Km)o veículo faz por litro de combustível, tempo (em horas) gasto na viagem e a velocidade média (em Km) durante a mesma.

________________________________________________________ ________________________________________________________ ________________________________________________________ ________________________________________________________ ________________________________________________________ ________________________________________________________ _________________________________________________

12-Crie um programa que seja capaz de converter e apresentar a idade de uma pessoa em dias e em horas.

________________________________________________________ ________________________________________________________ ________________________________________________________ ________________________________________________________ ________________________________________________________ ________________________________________________________ ________________________________________________________ ________________________________________________________ _______________________________________________

Capítulo 7

89

Decisões e

Seleção

múltipla

O comando if

Bloco de comando com if

O comando if-else

O comando if-else-if

O operador alternativo “ ? “

Operadores lógicos

O comando switch

Comandos de Seleção

Em C, os comandos de seleção direcionam o fluxo de um programa utilizando expressões relacionais que controlam quais comandos serão executados com base em uma ou em outra condição. Muitos comandos em C contam com um teste condicional que determina o curso da ação. Uma condição, poderá ser falsa ou

90 verdadeira; ou seja, diferente de zero ou zero. Esse método, para verdadeiro e falso, permite que rotinas sejam codificadas com eficiência.

Um comando de decisão executa uma série de instruções, se for necessário repete a seqüência até que uma certa condição seja encontrada e decide entre ações alternativas.

O comando if

Utilizamos esse comando quando deseja-se tomar uma decisão simples. Se a expressão é verdadeira (diferente de 0), o comando ou bloco que forma o “corpo “ do if é executado uma única vez. Se a expressão for falsa, o programa não executa a instrução iniciada por if . Exemplo: . . main( ) { clrscr( ); int x;

printf(“Digite um número:”); scanf(“%d”,&x);

if (x>=0) if (x<100)

puts(“O número é menor que uma centena ! “); getch( );

}

Neste exemplo, ao executar o programa, é solicitado um número. A função scanf( ) possibilita a entrada através do teclado, de um número que será atribuído à variável x . O comando if efetuará a seqüência de condições até que encontre a verdadeira.

91 if( x<100 ) e menor que cem... “

Se o número digitado satisfaz a condição, então será impresso: O número é menor que uma centena ! uma única vez, caso contrário não imprimirá nada e aguardará pressionarmos uma tecla para finalizar o programa ( através de getch( ) ).

Sintaxe :

if ( expressão de controle ) comando ;

Obs: comando pode ser um bloco de comandos, um único comando

ou nada ( comandos vazios ).

No documento 3123 CouC++ (páginas 75-83)

Documentos relacionados