Sei sulla pagina 1di 23

1

CAPITULO 1. CONCEPTOS BSICOS.


1. Introduccin. Este curso esta basado en un lenguaje de programacin estructurada de propsito general. Se pueden utilizar muchos lenguajes para programar una computadora. El ms bsico es el lenguaje de maquina una coleccin de instrucciones muy detallada que controla la circuiteria interna de la maquina. Este es el dialecto natural de la maquina. Muy pocos programas se escriben actualmente en lenguaje de maquina por dos razones importantes: primero, porque el lenguaje de maquina es muy incomodo para trabajar y segundo por que la mayora de las maquinas se pide programar en diversos tipos de lenguajes que son lenguajes de alto nivel, cuyas instrucciones son ms compatibles con los lenguajes y la forma de pensar humanos como los es el lenguaje c que adems es de propsito general. Debido a que los programas diseados en este lenguaje se pueden ejecutar en cualquier maquina , casi sin modificaciones. Por tanto el uso del lenguaje de alto nivel ofrece tres ventajas importantes, sencillez, uniformidad y portabilidad. 1.1. Lenguaje de programacin: Sistema de smbolos y reglas que permite la construccin de programas con los que la computadora puede operar as como resolver problemas de manera eficaz. Estos contienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada / salida, calculo, manipulacin de textos, lgica / comparacin y almacenamiento / recuperacin.

y Lenguaje Maquina: Son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traduccin posterior para que la CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje maquina se expresan en trminos de la unidad de memoria ms pequea el bit (dgito binario 0 1). y Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones se escriben en cdigos alfabticos conocidos como mnemotcnicos para las operaciones y direcciones simblicas.

Los lenguajes de programacin se clasifican en:

y Lenguaje de Alto Nivel: Los lenguajes de programacin de alto nivel (BASIC, pascal, cobol, fortran, etc.) son aquellos en los que las instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos (en general en ingles), lo que facilita la escritura y comprensin del programa.

1.2. Algoritmo. La palabra algoritmo se deriva de la traduccin al latn de la palabra rabe alkhowarizmi, nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el siglo IX.
La solucin a cualquier problema de cmputo involucra la ejecucin de una serie de acciones en orden especifico. Un procedimiento para resolver un problema en trminos de: a) Las acciones a ejecutarse y b) el orden en el cual estas acciones deben ejecutarse se llama algoritmo. Un ejemplo de un algoritmo para llegar a la escuela a) Salir de la cama b) Quitarse la pijamas c) Darse un bao d) Vestirse e) Desayunar

f) Utilizar el transporte ( autobs, carro , bicicleta, etc) 1.3 Programa.

Secuencia de instrucciones mediante las cuales se ejecutan diferentes y acciones de acuerdo con los datos que se estn procesando. Es y un algoritmo desarrollado para ser utilizado por la computadora Expresin de un algoritmo en un lenguaje preciso que puede y llegar a

entender una mquina de cmputo.

2. Fases para la creacin de un programa.

2.1 Definicin del Problema Esta fase est dada por el enunciado del problema, el cual requiere una definicin clara y precisa. Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa.
2.2 Anlisis del Problema Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir: Los datos de entrada. Cual es la informacin que se desea producir (salida) Los mtodos y frmulas que se necesitan para procesar los datos. Una recomendacin muy practica es el que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados.

2.3 Diseo del Algoritmo Las caractersticas de un buen algoritmo son: o Debe tener un punto particular de inicio. o Debe ser definido, no debe permitir dobles interpretaciones. o Debe ser general, es decir, soportar la mayora de las variantes que se puedan presentar en la definicin del problema. o Debe ser finito en tamao y tiempo de ejecucin. 2.4 Codificacin La codificacin es la operacin de escribir la solucin del problema (de acuerdo a la lgica del diagrama de flujo o pseudocdigo), en una serie de instrucciones detalladas, en un cdigo reconocible por la computadora, la serie de instrucciones detalladas se le conoce como cdigo fuente, el cual se escribe en un lenguaje de programacin o lenguaje de alto nivel. 2.5 Prueba y Depuracin Los errores humanos dentro de la programacin de computadoras son muchos y aumentan considerablemente con la complejidad del problema. El proceso de identificar y eliminar errores, para dar paso a una solucin sin errores se le llama depuracin. La prueba consiste en la captura de datos hasta que el programa no presente errores (los ms comunes son los sintcticos y lgicos). 2.6 Documentacin Es la gua o comunicacin escrita es sus variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas. A menudo un programa escrito por una persona, es usado por otra. Por ello la documentacin sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento). La documentacin se divide en tres partes:

o o

Documentacin Interna Documentacin Externa

Manual del Usuario se aaden al los siguientes

