Proteção de cheques. Os computadores são constantemente usados nos sistemas de escrita de cheque, como aplicações de folha de pagamento e contas a pagar. Circulam muitas histórias sobre cheques de pagamento semanal impressos (por engano) com valores superiores a US$ 1 milhão. Valores estranhos são impressos por sistemas computadorizados de escrita de cheque por erro humano e/ou falha de máquina. Os projetistas de sistemas, naturalmente, fazem todos os esforços para montar controles em seus sistemas que impeçam que cheques com valores errados sejam emitidos. Outro problema sério é a alteração intencional de um valor

do cheque por alguém com intenções de sacá-lo fraudulentamente. Para impedir que um valor monetário seja alterado, a maioria dos sistemas computadorizados de escrita de cheque emprega uma técnica chamada proteção de cheque. Os cheques planejados para impressão por computador contêm um número fixo de espaços, em que o computador deve imprimir um valor. Suponha que um cheque de pagamento contenha nove espaços em branco nos quais

o computador deverá imprimir o valor de um cheque semanal. Se o valor for grande, então os nove espaços serão preenchidos — por exemplo:

Caracteres e strings em C 293

11.230,60 (valor do cheque)

123456789 (números de posição)

Por outro lado, se o valor for menor do que mil, então vários espaços ficarão em branco — por exemplo,

99,87

123456789

contém quatro espaços em branco. Um cheque impresso com espaços em branco facilita o trabalho de alguém que queira alterar seu valor. Para impedir que um cheque seja alterado, muitos sistemas de escrita de cheque inserem asteriscos iniciais para proteger o valor, da seguinte forma:

****99,87

123456789

Escreva um programa que receba um valor monetário a ser impresso em um cheque e depois imprima o valor no formato de proteção de cheque com os asteriscos iniciais, se necessário. Suponha que nove espaços estejam disponíveis para a impressão de um valor.

Passo 1

Vamos escrever um programa que faça o seguinte:

Solicita que o usuário insira o valor em dólares a ser impresso em um cheque.

Imprime o valor fornecido em formato protegido por cheque com asteriscos à esquerda (conforme necessário com base no formato de nove espaços fornecido).

Vamos escrever um programa que faça o seguinte:

Solicita que o usuário insira o valor em dólares a ser impresso em um cheque.

Imprime o valor fornecido em formato protegido por cheque com asteriscos à esquerda (conforme necessário com base no formato de nove espaços fornecido).

Agora, declare as seguintes variáveis.

double amount; // Para armazenar o valor em dólares

double base = 100000.00; // Para verificar o formato de nove espaços

Passo 2

Em seguida, solicite ao usuário que insira o valor em dólares.

printf("Digite o valor em reais a ser impresso no cheque: ");

scanf("%lf", &quantidade);

Em seguida, determine o número de espaços à esquerda na quantidade fornecida. Isso será usado para imprimir os asteriscos necessários.

int count = 0;

while(amount

base /= 10;

count++;

}

Passo 3

Por fim, exibiremos o valor em formato protegido por verificação, imprimindo o asterisco inicial junto com o valor em dólar. Em seguida, indicaremos que o programa foi finalizado com sucesso, colocando o valor de retorno da função principal.

printf("Check-protected amount: ");

for(int i = 0; i count; i++){

printf("*");

}

printf( "%.2f\n\n", amount);

return 0;

Assim, o código completo do programa é escrito da seguinte forma

#include stdio.h>

int main(){

double amount;

double base = 100000.00;

printf("Enter the dollar amount to be printed on check: " );

scanf("%lf", &amount );

int count = 0;

while(amount

base /= 10;

count++;

}

printf("Check-protected amount: ");

for(int i = 0; i count; i++){

printf("*");

}

printf( "%.2f\n\n", amount);

return 0;

}

Resposta

#include stdio.h>

int main(){

double amount;

double base = 100000.00;

printf("Enter the dollar amount to be printed on check: " );

scanf("%lf", &amount );

int count = 0;

while(amount

base /= 10;

count++;

}

printf("Check-protected amount: ");

for(int i = 0; i count; i++){

printf("*");

}

printf( "%.2f\n\n", amount);

return 0;

}