Sunteți pe pagina 1din 110

PRINCIPIOS DE PROGRAMACIN

MC. SUSANA VIRIDIANA GUTIRREZ MARTINEZ AGOSTO- DICIEMBRE 2011

OBJETIVO GENERAL
El estudiante aplicar los conocimientos bsicos de programacin en la solucin de problemas que involucren procesamiento de datos mediante un programa de cmputo, desarrollado en algn lenguaje de programacin en particular.

NDICE DE UNIDADES
1. 2. 3. 4. Introduccin a la programacin. Estructuras de control. Funciones. Estructuras de datos estticas y dinmicas.

1. INTRODUCCIN A LA PROGRAMACIN
1.1 Definicin de algoritmos 1.2 Tcnicas para elaboracin de algoritmos 1.3 Representacin de algoritmos 1.3.1 Diagramas de flujo 1.3.2 Pseudocdigo

INTRODUCCIN A LA PROGRAMACIN
1.4 Variables, Constantes y Operadores

1.4.1 Nombres de Variables


1.4.2 Tipos de Datos 1.4.3 Declaracin de Variables 1.4.4. Instruccin de asignacin 1.4.5 Constantes 1.4.6 Operadores 1.5 Tipos de expresiones e instrucciones 1.6 Tcnicas de programacin

Estructuras de control
2.1 Estructuras de Decisin 2.1.1 La construccin IF THEN ELSE 2.1.2 IFS Anidados 2.1.3 SWITCH / Case 2.2 Estructuras de Repeticin 2.2.1 For 2.2.2 While 2.2.3 DO - WHILE

Funciones
3.1 Funciones 3.2 Procedimientos 3.3 Correspondencia entre argumento y parmetro

Estructuras de datos estticas y dinmicas


4.1 Arreglos 4.1.1 Definiciones de arreglos 4.1.2 Notacin del arreglo 4.1.3 Arreglos multidimensionales 4.2 Estructuras 4.2.1 Declaracin de estructura 4.2.2 Variables de tipo estructura 4.2.3 Asignacin de valores a variables de estructuras 4.2.4 Variables de estructuras y arreglos 4.3 Apuntadores 4.3.1 Para que sirven? 4.3.2 Declaracin 4.3.3 Listas secuenciales

Definicin de algoritmos
Un algoritmo es un mtodo con un conjunto de instrucciones utilizadas para resolver un problema especifico. Aunque la popularizacin del trmino ha Ilegado con el advenimiento de la era informatica, algoritmo proviene de Mohammed al-KhoWarizmi, matemtico persa que vivi durante el siglo IX y alcanz gran reputacin por el enunciado de las reglas paso a paso para sumar, restar, multiplicar y dividir nmeros decimales; la traduccin al latn del apellido en la palabra algorismus deriv posteriormente en algoritmo. Euclides, el gran matemtico griego (del siglo IV a.c.) que invent un mtodo para encontrar el mximo comn divisor de dos nmeros, se considera con Al-Khowarizmi el otro gran padre de la algoritmia (ciencia que trata de los algoritmos).

Definicin de algoritmo
El profesor Niklaus Wirth inventor de Pascal, Modula-2 y Oberon. Algoritmos + Estructuras de datos = Programas

Mencionando que slo se puede llegar a realizar un buen programa con el diseo de un algoritmo y una correcta estructura de datos.

Definicin de algoritmo
La resolucin de un problema exige el diseo de un algoritmo que resuelva el problema propuesto.

Definicin de algoritmo
Un problema puede ser resuelto mediante varios algoritmos. Un algoritmo es un conjunto ordenado de pasos o instrucciones ejecutables y no ambiguas.

Las etapas o pasos que sigue el algoritmo deben tener una estructura bien establecida en trminos de orden en qu se ejecutan las etapas.

Las caractersticas que debe cumplir un algoritmo.


Todo algoritmo debe: 1. Ser preciso, es decir, que las operaciones tengan un orden claro de ejecucin. 2. Ser finito, es decir, que debe finalizar en algn momento. 3. Ser correcto, es decir, que debe conducir a la solucin del problema. 4. Estar definido, es decir, que siempre se obtiene el mismo resultado si las condiciones iniciales son las mismas.

Ejemplo 1.
Un cliente ejecuta un pedido u una fbrica. La fbrica examina en su banco de datos la ficha del cliente, si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario, rechazar el pedido. Redactar el algoritmo correspondiente.