Documentacin Interna: Son los comentarios o mensaje que cdigo fuente para hacer mas claro el entendimiento de un proceso. Documentacin Externa: Se define en un documento escrito
puntos: Descripcin del Problema Nombre del Autor Algoritmo (diagrama de flujo o pseudocdigo) Diccionario de Datos Cdigo Fuente (programa)

Manual del Usuario: Describe paso a paso la manera como funciona el programa, con el fin de que el usuario obtenga el resultado deseado.

2.7 Mantenimiento Se lleva acabo despus de terminado el programa, cuando se detecta que es necesario hacer algn cambio, ajuste o complementacin al programa para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa este correctamente documentado.

CAPITULO 2. LOS DATOS Y LAS OPERACIONES BASICAS.


1. IDENTIFICADOR. Un identificador es una serie de caracteres formados por letras, dgitos y el carcter subrayado ( _ ) que no inicie con dgito, asi mismo es el nombre que damos a todo lo que manipulamos dentro de un programa (variables, constantes, funciones, etc). Por ejemplo variables, constantes, funciones, tipos definidos por el usuario etc. 2.TIPOS DE DATOS. Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carcter, tal como b, un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de valores que puede tomar una variable. Numricos Lgicos Alfanumricos (string) Arreglos (Vectores, Matrices) Registros Archivos Apuntadores

Simples Tipos de datos Estructurados (Def. por el usuario)

Carcter (char) identifica el contenido de la variable que se declare como carcter. Su longitud es de 1 byte. Entero (int) se refiere a valores de tipo entero. Ocupa 2 bytes. Real (float) indica que la variable recibe datos de tipo real con aproximadamente 6 dgitos de precisin. Su longitud en bytes es de 4. Doble (double) define variables que aceptan datos de tipo real con 12 dgitos de precisin. Cada variable ocupa 8 bytes de memoria. Void Este tipo de dato sirve para declarar funciones que no devuelven valores. Su cantidad de bytes es cero. 3. VARIABLES. Una variable es un identificador que puede tomar diferentes valores dependiendo del tipo que esta se declare. Una variable es un identificador que puede cambiar de valor durante la ejecucin de un programa. Una variable es una posicin de memoria donde se puede almacenar una valor para uso de un programa. 4. DECLARACION DE VARIABLES Despus de conocer los tipos de datos existentes, veamos como se declaran las variables: Tipo_de_dato Variable(s); Donde tipo_de_dato puede ser cualquiera que est permitido por el lenguaje y Variable un identificador que designemos para recibir datos. Entero a, b, c pseudocdigo int a, b, c; en C No hay cantidad mxima de caracteres (letras o palabras) que podamos utilizar para crear variables pero si hay dos que tengan los primeros 6 caracteres significativos iguales, C las tomar como si fuesen la misma.

Tampoco podemos utilizar como variables aquellos trminos que ya han sido definidos previamente por el propio lenguaje (palabras reservadas) o por el usuario como variables de otro tipo. Las variables de tipo cadena se declaran como un conjunto de caracteres. Por ejemplo: char nombre[30]; en Lenguaje C carcter nombre[30] en pseudocdigo donde : carcter es el tipo de dato nombre[30] es el identificador de la variable solicitando 30 espacios 5. INICIALIZACIN DE VARIABLES Inicializar una variable es el darle un valor despus que se ha declarado pero antes de que se ejecuten las sentencias en las que se emplea. En Lenguaje C, se les puede dar un valor a la vez que se declaran. nicamente se coloca el signo igual y una constante despus del nombre de la variable. La forma general de inicializacin es: Tipo_dato nombre_variable = valor; int x=1; Entero x=1 real pi=3.1416 float pi=3.1416; caracter resp='s'; char resp='s'; 6. CONSTANTES. Constantes son los valores que no pueden ser modificados. En C, pueden ser de cualquier tipo de datos. Adems de los ejemplificados anteriormente, Podemos crear constantes de caracteres con barra invertida. Estos corresponden a los caracteres que son imposibles introducir desde el teclado. 7. O P E R A D O R E S Un operador es un smbolo que indica al compilador que realice manipulaciones lgicas o matemticas especficas. 7.1 Operadores Aritmticos Pseudocdigo + * / Modulo Lenguaje C + * / % Nombre del Operador suma. resta. multiplicacin divisin Mdulo o resto de Divisin entera

Cuando se aplica el smbolo / a un entero o a un carcter, cualquier residuo se trunca. Por ejemplo 5/3 ser 1 en divisin entera. El menos monario hace el efecto de multiplicar su nico operando por-1 es decir, cualquier nmero precedido por un signo menos cambia de signo. 7.2. Incremento y decremento Dos operadores caractersticos de C son el incremento y el decremento.++ aumenta en uno a su operando y -- le resta 1. Es decir, x=x+1 es esquivalente a ++x; x=x-1 equivale a --x Los operandos de incremento y decremento pueden ir antes o despus del operador sin embargo existe una diferencia. Veamos el siguiente ejemplo: x=10;

