SlideShare una empresa de Scribd logo
1 de 95
Descargar para leer sin conexión
TEMA V.
FUNDAMENTOS
DE ALGORITMOS
Ing. Dulce Mónica
Castillo Corona
5.1. COMPUTABILIDAD Y
CONCEPTO DE ALGORITMO :
MÁQUINA DE TURING
Existieron varios intentos de formalizar la noción de procedimiento efectivo,
pero el primero en ser aceptado se llevó a cabo por Alan Turing en los años
30, dando como resultado la máquina de Turing; la importancia de este
trabajo, radica en que es el primer análisis general para comprender como
es que se realiza un cálculo, y condujo a una abstracción convincente y
ampliamente aceptada del concepto de procedimiento efectivo.
Es importante mencionar que el análisis de Turing fué hecho
antes de la invención de las calculadoras de escritorio y que
sus resultados condujeron más o menos de forma directa a
la invención de la computadora digital de John Von
Neumann en los años 40, una máquina que básicamente
tiene la misma arquitectura que las computadoras actuales.
Además, es importante notar que para Turing una
“computadora” es una persona que resuelve un problema
computacional en una forma mecánica y no se refiere a una
máquina.
5.1. COMPUTABILIDAD Y
CONCEPTO DE ALGORITMO :
MÁQUINA DE TURING
5.1. COMPUTABILIDAD Y
CONCEPTO DE ALGORITMO :
MÁQUINA DE TURING
Una máquina de Turing consiste de una cabeza de
lectura/escritura y una cinta infinita dividida en
cuadros como lo muestra la figura. Cada celda de la
cinta puede estar en blanco o tener almacenado un
símbolo de un alfabeto finito de símbolos. La cinta
puede estar inicialmente vacía (todas las celdas en
blanco), o tener un número finito de celdas que
contienen algún símbolo. En cualquier momento, la
cabeza puede leer el contenido de la celda y
posteriormente borrar el símbolo, dejarlo igual ó
sustituirlo con algún otro símbolo. Después, la cabeza
puede moverse una posición a la derecha, una
posición a la izquierda ó quedarse en la misma
posición. Si la celda se encuentra vacía, la cabeza
puede dejarla vacía o grabar algún símbolo.
5.1. COMPUTABILIDAD Y
CONCEPTO DE ALGORITMO :
MÁQUINA DE TURING
Los algoritmos permiten encontrar la solución a
problemas computables.
Intuitivamente las personas efectuamos cotidianamente una
serie de pasos, procedimientos o acciones que nos permitan
alcanzar algún resultado o resolver un problema (al bañarnos,
al desayunar, al ir a la universidad). En realidad todo el tiempo
estamos aplicando algoritmos para resolver problemas.
5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE
DATOS
 Un algoritmo es una lista bien definida,
ordenada y finita de operaciones que permite
hallar la solución a un problema.
 Dado un estado inicial y una entrada, a través
de pasos sucesivos y bien definidos se llega a
un estado final, obteniendo una solución.
5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE
DATOS
Etapas o pasos para la creación de un programa
1.Definición del problema. La cual deberá ser clara y precisa.
2.Análisis del problema:
a) Inf. que se necesita para obtener el resultado seseado
(datos de entrada).
b) Inf. que se desea producir (datos de salida).
c) Métodos y fórmulas para procesar datos y producir
esa salida.
3.Diseño y técnicas para la formulación de un algoritmo. Se centra
en desarrollar el algoritmo basándonos en las especificaciones de
la etapa del análisis y esto lo haremos mediante un diagrama de
flujo o un pseudocódigo.
5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE
DATOS
4. Codificación. Se transcribe el algoritmo definido en la etapa de
diseño e algún lenguaje de programación al cual se le conoce
como código fuente.
5. Prueba y depuración. Consiste en capturar datos hasta que el
programa funcione correctamente. A la actividad de localizar
errores se le llama depuración . Existen dos tipos de sintaxis
de y de lógica.
a) Sintaxis: es la prueba más sencilla y la realiza el
compilador del programa cada vez que se ejecuta el
programa hasta que el código no presente errores , es
decir que la sintaxis que requiere el lenguaje sea la
correcta.
5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE
DATOS
b) Prueba lógica: Es la más complicada por que esta
la realiza e programador; consiste en la captura de
diferentes valores y revisar que el resultado sea el
deseado.
6. Documentación. Es la guía o comunicación que permite al
programador o al usuario conocer la funcionalidad del programa:
a) Interna: Se genera con el mismo código y generalmente es
mediante comentarios.
b) Externa: Son los manuales es independiente del programa.
También puede ser la ayuda en el mismo sw.
7. Mantenimiento. En algunas ocasiones será necesario realizarle
al programa ciertas modificaciones o ajustes para que siga
funcionando perfectamente.
5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE
DATOS
Reglas de los algoritmos:
› Preciso: implica el orden de realización de cada uno de los
pasos
› Definido: si se sigue dos veces, se obtiene el mismo resultado.
› Finito: Tiene un numero determinado de pasos, implica que
tiene un fin
› Correcto.
› Debe tener al menos una salida.
› Debe ser sencillo y legible.
› Eficiente y efectivo.
5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE
DATOS
La solución de un problema complejo puede requerir muchos
pasos, es necesario dividir el problema en sub problemas más
sencillos de resolver.
• Este método se denomina divide y vencerás y es aplicable a la
resolución y escritura de algoritmos y programas para computadora.
• Este método de división de un problema en otros sub problemas
más sencillos se puede expresar para conseguir su solución en una
computadora, mediante el método denominado diseño descendente.
• El proceso de la rotura de un problema principal en etapas o
Sub problemas más sencillos se denomina refinamiento paso a
paso o sucesivos.
5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE
DATOS
Problema del
cálculo
del área del
rectángulo
Entrada
de
Datos
Salida del
resultado
Calculo
del area
Entrada
altura
Entrada
base
Area =
base x
altura
Salida
Altura Salida
Area
Salida
Base
5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE
DATOS
 TIPOS DE ALGORITMOS
 Cualitativos.
Son aquellos en los que se describen los pasos utilizando
palabras.
Ejemplos:
 La elaboración de un a receta
 Búsqueda de un número telefónico
 El cambio de una llanta
5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE
DATOS
 Cuantitativos
Son aquellos en los que se utilizan cálculos numéricos para
definir los pasos del proceso.
Ejemplos:
› Pasos a seguir para resolver una ecuación de segundo
grado.
› Pasos a seguir para calcular los sueldos de los empleados
de una empresa.
› Instrucciones para calcular los impuestos a pagar de los
vecinos de un municipio.
5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE
DATOS
Pseudocódigo
Es la combinación del lenguaje natural, símbolos, términos
utilizados dentro de la programación.
Algoritmo para calcular el área de un triángulo
1. Inicio.
2. Solicitar y leer los datos (base y altura)
3. A=(bxh)/2
4. Mostrar A
5. Fin
5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE
FLUJO Y PSEUDOCÓDIGO)
Definir si un numero es positivo o negativo
1. Inicio
2. escribir "introduce un número: "
3. leer número
4. si número >= 0 entonces
5. escribir "es positivo"
6. sino
7. escribir "es negativo"
8. fin si
9. fin
5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE
FLUJO Y PSEUDOCÓDIGO)
1. Inicio
2. ESCRIBIR "Introduce un número: "
3. LEER numero
4. SI (numero mod 2=0) ENTONCES
5. ESCRIBIR "es par"
6. SINO
7. ESCRIBIR "es impar"
8. FIN SI
9. FIN PROGRAMA
5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE
FLUJO Y PSEUDOCÓDIGO)
Diagramas de flujo
Los diagramas de flujo son una manera de representar
visualmente el flujo de datos a través de sistemas de
tratamiento de información. Los diagramas de flujo describen
que operaciones y en que secuencia se requieren para
solucionar un problema dado.
5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE
FLUJO Y PSEUDOCÓDIGO)
› Todo diagrama debe tener un inicio y un fin.
› Se deben se usar solamente líneas de flujo
horizontales y/o verticales.
› Se debe evitar el cruce de líneas utilizando los
conectores.
› Se deben usar conectores solo cuando sea
necesario.
› No deben quedar líneas de flujo sin conectar.
› Se deben trazar los símbolos de manera que
se puedan leer de arriba hacia abajo y de
izquierda a derecha.
5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE
FLUJO Y PSEUDOCÓDIGO)
› Todo texto escrito dentro de un símbolo deberá
ser escrito claramente, evitando el uso de
muchas palabras.
› Evitar la terminología de un lenguaje de
programación o máquina.
› Utilizar comentarios ya sea al margen o mediante
el símbolo 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.
5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE
FLUJO Y PSEUDOCÓDIGO)
Diagrama de flujo para
obtención del área del
triángulo
5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE
FLUJO Y PSEUDOCÓDIGO)
5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE
FLUJO Y PSEUDOCÓDIGO)
Construir un algoritmo que permita calcular el jornal
básico de un obrero, si para ello se requiere ingresar
por teclado la tarifa horaria y el numero de horas
trabajadas. La formula del jornal es :
Jornal= TarHora * NroHora
Proceso sueldo
Leer TarHora;
Leer NroHoras;
Jornal<-TarHora*NroHoras;
Escribir “Jornal”, Jornal;
FinProceso
Diagrama de flujo para
obtención del mayor de dos
números
5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE
FLUJO Y PSEUDOCÓDIGO)
Proceso compnumeros
Leer a;
Leer b;
Si a>b Entonces
Escribir "a es mayor";
Sino
Escribir "b es mayor";
FinSi
FinProceso
Proceso pares
Escribir "DAME EL VALOR DE X";
Leer x;
Si (x mod 2=0) Entonces
Escribir "X ES PAR";
Sino
Escribir "X ES IMPAR";
FinSi
FinProceso
5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE
FLUJO Y PSEUDOCÓDIGO)
VERIFICAR SI UN
NUMERO ES PAR O
IMPAR
Area del circulo y volúmen con el mismo radio
1.Principal ()
2.Inicio
3.cte pi 3.1416
4.real r, area, vol
5.Imprimir “area y volumen de un esfera en
cm”
6.Imprime “Dame el radio”
7.Leer radio
8.area = pi *r*r
9.Imprimir “Area del circulo es =”, area
10.vol =(4/3)*pi *r*r*r
11.Imprimir “volumen de la esfera es =“, vol,
“cm cúbicos”
12.Fin
5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE
FLUJO Y PSEUDOCÓDIGO)
Imprimir si la persona es niño, adolescente, adulto o anciano.
a)0 a 12 es niño
b)13 a 17 es adolescente
c)18 a 80 es adulto
d)Mayor a 80 es anciano
5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE
FLUJO Y PSEUDOCÓDIGO)
Proceso edad
Leer edad;
Si edad >= 0 Entonces
Si (edad >= 0 y edad <= 12) Entonces
Escribir "ERES UN NIÑO";
Sino
Si edad >= 13 y edad <= 17 Entonces
Escribir "ERES UN ADOLESCENTE"
Sino
Si edad >= 18 y edad <= 80 Entonces
Escribir "ERES UN ADULTO"
Sino
Escribir "ERES UN ANCIANO"
Fin Si
Fin Si
Fin Si
Sino
Escribir "edad incorrecta";
Fin Si
FinProceso
5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE
FLUJO Y PSEUDOCÓDIGO)
 Mostrar los primeros 10 números positivos
