Para as mães, o berçário também deseja manter um controle, guardando informações como: nome, endereço, telefone e data de nascimento.
Para os médicos, é importante saber: CRM, nome, telefone celular e especialidade.
Isto seria um programa simples de se fazer. Bastaria usar algumas das funções já existentes na linguagem C/C++. Mas, porém, contudo, os professores exigem dos alunos é que eles usem vetor e a tabela ASCII. E nem todos sabem como fazer. Então, supro esta sua necessidade. Como é que faz? Eis abaixo em partes.
Parte 1: Pegando a String.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main ()
{
char palavra[20];
int tam,i;
printf("Digite uma palavra: ");
scanf("%s",&palavra);
printf("\nA palavra digitada foi: %s ",palavra);
printf("\n\n");
printf("\n\n");
system("pause");
}
O código acima é suficiente para coletar do usuário uma palavra. E sem espaço. Se você usar espaço o programa vai desconsiderar depois do ‘\0’. Se rodar o código acima ele vai apenas receber uma palavra e depois exibir na tela.
Depois de você ler as informações você vai ter que fazer a conversão. Para tal, o código abaixo deve ser inserido no código acima.
tam = strlen(palavra);
for (i=0;i < tam;i++)
{
palavra[i] = palavra[i]-32;
}
Você pode usar assim, como acima que funciona. A variavel “tam” através da função strlen() recebe o valor inteiro da quantidade de letras digitada. Você pode economizar escrevendo o código assim:
for (i=0;i < strlen(tam);i++)
{
palavra[i] = palavra[i]-32;
}
O que é que muda? A variavel “tam” é usada dentro do laço e vai ter a mesma ação, que é, pegar o tamanho em inteiro da quantidade de letras digitadas na palavra[i]. É esta a função de strlen(tam). Str=string e len=lenght. Tamanho da String. Usando desta maneira, você economiza a linha de atribuição: tam = strlen(palavra);
O código: palavra[i] = palavra[i]-32 é quem converte a sua palavra em minúsculo para MAIÚSCULA. Mas, como é que funciona? Simples: na tabela ASCII toda e qualquer letra minúscula, menos 32, vai para a mesma letra em maiúscula. Não acredita? Faz o teste: abra o Bloco de Notas e segure a tecla ALT da esquerda e então digite no teclado Numérico o número 97. Vai sair a letra ‘a’ em minúsculo. 97-32=65 não é? Então! Faça a mesma coisa. Segure ALT da esquerda e aperte no teclado númerico 65 e você vai ter uma letra A, em maiúscula.
Então é por isto que o código palavra[i] = palavra[i]-32 vai converter a palavra minúsculo para maiúscula. Não esquecer do que muito se repete: toda cadeia de string é na verdade um vetor. O código completo fica assim:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main ()
{
char palavra[20];
int tam,i;
printf("Digite uma palavra: ");
scanf("%s",&palavra);
printf("\nA palavra digitada foi: %s ",palavra);
printf("\n\n");
for (i=0;i < strlen(tam);i++)
{
palavra[i] = palavra[i]-32;
}
printf("A palavra em maiusculas %s " ,palavra);
printf("\n\n");
system("pause");
}
Escrever um algoritmo que leia um valor em Reais. A seguir, calcule o menor número de notas possíveis no qual o valor pode ser decomposto. As notas consideradas são de 100, 50, 20, 10, 5, 2 e 1. A seguir mostre o valor lido e a relação de notas necessárias.
Se você já está estudando vetores abaixo um exemplo de código que fiz. Se você não está estudando vetores, tem outro exemplo no blog que usa apenas variaveis.
Evidente que você pode incrementar o código com um do{ }while(); Também você pode trocar os cout e o cin por printf() e scanf()
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <conio.c>
#include <iostream>
using namespace std;
main (){
int cedulas[] = {100, 50, 20, 10, 5, 2, 1};
int quantidadeTotal = 0;
int valorReais = 0,i=0;
int qtdCedulas[7];
cout << “Valor a sacar “;
cin >> valorReais;
for(i = 0; i < 7; i++)
{
qtdCedulas[i] = (valorReais/cedulas[i]);
valorReais = valorReais % cedulas[i];
quantidadeTotal += qtdCedulas[i];
cout << qtdCedulas[i] << ” Cedulas de.: ” <<cedulas[i] << endl;
}
cout << “Total de Cedulas: ” << quantidadeTotal;
getch();
}
Comentando o laço for() onde tudo acontece.
for(i = 0; i < 7; i++)
{
qtdCedulas[i] = (valorReais/cedulas[i]);
Esta linha acima, o vetor qtdCedulas[i] recebe o resultado da variavel valorReais e dividido pelo valor do vetor cedulas[i], ou seja, pega o valor que o usuário digita e divide por 100, depois, por 50, 20,10,5,2,1. Assim, cada posição do vetor qtdCedulas[i] armazena a sua quantidade de notas.
valorReais = valorReais % cedulas[i];
Esta linha acima pode ser substituída por esta outra abaixo:
valorReais %= cedulas[i];
Aqui a variavel valorReais é modificada e passa a conter a cada laço o resto da divisão do valor digitado pelo usuário pelo conteúdo do vetor cedulas[i], ou seja, se você digitar: 254 na posição de cedulas[0] guardará 54, pois, 254/100 (100 é o valor de cédulas[0]).
Na segunda passagem do laço, valorReais receberá o conteúdo de 54/50 (50 é o valor de cédulas[1]), ou seja, resto 4.
E assim por diante.
quantidadeTotal += qtdCedulas[i];
Esta variável vai contando a quantidade de cédulas armazenado no vetor qtdCedulas[].
cout << “Cedulas de …: ” << cedulas[i] << “\t Qtd …: ” << qtdCedulas[i] << endl;
Esta linha exibe na tela o resultado. E você pode usar o printf();
Isto é tudo!