y=x++; Aqu y tomar el valor de 10. y=++x; En este caso, y tomar el valor de 11.
Los operadores del mismo nivel de precedencia son evaluados por el compilador de izquierda a derecha. Por supuesto, se puede utilizar parntesis para ordenar la evaluacin. Los parntesis en C son tratados igualmente que en otro tipo de lenguajes de computadora; se forza a que una operacin o un conjunto de operaciones tengan un nivel de precedencia mayor. El lenguaje C admite abreviaturas que simplifican la escritura de ciertos tipos de sentencias de asignacin. Por ejemplo:

x=x+10; es igual a x+=10; Tambin, conviene utilizar parntesis para hacer ms claro el orden en que se producen las evaluaciones, tanto para la persona que lo elabora o para los que despus tengan que seguir el programa.
7.3 Operadores Relacinales Pseudocdigo Lenguaje C > > < < >= >= <= <= <> != = == Ejemplos: Si a = 10 b = 20 c = 30 a+b>c Falso a-b<c Verdadero a-b=c Falso a*b<>c Verdadero Nombre del Operador Mayor que Menor que Mayor o igual que Menor o igual que Diferente Igual

Ejemplos no lgicos: a<b<c 10 < 20 < 30 T < 30 (no es lgico porque tiene diferentes operandos)

Operadores Lgicos: Estos operadores se utilizan para establecer relaciones entre valores lgicos. Estos valores pueden ser resultado de una expresin relacional. Operadores Lgicos And Y Or O Not Negacin Operador And Operando1 Operador T AND T T F F Operando2 T F T F Resultado
F F F

7.4

Operador Or Operando1 Operador T OR T F F Operador Not Operando Resultado T F F T

Operando2 T F T F

Resultado T T T F

Ejemplos: (a < b) and (b < c) (10<20) and (20<30) T and T T

Prioridad de los Operadores Lgicos Not And Or Prioridad de los Operadores en General 1.- ( ) 2.- ^ 3.- *, /, Mod, Not 4.- +, -, And 5.- >, <, > =, < =, < >, =, Or Ejemplos:
a = 10 b = 12 c = 13 d =10 1) ((a > b)or(a < c)) and ((a = c) or (a > = b)) F T F F T F F ((a > = b) or (a < d)) and (( a > = d) and (c > d)) F F T T F T F not (a = c) and (c > b) F T T T

2)

3)

Los operadores relacionales son los que determinan la forma de vinculacin entre dos valores. A su vez, los lgicos evalan la forma de relacionarse dos valores.

> < >= <= == =! y o no

mayor que menor que mayor igual menor igual igual Diferente and && or || not

7.5 Operadores de Asignacin. Los operadores de asignacin se utilizan para formar expresiones de asignacin, en las que se asigna el valor de una expresin a un identificador. ***** Por definir el operador de asignacin** . 7.6 Operadores de Condicin. Se pueden efectuar operaciones condicionales con el operador ? : . Se puede escribir una instruccin de este tipo en lugar de la instruccin If-else, una expresin condicional se escribe de la forma siguiente: Expresin 1 ?Expresin 2 : Expresin 3 La Expresin 1 es evaluada primero , si es cierta (si su valor es no nulo), entonces Expresin 2 es evaluada y ste es el valor de la expresin condicional. Sin embargo si Expresin 1 es falsa (si su valor es 0) entonces se evala Expresin 3 y ste es el valor de la expresin condicional. El operador condicional tiene su propia precedencia, justamente superior a los operadores de asignacin. La asociatividad es de derecha a izquierda. 7.7 Prioridad de los operadores 1.- parntesis 2.- elevar a potencias 3.- multiplicacin y divisin 4.- suma y resta 8. EXPRESIONES. Las expresiones son combinaciones de constantes, variables, smbolos de operacin, parntesis y nombres de funciones especiales. Por ejemplo: a+(b + 3)/c Cada expresin toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecucin de las operaciones indicadas. Una expresin consta de operadores y operandos. Segn sea el tipo de datos que manipulan, se clasifican las expresiones en: - Aritmticas - Relacinales - Lgicas 9. PALABRAS RESERVADAS. Son palabras que tienen un significado especial para el lenguaje y no se pueden utilizar como identificadores.

10. COMENTARIOS. Los comentarios pueden aparecer en cualquier parte del programa, mientras estn situados entre los delimitadores /* comentario */. Los comentarios son tiles para identificar los elementos principales de un programa o para explicar la lgica subyacente de estos.

CAPITULO # 3 TCNICAS PARA LA FORMULACIN DE ALGORITMOS.