Inicio
Entero i
i=1
Mientras (i<=10)
Inicio
Imprimir i
i=i+1
FinMientras
Fin
5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE
FLUJO Y PSEUDOCÓDIGO)
 Tipos de datos
El tipo de datos es un conjunto (rango) de
valores que puede tomar durante un
programa . Con lo que se quiere decir que el
tipo de dato determina la naturaleza del
conjunto de valores que puede tomar una
variable. Cabe resaltar que si se utilizamos
valores fuera de rango correspondiente, el
compilador no sabrá que hacer con dicho
dato e imprimirá en pantalla datos erróneos.
5.4. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE
DATOS
La asignación de tipos a los datos tienen dos objetivos principales:
 Detectar errores de operaciones en programas.
 Determinar como ejecutar las operaciones.
Los datos que utilizan los programas y algoritmos se pueden
clasificar como simples y compuestos.
Datos simples: numéricos (enteros y reales), lógicos (booleanos) y
caracteres.
TIPO
TAMAÑO
(bytes)
int (entero) 2
float (flotante) 4
double ( flotante de doble precisión) 8
char (carácter) 1
5.4. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE
DATOS
Los tipos de datos predefinidos son: numéricos, lógicos, caracteres y
cadenas. De estos tipos solo el cadena es de tipo compuesto, el resto,
son los tipos de datos simples considerados estándares. Esto quiere decir
que la mayoría de los lenguajes de programación permiten trabajar con
ellos.
 Los enteros no tienen fracciones o decimales pueden ser negativo o
positivos
 Tipo reales o de coma flotante (float/double). Contienen un punto decimal
pueden ser positivos o negativos formando el subconjunto de números
reales.
5.4. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE
DATOS
 Datos lógicos o booleanos. Hay lenguajes que solo
pueden tomar uno de dos valores verdadero(true) o
falso (false). En C no existe el tipo lógico pero se puede
implementar con un número entero, 0 es falso y
cualquier número diferente de cero es verdadero.
 Caracteres. En el interior de la computadora se hacen
