You are on page 1of 60

INTRODUO LINGUAGEM C

Andr Desessards Jardim


adjardim@terra.com.br
PROGRAMAO DE MICROCOMPUTADORES 750078
PROGRAMAO DE COMPUTADORES - 750072
Universidade Federal de Pelotas
Centro de Desenvolvimento Tenol!"io
Antes de ome#armos$$$

Devemos sa%er res&onder al"'mas ('est)es *A+TANTE


%,sias-

O ('e . 'm &ro"rama de om&'tador/

Por ('e e' &reiso a&render a &ro"ramar/

O ('e . 'm ar('ivo o' !di"o 0onte/

O ('e . 'm o%1eto o' ar('ivo om&ilado/

O ('e . 'ma lin"'a"em de &ro"rama#2o/

O ('e . l!"ia de &ro"rama#2o/

O ('e . 'm &r.3&roessador/

O ('e . 'm om&ilador/

O ('e . 'm linker/

O ('e . 'ma %i%liotea/


UFPel / CDTec 2011/1
2
Como a&render 'ma lin"'a"em de &ro"rama#2o/
slide de motivao para aprendizado de qualquer linguagem de
programao
4$ Preise dela55555 Se eu no preciso, por que tenho
de aprend-la?
6$ Ten7a &ra8er em &ro"ramar omo ('em est, &ara
dei0rar 'm eni"ma$ Como eu ao esse computador
azer o que eu quero?
9$ Pe"'e 'm &ro"rama sim&les: ontendo %ons oment,rios
&asso3a3&asso e tente 'tili8ar os 0ra"mentos ('e se
assemel7am om o ('e se dese1a 0a8er omo 'm modelo$
!uarde esse programa-modelo em um core a sete
chaves at" se sentir seguro o suiciente para
programar sozinho
UFPel / CDTec 2011/1
3
Como a&render 'ma lin"'a"em de &ro"rama#2o/
slide de motivao para aprendizado de qualquer linguagem de
programao
;$ Comee a &ro"ramar om a a1'da de 'm %om am%iente de
&ro"rama#2o$ mas nunca se torne escravo dele
<$ N2o desanime: se1a &ersistente5 #rrar " a melhor
parte do processo de aprendizado pois os erros,
geralmente, so mais acilmente assimilados do que
os acertos
=$ N2o ten7a medo de tentar5 $ %&om' compilador adora
nos humilhar mostrando nossos deslizes, al"m disso,
um simples programa no ir( azer o computador
e)plodir -- mas talvez ele precise ser
reiniciado***
+ good programmer is someone ,ho looks &oth ,a-s &eore crossing a
one-,a- street*
-- .oug /inder, s-stems administrator
UFPel / CDTec 2011/1
4
Desenvolvendo &ro"ramas

Plane1ar>

L!"ia de &ro"rama#2o

Desenvolver>

Lin"'a"em ?C@CAA: Fortran: Bava: et$$$C

Am%iente de &ro"rama#2o ?Di: Note&ad: Dis'al +t'dio: EDE develo&er:


Dev3CAA: et$$$C

Pr.3&roessar: om&ilar e Flinkeditar

Com&iladores ?Intel: GG<: PGFGH: Com&a(: et$$$C

Testar ?de&'ra#2oC>

Am%iente de &ro"rama#2o

Corri"ir ?de&'ra#2oC>

Am%iente de &ro"rama#2o
Commentar-0 most de&ugging pro&lems are i)ed easil-1
identi-ing the location o the pro&lem is hard* -- unkno,n
UFPel / CDTec 2011/1
5
Ti&os de Lin"'a"em
I
*aiJo3NKvel
I
+2o lin"'a"ens voltadas &ara a m,('ina: isto .: s2o
esritas 'sando3se as instr'#)es do
miro&roessador do om&'tador
I
+2o "eneriamente 7amadas de lin"'a"ens +ssem&l-
o' de monta"em
UFPel / CDTec 2011/1
6
Ti&os de Lin"'a"em
I
*aiJo3NKvel

2antagens-

Os &ro"ramas s2o eJe'tados om maior velocidade de


&roessamento e o'&am menor espao na mem!ria

.esvantagens-

Em "eral: &ro"ramas em Assem%lL tMm &o'a


porta&ilidade: isto .: 'm !di"o "erado &ara 'm ti&o
de &roessador n2o serve &ara o'tro

C!di"os Assem%lL n2o s2o estr't'rados: tornando a


programao %em mais di0Kil
UFPel / CDTec 2011/1
7
Ti&os de Lin"'a"em
I
Alto3NKvel
I
+2o lin"'a"ens voltadas &ara o ser 7'mano
I
Em "eral 'tili8am sintaJe estr't'rada tornando se'
!di"o mais le"Kvel
I
Neessitam de compiladores o' interpretadores &ara
"erar as instr'#)es do miro&roessador
UFPel / CDTec 2011/1

Ti&os de Lin"'a"em
I
Alto3NKvel

2antagens-

Por serem om&iladas o' inter&retadas: tMm maior


porta&ilidade &odendo ser eJe'tados em v,rias
&lata0ormas om &o'('Kssimas modi0ia#)es

Em "eral: a &ro"rama#2o torna3se mais 0,il &or a'sa


do maior o' menor "ra' de estr't'ra#2o de s'as
lin"'a"ens

.esvantagens-

Em "eral: as rotinas "eradas ?em lin"'a"em de m,('inaC


s2o mais "en.rias e &ortanto mais om&leJas e &or
isso s2o mais lentas e o'&am mais mem!ria
UFPel / CDTec 2011/1
!
Ti&os de Lin"'a"em
UFPel / CDTec 2011/1
10
Lin"'a"ens de Alto3NKvel 3
A&lia#)es

As Lin"'a"ens de Alto3NKvel &odem se distin"'ir


('anto a s'a a&lia#2o-

Genricas0 omo C: Pascal e Basic

Especficas0 omo Fo!a" ?,l'lo matem,tioC: GPSS


?sim'la#2oC: #ISP ?inteli"Mnia arti0iialC o' C#IPPER
?%ano de dadosC
UFPel / CDTec 2011/1
11
C N Um &o'o de 7ist!ria

A Lin"'a"em C nase' de *CPL: ('e in0l'enio' 'ma


lin"'a"em 7amada *

Na d.ada de OH: nos la%orat!rios da ATPT *ell: *


levo' ao desenvolvimento do C

Criada &or Denis Rit7ie em 4GO6 ?*ell La%s: U+AC

Em meados de 4GOH ela 0oi li%erada &ara 'so em


Universidades

Em 4GOQ: *rian Eerni"7an e Dennis Rit7ie esreveram


o livro 3he C /anguage 4rogramming
UFPel / CDTec 2011/1
12
C N Um &o'o de 7ist!ria

Em 4GQH 1, eJistiam v,rias vers)es de om&iladores


de diversas em&resas ?n2o restritos ao am%iente
UniJC

C 0oi &adroni8ado &ela AN+I ?+merican 5ational


Standards 6nstituiteC em 4GQ9

O livro C Completo 3otal adota o &adr2o AN+I e


eJem&li0ia o'tras im&lementa#)es

Poss'i 'ma li"a#2o m'ito estreita om o sistema


O&eraional Lin'J

+'a &rimeira 'tili8a#2o im&ortante 0oi a esrita do +$O$


UniJ
UFPel / CDTec 2011/1
13
C N Um &o'o de 7ist!ria

Em 4GGH: A 7orland 6nternational Co: 0a%riante de


om&iladores &ro0issionais esol7e o C e o Pascal
omo lin"'a"ens de tra%al7o &ara o se' 6ntegrated
.evelopment #nviroment ?Am%iente Inte"rado de
DesenvolvimentoC

+'r"e o T$%o Pascal & o T$%o C &ara DO+

Em 4GG6: C se torna &onto de onordRnia entre


te!rios do desenvolvimento da teoria de $&8ect
$riented 4rogramming ?&ro"rama#2o orientada a
o%1etosC

+'r"e o C''
UFPel / CDTec 2011/1
14
C N Um &o'o de 7ist!ria

C . 'ma lin"'a"em de &ro&!sito "eral: ade('ada S


&ro"rama#2o estr't'rada

B'ntamente om Fortran: . a &rini&al lin"'a"em &ara


'so ientK0io ?om&iladores: analisadores l.Jios:
%anos de dados: editores de teJto$$$C
UFPel / CDTec 2011/1
15
Lin"'a"em C 3 Introd'#2o

Pertene a 'm on1'nto de lin"'a"ens '1as &rini&ais


araterKstias s2o-

Porta%ilidade

Mod'laridade

Com&ila#2o se&arada

Re'rsos de %aiJo nKvel ?tratamento de arateresC

Gera#2o de !di"o e0iiente

Con0ia%ilidade

Re"'laridade

+im&liidade

Failidade de 'so
UFPel / CDTec 2011/1
16
Lin"'a"em C 3 A&lia#)es

A Lin"'a"em C &ode ser 'tili8ada em diversos am&os


de desenvolvimento-

+istemas O&eraionais

Gereniadores de *ano de Dados

Editores de TeJto

Planil7as EletrTnias

Com&iladores

+istemas de Ne"!ios ?Fol7a: Conta%ilidade: Esto('e:


etC
UFPel / CDTec 2011/1
17
Re0erMnias

Goo"le: Goo"le: Goo"le

4$;GH$HHH re0erMnias &ara FLin"'a"em CU

44=$HHH$HHH re0erMnias &ara FC Pro"ramin" Lan"'a"eU

C ViWi&edia-

7tt&-@@&t$XiWi&edia$or"@XiWi@Lin"'a"emY

7tt&-@@XXX$&ortal$ni&$net$

+ite re&leto de a&ostilas: teJtos: t'toriais: &ro"ramas3


0ontes e at. om&iladores &ara a lin"'a"em C e CAA$
UFPel / CDTec 2011/1
1
Re0erMnias

Livros

T7e C *ooW ?*ana7an: *radL P DoranC

7tt&-@@XXX$om&'ter3%ooWs$'s@Y<$&7&

T7e NeX C +tandard ?BonesC

7tt&-@@XXX$Wnoso0$o$'W@%ooW@%ooW$7tml
UFPel / CDTec 2011/1
1!
O ('e e' &reiso &ara &ro"ramar
em C/

Um editor de teJtos: 'm om&ilador o' 'm am%iente de


&ro"rama#2o ('e 0orne#a o editor de teJtos e o
om&ilador 1'ntos

VindoXs e L'niJ-

Dev3CAA

Am%iente de desenvolvimento inte"rado livre ('e 'tili8a os


om&iladores do &ro1eto GNU &ara om&ilar &ro"ramas &ara o
sistema o&eraional Miroso0t VindoXs

+'&orta as lin"'a"ens de &ro"rama#2o C e CAA: e &oss'i toda a


%i%liotea AN+I C: al.m de al"'mas %i%lioteas similares Ss
da Borland Turbo C
UFPel / CDTec 2011/1
20
Constr'indo 'm &ro"rama
com"ilado
arq1.obj
com"ilado
arq1.obj
com"ilado
arq2.obj
com"ilado
arq2.obj
com"ilado
arq3.obj
com"ilado
arq3.obj
#o$te
arq1.cpp
#o$te
arq1.cpp
#o$te
arq2.cpp
#o$te
arq2.cpp
#o$te
arq3.cpp
#o$te
arq3.cpp
"r%&"roce''ado
arq1.i
"r%&"roce''ado
arq1.i
"r%&"roce''ado
arq2.i
"r%&"roce''ado
arq2.i
"r%&"roce''ado
arq3.i
"r%&"roce''ado
arq3.i
Pr-processamento Compilao
"ro(rama
foo.exe
"ro(rama
foo.exe
linkedio ou linkagem
UFPel / CDTec 2011/1
21
Com&iladores J Inter&retadores

Re0erem3se ao modo omo 'm &ro"rama . eJe'tado

Um inter&retador lM o !di"o30onte do se' &ro"rama


'ma lin7a &or ve8 eJe'tando a instr'#2o es&eK0ia
ontida nessa lin7a

Um om&ilador lM o &ro"rama inteiro e onverte3o &ara


!di"o3o%1eto

O !di"o O%1eto . 'ma trad'#2o do !di"o 0onte do


&ro"rama em 'ma 0orma ('e o om&'tador &ossa eJe'tar
diretamente
UFPel / CDTec 2011/1
UFPel / CDTec 2011/1
22
Com&iladores J Inter&retadores

O !di"o o%1eto tam%.m on7eido omo !di"o de


m,('ina

Todo Com&ilador C vem om a %i%liotea C &adr2o

M'itas das 0'n#)es ('e se &reisa im&lementar 1,


est2o na %i%liotea C &adr2o

Elas a"em om %loos %,sios ('e o &ro"ramador &ode


om%inar

+e o &ro"ramador esrever 'ma 0'n#2o ('e ir, 'tili8ar


m'itas ve8es: ela &ode ser oloada em 'ma %i%liotea
UFPel / CDTec 2011/1
23
Com&iladores J Inter&retadores

Montador ?assem&lerC

Trad'tor &ara lin"'a"ens de 6


a
"era#2o

Com&ilador

Trad'8 todo o &ro"rama de 'ma ve8

Inter&retador

Trad'8 o &ro"rama instr'#2o &or instr'#2o


UFPel / CDTec 2011/1
24
TRADUTOR CZDIGO
FONTE $$$ LET +OMA [
DAR4 A TOTAL $$$
?lin"'a"em de
&ro"$C
CZDIGO
O*BETO $$$
HHH4H44H444HH4H44HH4H44H4H $$
$ ?FeJe't,velUC
CaraterKstias

\ 'ma lin"'a"em de alto n9vel, gen"rica

Foi desenvolvida por &ro"ramadores para


&ro"ramadores: tendo omo meta araterKstias de
0leJi%ilidade e &orta%ilidade

Utili8ada &ara desenvolver o sistema o&eraional


U(I): e 7o1e est, sendo 'sada &ara desenvolver novas
lin"'a"ens: entre elas a lin"'a"em C''* +a,a: entre
o'tras

Pro"ramas em C s2o om&ilados: "erando &ro"ramas


eJe't,veis
UFPel / CDTec 2011/1
25
CaraterKstias

C . 'ma lin"'a"em de alto nKvel om 'ma sintaJe


%astante estr't'rada e 0leJKvel tornando s'a
&ro"rama#2o %astante sim&li0iada

C om&artil7a re'rsos tanto de alto ('anto de %aiJo


nKvel: &ois &ermite aesso e &ro"rama#2o direta do
miro&roessador

Com isto: rotinas '1a de&endMnia do tem&o . rKtia:


&odem ser 0ailmente im&lementadas 'sando instr'#)es em
+ssem&l-

Por esta ra82o o C . a lin"'a"em &re0erida dos


&ro"ramadores de a&liativos
UFPel / CDTec 2011/1
26
CaraterKstias

C . 'ma lin"'a"em estr't'ralmente sim&les e de "rande


&orta%ilidade

O om&ilador C "era !di"os mais enJ'tos e velo8es


do ('e m'itas o'tras lin"'a"ens

Em%ora estr't'ralmente sim&les ?&o'as 0'n#)es


intrKnseasC o C n2o &erde 0'nionalidade &ois
&ermite a inl's2o de 'ma 0arta ('antidade de rotinas
do 's',rio

Os 0a%riantes de om&iladores 0orneem 'ma am&la


variedade de rotinas &r.3om&iladas em %i%lioteas
UFPel / CDTec 2011/1
27
CaraterKstias

Um a%e#al7o ontendo as -i&!i,as -& co./ila-o onde


se de0inem o valor de onstantes sim%!lias:
delara#2o de vari,veis: inl's2o de %i%lioteas:
delara#2o de rotinas: et

Um %loo de instr'#)es /i"ci/al e o'tros %loos de


o!i"as

Do'menta#2o do &ro"rama- s2o os oment,rios


UFPel / CDTec 2011/1
2
CaraterKstias

Um &ro"rama30onte em C . 'm !&0!o "1o 2o.a!a-o


esrito em 'm editor de teJtos 'sando 'm o on1'nto
&adr2o de arateres A+CII

A se"'ir est2o os arateres 'tili8ados em C-

a % d e 0 " 7 i 1 W l m n o & ( r s t ' v X J L 8

A * C D E F G ] I B E L M N O P ^ R + T U D V _ ` a

4 6 9 ; < = O Q G H

A 3 b @ c [ d P 5 / e f ? C g h i j Y k F $ : - l m
UFPel / CDTec 2011/1
2!
CaraterKstias

Fo.a31o -& i-&"!i2ica-o&s- C . case sensitive

Fa8 distin#2o na a&itali8a#2o dos identi0iadores de


vari,veis 'sados em 'm &ro"rama: i$e$: os
identi0iadores soma: Soma e S$:+ s2o di0erentes &ara o
om&ilador C

Co.&"!4ios- &odem ser esritos em ('al('er l'"ar do


teJto &ara 0ailitar a inter&reta#2o do al"oritmo

Para ('e o oment,rio se1a identi0iado omo tal: ele


deve ter 'm 56 antes e 'm 65 de&ois

EJem&lo- 56 &s!a &7 $.a li"8a -& co.&"!4io &. C 65

55 &s!& &7 $. co.&"!4io ,ali-o a/&"as &. C''


UFPel / CDTec 2011/1
30
+intaJe

+2o as re"ras &ara ada onstr'#2o v,lida em 'ma


lin"'a"em es&eK0ia$ Est2o relaionadas om-

Ti/os- de0inem as &ro&riedades dos dados

D&claa39&s- eJ&ressam as &artes de 'm &ro"rama

F$"39&s- es&ei0iam as a#)es ('e 'm &ro"rama eJe'ta:


('ando roda

Determina#2o e altera#2o de valores

C7amada de 0'n#)es de I@O


UFPel / CDTec 2011/1
31
F'n#)es

+2o os %loos %,sios dos &ro"ramas em C

], 0'n#)es %,sias: de0inidas na %i%liotea C-

/i"!2 :;: sca"2 :;: <&!c8a :;: /$!c8a :;

], 0'n#)es de0inidas &elo &ro"ramador

Todo &ro"rama C iniia s'a eJe'#2o 7amando a 0'n#2o


.ai" :;: sendo o%ri"at!rio a s'a delara#2o no
&ro"rama &rini&al$
UFPel / CDTec 2011/1
32
*i%lioteas

Diretiva einl'de &ermite inl'ir 'ma %i%liotea

*i%lioteas ontMm 0'n#)es &r.3de0inidas: 'tili8adas


nos &ro"ramas

EJem&los
UFPel / CDTec 2011/1
33
F'n#)es de teJto
#include <string.h>
F'n#)es matem,tias #include <math.h>
F'n#)es &adr2o #include <stdlib.h>
F'n#)es de entrada e
saKda
#include <stdio.h>
F'n#)es Matem,tias
UFPel / CDTec 2011/1
34
F$"31o E0&./lo Co.&"!4io
eil eil ?JC )rredo$da o $*mero real "ara cima+ ceil ,3.2- % 4
&oX &oX ?J:LC Calc.la / ele0ado 1 "ot2$cia 3
eJ& eJ& ?JC e ele0ado 1 "ote$cia /
0a%s 0a%s ?JC 4alor ab'ol.to de /
0loor 0loor ?JC )rredo$da o $*mero real "ara bai/o+ #loor,3.2- % 3
lo" lo" ?JC 5o(aritmo $at.ral de /
lo"4H lo"4H ?JC Lo"aritmo deimal de J
os os ?JC Co''e$o de / ,/ em radia$o'-
s(r s(r ?JC _ elevado ao ('adrado
s(rt s(rt ?JC RaiJ ('adrada de J
+in sin ?JC +eno de J
tan tan ?JC Tan"ente de J
EJem&lo
=i"cl$-& >s!-io?8@
56 co.&"!aio 65
55co.&"!aio
.ai" :;
A
/i"!2 :BoiB;C
D
UFPel / CDTec 2011/1
35
Identi0iadores

+2o os nomes 'sados &ara 0a8er re0erMnia a-

Dari,veis

F'n#)es

M!d'los

R!t'los

Demais o%1etos de0inidos &elo 's',rio


UFPel / CDTec 2011/1
36
Identi0iadores

Re"ras de Forma#2o-

O &rimeiro arater deve ser 'ma letra o' s'%lin7ado

Os E2 &rimeiros arateres s2o si"ni0iativos

Cas& s&"si!i,& 3 di0ere mains'las de minns'la

EJem&los de identi0iadores v,lidos em C-

Nota

nota

Ynota
UFPel / CDTec 2011/1
37
Ti&os

O Ti&o serve ?"rosso modoC &ara determinar

Como os valores ser2o arma8enados

^'ais o&era#)es &oder2o ser reali8adas so%re estes


valores

Ti&os &ara Dados e &ara F'n#)es

Ti&os esalares

Ti&os n2o3esalares

ti&o de estr't'ra: ti&o de 'ni2o: ti&o de matri8


UFPel / CDTec 2011/1
3
Ti&os Esalares

Ti&os Aritm.tios

Ti&os Inteiros

7ar: si"ned 7ar: 'nsi"ned 7ar: s7ort: 'nsi"ned s7ort: int:


'nsi"ned int: lon": 'nsi"ned lon"

Ti&os Fl't'antes

0loat: do'%le: lon" do'%le

Ti&os Ponteiros

&ara 0'n#)es

&ara o%1etos de dados

&ara ti&os inom&letos


UFPel / CDTec 2011/1
3!
Delara#)es

Delaram as variveis e se's ti&os

Os nomes das variveis devem onter a&enas letras:


d"itos e o sm%olo Y

Os &rini&ais ti&os s2o- i"!: 2loa!: -o$%l& e c8a

EJem&los
int n>
int ('antidadeYvalores>
0loat J: L: somaDalores>
7ar seJo>
7ar nomei;Hj>
UFPel / CDTec 2011/1
40
EJem&lo
=i"cl$-& >s!-io?8@
=i"cl$-& >s!-li%?8@
55!a.a"8o -os !i/os
.ai" :;
A
c8a cC
$"si<"&- c8a $cC
i"! iC
$"si<"&- i"! $iC
2loa! 2C
-o$%l& -C

/i"!2 :Bc8a F-G"B* siH&o2 :c;;C
/i"!2 :B$"si<"&- c8a F-G"B* siH&o2 :$c;;C
/i"!2 :Bi"! F-G"B* siH&o2 :i;;C
/i"!2 :B$"si<"&- i"! F-G"B* siH&o2 :$i;;C
/i"2! :B2loa! F-G"B* siH&o2 :2;;C
/i"!2 :B-o$%l& F-B* siH&o2 :-;;C
/i"!2 :IG"I;C
sJs!&. :IPAUSEI;C
D
UFPel / CDTec 2011/1
41
O&eradores

Aritm.tios ?A: 3: b: @: fC

Atri%'i#2o ?[:A[:3[:b[:@[:f[C

Relaionais ?m: m[: l: l[: [[: 5[C

L!"ios ?PP: dd: 5C

Em C: 2also . H ?8eroC> ('al('er o'tro valor .


onsiderado ,&-a-&io ?inl'sive ne"ativoC

O&eradores relaionais e l!"ios tMm .&"o


/&c&-K"cia do ('e o&eradores aritm.tios
UFPel / CDTec 2011/1
42
O&eradores Aritm.tios
O/&a-o

E0&./lo
Co.&"!io
A J A L +oma J e L
3
J L
+'%trai L de J
b J b L M'lti&lia J &or L
@ J @ L Divide J &or L
f J f L Resto da divis2o de J
&or L
AA JAA Inrementa em 4 o valor
de J
33 LAA Derementa em 4 o valor
de L
UFPel / CDTec 2011/1
43
O&eradores de Atri%'i#2o
O/&a-o

E0&./lo
Co.&"!io
[ J [ L Atri%'i o valor
de L a J
A[ J A[ L E('ivale a J [ J
A L
3[ J 3[ L E('ivale a J [ J
L
b[ J b[ L E('ivale a J [ J
b L
@[ J @[ L E('ivale a J [
J @ L
f[ J f[ L E('ivale a J [ J
f L
UFPel / CDTec 2011/1
44
O&eradores Relaionais
O/&a-o

E0&./lo
Co.&"!io
[[ J [[ L
Contedo de J i"'al ao de L
5[ J 5[ L
O ontedo de J di0erente do
de L
l[ J l[ L
O ontedo de J menor o' i"'al
ao de L
m[ J m[ L
O ontedo de J maior o' i"'al
ao de L
m J m L
O ontedo de J menor ('e o de
L
l J l L
O ontedo de J maior ('e o de
L
UFPel / CDTec 2011/1
45
As &0/&ss9&s &lacio"ais &. C &!o"a.L
I
M s& ,&-a-&io
I
0 s& 2also
O&eradores L"ios

NN ?E l"ioC- retorna verdadeiro se am%os os


o&erandos s2o verdadeiros e 0also nos demais asos
EJem&lo- i0? am6 PP %l9C

OO ?OU l"ioC- retorna verdadeiro se 'm o' am%os os


o&erandos s2o verdadeiros e 0also se am%os s2o 0alsos
EJem&lo- i0? am4 dd %l6C

P ?NO l"ioC- 'sada om a&enas 'm o&erando$ Retorna


verdadeiro se o o&erando 0also e vie3versa
EJem&lo- i0? 5var C
UFPel / CDTec 2011/1
46
gDe:Inhremento

AAJ

inrementa J a"!&s de 'sar o se' valor

JAA

inrementa J -&/ois de ser 'sado

33L

derementa L a"!&s de 'sar o se' valor

L 33

derementa L -&/ois de ser 'sado


UFPel / CDTec 2011/1
47
+o%re a PreedMnia
UFPel / CDTec 2011/1
?C ij 3m
5 o AA 33 3 ?ti&oC b
P si8eo0
b @ f
A 3
ll mm
l l[ m m[
[[ 5[
Pp5
PP
dd
/-
[ A[ 3[ b[ @[ et
:
Maior
Menor
4
F'n#)es *,sias

&rint0 ?C

+intaJe-
/i"!2 :B&0/&ssao -& co"!ol&B* a<$.&"!os;C

\ 'ma 0'n#2o de E@+ ('e &ermite esrever no dis&ositivo


&adr2o ?telaC

A eJ&ress2o de ontrole &ode onter-

arateres ('e ser2o eJi%idos na tela

!di"os de 0ormata#2o

Cada ar"'mento deve ser se&arado &or vKr"'las


UFPel / CDTec 2011/1
4!
F'n#)es *,sias

&rint0 ?C

C!di"os de 0ormata#2o-

cn ?nova lin7aC

ct ?ta%'la#2oC

c% ?retroessoC

cq ?as&asC

cc ?%arraC

c0 ?salta 0orm'l,rioC

cH ?n'loC$
UFPel / CDTec 2011/1
50
F'n#)es *,sias

&rint0 ?C

C!di"os de 0ormata#2o-

f ?aratere sim&lesC

fd ?deimalC

fe ?nota#2o ientK0iaC

f0 ?&onto 0l't'anteC

fo ?otalC

fs ?strin"C

f' ?deimal sem sinalC

fJ ?7eJadeimalC
UFPel / CDTec 2011/1
51
EJem&lo 3 &rint0 ?C
=i"cl$-& >s!-io?8@
.ai" :;
A
/i"!2 :B&s!& &8 o "$.&o -oisL F-B* 2;C
D
=i"cl$-& >s!-io?8@
.ai" :;
A
i"! a* %C
2loa! cC
a Q 2C
% Q M0C
c Q 25: :2loa!; M5a ' :2loa!; M5%;C
/i"!2 :BaQ F- %Q F-G"B* a* % ;C
/i"!2 :Ba .R-ia 8a.S"ica -& a & % RL F2B* c;C
D
UFPel / CDTec 2011/1
52
F'n#)es *,sias N san0 ?C

+an0 ?C

+intaJe-
san0 ?qeJ&ressao de ontroleq: ar"'mentosC>

\ 'ma 0'n#2o de E@+ ('e &ermite ler dados 0ormatados da


entrada &adr2o ?teladoC

A lista de ar"'mentos deve onsistir dos endere#os das


vari,veis na mem!ria do om&'tador

Como o%ter o endere#o de 'ma vari,vel//

Coloando 'm P 1'nto ao nome da vari,vel$

EJ$- Pa ?0ornee o endere#o da vari,vel aC


UFPel / CDTec 2011/1
53
EJem&lo N san0 ?C
=i"cl$-& >s!-io?8@
.ai" :;
A
i"! a* %C
2loa! cC

/i"!2 :B&"!& co. o ,alo -& aG"B;C
sca"2 :BF-B* Na;C
/i"!2 :B&"!& co. o ,alo -& %G"B;C
sca"2 :BF-B* N%;C
c Q 25::2loa!; M5a ' :2loa!; M5%;C
/i"!2 :BaQF- %QF-G"B* a* % ;C
/i"!2 :Ba .R-ia 8a.S"ica -& a & % RL F2B* c;C
D
UFPel / CDTec 2011/1
54
O am%iente Dev3CAA

O Dev3CAA . 'm am%iente de desenvolvimento de


&ro"ramas em C e CAA ?editor: om&ilador:
%i%lioteas$$$C

Pode ser %aiJado de


7tt&-@@XXX$%loods7ed$net@dev&&$7tml
UFPel / CDTec 2011/1
55
Utili8ando o Dev3CAA

Iniie o Dev3CAA &elo Kone o' &elo men' Iniiar

Crie 'm novo ar('ivo: om o omando ;ile, 5e, Source


;ile

Edite o &ro"rama da &,"ina se"'inte


UFPel / CDTec 2011/1
56
Utili8ando o Dev3CAA
einl'de lstdio$7m
einl'de lstdli%$7m
main ?C
g
&rint0 ?qAlo m'ndo5qC>
sLstem ?qPAU+EqC>
h
UFPel / CDTec 2011/1
57
Utili8ando o Dev3CAA

+alve o &ro"rama om o nome &0&./lo?c//

Com&ile o &ro"rama om o omando E0&c$!a: Co./ila


o' om as telas C!l-FT

+e 7o'ver al"'m erro de sintaJe: a&aree 'ma o' mais


mensa"ens no roda&. da 1anela$ Neste aso: orri1a o
&ro"rama e re&ita

+e n2o 7o'ver erros: eJe'te o &ro"rama om o


omando E0&c$!a: E0&c$!a o' om as telas C!l-FM0
UFPel / CDTec 2011/1
5
Dias

Termine todas as lin7as om C

+em&re salve o &ro"rama antes de om&ilar

+em&re om&ile o &ro"rama antes de eJe'tar

^'ando oorrer 'm erro de om&ila#2o: dM 'm d'&lo


li('e so%re a mensa"em de erro &ara destaar o
omando errado no &ro"rama

Deri0i('e tam%.m a lin7a anterior: ('e &ode ser a


res&ons,vel &elo erro: es&eialmente se 0altar o C

Use oment,rios: iniiados &or @@


UFPel / CDTec 2011/1
5!
FIM
DU,i-as /aaL
a-Va-i.W!&a?co.?%
UFPel / CDTec 2011/1 60

You might also like