Ejemplo 2
Se desea disear un algoritmo para saber si un nmero es primo o no. Un nmero es primo si slo puede dividirse por s mismo y por la unidad (es decir, no tiene ms divisores que l mismo y la unidad). Por ejemplo, 9,8,6,4, 12, 16,20, etc., no son primos, ya que son divisibles por nmeros distintos a ellos mismos y a la unidad. As, 9 es divisible por 3, 8 lo es por 2, etc. El algoritmo de resolucin del problema pasa por dividir sucesivamente el nmero por 2, 3,4 ..., etc.

Es un algoritmo la siguiente instruccin?


Escribir una lista de todos los enteros positivos.
Es imposible ejecutar la instruccin anterior dado que hay infinitos enteros positivos. Por consiguiente, cualquier conjunto de instrucciones que implique esta instruccin no es un algoritmo

PROGRAMAS
Se considera que un programa de computadora es una representacin concreta de un algoritmo en un lenguaje de programacin. Un algoritmo debe proporcionar suficiente detalle para que pueda convertir en un programa cuando se necesite.

Para recordar
Un problema es una funcin o asociacin de entradas con salidas. Un algoritmo es una receta para resolver un problema cuyas etapas son concretas y no ambiguas Un algoritmo debe ser correcto, finito y debe terminar para todas las entradas. Un programa es una ejecucin de un algoritmo en un lenguaje de programacin de computadora.

Reglas para la creacin de Diagramas


1. Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha. 2. Los smbolos se unen con lneas, las cuales tienen en la punta una flecha que indica la direccin que fluye la informacin procesos, se deben de utilizar solamente lneas de flujo horizontal o verticales (nunca diagonales). 3. Se debe evitar el cruce de lneas, para lo cual se quisiera separar el flujo del diagrama a un sitio distinto, se pudiera realizar utilizando los conectores. Se debe tener en cuenta que solo se vana utilizar conectores cuando sea estrictamente necesario. 4. No deben quedar lneas de flujo sin conectar

5. Todo texto escrito dentro de un smbolo debe ser legible, preciso, evitando el uso de muchas palabras. 6. Todos los smbolos pueden tener ms de una lnea de entrada, a excepcin del smbolo final. 7. Solo los smbolos de decisin pueden y deben tener mas de una lnea de flujo de salida.

PSEUDOCDIGO
El pseudocdigo es una herramienta de programacin en la que las instrucciones se escriben en palabras similares al ingls o espaol Facilitan tanto la escritura como la lectura de programas.

En esencia, el pseudocdigo se puede definir como un lenguaje de especificaciones de algoritmos.


No puede ser ejecutado por una computadora La ventaja es que en uso en la planificacin de un programa, el programador se concentra en la lgica y en estructuras de control, sin preocuparse de las estructuras de un programa en especifico.

PSEUDOCDIGO
Es fcil de modificar si se corrigen errores o anomalas en la lgica del programa.

La escritura exige normalmente una sangra en el margen izquierdo


Puede ser traducido fcilmente a lenguajes como Pascal, COBOL, C, FORTRAN, C++, JAVA O C#. Utiliza palabras reservada en ingls para representar las acciones sucesivas similares a los lenguajes de programacin como:
Start End Stop If-then- else While-end Repeat-until

Ejercicio
1. Calcular el salario de un trabajador conociendo el nmero de horas trabajadas, la tarifa horaria y la tasa de impuestos. Hacer el algoritmo El diagrama de flujo El pseudocdigo.

2. Calcular el valor de la suma 1+2+3+ ...+ 100. Se utiliza una variable Contador como un contador que genere los sucesivos nmeros enteros, y Suma para almacenar las sumas parciales 1, I +2,1+2+3.. . 1. Establecer Contador 1
d

2. Establecer Suma a O 3. mientras Contador < = 100 hacer


Sumar Contador a Suma Incrementar Contador en 1 fin-mientras

4. Visualizar Sumd

Diseo TOP DOWN


Los programas se disean de lo general a lo particular por medio de sucesivos refinamientos o descomposiciones que nos van acercando a las instrucciones finales del programa.

