Curso lenguaje c_segundo_modulo_

1,097 views
981 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,097
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
27
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Curso lenguaje c_segundo_modulo_

  1. 1. Curso Programando en Lenguaje C (Módulo I)
  2. 2. Características del Lenguaje C <ul><li>Algunas características del lenguaje C </li></ul><ul><li>Es un lenguaje de propósito general: Este lenguaje se ha utilizado para el desarrollo de aplicaciones tales como: hojas de cálculos, gestores de bases de datos, compiladores, sistemas operativos. </li></ul><ul><li>Es un lenguaje de medio nivel: Este lenguaje permite programar a alto nivel(pensando a nivel lógico y no en la máquina física) y a bajo nivel(con lo que se puede obtener la máxima eficiencia y un control absoluto del interior del PC) </li></ul><ul><li>Es un lenguaje portátil: Los programas escritos en C son fácilmente transportables a otros sistemas. </li></ul><ul><li>Es un lenguaje potente y eficiente: Usando C, un programador puede alcanzar la eficiencia de código ensamblador. </li></ul>
  3. 3. Proceso de Compilación Escribirlo en un Editor Compilarlo Enlazarlo Ejecutarlo
  4. 4. Primeros Pasos para Escribir un Programa en C <ul><li>Paso 1: Leer y entender el contexto del problema que requiere una solución mediante un programa de computadora. </li></ul><ul><li>Paso 2: Desarrollar un algoritmo para resolver el problema. </li></ul><ul><li>Paso 3: Verificar el algoritmo para su validez. </li></ul><ul><li>Paso 4: Convertir el algoritmo en lenguaje C. </li></ul><ul><li>Paso 5: Probar y verificar el programa C para su validez. </li></ul><ul><li>Ejemplo: Realizar un algoritmo que sume dos números enteros positivos y muestre el resultado de la suma. </li></ul><ul><li>Nota: Lo primero para desarrollar un programa en lenguaje C, es crear un archivo denominado archivo fuente con extensión “.cpp” en cualquier editor de texto conocido. </li></ul>
  5. 5. Estructura de un Programa <ul><li>Llamadas a bibliotecas </li></ul><ul><li>Declaración de funciones (prototipos de funciones) </li></ul><ul><li>Declaración de variables globales </li></ul><ul><li>Main(){ </li></ul><ul><li>Declaración de variables locales </li></ul><ul><li>sentencias </li></ul><ul><li>} </li></ul><ul><li>Definición de funciones </li></ul>
  6. 6. Variables y Sentencias <ul><li>La manera más simple de almacenar información es en una entidad llamada variable. </li></ul><ul><li>Las variables son los nombres que se le dan a las localidades en la memoria principal donde un elemento de dato puede almacenarse. Puede ser útil pensar en estas localidades de memoria como un conjunto de casillas que pueden contener algún dato. Todas estas casillas se deben poder referenciar de forma única. Por tanto, a éstas se le dan etiquetas simbólicas que se denominan nombres de variables. Un nombre de una variable solamente se refiere a una localidad en la memoria donde algún dato está almacenado. </li></ul>
  7. 7. Reglas en la Construcción de los Nombre de Variables <ul><li>Los nombres de variables siempre deben empezar con una letra, esto incluye al carácter “_”. Sin embargo es buena práctica de programación tener nombres de variables que empiecen con letras minúsculas (a-z). </li></ul><ul><li>Un nombre de variable puede estar formado por una secuencia de letras del alfabeto y/o dígitos de 0 al 9 y/o el carácter “_” (subrayado). </li></ul><ul><li>El estándar ANSI C establece que la variable puede ser de cualquier longitud, como por ejemplo abu_jafar_mohammed_ibn_musa_al_khawarizmi, pero sólo los primeros 31 caracteres son significativos. </li></ul><ul><li>No se permiten comas ni espacios en un nombre de varibale. </li></ul><ul><li>No se permite usar como nombre de variables, palabras reservadas por el lenguaje (int, enum, short, etc.) </li></ul><ul><li>El único carácter especial permitido en el nombre de una varibale es el subrayado </li></ul>
  8. 8. Más Acerca de las Declaraciones <ul><li>Cuando se declaran múltiples variables, no se necesita declararlas separadamente. Se puede combinar su declaración en una sola sentencia. </li></ul><ul><li>Existen diferentes tipos de datos, como por ejemplo int, float, char, entre otros. </li></ul><ul><li>Un buen programador debe escoger un nombre de variable que describa el propósito para el cual se usa la variable. </li></ul>Nota: ¿Qué pasaría si se intentara almacenar un valor no válido dentro de una variable declarada para almacenar un determinado tipo de dato? Tipo de Dato Valores Válidos Requerimientos Típicos de Memoria int 125, +253, -901 2 bytes float 3.141, -0.000256 4 bytes char A-Z o a-z, 0-9, @,#,$,%,& 1 byte
  9. 9. Comentarios en C <ul><li>Es cualquier información que se añade a su archivo fuente. </li></ul><ul><li>Los comentarios se usan para mejorar la legibilidad del programa. </li></ul><ul><li>Los comentarios son ignorados por el compilador. </li></ul><ul><li>Si desea comentar múltiples líneas se usa /* para empezar el comentario y */ para cerrar el comentario. </li></ul><ul><li>Si desea comentar una sola línea se usa //. </li></ul><ul><li>Los comentarios pueden ser usados para deshabilitar ciertas partes de un programa. </li></ul>
  10. 10. Función printf() <ul><li>Esta función se encuentra en la librería o archivo de cabecera stdio.h. </li></ul><ul><li>printf nos permite mostrar información. </li></ul><ul><li>printf retorna el numero de caracteres imprimidos. </li></ul><ul><li>printf nos permite hacer cálculos dentro de la función. </li></ul><ul><li>printf muestra el texto que se coloque dentro de doble comillas (“”) </li></ul><ul><li>printf requiere el carácter backslash – una secuencia de escape – para mostrar ciertos caracteres especiales. </li></ul><ul><li>printf puede mostrar variables usando cadenas de formato %. </li></ul><ul><li>Todo mensaje que sea dirigido a la salida estándar por medio de un código hecho en C, usando cualquier función, trabaja con el alfabeto ingles lo que implica que no podemos incluir vocales acentuadas, la letra ñ, etc. </li></ul>
  11. 11. Función printf() <ul><li>Cadenas de Formato </li></ul>Cadena de Formato Propósito %d int (notación decimal con signo) %i int (notación decimal con signo, octal o hexadecimal) %o int (notación octal sin signo) %x %X int (notación hexadecimal sin signo) %u int (notación decimal sin signo) %c char %f %e %E %g %G double %s cadena de caracteres
  12. 12. Función printf() <ul><li>Secuencias de Escape </li></ul>Secuencia de Escape Propósito a Carácter alerta (timbre) b Retroceso (Backspace) f Formfeed n Nueva línea r Retorno de carro t Tabulador horizontal v Tabulador vertical Diagonal inversa ? Signo de interrogación ' Comilla simple ” Comilla doble ooo Número octal xhh Número hexadecimal
  13. 13. Función scanf() <ul><li>Esta función se encuentra en la librería o archivo de cabecera stdio.h. </li></ul><ul><li>scanf es la función mas utilizada para la entrada de datos a través del teclado. </li></ul><ul><li>scanf(“cadena de formato”,dirección de memoria de la variable); </li></ul><ul><li>Se pueden capturar varios valores al mismo tiempo, por ejemplo: scanf(“%3d %3d %3d”,&a,&b,&c); </li></ul>
  14. 14. Palabras Claves en C <ul><li>En C, como en cualquier otro lenguaje, existen una serie de palabras clave (keywords) que el usuario no puede utilizar como identificadores (nombres de variables y/o funciones). </li></ul><ul><li>Tienen un especial significado para el compilador. </li></ul><ul><li>El C es un lenguaje muy conciso, con muchas menos palabras claves que otros lenguajes. A continuación se presenta la lista de las 32 palabras clave del ANSI C. </li></ul>auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while
  15. 15. Tipo de Datos <ul><li>Es un conjunto de valores y operaciones definidas para las variables de ese tipo en particular. </li></ul><ul><li>Los tipos básicos en C son int, float, char y double. </li></ul><ul><li>int es un tipo de dato y define el conjunto de valores que una variable de tipo int puede almacenar, y también el conjunto de operaciones que se pueden usar con los operandos enteros. </li></ul><ul><li>float es un tipo de dato que define un conjunto de valores, aunque estos no pueden ser enumerados como en int, y las operaciones definidas para este tipo. </li></ul><ul><li>Para float, las operaciones definidas son +, -, *, / . Sin embargo, % no está definida. </li></ul>
  16. 16. Calificadores de Tipos de Datos <ul><li>Los tipos básicos pueden modificarse usando calificadores de datos. </li></ul><ul><li>Los calificadores de tipos de datos son short, long, signed y unsigned. </li></ul><ul><li>Las variables enteras pueden ser calificadas como short int, long int, signed int o unsigned int. También es válido unsigned short int, o unsigned long int. </li></ul><ul><li>Generalmente un short int requiere menos memoria que un int, mientras que un long int requiere más memoria que un int. </li></ul><ul><li>Todos estos son dependientes del compilador y deben ser verificados por el programador. </li></ul><ul><li>Un unsigned int utiliza el mismo espacio de memoria que un int pero permite almacenar el doble de números. </li></ul><ul><li>El significado de estas variaciones es siempre dependiente del compilador que se use. </li></ul>
  17. 17. Operadores Aritméticos <ul><li>Existen 5 operadores aritméticos en C. </li></ul><ul><li>+, -, *, / y %. </li></ul><ul><li>Cuando se usa con operandos enteros, todos los operadores anteriores retornan un resultado entero. </li></ul><ul><li>Cuando uno de los operandos es un float, el resultado sera también un float. </li></ul><ul><li>El operador % sólo es válido cuando ambos operando son enteros. </li></ul><ul><li>Cuando se usa el operador /, se debe tener mucho cuidado de asegurar que a/b, b no sea 0. Si se intenta dividir entre 0 el programa no funcionará. </li></ul><ul><li>Si uno de los operandos son negativos, entonces el uso de los operandos anteriores resultará en valores cuyos signos será determinados por las reglas usuales del álgebra. </li></ul>
  18. 18. Operadores Aritméticos <ul><li>Cuando uno de los operandos es negativo, el resultado del operador % no está claro. La mayoría de los compiladores de C hacen que el residuo tengo el mismo signo que el primer operando. </li></ul><ul><li>Una expresión aritmética es una combinación de operandos y operadores. </li></ul><ul><li>Considere la siguiente expresión: k = 5*10+7*3-15/4+8-2 . Para evaluar la expresión aritmética anterior correctamente debemos conocer la jerarquía u orden de prioridad de los operadores aritméticos. </li></ul><ul><li>Cuando las expresiones tiene operadores de la misma prioridad, digamos * y /, la evaluación es de izquierda a derecha. </li></ul>Prioridad Operadores Descripción Primero * / % Multiplicación, división, módulo Segundo + - Adición, resta Tercero = Asignación
  19. 19. Operadores Aritméticos <ul><li>Los paréntesis sobrepasan todas las prioridades en la expresiones. Sin embargo dentro del paréntesis las prioridades continúan vigentes. </li></ul><ul><li>Los paréntesis pueden estar anidados; en cuyo caso la expresión en el paréntesis más interno será evaluada primero. </li></ul><ul><li>Cuando se usan paréntesis, verifique verifique que los paréntesis izquierdo y derecho coincidan. </li></ul>
  20. 20. Operadores Aritméticos de Asignación <ul><li>Los Operadores Compuestos de Asignación pueden ser utilizados como atajos al escribir declaraciones de asignación. </li></ul>Operador Propósito Ejemplo Salida += Suma/Asignación X = 10; X +=5; 15 -= Resta/Asignación X = 10; X -=5; 5 *= Multiplicación/Asignación X = 10; X *= 5; 50 /= División/Asignación X = 10; X /= 5; 2 %= Módulo/Asignación X = 10; X %= 5; 0
  21. 21. Conversión Explícita de Tipos <ul><li>Esta operación se denomina conversión (Casting). </li></ul><ul><li>Se indica explícitamente al compilador que operando en cuestión debe ser convertido a otro tipo de dato. </li></ul><ul><li>Es importante que el tipo de dato al que se está convirtiendo esté entre paréntesis (). </li></ul>Ejemplo : Considere las siguientes declaraciones: int x; float y; ¿Qué sucede con la expresión aritmética (x-y) % 10?
  22. 22. Conversión Implícita de Tipos <ul><li>Este tipo de conversión se presenta cuando el Lenguaje C realiza una conversión automática de un tipo de dato a otro. </li></ul><ul><li>Este procedimiento se llama conversión implícita de tipo. </li></ul><ul><li>Una buena práctica de programación sugiere que el programador haga siempre una conversión explícita en lugar de dejar que el compilador haga conversión implícita. El resultado obtenido de los dos casos es el mismo. </li></ul>Piense... Después Codifique
  23. 23. Curso Programando en Lenguaje C (Módulo II)
  24. 24. Estructuras de Control de Decisión <ul><li>Nos permiten crear programas donde ciertas condiciones se puedan verificar. </li></ul><ul><li>Las instrucciones a ejecutar son determinadas por las condiciones que se presenten. </li></ul><ul><li>Nos permiten solventar problemas como por ejemplo, encontrar el máximo de dos enteros, determinar si una persona es mayor de edad, realizar diversos tipos de validaciones, entre otros. </li></ul><ul><li>Las Estructuras de Control de Decisión a estudiar son: if, if-else, if anidado, operador ternario y switch case. </li></ul>
  25. 25. Construcción if Simple <ul><li>if (si la condición es verdadera) </li></ul><ul><li>sentencia; </li></ul><ul><li>En este caso sentencia es solo una sentencia en C, la cual se llama sentencia simple . </li></ul><ul><li>Si se desea ejecutar más de una sentencia, que siguen a la sentencia if , se deben encerrar todas estas sentencias entre llaves {}. </li></ul>
  26. 26. Construcción if-else if (condición) { Sentencia1; … Sentencian; }else{ Sentencia1; … Sentencian; } <ul><li>Si la condición es verdadera, entonces el conjunto de sentencias dentro de las {}, llamadas sentencias “compuestas”, serán ejecutadas. </li></ul><ul><li>Si la condición es falsa, entonces las sentencias compuestas dentro de las {} que siguen al else serán ejecutadas. </li></ul>
  27. 27. Construcción if Anidado if (condición) { if(condición) Sentencia; else{ sentencia; } }else{ Sentencia1; … Sentencian; } <ul><li>Es muy importante la identación , es decir, escribir programas con sangrías, ya que permite una fácil comprensión y proporciona mayor claridad. </li></ul>
  28. 28. Expresiones y Operadores Lógicos y Relacionales <ul><li>La parte crucial de la sentencia if es la condición . </li></ul><ul><li>Una condición es cualquier expresión relacional que conduce a verdadero o falso . </li></ul><ul><li>Las expresiones relacionales son aquellas que se forman con una combinación de indentificadores, constantes y expresiones aritméticas, todas enlazadas a través de un conjunto de operadores relacionales. </li></ul><ul><li>Las expresiones relacionales siempre producen un valor de verdadero o falso. En C, las expresiones relacionales producen 1 para verdadero y 0 para falso. </li></ul>
  29. 29. Operadores Relacionales <ul><li>Algunos de los operadores relacionales que se pueden usar para formar expresiones relacionales son: </li></ul><ul><li>< Menor que. </li></ul><ul><li>< = Menor o igual que. </li></ul><ul><li>> Mayor que. </li></ul><ul><li>> = Mayor o igual que. </li></ul><ul><li>Todos estos operadores pertenecen al mismo grupo de precedencia que es menor que los operadores unarios y aritméticos. </li></ul><ul><li>La asociatividad de la evaluación es de izquierda a derecha. </li></ul><ul><li>Los operadores relacionales se usan para formar expresiones relacionales. </li></ul>
  30. 30. Operadores de Igualdad <ul><li>Se pueden usar los siguientes operadores de igualdad en expresiones relacionales: </li></ul><ul><li>== Igual a. </li></ul><ul><li>!= No igual a. </li></ul><ul><li>Ellos pertenecen a un grupo de precedencia separado por debajo de los operadores relacionales. </li></ul><ul><li>Los operadores relacionales se evalúan con una mayor precedencia que los de igualdad. </li></ul><ul><li>La asociatividad de los operadores es de izquierda a derecha. </li></ul>
  31. 31. Operadores Lógicos <ul><li>Llamados conectores lógicos, los cuales se listan a continuación: </li></ul><ul><li>&& Y (AND) </li></ul><ul><li>|| O (OR) </li></ul><ul><li>! NO (NOT) </li></ul><ul><li>El operador lógico && retorna el valor de VERDADERO (TRUE) si ambos operandos son verdaderos, sino retorna el valor de FALSO (FALSE). </li></ul><ul><li>EL operador lógico || retorna el valor de FALSO (FALSE) sólo si ambos operandos son falsos, sino retorna VERDADERO. </li></ul><ul><li>El operador lógico ! Cambia un operando de VERDADERO a FALSO y viceversa. </li></ul>
  32. 32. Expresiones Lógicas <ul><li>Son expresiones relacionales conectadas por operadores lógicos. </li></ul><ul><li>El valor que retorna una expresión lógica es realmente un entero; es valor de verdadero se representa por el valor de 1 y falso por el valor de 0. </li></ul>Jerarquía de Operadores Categoría Operadores Asociatividad Unarios ++ -- Derecha a Izq Aritmética (multiplicación, división y módulo) * / % Izq a derecha Aritmética (adición, sustracción) + - Izq a derecha Relacional < <= > >= Izq a derecha Igualdad == != Izq a derecha Y (and) lógico && Izq a derecha O (or) lógico || Izq a derecha No (not) lógico ! Izq a derecha
  33. 33. Operador Ternario <ul><li>Es una construcción if de una línea la cual tiene 3 términos. </li></ul><ul><li>Los símbolos de interrogación (?) y dos puntos (:) se usan como operadores ternarios. </li></ul><ul><li>Su estructura es la siguiente: </li></ul><ul><li>condición ? condición_valor_verdadero : condición_valor_falso; </li></ul><ul><li>Si la condición se evalúa a verdadero entonces la sentencia después del signo de interrogación (?) se ejecuta, sino la sentencia después de los dos puntos (:) se ejecuta. </li></ul><ul><li>Ejemplo del uso del operador ternario: </li></ul><ul><li>(a==b) ? printf(“Iguales n”) : printf(“No son iguales n”); </li></ul>
  34. 34. Operador Ternario <ul><li>El operador ternario también se puede usar en sentencias de asignación como sigue: </li></ul><ul><li>a = 10; </li></ul><ul><li>b = 8; </li></ul><ul><li>x = (a == b) ? a : b; </li></ul><ul><li>La condición a == b evalúa a falso y la sentencia despues del : se ejecuta. Por tanto x toma el valor de 8. </li></ul><ul><li>Los operadores ternarios permiten el uso conciso de una condición if – else simple. </li></ul>
  35. 35. Estructura switch … case <ul><li>C provee otra construcción, la cual permite escribir programas cuando un número de condiciones alternas deben ser validadas. Sintaxis: </li></ul><ul><li>switch (variable){ </li></ul><ul><ul><li>case valor1: sentencias; </li></ul></ul><ul><ul><ul><li> break; </li></ul></ul></ul><ul><ul><li>case valor2: sentencias; </li></ul></ul><ul><ul><ul><ul><ul><li>break; </li></ul></ul></ul></ul></ul><ul><ul><li>… </li></ul></ul><ul><ul><li>case valorn: sentencias; </li></ul></ul><ul><ul><ul><ul><li>break; </li></ul></ul></ul></ul><ul><li>} </li></ul><ul><li>Si la sentencia break no está presente la ejecución fluye lógicamente a las sentencias siguientes del próximo case, lo cual comúnmente no se desea. </li></ul>
  36. 36. Construcciones Iterativas <ul><li>Son construcciones que ayuden a repetir una porción de código un cierto número de veces. </li></ul><ul><li>La ejecución repetida de un conjunto de tareas se denomina iteración. </li></ul><ul><li>Las iteraciones son también llamadas bucles. </li></ul><ul><li>Las construcciones iterativas proveen los fundamentos apropiados para una gran cantidad de problemas, que van desde problemas simples a problemas muy complejos. </li></ul><ul><li>Existen tres construcciones iterativas disponibles en C, la construcción while , for , do-while . </li></ul>
  37. 37. Construcción Iterativa while La forma general es como sigue: La variable de control del bucle se inicializa while (prueba la condición usando la variable de control del bucle){ Ejecutar sentencia; . . . Modificar la variable de control del bucle; } <ul><li>Cada bucle while comienza con una inicialización de la variable de control del bucle. </li></ul><ul><li>Se verifica si la condición se satisface o no. Ésta es llamada condición while , o condición de iteración. </li></ul><ul><li>Si la condición es verdadera, el conjunto de sentencias encerradas dentro de las llaves {…} son ejecutadas. </li></ul>
  38. 38. Construcción Iterativa while Inicializar la variable de control Verificar la condición Cuerpo del while Modifica la variable de control del bucle Fin del bucle while
  39. 39. Construcción Iterativa while 1 while (condición_bucle) sentencia; Porción de Código 2 while (condición_bucle) { Sentencia-1; Sentencia-2; . . . Sentencia-n; } Porción de Código
  40. 40. Construcción Iterativa for La forma general es como sigue: for (inicialización del contador; condicion de prueba; actualización del contador){ Sentencias; } while for sum = 0; k = 1; while (k <= N){ sum = sum + k; k = k + 1; } sum = 0; for (k = 1; k <= N; k++) sum = sum + k; Inicialización Condición Incremento
  41. 41. Construcción Iterativa do-while La forma general es como sigue: do{ Sentencia 1; Sentencia 2; . . . }while (condición); <ul><li>Es una construcción iterativa que se usa cuando el cuerpo de un bucle se debe ejecutar al menos una vez. </li></ul><ul><li>En los bucles while y for, el cuerpo del bucle se ejecuta sólo cuando la condición es verdadera; ello implica que el cuerpo de estas construcciones iterativas puede que no se ejecute. </li></ul><ul><li>En el do-while la condición es verificada al final, de este modo el cuerpo del bucle se ejecuta al menos una vez. </li></ul>
  42. 42. Programar con Arreglos <ul><li>Muchas aplicaciones requieren el uso de múltiples elementos de datos que tiene una característica en común. </li></ul><ul><li>Por ejemplo: </li></ul><ul><ul><li>Las calificaciones obtenidas por los estudiantes en una clase. </li></ul></ul><ul><ul><li>Los nombres de los empleados de una compañía. </li></ul></ul><ul><ul><li>La altura y peso de todos los pacientes admitidos en un hospital. </li></ul></ul>¿Cómo se almacenan las calificaciones de 100 estudiantes? Una forma de hacerlo es tener 100 variables, como por ejemplo: notas1, notas2, ..., notas100. Empleando una estructura llamada arreglo, podemos hacer este trabajo con una sola declaración sin necesidad de declarar tantas variables.
  43. 43. Programar con Arreglos <ul><li>Los arreglos son estructuras en memoria que ayudan a almacenar múltiples elementos de datos que tienen una característica común. </li></ul><ul><li>Un arreglo se referencia con un solo nombre, aunque puede tener múltiples elementos de datos. </li></ul><ul><li>Los elementos de datos individuales pueden ser de cualquier tipo, tal como enteros, flotantes o caracteres. </li></ul><ul><li>Dentro de todo el arreglo, todos los elementos de datos deben ser de un mismo tipo, por ejemplo int. </li></ul><ul><li>No se pueden tener los primeros 20 elementos de tipo int y el resto de ellos de tipo float. </li></ul>
  44. 44. Programar con Arreglos <ul><li>Los arreglos son un almacén de múltiples elementos de datos. La dos formas en las cuales los arreglos se pueden hacer son: </li></ul><ul><ul><li>Una sola dimensión (arreglo unidimensional - vector) </li></ul></ul><ul><ul><li>Dos dimensiones (arreglo bidimensional – matriz) </li></ul></ul>Orden: Se refiere a la cantidad de elementos que tiene un arreglo.
  45. 45. Programar con Arreglos Declarar un arreglo en C <ul><li>int notas[5]; </li></ul><ul><li>Esto resulta en la reserva de ubicaciones de memoria. </li></ul><ul><li>Nostas[0] se refiere al primer elemento del arreglo. </li></ul><ul><li>0 … 4 se refiere a los subíndices de un arreglo. Los subíndices en lenguaje C comienzan en 0 y terminan en n-1, donde n es el tamaño del arreglo. </li></ul><ul><li>En notas[0], notas es el nombre del arreglo y 0 es el subíndice. </li></ul><ul><li>Los arreglos se declaran como variables de tipo int, float o char, excepto que necesitan un especificador de tamaño. </li></ul><ul><li>Un especificador de tamaño define el número de elementos en el arreglo. </li></ul>
  46. 46. Cadenas de Caracteres en C <ul><li>Considere el siguiente arreglo: </li></ul><ul><li>char nombre[30]; </li></ul><ul><li>Este puede ser considerado como una cadena (string)en C. </li></ul><ul><li>No existe un tipo de dato string explícito en C. </li></ul><ul><li>Este puede ser directamente leído o escrito como sigue: </li></ul><ul><li>scanf(“%s”, nombre); </li></ul><ul><li>printf(“%s”, nombre); </li></ul><ul><li>Este no tiene que ser leído o escrito carácter por carácter (usando la cadena de formato %c). </li></ul><ul><li>Una vez leído usando %s , la cadena se puede acceder elemento por elemento como nombre[i] </li></ul>
  47. 47. Cadenas de Caracteres en C <ul><li>Cuando un arreglo se lee usando la cadena de formato %s, el compilador inserta un carácter al final para indicar el fin de la cadena. </li></ul><ul><li>Este carácter se denomina carácter null, y se denota como ‘0’ </li></ul>Función Descripción strlen Toma una cadena y retorna la longitud de la misma. strcpy Toma dos cadenas como parámetros, copia la segunda cadena en la primera y retorna la primera cadena. strcat Toma dos cadenas como parámetros, las concatena y retorna las cadena concatenada. strcmp Toma dos cadenas como parámetros, y las compara: Retorna < 0 si la primera cadena es más pequeña que la segunda. Retorna 0 si amabas son iguales Retorna > 0 si la primera cadena es más grande que la segunda.
  48. 48. Estructuras Real Problemas Complejos <ul><li>Colección de elementos de datos, cada una de un tipo diferente. </li></ul>Registro de un Estudiante Cedula (Entero) Nombre (un arreglo de char) Peso (float)

×