2. 5.1. COMPUTABILIDAD Y
CONCEPTO DE ALGORITMO :
MAQUINA 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 fue 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.
4. 5.1. COMPUTABILIDAD Y
CONCEPTO DE ALGORITMO :
MAQUINA 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. 5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE DATOS
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.
6. 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.
7. 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.
8. 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.
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.
9. 5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE DATOS
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.
10. 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.
11. 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
subproblemas más sencillos se denomina refinamiento paso a
paso o sucesivos.
12. 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
Entrad
a altura
Entrad
a base
Area =
base x
altura
Salida
Altura
Salida
Area
Salida
Base
13. 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
14. 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.
15. 5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE FLUJO Y
PSEUDOCÓDIGO)
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
17. 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)
18. 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)
19. 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)
20. 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.
21. 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.
22.
23. 5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE FLUJO Y
PSEUDOCÓDIGO)
Diagrama de flujo para
obtención del área del
triángulo
26. 5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE FLUJO Y
PSEUDOCÓDIGO)
Diagrama de flujo para
obtención del mayor de dos
números
27. Números pares o impares
1. Inicio
2. ESCRIBIR "Introduce un número: "
3. LEER numero
4. SI (x 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)
28. Area del circlo y volumen con el mismo
radio
1. Inicio
2. cte pi 3.1416
3. Principal ()
4. Inicio
5. real r, area, vol
6. Imprimir “area y volumen de un esfera en
cm”
7. Imprime “Dame el radio”
8. Leer radio
9. area = pi *r*r
10. Imprimir “Area del circulo es =”, area
11. vol =(4/3)*pi *r*r*r
12. Imprimir “volumen de la esfera es =“, vol,
“cm cúbicos”
13. Fin
5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE FLUJO Y
PSEUDOCÓDIGO)
29. 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)
30. Inicio
Entero edad
imprimir “Dame tu edad”
leer edad
Si (edad<=12)
imprimir “niño”
Si no
si (edad<=17)
imprimir “adolescente”
Si no
si (edad<=80)
imprimir “adulto”
Si no
imprimir “anciano”
Fin
5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE FLUJO Y
PSEUDOCÓDIGO)
32. 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
Fin
Fin
33. 5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE DATOS
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.
34. 5.2. 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
35. 5.2. 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.
36. 5.2. 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.
37. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
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.
38. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
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;
}
40. 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. getch();
15. return 0;
16. }
41. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
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>
43. 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. getch();
17. return 0;
18. }
44. 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
45.
46. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
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
47. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
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
49. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
/*Ejemplo que indica si un número es positivo*/
#include <stdio.h>
#include <conio.h>
main ()
{
int N;
printf(“Introduce el valor de N:”);
scanf(“%d”,&N);
if (N>0)
printf(“Numero positivon”);
getch ();
return 0;
}
50. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
Dependiendo de la calificación leída determinar si es aprobado
51. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
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;
52. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
/*Ejemplo que indica si un número es positivo o
negativo*/
#include <stdio.h>
#include <conio.h>
main ()
{
int N;
printf(“Introduce el valor de N:”);
scanf(“%d”,&N);
if (N>0)
printf(“Numero positivon”);
else
printf(“Numero negativon);
getch ();
return 0;
}
53. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
Dependiendo de la calificación leída determinar si es aprobado o reprobado
54. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
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 .
55. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
/*Ejemplo que indica si un número es positivo, negativo o cero*/
#include <stdio.h>
#include <conio.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);
getch ();
return 0;
}
56. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)Oprimir una tecla e imprimir que tipo de tecla es carácter, letra mayúscula, letra
minúscula o dígito
57. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
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.
59. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
#include <stdio.h>
#include <conio.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");
}
getch ();
return 0;
}
60. /* PROGRAMA PARA OBTENER LA RAICES DE UNA
ECUACION CUADRATICA*/
1. #include <stdio.h>
2. #include <conio.h>
3. #include <math.h>
4. main()
5. {
6. float a,b,c,x1,x2, d, real, imaginaria;
7. printf("Valor de A: ");
8. scanf("%f",&a);
9. printf("Valor de B: ");
10. scanf("%f",&b);
11. printf("Valor de C: ");
12. scanf("%f",&c);
13. d = (b*b)-(4*a*c);
14. if(d>0.0)
15. {
16. x1=(-b+(sqrt((b*b)-(4*a*c))))/2;
17. x2=(-b-(sqrt((b*b)-(4*a*c))))/2;
18. printf("nX1 = %.2fn",x1);
19. printf("nX2 = %.2fn",x2);
20. }
21. else if (d<0.0)
22. {
23. real =-b/(2.0*a);
24. imaginaria =sqrt(-d)/(2.0*a);
25. printf ("X1 = %.2f+%.2finX2 =
%.2f%.2fin", real, imaginaria,real, -imaginaria);
26. /*printf ("nX2 = %.2f%.2fin", real, -
imaginaria);*/
27. }
28. else
29. {
30. x1=-b/(2.0*a);
31. printf ("LAS DOS RAICES SON
IGUALES X1=X2=%.2f",x1);
32. }
33.getch();
34.return o;
35.}
61. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
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.
62. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
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 .
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.
63. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
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
64. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
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.
65. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
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 }
67. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
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 {….}
68. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
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. cont =0;
8. system ("cls");
9. while (cont<11)
10. {
11. printf("EL VALOR DEL CONTADOR ES =%d n", cont);
12. cont=cont+1;
13. }
14. system("pause");
15. }
73. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
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);
75. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
CICLO DO WHILECaracterí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 {….}
76. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
CICLO DO WHILE
1. /*PROGRAMA QUE ILUSTRA EL CICLO DO WHILE*/
2. #include <stdio.h>
3. #include <conio.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
14. (cont<=10);
15. getch();
16. return 0;
17. }
77. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
CICLO DO WHILE
1. #include <stdio.h>
2. #include <conio.h>
3. main()
4. {
5. int i=1, n, fact=1;
6. printf("Dame un numero: ");
7. scanf("%d",&n);
8. do
9. {
10. fact=fact*i;
11. i++;
12. }
13. while (i<=n);
14. printf("t El factorial de %d
15. es %dnn",n,fact);
16. getch();
17. return 0;
18. }
78. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
CICLO DO WHILE
1. #include <stdio.h>
2. #include <conio.h>
3. main()
4. {
5. int n, cont=1;
6. float x, media,suma=0;
7. printf("CUANTOS NUMEROS? ");
8. scanf("%d",&n);
9. do
10. {
11. printf("x= ");
12. scanf ("%f", &x);
13. suma +=x;
14. ++cont;
15. }
16. while (cont<=n);
17. media=suma/n;
18. printf("n LA SUMA ES =%f n",
suma);
19. printf("n LA MEDIA ES =%f n",
media);
20. getch();
21. return 0;
22. }
79. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
CICLO DO WHILE
1. #include <stdio.h>
2. #include <conio.h>
3. main()
4. {
5. int num,dig=0;
6. printf("ESTE PROGRAMA SOLO
ANALIZA NUMEROS HASTA
9,999,999,999 ");
7. printf("nnDAME UN NUMERO
ENTERO.. ");
8. scanf("%d",&num);
9. do
10. {
11. num= num/10;
12. dig++;
13. }
14. while (num>=1);
15. printf("n EL NUMERO TIENE %d
DIGITOS",dig);
16. getch();
17. return 0;
18. }
80. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
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 }
81. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
CICLO FORCaracterí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.
82. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
CICLO FOR
1. /*PROGRAMA QUE ILUSTRA EL CICLO FOR*/
2. #include <stdio.h>
3. #include <conio.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. getch();
12. return 0;
13. }
83. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
CICLO FOR
1. #include <stdio.h>
2. #include <conio.h>
3. main() {
4. int i, n, fact;
5. printf("Dame un numero: nn");
6. scanf("%d",&n);
7. fact=1;
8. for(i=1; i<=n; i++)
9. {
10. fact=fact*i;
11.
12. }
13. printf("El factorial de %d es %dnn",n,fact);
14. getch();
15. return 0;
16. }
84. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
CICLO FOR
#include <stdio.h>
#include <conio.h>
main()
{
int base, n, exp, res=1;
printf("Introduce la base de la potencia: ");
scanf("%d",&base);
printf("nnIntroduce el exponente de la potencia: ");
scanf("%d",&exp);
printf("nn");
for (n=0;n<exp;n++)
{
res=res*base;
printf("(%d)",base);
}
printf(" =%d",res);
printf("nnResultado: %d ^ %d =
%dn",base,exp,res);
getch();
return 0; }
86. /*Muestrar los multiplos de 3 comprendidos entre los
numeros 1 y 20*/
#include <stdio.h>
#include <stdlib.h>
#define p printf
#define s scanf
main ()
{
int i;
system ("cls");
for (i=1;i<=20;i++)
{
p ("%d",i);
if (i%3==0)
p (" Es multiplo de 3tnn");
else
p (" No es multiplo de 3tnn");
}
system ("pause");
}
5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
87. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
SERIE DE FIBONACCI WHILE
#include <stdio.h>
#include<stdlib.h>
main()
{
int contador=0, numero1=0,numero2=1,numero3;
printf("nImprime los primeros 10 numeros de la serie
fibonaccinnn");
while (contador<10)
{
numero3=numero1+numero2;
printf("t %i n",numero3);
numero1=numero2;
numero2=numero3;
contador++;
}
system ("pause");
}
88. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
SERIE DE FIBONACCI DO WHILE
#include <stdio.h>
#include<stdlib.h>
main()
{
int contador=0, numero1=0,numero2=1,numero3;
printf("nImprime los primeros 10 numeros de la
serie fibonaccin");
do{
numero3=numero1+numero2;
printf("t%in",numero3);
numero1=numero2;
numero2=numero3;
contador++;
}
while (contador<=9);
system("pause");
}
89. 5.4. ESTRUCTURAS BÁSICAS (SECUENCIA,
CONDICIONAL E ITERACIÓN)
SERIE DE FIBONACCI FOR (n NUMEROS)
1. #include <stdio.h>
2. #include<stdlib.h>
3. main()
4. {
5. int contador, numero1,numero2,numero3,n;
6. numero1=0;
7. numero2=1;
8. printf("nHasta que numero de la serie de Fibonacci
deseas?");
9. scanf ("%d",&n);
10. for (contador=1;contador<=n;contador++){
11. numero3=numero1+numero2;
12. printf("t%d) %in",contador,numero3);
13. numero1=numero2;
14. numero2=numero3;
15. }
16. system("pause");
17. }