Teoremas bsicos.
La Programacin modular: La programacin modular consiste en dividir el programa en mdulos, es decir, en bloques de cdigo separados, para dividir el problema grande en varios problemas ms pequeos y ms fciles de resolver. La programacin modular se basa en el diseo descendente (top-down), que es una tcnica mediante la cual el problema general se va descomponiendo en partes diferenciadas ms fciles de resolver en cada nivel, poco a poco, concretando ms en cada nivel, hasta llegar a un nivel en el que todas las partes son fcilmente desarrollables y depurables.

TIPOS DE DATOS
Un tipo de dato es un conjunto de valores y operaciones asociadas a esos valores. Consta de dos partes Un conjunto de datos Las operaciones que pueden realizar sobre esos datos.

Tipos de Datos
En los lenguajes de programacin existen un gran nmero de tipos de datos entre ellos se pueden destacar: Tipos primitivos Tipos compuestos Tipos agregados

Tipos de Datos
Los tipos de datos primitivos son tipos cuyos valores son elementos de datos indivisibles. Tambin denominados atmicos Incluyen tipos numricos, carcter y lgicos (booleanos). Ejemplo El nmero 0810 es un tipo de dato ya que si bien se puede descomponer en cuatro cifras o dgitos, stas ya no tienen el mismo significado.

Tipos de Datos
Enteros Valores operaciones Coma flotantes Valores operaciones Carcter Valores Operaciones Lgicos Valores Operaciones Verdadero, falso And, or, not, (y, o, no) /0, , A, B, ,a, b, <, -, , 0.0, , *, +, -, %, /, -, , -3,-2,-1,o,1,2,3,, *, +, -, %, /, ++, - -,

Tipos de Datos
Los datos compuestos son el opuesto a los tipos de datos atmicos, se pueden romper en subcampos que tengan significado. Ejemplo. Un numero de telfono celular.

Los tipos agregados son tipos de datos cuyos valores son colecciones de elementos de datos previamente definido Tipos de datos agregados bsicos: Array (lista, tabla o matriz) Secuencia Registros.

Tipos de Datos
Un array o arreglo es, normalmente una coleccin de datos de tamao o longitud fija, cada uno de cuyos datos es accesible en tiempo de ejecucin mediante la evaluacin de las expresiones que representan a los subndices o ndices correspondientes. Todos los elementos deben ser del mismo tipo. Array de enteros: [4, 6, 8, 35, 46, 810]

Tipos de datos
Una secuencia o cadena es, en esencia un array cuyo tamao puede variar en tiempo de ejecucin. Por consiguiente son similares a array dinmicos o flexibles. Cadena = Aceite de oliva

Tipos de Datos
Un registro puede contener datos agregados y primitivos. Cada elemento agregado, eventualmente, se descompone en campos formados por elementos primitivos Se puede considerar como un tipo o coleccin de datos de tamao fijo Registro { Dato 1 Dato2 Dato 3 }

UNIDAD II
ESTRUCTURAS DE CONTROL DE FLUJO.

VISUAL C++ 6.0

Los complementos del entorno de desarrollo

Men
Microsoft Visual C++ 6.0 tiene un men dinmico que puede adaptarse a los diferentes estados del entorno de desarrollo. El men File dispone de algunas opciones para los ltimos archivos o proyectos abiertos.

El men Tools se puede adaptar a las necesidades de cada usuario mediante la opcin Customize.
El men Help est dedicado al sistema de ayuda de Visual C++.

Barras de herramientas
Las barras de herramientas se pueden considerar como un atajo de las opciones de men. Pulsando con el botn derecho del ratn en un espacio libre de las barras de herramientas existentes, puede mostrar nuevas barras seleccionando la opcin deseada. As, puede mostrar otra barra que nos facilite el acceso inmediato a opciones de compilacin (Build), depuracin de errores (Debug), etc.

Workspace
Workspace es una herramienta bsica. Puede contener varias fichas. Para seleccionarlas, se utilizan los botones de la parte inferior de Workspace. Cuando no hay abierto ningn proyecto, Workspace consta de una sola ficha: InfoView. Infoview sirve para representar la estructura del manual en pantalla. Las otras fichas slo se muestran cuando hay un proyecto abierto. Al crear un nuevo proyecto, se activa una ficha nueva en Workspace: ClassView. ClassView permite manejar de forma sencilla los elementos ms importantes del entorno de desarrollo: las subrutinas y funciones.

Editor de cdigo fuente


