Professional Documents
Culture Documents
ALGORITMOS
TABLA DE CONTENIDOS
TEMAS
Presentacin
Objetivos del mdulo
Introduccin
UNIDAD I
CAPITULO 1
1
Introduccin al procesamiento de datos
1.1
Etapas del procesamiento de datos
1.2
Definicin de un algoritmo
1.3 Estructura de un algoritmo
1.4 Clasificacin de los algoritmos
1.5 Ejemplos de algoritmos cualitativos
1.6 Ejercicios
UNIDAD II
CAPITULO I
2.1
Tcnicas para diseo de algoritmos
2.1 .1 La Tcnica de Flujogramas
2.1.2 Definicin de Diagrama
2.1.3 Tipos de Diagramas
2.1.4 Ventajas de los diagramas
2.1.5 Simbologa
2.1.6 Reglas generales para la elaboracin de diagramas
CAPITULO II
2.2 Seudo cdigo
2.2.1 Introduccin
2.2.2 Mdulo
2.2.3 Modularizacin
2.2.4 Reglas para elaborar un programa en seudocdigo
2.2.5 Estructura de un programa en seudocdigo
UNIDAD III
CAPITULO I
3.1 Memoria del computador
3.1.1 Introduccin
3.1.2 Constantes
3.1.3 Variables
3.1.4 Asignacin de datos
3.1.5 Ejercicios
ALGORITMOS
UNIDAD IV
CAPITULO I
4 OPERADORES Y EXPRESIONES
4.1 Operaciones
4.2 Expresiones aritmticas
4.3 Operadores aritmticos
4.4 Prioridad de los operadores
4.5 Operadores de relacin
4.6 Operadores Lgicos
4.7 Ejercicios
UNIDAD V
CAPITULO I
5. lenguaje C , Origenes
5.1
Tipos de datos
5.1.1 Tipos enteros
5.1.2 Tipos reales
5.1.3 Tipos carcter
5.1.4. Tipos cadena
5.1.5. Tipos enumerados
5.1.6 Tipos subrango
UNIDAD VI
CAPITULO I
6.1 Estructura de un programa
6.1.2 Entrada de datos por teclado
6.1.3 Ejercicios
6.1.4 Salida de datos y resultados por pantalla
6.1.5 Ejercicios
UNIDAD VII
7.Estructuras de control
7.1 Sentencias condicionales
7.2 Ejercicios
7.3 Sentencias repetitivas
7.4 Ejercicios
UNIDAD VIII
8. Arreglos
8.1 Vectores
8.2 Ejercicios
8.3 Matrices
8.4 Ejercicios
UNIDAD IX
9. Procedimientos y funciones
9.1 Parmetros
9.2 Estructura y declaracin
9.3 Parmetros formales
9.4 Funciones
9.5 Codificacin
ALGORITMOS
PRESENTACIN DEL MODULO
El diseo de algoritmos es uno de los elementos ms importantes en el desarrollo
de programas, es una asignatura base para el entendimiento de los diferentes
lenguajes de programacin, y desarrollar programas de calidad.
OBJETIVOS ESPECIFICOS
UNIDAD I: Identificar la estructura de un algoritmo como su desarrollo lgico
como el procesamiento de datos.
UNIDAD II: Identificar y usar adecuadamente los smbolos bsicos de los
diagramas de flujo .
UNIDAD III: Explicar adecuadamente las diferencias entre diagrama de flujo y
seudocdigo.
UNIDAD IV: Reconocer los operadores y expresiones que se utilizan .
UNIDAD V: Reconocer los componentes y estructura de un programa en c
UNIDAD VI: Codificar los diagramas o seudocdigos que involucren
sentencias bsicas de entrada-salida .
UNIDAD VII: Codificar los diagramas seudocdigos que involucren
sentencias de control y su traduccin a lenguaje C
UNIDAD VIII : Utilizar la estructura de datos arreglo como elemento en un
entorno de programacin estructurada
UNIDAD IX : Reconocer la forma de dividir procesos en funciones como
subprogramas.
ALGORITMOS
INTRODUCCIN
La informtica es
ALGORITMOS
UNIDAD I
OBJETIVO DE LA UNIDAD
HORAS DE
ESTUDIO
TEMAS
1h00
2H00
2H00
Ejercicios
ACTIVIDADES:
1.-Plantearse ejercicios de uso general y resolverlo.
2.-Resolver los ejercicios resueltos y repetir muchas veces
4.- Ejercicios de aplicacin
5.- Prueba de auto evaluacin
6.- Comprobacin de los contenidos de la Unida.
Ejercicios propuestos 5 puntos
Prueba escritas
5 puntos
Actuacin en clase
5 puntos
Lecciones orales
5 puntos
7.- Bibliografa de la Unidad
EVELIO GRANIZO, programacin estructurada
ROJAS VICENTE, Tcnica de flujogramas
CRITERIOS DE EVALUACIN:
Demostracin
Prueba escrita
Comprobacin de resultados
Tareas de aplicacin
Resolucin de ejercicios
ALGORITMOS
CAPITULO I
1. INTRODUCCIN AL PROCESAMIENTO DE DATOS
Si consideramos al dato como informacin, al cual lo podemos dar un tratamiento
apropiado, procesamiento e interpretacin, definiremos como proceso de datos
como el conjunto de operaciones que se aplican a los datos de entrada, para
aplicando un algoritmo obtenemos un resultado o datos de salida.
1.1 Etapas del procesamiento de datos
Podemos decir que las etapas del procesamiento de datos son:
Entada
Proceso
Salida
ALGORITMOS
Algoritmos Matemticos
Algoritmos Fsicos
Algoritmos Qumicos
Algoritmos Administrativos
Algoritmos de uso general, etc.
1.3 Estructura de un algoritmo
Antes de desarrollar un algoritmo se debe identificar su estructura.
Por ello podemos decir:
El objetivo o fin que se persigue
El o las condiciones
El o los elementos bsicos
1.4 Clasificacin de los algoritmos
Los algoritmos se clasifican en dos grupos, estos son: Algoritmos Cualitativos y
Algoritmos Cuantitativos.
Se clasifican en dos grupos:
1.- Algoritmos cualitativos.- Son aquellos algoritmos que siguen una secuencia
de pasos y determinan una solucin en base a la redaccin estructurada de
rdenes las cuales son escritas o narradas mediante el uso del intelecto humano.
Este tipo de algoritmos no son sujeto de programacin mediante la ayuda del
computador. Ejemplos:
1. Algoritmo para cambiar el foco de una habitacin.
2. Algoritmo que sirve para preparar una receta de cocina.
3. Algoritmos que sigue los pasos para cambiar un neumtico averiado
de un vehculo o una llanta,
2.- Algoritmos cuantitativos.- Son aquellos que siguen un proceso en donde se
involucran operaciones aritmticas, lgicas y de comparacin. Las instrucciones
de este tipo de algoritmos son sujetos de programar en un lenguaje de
programacin cientfica asistido por el computador, los lenguajes pueden ser:
Visual Basic, Visual Fox, . PHP, etc. Ejemplos.
1. Algoritmo para encontrar la solucin de races de una ecuacin de
segundo grado.
2. Algoritmo para encontrar el mayor el mayor de tres nmeros.
ALGORITMOS
1.5 Ejemplos de algoritmos cualitativos
1.- Una persona se encuentra a la orilla de un ro, posee dos recipientes vacos no
graduados de cantidad 5 y 4 litros respectivamente. Se desea obtener
exactamente dos litros de agua en el recipiente de 5 litros.
Objetivo: Llenar exactamente 2 litros de agua en el recipiente de 5 litros.
Condiciones: Recipientes sin ninguna otra caracterstica adicional capacidad
de medida.
Elementos bsicos: Cantidad ilimitada de agua,2 recipientes plsticos de 5
y 4 litros de capacidad.
Entrada.
A
Recipiente de 5 litros (A)
Recipiente de 4 litros (B)
Agua.
Proceso
Llenar con agua (A)
Pasar agua de (A) a (B)
Eliminar agua de (B)
Pasar agua de (A) a (B)
Llenar con agua (A)
Pasar agua de (A) a (B)
Salida.
Dos litros de agua en (A).
* Nota: Buscar otro algoritmo para solucionar el problema anterior..
2.- Escriba un algoritmo el cual permita cambiar un neumtico averiado de un
vehculo.
Entrada.
Automvil.
Gato hidrulico.
Llave de ruedas.
Llanta de repuesto.
Proceso.
Aflojar tuercas de llanta averiada con llave de ruedas (sentido antihorario).
Ubicar gato hidrulico debajo del vehculo el chasis.
Levantar gato hidrulico utilizando como palanca la llave de ruedas
Aflojar completamente las tuercas de llanta averiada con llave de ruedas
(sentido antihorario).
Retirar llanta averiada.
Ubicar llanta de repuesto.
ALGORITMOS
Poner tuercas en gua de ruedas.
Ajustar tuercas de llanta de repuesto con llave de ruedas (sentido horario).
Bajar gato hidrulico.
Retirar gato hidrulico.
Reajustar tuercas de llanta de repuesto utilizando llave de ruedas (sentido
horario).
Guardar en cajuela llanta averiada, gato hidrulico, llave de ruedas.
Salida.
Llanta de repuesto cambiada con xito
1.6 Ejercicios:
1. Identificar las etapas del procesamiento de datos de los siguiente
ejercicios..
2. Se dispone de una medida en kilmetros, se desea transformar a metros.
3. Se dispone de un tiempo x de horas, se desea transformar a minutos.
4. Se dispone de un tiempo x de segundos , se desea transformar a minutos
y horas
5. Desarrollar un algoritmo para transportar un robot mediante ordenes desde
al 10 de agosto y mercadillo a la universidad.
6. Desarrollar un algoritmo para identificar todas las actividades desde que se
despierta hasta llegar a la universidad.
7. Se desea desarrollar un algoritmo para realizar una consulta.
8. Poner un algoritmo para hallar la raz cuadrada de un nmero entero
9. Se dispone 24 litros de agua y de , 3 recipientes vacos de 13,11,5 litros de
capacidad. Se desea obtener exactamente 8 litros en tres recipientes.
10. De dispone de una cantidad ilimitada de agua y de 3 recipientes vacos de
4 , de 21/2 y de 11/2 litros de capacidad. Se desea tener exactamente 2
litros de agua.
11. Se tiene 6 objetos de madera del mismo tamao, de los cuales uno de ellos
tiene ms peso. Desea encontrar el objeto ms pesado con el menor
nmero de pesadas , para lo cual se utiliza una balanza de precisin de 2
brazos.
12. Se dispone de tres torres y de tres discos (grande , mediano , pequeo).los
cuales se encuentran en la primer torre, se desea pasar los tres discos a la
ltima torre de uno en uno, tomando en cuenta que nunca debe quedar un
disco pequeo Bajo un grande.
ALGORITMOS
PRUEBA DE AUTO EVALUACIN
Instrucciones:
No revise las paginas anteriores
Acte con total honestidad
El propsito de sta prueba es para que Usted compruebe el avance de su
aprendizaje y el xito de sus estudio autnomo.
PREGUNTAS
Las etapas del proceso de datos son:
a)_________ b)___________ c)___________
Defina con sus propias palabras algoritmo.
10
ALGORITMOS
UNIDAD II
OBJETIVO DE LA UNIDAD
CONTENIDOS:
CAPT.
HORAS DE
ESTUDIO
TEMAS
4H00
La tcnica de flujogramas
Concepto de diagramas de flujo
Tipos de diagramas
ACTIVIDADES:
1.-Plantearse ejercicios de uso general y resolverlo.
2.-Resolver los ejercicios resueltos y repetir muchas veces
4.- Ejercicios de aplicacin
5.- Prueba de auto evaluacin
6.- Comprobacin de los contenidos de la Unidad.
Ejercicios propuestos 5 puntos
Prueba escritas
5 puntos
Actuacin en clase
5 puntos
Lecciones orales
5 puntos
7.- Bibliografa de la Unidad
EVELIO GRANIZO ,Programacin Estructurada
ROJAS VICENTE, ACATO JOSE, Tcnica de flujogramas
11
4H00
ALGORITMOS
CRITERIOS DE EVALUACIN:
Demostracin
Prueba escrita
Comprobacin de resultados
Tareas de aplicacin
Resolucin de ejercicios
CAPITULO I
2.1 La tcnica de flujogramas
2.1.1 Diagrama de flujo .- Es la representacin grfica de la solucin
de un problema utilizando smbolos convencionales y
estructurados.
2.1.2 Tipos de Diagramas
Existen 3 tipos de diagramas.
a) Organigrama o diagrama de flujo del sistema.
Es la representacin grfica de la solucin de un sistema en forma
general utilizando smbolos convencionales
b) Organigrama o flujograma del programa:
Es la solucin del problema en forma grfica.
c) Diagrama de Bloque:
Permite identificar el bloque en forma general del proceso, as como
tambin, definir los submdulos de cada mdulo.
2.1.3 Ventajas de los diagramas
a) Permite tener una visin ms amplia y objetiva, para la solucin de
un problema.
b) Es ms fcil, representar grficamente una idea , que escribirlo
Literalmente.
c) Permite comprobar fcilmente paso a paso la solucin del problema.
d) Permite identificar claramente los errores de un programa.
12
ALGORITMOS
2.1.4 Simbologa
La simbologa que utilizaremos comprende las sentencias actuales y
estructuradas de los lenguajes de programacin ltimos.
Simbologa
Significado
Inicio o fin
Seudo cdigo
Inicio o fin
Proceso de datos o
Asignacin de datos
Asignacin de datos
Instruccin de entrada
de datos por teclado
leer
Conector interno de
pgina
Siga la siguiente
instruccin
Conector externo de
pgina
Archivo
Archivo
Desplegar datos y
resultados en pantalla
escribir
Mientras condicin
hacer
Pregunta casos
mltiple
Caso de condicin
Declaracin de un
arreglo
13
ALGORITMOS
2.1.5 Reglas generales para elaboracin de diagramas.
a) Utilizar la simbologa expuesta, no utilizar otro smbolo sin antes dar su
Significado.
b) Graficar en forma clara y precisa.
c) Todo smbolo debe tener una entrada y una salida excepto para
Condiciones.
d) Dentro del smbolo , solo debe existir, variables , constantes,
Asignaciones ,no el significado del smbolo.
e) Todo diagrama debe tener inicio y fin.
CAPITULO II
2.2
Seudo Cdigos
Introduccin.
Cuando los programadores plantean la lgica de una solucin a un
problema de programacin, a menudo se usan dos herramientas, diagrama
de flujo o seudocdigo. Un diagrama de flujo es una representacin grfica
de los pasos lgicos que llevan a solucionar un problema. El seudocdigo
hace lo mismo pero con nuestras propias palabras.
14
ALGORITMOS
5. En cualquier parte de un programa puede existir comentarios establecido
por/*comentario*/
6. Las asignaciones o transferencias de variables con valores se indican con
el signo (=).
7. Al final de un grupo se escribe la palabra fin con el nombre de un
programa seguida de un punto (.)
Significado
15
pseudocodigo
ALGORITMOS
2.-) Enumere los tipos de diagramas.
a)-----------------
b)--------------------------
c)------------------------
c)Modularizacin:
d)Pseudocdigo:
4.-) Escribir una diferencia entre pseudocdigo y diagrama de flujo.
16
ALGORITMOS
UNIDAD III
OBJETIVO DE LA UNIDAD
HORAS DE
ESTUDIO
TEMAS
4H00
Forma de almacenar en la Memoria del computador
Introduccin
Variable
Constante
Asignacin de datos
Ejercicios resueltos
Ejercicios propuestos
Autoevaluacin
ACTIVIDADES:
1.-Plantearse ejercicios de uso general y resolverlo.
2.-Resolver los ejercicios resueltos y repetir muchas veces
4.- Ejercicios de aplicacin
5.- Prueba de auto evaluacin
6.- Comprobacin de los contenidos de la Unida.
Ejercicios propuestos 5 puntos
Prueba escritas
5 puntos
Actuacin en clase
5 puntos
Lecciones orales
5 puntos
7.- Bibliografa de la Unidad
EVELIO GRANIZO ,Programacin Estructurada
ROJAS VICENTE, ACATO JOSE, Tcnica de Flujogramas
CRITERIOS DE EVALUACIN:
Demostracin
Comprobacin de resultados
Tareas de aplicacin
Resolucin de ejercicios
17
ALGORITMOS
CAPITULO I
3.1
Memoria del computador
3.1.1 Introduccin
la memoria del computador es un conjunto finito de celdas, en las cuales se
almacena informacin, mediante la asignacin de datos por intermedio de
las sentencias. Para ello lo representaremos de la siguiente forma por
cuestiones didcticas.
Memoria del computador
B
5
A
4
X1
5.3
Suma
9
Direccin
(variable)
X
56
Contenido
(constante)
Pueden ser
a) Constantes Numricas
b) Constantes Alfanumricas
a) Constantes Numricas
Enteros , reales, Exponenciales
b) Constantes Alfanumricas
Siempre estarn encerradas entre
comillas
Explicacin:
Como vemos el grfico la memoria es un conjunto finito de celdas cada una de
ellas esta formada por una direccin a lo que denominamos variable, y lo vamos a
almacenar en esa variable es una constante que puede ser , numrica o
alfanumrica.
3.1.2 Variable.
Espacio de memoria en la cual se almacenar la informacin, cuyo contenido
variar y que debe cumplir con las reglas de un identificador para formar el
nombre.
18
ALGORITMOS
3.1.3 Constante.
Una constante, es el contenido de la variable cuya informacin en si no
variar durante la ejecucin del programa.
3.1.4 Asignacin de datos.
El proceso de asignacin de la informacin en la memoria, lo realizamos de
la siguiente forma.
SENTENCIA
Variable =
Expresin aritmtica
Cuyo significado es:
En el espacio de memoria o en la variable, Asignar, guardar o almacenar
el resultado de la expresin aritmtica.
Expresin aritmtica: puede ser una constante, una variable, o la unin
de constantes y variables.
Sentencia: Es una expresin que est formada por dos partes, la una que
se encuentra a la derecha la cual es una variable, en la misma que se
almacenar la informacin, la otra parte que se encuentra a la derecha que
es una expresin aritmtica.
3.1.5 Ejercicios resueltos
A = 4
Se debe leer:
En el espacio de memoria o en la variable A asignar guardar o almacenar
la constante numrica entera 4.
B = 5
En el espacio de memoria o en la variable B asignar guardar o almacenar
la constante numrica entera 5.
suma = A + B
En el espacio de memoria o en la variable Suma asignar guardar o
almacenar el contenido de la variable A ms el contenido de la variable B.
3.1.6Ejercicios propuestos.
a) De las siguientes Expresiones indicar cuales con variables , constante
con su tipo o nada.
Suma
1suma 3suma suma3 XYZ XYZ1 XYZ
12.34 1234 1234 suma %&/ 1/abc resultado nmero
b) Ponga el significado de las siguientes sentencias.
X = 8
Y
19
ALGORITMOS
suma =
X+Y
TOTAL =
SUMA
c) Represente mediante el grfico las siguientes asignaciones en forma
secuencial.
NUMERO1
=
10
NUMERO2
TOTAL
NUMERO1 +NUMERO2
NOMBRE =
APELLIDO =
NOMAPE
20
JUAN
PEREZ
NOMBRE + APELLIDO
M = 10
TOTAL = M + N
3.1.7 PRUEBA DE AUTO EVALUACIN
Instrucciones:
No revise las paginas anteriores
Acte con total honestidad
El propsito de sta prueba es para que Usted compruebe el avance de su
aprendizaje y el xito de sus estudio autnomo.
20
ALGORITMOS
UNIDAD IV
OBJETIVO DE LA UNIDAD
HORAS DE
ESTUDIO
TEMAS
4H00
Operadores y expresiones
Operaciones
Expresiones aritmticas
Operadores aritmticos
Prioridad de los operadores
Operadores de relacin
Operadores Lgicos
Ejercicios
ACTIVIDADES:
1.-Plantearse ejercicios de uso general y resolverlo.
2.-Resolver los ejercicios resueltos y repetir muchas veces
4.- Ejercicios de aplicacin
5.- Prueba de auto evaluacin
6.- Comprobacin de los contenidos de la Unida.
Ejercicios propuestos 5 puntos
Prueba escritas
5 puntos
Actuacin en clase
5 puntos
Lecciones orales
5 puntos
7.- Bibliografa de la Unidad
EVELIO GRANIZO ,Programacin Estructurada
ROJAS VICENTE, ACATO JOSE, Tcnica de Flujogramas
CRITERIOS DE EVALUACIN:
Demostracin
Prueba escrita
Comprobacin de resultados
Tareas de aplicacin
Resolucin de ejercicios
21
ALGORITMOS
CAPITULO I
4.1
Operaciones:
Existen varias categoras de operaciones cada una de las cuales se aplica
a un tipo especfico de operando. Existen las siguientes operaciones.
o Operaciones aritmticas, que actan sobre tipos de datos enteros y
reales.
o Concatenacin, una operacin sobre cadenas
o Operaciones lgicas y relacionales que devuelven valores lgicos.
o Operaciones sobre direcciones para punteros
o Operaciones sobre bits.
4.2
Expresiones aritmticas
Como lo expusimos anteriormente una expresin combina constantes,
variables o resultados de funciones en un solo resultado
.
Una expresin aritmtica consta de operadores aritmticos y operandos
.
4.3
Operadores bsicos de los programas (seudocdigos)
+
Aritmticos
*
/
mod (residuo o modulo)
lgicos
y
o
no
>
>=
comparacin o
relacin
<
<=
==
<>
Asignacin
(=)
negacin
<=
<
>=
>
<>
22
ALGORITMOS
Precedencia general de los operadores
1
2
3
4
*,/,mod, y
+,-, o
Operadores
relacion
Otros
4.4
Evaluacin de expresiones
Tipos de errores
Error sintctico.- Expresin mal escrita o variable no definida.
Error semntico.- Error de ejecucin.( divisin por cero, races negativas)
Ejercicios:
7 mod 3/2 + 5*4-3/2
1
20
0
20
19
(4-(5/2+3)*2)+6/4 mod 5
2
1
5
10
-6
-5
2
9
0
-7
-14
5
7
23
ALGORITMOS
UNIDAD V
5
Introduccin al lenguaje C
5.1 Principios de C
En este captulo se ofrece una breve historia del desarrollo del lenguaje
C y se consideran tambin sus caractersticas.
En el resto del captulo se ven los aspectos bsicos de los programas de
C, tales como su estructura, la declaracin de variables, tipos de datos y
operadores.
5.2 Orgenes del C
El proceso de desarrollo del lenguaje C se origina con la creacin de un
lenguaje llamado BCPL, que fue desarrollado por Martin Richards. El
BCPL tuvo influencia en un lenguaje llamado B, el cual se us en 1970 y
fue inventado por Ken Thompson y que permiti el desarrollo de C en
1971, el cual lo invent e implement Dennis Ritchie. Para 1973 el
sistema operativo UNIX estaba casi totalmente escrito en C.
Durante muchos aos el estndar para C fue la versin 5 del sistema
operativo UNIX, documentada en ``The C Programming Language''
escrito por Brian W. Kernighan and Dennis M. Ritchie in 1978
comnmente referido como K&R.
Posteriormente se hicieron varias implementaciones las cuales mostraban
las siguientes tendencias:
Nuevas caractersticas
Diferencias de mquinas
Diferencias de productos
Errores en los compiladores
Malas implementaciones
Esto origin que en el verano de 1983 se estableciera un comit para
resolver estas discrepancias, el cual empez a trabajar en un estndar
ANSI C, la cual fue completada en 1988.
5.3 Caractersticas de C
Algunas de las caractersticas ms importantes que definen el lenguaje y
que han permitido que sea tan popular, como lenguaje de programacin
son:
Tamao pequeo.
Uso extensivo de llamadas a funciones.
Comandos breves (poco tecleo).
Lenguaje estructurado.
24
ALGORITMOS
Programacin de bajo nivel (nivel bit)
Implementacin de apuntadores - uso extensivo de apuntadores
para la memoria, arreglos, estructuras y funciones
Las diversas razones por la cual se ha convertido en un lenguaje de uso
profesional son:
El uso de constructores de alto nivel.
El poder manejar actividades de bajo-nivel.
El generar programas eficientes.
La posibilidad de poder ser compilado en una variedad de
computadoras, con pocos cambios (portabilidad).
Un punto en contra es que tiene una deteccin pobre de errores, lo cual
en ocasiones es problemtico para los principiantes.
5.4 Estructura de un programa en C
Un programa de C tiene bsicamente la siguiente forma:
Comandos del preprocesador.
Definiciones de tipos.
Prototipos de funciones - declara el tipo de funcin y las variables
pasadas a la misma.
Variables
Funciones
Para un programa se debe tener una funcin main().
Una funcin tiene la forma:
tipo nombre_de_la_funcion (parmetros)
{
variables locales
sentencias de
}
Si la definicin del tipo es omitida, C asume que la funcin regresa un
tipo entero. Nota: Lo anterior puede ser una fuente de problemas en un
programa.
A continuacin se muestra un primer programa:
/* Programa ejemplo */
# include <stdio.h>
#include <conio.h>
Void main()
{
printf( "Me gusta C\n" );
getch();
}
25
ALGORITMOS
NOTAS:
C requiere un punto y coma al final de cada sentencia.
printf es una funcin estndar de C, la cual es llamada en la
funcin main().
\n significa salto de lnea. Salida formateada.
getch() es tambin una funcin estndar que hace que el programa
se detenga para mirar el resultado obtenido
En caso de que se hubiera llamado a la funcin printf de la siguiente
forma:
printf(".\n.1\n..2\n...3\n");
La salida tendra la siguiente forma:
.1
..2
...3
5.5 Variables
C tiene los siguientes tipos de datos simples:
Tabla 2.1: Tipos de C
Tipo
Char
Unsigned char
short int
--
--
Flota
Double
Los tipos de datos bsicos tiene varios modificadores que les preceden.
Se usa un modificador para alterar el significado de un tipo base para
que encaje con las diversas necesidades o situaciones. Los
modificadores son: signed, unsigned, long y short.
En los sistemas UNIX todos los tipos int son long int, a menos que se
especifique explcitamente short int.
Nota: no hay un tipo booleano en C -- se deber usar char, int o an
mejor unsigned char.
26
ALGORITMOS
signed, unsigned, long y short pueden ser usados con los tipos char e
int. Aunque es permitido el uso de signed en enteros, es redundante
porque la declaracin de entero por defecto asume un nmero con
signo.
Declaracin de variables :
Para declarar una variable en C, se debe seguir el siguiente formato:
Tipo lista_variables;
tipo es un tipo vlido de C y lista_variables puede consistir en uno o ms
indentificadores separados por una coma. Un identificador debe
comenzar con una letra o un guin bajo.
Ejemplo:
int i, j, k;
float x,y,z;
char ch;
5.6 Definicin de variables globales
Una varible global se declara fuera de todas las funciones, incluyendo a
la funcin main(). Una variable global puede ser utilizada en cualquier
parte del programa.
Por ejemplo:
short numero, suma;
int numerogr, sumagr;
char letra;
void main()
{
...
}
Es tambin posible preinicializar variables globales usando el operador
de asignacin =, por ejemplo:
float suma= 0.0;
int sumagr= 0;
char letra= 'A';
main()
{
...
}
Que es lo mismo que:
float suma;
int sumagr;
char letra;
main()
{
suma = 0.0;
27
ALGORITMOS
sumagr= 0;
letra = 'A';
...
}
Dentro de C tambin se permite la asignacin mltiple usando el
operador =, por ejemplo:
a = b = c = d = 3;
...que es lo mismo, pero ms eficiente que:
a = 3;
b = 3;
c = 3;
d = 3;
La asignacin mltiple se puede llevar a cabo, si todos los tipos de las
variables son iguales.
Se pueden redefinir los tipos de C usando typedef. Como un ejemplo de
un simple uso se considera como se crean dos nuevos tipos real y letra.
Estos nuevos tipos pueden ser usados de igual forma como los tipos
predefinidos de C.
typedef float real;
typedef char letra;
/* Declaracion de variables usando el nuevo tipo */
real suma=0.0;
letra sig_letra;
5.7 Lectura y escritura de variables
El lenguaje C usa salida formateada. La funcin printf tiene un caracter
especial para formatear (%) -- un caracter enseguida define un cierto
tipo de formato para una variable.
%c caracteres
%s cadena de caracteres
%d enteros
%f flotantes
Por ejemplo:
printf("%c %d %f",ch,i,x);
La sentencia de formato se encierra entre " ", y enseguida las variables.
Asegurarse que el orden de formateo y los tipos de datos de las
variables coincidan.
scanf() es la funcin para entrar valores a variables. Su formato es
similar a printf. Por ejemplo:
scanf("%c %d %f %s",ch, &i, &x, cad);
Observar que se antepone & a los nombres de las varibles, excepto a la
cadena de caracteres. En el captulo 8 que trata sobre apuntadores se
revisar ms a fondo el uso de este operador.
28
ALGORITMOS
5.8 Constantes
ANSI C permite declarar constantes. Cuando se declara una constante
es un poco parecido a declarar una variable, excepto que el valor no
puede ser cambiado.
La palabra clave const se usa para declarar una constante, como se
muestra a continuacin:
const a = 1;
int a = 2;
Notas:
Se puede usar const antes o despus del tipo.
Es usual inicializar una constante con un valor, ya que no puede
ser cambiada de alguna otra forma.
La directiva del preprocesador #define es un mtodo ms flexible para
definir constantes en un programa.
Frecuentemente se ve la declaracin const en los parmetros de la
funcin. Lo anterior simplemente indica que la funcin no cambiara el
valor del parmetro. Por ejemplo, la siguiente funcin usa este concepto:
char *strcpy(char *dest, const char *orig);
El segundo argumento orig es una cadena de C que no ser alterada,
cuando se use la funcin de la biblioteca para copiar cadenas
5.9 Operadores Aritmticos
Lo mismo que en otros lenguajes de programacin, en C se tienen los
operadores aritmticos ms usuales (+ suma, - resta, * multiplicacin, /
divisin y % mdulo).
El operador de asignacin es =, por ejemplo: i=4; ch='y';
Incremento ++ y decremento -- unario. Los cuales son ms eficientes
que las respectivas asignaciones. Por ejemplo: x++ es ms rpido que
x=x+1.
Los operadores ++ y -- pueden ser prefijos o postfijos. Cuando son
prefijos, el valor es calculado antes de que la expresin sea evaluada, y
cuando es postfijo el valor es calculado despus que la expresin es
evaluada.
En el siguiente ejemplo, ++z es prefijo y -- es postfijo:
int x,y,z;
void main()
{
x=( ( ++z ) - ( y-- ) ) % 100;
}
Que es equivalente a:
int x,y,z;
29
ALGORITMOS
void main()
{
z++;
x = ( z-y ) % 100;
y--;
}
El operador % (mdulo o residuo) solamente trabaja con enteros,
aunque existe una funcin para flotantes (15.1 fmod() ) de la biblioteca
matemtica.
El operador divisin / es para divisin entera y flotantes. Por lo tanto hay
que tener cuidado. El resultado de x = 3 / 2; es uno, an si x es
declarado como float. La regla es: si ambos argumentos en una divisin
son enteros, entoces el resultado es entero. Si se desea obtener la
divisin con la fraccin, entonces escribirlo como: x = 3.0 / 2; o x = 3 /
2.0 y an mejor x = 3.0 / 2.0.
Por otra parte, existe una forma ms corta para expresar clculos en C.
Por ejemplo, si se tienen expresiones como: i = i + 3; o x = x * (y + 2); ,
pueden ser reescritas como:
30
ALGORITMOS
5.11 Operadores lgicos
Los operadores lgicos son usualmente usados con sentencias
condicionales o relacionales, los operadores bscios lgicos son:
&& Y lgico, || O lgico y ! negacin.
5.12 Orden de precedencia
Es necesario ser cuidadosos con el significado de expresiones tales
como a + b * c, dependiendo de lo que se desee hacer.
(a + b) * c
a + (b * c)
Todos los operadores tienen una prioridad, los operadores de mayor
prioridad son evaluados antes que los que tienen menor prioridad. Los
operadores que tienen la misma prioridad son evaluados de izquierda a
derecha, por lo que:
a-b-c
es evaluado como
(a - b) - c
Prioridad Operador(es)
Ms alta
( ) [ ] ->
! ~ ++ -- - (tipo) * & sizeof
*/%
+<< >>
< <= > >=
== !=
&
^
|
&&
||
?
= += -= *= /=
Ms baja ,
De acuerdo a lo anterior, la siguiente expresin:
31
ALGORITMOS
a < 10 && 2 * b < c
Es interpretada como:
(a < 10) && ( (2 * b) < c )
y
a = b =10 / 5 + 2;
como
a =( b =( 10 / 5 ) + 2 );
5.13 Prioridad de los operadores
1) Primero se evalan todas las sub-expresiones entre parntesis. Las
sub-expresiones dentro de parntesis anidados se evalan de a dentro
a fuera, con la sub-expresin ms interna en primer lugar.
2) El orden de evaluacin de los operadores es:
-(Signo opuesto) Prioridad ms alta
*,/,%
+,Prioridad ms baja
3) En caso de operadores con igual prioridad se evalan de izquierda a
derecha.
Ejercicios.
Evaluar las siguientes expresiones.
Expresin matemtica
sentencia
2 2*4
2 2*4
rbol de ejecucin
2 2*4
-8
-6
Significado
igual
Mayor que
Menor que
Diferente
Mayor o igual
Menor o igual
32
ALGORITMOS
Los operadores cambian de acuerdo al lenguaje
5.1 5 Operadores lgicos
Operador
||
Significado
O
&&
No
Tabla de verdad
P or Q
V V V
V V F
F V V
F F F
P AND Q
V V V
V F F
F V F
F F F
P NOT(P)
V
F
5.16Ejercicios Propuestos
Las siguientes expresiones aritmticas transformarlas a sentencias y luego
comprobar su resultado mediante un rbol de ejecucin.
Y
P
4*5
4
5
5
6*6
8*4
3
4
4 1
2
3
3
2
5
4
15 11
4
3
4
7
2
10
5
33
ALGORITMOS
A
B
X2
Y2
b 2 4ac
2*a
A2
B2
( X 1 X 2) 2
Sentencia
R=8-2/3+3
( )
S=(8-6)/(4-2)
( )
T=SQR(8-4)
( )
18 2
U=SQRT(18-2/4*4) ( )
4*4
4. Evalue las siguientes expresiones ( rbol de ejecucin)
U=
34
ALGORITMOS
UNIDAD VI
OBJETIVO DE LA UNIDAD
HORAS DE
ESTUDIO
TEMAS
6.1
2
Tipos predefinidos
Tipos enteros
Tipos reales
Tipos carcter
Tipos cadena
Tipos definidos por el usuario
6.2
2
Estructura de un programa
Entrada de datos por teclado
Salida de datos por pantalla
Ejercicios
ACTIVIDADES:
1.-Plantearse ejercicios de uso general y resolverlo.
2.-Resolver los ejercicios resueltos y repetir muchas veces
4.- Ejercicios de aplicacin
5.- Prueba de auto evaluacin
6.- Comprobacin de los contenidos de la Unida.
Ejercicios propuestos 5 puntos
Prueba escritas
5 puntos
Actuacin en clase
5 puntos
Lecciones orales
5 puntos
7.- Bibliografa de la Unidad
EVELI0O GRANIZO ,Programacin Estructurada
ROJAS VICENTE, ACATO JOSE, Tcnica de Flujogramas
CRITERIOS DE EVALUACIN:
Demostracin
Prueba escrita
Exposicin grupal
Comprobacin de resultados
Tareas de aplicacin
35
ALGORITMOS
CAPITULO I
De lo antes expuesto podemos resumir en los siguientes tipos de datos:
6.1
Tipos enteros
El lenguaje C tiene 5 tipos de datos bsicos
6.2
Nombre
Rango
Int
Shortint
Longint
32.768 a 32.767
-128 a 127
-2.147.483.648 a
2.147.483.648
Tamao
(bytes)
2
1
4
Formato
Entero con signo
Entero corto con signo
Entero largo con signo
Tipos Reales
Nombre
Rango
Tamao
Float
Double
2.9E-39 a 1.7E38
5.0E-324 a 1.7E308
6
8
Cifras
Significativas
11-12
15-16
36
ALGORITMOS
CAPITULO 2
6.6 ESTRUCTURA DE UN PROGRAMA
Un programa en Pascal debe realizarse desde una concepcin modular
siguiendo tcnicas de programacin estructurada. Se trata de organizar un
programa, con independencia de su tamao, en pequeos mdulos de
programa( subprogramas) entre s y con un programa principal.
Un programa est constituido de:
Cabecera
Declaraciones
Cuerpo del programa
6.7 Entrada de datos por teclado
Forma grfica
Seudo cdigo
Leerysaltar(variable)
variable
Seudo cdigo
Escribir y saltar(lista);
Escribir(lista);
6.9 Ejemplos.
Se desea introducir por teclado un nmero entero, luego
desplegarlo por pantalla.
Solucin:
37
ALGORITMOS
Forma Grfica : Diagrama de flujo
INICIO
deme un
nmero
FIN
seudo cdigo
Programa uno;
Var
A:entero;
Inicia programa
Escribirysaltar(A);
Leerysaltar(A);
Escribirysaltar(A);
Fin programa.
Prueba de escritorio
A
3
Deme nmero
3
nmero 3
Explicacin:
Diagrama:
Para solucionar el problemas hemos utilizado un diagrama, el mismo empieza con
un inicio, para luego desplegar en pantalla un mensaje indicando el dato que ser
ledo por teclado, para luego este dato ser desplegado por pantalla. Hemos
utilizado 3 smbolos, inicio o fin, desplegar mensaje por pantalla y leer informacin
a travs del teclado.
Seudocdigo:
La solucin del problema lo podemos realizar en forma textual, para lo cual
utilizamos el seudocdigo.
Prueba de escritorio.
Es necesario para comprobar si el programa cumplo con el objetivo deseado.
Para ello se pone todas las variables que intervienen en el programa, as como el
dispositivo de salida, para luego realizar un recorrido desde el inicio al fin
interpretando cada uno de los smbolos.
38
ALGORITMOS
Se desea introducir por teclado dos nmero(A;B). Con esta informacin se
desea hallar la suma, y desplegarlos con un mensaje.
Diagrama
seudo cdigo
Programa dos;
Var
A,B,S :entero ;
Inicio programa
Escribirysaltar(deme dos numero);
Leerysaltar(A,B);
S
A + B;
Escribirysaltar(la suma es,S);
Finprograma,
inicio
deme dos
nmeros
A,B
A+B
la suma
es,S
FIN
Prueba de escritorio
A B
la suma es 9
Explicacin:
Se ha utilizado un nuevo smbolo que es para proceso de datos, en el que en el
diagrama la flecha significa asignar, guardar o almacenar, y en C se utiliza(=).
Ejemplos: seudocdigos
1.- Disear un seudocdigo el cual permita el ingreso por teclado de una cantidad
de horas y presentar en pantalla su equivalente en min y seg. De acuerdo a la
siguiente salida
/* Transformaciones */
Programa transformar ;
Utiliza: horas, minutos, segundos: real;
Inicio
Borrar_pantalla;
Escribir y saltar (transformaciones);
Escribir y saltar (INGRESE LA CANTIDAD DE HORAS);
Leer (horas);
39
ALGORITMOS
minutos = horas*60;
segundos = minutos *60;
escribir y saltar (EN MINUTOS ES:, minutos);
escribir y saltar (EN SEGUNDOS ES:, segundos);
escribir y saltar (PRESIONE UNA TECLA PARA SALIR);
pausa;
fin transformacin.
2.- Disear un seudocdigo el cual permita el ingreso por teclado de una cantidad
de segundos y presentar en pantalla su equivalente en horas y minutos De
acuerdo a la siguiente salida
/* segundos a horas y minutos */
Programa transformar2;
Utiliza: horas, minutos, segundos: real;
Inicio
Borrar_pantalla;
Escribir y saltar (transformaciones 3);
Escribir y saltar (INGRESE LA CANTIDAD DE SEGUNDOS);
Leer (seg);
horas = seg/3600;
minutos = horas *60;
escribir y saltar (EN SEGUNDOS ES:, horas);
escribir y saltar (EN SEGUNDOS ES:, minutos);
escribir y saltar (PRESIONE UNA TECLA PARA SALIR);
pausa;
fin transformacin..
2.6 Ejercicios
1. Se desea introducir por teclado dos nmeros que son el contenido de dos
variables que representan la Base y Altura de un Triangulo Rectngulo. Con
esta informacin hallar el rea. Realizar el diagrama de flujo, prueba de
escritorio y codificacin c y presentar un listado del cdigo realizado en el
computador.
2. Se desea introducir por teclado dos nmeros que son el contenido de dos
variables que representan la cantidad a comprar y precio unitario de un
producto. Realizar el diagrama de flujo, prueba de escritorio y codificacin c y
presentar un listado del cdigo realizado en el computador.
3.
4.
5.
6.
40
ALGORITMOS
7.
2.-
41
ALGORITMOS
UNIDAD VII
OBJETIVO DE LA UNIDAD
Aplicar cada una de las sentencias del lenguaje de programacin Cl a los
algoritmos representados en forma grfica o seudocdigo.
CONTENIDOS:
HORAS DE
ESTUDIO
CAPT.
TEMAS
7.
7.1
Estructuras de control
Sentencias condicionales
Sentencia si (if) estructura
Sentencia seleccionar(swich)
Ejercicios
Sentencias repetitivas
Sentencia mientras hacer ( while)
Sentencia mientras hacer-mientras (do while)
Ejercicios
7.2
ACTIVIDADES:
1.-Plantearse ejercicios de uso general y resolverlo.
2.-Resolver los ejercicios resueltos y repetir muchas veces
4.- Ejercicios de aplicacin
5.- Prueba de auto evaluacin
6.- Comprobacin de los contenidos de la Unidad.
Ejercicios propuestos 5 puntos
Prueba escritas
5 puntos
Actuacin en clase
5 puntos
Lecciones orales
5 puntos
7.- Bibliografa de la Unidad
EVELIO GRANIZO ,Programacin Estructurada
ROJAS VICENTE, ACATO JOSE, Tcnica de Flujogramas
MANUAL DE PROGRAMACIN PASCAL
CRITERIOS DE EVALUACIN:
Demostracin
Prueba escrita
ejercicios
Comprobacin de resultados
Tareas de aplicacin
42
12h
6h
6h
ALGORITMOS
CAPITULO I
7. ESTRUCTURAS DE CONTROL
7.1
Sentencias condicionales
Sentencia compuesta: Mas de una instruccin que se agrupa por las palabras:
Proceso Fin proceso.
Ejemplo:
si a>b en x=10;
caso contrario y=5;
si a>b entonces x=5;
si b>c entonces
proceso1
x=10;
y=x;
z=x+y;
fin proceso1
caso contrario
proceso2
x=5;
z=x+10;
fin proceso2
si (a>b)y(b>c) entonces
proceso
43
ALGORITMOS
x=3;
z=a+b;
fin proceso
caso contrario
c=5;
7.1.2 Sentencia if( lenguaje C)
Se utiliza para evaluar una expresin si es verdadera (true) entonces se ejecuta
la sentencia siguiente a la palabra reservada THEN; en caso contrario, se ejecuta
la sentencia a continuacin de ELSE . En C se permite escribir la sentencia IF
de diversas formas, para mejorar la calidad y legibilidad de los programas. Antes
de la sentencia ELSE nunca debe existir un punto y coma.
Formato
Las tres formas como se puede emplear la sentencia if son:
if (condicion)
sentencia;
...o
if (condicion)
sentencia1;
else
sentencia2;
...o
if (condicion1)
sentencia1;
else if (condicion2) sentencia
else
sentencian;
44
ALGORITMOS
Diagrama de flujo
Forma grfica
Formato 1
Sente1
Condi.
Si condicin Entonces
Sentencia1;
Casocontrario
Sentencia2;
Sente2
IF anidados.
Forma grfica
Sen1
Con1
S
no
Sen2
Con2
S
no
Sen3
Con3
S
no
Sen4
45
ALGORITMOS
Ejemplos:
Se ingresa por teclado dos Nmeros. Con esta informacin se desea hallar
el mayor de ellos.
Diagrama
Inicio
deme dos
nmeros`
A,B
El
mayor
A >B
es,A
El mayor
es , B
FIN
#include<stdio.h>
#include<conio.h>
void main()
{
int a, b;
printf("dme primer numero \n");
scanf (%d, &a);
printf("dme segundo numero\|n");
scanf (%d, &b);
if (a> b)
{
printf ( el mayor es%d, a);
}
else
{
printf("el mayor es%d ", b);
}
getch();
}
46
ALGORITMOS
#include<stdio.h>
#include<conio.h>
void main()
{
int da, ma, aa, dn, mn, an;
printf(" Ingrese ao mes da actual \n ");
scanf (%d%d%d, &da, &ma, &aa);
printf("Ingrese ao mes da nacimiento \n");
scanf (%d%d%d, &an, &mn, &an);
if (da> dn)
d =da dn;
else
{
da = da + 30;
ma = ma 1;
d = da dn;
}
if (ma> mn)
d =ma mn;
else
{
ma = ma + 12;
aa = aa 1;
m = ma mn;
}
printf(%d %d %d,ea,em,ed);
getch();
Hacer un programa en seudocdigo el cual permita ingresar por teclado 2 valores
enteros diferentes .Encontrar el mayor de los dos presentar en pantalla el mayor y
verificar si ese mayor es par o impar.
Programa Verifica:
Utiliza:
A, B, MAY, RES, ENTERO;
Inicia
Borrar_pantalla:
Escribir y saltar (Ingreso primer numero),
Leer(A)
Escribir y saltar (Ingrese segundo numero);
Leer (B)
Si A>B entonces MAY=A;
Caso contrario MAY=B;
RES = MAY MOD 2;
Si RES == 0 entonces
Escribir y saltar (El mayor de, A y, B, ES, MAY,adems es PAR);
Caso contrario
Escribir y saltar (El mayor de, A y, B, ES, MAY,adems es impar );
Pausa
Fin Verifica.
47
ALGORITMOS
EJERCICIOS:
Se ingresa por teclado tres nmeros diferentes ,hallar el mayor y el menor
Se ingresa por teclado ao, mes, da de nacimiento, As como ao, mes y
da actual. Con esta informacin se desea hallar la edad en aos meses y
das. Desplegar la informacin por pantalla.
Se ingresa por teclado un nmero entero. Transformar a Hexadecimal y
octal ( utilice formatos de sentencias del C)
Se ingresa por teclado cantidad a comprar y precio unitario de un producto
Con esta informacin se desea hallar el total a pagar.El precio unitario est
dado por:
Cantidad a
comprar
< 100
101-200
201-300
301-400
401-500
>500
Precio
unitario
20
15
10
5
4
3
Expresin
Sentencias
48
ALGORITMOS
Explicacin: La expresin puede ser evaluada por una lista enumerando
elemento por elemento, por intermedio de un intervalo, o un solo elemento. Si no
cumple ninguna de estas condiciones se ejecutan las del caso contrario.
Aunque con la estructura if ... else if se pueden realizar comprobaciones
mltiples, en ocasiones no es muy elegante, ya que el cdigo puede ser difcil de
seguir y puede confundir incluso al autor transcurrido un tiempo. Por lo anterior,
C tiene incorporada una sentencia de bifurcacin mltiple llamada switch. Con
esta sentencia, la computadora comprueba una variable sucesivamente frente a
una lista de constantes enteras o de carcter
Despus de encontrar una coincidencia, la computadora ejecuta la sentencia o
bloque de sentencias que se asocian con la constante. La forma general de la
sentencia switch es:
Seudocdigo :
Lenguaje c:
Seleccionar (variable)
switch (variable) {
Proceso
case
constante1:sentencias
Caso
constante1:sentencias
break;
break;
case
constante2:sentencias
caso
constante2:sentencias
break;
break;
case
constante3:sentencias
caso
constante3:sentencias
break;
break;
default: sentencia
pordefecto: sentencia
fin proceso
49
ALGORITMOS
Ejemplo:
Se ingresa por teclado el cdigo de un producto(del 1 al 5) y cantidad a comprar
de un producto. Con esta informacin se desea hallar el total a pagar. El precio
unitario esta dado por: precio*cantidad
Diagrama
Inicio
deme
cantidad a
comprar
omprar
CC
deme
cdigo`
CP
PU=7
CP
PU=8
PU=10
T=CC*PU
total,T
FIN
50
ALGORITMOS
7.2.1 Ejercicios: Utilizar la sentencia case
1.Se ingresa por teclado un nmero del 1 al 7 que representa un da de la
semana. Con esta informacin se desea imprimir su equivalente en palabras.
Por ejemplo: si digito 1 debe imprimir Lunes 2 debe imprimir martes etc.
2. Se ingresa por teclado cantidad a comprar y precio unitario de un producto
Con esta informacin se desea hallar el total a pagar.El precio unitario est
dado por:
Cantidad a Precio
comprar
unitario
< 100
20
101-200
15
201-300
10
301-400
5
401-500
4
>500
3
3. Se ingresa por teclado un nmero que representa un mes. Indicar
cuantos das tiene dicho mes.
Ejemplo:
Mes 1 enero tiene 31 das
Mes 2 febrero tiene 28 29 das. ( dependiedo si el ao es bisiesto , es
decir cada 4 aos se tiene esa caracterstica)
4.Se ingresa por teclado un una fecha en aos meses y das, indicar la fecha del
da siguiente. Ejemplo fecha datos 31 -12- 2010 fecha siguiente
0 1- 01- 2011
PRUEBA DE AUTO EVALUACIN
instrucciones:
No revise las paginas anteriores
Acte con total honestidad
El propsito de sta prueba es para que Usted compruebe el avance de su
aprendizaje y el xito de sus estudio autnomo.
1.
2.
3.
4.
51
ALGORITMOS
7.3 Sentencias Repetitivas
Son aquellas sentencias que permiten repetir una serie de instrucciones
dependiendo de una condicin .Existen 3 tipos bsicos : Mientras ( While) , Hacer
Mientras ( Do-While), Para hacer ( For)
7.3.1 Sentencia mientras-hacer.(While)
Esta sentencia permite la ejecucin de un grupo de sentencias que se conoce
como ciclo o lazo.
La ejecucin se hace si la condicin de entrada al evaluarse de cmo resultado
verdadero. Este tipo de sentencia permite examinar al inicio la entrada a un ciclo,
es decir puede o no ejecutarse.
Cuando el flujo del programa llega a esta instruccin, primero se revisa si la
condicin es verdad para ejecutar la(s) sentencia(s), y despus el ciclo while se
repetir mientras la condicin sea verdadera. Cuando llega a ser falsa, el control
del programa pasa a la lnea que sigue al ciclo.
Diagrama de flujo :
Flujograma
Condicin
Sentencias
Seudocdigo
Mientras condicin
hacer
Proceso
Sentencia1
Sentencia 2
..
While anidados
Fin proceso
Condicin
Condicin
Sentencias
52
Lenguaje C
While ( condicin)
{
Sentencia1
Sentencia2
..
}
ALGORITMOS
Sintaxis.
Mientras (condicin)hacer
proceso
sentencia1
sentencia2
sentencia n
fin proceso
Ejemplos :
1.- Hacer un programa en pseudocdigo el cual permita ingresar por teclado un
valor entero, que indique el lmite a generar los nmeros pares desde 2 hasta el
lmite ingresado, presentar en pantalla dichos nmeros.
Programa generar
Utiliza:
limite, i: real;
Inicia:
Borrar_pantalla;
Escribir y saltar (ingrese el limite a generar # pares:
Leer(limite);
i=2;
mientras (i<=limite) hacer
proceso
escribir y saltar(i);
i=i+2;
Fin proceso
leer();
fin generar.
);
2.- Hacer un seudocdigo el cual permita ingresar por teclado un valor entero que
indique el lmite a generar los lmites, los pares desde 2 hasta el lmite ingresado,
presentar en pantalla dichos nmeros.
Programa generar2;
Utiliza: limite, i: real;
Inicio
Borrar_pantalla;
Escribir y saltar (Ingrese el limite a generar:
Leer(limite);
i=2;
Mientras (i<=limite) hacer
proceso
escribir y saltar(i);
i=i+2;
fin proceso
pausa;
fin generar2.
53
);
ALGORITMOS
INICIO
INGRESA
LIMITE
LIMITE
I=1
I<=LIMITE
I=I+1
x
FIN
Realizar un programa para generar los 10 primeros nmeros consecutivos
y desplegarlos en pantalla.
Diagrama de flujo
Prueba de escritorio
inicio
C
C=1
1
2
3
4
5
6
7
8
9
10
11
C<=10
C=C+1
Fin
54
1
2
3
4
5
6
7
8
9
10
ALGORITMOS
Ejercicios:
1. Realizar un programa para generar un programa para generar los 10
primeros nmeros pares .
2. Realizar un programa para generar los diez primeros nmeros Impares.
3. Realizar un programa que ingrese un nmero entero y obtenga en pantalla
los factores de ese nmero.
4. Realizar un programa que ingrese un lmite entero y obtenga en pantalla
los nmeros mltiplos de 5 desde 5 hasta ese lmite ingresado
5. Se ingresa por teclado un nmero, con esta informacin se desea hallar el
factorial de dicho nmero.
Ejemplo:
4!=4*3*2*1
6. Se ingresa por teclado dos nmeros hallar el MCD y el MCM utilizando el
algoritmo de Euclides que obtiene el MCD de dos nmeros en base a
divisiones sucesivas ( investigar y fundamentar con ejemplos el algoritmo
a plantearse )
7.3.2 Sentencia Hacer mientras ( Do .. While)
Ejecuta un ciclo o lazo al menos 1 vez, la condicin se verifica al final. Es similar
en todas la estructura a la sentencia mientras.
Sintaxis.
hacer
sentencia1
sentencia n
mientras condicin;
instrucciones
lenguaje C
do
{
sentencia1
sentencia n
instrucciones
}
while( condicin);
Ejemplo:
Hacer
escribir(ingrese un numero positivo);
leer(n);
mientras ( n<0 ) ;
55
ALGORITMOS
Forma grfica
sentencia
Condicion
seudo cdigo
Hacer
Sentencia1;
Sentencia 2;
.
Mientras condicin;
Lenguaje c
Do
{
Sentencia1;
Sentencia 2;
.
}
While ( condicin);
56
ALGORITMOS
Ejemplos
Realizar un programa para hallar la suma de los 10 primeros nmeros
consecutivos, y desplegar en pantalla cada uno ellos.
Prueba de escritorio
Inicio
C S
S=0
C=1
1
2
3
4
5
6
7
8
9
10
S=S+C
C
C=C+1
0
1
1
2
3
3
6
4
10
5
15
6
21
7
28
8
36
9
45 10
55
11
C>10
Fin
Ejercicio:
Hacer un programa el cual permita ingresar por teclado 2 nmeros enteros
positivos (validar ingreso). Presentar en pantalla el mximo comn divisor de los
2 nmeros. El mximo comn divisor constituye todos los factores comunes a los
2 nmeros pero con su menor exponente.
57
a) x>y
x=x-y
b) y>x
y=y-x
c) x=y
respuesta= x y
ALGORITMOS
programa MCD;
utiliza:
x, y: entero;
inicia:
hacer
escribir (ingrese el valor);
leer(x);
mientras(x<0);
hacer
escribir (ingrese otro valor);
leer(y);
mientras(y<0);
escribir(EL MCD DE, x, Y ,y, ES:);
Mientras (x<>y) hacer
proceso
si x>y entonces x=x-y;
caso contrario y=y-x;
fin proceso
escribir y saltar(x);
pausa;
fin MCD.
Programa en lenguaje C
#include<conio.h>
#include<stdio.h>
void main()
{
int x,y;
clrscr();
printf("maximo comun divisor\n");
do
{
printf("ingrese el primer numero: \n");
scanf("%d",&x);
}
while(x<0);
do
{
printf("ingrese el segundo numero: \n");
scanf("%d",&y);
}
while(y<0);
printf("el MCD de %d y %d es: ",x,y);
while(x!=y)
{
if (x>y)
x=x-y;
else y=y-x; }
printf("%d",x); getch; }
58
ALGORITMOS
Ejercicios utilizar la Sentencia Hacer mientras (do.While)
1. Realizar un programa para generar un programa para generar los 10
primeros nmeros pares.
2. Realizar un programa para generar los diez primeros nmeros Impares.
3. Realizar un programa para generar los 10 primeros nmeros mltiplos de 5.
59
ALGORITMOS
7.4 Sentencia de repeticin : Para Hacer ( For )
Se utiliza para ejecutar un conjunto de sentencias un nmero exacto de veces de
uno en uno.Esta sentencia ejecuta un ciclo n veces conociendo el inicio y el fin de
las iteraciones.
Seudocdigo
para (va=inicio; condicin; inc) hacer
proceso
sentencia1
instrucciones
sentencia n
fin proceso
Forma grfica
I = VI , VF
Sentencias
Seudo cdigo
Para I=VI a VF
hacer
Inica proceso
Sentencia1;
Sentencia2;
Fin proceso;
Lenguaje C
for (val=ini; condicin;
incremento)
{
Sentencia1
sentencia2
..
}
I = VI , VF
Sentencias
For anidados
I = VI , VF
Sentencias
I = VI , VF
Sentencias
60
ALGORITMOS
Explicacin
La variable toma el primer valor para luego incrementarlo de uno en uno hasta
llegar al final. Tambin podemos tener que la variable toma un valor final y se
disminuye de uno en uno hasta llegar al valor inicial.
Si seguimos las lneas de flujo del diagrama podemos decir, cuando el flujo es
vertical la variable tomo el primer valor asignado, pero cuando regresa por la lnea
continua se incrementa la variable de 1 en 1 hasta llegar al limite final.
Nota : Los for se pueden anidar es decir un for puede estar dentro de otro.
EJEMPLO:
1.- Se ingresa por teclado dos nmeros el primero menor que el segundo,
con esta informacin se desea hallar la suma de todos los nmeros enteros
incluidos ellos.
Diagrama
Prueba de escritorio
inici
o
S I
0 3
3 4
7 5
12
`Deme dos
nmeros
B
5 La suma es 12
Desarrollar el alumno en
seudocdigo
A,B
A<B
S
I=A,B
S+I
la suma
es, S
FIN
61
ALGORITMOS
2.- Elaborar un programa en pseudocdigo el cual permita ingresar por teclado un
nmero entero positivo. Presentar en pantalla todos los factores de ese numero.
programa factores;
utiliza:
n, f, r: entero;
inicia
hacer
proceso
escribir (ingrese numero positivo);
leer(n);
fin proceso
mientras(n<0);
para f=1 hasta n hacer
proceso
r = n mod f;
si r==0 entonces;
escribir (f);
fin proceso
pausa;
fin factores.
Programa en C
#include<stdio.h>
#include<conio.h>
void main()
{
int n, f, r;
clrscr();
do {
printf( ingrese numero positivo);
scanf(%d&n);
}while (n<0);
for (f=1;f<=n; f=f+1)
{
r = n % f;
if(r==0) printf(el factor es %d\n,f);
}
printf(presione una tecla para salir);
getch();
}
62
ALGORITMOS
7.5
Ejercicios:
Se ingresa por teclado un nmero, con esta informacin se desea hallar el
factorial de dicho nmero.
Ejemplo:
6!=6*5*4*3*2*1
Realizar un programa para generar la tabla de multiplicar del 5. Imprimir
segn el siguiente diseo de salida.
Tabla del 5
5*1 =5
5*2=10
5*3=15
5*4=20
3. Realizar un programa para cada uno de los casos donde el nmero
de dilas esta dado por N donde ingresa por teclado.
a)
1
b) 1 2 3 4 5
12
1 2 3 4
12 3
1 2 3
1 23 4
1 2
12345
1
c)
1
121
123 21
12 34 3 21
63
ALGORITMOS
UNIDAD VIII
8
Arreglos
Vectores
Ejercicios
Matrices
Ejercicios
6h
6h
8.Arreglos
Un arreglo es una coleccin fija de elementos del mismo tipo. Un arreglo es una
estructura de datos que representan listas o tablas de valores bajo un nico
nombre de variable. Todos los elementos de un mismo arreglo pertenecen al
mismo tipo. Los arreglos se caracterizan por las caractersticas.
a.
b.
c.
d.
Representacin grfica
Declaracin :
A[5] : entero;
64
ALGORITMOS
5
7
8
9
4
A[0] A[1] A[2] A[3] A[4]
Posicin de la celda
Ejercicios resueltos
5. Realizar un programa para almacenar el nmero 2 en un vector de 10
celdas.
Diagrama de flujo
Prueba de escritorio
inicio
A[10]
I=1,10
A[I]
I=1,10
A[ ]
1
2
3
4
5
6
7
8
9
10
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
A[I]
Vector
Fin
65
ALGORITMOS
8.3 Ejercicios de ingreso datos a un vector por teclado.
6. Se ingresa por teclado N elementos a un vector con esta informacin se
desea hallar la suma y el promedio.
Diagrama de flujo
1
Inicio
I:=1 ,N
A[10]
S:=S+A[I]
Cuantos
Elementos
desea
I:=1,N
A[I]
N<=10
I:=1 ,N
P:=S/N
deme
elemento
la suma es,S
promedio,P
A[I]
FIN
fin
S:=0
1
66
ALGORITMOS
7. Hacer un programa el cual permita procesar n elementos de un arreglo
de enteros declarando como 20 espacios, se desea:
1.
2.
3.
4.
5.
Programa arreglo
utiliza:
n, sum, i: entero;
a [20]: entero;
p: real;
inicia
borrar pantalla;
hacer
escribir (ingrese un numero);
leer(n)
mientras((n<1)o(n>20));
escribir y saltar (ingresar los, n , elementos );
sum=0;
para i=0 hasta n-1 hacer
proceso
escribir y saltar(ingrese los elementos);
leer(a [i]);
sum=sum + a [i];
fin proceso
p =sum /n *1.0;
borrar pantalla;
escribir y saltar (elementos del vector);
para i=0 hasta n-1; hacer
proceso
escribir y saltar(a[i]);
fin proceso
escribir y saltar(la suma de elementos es: , sum);
escribir y saltar(el promedio de los elementos es: , p);
pausa;
fin arreglo.
Programa en lenguaje C :
#include<conio.h>
#include<stdio.h>
void main()
{
int n,i;
float sum,p;
int a[20];
67
ALGORITMOS
clrscr();
do{
printf("ingrese el numero de elementos: \n");
scanf("%d",&n);
}
while((n<1)||(n>20));
printf("\n ingrese los %d elementos\n",n);
sum=0;
for(i=0;i<n;i=i+1)
{
printf("\n ingrese los elementos\n");
scanf("%d",&a[i]);
sum=sum+a[i];
}
p=sum/n*1.0;
clrscr();
printf("\n elementos del vector:\n");
for(i=0;i<n;i=i+1)
{
printf("%d",&a[i]);
}
printf("\nla suma de los elementos es %.2f\n",sum);
printf("\nel promedio de los elementos es %.2f\n",p);
printf("\npresione una tecla para salir");
getch();
}
8.4 Ejercicios:
En cada uno de ellos desarrollar diagrama, prueba de escritorio
seudo cdigo.
codificacin , y
68
ALGORITMOS
Se ingresa por teclado N elementos a un vector con esta informacin se
desea Ordenarlo ascendentemente.
Se ingresa por teclado N elementos a un vector . Con esta informacin se
desea hallar el elemento mayor y el elemento menor.
Realizar un programa para ingresar por teclado N elementos a un vector ,
ORDENAR ascendentemente dicho vector por el mtodo de BURBUJA
SIMPLE.
Realizar un programa para ingresar por teclado N elementos a un vector ,
pedir un elemento a buscar dentro del mismo , si lo encuentra desplegar un
mensaje indicando tal situacin , caso contrario emitir mensaje de error
(Mtodo de bsqueda simple)
Investigar y fundamentar con un ejemplo el mtodo de la BSQUEDA
BINARIA en arreglos ordenados
( Propuestas tomadas del manual de programacin de: Ing.CarlosPazmio MSc)
Filas
Para referirse a una matriz esta est dada por:
Nom[i] [ j]. Donde : Nom es nombre de la matriz seguido de dos subndices
y encerrados entre corchetes. El primer subndice se refiere a las filas y el
segundo a las columnas.
Por tanto una matriz esta dada por filas y columnas as:
1,1 1,2
1,3 1,4
Esta es una matriz de 2 filas por dos columnas, si queremos referirnos a la
celda 0,1 notaremos.
A[0][1].
Para dimensionar a una matriz se funadmenta en el siguiente formato :
Tipo nombre [FILA ][COLUMNA];
Tipo puede ser: cualquier tipo de dato por ejemplo: integer, real,char, string
etc.
69
ALGORITMOS
Ejemplos.
Realizar un programa para almacenar el nmero 2 en una matriz de 3 filas
por 3 columnas.
Diagrama de flujo
INICIO
X[5,5]
I:=1 ,5
J:=1,5
XI,J]:=2
I:=1 ,5
J:=1,5
A[I,J]
matriz
FIN
Se ingresa por teclado M,N elementos a una matriz , con esta informacin se
desea hallar la suma.
70
ALGORITMOS
Diagrama
inicio
X[5,5]
codificacin
Para el alumno: codificar y
realizar la prueba de
escritorio.
1
I:=1,M
J:=1,N
cuantos
elementos
desea
A[I,J]
N,M
suma,S
N<=5 and
M<=5
FIN
I:=1 ,M
J:=1,N
A[I,J]
I:=1 ,M
J:=1,N
S:=S+A[I,J]
71
ALGORITMOS
Ejercicio:
Disear un algoritmo que permita el ingreso de datos de una matriz de 9 x 9.
ingresar por teclado filas y columnas, adems obtener la suma de sus elementos,
el promedio y presentar en pantalla la matriz ( por filas una por linea)
Pograma Matrices;
Uiliza:
a [9] [9]: entero;
i, j,f,c,sum:entero;
prom:real;
inicia:
Borrar_pantalla;
Escribir y saltar (ingrese el numero de fila de la matriz);
Leer (f);
Escribir y saltar (ingrese el numero de columnas de la matriz);
Leer (c);
Escribir y saltar ( ingrese datos a la matriz);
Para i=0 hasta F-1 hacer
Proceso 1
Para j=0 hasta c-1 hacer
Proceso 2
Escribir y saltar (ingrese elemento: );
Leer (a[i] [j]);
Sum= sum+ a[i] [j];
Fin proceso 2
Fin proceso 1
Prom=sum / (f x c);
Escribir y saltar (matriz en pantalla: );
Para i=0 hasta F-1 hacer
Proceso 1
Para j=0 hasta c-1 hacer
Escribir (A[i][i]);
Escribir y saltar ( );
Fin proceso 1
Escribir y saltar ( la suma de los elementos de la matriz es:;sum);
Escribir y saltar ( el promedio de los elementos de la matriz es:;prom);
Pausa;
Fin programa matrices.
Codificacin en C :
#include <stdio.h>
#include <conio.h>
void main ()
{
int A[3][3],f,c,i,j;
float sum,prm;
clrscr();
72
ALGORITMOS
do
{
printf("Ingrese Numero de Filas: ");
scanf("%d",&f);
}
while((f<1)||(f>3));
do
{
printf("Ingrese Numero de Columnas: ");
scanf("%d",&c);
}
while((c<1)||(c>3));
clrscr();
printf(" INGRESE DATOS A LA MATRIZ");
sum=0;
for(i=0;i<=f-1;i=i+1)
{
for(j=0;j<=c-1;j=j+1)
{
printf("\nIngrese Elemento: ");
scanf("%d",&A[i][j]);
sum=sum+A[i][j];
}
}
clrscr();
prm=sum/(f*c);
printf("
MATRIZ EN PANTALLA\n\n");
for(i=0;i<=f-1;i=i+1)
{
for(j=0;j<=c-1;j=j+1)
{
printf(" %2d",A[i][j]);
}
printf(" \n ");
}
printf("\n\nSuma de Elementos: %.2f ",sum);
printf("\n\nPromedio de Elemetos %.2f ",prm);
getch();
}
73
ALGORITMOS
8.6 EJERCICIOS
Realizar cada uno de los ejercicios siguientes. De M filas por N
columnas. Donde M y N ingresan por teclado.
0 0 0 1
1 0 0 0
0 0 1 0
0 1 0 0
0 1 0 0
0 0 1 0
1 0 0 0
0 0 0 1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
2
1
0
0
0
0
1
1
1
1
1
0
3
2
1
0
0
0
0
1
1
1
1
1
4
3
2
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
2
2
2
0
0
3
3
0
0
0
4
74
ALGORITMOS
UNIDAD IX
8
PROCEDIMEINTOS Y FUNCIONES
Parmetros
Estructura y declaracin
Parmetros formales
Funciones
Codificacin
10h
Los parmetros
Los parmetros son canales de comunicacin para pasar datos ente
programas y subprogramas en ambos sentidos. Los parmetros van
asociados a variables. constantes, expresiones, etc., y por tanto, se
indican mediante los correspondientes identificadores o expresiones.
Los parmetros que se utilizan en la llamada o invocacin al subprograma
se denominan parmetros actuales, reales o argumentos, y son los que
entregan la informacin al subprograma. Los parmetros que la reciben en
el subprograma se denominan parmetros formales o ficticios y se declaran
en la cabecera del subprograma.
En una llamada a un subprograma tiene que verificarse que:
1. El nmero de parmetros formales debe ser igual al de actuales.
2. Los parmetros que ocupen el mismo orden en cada una de las Listas
deben ser compatibles en tipo.
9.3
9.4
75
ALGORITMOS
Llamada a un procedimiento.
Se realiza desde el programa principal indicando el identificador del
procedimiento seguido de la lista de parmetros actuales encerrados entre
parntesis y separados por comas.
Ejem.
Identificador (PAl ,PA2,PA3)
Ejercicio:
Realizar la prueba de escritorio del siguiente programa.
Forma grfica
programa principal
Procedimiento
(Nom)
Inicio
(parame)
Nom(parame)
Sentencias
Fin
fin
Funciones o procedimientos?
Deben utilizarse funciones cuando solo tenga que devolverse un solo valor
simple al programa llamador. En todos los dems casos utilizaremos:
procedimientos.
9.5
Funciones
Una funcin es idntica a un procedimiento con la diferencia; la funcin
devuelve un valor especfico. Las funciones tienen las mismas estructuras
que los procedimientos, una cabecera, una seccin de declaracin y un
cuerpo.
Ejemplo:
Llamar a la funcin desde el programa principal:
Explicacin: Como se identifica en el programa en el nombre de la funcin
se almacena un valor y que este ser asignado a una variable.
9.6
Ejercicios:
76
ALGORITMOS
1. Se ingresa por teclado en el programa principal dos nmeros que
representan la base y al altura de un triangulo rectngulo. Con esta
informacin se desea hallar el rea.
a) Utilizar un procedimiento para el clculo del rea e imprimir en el
programa principal el resultado.
b) Utilizar una funcin para el clculo del rea e imprimir en el programa
principal el resultado.
77