Tipos de Datos PrimitivosSurgen por la necesidad de una clasificación muy específica de la información en un programade co...
Sentencias*Selección o Condicional (If y Switch)*Iteración (While, For y Do-While)*Salto (break, goto y return)*Etiquetado...
una sentencia else siempre se refiere al if mas proximo que este en el mismo bloque que el elsey que no esté ya asociado c...
else y=200;SwitchSentencia de selección múltiple que compara sucesivamente el valor de una expresión con unalista de const...
case 4:anula(&P);                           break;                   case 5:printf("La Pila es:");                        ...
For(; ; ){         C = getchar();         If (C ==’A’) break;}printf(“Has pulsado una A”);Sin embargo. No se garantiza el ...
Int caificaciones[100];Todos los arrays tiene el cero como indice de su primer elemento. Por tanto cuando se declaraChar p...
Longitudes: 4 4Las cadenas son igualesholaholaEsta es una pruebaArrays BidimensionalesUn array bidimensional es esencialme...
C A              F    EV E              R    D       EG R              I    SCódigos ASCII (0-127).   Carácteres no imprim...
neg acknowledge    2   1   N   5   3   5   8   5   U   1   7   u                   1   5   A   3   5       5   5       1  ...
neg acknowledge    2   1   N   5   3   5   8   5   U   1   7   u                   1   5   A   3   5       5   5       1  ...
neg acknowledge    2   1   N   5   3   5   8   5   U   1   7   u                   1   5   A   3   5       5   5       1  ...
Próxima SlideShare
Cargando en…5
×

Repaso c

225 visualizaciones

Publicado el