1. Diagrama de Flujo Un diagrama de flujo es la representacin grfica de un algoritmo. Tambin se puede decir que es la representacin detallada en forma grfica de como deben realizarse los pasos en la computadora para producir resultados. Esta representacin grfica se da cuando varios smbolos (que indican diferentes procesos en la computadora), se relacionan entre s mediante lneas que indican el orden en que se deben ejecutar los procesos. Los smbolos utilizados han sido normalizados por el instituto norteamericano de normalizacin (ANSI). SMBOLO DESCRIPCIN
Indica el inicio y el final de nuestro diagrama de flujo.

Indica la entrada y salida de datos.

Smbolo de proceso y nos indica la asignacin de un valor en la memoria y/o la ejecucin de una operacin aritmtica.

Smbolo de decisin indica la realizacin de una comparacin de valores.

Lneas de flujo o direccin. Indican la secuencia en que se realizan las operaciones.

I=VI hasta VF

Repetitiva Desde

Recomendaciones para el diseo de Diagramas de Flujo. Un diagrama de flujo es la representacin grfica de un algoritmo. Tambin se puede decir que es la representacin detallada en forma grfica de como deben realizarse los pasos en la computadora para producir resultados. Esta representacin grfica se da cuando varios smbolos (que indican diferentes procesos en la computadora), se relacionan entre si mediante lneas que indican el orden en que se deben ejecutar los procesos. Los smbolos utilizados han sido normalizados por el instituto norteamericano de normalizacin (ANSI).

Todo diagrama debe tener un inicio y un fin. Se deben se usar solamente lneas de flujo horizontales y/o verticales. Se debe evitar el cruce de lneas utilizando los conectores. Se deben usar conectores solo cuando sea necesario. No deben quedar lneas de flujo son conectar. Se deben trazar los smbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha.

10

Todo texto escrito dentro de un smbolo deber ser escrito claramente, evitando el uso de muchas palabras. Evitar la terminologa de un lenguaje de programacin o maquina. Utilizar comentarios ya sea al margen o mediante el smbolo grafico comentarios para que este sea entendible por cualquier persona que lo consulte. Si el diagrama abarca mas de una hoja es conveniente enumerarlo e identificar de donde viene y a donde se dirige.

2. Pseudocdigo Mezcla de lenguaje de programacin y espaol (o ingles o cualquier otro idioma) que se emplea, dentro de la programacin estructurada, para realizar el diseo de un programa. En esencial, el pseudocdigo se puede definir como un lenguaje de especificaciones de algoritmos. Es la representacin narrativa de los pasos que debe seguir un algoritmo para dar solucin a un problema determinado. El pseudocdigo utiliza palabras que indican el proceso a realizar. El pseudocdigo se concibi para superar las dos principales desventajas del Diagrama de Flujo: el diagrama de flujo es lento de crear y difcil de modificar sin un nuevo redibujo. Por otra parte el pseudocdigo es mas fcil de utilizar ya que es similar al lenguaje natural. Al contrario de los lenguajes de programacin de alto nivel como Pascal o Basic no existe un conjunto de reglas que definan con precisin lo que es y lo que no es pseudocdigo. Varia de un programador a otro.
El pseudocdigo requiere de ciertos smbolos que ya tienen significado preciso y establecido a los que se les conoce como palabras clave. Es necesario que exista una palabra clave para la seleccin y otra para la iteracin condicional, as como para las instrucciones adicionales y otras estructuras de control. Propuesta Diccionario Pseudocdigo. INSTRUCCIONES EN C. main { } /* .... */ printf scanf break continue do-while for (I=VI; I<=VF; I++) goto if - else if return switch Case While do while Int Char Flota double String PSEUDOCODIGO principal inicio fin comentarios imprimir leer interrumpir continuar hacer mientras desde I=VI, I<=VF, Inc I ir a si entonces - sino si regresar segn sea en caso mientras hacer mientras Entero Carcter Real Doble Cadena

11

CAPITULO # 4 PROGRAMACIN ESTRUCTURADA


Definicin Mtodo disciplinado de escribir programas que sean claros, que se demuestren que son correctos y fciles de modificar Un programa se compone de: a) Estructuras de datos.- Los hechos reales, representacin en forma de datos, manera en que se organizan los datos. b) Operaciones primitivas elementales.- Son acciones que se ejecutan sobre los datos para transformarlos en informacin. c) Estructuras de control.- Son los mtodos que existen para dirigir el flujo de acciones que la computadora deber ejecutar sobre los datos manejados por el programa. Este curso se basar en las estructuras de control. Estructuras de control a) Secuencial b) Selectiva c) Repetitiva o de iteracin condicional Estructura de control secuencial La computadora ejecutar automticamente enunciados uno despus del otro, en el orden en el cual se han escrito de inicio a fin.
Inicio Instruccin 1 Instruccin 1 Instruccin 2 . . . Instruccin n

Instruccin 2

Instruccin 3

fin

Ejemplo Sumar dos nmeros: Pseudocdigo Inicio Entero a,b,c Leer a,b c= a+b Imprimir c fin

