CIn.ufpe.br
ComputaçãoEletrônicaTiposdedados,constantes,variáveis,operadoreseexpressões Prof:LucianoBarbosaSitedadisciplina:www.cin.ufpe.br/~if165/
CIn.ufpe.br
Recapitulando
2
Algoritmo Algoritmo em C
num
cubo = n * n * n
cubo
CIn.ufpe.br
AuladeHoje:VariáveiseConstantes
Variáveis
CIn.ufpe.br
AuladeHoje:Operadores
Operadores
CIn.ufpe.br
VariáveiseConstantes
• Armazenamosdadosdosprogramasemmemória• Armazenamumtipodedado(inteiro,realoucaractere)• Possuem um identificador (nome) para referenciar o seu
conteúdo• Declaração:
Sintaxe
<tipo><identificador_1>[,identificador_2,...];
CIn.ufpe.br
VariáveisemMemóriaPrincipaldoComputador
6
MemóriadoComputador0: 1: 2: 3: 4:
5: 6: 7: 8: 9:
10: 11: 12: 13: 14:
15: 16: 17: 18: 19:
int cubo = 5;
CIn.ufpe.br
VariáveisemMemóriaPrincipaldoComputador
1. Separeumaáreadamemóriaparaarmazenarotipodavariável(inteiro:32bits)
7
MemóriadoComputador0: 1: 2: 3: 4:
5: 6: 7: 8: 9:
10: 11: 12: 13: 14:
15: 16: 17: 18: 19:
int cubo = 5;
área reservada de 32 bits
CIn.ufpe.br
VariáveisemMemóriaPrincipaldoComputador
1. Separeumaáreadamemóriaparaarmazenarotipodavariável(inteiro:32bits)
2. Nomeieessaáreade“cubo”
8
MemóriadoComputador0: 1: 2: 3: 4:
5: 6: 7: 8: 9:
10: 11: 12: 13: 14:
15: 16: 17: 18: 19:
int cubo = 5;
cubo
CIn.ufpe.br
VariáveisemMemóriaPrincipaldoComputador
1. Separeumaáreadamemóriaparaarmazenarotipodavariável(inteiro:32bits)
2. Nomeieessaáreade“cubo”3. Coloquenessaáreaonúmero5(embinário:111)
9
MemóriadoComputador0: 1: 2: 3: 4:
5: 6: 7: 8: 9: 111
10: 11: 12: 13: 14:
15: 16: 17: 18: 19:
int cubo = 5;
cubo
CIn.ufpe.br
Constantes• Aocontráriodasvariáveis,constantesarmazenamvaloresfixos
• Apósaprimeirainicialização(quepodesernaprópriadeclaração)umaconstantenãopodeterseuvaloralterado.
Sintaxe
const<tipo><constante1>[,<constante2>,...];
CIn.ufpe.br
Constantesdepreprocessador• EmC,adiretiva#defineéfrequentementeutilizadaaoinvésde
const.
• Nestecaso,antesdacompilaçãotodasasocorrênciasdonomedaCONSTANTEsãosubstituídaspeloVALORdefinido.
• Otiposeráinferidoemtempodecompilação.
Sintaxe
#define<CONSTANTE><VALOR>
Obs.1:porconvençãodevemserutilizadasletrasmaiúsculasnonomedeconstanteseunderscoreparasepararpalavras.
Obs.2:constantesdestetiposempretêmescopoglobal
CIn.ufpe.br
TiposdeDados
• Variáveisarmazenamtiposdedados• Quatrotiposdedados:
– Inteiro(int)– Real(float,double)– Caractere(char)– Indefinido(void)
• Nãopossuiotipológico,quearmazenaverdadeirooufalso:tipointcomvalores(0:falso,≠0:verdadeiro)
• Paracadatipodedado,énecessáriaumaquantidadedebitsparaarmazená-lonamemória
Declaraçãodevariável
<tipo><identificador_1>[,identificador_2,...];
CIn.ufpe.br
TiposdeDados:Inteiro
• Osnúmerosinteiros,emC,sedividememtrêstipos:
• Obs1.:Otipocharàsvezeséutilizadocomfinalidadederepresentaruminteirode8bits(0a255).
• Obs2.:Otamanhopodevariardeacordocomocompiladoroucomaplataformaparaqualoprogramaestásendocompilado.
Tipo Tamanho IntervaloSuportado
shortint(short) 16bits -32.768a+32.767
int
32bits
-2.147.483.648a+2.147.483.647
longint(long)
64bits
-9.223.372.036.854.775.808a+9.223.372.036.854.775.807
CIn.ufpe.br
TiposdeDados:Inteiro
• Tipodevecomportarovaloraserarmazenado– Ex:idadedeumfuncionário->short– Ex:quantidadedeeleitoresdeumacidadegrande->int
• Podemsercombinadoscomomodificadorunsigned(semsinal)– Duplicaovalormáximoquepodeserarmazenado,iniciandoa
representaçãodozero(deixandoderepresentarvaloresnegativos).– Ex.:unsignedshort,unsignedintouunsignedlong
• Parafacilitarnossoestudo,sempreseráusadootipointparaarmazenarosdadosinteiros.
CIn.ufpe.br
TiposdeDados:Real• Osnúmerosreais,emC,podemserdedoistipos:
• Otamanhopodevariardeacordocomocompiladoroucomaplataformaparaqualoprogramaestásendocompilado.
Tipo Tamanho IntervaloSuportado
float 32bits 3.4E-38a3.4E+38
double 64bits 1.7E-308a1.7E+308
CIn.ufpe.br
TiposdeDados:Caractere
• Tipochar• Caracterealfanumérico(a,b,c,...z,A,B,C,...Z,0...9)ouespecial
(comoporexemplo:;#?@!<?)• Otipochararmazenaumúnicocaractere• Ocupa8bitsdememória• Representadoentreapostrófos:charletra=‘a’;• Sequênciadecaracteres(string):charcarro[]=“ferrari”;
CIn.ufpe.br
TiposdeDados:void
• Nenhumvalordisponível• Frequentementeutilizadoquandoestamosdefinindofunções
quenãoretornamnenhumvalor(retornamvazio)nosnossosprogramas.Ex.://Funçãoprincipalquenãoretornavalornenhumvoidmain(){....
}• Obs.:
– NopadrãodecodificaçãoANSIC,afunçãomaindeveretornarsempreint.Quandoovalorretornadoézeroindicaqueoprogramafinalizousemerros.Qualqueroutrovalorindicaumcódigodeerroestipuladopeloprogramador.
– Utilizarotipovoidnamainresultaemumaviso(warning)decompilação.
CIn.ufpe.br
QualoTipo?
• Nomedeumapessoa• Númerodequartosdeumapartamento• Peso• Temperatura• Nomedeumacidade• Númerodealunosnadisciplina
18
CIn.ufpe.br
Identificadores
• Nomesparavariáveis,constantes,funçõeseprocedimentos• Regras
– Oprimeirocaracteredeveserumaletraou_(underscore);– Orestantedonomedeveserformadoporcaracterespertencentesao
seguinteconjunto:a,b,c,..z,A,B,C,...Z,0,1,2,...,9,_(ouseja:letras,númeroseunderscore);
– Nãodevehaverespaçoembranco;– Nãoutilizaracentos,nemcedilha;– Osidentificadorespodemteraté32caracteres;– Emummesmoescopo,nãodevehaveridentificadoresrepetidos– Palavrasreservadasnãopermitidas
Declaraçãodevariável
<tipo><identificador_1>[,identificador_2,...];
CIn.ufpe.br
Identificadores• Distinçãodemaiúsculaseminúsculas(casesensitive)
– Ex:osidentificadores:Media,MEDIA,MediAemediasãoconsideradosdiferentes
• DICA:BoaPráticadeProgramação– Escolhambemosnomesdasvariáveiseconstantesdoprograma.– Osidentificadoresescolhidosdevemserclaros,afimdeexplicitaro
conteúdoqueseráarmazenado,mastambémnãodevemserextensosparanãodificultaraescrita.
– Evitenomescomoa,bec,num1,num2(anãoserquefaçamsentidonocontextoondeserãoutilizados)
CIn.ufpe.br
ExemplosdeIdentificadores
• a• X2• Nomedisciplina• NomeAluno• media*• Media• salarioFuncionario• 2m• _3a_entrada• funcionário• ação1
CIn.ufpe.br
OperadordeAtribuição(=)• Armazenarumvaloremumadadavariávelouconstante
(espaçodememóriaassociado)• Dadoaserarmazenadodevesercompatívelcomotipoda
variável– Porexemplo,asvariáveisreaispodemrecebervaloresreaiseinteiros.– Noentanto,umavariávelinteiranãopodereceberumvalorreal
(cuidado!ovalorseráconvertidoparainteiropodendogerarresultadosestranhos).
CIn.ufpe.br
OperadordeAtribuição(=)• Exemplo:
– Defineumaposiçãodememóriachamadaxparaarmazenarinteiros– Armazenaovalor5
Memória0: 1: 2: 3: 4:
5: 6: 7: 8: 9:
10: 11: 12: 13: 14:
15: 16: 17: 18: 19:
xx=111
CIn.ufpe.br
OperadordeAtribuição(=)• PodeserusadoemqualquerexpressãoválidaemC• Representadopelosímbolodeigual:=• Formageral:<nome_da_variável>=<expressão>
• Aordeméimportante!Atribuição,sempredadireitapraesquerda:ß
Qual o valor de a e b?
CIn.ufpe.br
OperadordeAtribuição(=)
• Incrementodeumavariável:
• Nãoconfundircomaigualdadematemática!• Matematicamentefalandoxnuncaseráigualax+1;• EmC,“=”éooperadordeatribuiçãoenãoosinalde
igualdade.
CIn.ufpe.br
OperadordeAtribuição(=)
• Incrementodeumavariável:
• Lembre-se:avaliaçãodadireitaparaaesquerda.• Passosparaexecuçãodaatribuição:
1. Avaliaçãodoladodireito:(x+1)éavaliado.Resultado:6;2. Avaliaçãodoladoesquerdo:oendereçodememóriadexé
determinado;3. Ocorreaatribuição:6éarmazenadonoendereçodememóriadex.
Apartirdesteponto:x=6
CIn.ufpe.br
OperadoresdeIncremento
• Operadoresdeincrementoedecrementosãooperadoresunáriosquesãoutilizadosemvariáveis;
• Ooperadordeincremento(++)soma1aoseuoperando(variável)
• Ooperadordedecremento(--)subtrai1deseuoperando• Ainstrução: contador++;
• éfuncionalmenteequivalentea: contador=contador+1;��
Reescrevendooprogramaanterior
CIn.ufpe.br
OperadoresdeIncremento
• Estesoperadorespodemserempregadosdeformapós-fixadaoupré-fixada
• contador++;ou++contador;• Quandoisoladostêmcomportamentosequivalentes;
Reescrevendooprogramaanterior
CIn.ufpe.br
OperadoresdeIncremento
• Quandofazempartedeexpressõesmaiores,elespodemtercomportamentosdiferentes.
• Pré-fixado:++a;ou--a;• Incrementa(oudecrementado)de1ovalordea.• Seapareceemumaexpressão,ovaloréincrementado(ou
decrementado)antesdocálculodaexpressão
x = x + 1; y = x * 2;
Qualovalordexeyaofinaldoprograma?
CIn.ufpe.br
OperadoresdeIncremento
• Quandofazempartedeexpressõesmaiores,elespodemtercomportamentosdiferentes.
• Pós-fixado:a++;oua--;• Seapareceemumaexpressão,ovaloréincrementado(ou
decrementado)depoisdocálculodaexpressão
Qualovalordexeyaofinaldoprograma?
y = x * 2; x = x + 1;
CIn.ufpe.br
OperadoresAritméticos
• Operadoresaritméticosbinários• Doisoperandos• Notação:<operando><operador><operando>.Ex.:4*2
Sinal Ação+ Adição
- Subtração
* Multiplicação
/ Divisão
% Restodadivisão(sóparainteiros)
CIn.ufpe.br
OperadoresdeIncrementoCombinados:+=,-=,*=,/=
• Podemosaindaincrementarumavariávelemmaisde1porvez:– a+=2;(Incrementaaemdois)->a=a+2;– a-=3;(Decrementaaemtrês)->a=a–3;
• Háaindaoperaçõesequivalentescomoutrosoperadoresbinários:– a*=2;(Multiplicaapordois)->a=a*2;– a/=3;(Divideaportrês)->a=a/3;
CIn.ufpe.br
OperadoresAritméticos• Operador(%),restodadivisão:
– 0%3:0– 1%3:1– 2%3:2– 3%3:0– 4%3:1– 5%3:2
• Oresultadodaoperaçãoteráomesmotipodosoperandos.Ex:– 3/2(int/int)=1(int)
• Emcasodeoperandosdetiposdistintosoresultadoserádotipomaisabrangente:– 3.0/2(float/int)=1.5(float)
CIn.ufpe.br
ExpressõesAritméticas
• Computamresultadosnuméricoseutilizamoperadoresaritméticoscombinadoscomoperandosnuméricos.
• Podemenvolver:– Variáveis,constantes,funçõesnuméricas
• Ordemdeprecedência1. Operadoresunários(-,--,++)eFunções2. Multiplicação(*),Divisão(/)eMódulo(%)3. Adição(+)eSubtração(-)
• Qualovalordeanaexpressão:a=1+2*3;• Operaçõesequivalentes:
– a=a+1; a+=1; a++; ++a;– -1;0-1
CIn.ufpe.br
ConversõesdeTipo
• Existemconversõesautomáticasdevaloresemumaavaliaçãodeumaexpressãoquandooperandospossuemtiposdiferentes– Operandodetipodemenortamanhoéconvertidoautomaticamente
paraotipodemaiortamanho– Conversãoéfeitaemáreatemporáriadamemóriaantesdaavaliaçãoda
expressão– Resultadoénovamenteconvertidoparaotipodavariávelàesquerdada
atribuiçãointa=3/2.0+0.7;1. Ointeiro3éconvertidoparafloat;2. Expressãoéavaliadacomo2.2,3. Valoréconvertidoparauminteiroeatribuídoàvariável.Oresultadofinaldeaé2
CIn.ufpe.br
OperadoresdeConversão(Cast)
• Algumasvezesaconversãoautomáticadáresultadosnãodesejados;
• Devemosentãousarooperadordecast:• Formageral(osparêntesessãonecessários):
(<tipodesejado>)<variável>ou(<tipodesejado>)(<expressão>)
• Oarmazenamentodeumvalorrealemumtipodedadointeirogeraerroouperde-seprecisão– inta=3/2+0.5;
• Resultado:aé1– inta=((float)3)/2+0.5;
• Resultado:aé2
CIn.ufpe.br
Quaisserãoosvaloresdasvariáveisdeclaradasapósaavaliaçãodasexpressõesabaixo?
inta,r,s;doubleb,c;a=3.5;b=a/2.0;c=1/2+b;r=10%a;s=r+2*3;
Resposta:a=3,b=1.5,c=1.5,r=1es=7
CIn.ufpe.br
Calculeoantecessoresucessordeumnúmero
38
CIn.ufpe.br
Passo-a-passoparacriarumprogramaemC1. Definirentradaesaída(variáveis)
2. Definirtiposdasvariáveis3. Implementarafunçãodasaída(oufunções)4. Adicionarcomandosdeimpressãoeleituradaentrada5. Adicionarcomandosdeimpressãodesaída
39
CIn.ufpe.br
Calculeoantecessoresucessordeumnúmero
40
CIn.ufpe.br
Calculeamédiaaritméticade3númerosdados
41
CIn.ufpe.br
Calculeamédiaaritméticade3númerosdados
42
CIn.ufpe.br
Calculeaáreaeocomprimentodeumcírculoderaior
43
CIn.ufpe.br
Calculeaáreaeocomprimentodeumcírculoderaior
44
CIn.ufpe.br
Atividade• Fazerosexercíciospropostosnaseção2.12docapítulo2do
livrodoJaimeEvaristo.
Top Related