Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
"Arreglos y Cadenas"
P rogramacin C
Alberto Pacheco apacheco@itchihuahua.edu.mx
(2/May/2007 2:54pm)
Presentacin hecha en ExpoVision, Alberto Pacheco, Ver 1.0.55, MEXICO D.R. 2013
"Arreglos y Cadenas" por Alberto Pacheco bajo licencia Creative Commons Reconocimiento-NoComercialCompartirIgual 3.0 Unported.
Contenido
Atrs Sig
M a p aC o n c e p t u a l 1 .T i p o sd eD a t o sD e r i v a d o s 2 .A r r e g l o s 4 .A r r e g l o sB i d i m e n s i o n a l e s 5 .J u e g oA d i v i n ac o nA r r e g l o s 6 .C a d e n a s 7 .L i b r e r as t r i n g . h 8 .E j e m p l o sp a r aC a d e n a s 1 0 .A m b i t o( S c o p e ) 1 2 .A r r e g l o sd eC a d e n a s 1 3 .s p r i n t f :C o n v e r s i nd en m e r o sac a d e n a s Referencias
(1/13)
[Inicio] [Final]
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] >>
[Ref] [CSS]
Tipos de Datos
Primitivos (TDP) : Datos que saben procesar los operadores de Lenguaje C, e.g. c h a r ,i n t ,d o u b l e . . Derivados (TDD): Se basan en los TDP, tienen muy pocos operadores
Arreglos Cadenas
Apuntadores Estructuras
(2/13)
[Inicio] [Final]
<< [1]
Arreglos
[2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] >>
e.g.
i n tx [ ]={ 2 , 4 , 6 , 8 } ;
(3/13)
[Inicio] [Final]
<< [1] [2]
Arreglos
[3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] >>
/ /a r r a y 1 . c :I m p r i m eys u m at o d o sl o se l e m e n t o sd e la r r e g l o # i n c l u d e< s t d i o . h > # d e f i n eT A M6 v o i dm a i n ( ) { i n tm [ T A M ]={7 5 ,8 0 ,7 2 ,9 1 ,8 3 ,8 7} ; i n ti ,s u m=0 ; f o r(i = 0 ;i < T A M ;i + +){ p r i n t f ( " m [ % d ] = % d \ n " , i , m [ i ] ) ; s u m+ =m [ i ] ; } p r i n t f ( " S u m=% d \ n " ,s u m ) ; }
(4/13)
[Inicio] [Final]
Arreglos Bidimensionales
<< [1] [2] [3]
[4] [5] [6] [7] [8] [9] [10] [11] [12] [13] >>
[Ref] [CSS]
/ /a r r a y 2 . c :I m p r i m eys u m ad a t o st a b l a2 x 3 # i n c l u d e< s t d i o . h > # d e f i n eR O W S2 # d e f i n eC O L S3 v o i dm a i n ( ) { i n tm [ R O W S ] [ C O L S ]={{ 1 1 , 1 2 , 1 3 } ,{ 2 1 , 2 2 , 2 3 }} ; i n ti ,j ,s u m=0 ; f o r(i = 0 ;i < R O W S ;i + +){/ /C a d ar e n g l n f o r(j = 0 ;j < C O L S ;j + +){/ /C a d ac o l u m n a p r i n t f ( " m [ % d ] [ % d ] = % d \ n " , i , j , m [ i ] [ j ] ) ; s u m+ =m [ i ] [ j ] ; } } p r i n t f ( " S u m=% d \ n " ,s u m ) ; }
(5/13)
[Inicio] [Final]
[5] [6] [7] [8] [9] [10] [11] [12] [13] >>
[Ref] [CSS]
/ /a d i v _ a r r a y 2 . c :J u e g oA d i v i n ac o nA r r e g l o sB i d i m e n s i o n a l e s
# i n c l u d e" adivina.h"
s t a t i ci n tN I V [ 3 ] [ 2 ]={{ 1 5 , 1 0 0 } ,{ 1 2 , 1 0 0 0 } ,{ 1 0 , 4 0 0 0 }} ;
m a i n ( ) { i n to c u l t o ,n u m ,i ,o p c ,o p o r t ,r a n g o ; d o{/ /R e p e t i rj u e g o d o{/ /R e p e t i rL e e rN i v e l p r i n t f ( " \ n \ n A D I V I N AU NN U M E R O ! ! \ n \ n Q u n i v e ld e s e a sj u g a r ? " ) ; p r i n t f ( " \ n \ t 1 )N o v a t o \ n \ t 2 )I n t e r m e d i o \ n \ t 3 )A v a n z a d o \ n " ) ; g e t _ n u m ( o p c ) ; }w h i l e(o p c < 1| |o p c > 3) ; o p c ;/ /A r r a yi n d e x :0 2 o p o r t=N I V [ o p c ] [ 0 ] ; r a n g o=N I V [ o p c ] [ 1 ] ; p r i n t f ( " \ n \ n A D I V I N AN U M E R O1-% d " , o p o r t ) ; p r i n t f ( " \ n E N% dO P O R T U N I D A D E S \ n " , r a n g o ) ; r a n d o m i z e ( ) ; o c u l t o=1+r a n d o m ( r a n g o ) ; f o r(i = 1 ;i < = o p o r t ;i + +){/ /R e p e t i rI n t e n t o p r i n t f ( " \ n % d )" , i ) ; g e t _ n u m ( n u m ) ; i f(n u m= =o c u l t o)b r e a k ; i f(n u m>o c u l t o) p r i n t f ( " \ n A N O T AU NN U M E R Om e n o r " ) ; e l s e p r i n t f ( " \ n A N O T AU NN U M E R OM A Y O R " ) ; }/ / f o r i f(n u m= =o c u l t o) p r i n t f ( " \ n \ n F E L I C I D A D E S !G A N A S T EE N% dI N T E N T O S " , i ) ; e l s e p r i n t f ( " \ n \ n A G O T A S T EO P O R T U N I D A D E S .M IN U M E R O = % d " , o c u l t o ) ; p r i n t f ( " \ n \ n D e s e a sv o l v e raj u g a r( S I = 1 ,N O = 0 ) ? \ n " ) ; g e t _ n u m ( o p c ) ;/ /T u r b oCB U G ? ? }w h i l e(o p c) ; f i n ( ) ; }
(6/13)
[Inicio] [Final]
<< [1] [2] [3] [4] [5]
Cadenas
[6] [7] [8] [9] [10] [11] [12] [13] >>
c h a r
Excepcin: Por comodidad, la constante tipo cadena es la nica constante TDD que soporta C, en vez de c h a rx [ ] = { ' H ' , ' i ' , ' \ 0 ' } ;se usa c h a rx [ ] = " H i " ; Fin-de-cadena (eos): El tamao del arreglo, i.e. cadena, debe considerar un espacio adicional al final del arreglo para colocar un eos, i.e. caracter ' \ 0 ' Librera Cadenas string.h: Dado que no existen operadores para arreglos y cadenas, existe la librera < s t r i n g . h >para copiar, comparar y procesar cadenas en general.
(7/13)
[Inicio] [Final]
Librera string.h
<< [1] [2] [3] [4] [5] [6]
[Ref] [CSS]
(8/13)
[Inicio] [Final]
[Ref] [CSS]
(9/13)
[Inicio] [Final]
Cadenas
<< [1] [2] [3] [4] [5] [6] [7] [8]
/ /c a d e n a s 2 . c :I n v i e r t eu n ac a d e n a( v e r s i n# 2 ) # i n c l u d e< s t d i o . h > / /p u t c h a rp r i n t fp u t s # i n c l u d e< s t r i n g . h >/ /s t r l e ns t r c p ys t r l w r c h a rt e c [ 9 9 ] ,c e t [ 9 9 ] ;/ /G l o b a l e s v o i de j e m p l o ( ){ i n ti , j , k ; k=s t r l e n ( t e c ) ; f o r( i = k 1 , j = 0 ;i > = 0 ;i , j + + ) c e t [ j ]=t e c [ i ] ; c e t [ k ] = ' \ 0 ' ; } v o i dm a i n ( ){ s t r c p y ( t e c , " I T C H I H U A H U A " ) ; e j e m p l o ( ) ;/ / E n t r a d a : t e c ,S a l i d a : c e t p r i n t f ( " % s= >% s \ n " , t e c , s t r l w r ( c e t ) ) ; }
(10/13)
[Inicio] [Final]
Ambito (Scope)
<< [1] [2] [3] [4] [5] [6] [7] [8] [9]
[Ref] [CSS]
Contexto, Ambito, Alcance, Visibilidad o Scope: En lenguaje C, una variable "vive" dentro de un contexto o tiene cierto alcance, i.e.
scope
(11/13)
[Inicio] [Final]
Ambito (Scope)
<< [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]
[Ref] [CSS]
Contexto Global: Variables pblicas a nivel de programa (archivo) disponibles en toda funcin
Estan fuera de todo bloque, se declaran fuera y antes que las funciones Su duracin es la del programa, desde que arranca su ejecucin hasta que ejecuta la ltima sentencia Precaucin: Cualquier sentencia de cualquier funcin puede alterar la variable, lo cual puede ocasionar problemas por errores de programacin Ejemplo: Qu imprime el sig. programa? los cambios hechos en una funcin a una
variable afectan a las dems? porqu al ltimo, la variable yno cambi?
i n tx = 1 ,y = 2 ;/ / V a r i a b l e sG l o b a l e s
v o i df ( ){ p r i n t f ( " \ n x = % d ,y = % d " , x , y ) ; x = 3 ; }
v o i dg ( ){ i n ty = 3 ; p r i n t f ( " \ n x = % d ,y = % d " , x , y ) ; }
v o i dm a i n ( ){ f ( ) ;g ( ) ; p r i n t f ( " \ n x = % d ,y = % d " , x , y ) ; }
(12/13)
[Inicio] [Final]
Arreglos de Cadenas
<< [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
[Ref] [CSS]
(13/13)
[Inicio] [Final]
[13] >>
[Ref] [CSS]
/ /b o l e t a . c :C a l c u l aei m p r i m ep r o m e d i od eu ng r u p o( 4a l u m / 3e x a m )
# d e f i n eR4/ /R o w s :N o .A l u m n o s # d e f i n eC3/ /C o l s :N o .E x a m e n e s
v o i dm a i n ( ) { i n t i ,j ,s u m ,c a l [ R ] [ C ] = { { 1 0 , 7 , 9 } , { 8 , 9 , 8 } , { 7 , 8 , 9 } , { 0 , 6 , 9 } } ; c h a rs [ 9 9 ] ,r [ R ] [ 9 9 ] = { " " , " " , " " , " " } ,n o m [ R ] [ 9 ] = { " A n a " , " G i l " , " L i s " , " F e r " } ; m e m s e t ( s , ' ' , 3 2 ) ;s [ 3 2 ] = 0 ; p r i n t f ( " \ n |N o m b r e|U 1|U 2|U 3|P r o m| \ n % s " , s ) ; f o r(i = 0 ;i < R ;i + +){ f o r(j = s u m = 0 ;j < C ;j + +){/ /R e p o r t eys u m a t o r i a s u m+ =c a l [ i ] [ j ] ;/ /S u m a t o r i ac a l i f s p r i n t f ( s , "|% 2 d " , c a l [ i ] [ j ] ) ;/ /C o n v i e r t ec a l i fac a d e n a s t r c a t ( r [ i ] , ( c a l [ i ] [ j ] ? s : "|N P " ) ) ;/ /A n e x as i g .c a l i f } p r i n t f ( " \ n |% 5 s% s|% 4 . 1 f| " , n o m [ i ] , r [ i ] , ( ( f l o a t ) s u m / C ) ) ;/ /R e p o r t ea l u m } }
Referencias
[Inicio] [Final]
[ A r r e g l o s ] [ CA r r a y s ] [ CL i b r a r y ] [ C R e f e r e n c e ] [ C a d e n ad e t e x t o ] [ C a d e n a s ] [ L e n g u a j e C ] [ S c o p e ] [ T D P ] [ V a r i a b l e s L o c a l e s ] [ a d i v i n a . h ] [ l e n g u a j e C ] [ l i b r e r a e s t n d a r d ] [ s p r i n t f ] [ s t r i n g . h ]
The Open Group, "string.h library", The Single UNIX Specification, 1997.
h t t p : / / w w w . o p e n g r o u p . o r g / o n l i n e p u b s / 0 0 7 9 0 8 7 9 9 / x s h / s t r i n g . h . h t m l