declara las variables a utilizar solicita el valor de a y b suma a y b y lo almacena en c muestra el resultado almacenado en la variable c

12

Diagrama de flujo
Inicio

a,b c=a+b

solicita dos valores y los guarda en a y b

suma el contenido de a y b y lo almacena en c

muestra el resultado almacenado en la variable c

fin

ESTRUCTURA DE CONTROL SELECTIVA Existen tres tipos de estructuras de control selectivas, estas se basan en una condicin o en una opcin para decidir la parte del programa por el que pasar. a) Simple b)Doble o compuesta c)Mltiple Selectiva simple.- evala una condicin, si esta es verdadera ejecuta la accin o acciones especificadas, si es falsa no realiza ninguna accin.
Pseudocdigo

F
Condicin

V
Si condicin Inicio Inst1 Inst2 Instn fin

Inst1 Inst2 Indtn

Nota: Si existe sola una instruccin o sentencia dentro de la condicin no es necesario marcarlos con inicio y fin, en caso contrario si, como se muestra en el diagrama anterior. Ejemplo: Imprimir si un numero es positivo
Inicio Entero x x Leer x

F
x>0

Si x >0

Es ....

Imprimir Es positivo fin

13

Selectiva doble o compuesta.- evala una condicin, si esta es verdadera ejecuta la accin o acciones especificadas, si es falsa ejecuta otra accin o acciones. F
Condicin ? Inst3 Inst1 Inst2 Indtn

Si condicin Inicio Inst1 Inst2 Instn fin sino Inst3

Nota: Si existe sola una instruccin o sentencia dentro de la condicin no es necesario marcarlos con inicio y fin como en este caso que la condicin fue falsa, en caso contrario si, en este ejemplo cuando la condicin fue verdadera. Ejemplo: Imprimir si un numero es positivo o negativo

Inicio Entero x x Leer x

F
x > 0

Si x >0

Es ....

Es ....

Imprimir Es positivo Sino Imprime Es negativo

fin

Nota: las variables no se especifican en el diagrama de flujo, pero si en el pseudocdigo .

14

SI ANIDADOS La expresin Si anidados" se refiere a que podemos utilizar una sentencia Si dentro de otra sentencia Si. Esto se emplea cuando se tienen que cumplir varias condiciones para poder ejecutar una accin. Ejemplo: Hagamos un algoritmo que seleccione una asignatura. inicio opcion:caracter; escribe('A)Espaol'); escribe('B)Matemticas'); escribe('C)Historia'); escribe('D)Biologia'); escribe('opcion: '); leer(opcion); si opcion='A' escribe('Espaol') sino si opcion='B' escribe('Matemticas') sino si opcion='C' escribe('Historia') sino si opcion='D' escribe('Biologia') sino escribe('una asignatura inexistente') fin Nota: Es importante utilizar sangras para identificar la parte verdadera y falsa de cada condicin Codificndolo en C: #include<stdio.h> menu() { char opcion; printf("A)Espaol\n"); printf("B)Matemticas\n"); printf("C)Historia\n"); printf("D)Biologia\n"); printf("Opcin: "); scanf("%c",&opcion); printf("Escogi "); if (opcion=='A') printf("espaol"); else if (opcion=='B') printf("matamticas");x else if (opcion=='C') printf("historia"); else if (opcion=='D') printf("biologia"); else printf("una asignaturainexistente."); } En el programa anterior, despus de haber mandado a pantalla las opciones, leemos la respuesta. Para determinar la opcin que se elige, se recurre a las sentencias if. Cuando la evaluacin sea verdadera es decir, cuando encontremos el valor que lemos en opcion, ejecutaremos en este caso la funcin correspondiente. Las condiciones se codifican en orden de importancia es decir, la condicin ms importante se evala primero, enseguida la que le sigue en importancia y as sucesivamente hasta llegar a la menos importante. En este caso, todas las condiciones eran igualmente importantes por lo que no importa el orden en que se evalen.

15

Selectiva mltiple.- se elige una opcin entre muchas posibles y segn sea la esta se ejecuta la accin o acciones.
Segun_sea opcion inicio Caso 1: Inst4 Salir Caso 2: Inst5 Salir Caso 3: Inst1 Inst2 Inst3 Otro Imprime opcion inexistente fin

Opcion

1
Inst4

3 2
Inst5 Inst1 Inst2 Indt3

