introducion al lenguaje c
TRANSCRIPT
-
7/23/2019 introducion al lenguaje c
1/40
LOGO
UNIVERSIDAD ESTATALPENNSULA DE SANTA ELENA
UPSE
Lenguaje Estructurado C y C++
Docente:
Ing. Alexis Rocha H., M!IIngeniero en "iste#as Co#$utacionalesMag%ster en erencia de !ecnolog%as de la In&or#aci'n
E#ail: arocha(u$se.edu.ec
ale&roch))(hot#ail.co#
La Li*ertad, "anta Elena, Ecuador
gramacin Avanzada (Lenguaj
mailto:[email protected]:[email protected]:[email protected]:[email protected] -
7/23/2019 introducion al lenguaje c
2/40
Ealuaci'n de la Materia
Ealuaci'n:
i*liogra&%a Reco#endada: JOYANES AGUILAR Luis, FERNANDEZ Matilde, SANCHEZ Lucas, ESTRUCTURA DE
DATOS EN C, 1ea! Edici"# e# Es$a%&l, Ed! McGa' Hill(I#tea)eica#a de Es$a%a,*++!
JOYANES AGUILAR Luis, ZAHONERO Mat-#e., /ROGRAMACION EN C, *da!Edici"#, Ed! McGa' Hill(I#tea)eica#a de Es$a%a, *++!
GRANIZO E0eli&, LENGUAJE C, 1ea! Edici"#, Ed! ES/E 2uit&, *++1!
GRANIZO E0eli&, /ROGRAMACION ORIENTADA A O3JETOS EN C *da! Edici"#,Ed! ES/E 2uit&, 1445! CE3ALLOS Ja0ie, /ROGRAMACION ORIENTADA A O3JETOS *da! Edici"#, Ed!
RA6MA, 1447! 8ERNIGHAN 39a#, RITCHIE De##is, LENGUAJE DE /ROGRAMACION C, *da!
Edici"#, Ed! /eas Educati, 1441!
Exmenes Lecciones Deberes Participacinen Clase
Proyecto Talleres
50% 20% 10% 10% 10%
-
7/23/2019 introducion al lenguaje c
3/40
-*jetios enerales del Curso
U#a 0e. te)i#ad& el $&ces& de a$e#di.a:e, elestudia#te se; ca$a. de;sic&s del le#?ua:e
C!Desa&lla al?&it)&s de )edia#a 9 ?a# c&)$le:idad,
utili.a#d& l&s $i#ci$i&s 9 =u#da)e#t&s de la$&?a)aci"# estuctuada!
E)$lea estuctuas de ct&l de selecci"# 9 >ucles e#el le#?ua:e de $&?a)aci"# C, @acie#d& us& de l&s
di0es&s )t&d&s 9 tc#icas!Res&l0e $&?a)as de )edia#a c&)$le:idad e)$lea#d&estuctuas est;ticas de ae?l&s e# C!
-
7/23/2019 introducion al lenguaje c
4/40
-
7/23/2019 introducion al lenguaje c
5/40
nidad / 0 Introducci'n a C
C-1!E1ID-"1!1! Estuctua Ge#eal de u# /&?a)a e# C!1!*! Ti$&s de Dat&s!1!B! Csta#tes 9 aia>les!1!! E#tada(Salida de dat&s!1!! O$ead&es 9 E$esies!1!! E:ecici&s de A$licaci"#!
1!5! E0aluaci"# de la U#idad!
-
7/23/2019 introducion al lenguaje c
6/40
n $oco de historia2
El Le#?ua:e C, =ue dise%ad& $& De##is Ritc@ie e# 145+, e# l&s
La>&at&i&s 3ELL de Estad&s U#id&s! Este le#?ua:e $ese#tacaacte-sticas, c&)& s las si?uie#tes< Le#?ua:e de $&?a)aci"# de $&$"sit&s ?e#eales! /e)ite la /&?a)aci"# Estuctuada! A>u#da#cia de O$ead&es 9 Ti$&s de Dat&s! N& est; as&ciad& a #i#?# siste)a &$eati0& #i a #i#?u#a
);ui#a! /&$ula 9 E=ica.! /e)ite el desa&ll& de Siste)as O$eati0&s 9 $&?a)as
de a$licaci"#! /&ta>ilidad! Eiste# las li>e-as e# las >i>li&tecas! Tie#e s"l& B* $ala>as ese0adas!
-
7/23/2019 introducion al lenguaje c
7/401.1. Estructura General de un Programa en C
Estructura eneral de un 3rogra#a en C
C:u#t& de Fu#cies
Fu#ci"# /i#ci$al )ai#
Diecti0as Ki#clude
Estructura eneralde un 3rogra#a C
4unciones.0Es u# c:u#t& de i#stuccies ue e=ecta
u#a taea es$ec-=ica!
-
7/23/2019 introducion al lenguaje c
8/40
Es5ue#a de la Estructura de un 3rogra#a en C
Declaraciones lo*ales /&t&ti$& de =u#cies aia>les
4unci'n 3rinci$al #ain67
)ai#
declaacies l&cales se#te#cias
De&iniciones de otras &uncionesTi$&1=u#ci"#1
89Co#entario98
Ki#clude Diecti0as del /e$&cesad&Kde=i#e Mac&s del /&cesad&
-
7/23/2019 introducion al lenguaje c
9/40
Directias del 3re$rocesador
Editor de texto inteli!ente
Directi"asInstrcciones #e se le da al comptador antes decompilar el pro!rama$
Programa Fuente Programa Objeto
Compilacin
Errores de Sintaxis
-
7/23/2019 introducion al lenguaje c
10/40
-
7/23/2019 introducion al lenguaje c
11/40
Creaci'n de un 3rogra#a
-
7/23/2019 introducion al lenguaje c
12/40
3uesta a 3unto de un 3rogra#a
IICI&
'I
Editar el pro!rama
Compilar el pro!rama
Errores de(intaxis
Errores entiempo dee)eccin
Comprobar errores
SI
SI
NO
NO
-
7/23/2019 introducion al lenguaje c
13/40
Ciclo de ida de una A$licaci'n
/&>le)a
A#;lisis
Es$eci=icaci"#
/&?a)aci"#
Al?&it)&
C&di=icaci"#
/ROGRAMA
4ase deDise;o
-
7/23/2019 introducion al lenguaje c
14/40
4ases de Instalaci'n
Edici"#
C&)$ilaci"#
Mta:e
/ue>a de E:ecuci"#
E$l&taci"# 9 Ma#te#i)ie#t&
3rogra#a 4uente
3rogra#a -*jeto
3rogra#a Ejecuta*le
A$licaci'n
-
7/23/2019 introducion al lenguaje c
15/40
Ele#entos de un 3rogra#a C
Ide#ti=icad&es/ala>as Rese0adasLitealesO$ead&esOt&s Se$aad&es
-
7/23/2019 introducion al lenguaje c
16/40
IDE1!I4ICAD-RE" Caactees Letas N)e&s Si?#& Su>a9ad&RELA":
1 El $i)e caacte de>e se u#a leta!
* C&)>i#aci"# de letas 9 #)e&s!B N& se ad)ite es$aci&s e# >la#c&! Se $uede utili.a el si?#& de su>a9ad& $aa u#i * #&)>es e# u#& s&l&! Las letas )a9sculas 9 )i#sculas s di=ee#tes!Eje#$lo:
Nu)e&H&as Nu)e& H&asNu)e&H&asNH&asNu)H&asNH
C-RREC!- I1C-RREC!-
-
7/23/2019 introducion al lenguaje c
17/40
3ALARA" RE"ERADA"
$i#t= /ese#ta )e#sa:es e# $a#talla
sca#= I#?esa dat&s $& teclad&clsc Li)$ia $a#tallai#t cases'itc@ 0&id i= else '@ile d& =&
LI!ERALE"
A P QA)ica N P 1*B dat& #u)ic&3 P QDel Su N P Q1*B dat& cade#a$i#t=A $i#t=Qclsc, sca#=, ?etc@$i#t=QA)ica$i#t=Q1*B
cadena
-
7/23/2019 introducion al lenguaje c
18/40
-3ERAD-RE"
Relacionales o de Co#$araci'n: Eje#$los:
Me#& ue P Me#& & i?ual ue A 3 A P 3 Ma9& ue P Ma9& & i?ual ue A 3 A P 3PP I?ual ue P Di=ee#te a A PP 3 A P 3
Arit# >6 Resta 3 P 1+ 66 Dece)e#t& 66> >66 Su)a C P B
A P 3(C
L'gicos:AND si?#i=ica Y WW OR si?#i=ica O ll NOT si?#i=ica NO , X,
La di0isi"# $uede ta>a:a c< al&es E#te&s I#t & al&es Reales Fl&at!
-
7/23/2019 introducion al lenguaje c
19/40
-!R-" "E3ARAD-RE"
Si?#&s de $u#tuaci"# 9 si?#&s es$ecialesulad&!0 Ta>ulad& etical!
\ A$"st&=e c&)illa si)$le!
I)$i)e d&>le c&)illa!
] I)$i)e el caacte del si?#& de i#te&?aci"#!
I)$i)e u# caacte de dia?al i#0etida , >aa i#0etida !
I#dica ue de>e e:ecuta al?& eta&di#ai&!
-
7/23/2019 introducion al lenguaje c
21/40
1.2. Tipos de Datos en C
!i$os de Datos en C
E#te&s I#t
Reales & C&)a Fl&ta#te Fl&at
Cade#a & Tet& C@a
1u#
-
7/23/2019 introducion al lenguaje c
22/40
!I3- !a#a;o en
ytes
RA1-
M-#i)& M;i)&
C@a 1 + *
S@&t * 61*7 1*5
I#t * 6B*!57 B*!55
U#si?#ed I#t * + !B
L? 6*!15!7B!7 *!15!7B!B5
Fl&at B! V 1+6B7 B! V 1+B7D&u>le 7 1!5 V 1+6B+7 1!5 V 1+B+7
-
7/23/2019 introducion al lenguaje c
23/40
De&iniciones
Ti$& c@a
c@a cade#a P _\ _ P 1 c"di?& ascii c@a &$ci P ^1\ Ti$& s@&t s@&t ctP+ Ti$& i#t
i#t a#i&P1+ Ti$& u#si?#ed i#t u#si?#ed i#t dias Ti$& l?
l? T&talAcu)ulad& Ti$& =l&at =l&at sueld& Ti$& d&u>le d&u>le t&tal
-
7/23/2019 introducion al lenguaje c
24/40
Constantes y aria*les
>?u< es una Constante@
Es u# 0al& ue $e)a#ece =i:& dua#te la e:ecuci"# de u# $&?a)a! >?u< es una aria*le@Es u# 0al& ue sie)$e 0a-a su 0al& dua#te la e:ecuci"# de u#$&?a)a, eiste# * ti$&s de 0aia>les< Gl&>ales 9 L&cales!aria*les lo*ales: S las 0aia>les ue se las de=i#e# e# la
=u#ci"# $i#ci$al Mai#, e# cualuie $ate del $&?a)a se @ace us&de ellas, estas 0aia>les s usadas e# t&d& el $&?a)a!aria*les Locales: S las 0aia>les ue s&la)e#te s de=i#idasde#t& de las Fu#cies, tie#e# u#a 0ida li)itada, 0a desde el$i#ci$i& e# ue el usuai& l& declaa 9 se destu9e cua#d& te)i#ael >l&ue de c"di?& escit& $& el $&?a)ad& se dis$e de la)e)&ia #ecesaia s"l& cua#d& se #ecesite la 0aia>le l&cal!
Las Csta#tes 9 las aia>les s utili.adas e# la e#tada 9 salidade dat&s!
1.3. Constantes y Variables
-
7/23/2019 introducion al lenguaje c
25/40
Declaraci'n de aria*les
ti$& de dat& N&)>e de 0aia>le P al& i#icial
ti$& de dat& N&)>ea1, N&)>ea*, ``` Eje#$lo:Dat&s E#te&s i#tle!?ets 6 /e)ite i#?esa cade#as de tet&!La =u#ci"# scan& euiee de 0aia>les de ti$& /u#te&, #&0aia>les ce#ciales de#t& de u# $a#tesis!
Reglas del "can&: C&l&ue u# W a#tes de l&s #&)>es de 0aia>les! N& c&l&ue el W $aa #&)>es de ae?l&s! El W a)$esa#d es u# $u#te&! Asu)e c&)& te)i#aci"# el $i)e es$aci& e# >la#c& & la tecla
E#te!Reglas del ets: Asu)e c&)& te)i#aci"# la tecla E#te!
1.. Entrada!"alida de Datos
-
7/23/2019 introducion al lenguaje c
28/40
Entrada8"alida de Datos
E:e)$l&< Ingreso de Datos 6scan&7:
$i#t=QI#?ese u# #)e&< sca#=Q[d,W#u)sca#=Q[=,W0asca#=Q[c,W0asca#=Q[s,0a Ingreso de Datos 6scan& y gets7:$i#t=QI#?ese su #&)>e< Qsca#=Q[s,#&)>?ets#&)> "alida de Datos 6$rint&7:
$i#t=Qcade#a de ct&l, 0a1, 0a* 2 $i#t=QSu #&)>e es< [s, #&)> Asu)e< A#->al "alida de Datos 6gets7:
?ets#&)> Asu)e< A#->al Sea#&
Ingrese su nombre:Anbal Serrano
Su nombre es: Anbal
Su nombre es: Anbal Serrano
-
7/23/2019 introducion al lenguaje c
29/40
Cadenas de Control
Ctie#e l&s ti$&s de dat&s 9 =&)as de )&stalas!
[d, [i
El dat& se csidea ti$& e#te& i#t![=El dat& se csidea ti$& eal & =l&at![cEl dat& se csidea ti$& caacte c@a![sEl dat& se csidea ti$& cade#a c@a![ldEl dat& se csidea ti$& e#te& la?& l? i#t!
[l=El dat& se csidea ti$& eal la?& d&u>le![uDeci)al si# si?#& u#si?#ed deci)al![@E#te& c&t& s@&t i#t![&Octal!
[
Headeci)al![eN&taci"# Cie#t-=ica![$/u#te&![[I)$i)e /&ce#ta:e!
-
7/23/2019 introducion al lenguaje c
30/40
Eje#$lo:
i#t i P : P 1+=l&at c P 41!14, d P 4!1/7 $rint&6Gd d & &, i, j, c, d7J
/ANTALLA< 1+ 41!14 4!1)7 $rint&6GiKd, jKd, cK&, dK&, i, j, c, d7J
/ANTALLA< iP, :P1+, cP41!14, dP4!1=7 $rint&6G.)&, c7J
/ANTALLA< 41!17 $rint&6GEl alor de c es .=&, c7J
/ANTALLA< El 0al& de c es 41!15
-
7/23/2019 introducion al lenguaje c
31/40
Entrada8"alida de Datos 6=7
Casos Es$eciales:
/7 uego de Ins$ecci'n:De=i#e u# c:u#t& de caacteesue $uede leese utili.a#d& sca#=!ACBs:A, 3 9 C s l&s #ic&s caactees ue $uede lee,al e#cta u#& di=ee#te =i#ali.a c u# 0al& #ul&!
A0NBs:Ta)>i# $uede# se a#?&s de caacte, e# estecas&, s&l& ace$ta )a9sculas!
)7 uego Inerso: Au- se declaa# ue caactees NO$uede t&)a c la =u#ci"# sca#=, se utili.a el cicu#=le:&, ue ace$ta cualuie caacte )e#&s l&s i#dicad&s!OPnBs:Ace$ta cualuie caacte )e#&s u# salt& de l-#ea!OQ0Bs:Ace$ta cualuie caacte )e#&s del + al 4!sca#=[+64bs, edad
-
7/23/2019 introducion al lenguaje c
32/40
-$eradores y Ex$resiones
Ait)ticas O$ead&es Ait)tic&s
Ex$resiones O$ead&es Relaciales
L"?icas O$ead&es L"?ic&s
O$ead&es Ait)tic&s< I)$lica# u#a l"?ica ait)tica, usa#
0al&es E#te&s 9(& 0al&es Reales! O$ead&es Relaciales< I)$lica# u#a c&)$aaci"# & elaci"#
e#te * & );s 0aia>les 9(& 0al&es! O$ead&es L"?ic&s< I)$lica# u#a l"?ica dete)i#ada de sus
&$ead&es!
1.#. Operadores y E$presiones
-
7/23/2019 introducion al lenguaje c
33/40
-$eradores de Asignaci'n
L&s &$ead&es de asi?#aci"# ?e#eal)e#te usa# el si?#& P
E:e)$l& P c P
Ta)>i# se $&d-a de=i#i P , c P -tros -$eradores:
P a P > a P a >6P a 6P > a P a 6 >
VP a VP > a P a V >(P a (P > a P a ( >[P a [P > a P a [ >
-
7/23/2019 introducion al lenguaje c
34/40
i#t sueld& P 1+++
sueld& P ++ sueld& P sueld& ++sueld& P 1++se)a#al (P 5 se)a#al P se)a#al ( 5a P a 1 a" a
a P a 1 a66 " 66a /ANTALLA /ANTALLA
!
"
!
#
"
a $ !%
print&'Q[dQ, a(%a))%
print&'Q[dQ, a(%a))%print&'Q[dQ, a(%
a $ !%
print&'Q[dQ, a(%a))%
print&'Q[dQ, a(%a))%print&'Q[dQ, a(%
-
7/23/2019 introducion al lenguaje c
35/40
Asignaci'n ooleana
1 P edad
+ P Fals&i#t edad, )a9&edad, :&0e#3osi*ilidades:
1 P Es )a9& de edad! 1 P Edad e#te 1 a 17!)a9&edad :&0e#
+ P N& es )a9& de edad! + P N& est; e# el a#?&!
$i#t=GI#?ese su edade; i#?esa el #&)>e del clie#te, #)e& detel=& 9 la ca#tidad de )i#ut&s e# lla)adas, esta>lecid&s as-< Lla)adas L&cales g+,1 )i#ut& Lla)adas /&0i#ciales g+,* )i#ut& Lla)adas a Celulaes g+,+ )i#ut&
Lla)adas I#te#aciales g+,7+ )i#ut&Lue?& $ese#ta l&s su>t&tales $& cada ti$& de lla)adas 9 el T&tal a/a?a! Ejercicio V:
Realice u# $&?a)a ue $e)ita calcula la c&)isi"# ue eci>e u#
0e#ded& cua#d& @a eali.ad& 0e#tas su$ei&es a g1+++, c u#$&ce#ta:e del 1[ del t&tal de las 0e#tas cas& ctai& si #& alca#.aesas 0e#tas, #& te#d; c&)isi"#!
-
7/23/2019 introducion al lenguaje c
40/40
LOGO
*Pre!ntas+
Programacin Avanzada