“palabras” de 8 bits y así poder representar todos los
caracteres del código ASCII.
5.4. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE
DATOS
Estructura Secuencial…
Es la estructura más sencilla ya
que el programador identifica los
datos de entrada, los procesa y
muestra o imprime los datos de
salida.
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
Principal
Inicio ()
Instrucción 1
Instrucción 2
.
.
.
Instrucción n
Fin
main ()
{
inst 1;
inst 2;
inst 3;
.
.
.
.
inst n;
}
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
Suma de 2 números
1. /*SUMA DE DOS NUMEROS ENTEROS*/
2. #include <stdio.h>
3. #include <stdlib.h>
4. main ()
5. {
6. int n1,n2,suma;
7. system ("cls");
8. printf ("DAME EL VALOR DEL PRIMER NUMERO: ");
9. scanf ("%i",&n1);
10. printf ("nDAME EL VALOR DEL SEGUNDO NUMERO: ");
11. scanf ("%i",&n2);
12. suma =n1+n2;
13. printf ("nEL RESULTADO ES:%i ",suma);
14. system (”pause”);
15. return 0;
16. }
En C todo aquello que se encuentre
dentro del (/*) y fin (*/) de un comentario.
Los comentarios delimitados por estos
símbolos pueden ocupar varias líneas .
Cuando se utilice el símbolo // , se
tendrá que escribir al principio de cada
renglón.
# include <stdio.h>
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
Área del círculo y Volúmen de una esfera con el
mismo radio
1. /*radio y volumen*/
2. #include <stdio.h>
3. #include <stdlib.h>
4. #define PI 3.14159
5. main ()
6. {
7. float radio, area, volumen;
8. system ("cls");
9. printf ("ESTE PROGRAMA CALCULA EL AREA Y VOLUMEN DE UNA ESFERA A PARTIR DE SU
RADIOnn");
10. printf ("CUANTO MIDE EL RADIO?: " );
11. scanf ("%f",&radio);
12. area= PI*radio*radio;
13. printf ("nEl area del circulo es %.2f cm",area);
14. volumen=(4./3)*PI*radio*radio*radio;
15. printf ("nEl volumen de la esfera es %.2f cm cubicos",volumen);
16. system (”pause”);
17. return 0;
18. }
Una tienda vende libros a $100, cuadernos a $15.50 y plumas a
$2.35. Calcule el monto de la venta según el número de artículos
vendidos
Estructura selectiva o condicional…
Es una estructura con una sola entrada y una sola salida en la cual se
realiza una acción( una o varias instrucciones). La condición puede
ser simple o compuesta
La sentencia if
La sentencia if es usada para evaluar una expresión lógica que
puede tomar valores de 1 y 0, es decir, verdadero o falso, la
sentencia if se conoce como estructura de selección simple, ya que
si se cumple la condición especificada entre los paréntesis, se
ejecuta un bloque de código, y si no se cumple, no se ejecuta nada.
Lo que quiere decir que esta sentencia nos permite tomar
decisiones, podemos hacer una pregunta y la contestación sólo
puede ser verdadera o falsa, es decir, sí o no.
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
/*Ejemplo que indica si un número es positivo*/
#include <stdio.h>
#include <stdlib.h>
main ()
{
int N;
printf(“Introduce el valor de N:”);
scanf(“%d”,&N);
if (N>0)
printf(“Numero positivon”);
system (”pause”);
return 0;
}
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
La sentencia if -else
Esta sentencia es más o menos como la anterior, con la diferencia que
en este ejemplo, si la condición se evalúa como verdadera, se ejecuta
una secuencia de instrucciones, mientras que si la condición se evalúa
como falsa se ejecuta otra secuencia de instrucciones
/*Ejemplo que indica si un número es positivo o negativo*/
#include <stdio.h>
#include <stdlib.h>
main ()
{
int N;
printf(“Introduce el valor de N:”);
scanf(“%d”,&N);
if (N>0)
printf(“Numero positivon”);
else
printf(“Numero negativon”);
system (”pause”);
return 0;
}
Anidamiento o escalonamiento si-si no-si (if-else-if)
Consiste en insertar una instrucción dentro de otra.
Uno de los aspectos más confusos en los if anidados.
Un if anidado es una sentencia if que es el objeto de
otro if o else . La razón de los if anidados son tan
problemáticos es que resulta confuso saber qué else
se asocia con qué if .
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
/*Ejemplo que indica si un número es positivo, negativo o cero*/
#include <stdio.h>
#include <stdlib.h>
main ()
{
int N;
printf(“Introduce el valor de N:”);
scanf(“%d”,&N);
if (N==0)
printf(“Ceron”);
else if (N>0)
printf(“Numero positivon”);
else
printf(“Numero negativon”);
system(“pause”);
return 0;
}
Oprimir una tecla e imprimir que tipo de tecla es carácter, letra mayúscula,
letra minúscula o dígito
La sentencia switch - case
Esta sentencia es la utilizada para evaluar las llamadas
“opciones de abanico”, de donde se saca una de varias
opciones, es decir, switch permite múltiples ramificaciones
con una sola expresión a evaluar. Es más eficiente que
utilizar muchos if anidados. Un enunciado switch evalúa una
expresión.
La instrucción switch es una instrucción de control que
controla múltiples selecciones y enumeraciones pasando el
control a una de las instrucciones case de su cuerpo.
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
Solicita un digito al usuario entre 1 y7, el programa será capaz de escribir el día
de la semana que le corresponde
#include <stdio.h>
#include <stdlib.h>
main ()
{
int N;
printf("Introduce el dia de la semana
(1-7):");
scanf("%d", &N);
switch (N)
{
case 1:
printf("LUNESn");
break;
case 2:
printf("MARTESn");
break;
case 3:
printf("MIERCOLESn");
break;
case 4:
printf("JUEVESn");
break;
case 5:
printf("VIERNESn");
break;
case 6:
printf("SABADOn");
break;
case 7:
printf("DOMINGOn");
break;
default:
printf("Dia erroneon");
}
system (“pause”);
return 0;
}
La repetición de una acción (una o varias instrucciones) se va a llevar
a cabo mientras se cumpla cierta condición; para que esta acción
termine, la acción misma debe de modificar la(s) variable(s) de control
que van a intervenir en la condición. Dicha condición puede estar
definida por un ciclo desde (for), un bucle mientras (while) y hacer-
mientras (do-while).
Bucle, ciclo, iteración : Son estructuras de control que permite repetir
una o más sentencias múltiples veces. En cada vuelta el ciclo
comprueba si la condición es verdadera, rompiéndose el ciclo si es
falsa.
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
 Contadores, acumuladores: estas variables se van incrementando o
decrementando su valor a lo largo de la ejecución del algoritmo o del
programa.
1. Se debe inicializar antes de entrar al ciclo.
2. Dentro del ciclo debe aparecer a ambos lados de la asignación .
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
 Debemos de realizar una operación de inicialización y
posteriormente los incrementos y los decrementos
correspondientes. La inicialización consiste en
asignarle al contador un valor de inicio. Se pone antes
y fuera del ciclo.
 Acumulador o totalizador
Tiene la misma función que un contador pero con la
diferencia que el incremento o decremento es
variable. Es decir es una variable que va almacenar
cantidades resultantes de operaciones resultantes
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
El encargado de una obra recibe un suministro de camiones con
hormigón. El control del volumen recibido lo lleva a través de una tabla
donde apunta hora de llegada, volumen servido por el camión que
llega y volumen acumulado a lo largo del día.
Hora Volumen
servido m
3
Acumulado m
3
10:15 7 7
10:45 5 12
11:08 6 18
11:37 5 23
11:59 7 30
La fórmula que utiliza es: Acumulado = Volumen servido actual +
Acumulado anterior.
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
WHILE
 El propósito del ciclo while es ejecutar muchas
instrucciones varias veces. Se escribe como una
instrucción if solo que cambiando la palabra clave
while.
 Forma general
while (condición) { instrucciones a repetir mientras la
condición sea true }
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
Características
1. La condición se evalúa antes del ciclo, si es verdadera se
ejecuta el bucle; y si es falsa se sale y el control pasa a la
instrucción siguiente al ciclo.
2. Si la condición es falsa cuando se revisa por primera vez el
bucle no se ejecuta nunca, es decir no entra ninguna vez.
3. Mientras la condición sea verdadera el bloque de
instrucciones se ejecutará indefinidamente al menos que
exista por lo menos una instrucción que modifique el valor
de un elemento de la condición.
4. Si existe más de una instrucción se necesitan delimitar el
bloque de instrucciones {….}
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
CICLO WHILE
1. /*PROGRAMA QUE ILUSTRA EL CICLO WHILE*/
2. #include <stdio.h>
3. #include <stdlib.h>
4. main()
5. {
6. int cont=0;
7. system ("cls");
8. while (cont<10)
9. {
10. printf("EL VALOR DEL CONTADOR ES =%d n", cont);
11. cont=cont+1;
12. }
13. system("pause"); return 0;
14. }
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
1. #include<stdio.h>
2. #include<stdlib.h>
3. main()
4. {
5. char contador;
6. contador = 0;
7. while (contador<100)
8. {
9. printf ("*t");
10. contador ++;
11.}
12.system("pause");
13.return 0;
14.}
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
1. /*Pares60*/
2. #include<stdio.h>
3. #include<stdlib.h>
4. main()
5. {
6. int x;
7. x=20;
8. printf("Pares entre 20-60n");
9. while(x<=60)
10. {
11. printf("t%dn",x);
12. x+=2;
13. }
14. system("pause");
15. return 0;
16.}
1. /*Tabla Multiplicar*/
2. #include<stdio.h>
3. #include<stdlib.h>
4. main()
5. {
6. int tb,res,d;
7. system("cls");
8. tb=0;
9. printf("Digita la tabla de multiplicar:
");
10. scanf("n%d",&d);
11. while(tb<=10)
12. {
13. res=tb*d;
14. printf("nt%d*%d=%dn",d,tb,res);
15. tb++;
16. }
17. system("pause");
18.}
CICLO DO WHILE
Su diferencia básica con el ciclo while es que la prueba de
condición es hecha al finalizar el ciclo, es decir las
instrucciones se ejecutan cuando menos una vez, porque
primero ejecuta las instrucciones y al final evalúa la
condición.
También se le conoce por esta razón como ciclo de
condición de salida.
Forma general
cargar o inicializar variable de condición;
do{ grupo cierto de instrucción(es); instrucción(es) de
rompimiento de ciclo; }
while(condición);
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
Características
1. Siempre entras por lo menos una vez al ciclo, ya que la condición
esta después del ciclo.
2. Si la condición es verdadera entra de nuevo al ciclo y regresa a
revisar la condición, hasta que sea falsa se sale del bucle
3. Debe existir una instrucción dentro del ciclo que modifique la
condición, de lo contrario se hace infinita.
4. Si tiene más de una instrucción, necesita obligadamente del inicio-
fin {….}
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
1. /*PROGRAMA QUE ILUSTRA EL CICLO DO WHILE*/
2. #include <stdio.h>
3. #include <stdlib.h>
4. main()
5. {
6. int cont;
7. cont=0;
8. do
9. {
10. printf("EL VALOR DEL CONTADOR ES =%d n", cont);
11. cont=cont+1;
12. }
13. while (cont<=9);
14. system("pause"); return 0; }
1. /*FACTORIAL DE UN NUMERO*/
2. #include <stdio.h>
3. #include <stdlib.h>
4. main()
5. {
6. int i=1, n, fact=1;
7. printf("Dame un numero: ");
8. scanf("%d",&n);
9. do
10.{
11.fact=fact*i;
12.i++;
13.}
14.while (i<=n);
15.printf("t El factorial de %d es %dnn",n,fact);
16.system("pause"); return 0;
17.}
1. /* OBTENCION DE A MEDIA DE n
NUMEROS*/
2. #include <stdio.h>
3. #include <stdlib.h>
4. main()
5. {
6. int n, cont=1;
7. float x, media,suma=0;
8. printf("CUANTOS NUMEROS? ");
9. scanf("%d",&n);
10. do
11. {
12. printf("x= ");
13. scanf ("%f", &x);
14. suma +=x;
15. ++cont;
16. }
17. while (cont<=n);
18. media=suma/n;
19. printf("n LA SUMA ES =%f n",
suma);
20. printf("n LA MEDIA ES =%f n",
media);
21. system("pause"); return 0;
22.}
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
CICLO FOR
 Esta orden es similar al while, pero es mas
fácil de usar si se están contando o indexando
variables, este ciclo combina tres elementos :
inicialización, prueba e incremento.
 Forma general
for (inicio; condicion; paso-siguiente)
{ cuerpo }
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
Características
1. Se debe conocer el valor de la variable inicial y final antes de entra al
ciclo
2. La condición se evalúa antes del bloque de instrucciones. Si la
condición es verdadera se ejecuta el bloque de instrucciones, y si es
falsa se sale y pasa el control de instrucciones al siguiente bloque.
3. No se puede cambiar el valor de las variables de control, el valor inicial
ni el valor final dentro del ciclo.
4. Se puede incrementar o decrementar la variable de control según se
requiera.
5. El incremento o el decremento dela variable de control es
automático.
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
1. /*PROGRAMA QUE ILUSTRA EL CICLO FOR*/
2. #include <stdio.h>
3. #include <stdlib.h>
4. main()
5. {
6. int indice;
7. for (indice=0;indice<11;indice=indice+1)
8. {
9. printf("EL VALOR DEL INDICE ES =%d n", indice);
10. }
11. system("pause"); return 0;
12. }
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
1. /* FACTORIAL DE UN NUMERO*/
2. #include <stdio.h>
3. #include <stdlib.h>
4. main() {
5. int i, n, fact;
6. printf("Dame un numero: nn");
7. scanf("%d",&n);
8. fact=1;
9. for(i=1; i<=n; i++)
10. fact=fact*i;
11. printf("El factorial de %d es %dnn",n,fact);
12. system("pause"); return 0;
13. }
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
1. /* POTENCIA DE UN NUMERO n*/
2. #include <stdio.h>
3. #include <stdlib.h>
4. main()
5. {
6. int base, n, exp, res=1;
7. printf("Introduce la base de la potencia: ");
8. scanf("%d",&base);
9. printf("nnIntroduce el exponente de la
potencia: ");
10. scanf("%d",&exp);
11. printf("nn");
12. for (n=0;n<exp;n++)
13. {
14. res=res*base;
15. printf("(%d)",base);
16. }
17. printf(" =%d",res);
18. printf("nnResultado: %d ^ %d
=%dn",base,exp,res);
19. system("pause"); return 0; }
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
1. #include <stdio.h>
2. #include <stdlib.h>
3. main()
4. {
5. int i, j;
6. for(i='z'; i>='a'; i--)
7. {
8. for(j=i; j>='a'; j--)
9. { printf("%c",i);
10. }
11. printf("n");
12. }
13. system("pause");
14.}
5.5. ESTRUCTURAS BÁSICAS
(SECUENCIAL, CONDICIONAL
E ITERACIÓN)
1. /*Muestrar los multiplos de 3
comprendidos entre los numeros
1 y 20*/
2. #include <stdio.h>
3. #include <stdlib.h>
4. #define p printf
5. #define s scanf
6. main ()
7. {
8. int i;
9. system ("cls");
10. for (i=1;i<=20;i++)
11. {
12. p ("%d",i);
13. if (i%3==0)
14. p (" Es multiplo de
3tnn");
15. else
16. p (" No es multiplo de
3tnn");
17. } /* fin de for*/
18. system ("pause");return 0;
19.}
SERIE DE FIBONACCI WHILE
1. /* SERIE DE FIBONACCI
(WHILE)*/
2. #include <stdio.h>
3. #include<stdlib.h>
4. main()
5. {
6. int contador=0,
numero1=0,numero2=1,numero3
;
7. printf("nImprime los primeros 10
numeros de la serie
fibonaccinnn");
8. while (contador<10)
9. {
10.
numero3=numero1+numero2;
11. printf("t %i n",numero3);
12. numero1=numero2;
13. numero2=numero3;
14. contador++;
15. }
16. system ("pause");
17. }
SERIE DE FIBONACCI DO WHILE
1. /* SERIE DE FIBONACCI (DO
WHILE)*/
2. #include <stdio.h>
3. #include<stdlib.h>
4. main()
5. {
6. int contador=0,
numero1=0,numero2=1,numero3
;
7. printf("nImprime los primeros 10
numeros de la serie
fibonaccin");
8. do{
9. numero3=numero1+numero2;
10. printf("t%in",numero3);
11. numero1=numero2;
12. numero2=numero3;
13. contador++;
14. }
15. while (contador<=9);
16. system("pause"); return 0;
17. }
SERIE DE FIBONACCI FOR (n
NUMEROS)
1. /* SERIE DE FIBONACCI FOR*/
2. #include <stdio.h>
3. #include<stdlib.h>
4. main()
5. {
6. int contador,
numero1,numero2,numero3,n;
7. numero1=0;
8. numero2=1;
9. printf("nHasta que numero de
la serie de Fibonacci deseas?");
10. scanf ("%d",&n);
12. for
(contador=1;contador<=n;contad
or++)
13. {
14. numero3=numero1+numero2;
15. printf("t%d)
%in",contador,numero3);
16. numero1=numero2;
17. numero2=numero3;
18. }
19. system("pause");
20. }
Tema 5

Más contenido relacionado

La actualidad más candente

Aplicacion de las ecuaciones diferenciales de orden superior
Aplicacion de las ecuaciones diferenciales de orden superiorAplicacion de las ecuaciones diferenciales de orden superior
Aplicacion de las ecuaciones diferenciales de orden superiorIsai Esparza Agustin
 
Grafos resueltos
Grafos resueltosGrafos resueltos
Grafos resueltosmenamigue
 
Algoritmos para matlab
Algoritmos para matlabAlgoritmos para matlab
Algoritmos para matlabVitoto96
 
Resolución de ecuaciones diferenciales con MATLAB R2015a
Resolución de ecuaciones diferenciales  con  MATLAB  R2015aResolución de ecuaciones diferenciales  con  MATLAB  R2015a
Resolución de ecuaciones diferenciales con MATLAB R2015aJoanny Ibarbia Pardo
 
Eliminar elementos de una cola
Eliminar elementos de una colaEliminar elementos de una cola
Eliminar elementos de una colajeffersoncenteno
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesJosé Antonio Sandoval Acosta
 
Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completoBoris Salleg
 
ejercicios de recorrido de grafos (arboles)
ejercicios de recorrido de grafos (arboles) ejercicios de recorrido de grafos (arboles)
ejercicios de recorrido de grafos (arboles) brayan0015
 
Metodo de newton raphson-ANTONIO ZEGARRA
Metodo de newton raphson-ANTONIO ZEGARRAMetodo de newton raphson-ANTONIO ZEGARRA
Metodo de newton raphson-ANTONIO ZEGARRAAntonio Zegarra Vargas
 

La actualidad más candente (20)

Recursividad
RecursividadRecursividad
Recursividad
 
Aplicacion de las ecuaciones diferenciales de orden superior
Aplicacion de las ecuaciones diferenciales de orden superiorAplicacion de las ecuaciones diferenciales de orden superior
Aplicacion de las ecuaciones diferenciales de orden superior
 
Regla de Simpson tres octavos
Regla de Simpson tres octavosRegla de Simpson tres octavos
Regla de Simpson tres octavos
 
Grafos resueltos
Grafos resueltosGrafos resueltos
Grafos resueltos
 
Algoritmo de quicksort
Algoritmo de quicksortAlgoritmo de quicksort
Algoritmo de quicksort
 
Ordenamiento parte 2
Ordenamiento parte 2Ordenamiento parte 2
Ordenamiento parte 2
 
Algoritmos para matlab
Algoritmos para matlabAlgoritmos para matlab
Algoritmos para matlab
 
Heap sort
Heap sortHeap sort
Heap sort
 
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
 
Resolución de ecuaciones diferenciales con MATLAB R2015a
Resolución de ecuaciones diferenciales  con  MATLAB  R2015aResolución de ecuaciones diferenciales  con  MATLAB  R2015a
Resolución de ecuaciones diferenciales con MATLAB R2015a
 
Eliminar elementos de una cola
Eliminar elementos de una colaEliminar elementos de una cola
Eliminar elementos de una cola
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Merge Sort
Merge SortMerge Sort
Merge Sort
 
Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completo
 
Lista simple
Lista simpleLista simple
Lista simple
 
ejercicios de recorrido de grafos (arboles)
ejercicios de recorrido de grafos (arboles) ejercicios de recorrido de grafos (arboles)
ejercicios de recorrido de grafos (arboles)
 
Teoria de grafos
Teoria de grafosTeoria de grafos
Teoria de grafos
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
Metodo de newton raphson-ANTONIO ZEGARRA
Metodo de newton raphson-ANTONIO ZEGARRAMetodo de newton raphson-ANTONIO ZEGARRA
Metodo de newton raphson-ANTONIO ZEGARRA
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 

Similar a Tema 5

Algoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoAlgoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoClariza
 
Evaluacion de algoritmo
Evaluacion de algoritmoEvaluacion de algoritmo
Evaluacion de algoritmoSergioERondon
 
Introduccion A La Programacion
Introduccion A La ProgramacionIntroduccion A La Programacion
Introduccion A La ProgramacionMary Sanchez
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoDesarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoLeidiCaro1
 
algoritmos
algoritmosalgoritmos
algoritmosRaul LG
 
Resolución de problemas y algoritmo
Resolución de problemas y algoritmoResolución de problemas y algoritmo
Resolución de problemas y algoritmoNombre Apellidos
 
Trabajo tecnologia 3 periodo
Trabajo tecnologia 3 periodoTrabajo tecnologia 3 periodo
Trabajo tecnologia 3 periodoDana Montaño
 
Trabajo tecnologia 3 periodo
Trabajo tecnologia 3 periodoTrabajo tecnologia 3 periodo
Trabajo tecnologia 3 periodoVictoriaRamrez13
 
presentacionalgoritmos-111003021701-phpapp01.pdf
presentacionalgoritmos-111003021701-phpapp01.pdfpresentacionalgoritmos-111003021701-phpapp01.pdf
presentacionalgoritmos-111003021701-phpapp01.pdfMariselaBardales1
 
Presentacion algoritmos
Presentacion algoritmosPresentacion algoritmos
Presentacion algoritmosaralylopez88
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento SebastianGomezPayan
 

Similar a Tema 5 (20)

Tema 5 1
Tema 5 1Tema 5 1
Tema 5 1
 
Tema 5
Tema 5Tema 5
Tema 5
 
Tema n° 1
Tema n° 1Tema n° 1
Tema n° 1
 
Programación
ProgramaciónProgramación
Programación
 
Programación u1
Programación   u1Programación   u1
Programación u1
 
Algoritmos y programacion en C++
Algoritmos y programacion en C++Algoritmos y programacion en C++
Algoritmos y programacion en C++
 
Algoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoAlgoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujo
 
Evaluacion de algoritmo
Evaluacion de algoritmoEvaluacion de algoritmo
Evaluacion de algoritmo
 
Introduccion A La Programacion
Introduccion A La ProgramacionIntroduccion A La Programacion
Introduccion A La Programacion
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoDesarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento
 
algoritmos
algoritmosalgoritmos
algoritmos
 
Resolución de problemas y algoritmo
Resolución de problemas y algoritmoResolución de problemas y algoritmo
Resolución de problemas y algoritmo
 
Trabajo tecnologia 3 periodo
Trabajo tecnologia 3 periodoTrabajo tecnologia 3 periodo
Trabajo tecnologia 3 periodo
 
Trabajo tecnologia 3 periodo
Trabajo tecnologia 3 periodoTrabajo tecnologia 3 periodo
Trabajo tecnologia 3 periodo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
presentacionalgoritmos-111003021701-phpapp01.pdf
presentacionalgoritmos-111003021701-phpapp01.pdfpresentacionalgoritmos-111003021701-phpapp01.pdf
presentacionalgoritmos-111003021701-phpapp01.pdf
 
Presentacion algoritmos
Presentacion algoritmosPresentacion algoritmos
Presentacion algoritmos
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento
 

Más de Monica Castillo (20)

T3
T3T3
T3
 
T2
T2T2
T2
 
T1
T1T1
T1
 
2 ex parcial_b_gpo1115
2 ex parcial_b_gpo11152 ex parcial_b_gpo1115
2 ex parcial_b_gpo1115
 
2 ex parcial_a_gpo1115
2 ex parcial_a_gpo11152 ex parcial_a_gpo1115
2 ex parcial_a_gpo1115
 
2 ex parcial_b_respuestas
2 ex parcial_b_respuestas2 ex parcial_b_respuestas
2 ex parcial_b_respuestas
 
2 ex parcial_a_respuestas
2 ex parcial_a_respuestas2 ex parcial_a_respuestas
2 ex parcial_a_respuestas
 
Serie algoritmos
Serie algoritmosSerie algoritmos
Serie algoritmos
 
Serie pseint
Serie pseintSerie pseint
Serie pseint
 
T4 1
T4 1T4 1
T4 1
 
Linux esquema
Linux esquemaLinux esquema
Linux esquema
 
Linux practica 4
Linux practica 4Linux practica 4
Linux practica 4
 
T3
T3T3
T3
 
P no 2
P no 2P no 2
P no 2
 
T2
T2T2
T2
 
P no 1
P no 1P no 1
P no 1
 
T1
T1T1
T1
 
Arreglos
ArreglosArreglos
Arreglos
 
Práctica no3
Práctica no3Práctica no3
Práctica no3
 
Tema 5 3
Tema 5 3Tema 5 3
Tema 5 3
 

Último

Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFlor Idalia Espinoza Ortega
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 

Último (20)

Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamica
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 

Tema 5

  • 1. TEMA V. FUNDAMENTOS DE ALGORITMOS Ing. Dulce Mónica Castillo Corona
  • 2. 5.1. COMPUTABILIDAD Y CONCEPTO DE ALGORITMO : MÁQUINA DE TURING Existieron varios intentos de formalizar la noción de procedimiento efectivo, pero el primero en ser aceptado se llevó a cabo por Alan Turing en los años 30, dando como resultado la máquina de Turing; la importancia de este trabajo, radica en que es el primer análisis general para comprender como es que se realiza un cálculo, y condujo a una abstracción convincente y ampliamente aceptada del concepto de procedimiento efectivo.
  • 3. Es importante mencionar que el análisis de Turing fué hecho antes de la invención de las calculadoras de escritorio y que sus resultados condujeron más o menos de forma directa a la invención de la computadora digital de John Von Neumann en los años 40, una máquina que básicamente tiene la misma arquitectura que las computadoras actuales. Además, es importante notar que para Turing una “computadora” es una persona que resuelve un problema computacional en una forma mecánica y no se refiere a una máquina. 5.1. COMPUTABILIDAD Y CONCEPTO DE ALGORITMO : MÁQUINA DE TURING
  • 4. 5.1. COMPUTABILIDAD Y CONCEPTO DE ALGORITMO : MÁQUINA DE TURING
  • 5. Una máquina de Turing consiste de una cabeza de lectura/escritura y una cinta infinita dividida en cuadros como lo muestra la figura. Cada celda de la cinta puede estar en blanco o tener almacenado un símbolo de un alfabeto finito de símbolos. La cinta puede estar inicialmente vacía (todas las celdas en blanco), o tener un número finito de celdas que contienen algún símbolo. En cualquier momento, la cabeza puede leer el contenido de la celda y posteriormente borrar el símbolo, dejarlo igual ó sustituirlo con algún otro símbolo. Después, la cabeza puede moverse una posición a la derecha, una posición a la izquierda ó quedarse en la misma posición. Si la celda se encuentra vacía, la cabeza puede dejarla vacía o grabar algún símbolo. 5.1. COMPUTABILIDAD Y CONCEPTO DE ALGORITMO : MÁQUINA DE TURING
  • 6. Los algoritmos permiten encontrar la solución a problemas computables. Intuitivamente las personas efectuamos cotidianamente una serie de pasos, procedimientos o acciones que nos permitan alcanzar algún resultado o resolver un problema (al bañarnos, al desayunar, al ir a la universidad). En realidad todo el tiempo estamos aplicando algoritmos para resolver problemas. 5.2. ELEMENTOS DE LOS ALGORITMOS Y TIPOS DE DATOS
  • 7.  Un algoritmo es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema.  Dado un estado inicial y una entrada, a través de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solución. 5.2. ELEMENTOS DE LOS ALGORITMOS Y TIPOS DE DATOS
  • 8. Etapas o pasos para la creación de un programa 1.Definición del problema. La cual deberá ser clara y precisa. 2.Análisis del problema: a) Inf. que se necesita para obtener el resultado seseado (datos de entrada). b) Inf. que se desea producir (datos de salida). c) Métodos y fórmulas para procesar datos y producir esa salida. 3.Diseño y técnicas para la formulación de un algoritmo. Se centra en desarrollar el algoritmo basándonos en las especificaciones de la etapa del análisis y esto lo haremos mediante un diagrama de flujo o un pseudocódigo. 5.2. ELEMENTOS DE LOS ALGORITMOS Y TIPOS DE DATOS
  • 9. 4. Codificación. Se transcribe el algoritmo definido en la etapa de diseño e algún lenguaje de programación al cual se le conoce como código fuente. 5. Prueba y depuración. Consiste en capturar datos hasta que el programa funcione correctamente. A la actividad de localizar errores se le llama depuración . Existen dos tipos de sintaxis de y de lógica. a) Sintaxis: es la prueba más sencilla y la realiza el compilador del programa cada vez que se ejecuta el programa hasta que el código no presente errores , es decir que la sintaxis que requiere el lenguaje sea la correcta. 5.2. ELEMENTOS DE LOS ALGORITMOS Y TIPOS DE DATOS
  • 10. b) Prueba lógica: Es la más complicada por que esta la realiza e programador; consiste en la captura de diferentes valores y revisar que el resultado sea el deseado. 6. Documentación. Es la guía o comunicación que permite al programador o al usuario conocer la funcionalidad del programa: a) Interna: Se genera con el mismo código y generalmente es mediante comentarios. b) Externa: Son los manuales es independiente del programa. También puede ser la ayuda en el mismo sw. 7. Mantenimiento. En algunas ocasiones será necesario realizarle al programa ciertas modificaciones o ajustes para que siga funcionando perfectamente. 5.2. ELEMENTOS DE LOS ALGORITMOS Y TIPOS DE DATOS
  • 11. Reglas de los algoritmos: › Preciso: implica el orden de realización de cada uno de los pasos › Definido: si se sigue dos veces, se obtiene el mismo resultado. › Finito: Tiene un numero determinado de pasos, implica que tiene un fin › Correcto. › Debe tener al menos una salida. › Debe ser sencillo y legible. › Eficiente y efectivo. 5.2. ELEMENTOS DE LOS ALGORITMOS Y TIPOS DE DATOS
  • 12. La solución de un problema complejo puede requerir muchos pasos, es necesario dividir el problema en sub problemas más sencillos de resolver. • Este método se denomina divide y vencerás y es aplicable a la resolución y escritura de algoritmos y programas para computadora. • Este método de división de un problema en otros sub problemas más sencillos se puede expresar para conseguir su solución en una computadora, mediante el método denominado diseño descendente. • El proceso de la rotura de un problema principal en etapas o Sub problemas más sencillos se denomina refinamiento paso a paso o sucesivos. 5.2. ELEMENTOS DE LOS ALGORITMOS Y TIPOS DE DATOS
  • 13. Problema del cálculo del área del rectángulo Entrada de Datos Salida del resultado Calculo del area Entrada altura Entrada base Area = base x altura Salida Altura Salida Area Salida Base 5.2. ELEMENTOS DE LOS ALGORITMOS Y TIPOS DE DATOS
  • 14.  TIPOS DE ALGORITMOS  Cualitativos. Son aquellos en los que se describen los pasos utilizando palabras. Ejemplos:  La elaboración de un a receta  Búsqueda de un número telefónico  El cambio de una llanta 5.2. ELEMENTOS DE LOS ALGORITMOS Y TIPOS DE DATOS
  • 15.  Cuantitativos Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso. Ejemplos: › Pasos a seguir para resolver una ecuación de segundo grado. › Pasos a seguir para calcular los sueldos de los empleados de una empresa. › Instrucciones para calcular los impuestos a pagar de los vecinos de un municipio. 5.2. ELEMENTOS DE LOS ALGORITMOS Y TIPOS DE DATOS
  • 16. Pseudocódigo Es la combinación del lenguaje natural, símbolos, términos utilizados dentro de la programación. Algoritmo para calcular el área de un triángulo 1. Inicio. 2. Solicitar y leer los datos (base y altura) 3. A=(bxh)/2 4. Mostrar A 5. Fin 5.3. REPRESENTACIÓN DE LOS ALGORITMOS (DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
  • 17.
  • 18. Definir si un numero es positivo o negativo 1. Inicio 2. escribir "introduce un número: " 3. leer número 4. si número >= 0 entonces 5. escribir "es positivo" 6. sino 7. escribir "es negativo" 8. fin si 9. fin 5.3. REPRESENTACIÓN DE LOS ALGORITMOS (DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
  • 19. 1. Inicio 2. ESCRIBIR "Introduce un número: " 3. LEER numero 4. SI (numero mod 2=0) ENTONCES 5. ESCRIBIR "es par" 6. SINO 7. ESCRIBIR "es impar" 8. FIN SI 9. FIN PROGRAMA 5.3. REPRESENTACIÓN DE LOS ALGORITMOS (DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
  • 20. Diagramas de flujo Los diagramas de flujo son una manera de representar visualmente el flujo de datos a través de sistemas de tratamiento de información. Los diagramas de flujo describen que operaciones y en que secuencia se requieren para solucionar un problema dado. 5.3. REPRESENTACIÓN DE LOS ALGORITMOS (DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
  • 21. › Todo diagrama debe tener un inicio y un fin. › Se deben se usar solamente líneas de flujo horizontales y/o verticales. › Se debe evitar el cruce de líneas utilizando los conectores. › Se deben usar conectores solo cuando sea necesario. › No deben quedar líneas de flujo sin conectar. › Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha. 5.3. REPRESENTACIÓN DE LOS ALGORITMOS (DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
  • 22. › Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas palabras. › Evitar la terminología de un lenguaje de programación o máquina. › Utilizar comentarios ya sea al margen o mediante el símbolo 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. 5.3. REPRESENTACIÓN DE LOS ALGORITMOS (DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
  • 23.
  • 24. Diagrama de flujo para obtención del área del triángulo 5.3. REPRESENTACIÓN DE LOS ALGORITMOS (DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
  • 25. 5.3. REPRESENTACIÓN DE LOS ALGORITMOS (DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO) Construir un algoritmo que permita calcular el jornal básico de un obrero, si para ello se requiere ingresar por teclado la tarifa horaria y el numero de horas trabajadas. La formula del jornal es : Jornal= TarHora * NroHora
  • 26. Proceso sueldo Leer TarHora; Leer NroHoras; Jornal<-TarHora*NroHoras; Escribir “Jornal”, Jornal; FinProceso
  • 27. Diagrama de flujo para obtención del mayor de dos números 5.3. REPRESENTACIÓN DE LOS ALGORITMOS (DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO) Proceso compnumeros Leer a; Leer b; Si a>b Entonces Escribir "a es mayor"; Sino Escribir "b es mayor"; FinSi FinProceso
  • 28. Proceso pares Escribir "DAME EL VALOR DE X"; Leer x; Si (x mod 2=0) Entonces Escribir "X ES PAR"; Sino Escribir "X ES IMPAR"; FinSi FinProceso 5.3. REPRESENTACIÓN DE LOS ALGORITMOS (DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO) VERIFICAR SI UN NUMERO ES PAR O IMPAR
  • 29. Area del circulo y volúmen con el mismo radio 1.Principal () 2.Inicio 3.cte pi 3.1416 4.real r, area, vol 5.Imprimir “area y volumen de un esfera en cm” 6.Imprime “Dame el radio” 7.Leer radio 8.area = pi *r*r 9.Imprimir “Area del circulo es =”, area 10.vol =(4/3)*pi *r*r*r 11.Imprimir “volumen de la esfera es =“, vol, “cm cúbicos” 12.Fin 5.3. REPRESENTACIÓN DE LOS ALGORITMOS (DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
  • 30. Imprimir si la persona es niño, adolescente, adulto o anciano. a)0 a 12 es niño b)13 a 17 es adolescente c)18 a 80 es adulto d)Mayor a 80 es anciano 5.3. REPRESENTACIÓN DE LOS ALGORITMOS (DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
  • 31. Proceso edad Leer edad; Si edad >= 0 Entonces Si (edad >= 0 y edad <= 12) Entonces Escribir "ERES UN NIÑO"; Sino Si edad >= 13 y edad <= 17 Entonces Escribir "ERES UN ADOLESCENTE" Sino Si edad >= 18 y edad <= 80 Entonces Escribir "ERES UN ADULTO" Sino Escribir "ERES UN ANCIANO" Fin Si Fin Si Fin Si Sino Escribir "edad incorrecta"; Fin Si FinProceso 5.3. REPRESENTACIÓN DE LOS ALGORITMOS (DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
  • 32.
  • 33.  Mostrar los primeros 10 números positivos Inicio Entero i i=1 Mientras (i<=10) Inicio Imprimir i i=i+1 FinMientras Fin 5.3. REPRESENTACIÓN DE LOS ALGORITMOS (DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
  • 34.  Tipos de datos El tipo de datos es un conjunto (rango) de valores que puede tomar durante un programa . Con lo que se quiere decir que el tipo de dato determina la naturaleza del conjunto de valores que puede tomar una variable. Cabe resaltar que si se utilizamos valores fuera de rango correspondiente, el compilador no sabrá que hacer con dicho dato e imprimirá en pantalla datos erróneos. 5.4. ELEMENTOS DE LOS ALGORITMOS Y TIPOS DE DATOS
  • 35. La asignación de tipos a los datos tienen dos objetivos principales:  Detectar errores de operaciones en programas.  Determinar como ejecutar las operaciones. Los datos que utilizan los programas y algoritmos se pueden clasificar como simples y compuestos. Datos simples: numéricos (enteros y reales), lógicos (booleanos) y caracteres. TIPO TAMAÑO (bytes) int (entero) 2 float (flotante) 4 double ( flotante de doble precisión) 8 char (carácter) 1 5.4. ELEMENTOS DE LOS ALGORITMOS Y TIPOS DE DATOS
  • 36. Los tipos de datos predefinidos son: numéricos, lógicos, caracteres y cadenas. De estos tipos solo el cadena es de tipo compuesto, el resto, son los tipos de datos simples considerados estándares. Esto quiere decir que la mayoría de los lenguajes de programación permiten trabajar con ellos.  Los enteros no tienen fracciones o decimales pueden ser negativo o positivos  Tipo reales o de coma flotante (float/double). Contienen un punto decimal pueden ser positivos o negativos formando el subconjunto de números reales. 5.4. ELEMENTOS DE LOS ALGORITMOS Y TIPOS DE DATOS
  • 37.  Datos lógicos o booleanos. Hay lenguajes que solo pueden tomar uno de dos valores verdadero(true) o falso (false). En C no existe el tipo lógico pero se puede implementar con un número entero, 0 es falso y cualquier número diferente de cero es verdadero.  Caracteres. En el interior de la computadora se hacen “palabras” de 8 bits y así poder representar todos los caracteres del código ASCII. 5.4. ELEMENTOS DE LOS ALGORITMOS Y TIPOS DE DATOS
  • 38. Estructura Secuencial… Es la estructura más sencilla ya que el programador identifica los datos de entrada, los procesa y muestra o imprime los datos de salida. 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 39. Principal Inicio () Instrucción 1 Instrucción 2 . . . Instrucción n Fin main () { inst 1; inst 2; inst 3; . . . . inst n; } 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 40. Suma de 2 números
  • 41. 1. /*SUMA DE DOS NUMEROS ENTEROS*/ 2. #include <stdio.h> 3. #include <stdlib.h> 4. main () 5. { 6. int n1,n2,suma; 7. system ("cls"); 8. printf ("DAME EL VALOR DEL PRIMER NUMERO: "); 9. scanf ("%i",&n1); 10. printf ("nDAME EL VALOR DEL SEGUNDO NUMERO: "); 11. scanf ("%i",&n2); 12. suma =n1+n2; 13. printf ("nEL RESULTADO ES:%i ",suma); 14. system (”pause”); 15. return 0; 16. }
  • 42. En C todo aquello que se encuentre dentro del (/*) y fin (*/) de un comentario. Los comentarios delimitados por estos símbolos pueden ocupar varias líneas . Cuando se utilice el símbolo // , se tendrá que escribir al principio de cada renglón. # include <stdio.h> 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 43. Área del círculo y Volúmen de una esfera con el mismo radio
  • 44. 1. /*radio y volumen*/ 2. #include <stdio.h> 3. #include <stdlib.h> 4. #define PI 3.14159 5. main () 6. { 7. float radio, area, volumen; 8. system ("cls"); 9. printf ("ESTE PROGRAMA CALCULA EL AREA Y VOLUMEN DE UNA ESFERA A PARTIR DE SU RADIOnn"); 10. printf ("CUANTO MIDE EL RADIO?: " ); 11. scanf ("%f",&radio); 12. area= PI*radio*radio; 13. printf ("nEl area del circulo es %.2f cm",area); 14. volumen=(4./3)*PI*radio*radio*radio; 15. printf ("nEl volumen de la esfera es %.2f cm cubicos",volumen); 16. system (”pause”); 17. return 0; 18. }
  • 45. Una tienda vende libros a $100, cuadernos a $15.50 y plumas a $2.35. Calcule el monto de la venta según el número de artículos vendidos
  • 46.
  • 47. Estructura selectiva o condicional… Es una estructura con una sola entrada y una sola salida en la cual se realiza una acción( una o varias instrucciones). La condición puede ser simple o compuesta La sentencia if La sentencia if es usada para evaluar una expresión lógica que puede tomar valores de 1 y 0, es decir, verdadero o falso, la sentencia if se conoce como estructura de selección simple, ya que si se cumple la condición especificada entre los paréntesis, se ejecuta un bloque de código, y si no se cumple, no se ejecuta nada. Lo que quiere decir que esta sentencia nos permite tomar decisiones, podemos hacer una pregunta y la contestación sólo puede ser verdadera o falsa, es decir, sí o no. 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 48.
  • 49. /*Ejemplo que indica si un número es positivo*/ #include <stdio.h> #include <stdlib.h> main () { int N; printf(“Introduce el valor de N:”); scanf(“%d”,&N); if (N>0) printf(“Numero positivon”); system (”pause”); return 0; } 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 50.
  • 51. La sentencia if -else Esta sentencia es más o menos como la anterior, con la diferencia que en este ejemplo, si la condición se evalúa como verdadera, se ejecuta una secuencia de instrucciones, mientras que si la condición se evalúa como falsa se ejecuta otra secuencia de instrucciones
  • 52. /*Ejemplo que indica si un número es positivo o negativo*/ #include <stdio.h> #include <stdlib.h> main () { int N; printf(“Introduce el valor de N:”); scanf(“%d”,&N); if (N>0) printf(“Numero positivon”); else printf(“Numero negativon”); system (”pause”); return 0; }
  • 53.
  • 54. Anidamiento o escalonamiento si-si no-si (if-else-if) Consiste en insertar una instrucción dentro de otra. Uno de los aspectos más confusos en los if anidados. Un if anidado es una sentencia if que es el objeto de otro if o else . La razón de los if anidados son tan problemáticos es que resulta confuso saber qué else se asocia con qué if . 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 55.
  • 56. /*Ejemplo que indica si un número es positivo, negativo o cero*/ #include <stdio.h> #include <stdlib.h> main () { int N; printf(“Introduce el valor de N:”); scanf(“%d”,&N); if (N==0) printf(“Ceron”); else if (N>0) printf(“Numero positivon”); else printf(“Numero negativon”); system(“pause”); return 0; }
  • 57. Oprimir una tecla e imprimir que tipo de tecla es carácter, letra mayúscula, letra minúscula o dígito
  • 58. La sentencia switch - case Esta sentencia es la utilizada para evaluar las llamadas “opciones de abanico”, de donde se saca una de varias opciones, es decir, switch permite múltiples ramificaciones con una sola expresión a evaluar. Es más eficiente que utilizar muchos if anidados. Un enunciado switch evalúa una expresión. La instrucción switch es una instrucción de control que controla múltiples selecciones y enumeraciones pasando el control a una de las instrucciones case de su cuerpo. 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 59.
  • 60. Solicita un digito al usuario entre 1 y7, el programa será capaz de escribir el día de la semana que le corresponde #include <stdio.h> #include <stdlib.h> main () { int N; printf("Introduce el dia de la semana (1-7):"); scanf("%d", &N); switch (N) { case 1: printf("LUNESn"); break; case 2: printf("MARTESn"); break; case 3: printf("MIERCOLESn"); break; case 4: printf("JUEVESn"); break; case 5: printf("VIERNESn"); break; case 6: printf("SABADOn"); break; case 7: printf("DOMINGOn"); break; default: printf("Dia erroneon"); } system (“pause”); return 0; }
  • 61.
  • 62. La repetición de una acción (una o varias instrucciones) se va a llevar a cabo mientras se cumpla cierta condición; para que esta acción termine, la acción misma debe de modificar la(s) variable(s) de control que van a intervenir en la condición. Dicha condición puede estar definida por un ciclo desde (for), un bucle mientras (while) y hacer- mientras (do-while). Bucle, ciclo, iteración : Son estructuras de control que permite repetir una o más sentencias múltiples veces. En cada vuelta el ciclo comprueba si la condición es verdadera, rompiéndose el ciclo si es falsa. 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 63.  Contadores, acumuladores: estas variables se van incrementando o decrementando su valor a lo largo de la ejecución del algoritmo o del programa. 1. Se debe inicializar antes de entrar al ciclo. 2. Dentro del ciclo debe aparecer a ambos lados de la asignación . 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 64. 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)  Debemos de realizar una operación de inicialización y posteriormente los incrementos y los decrementos correspondientes. La inicialización consiste en asignarle al contador un valor de inicio. Se pone antes y fuera del ciclo.
  • 65.  Acumulador o totalizador Tiene la misma función que un contador pero con la diferencia que el incremento o decremento es variable. Es decir es una variable que va almacenar cantidades resultantes de operaciones resultantes 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 66. El encargado de una obra recibe un suministro de camiones con hormigón. El control del volumen recibido lo lleva a través de una tabla donde apunta hora de llegada, volumen servido por el camión que llega y volumen acumulado a lo largo del día. Hora Volumen servido m 3 Acumulado m 3 10:15 7 7 10:45 5 12 11:08 6 18 11:37 5 23 11:59 7 30 La fórmula que utiliza es: Acumulado = Volumen servido actual + Acumulado anterior. 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 67. WHILE  El propósito del ciclo while es ejecutar muchas instrucciones varias veces. Se escribe como una instrucción if solo que cambiando la palabra clave while.  Forma general while (condición) { instrucciones a repetir mientras la condición sea true } 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 68.
  • 69. Características 1. La condición se evalúa antes del ciclo, si es verdadera se ejecuta el bucle; y si es falsa se sale y el control pasa a la instrucción siguiente al ciclo. 2. Si la condición es falsa cuando se revisa por primera vez el bucle no se ejecuta nunca, es decir no entra ninguna vez. 3. Mientras la condición sea verdadera el bloque de instrucciones se ejecutará indefinidamente al menos que exista por lo menos una instrucción que modifique el valor de un elemento de la condición. 4. Si existe más de una instrucción se necesitan delimitar el bloque de instrucciones {….} 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 70. CICLO WHILE 1. /*PROGRAMA QUE ILUSTRA EL CICLO WHILE*/ 2. #include <stdio.h> 3. #include <stdlib.h> 4. main() 5. { 6. int cont=0; 7. system ("cls"); 8. while (cont<10) 9. { 10. printf("EL VALOR DEL CONTADOR ES =%d n", cont); 11. cont=cont+1; 12. } 13. system("pause"); return 0; 14. } 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 71. 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 72. 1. #include<stdio.h> 2. #include<stdlib.h> 3. main() 4. { 5. char contador; 6. contador = 0; 7. while (contador<100) 8. { 9. printf ("*t"); 10. contador ++; 11.} 12.system("pause"); 13.return 0; 14.} 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 73. 1. /*Pares60*/ 2. #include<stdio.h> 3. #include<stdlib.h> 4. main() 5. { 6. int x; 7. x=20; 8. printf("Pares entre 20-60n"); 9. while(x<=60) 10. { 11. printf("t%dn",x); 12. x+=2; 13. } 14. system("pause"); 15. return 0; 16.}
  • 74. 1. /*Tabla Multiplicar*/ 2. #include<stdio.h> 3. #include<stdlib.h> 4. main() 5. { 6. int tb,res,d; 7. system("cls"); 8. tb=0; 9. printf("Digita la tabla de multiplicar: "); 10. scanf("n%d",&d); 11. while(tb<=10) 12. { 13. res=tb*d; 14. printf("nt%d*%d=%dn",d,tb,res); 15. tb++; 16. } 17. system("pause"); 18.}
  • 75. CICLO DO WHILE Su diferencia básica con el ciclo while es que la prueba de condición es hecha al finalizar el ciclo, es decir las instrucciones se ejecutan cuando menos una vez, porque primero ejecuta las instrucciones y al final evalúa la condición. También se le conoce por esta razón como ciclo de condición de salida. Forma general cargar o inicializar variable de condición; do{ grupo cierto de instrucción(es); instrucción(es) de rompimiento de ciclo; } while(condición); 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 76.
  • 77. Características 1. Siempre entras por lo menos una vez al ciclo, ya que la condición esta después del ciclo. 2. Si la condición es verdadera entra de nuevo al ciclo y regresa a revisar la condición, hasta que sea falsa se sale del bucle 3. Debe existir una instrucción dentro del ciclo que modifique la condición, de lo contrario se hace infinita. 4. Si tiene más de una instrucción, necesita obligadamente del inicio- fin {….} 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 78. 1. /*PROGRAMA QUE ILUSTRA EL CICLO DO WHILE*/ 2. #include <stdio.h> 3. #include <stdlib.h> 4. main() 5. { 6. int cont; 7. cont=0; 8. do 9. { 10. printf("EL VALOR DEL CONTADOR ES =%d n", cont); 11. cont=cont+1; 12. } 13. while (cont<=9); 14. system("pause"); return 0; }
  • 79. 1. /*FACTORIAL DE UN NUMERO*/ 2. #include <stdio.h> 3. #include <stdlib.h> 4. main() 5. { 6. int i=1, n, fact=1; 7. printf("Dame un numero: "); 8. scanf("%d",&n); 9. do 10.{ 11.fact=fact*i; 12.i++; 13.} 14.while (i<=n); 15.printf("t El factorial de %d es %dnn",n,fact); 16.system("pause"); return 0; 17.}
  • 80. 1. /* OBTENCION DE A MEDIA DE n NUMEROS*/ 2. #include <stdio.h> 3. #include <stdlib.h> 4. main() 5. { 6. int n, cont=1; 7. float x, media,suma=0; 8. printf("CUANTOS NUMEROS? "); 9. scanf("%d",&n); 10. do 11. { 12. printf("x= "); 13. scanf ("%f", &x); 14. suma +=x; 15. ++cont; 16. } 17. while (cont<=n); 18. media=suma/n; 19. printf("n LA SUMA ES =%f n", suma); 20. printf("n LA MEDIA ES =%f n", media); 21. system("pause"); return 0; 22.} 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 81. CICLO FOR  Esta orden es similar al while, pero es mas fácil de usar si se están contando o indexando variables, este ciclo combina tres elementos : inicialización, prueba e incremento.  Forma general for (inicio; condicion; paso-siguiente) { cuerpo } 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 82. Características 1. Se debe conocer el valor de la variable inicial y final antes de entra al ciclo 2. La condición se evalúa antes del bloque de instrucciones. Si la condición es verdadera se ejecuta el bloque de instrucciones, y si es falsa se sale y pasa el control de instrucciones al siguiente bloque. 3. No se puede cambiar el valor de las variables de control, el valor inicial ni el valor final dentro del ciclo. 4. Se puede incrementar o decrementar la variable de control según se requiera. 5. El incremento o el decremento dela variable de control es automático. 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 83. 1. /*PROGRAMA QUE ILUSTRA EL CICLO FOR*/ 2. #include <stdio.h> 3. #include <stdlib.h> 4. main() 5. { 6. int indice; 7. for (indice=0;indice<11;indice=indice+1) 8. { 9. printf("EL VALOR DEL INDICE ES =%d n", indice); 10. } 11. system("pause"); return 0; 12. } 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 84. 1. /* FACTORIAL DE UN NUMERO*/ 2. #include <stdio.h> 3. #include <stdlib.h> 4. main() { 5. int i, n, fact; 6. printf("Dame un numero: nn"); 7. scanf("%d",&n); 8. fact=1; 9. for(i=1; i<=n; i++) 10. fact=fact*i; 11. printf("El factorial de %d es %dnn",n,fact); 12. system("pause"); return 0; 13. } 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 85. 1. /* POTENCIA DE UN NUMERO n*/ 2. #include <stdio.h> 3. #include <stdlib.h> 4. main() 5. { 6. int base, n, exp, res=1; 7. printf("Introduce la base de la potencia: "); 8. scanf("%d",&base); 9. printf("nnIntroduce el exponente de la potencia: "); 10. scanf("%d",&exp); 11. printf("nn"); 12. for (n=0;n<exp;n++) 13. { 14. res=res*base; 15. printf("(%d)",base); 16. } 17. printf(" =%d",res); 18. printf("nnResultado: %d ^ %d =%dn",base,exp,res); 19. system("pause"); return 0; } 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN)
  • 86. 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN) 1. #include <stdio.h> 2. #include <stdlib.h> 3. main() 4. { 5. int i, j; 6. for(i='z'; i>='a'; i--) 7. { 8. for(j=i; j>='a'; j--) 9. { printf("%c",i); 10. } 11. printf("n"); 12. } 13. system("pause"); 14.}
  • 87.
  • 88. 5.5. ESTRUCTURAS BÁSICAS (SECUENCIAL, CONDICIONAL E ITERACIÓN) 1. /*Muestrar los multiplos de 3 comprendidos entre los numeros 1 y 20*/ 2. #include <stdio.h> 3. #include <stdlib.h> 4. #define p printf 5. #define s scanf 6. main () 7. { 8. int i; 9. system ("cls"); 10. for (i=1;i<=20;i++) 11. { 12. p ("%d",i); 13. if (i%3==0) 14. p (" Es multiplo de 3tnn"); 15. else 16. p (" No es multiplo de 3tnn"); 17. } /* fin de for*/ 18. system ("pause");return 0; 19.}
  • 89.
  • 90. SERIE DE FIBONACCI WHILE 1. /* SERIE DE FIBONACCI (WHILE)*/ 2. #include <stdio.h> 3. #include<stdlib.h> 4. main() 5. { 6. int contador=0, numero1=0,numero2=1,numero3 ; 7. printf("nImprime los primeros 10 numeros de la serie fibonaccinnn"); 8. while (contador<10) 9. { 10. numero3=numero1+numero2; 11. printf("t %i n",numero3); 12. numero1=numero2; 13. numero2=numero3; 14. contador++; 15. } 16. system ("pause"); 17. }
  • 91.
  • 92. SERIE DE FIBONACCI DO WHILE 1. /* SERIE DE FIBONACCI (DO WHILE)*/ 2. #include <stdio.h> 3. #include<stdlib.h> 4. main() 5. { 6. int contador=0, numero1=0,numero2=1,numero3 ; 7. printf("nImprime los primeros 10 numeros de la serie fibonaccin"); 8. do{ 9. numero3=numero1+numero2; 10. printf("t%in",numero3); 11. numero1=numero2; 12. numero2=numero3; 13. contador++; 14. } 15. while (contador<=9); 16. system("pause"); return 0; 17. }
  • 93.
  • 94. SERIE DE FIBONACCI FOR (n NUMEROS) 1. /* SERIE DE FIBONACCI FOR*/ 2. #include <stdio.h> 3. #include<stdlib.h> 4. main() 5. { 6. int contador, numero1,numero2,numero3,n; 7. numero1=0; 8. numero2=1; 9. printf("nHasta que numero de la serie de Fibonacci deseas?"); 10. scanf ("%d",&n); 12. for (contador=1;contador<=n;contad or++) 13. { 14. numero3=numero1+numero2; 15. printf("t%d) %in",contador,numero3); 16. numero1=numero2; 17. numero2=numero3; 18. } 19. system("pause"); 20. }