Nota: Se utiliza salir para decirle al programa que si ya eligi esa opcin realice la instruccin o instrucciones y se salga de lo contrario pasar tambin por las siguientes opciones. Cuando se anidan muchos Sis l cdigo puede volverse difcil e entender an para el autor. Para darle mayor transparencia, en C utilizamos la sentencia de decisin mltiple switch. switch es utilizada cuando una variable es sucesivamente comparada con una lista de enteros o de caracteres. Cuando se encuentra la correspondencia, se ejecuta una sentencia o el bloque de sentencias. La forma general de una sentencia es: switch(expresin) { case constante1: secuencia de sentencias; break; case constante2: secuencia de sentencias; break; case constente3: secuencia de sentencias; break; default: secuencia de sentencias; } Nota : La diferencia entre switch e if es que la primera slo puede comprobarla igualdad, mientras que if puede evaluar expresiones relacionales o lgicas. No puede haber dos constantes case que tengan los mismos valores slo en el caso de que la sentencia switch este anidada (que haya una dentro de otra). Ejemplifiquemos el switch optimizando el ejemplo anterior.

16

Ejemplo en pseudocdigo Inicio caracter opcion imprimir("A)Espaol") imprimir("B)Matemticas") imprimir("C)Historia) imprimir("D)Biologa") imprimir("Opcin: ") leer opcion segn_sea opcion inicio caso 'A':imprimir("espaol") salir caso 'B':imprimir("matemticas") salir caso 'C': imprimir("historia") salir caso 'D': imprimir("biologia") salir otro: imprimir("escogiste una asignatura inexistente") fin fin Nota: Ntese que el pseudocdigo no necesita de puntos y coma, parntesis o comillas si se utilizan es solo para darle mejor entendimiento al programa. Ejemplo codificado en C Void main() { char opcion; printf("A)Espaol\n"); printf("B)Matemticas\n"); printf("C)Historia\n"); printf("D)Biologa\n"); printf("Opcin: "); scanf("%c",&opcion); switch(opcion) { case 'A':printf("espaol"); break; case 'B':printf("matemticas"); break; case 'C': printf("historia"); break; case 'D': printf("biologia"); break; default: printf("escogiste una asignatura inexistente"); } }

17

ESTRUCTURA DE CONTROL REPETITIVA O DE ITERACIN CONDICIONADA Esta se basa en una parte del programa que se repite un numero de veces o mientras que la condicin sea valida. Existen tres tipos de estructuras de repeticin a) desde b) mientras c) hacer_mientras (for) (while) (do_while)

Estructura de control desde (for) Esta estructura le permite especificar al programador que se repita una accin o acciones por un nmero de veces establecido.
I=VI hasta VF

Instruccin 1 Instruccin 2

desde I=VI, I<=VF, Inc I Inicio Instruccin 1 Instruccin 2 . . . Instruccin n fin

Donde: I VI VF Inc I Variable de control Valor inicial de la variable de control Valor final de la variable de control El incremento de la variable de control Caractersticas del desde a) Se debe conocer por anticipado el valor de la variable inicial y final antes de entrar al ciclo. b) No se debe cambiar el valor de la variable de control, del valor inicial ni del valor final dentro del ciclo. c) Se puede incrementar o decrementar la variable de control segn se requiera. d) El incremento o decremento de la variable de control es automtico. e) Si solo tiene una instruccin o accin no se necesita marcarlos con inicio y fin, en caso contrario si.

18

Ejemplo. Sumar los nmeros pares entre 1 y el 50, imprimir el resultado

Inicio S=0 Entero I, S=0

desde I=2 hasta 50

I =2, I<=50, I=I+2

S S= S+I

desde I=VI, S = S + Inc I I<=VF, I Inicio Imprimir Instruccin 1 S Instruccin 2 . . Fin . Instruccin n fin

Nota: Solo existe una instruccin dentro del ciclo desde as que no fue necesario el inicio y fin, adems la variable de control I se inicializ dentro del ciclo, S se inicializo con 0 ya que va a almacenar el total de la suma. ESTRUCTURA DE CONTROL MIENTRAS (WHILE) Esta estructura le permite al programador especificar que se repita una accin o acciones en tanto cierta condicin se mantenga verdadera.

F
Cond?

V
Instruccin 1 Instruccin 2

Mientras condicin Inicio Instruccin 1 Instruccin 2 . . . Instruccin n fin

Caractersticas del mientras

19

a) Si la condicin es verdadera entra al ciclo y regresa a revisar la condicin hasta que esta sea falsa se sale del ciclo. b) Debe existir una instruccin dentro del ciclo que modifique la condicin de lo contrario se hace infinita. c) Si solo tiene una instruccin o accin no se necesita marcarlos con inicio y fin, en caso contrario si. Ejemplo. Sumar los nmeros pares entre 1 y el 50, imprimir el resultado
Inicio I=2

Entero I=2, S=0

F
I <= 50

Mientras

I < = 50

V
S=S+I I=I+2 S

Inicio S = S + I I = I + 2 fin Imprimir S

Fin

Nota: En el programa se inicializa la variable I con 2 porque es el primer nmero par, despus revisa la condicin como 2 es menor que 50 entra al ciclo y suma el 2 a S e incrementa I en 2 para que I ya sea 4 y regresa a revisar si la condicin todava es verdadera as hasta que I tome un valor de 52 ya no se cumpla la condicin y se salga del ciclo en este momento e imprime el valor de la variable S.