Posee algunas ampliaciones que simplifican considerablemente el manejo de los cdigos fuente y, por tanto, la programacin:
Espacios en blanco virtuales: Al pulsar la tecla Entrar el cursor se sita de nuevo en la posicin en la que se ha comenzado a escribir. No debe utilizar tabuladores, esta opcin le permite disear un espaciado concreto en su programa. A los bloques entre llaves, que forman una unidad, se les aplica automticamente una sangra. El cuadro de dilogo Go To facilita la navegacin por el cdigo fuente. A los pasajes del cdigo fuente utilizados con mayor frecuencia, se les puede asignar marcadores de texto para permitir el acceso directo. Se resalta la sintaxis de C++ marcando en color las palabras clave.

Estructura repetitiva
Es una estructura con una entrada y una salida en la cual se repite una accin un numero determinado o indeterminado de veces, dependiendo en este caso del cumplimiento de una condicin. Las estructuras repetitivas pueden ser:
Estructura para (FOR) Estructura mientras (WHILE) Estructura hasta (UNTIL) Estructura iterar (LOOP)

Estructura PARA (FOR)


En esta estructura se repite una accin un numero fijo de veces representado normalmente por N. Es necesario para el control de la repeticin utilizar una variable de control Vc y los valores que asignaremos a la misma inicialmente Vi y su correspondiente valor final Vf. El incremento de la variable de control Vc es normalmente 1, pero puede tomar otros valores positivos y negativos, en cuyos casos es necesario indicarlo por medio de In. El numero de repeticiones N esta dado por la formula

Teoremas bsicos.
Si N = O se obtiene un valor negativo, se dice que el bucle es inactivo y no se repite ninguna vez.

Teoremas bsicos.
En este tipo de estructuras existen una serie de normas de obligado cumplimiento, como son:
El In no puede ser 0 (bucle infinito). Vc no puede modificarse en el rango del bucle (accin A)

Estructura MIENTRAS (WHILE)


En esta estructura se repite una accin mientras se cumpla la condicin que controla el bucle. La caracterstica principal de esta estructura es la de que la condicin es evaluada siempre antes de cada repeticin.

El numero de repeticiones oscila entre 0 e infinito, dependiendo de la evaluacin de la condicin, cuyos argumentos en los casos de repeticin, al menos una vez, deberan modificarse dentro del bucle, pues de no ser as el numero de repeticiones seria infinito y nos encontraremos en un bucle sin salida.

Estructura HASTA (UNTIL)

En esta estructura se repite una accin hasta que se cumpla la condicin que controla el bucle, la cual se evala despus de cada ejecucin del mismo. El numero de repeticiones oscila entre 1 e infinito, dependiendo de la evaluacin de la condicin, cuyos argumentos en los casos de repeticin, al menos dos veces, debern modificarse dentro del bucle, pues de no ser as el numero de repeticiones ser infinito y nos encontraremos en un bucle sin salida.

Estructura ITERAR (LOOP)

En esta estructura se repiten alternativamente dos acciones, evaluando la condicin de salida entre ambas. El numero de repeticiones oscila, por la accin A, entre 1 e infinito, y para la accin B, entre 0 e infinito, cumplindose que siempre se repite A una vez ms que B. Los bucles anteriores son casos particulares de ste.

El entorno de C incluye:
Editor: Permite introducir y modificar el cdigo Fuente de C. Compilador: Un programa que convierte el programa escrito en C en un cdigo que entiende la computadora. Archivos para incluir: Archivos formados por muchas definiciones separadas e instrucciones que pueden ser tiles al programador en ciertas situaciones

Requerimientos
Archivos de biblioteca: programas previamente compilados que realizan funciones especificas. Enlazador: combina todas las partes necesarias (tales como archivos de biblioteca) de un programa C para producir el cdigo ejecutable final.

Componentes que debe tener fijos


Elemento Propsito

#incluide <studio.h>
Main

Le indica al compilador que debe incluir el archivo de entrada/salida estndar.


Marca el punto donde el programa C comienza la ejecucin. Es obligatorio en todos los programas. Deben aparecer inmediatamente detrs de main. Estos smbolos son opcionales y se usan para delimitar los comentarios. Cada sentencia C termina con punto y coma Son necesarias indican el principio y fin de las instrucciones del programa

() /* */ ; {}

ESTRUCTURA GENERAL DE UN PROGRAMA EN C