Publicado en: Educación
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
225
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
2
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Repaso c

  1. 1. Tipos de Datos PrimitivosSurgen por la necesidad de una clasificación muy específica de la información en un programade computadora estableciendo rangos de valores.Consisten de un conjunto de valores y un conjunto de operaciones aplicables a dichos valores.Char,int,float,double y void.Tipo Tamaño aproximado en bits Rangochar 8 -127 a 127unsigned char 8 0 a 255int 16 -32,767 a 32,767unsigned int 16 0 a 65,535long int 32 -2,147,483,647 a 2,147,483,647unsigned long int 32 0 a 4,294,967,295float 32 6 digitos de precisiondouble 64 10 digitos de precisionlong double 128 10 digitos de precisionIdentificadoresLos nombres de las variables, funciones, etiquetas y otros objetos definidos por el usuario se conocen comoidentificadores.El primer caracter debe ser una letra o un simbolo de subrayado y los siguientes pueden serletras, numeros o simbolos de subrayado.Correctos Incorrectoscont 1contprueba23 hola!balance_total balance..totalMayusculas y minusculas son distintas por lo que Cuenta,cuenta y CUENTA son 3 identificadoresdistintos. No debe coincidir con una palabra clave o reservada.Variables.Posición de memoria con nombre que se usa para mantener un valor que puede ser modificado por elprograma. Se tiene que declarar antes de ser utilizada. La forma general es:tipo lista_de_variables;Tipo debe ser valido en C, y lista_de_variables en uno o mas nombres separados por comas. Ejemplo:int i,j,k;double balance,beneficio,perdida;Ejemplo Inicializaciónchar ch=a;int primero = 0;float balance=123.23;Existen tres sitios basicos donde se pueden declarar: dentro de las funciones(locales), en la definicion deparametros de funciones(parámetros formales) y fuera de todas las funciones(globales). 1
  2. 2. Sentencias*Selección o Condicional (If y Switch)*Iteración (While, For y Do-While)*Salto (break, goto y return)*Etiquetado (case, default)Verdadero y Falso en Cuchas sentencias de C se basan en una prueba condicional que determina la acción que se ha de llevar acabo. Una expresión condicional tiene como resultado un valor cierto o falso. En C cualquier valor distintode cero es cierto, incluyendo los numeros negativos. El 0 es el único valor falso. Este enfoque permitecodificar de forma extremadamente eficiente muchos tipos de rutinas.Ejemplovoid main(void){ int a,b;printf("Introduzca 2 numeros:");scanf("%d%d", &a, &b);if (b) printf("%dn", a/b);else printf ("No se puede dividir entre cero");}Sentencias de Selección IFLa forma general es if(expresion) sentencia; else sentencia;donde sentencia puede ser simple o un bloque de sentencias. la claúsula else es opcional.Si la expresion del if es cierta, se ejecuta la sentencias o bloque de sentencias que constituyen el objetivodel if, en otro caso se ejecuta el else(si existe). Nunca se ejecutan ambos. Ejemplo:void main (){ int magico, intento;magico=rand();printf("Adivine el numero magico:");scanf("%d", &intento);if(intento==magico) printf("Adivinaste el número magico...!!");else printf("Incorrecto...Intenta de nuevo");}IFS AnidadosUn if anidado es un if que es el objeto de otro if o else. Los ifs anidados son muy comunes. En C 2
  3. 3. una sentencia else siempre se refiere al if mas proximo que este en el mismo bloque que el elsey que no esté ya asociado con un if.Ejemploif ( i ){ if ( j ) sentencia 1; if (k ) sentencia 2; /* este if esta*/ else sentencia 3; /* asociado con este else*/}else sentencia 4; /* asociado con if (i) */La escala If-Else-IfLas condiciones se evaluan de arriba abajo. Tan pronto como se encuentre una condición cierta, se ejecutala sentencia asociada con ella y se pasa por alto el resto de la escala. Si ninguna de las condiciones escierta, se ejecuta el else final. Si no hay else final, no tiene lugar ninguna accion si todas las condicionesson falsas.if ( expresion) sentencia;else if( expresion) sentencia; else if ( expresion) sentencia;... else sentencia;La alternativaSe puede usar el operador ? para remplazar las sentencias if-else. Es un operador ternario y tiene la forma:Exp1?Exp2:Exp3 donde Exp1, Exp 2 y Exp3 son expresiones. observe el uso y la posicion de los dospuntos.El valor de una expresion con ? se determina de esta forma:Se evalua Exp1, si es cierta se evalua Exp2 y se convierte en el valor de la expresion completa. Si Exp1 esfalsa, se evalua Exp3 y su valor se convierte en el valor de la expresion completa.Ejemplox=10;y= x>9?100:200;En este ejemplo a y se le asigna el valor de 100. Si x hubiera sido menor que 9, habria recibido el valor de200.utiizando if-elsex=10;if ( x>9) y=100; 3
  4. 4. else y=200;SwitchSentencia de selección múltiple que compara sucesivamente el valor de una expresión con unalista de constantes enteras o de caracteres. Cuando se encuentra una correspondencia, seejecutan las sentencias asociadas con la constante.switch (expresion){ case constante1: secuencia de sentencias break; case constante2: secuencia de sentencias break; case constante3: secuencia de sentencias break; . . . default: secuencia de sentencias}La sentencia default se ejecuta si no se ha encontrado ninguna correspondecia, es opcional y sino esta presente, no se ejecuta ninguna accion al fallar todas las comprobaciones.En ANSI C , una sentencia switch debe poder tener al menos 257 sentencias case, en C++16,384.Cuando se encuentra un break, la ejecucion del programa salta a la linea de codigo que sigue ala sentencia switch. pero la sentencia break es opcional.Ejemplodo{ clrscr(); printf ("***********Menu Principal*********** nn"); printf ("1-Agregar a la Pila n"); printf ("2-Suprimir de la Pila n"); printf ("3-Tope de la Pila n"); printf ("4-Anula la Pila n"); printf ("5-Imprime Pilann"); printf ("6-Salir nn"); printf ("Seleccione una opcionn"); scanf("%d",&opc); switch(opc){ case 1:printf("Dame el numero a insertar"); scanf("%d",&num); inserta(num,&P); break; case 2:suprimir(&P); getch(); break; case 3:printf("El tope es: %dn",tope(&P)); getch(); break; 4
  5. 5. case 4:anula(&P); break; case 5:printf("La Pila es:"); imprime(&P); getch(); }} while(opc!=6);Sentencias Switch AnidadasSe puede tener un switch formando parte de la secuencia de sentencias de otro switchswitch (X){ case 1: switch (y) { case 0: printf( " Error de division por cero"); break(); case 1: procesar(x,y); } break(); case 2: . .Sentencias de IteracionLas sentencias de iteración permiten que un conjunto de instrucciones sea ejecutado hasta quese alcanze una cierta condicion.El Bucle ForFor(inicializacion;condicion;incremento) sentencia;La inicializacion normalmente es una sentencia de asignación que se utiliza para iniciar lavariable del control del bucle. La condicion es una expresión relacional que determina cuandofinaliza el bucle. El incremento define como cambia la variable de control cada vez que se repiteel bucle. Estas tres secciones deben estar separadas por punto y coma. El bucle continuaejecutándose mientras la condicion sea cierta. Una vez que la condicion se hace falsa, laejecucion del programa sigue por la sentencia sigue al for.EjemploInt x;For(x=1; x<=100; x++) Printf(“%d”, x);For InfinitoComo no se necesita ninguna de las tres expresiones que constituyen el bucle for, se puedeconseguir que el bucle no tenga fin dejando la expresión condicional vacia. Cuando falta lacondicion, se asume que es cierta. 5
  6. 6. For(; ; ){ C = getchar(); If (C ==’A’) break;}printf(“Has pulsado una A”);Sin embargo. No se garantiza el bucle infinito, ya que la sentencia de C break, cuando seencuentra en cualquier lugar dentro del cuerpo de un bucle, da lugar a la terminación inmediata.El Bucle WhileWhile (condicion) sentencia;La condicion puede ser cualquier expresión y cualquier valor distinto de 0 es cierto. El bucleitera mientras la condicion es cierta.EjemploChar c;While (C ¡= ‘A’) C = getchar();El Bucle Do-WhileA diferencia de lo bucles for y while, que analizan la condicion del bucle a principio del mismo, elbucle do-while analiza la condicion al final del bucle. Esto significa que siempre se ejecuta almenos una vez.Do{ Sentecia;} while(condicion);Itera hasta que la condicion se hace falsa. El sig ejemplo lee los numeros del usuario hasta queencuentra un numero menor o igual a 100.Do{ Scanf(“%d”, &num);} while(num >100) ;ARRAYSUn array es una coleccion de variables del mimo tipo que se referencian por un nombre comun. A unelemento especifico de un array se accede mediante un indice. En C todos los arrays constan deposiciones de memoria contiguas. La dirección mas baja corresponde al primer elemento y la mas alta alultimo elemento.Un array puede tener de una a varias dimensiones, el mas comun es la cadena, que simplemente es unarray de caracteres terminado por un nulo.Tienen que declararse explícitamente para que asi el compilador pueda reservar espacio en memoria.Tipo nombre_de_array[tamaño]; 6
  7. 7. Int caificaciones[100];Todos los arrays tiene el cero como indice de su primer elemento. Por tanto cuando se declaraChar p[10];Se esta declarando un array de caracteres que tiene 10 elementos, desde p[0] hasta p[9].Int x[100];Int t;For(t=0;t<100 ; t++) x[t] = t ;La cantidad de memoria requerida para guardar un array esta directamente relacionada con su tipo y sutamaño. Para un array unidimensional, el tamaño total en bytes se calcula:Total de bytes= sizeof(tipo) * tamaño del arrayNote: C no comprueba los limites del array. Se puede pasar cualquier extremo de un array y escribir enalguna otra variable.CadenasUna cadena se define como un array de caracteres que terminan en un carácter nulo. Un carácter nulo seespecifica como ‘/0’ y generalmente es un cero. Por esta razon es necesario que sean de un carácter másque la cadena mas larga que pueda contener.C incluye una gran variedad de funciones de manejo de cadenas. Se encuentran en STRING.HStrcpy(c1,c2) Copia C2 en C1Strcat(c1,c2) Concatena C2 al final de C1Strlen(C1) Devuelve la longitud de C1Strcmp(c1,c2) Devuelve 0 si c1 y c2 son iguales, menor que 0 si c1<c2 y mayor que 0 si c1>c2.EjemploChar c1[80],c2[80];gets(c1);gets(c2);printf(“longitudes: %d %dn” strlen(c1), strlen(c2) );if (!strcmp(c1,c2)) printf(“Las cadenas on iguales”);strcat(c1,c1);printf(“%sn”,c1);strcpy(c1,”Esta es una prueba.”);printf(c1);Resultado: 7
  8. 8. Longitudes: 4 4Las cadenas son igualesholaholaEsta es una pruebaArrays BidimensionalesUn array bidimensional es esencialmente un array de arrays unidimensionales. Para declarar un array d de enterosbidimensional de tamaño 10,20 se escribiria.Int d[10] [20];Para acceder al punto 1,2 del array d, se escribiria..d[1][2];En el sig Ejemplo num[0][0] tiene el valor 1, num [0][1] tiene el valor 2...Se almacenan en matrices fila-columna, en las que el primer indice indica la fila y el segundo indica la columna.Num [fila] [columna] 0 1 2 31 2 3 45 6 7 89 10 11 12Bytes = tamano primer indice *tamano segundo indice * sizeof(tipo base)Array de CadenasPara crear un array de cadenas, se utiliza un array de caracteres bidimensional. El tamaño del índice izquierdodetermina el número de cadenas y el tamaño del índice derecho específica la longitud máxima de cada cadena.Ejemplo:Declara un array de 10 cadenas, cada una con una longitud máxima de 20 caracteres,char array_cad[10] [20];Es fácil acceder a una cadena individual, simplemente se especifica solo el índice izquierdo.Ejemplo:Gets(array_cad[2]);0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19A M A R I L L OA N A R A N J A D OV I O L E T AA Z U LN E G R OB L A N C OR O S A 8
  9. 9. C A F EV E R D EG R I SCódigos ASCII (0-127). Carácteres no imprimibles Carácteres imprimibles D D D D H C H Ca H C H CNombre e e e e e a e r. e a e a c c c c x r. x x r. x r.Nulo 0 0 N 3 2 Esp 6 4 @ 9 6 ` 0 U 2 0 acio 4 0 6 0 LInicio de cabecera 1 0 S 3 2 ! 6 4 A 9 6 a 1 O 3 1 5 1 7 1 HInicio de texto 2 0 S 3 2 " 6 4 B 9 6 b 2 T 4 2 6 2 8 2 XFin de texto 3 0 E 3 2 # 6 4 C 9 6 c 3 T 5 3 7 3 9 3 XFin de transmisión 4 0 E 3 2 $ 6 4 D 1 6 d 4 O 6 4 8 4 0 4 T 0enquiry 5 0 E 3 2 % 6 4 E 1 6 e 5 N 7 5 9 5 0 5 Q 1acknowledge 6 0 A 3 2 & 7 4 F 1 6 f 6 C 8 6 0 6 0 6 K 2Campanilla (beep) 7 0 B 3 2 7 4 G 1 6 g 7 E 9 7 1 7 0 7 L 3backspace 8 0 B 4 2 ( 7 4 H 1 6 h 8 S 0 8 2 8 0 8 4Tabulador 9 0 H 4 2 ) 7 4 I 1 6 ihorizontal 9 T 1 9 3 9 0 9 5Salto de línea 1 0 L 4 2 * 7 4 J 1 6 j 0 A F 2 A 4 A 0 A 6Tabulador vertical 1 0 V 4 2 + 7 4 K 1 6 k 1 B T 3 B 5 B 0 B 7Salto de página 1 0 F 4 2 , 7 4 L 1 6 l 2 C F 4 C 6 C 0 C 8Retorno de carro 1 0 C 4 2 - 7 4 M 1 6 m 3 D R 5 D 7 D 0 D 9Shift fuera 1 0 S 4 2 . 7 4 N 1 6 n 4 E O 6 E 8 E 1 E 0Shift dentro 1 0 S 4 2 / 7 4 O 1 6 o 5 F I 7 F 9 F 1 F 1Escape línea de 1 1 D 4 3 0 8 5 P 1 7 pdatos 6 0 L 8 0 0 0 1 0 E 2Control dispositivo 1 1 D 4 3 1 8 5 Q 1 7 q1 7 1 C 9 1 1 1 1 1 1 3Control dispositivo 1 1 D 5 3 2 8 5 R 1 7 r2 8 2 C 0 2 2 2 1 2 2 4Control dispositivo 1 1 D 5 3 3 8 5 S 1 7 s3 9 3 C 1 3 3 3 1 3 3 5Control dispositivo 2 1 D 5 3 4 8 5 T 1 7 t4 0 4 C 2 4 4 4 1 4 4 6 9
  10. 10. neg acknowledge 2 1 N 5 3 5 8 5 U 1 7 u 1 5 A 3 5 5 5 1 5 K 7Sincronismo 2 1 S 5 3 6 8 5 V 1 7 v 2 6 Y 4 6 6 6 1 6 N 8Fin bloque 2 1 E 5 3 7 8 5 W 1 7 wtransmitido 3 7 T 5 7 7 7 1 7 B 9Cancelar 2 1 C 5 3 8 8 5 X 1 7 x 4 8 A 6 8 8 8 2 8 N 0Fin medio 2 1 E 5 3 9 8 5 Y 1 7 y 5 9 M 7 9 9 9 2 9 1Sustituto 2 1 S 5 3 : 9 5 Z 1 7 z 6 A U 8 A 0 A 2 A B 2Escape 2 1 E 5 3 ; 9 5 [ 1 7 { 7 B S 9 B 1 B 2 B C 3Separador 2 1 F 6 3 < 9 5 1 7 |archivos 8 C S 0 C 2 C 2 C 4Separador grupos 2 1 G 6 3 = 9 5 ] 1 7 } 9 D S 1 D 3 D 2 D 5Separador 3 1 R 6 3 > 9 5 ^ 1 7 ~registros 0 E S 2 E 4 E 2 E 6Separador 3 1 U 6 3 ? 9 5 _ 1 7 Dunidades 1 F S 3 F 5 F 2 F E 7 L 10
  11. 11. neg acknowledge 2 1 N 5 3 5 8 5 U 1 7 u 1 5 A 3 5 5 5 1 5 K 7Sincronismo 2 1 S 5 3 6 8 5 V 1 7 v 2 6 Y 4 6 6 6 1 6 N 8Fin bloque 2 1 E 5 3 7 8 5 W 1 7 wtransmitido 3 7 T 5 7 7 7 1 7 B 9Cancelar 2 1 C 5 3 8 8 5 X 1 7 x 4 8 A 6 8 8 8 2 8 N 0Fin medio 2 1 E 5 3 9 8 5 Y 1 7 y 5 9 M 7 9 9 9 2 9 1Sustituto 2 1 S 5 3 : 9 5 Z 1 7 z 6 A U 8 A 0 A 2 A B 2Escape 2 1 E 5 3 ; 9 5 [ 1 7 { 7 B S 9 B 1 B 2 B C 3Separador 2 1 F 6 3 < 9 5 1 7 |archivos 8 C S 0 C 2 C 2 C 4Separador grupos 2 1 G 6 3 = 9 5 ] 1 7 } 9 D S 1 D 3 D 2 D 5Separador 3 1 R 6 3 > 9 5 ^ 1 7 ~registros 0 E S 2 E 4 E 2 E 6Separador 3 1 U 6 3 ? 9 5 _ 1 7 Dunidades 1 F S 3 F 5 F 2 F E 7 L 10
  12. 12. neg acknowledge 2 1 N 5 3 5 8 5 U 1 7 u 1 5 A 3 5 5 5 1 5 K 7Sincronismo 2 1 S 5 3 6 8 5 V 1 7 v 2 6 Y 4 6 6 6 1 6 N 8Fin bloque 2 1 E 5 3 7 8 5 W 1 7 wtransmitido 3 7 T 5 7 7 7 1 7 B 9Cancelar 2 1 C 5 3 8 8 5 X 1 7 x 4 8 A 6 8 8 8 2 8 N 0Fin medio 2 1 E 5 3 9 8 5 Y 1 7 y 5 9 M 7 9 9 9 2 9 1Sustituto 2 1 S 5 3 : 9 5 Z 1 7 z 6 A U 8 A 0 A 2 A B 2Escape 2 1 E 5 3 ; 9 5 [ 1 7 { 7 B S 9 B 1 B 2 B C 3Separador 2 1 F 6 3 < 9 5 1 7 |archivos 8 C S 0 C 2 C 2 C 4Separador grupos 2 1 G 6 3 = 9 5 ] 1 7 } 9 D S 1 D 3 D 2 D 5Separador 3 1 R 6 3 > 9 5 ^ 1 7 ~registros 0 E S 2 E 4 E 2 E 6Separador 3 1 U 6 3 ? 9 5 _ 1 7 Dunidades 1 F S 3 F 5 F 2 F E 7 L 10

×