ESTRUCTURA DE CONTROL HACER_MIENTRAS (DO WHILE) Esta estructura le permite al programador especificar que se repita una accin o acciones en tanto cierta condicin se mantenga verdadera, pero a diferencia del mientras siempre pasa por lo menos una vez por el ciclo ya qe la condicin la revisa despus del ciclo.

Instrucci n 1 Instrucci 2 Cond?

F Caractersticas del hacer_mientras

hacer Inicio Instruccin 1 Instruccin 2 . . . Instruccin n Fin mientras condicin

20

a) Si la condicin es verdadera entra al ciclo y regresa a revisar la condicin hasta que esta sea falsa se sale del ciclo. b) Debe existir una instruccin dentro del ciclo que modifique la condicin de lo contrario se hace infinita. c) Si tiene una instruccin o accin o ms de una, si se necesita marcarlos con inicio y fin. d) Siempre entra por lo menos una vez al ciclo ya que la condicin esta despus de las instrucciones. Ejemplo. Sumar los nmeros pares entre 1 y el 50, imprimir el resultado

Inicio Entero I=2, S=0 I=2

hacer Inicio S = S + I I = I + 2 fin

S=S+I I=I+2

V
I <= 50

Mientras

I < = 50

F
S Imprimir S Fin

Nota: En el programa primero entra al ciclo y despus revisa si la condicin es verdadera, hasta que esta se hace falsa se sale del ciclo e imprime el valor de la suma S.

Nota Importante: Cada programa se forma al combinar tantos de cada tipo de estructura de control como sean apropiados, en relacin con el algoritmo que resuelve el programa. Las estructuras de control pueden ser agregadas unas a otras, conectando el punto de salida de una estructura de control con el punto de entrada a la siguiente. En el lenguaje C existe siete estructuras de control Una secuencial Tres selectivas Tres repetitivas.

21

CAPITULO # 5 ARREGLOS
Definicin Un arreglo es un conjunto de elementos del mismo tipo agrupados en una sola variable. Para ingresar a un elemento en particular, utilizamos un ndice y se almacenan en memoria continua. Existen arreglos unidimensionales, bidimensionales y tridimensionales. Su uso ms comn es en la implementacin de cadenas de caracteres. Recuerda que en C no existen variables de tipo cadena por lo cual se utiliza un arreglo de caracteres. Fsicamente, un arreglo es un conjunto de localidades de memoria contiguas donde la direccin ms baja corresponde al primer elemento y la direccin ms alta al ltimo. En un arreglo de n elementos, stos ocuparan desde la casilla 0 hasta la n-1. Por si mismo, el nombre del arreglo apunta a la direccin del primer elemento del arreglo. ARREGLOS UNIDIMENSIONALES La forma general para definir un arreglo de slo una dimensin es la siguiente: tipo_de_dato nombre_variable[tamao] tipo_de_dato se refiere al tipo de dato de cada elemento del arreglo. tamao es la cantidad de elementos agrupados en la misma variable. Ejemplo: Entero x [10] Entero x 10 tipo de dato nombre de la variable que representa a todo el arreglo tamao del arreglo x Ejemplo 0 13 1 24 x[5] = 53 2 35 x[9] = 83 3 12 4 78 Recuerde que el arreglo 5 53 almacena desde la casilla 6 71 0. Por tanto, en un arreglo de 10 casillas, stas estn 7 29 numeradas del 0 al 9 8 30 9 83 Forma de acceso a un elemento especfico del arreglo Para accesar a uno de los elementos del arreglo en particular, basta con invocar el nombre del arreglo y especificar entre corchetes el nmero de casilla que ocupa el elemento en el arreglo. Por ejemplo, si queremos accesar al cuarto elemento de un arreglo de 10, se invocara de la siguiente manera: nombre_variable[3]

22