Un programa en C se compone de una o ms funciones. Una de las funciones debe ser obligatoriamente main. Una funcin en C es un grupo de instrucciones que realizan una o ms acciones. un programa contendr una serie de directivas #include que permitirn incluir en el mismo archivos de cabecera que a su vez constarn de funciones y datos predefinidos en ellos. (bibliotecas)

ESTRUCTURA GENERAL DE UN PROGRAMA EN C


#include<stdio.h>
Archivo de cabecera stdio.h Cabecera de funcin

Int main ()
{ }

Nombre de funcin
Sentencias

ESTRUCTURA GENERAL DE UN PROGRAMA EN C

Ejercicio que imprima el mensaje: estamos en la clase de principios de programacin

#include<stdio.h> #include<stdlib.h> #include<conio.h>


main() { }

printf("Esta es la clase de principios de programacion"); getche ();

Elementos de C
Componentes lxicos: En cualquier cdigo fuente C, el elemento ms bsico reconocido por el compilador es un carcter simple o grupo de caracteres. Ejemplo: main, ({) () Palabras reservadas en ANSI C. son componentes lxicos predefinidos que tiene un significado especial para el compilador, sus definiciones no pueden ser cambiadas.

Elementos de C
Palabras reservadas:

Elementos de C
Tipos de datos: nmeros, caracteres y cadenas de caracteres. Un carcter es cualquier elemento del conjunto de caracteres usados por C. Una cadena de caracteres es una combinacin de estos caracteres. Nmeros usados por C: tiene 2 grandes categoras: Enteros y Reales (nmero con punto decimal).

Sentencia if else
La sintaxis de esta sentencia es la siguiente: If (expresin) sentencia1 else sentencia2 Lo cual significa que si la expresin es VERDADERA se ejecutara la sentencia 1, mientras que si es FALSA se ejecutara la sentencia 2.

LA FUNCIN PRINTF ( )
Se usa para escribir informacin por la salida estndar (normalmente en la pantalla) Estructura Printf (cadena de caracteres con especificadores de formato, variables o valores); Los caracteres son delimitados por comillas simples (a), y las cadenas de caracteres por comillas dobles(esto es una cadena de caracteres),

Un especificador de formato empieza con el carcter del porcentaje (%) Ejemplo: printf ( el numero 92 en decimal es %d.,92);

Los distintos tipos de campos usados por la funcin printf ( )en los especificadores de formato.

EJEMPLO

Una Sentencia (instruccin) controla el flujo de ejecucin de un programa. Est formada por palabras reservadas, expresiones y otras instrucciones. Una expresin es una combinacin de operandos y operadores que expresa un valor nico ( respuesta = 3 + 5). Dos tipos de sentencias
Simples: termina con punto y coma(;) Compuestas: estn delimitada por llaves ( )

TERCER PARCIAL

Qu es una funcin?
Es una coleccin independiente de declaraciones y sentencias(instrucciones). Una declaracin establece la relacin entre el nombre y el tipo de una variable u otra funcin. Cuando se crea una funcin, es mejor darle un nombre descriptivo.

Operadores Booleanos

Operador AND &&

Expresin 1 FALSO FALSO VERDADERO VERDADERO

Expresin 2 FALSO VERDADERO FALSO VERDADERO

Resultado FALSO FALSO FALSO VERDADERO

OPERADOR OR
(expresin 1) (expresin 2) La operacin se evaluar como FALSA solo si expresin 1 es FALSA y expresin 2 es FALSA: en cualquier otro caso se evaluar como VERDADERA

Operador OR

Expresin 1 FALSO FALSO VERDADERO VERDADERO

Expresin 2 FALSO VERDADERO FALSO VERDADERO

Resultado FALSO VERDADERO VERDADERO VERDADERO

IMPORTANCIA
Operadores ! */ +<<=>=< Nombre Negacin (NOT) lgica Multiplicacin y divisin Suma y Resta Menor, menor o igual, mayor o igual, mayor Igual, distinto Conjuncin (AND) lgica

== !=

Disyuncin (OR) lgica

LA SENTENCIA SWITCH
La sentencia switch es una forma ms fcil de codificar mltiples sentencias ifelse.
switch (expresin) { case expresin constante: (expresin) default: (expresin) }

Donde: switch= Palabra reservada que indica el comienzo de esta sentencia. expresin= Cualquier expresin legal en C { Define el comienzo del cuerpo de la sentencia switch case= Palabra reservada que precede a la expresin constante que corresponde a una alternativa. expresin-constante= Especifica qu debe cumplirse para que se active la alternativa. default= palabra reservada que indica la opcin que se llevar a cabo cuando no se cumpla ninguna alternativa. } Define el final del cuerpo

Se requieren dos palabras reservadas:


Case Break La sentencia switch especifica una expresin cuyo valor determina que alternativa case se activar. El termino break indica cuando termina de ejecutarse el cdigo asociado a una alternativa

Nos permite repetir la ejecucin de un cdigo un nmero determinado de veces. Cuatro partes principales for( inicializacin; condicin; incremento ) instrucciones

CICLO FOR

Ciclo for
Inicializacin: le damos a la variable de control su valor inicial. Condicin: en forma de una expresin relacional, nos sirve para controlar cundo termina el ciclo y generalmente aqu indicamos la cantidad de vueltas que da el ciclo. Instrucciones: se coloca la parte del cdigo que deseamos se repita. Incremento: indicamos como se modificar el valor de la variable de control para cada vuelta del ciclo.

Ejemplo
Incrementa en una el valor de la variable tiempo cada vez que se ejecuta el ciclo. El valor inicial de la variable es 1 y el ciclo se repite mientras el valor de la variable tiempo sea menor o igual que 5.

int tiempo; //variable del controlador // el programa comienza aqu for (tiempo=1;tiempo<=5;tiempo=tiempo+1) printf ("el valor del tiempo es igual a %d\n, tiempo); //fin del ciclo printf ("El ciclo termina aqu");

Ciclo for
Para tener ms de una sentencia dentro de un ciclo for, es necesario encerrar todas ellas entre llaves { y} dando lugar a lo que se denomina una sentencia compuesta.

Ejemplo
El programa calcula la distancia cubierta por un cuerpo que cae (en metros por segundo) para los primeros 5 segundos de cada libre. Esta distancia esta dada por la siguiente ecuacin 1 2 = 2

Donde S= la distancia en metros a= Aceleracin debida a la gravedad (9.78 m/s 2) t= Tiempo en segundos

#include<stdio.h> #include<stdlib.h> #include<conio.h>

#define a 9.78
main() { //Variables necesarias

int tiempo; // variable contador


int distancia; // distancia cubierta por el cuerpo que //el ciclo comienza aqu for (tiempo = 1; tiempo <=5; tiempo=tiempo+1) { distancia=a*tiempo*tiempo*0.5; printf("la distancia despues de %d segundos es de %d metros.\n",tiempo,distancia);

}
//fin del ciclo printf("Fin del ciclo");

Operadores de incremento y decremento


C ofrece una notacin abreviada para la operacin de programacin muy comn. Esta es la capacidad para incrementar o decrementar un valor . En C este incremento puede expresarse de forma reducida como tiempo ++.

Operador X++

Significado Incrementa X despus de cualquier operacin con ella (se llama post-incremento) Incrementa X antes de cualquier operacin con ella (se llama preincremento)

++X

X--

Decremento X despus de cualquier operacin con ella (se llama post-decremento)


Decremento X antes de cualquier operacin con ella (se llama pre-decremento)

--X

Ejercicio
Se desea un programa para una escuela el cual debe sacar el promedio de calificaciones para 3 alumnos Realizarlo usando for

//Variables necesarias int n=0; // control del ciclo int cantidad; // Cantidad de alumnos float calif = 0.0f; // calificacin del alumno float suma = 0.0f; // sumatoria de calificaciones float promedio =0.0f; // promedio final

calificacion del alumno:"); scanf ("%f",&calif); //llevamos a cabo la suma de calificaciones suma += calif; } // calculamos el promedio promedio = suma /cantidad;

//pedimos los datos printf ("\n\ndame la cantidad de alumnos:\n"); scanf ("%d",&cantidad); promedio); //ciclo for for(n=1; n<= cantidad; n++) { printf ("\n\ndame la

// Mostramos el promedio printf("el promedio es %f",

Ciclo While
Es ms indicado en aquellas situaciones en las que no se conoce por adelantado el nmero de veces que se va a repetir el ciclo . Estructura while (condicin) sentencia;

Ciclo While
La sentencia puede incluir una nica sentencia o una sentencia compuesta (en este caso se encierra entre llaves { }) Primero se evala la expresin
Si el resultado de esta evaluacin es FALSO (0), entonces no se ejecuta la sentencia y el control contina despus del ciclo. Si la evaluacin es VERDADERO, se ejecuta la sentencia y se repite el proceso de nuevo.

Ejemplo: Evala la variable tiempo 5 veces


int tiempo=1; //variable del controlador

// el programa comienza aqui


while(tiempo<=5) { printf ("el valor del tiempo es igual a %d\n",tiempo); tiempo++; } //fin del ciclo printf("El ciclo termina aqui");

Ejemplo 2: el programa comprueba la entrada del usuario para ver si el cuerpo del programa debe repetirlo. Observe que para finalizar el ciclo, el usuario del programa debe introducir la letra mayscula N char respuesta='S'; //Respuesta del usuario // el programa comienza aqu while(respuesta != 'N') { printf ("Este es el cuerpo del programa.\n"); printf ("Quiere repetir este programa (S/N)=>"); respuesta = getchar(); printf("\n"); } //fin del ciclo printf("Gracias por usar este programa");

Ciclo Do While
Es muy similar al ciclo while con la diferencia de que la condicin se evala despus de ejecutar el cuerpo del ciclo. Sentencia do while: do

sentencia while (expresin);

Ciclo do while
Primero se ejecuta la sentencia; a continuacin se evala expresin. Si expresin es FALSA, se termina la ejecucin del ciclo y el control contina en la siguiente sentencia del programa. Si la expresin es VERDADERA (valor distinto de 0), entonces se repite sentencia y el proceso se repite de nuevo.

Ejemplo: sentencia falsa

Main () { do printf (esto siempre sucede al menos una vez); while (0); printf (fin del ciclo); }

Ciclo centinela
Float entrada; // numero leido do { printf(Introduzca un numero menor que 5 =>); scanf(%f,entrada); if (entrada >=5) printf(El valor es demasiado grande, pruebe de nuevo\n); } while(entrada >=5); printf(Gracias);

Recomendacin
A la hora de elegir entre el while y el do while, se recomienda emplear el while, por que este evala primero la condicin antes de ejecutar el ciclo.

Ejercicios finales
Cree un programa en donde el usuario seleccione el nombre de una figura (rectngulo, tringulo, crculo o paralelogramo) y el programa presente la frmula del rea de dicha figura.

Ejercicio: Mquina expendedora


Una maquina acepta monedad de 2, 5 y 10 pesos, todos los productos de la mquina cuestan 12 pesos. Cuando se compra un producto, se utiliza como cambio el mnimo numero de monedas de 2, 10 y 5 pesos

Para que la mquina funcione apropiadamente, la maquina debe advertir al usuario de que para recibir un producto debe insertarse al menos 12 pesos. De esta forma, es necesario conocer la cantidad de dinero introducida por el usuario. Cuando se adquiere un producto el cambio mnimo puede ser diferente cada vez. Debido a que el usuario puede introducir ms dinero que el requerido pro la mquina. Por ejemplo, si el usuario introduce cuatro monedas de 2 y dos de 5, el cambio mnimo ser de tres monedas de 2.

DESARROLLO DEL ALGORITMO


Etapas requeridas
1. 2. 3. Obtener el dinero del usuario moneda a moneda. Restar el precio marcado (siempre 50 pesos) Devolver el cambio mnimo (si es necesario).

El cambio se realiza teniendo en cuenta que la mquina nunca se quedar sin dinero. la introduccin de las monedas por medio de un men, el usuario introduce 1, 2,3, tantas veces como desee. Una variable se incrementa en 25, 10 o 5 cada ves, dependiendo de la entrada del usuario. Cuando el usuario quiere comprar un producto introduce P, si la cantidad introducida es menor de 5, se necesita ms dinero, si la cantidad es suficiente de resta 50 a la cantidad introducida.

Para devolver el cambio mnimo, se utilizan tres etapas, en el siguiente orden:


Restar tantas monedas de 25 como sea posible. Restar tantas monedas de 10 como sea posible. Restar tantas monedas de 5 como sea posible.

Ejercicio Robot Hipottico


La computadora se encarga de realizar medidas reales (a travs de los circuitos de interfaz correspondiente) y luego diagnostica el problema real. Por motivos de simplicidad ser el usuario del programa el encargado de introducir los valores requeridos por el programa.

S-ar putea să vă placă și