Obrigado novamente! Coloquei algumas instruções que achei bacana no meu código e gostaria de compartilhar. Segue:
#include #define MAIORIDADE 18 const int aposentadoria = 65; const int motorista = 18;
int main() { int idade; printf("Informe sua idade.\n"); scanf("%d", &idade);
if(idade >= MAIORIDADE) printf("Vc pode dirigir com %d anos.\n\n", idade);
else if(idade <= motorista) printf("Ainda nao permitido dirigir com %d anos. Joge GTA.\n\n", idade);
if(idade <= aposentadoria) printf("Vc ainda nao pode se aposentas com %d anos. \n", idade); printf("Aguarde %d anos para sua aposetandoria!\n\n", aposentadoria - idade);
} Att Alexandre
1 de janeiro de 2014 às 07:47
Anônimo disse...
<= se o usuário digitar 18 vai entrar na condição de não poder dirigir, de uma olhada no código e faça alguns testes.
Quando for CONSTANTE, caso não vá mudar de condição nem tão cedo
26 de outubro de 2014 às 04:50
Anônimo disse...
Robson Araújo Lima, A escolha se vai usar const ou #define é sua. Pode usar qualquer um. Se quiser usar só const, não precisa do #define, e se quiser usar só o #define, não precisa do const.
Melksedek, o calculo e feito ja no printf, pois aposentadoria tem um valor fixo no codigo lembra? ele so fez o valor da aposentadoria-idade no printf. Gostaria de saber se a escolha de aposentadoria e motorista para serem declaradas na const tem algum porque ou simplesmente para fim de exemplo, mostrando que pode ser feito tanto em define quanto em const? Se alguem souber agradeço :)
Tanto no caso de "aposentadoria" quanto "motorista", temos certeza que o número usado será inteiro e positivo; em outras palavras, um natural. Nesse caso, usar unsigned int é mais coerente. Minha opinião.
A utilidade é que, caso você precise alterar, supondo que seu programa tenha milhares de linhas, você não precisa sair caçando as variáveis de uma a uma para alterá-las.
16 de fevereiro de 2018 às 19:51
Como saber se uma pessoa já pode ser presa? Fácil, pela
idade:
if(idade>=18) ou if(idade>17)
Como saber se uma pessoa já pode votar? Fácil, pela
idade:
if(idade>=16) ou if(idade>15)
Parece certo, não é? A rigor, está sim.
Está correto, mas absolutamente não recomendável. Vamos explicar isso neste tutorial de C de nossa apostila.
Como ser um programador C certificado
Leia este conteúdo no seu computador: Apostila C Progressivo
Por que se deve evitar usar números em programação C
Definindo e usando constantes em C
Existem, basicamente, duas maneiras de definir constantes
em linguagem C:
Através do comando const
e da diretiva de pré-processamento: #define
Um costume dos programadores C é declarar essas
constantes no começo do programa, depois dos #include .
A sintaxe para declarar constantes usando a palavra
reservada const é:
const tipo_da_variavel nome_da_variavel =
valor_da_variavel;
Ou seja, é como declarar uma variável qualquer, como
vínhamos fazendo.
A diferença é a palavra const no início, e o fato de termos que inicializar a variável.
É como se tivéssemos definido uma variável, e de fato é
alocado um espaço em memória para essa constante, que será acessado sempre que
usarmos essa variável.
O que é diferente do #define,
que na verdade não faz parte da linguagem C, é algo que vem antes, é um comando
pro pré-processador que ocorre antes da compilação.
A sintaxe para usar o #define é a seguinte:
#defina nome_da_variavel valor_da_variavel
Isso mesmo, sem símbolo de igual, sem o tipo de variável
e sem ponto-e-vírgulo.
É como se disséssemos ao C: “Hey C, troque cada aparição
da palavra ‘nome_da_variavel’ por ‘valor_da_variavel’, e só depois compile”.
Exemplo de código:Crie um aplicativo em C que peça ao usuário sua idade, e
diga se ele já pode dirigir (se tiver 16 anos ou mais), se alistar (se tiver 18
anos ou mais) e se já pode se aposentar(65 anos ou mais).Use constantes: const
e #define.
#include <stdio.h>
#define MAIORIDADE 18
const int aposentadoria = 65;
const int motorista = 16;
int main()
{
int idade;
printf("Digite sua idade: ");
scanf("%d", &idade);
if( idade >= MAIORIDADE )
printf("Voce ja pode se alistar e dirigir.\n");
else
if( idade >= motorista )
printf("Voce pode dirigir, mas nao pode se alistar.\n");
else
printf("Voce nao pode dirigir nem se alistar\n");
if( idade >= aposentadoria )
printf("Voce ja pode se aposentar!\n");
}
Note que na #define usamos letras maiúsculas, pois é um costume entre programadores C.
postado por Programação Progressiva às 07:20 em 5 de mar. de 2013
14 Comentários
Fechar esta janela Ir para formulário de comentárioultra interessante
17 de setembro de 2013 às 18:04
Obrigado novamente! Coloquei algumas instruções que achei bacana no meu código e gostaria de compartilhar. Segue:
#include
#define MAIORIDADE 18
const int aposentadoria = 65;
const int motorista = 18;
int main()
{
int idade;
printf("Informe sua idade.\n");
scanf("%d", &idade);
if(idade >= MAIORIDADE)
printf("Vc pode dirigir com %d anos.\n\n", idade);
else
if(idade <= motorista)
printf("Ainda nao permitido dirigir com %d anos. Joge GTA.\n\n", idade);
if(idade <= aposentadoria)
printf("Vc ainda nao pode se aposentas com %d anos. \n", idade);
printf("Aguarde %d anos para sua aposetandoria!\n\n", aposentadoria - idade);
}
Att
Alexandre
1 de janeiro de 2014 às 07:47
<= se o usuário digitar 18 vai entrar na condição de não poder dirigir, de uma olhada no código e faça alguns testes.
2 de janeiro de 2014 às 17:08
Mas, quando devo usar const?
8 de maio de 2014 às 14:47
Quando for CONSTANTE, caso não vá mudar de condição nem tão cedo
26 de outubro de 2014 às 04:50
Robson Araújo Lima, A escolha se vai usar const ou #define é sua. Pode usar qualquer um. Se quiser usar só const, não precisa do #define, e se quiser usar só o #define, não precisa do const.
5 de julho de 2015 às 16:23
Boa tarde professor tentei fazer este mesmo exercicio com uma funcao junto, esta correto o modo que fiz ? obrigado pela resposta
#include
#define APOSENTAR 65
#define DIRIGIR 16
#define ALISTAR 18
using namespace std;
int dirigir (int idade_dirigir);
int aposentar (int idade_aposentar);
int alistar (int idade_alistar);
main(){
int idade_dirigir, idade_aposentar, idade_alistar;
dirigir(idade_dirigir);
aposentar(idade_aposentar);
alistar(idade_alistar);
}
int dirigir (int idade_dirigir){
cout << "Informe a idade para ver se pode dirigir:\n";
cin >> idade_dirigir ;
if (idade_dirigir >= DIRIGIR){
cout << "Ja pode dirigir:\n";
}
else
cout << "NAO pode dirigir:\n";
}
int aposentar (int idade_aposentar){
cout << "Informe a idade para ver se pode se aposentar:\n";
cin >> idade_aposentar ;
if ( idade_aposentar >= APOSENTAR ){
cout << "Ja pode se aposentar:\n";
}
else
cout << "NAO pode se aposentar:\n";
}
int alistar (int idade_alistar){
cout << "Alistamento: informe sua idade:\n";
cin >> idade_alistar ;
if (idade_alistar >= ALISTAR ){
cout << "Ja pode se alistar:\n";
}
cout << "NAO pode se alistar:\n";
}
4 de agosto de 2015 às 12:55
qual a utilidade de const e define? eu poderia simplesmente declarar uma variável e usá-la
20 de março de 2016 às 03:13
Parabéns pelo site.
Manual fodástico sobre programação em C, direto, simples e completo.
29 de abril de 2016 às 07:20
Como foi feito o calculo e quanto tempo falta para a pessoa aposentar ou dirigir no seu programa Alexandre Richard?
27 de maio de 2016 às 13:13
Melksedek, o calculo e feito ja no printf, pois aposentadoria tem um valor fixo no codigo lembra? ele so fez o valor da aposentadoria-idade no printf.
Gostaria de saber se a escolha de aposentadoria e motorista para serem declaradas na const tem algum porque ou simplesmente para fim de exemplo, mostrando que pode ser feito tanto em define quanto em const? Se alguem souber agradeço :)
27 de agosto de 2016 às 16:01
Tanto no caso de "aposentadoria" quanto "motorista", temos certeza que o número usado será inteiro e positivo; em outras palavras, um natural. Nesse caso, usar unsigned int é mais coerente. Minha opinião.
17 de março de 2017 às 06:51
Muito bom!
25 de outubro de 2017 às 14:15
100% novidades
A utilidade é que, caso você precise alterar, supondo que seu programa tenha milhares de linhas, você não precisa sair caçando as variáveis de uma a uma para alterá-las.
16 de fevereiro de 2018 às 19:51