Utilizacin de arreglos unidimensionales como cadenas El uso ms comn de los arreglos unidimensionales es la implementacin de una cadena (conjunto) de caracteres porque recuerde que en C no existe este tipo de datos. Por tanto, definimos una cadena en C como un arreglo de caracteres que al final tiene un caracter nulo ('\0'). Por esta razn es necesario que al declarar los arreglos estos sean de un caracter ms que la cadena ms larga que pueda contener. Por ejemplo si deseamos crear un cadena que contenga 5 caracteres la declaracin debe hacerse como sigue: Carcter cadena [6] pseudocdigo char cadena[6]; en C Esto es con el fin de dejar el ltimo espacio para el caracter nulo. Por ejemplo para almacenar la cadena programacin cadena 0 1 2 3 4 5 6 7 8 9 10 11 12 p R O g r a m a c i o n \0 Caracter cadena[12] La cadena programacin necesita 11 caracteres ms 1 para indicarle fin de cadena. Tambin podemos accesar a cada elemento del arreglo Cadena[4]= r Cadena[7]= a Cadena[11]= n No es necesario aadir explcitamente el caracter nulo de las constantes de cadena porque el compilador de C lo hace automticamente. Algunas de las principales funciones que soporta C para el manejo de cadenas de caracteres son las siguientes: Nombre Definicin strcpy(s1,s2) Copia s2 en s1 strcat(s1,s2) Concatena s2 al final de s1 strlen(s1) Devuelve la longitud de s1 strcmp(s1,s2) Compara la cantidad de elementos de s1 y s2 Si son iguales, devuelve 0; menor que cero si s1 menor que s2 y mayor que 0 si s1>s2. Arreglos bidimensionales Un arreglo bidimensional es un arreglo de arreglos unidimensionales. Constituyen la forma ms simple de los arreglos multidimensionales. Su forma general de declaracin es tipo_dato variable[primer ndice][segundo ndice]; El primer ndice corresponde a la filas y el segundo a las columnas. Cuando se utiliza un arreglo bidimensional como argumento de una funcin, realmente se pasa slo la direccin del primer elemento (el[0][0]). Sin embargo, la funcin que recibe un arreglo bidimensional como parmetro tiene que definir al menos la longitud de la segunda dimensin. Esto es necesario debido a que el compilador de C necesita "conocer" la longitud de cada fila para ordenar el arreglo correctamente. Ejemplo: Entero x [3][4] Entero x 3 4 X 0 1 2 tipo de dato nombre de la variable que representa a todo el arreglo tamao del arreglo en filas tamao del arreglo en columnas 0 52 24 35 1 85 47 15 2 26 48 36 3 49 53 24

23

Por ejemplo, una funcin que recibe un arreglo bidimensional de 5,9 se declara as: funcion(intmatriz[][9]) Ejemplo { x[1][3] = 53
x[2][0] = 35

. .

} No es necesario especificar la primera dimensin pero la segunda s ya que el compilador de C la necesita para saber donde empieza la segunda fila. Tambin podemos utilizar arreglos bidimensionales para crear arreglos de cadenas. El primer ndice indicara el nmero de cadenas y el segundo la longitud mxima de las cadenas. char mensajes[5][20]; En la declaracin anterior se especifica que tenemos un arreglo llamado mensajes el cual contiene 5 cadenas de 20 caracteres cada una. Para acceder a una cadena en especial, slo especificamos el nmero de cadena (de 0 al nmero de cadenas menos 1). Ejemplo: imprime(mensajes[3]) Aqu mandamos imprimir la cadena nmero 3 de la variable mensajes. Esto sera equivalente a imprimir(mensajes[3][0]) aunque es ms comn utilizar la primera forma.

Potrebbero piacerti anche

  • El Costo de Capital
    El Costo de Capital
    Documento44 pagine
    El Costo de Capital
    Alejandro Andrade Imitador Juan Gabriel
    0% (1)
  • Funciones Area Fiscal
    Funciones Area Fiscal
    Documento8 pagine
    Funciones Area Fiscal
    Alejandro Andrade Imitador Juan Gabriel
    Nessuna valutazione finora
  • Seminario de Investigación I
    Seminario de Investigación I
    Documento20 pagine
    Seminario de Investigación I
    Alejandro Andrade Imitador Juan Gabriel
    Nessuna valutazione finora
  • 34 Historia de Los Bancos
    34 Historia de Los Bancos
    Documento3 pagine
    34 Historia de Los Bancos
    Lm Rosas
    Nessuna valutazione finora
  • Compuertas Logicas
    Compuertas Logicas
    Documento14 pagine
    Compuertas Logicas
    Alejandro Andrade Imitador Juan Gabriel
    Nessuna valutazione finora
  • Mauales Administrativos
    Mauales Administrativos
    Documento188 pagine
    Mauales Administrativos
    Alejandro Andrade Imitador Juan Gabriel
    Nessuna valutazione finora
  • Diseno de Algoritmos
    Diseno de Algoritmos
    Documento13 pagine
    Diseno de Algoritmos
    Alejandro Andrade Imitador Juan Gabriel
    Nessuna valutazione finora
  • Sociologia Comportamientos
    Sociologia Comportamientos
    Documento15 pagine
    Sociologia Comportamientos
    Alejandro Andrade Imitador Juan Gabriel
    Nessuna valutazione finora
  • Cuentas Activo y Pasivo
    Cuentas Activo y Pasivo
    Documento1 pagina
    Cuentas Activo y Pasivo
    Alejandro Andrade Imitador Juan Gabriel
    0% (1)
  • AMORTIZACION
    AMORTIZACION
    Documento5 pagine
    AMORTIZACION
    Alejandro Andrade Imitador Juan Gabriel
    Nessuna valutazione finora