You are on page 1of 78

ALGORITMOS

1 Ingeniera de Sistemas e Informtica


-ISIN-

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 DEL MODULO


OBJETIVO GENERAL
Conocer las tcnicas de diseo de algoritmos mediante la implantacin de
soluciones a problemas en base al desarrollo de la lgica de un programa
estructurado para la solucin de problemas enfocados a la vida real .

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

una Ciencia que estudia el tratamiento automtico de la

informacin, tomndose como materia prima a la informacin que utilizando un


algoritmo podemos desarrollar y solucionar ejercicios ,matemticos , comerciales
Sociales, culturales y de uso general.

El saber desarrollar correctamente un algoritmo ser de vital importancia para la


carrera de sistemas.
Una tcnica para desarrollar un algoritmo es utilizando flujogramas , lo que al
alumno se le facilita sus ideas en forma grfica que muchas veces literalmente, la
diagramacin no es un tipo de programacin como muchos creen que los es , es
una tcnica de enseanza aprendizaje que puede ser utilizada por cualquier otra
asignatura , pero es muy til para el desarrollo de programas.

Cuando tenemos la idea clara de desarrollar un algoritmo, la lgica es aplicable


en cualquier lenguaje de programacin, muchos maestros en esta asignatura
creen que al darle una ltima herramienta de programacin en el lenguaje le est
enseando a programar cosa que no es as ya que para muchos alumnos se los
hace difcil entender la programacin.
Tambin utilizaremos la codificacin en seudocdigos y su trascripcin a
lenguaje C el cual nos ayudar para un mejor entendimiento de la lgica de un
algoritmo, cuyo objetivo es ms bien el desarrollo de un algoritmo que en si el
lenguaje.

ALGORITMOS
UNIDAD I
OBJETIVO DE LA UNIDAD

Describir el ciclo del proceso de datos de entrada, procesamiento y salida, para


desarrollar algoritmos utilizando el computador.
CONTENIDOS:
CAPT.

HORAS DE
ESTUDIO

TEMAS

1h00

Introduccin al procesamiento de datos


1H00

Etapas del procesamiento de datos


Estructura de un algoritmo

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

Entrada: Es la recopilacin correcta de todos los datos requeridos y ordenados


lgicamente para su procesamiento.
Procesamiento: Es el conjunto de operaciones que se aplican a los datos de
entrada para obtener unos datos de salida o resultados.
Salida: Es la obtencin de resultados lgicos requeridos por el usuario para su
utilizacin.
Ejemplos:
Se desea calcular el sueldo de un empleado el fin de mes el cual gana por
horas trabajadas. Identificar las etapas del procesamiento de datos.
Entrada
Proceso
Salida
Total horas
Total hora multiplicado
Valor a pagar
Precio Hora
Por el nmero de horas
Se desea calcular la suma y el promedio de tres notas de un alumno.
Identificar las etapas del procesamiento de datos.
Entrada
Proceso
Salida
Tres notas
Suma de tres notas
Suma
Suma/3
promedio
Explicacin:
Como podemos apreciar en los ejemplos en la entrada es la recopilacin
correcta de la informacin, para luego en el procesamiento a estos datos se
les aplica un conjunto de operaciones : suma , el producto , y la divisin para
tener los resultados.
1.2 Definicin de algoritmo.- Un algoritmo es un conjunto de pasos secuenciales
y unidos lgicamente entre si para cumplir con un objetivo determinado.
Cuando se detallan las instrucciones se identifica los tipos de algoritmos
y podemos clasificarlos en :

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.

Disear un algoritmo para cambiar un foco quemado que se encuentra en


el techo de su cuarto, para lo cual se tiene una silla y un foco nuevo.
Elaborar un algoritmo que muestre el procedimiento para medir un litro de
agua, para lo cual se tiene dos recipientes vacos de dos litros de
capacidad y otro de dos y medio litros.
Supngase que se dispone de una balanza de dos platos y12 objetos de
igual tamao; cinco de los cuales tienen el mismo peso y uno es ms
pesado. Haciendo el menor nmero de pesadas encontrar el objeto ms
pesado.

GRADO MXIMO DE DIFICULTAD ...........


PUNTAJE OBTENIDO ......./20.........
Nota: luego de terminada la prueba, Usted puede revizar las pginas anteriores,
para verificar las respuestas de las preguntas que no acertaron o que no fueron
contestadas.

10

ALGORITMOS
UNIDAD II
OBJETIVO DE LA UNIDAD

Desarrollar algoritmos en forma grfica, utilizando una simbologa estructurada


para solucionar un problema, as como la utilizacin de seudo cdigo.
OBJETIVOS ESPECIFICOS
1. Identificar y usar adecuadamente cada smbolo para solucionar un problema.
2. Aplicar correctamente las reglas para desarrollar algoritmos
3. Conocer la estructura de un algoritmo.

CONTENIDOS:
CAPT.

HORAS DE
ESTUDIO

TEMAS

4H00
La tcnica de flujogramas
Concepto de diagramas de flujo
Tipos de diagramas

Ventajas de los diagramas


Simbologa
Reglas generales para la elaboracin de diagramas
Seudocdigo
Introduccin
Mdulo
Modularizacin
Estructura de un programa en seudocdigo
Reglas para elaborar un seudocdigo

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 condicional Si entonces hacer


Para realizar preguntas Caso contrario
hacer
Instruccin de salida de Escribir
datos y resultados en
papel
Contador automtico

Para asignacin Hacer

Instruccin de entrada
de datos por teclado

leer

Conector interno de
pgina

Siga la siguiente
instruccin

Conector externo de
pgina

Siga la siguiente pgina

Archivo

Archivo

Desplegar datos y
resultados en pantalla

escribir

Repetir hasta cuando Repetir hasta


una condicin se
cumpla
Mientras la condicin
se cumpla hacer

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.

2.2.1 Modulo: Tambin llamado bloque, es el conjunto finito de pasos o


instrucciones interrelacionadas entre si que estn escritas en espaol.
2.2.2 Modularizacin
Consiste en dividir un programa en mdulos o en segmentos ms
pequeos, a la vez cada uno de estos se pueden subdividir en otros
mdulos ms pequeos.
2.2.3 Estructura de un programa en seudocdigo
Programa nombre;
encabezado
Utiliza:
------------variables/constantes
------------Inicia
------------cuerpo del programa
------------Fin nombre
fin del programa
2.2.4 Reglas para elaborar un seudocdigo
1. Todo nombre de programa, variable, constante, funcin o proceso siempre
debe empezar con una letra, no puede contener espacios en blanco, ees
o tildes.
2. Existe la cabecera de un programa la cual se describe por la palabra
programa.
3. Toda instruccin o sentencia terminara en (;).
4. Un grupo de sentencias o instrucciones son consideradas un proceso para
lo cual tiene sus delimitadores.

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 (.)

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.
Cada tem vale 1 punto.
1.) Poner el significado de cada uno de los smbolos.
Simbologia

Significado

15

pseudocodigo

ALGORITMOS
2.-) Enumere los tipos de diagramas.
a)-----------------

b)--------------------------

c)------------------------

3.-) Defina en forma clara y concisa los siguientes trminos.


a)Diagrama de flujo.
b) Modulo:

c)Modularizacin:

d)Pseudocdigo:
4.-) Escribir una diferencia entre pseudocdigo y diagrama de flujo.

5.-) Ponga las ventajas de los diagramas de flujo.

6.-) Ponga las reglas para realizar diagramas.

GRADO MXIMO DE DIFICULTAD ...........


PUNTAJE OBTENIDO ............./20...

16

ALGORITMOS
UNIDAD III
OBJETIVO DE LA UNIDAD

Interpretar mediante un grfico la memoria del computador, para luego realizar la


asignacin de la informacin en la memoria.
CONTENIDOS:
CAPT.

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

Reglas para formar variables


a)Combinacin de letras del alfabeto
( A...Z) o (a....z)
b) Letras y nmeros , pero siempre el primer
carcter debe ser una letra.
c) No debe existir espacios en blanco ni caracteres
especiales entre caracteres

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.

1.- Ponga 10 nombres de variables que cumplan las reglas establecidas.


2.- Ponga 10 constantes e indique su tipo.
3.- Represente grficamente a la memoria y explique cual es el proceso de
almacenamiento de informacin en una celda, ponga ejemplos ilustrativos.
4.- Defina constante, variable, sentencia, expresin aritmtica.
Cada pregunta vale 5 puntos.

GRADO MXIMO DE DIFICULTAD ...........


PUNTAJE OBTENIDO ......../20........
.

20

ALGORITMOS
UNIDAD IV
OBJETIVO DE LA UNIDAD

Conocer los diferentes tipos de operadores a si como las operaciones que se


pueden realizar con ellos, igualmente se estudiarn las expresiones que es
posible construir sobre la base de cada uno de ellos.
CONTENIDOS:
CAPT.

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

(=)

Tabla operacional (relacin)


Signo
>
>=
<
<=
==

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

-7 mod 4*3-2*(6 mod 4/3 -7)+2


-3

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

Tamao (bytes) Lmite inferior Lmite superior

Char

Unsigned char

short int

--

--

Unsigned short int 2


(long) 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:

Lo cual es equivalente, pero menos eficiente que:

Por lo que podemos reescribir las expresiones anteriores como: i += 3; y


x *= y + 2; respectivamente.
5.10 Operadores de Comparacin
El operador para probar la igualdad es ==, por lo que se deber tener
cuidado de no escribir accidentalmente slo =, ya que:
if ( i = j ) ...
Es una sentencia legal de C (sintcticamente hablando aunque el
compilador avisa cuando se emplea), la cual copia el valor de ``j'' en ``i'',
lo cual ser interpretado como VERDADERO, si j es diferente de cero.
Diferente es !=, otros operadores son: < menor que, > mayor que, <=
menor que o igual a y >= (mayor que o igual a).

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

5.14 Operadores de relacin


Operador
==
>
<
=
>=
<=

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

Le notaremos a la raz cuadrada como sqrt(expresin).


Ejemplo:
4 sqrt (4)
Le notaremos al cuadrado como sqrt(expresin):
Las siguientes expresiones transformar a sentencias.

33

ALGORITMOS
A
B

X2

Y2
b 2 4ac
2*a

A2

B2

( X 1 X 2) 2

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. Defina operador, expresin aritmtica.
2. Agrupe los siguientes Operadores segn corresponda y ponga un
ejemplo de cada uno.
Aritmtico
Relacin Lgico
> , < , + , - , * , = , <= , >=, &&, ||,! ,<>, /, %, sqrt,
3. Ponga V si es verdad y F si es falso cada una de las siguientes
Sentencias en caso de ser falso por correctamente la sentencia.
Expresin
8 2
R=
3 3
8 6
S=
4 2
T= 8 4

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=

-7 mod 4*3-2*(6 mod 4/3 -7)+2


16 mod ( -3) / 4 +raz( 16)/ 2- (-2) mod 12
Cada pregunta vale 5 puntos
GRADO MXIMO DE DIFICULTAD ...........
PUNTAJE OBTENIDO ........../20......

34

ALGORITMOS
UNIDAD VI
OBJETIVO DE LA UNIDAD

Conocer los elementos de informacin que manipula un programa, como


nmeros, caracteres, cadenas y otros smbolos ,para utilizar en el lenguaje de
programacin C.
CONTENIDOS:
CAPT.

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

6.3 Tipos carcter(char)


Un carcter es un miembro del conjunto de smbolos utilizador para
representar o controlar datos. Un carcter es uno de los smbolos del
cdigo ASCII. Una constante de tipo char puede contener un solo carcter
especificado entre apstrofos.
Ejemplos:
a M 12 17
6.4 Tipo Cadena
Es una secuencia de caracteres que tiene una longitud mxima de 255
caracteres . Cada carcter utiliza un Byte , y la cadena utiliza tantos bytes
como caracteres tenga ms uno que almacena la longitud de la cadena.
Ejemplos:
hola L.D.U pepito
6.5 Tipos lgicos
Los tipos o valores lgicos pueden tomar dos valores True(verdadero) y
False (falso).
False<True

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

Esta sentencia espera que el usuario haya introducido el dato


durante la ejecucin para luego almacenarlo esta informacin en la
variable.
Al final de la sentencia se pone punto y coma(;) en el pascal
6.8 Salida de datos y resultados por pantalla.
Forma
grfica
lesta

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.

Se desea introducir por teclado un nmero que representa una medida en


metros con esta informacin se desea transformar a centmetros y milmetros.
Realizar el diagrama de flujo y prueba de escritorio y codificacin.
Se ingresa por teclado un nmero de 4 cifras con esta informacin se desea
dividir en unidades , decenas , centenas y unidades de mil luego desplegarlo
a pantalla.
Se ingresa por teclado el radio de un circulo, con esta informacin se desea
hallar el rea. Desplegar el radio y el rea con mensajes que usted desee.
Leer la entrada de dos nmeros y mostrar el doble producto del primero
menos la mitad del segundo.

40

ALGORITMOS
7.

Escribir un programa para leer un ``flotante'' que representa un nmero de


grados Celsius, e imprime como un ``flotante'' la temperatura equivalente en
grados Fahrenheit. La salida puede ser de la siguiente forma: 100.0 grados
Celsius son 212.0 grados Fahrenheit.
8. 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 en c y presentar un listado del cdigo realizado en el
computador.
9. 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.
10. Se desea introducir por teclado dos nmeros que son el contenido de dos
variables (A,B). Con esta informacin hallar la suma, resta,multiplicacin,
divisin. Realizar el diagrama de flujo, prueba de escritorio y codificacin C y
presentar un listado del cdigo realizado en el computador. Imprimir con
mensajes que usted desee.
11. Se desea introducir por teclado un nmero que representa una medida en
kilmetros con esta informacin se desea transformar a metros y centmetros.
Realizar el diagrama de flujo y prueba de escritorio y codificacin.
12. Se ingresa por teclado un nmero de tres cifras con esta informacin se
desea dividir en unidades, decenas y centenas. Luego desplegarlo a pantalla
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.-

Enumere los tipos de datos :


Enteros:
Reales:
Char:
Cadenas:
Lgicos:
Enumerados:
Subrango:

2.-

Indicar a que tipo de dato corresponden las siguientes expresiones:


124
23.72
a
hola
76.84
17..20
true
false

GRADO MXIMO DE DIFICULTAD ...........


PUNTAJE OBTENIDO ........../20......

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

7.1.1 Sentencia de decisin: si entonces caso contrario (seudocdigo)


Mltiple.
Simple (anidadas).
Simple.- decide entre 2 alternativas de solucin (verdad y falso)
Sintaxis:
Si ( condicin) entonces
Sentencia1
Caso contrario
Sentencia2
Caso contrario: se considera opcional, depende de la aplicacin.
Si al evaluar la condicin resulta verdadero se ejecuta la sentencia1.
Si al evaluar la condicin resulta falso se ejecuta sentencia2.
Sentencia 1, sentencia2: son instrucciones ejecutables, pueden ser simples o
compuestas.
Sentencia simple:

una sola instruccin que termina en;

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

Formato seudo cdigo

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

Nota . El anidamiento de sentencias if se establece por la sentencia else siempre


y cuando coincida cda if con su else teniendo en cuenta la sintaxis del punto y
coma que finaliza la instruccin.

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

Se ingresa por teclado dos nmeros que representa un punto en el plano


cartesiano. Indicar en que cuadrante o eje se encuentra este punto.
Se ingresa por teclado un nmero, indicar mediante un mensaje por la
pantalla,si el nmero ingresado es par o impar.
Se ingresa por teclado un nmero que representa un da en la semana.
Imprimir en palabras si es 1. Lunes, 2..Martes, 3...Mircole,......7..Domingo.
Se ingresa por teclado una fecha en ao, mes y da. Imprimir la fecha del
da siguiente.
Ejemplo:
24 2010 actual
25 2010 siguiente
Se ingresa por teclado un nmero que representa un mes. Indicar cuantos
das tiene dicho mes.
7.2 Sentencia seleccionar (switch)
Esta sentencia se utiliza cuando existen varias acciones a realizar y son vlidas, y
la decisin depende del valor de una expresin que puede ser entero o char.
Diagrama de flujo

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.

Ponga todos los formatos de las sentencias de control.


Codifique los siguientes bloques de programas.
Realizar las pruebas de escritorio de los diagramas resueltos.
Explique cuando se utilizara el FOR y cuando el WHILE DO WHILE

GRADO MXIMO DE DIFICULTAD ...........


PUNTAJE OBTENIDO ........./20.......

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);

Otro uso comn de la estructura do ... while es una rutina de seleccin en un


men, ya que siempre se requiere que se ejecute al menos una vez. Ejm:
Void main()
{
int opc;
printf("1. Derivadas\n");
printf("2. Limites\n");
printf("3. Integrales\n");
do
{
printf(" Teclear una opcion: ");
scanf("%d", &opc);
switch(opc)
{
case 1:
printf("\tOpcion 1 seleccionada\n\n");
break;
case 2:
printf("\tOpcion 2 seleccionada\n\n");
break;
case 3:
printf("\tOpcion 3 seleccionada\n\n");
break;
default:
printf("\tOpcion no disponible\n\n");
break;
}
} while( opc != 1 && opc != 2 && opc != 3);
}

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.

RESTAS SUCESIVAS MCD (x, y)

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.

4. Se ingresa por teclado un nmero, con esta informacin se desea hallar el


factorial de dicho nmero.
Ejemplo:
4!=4*3*2*1
5. 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
. Hasta 9
6. Hacer un programa con el siguiente men:
i. men
0 Salir
1 Calcular el factorial
2 Generar la serie de fibonacci.
Dicho men debe aparecer en pantalla, cada vez que se desea elegir una
de las opciones.
o Si escogemos la opcin 0 sale del programa
o Con 1 realiza el clculo de la factorial de un nmero entero
ingresado por teclado, luego imprimir el nmero ingresado y el valor
del factorial. El factorial de un nmero es el producto de los nmeros
del 1 hasta el nmero: por ejemplo.
4! =1 * 2 * 3 * 4 =24
o Con l opcin 2 genera N trminos de la serie de fibonacci, donde N
es introducido por teclado. Esta serie es:
Ejemplo si: N es 7 la serie ser
0 1 1 2 3 5 8

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.

Nombre del arreglo


Tipo de valores de cada elemento
Nmero de dimensiones del arreglo
El intervalo(rango) que representa la longitud de cada dimensin.

Un arreglo es una secuencia, un tipo de datos, que deben ser declarados en la


seccin Type del programa. Los array se clasifican en vectores y matrices.
8.1 Componentes de un arreglo
1. Elemento.- valor dimensional.
2. ndice.- posicin que ocupa el valor.
Tamao fsico de un arreglo. Es el tamao o dimensin declarado.
Tamao lgico de un arreglo. Es el tamao real que se ocupa.

8.2 Arreglos de una dimensin(vectores-listas)


Un arreglo (lista o vector) unidimensional es una caja con mltiples cajones o de
modo ms intuitivo una serie de buzones de una casa; cada buzn o cajn sera
similar a una variable que tiene un nombre y un contenido.Los arreglos contienen
informacin de un mismo tipo. Existen arreglos de una dimensin ( vector) , 2
dimensiones ( matriz), 3dimensiones ( planos), etc.
Nota. Las posiciones se numeran desde 0 hasta el tamao fsico del arreglo menos 1

Representacin grfica
Declaracin :
A[5] : entero;

Contenido, del vector

64

ALGORITMOS
5
7
8
9
4
A[0] A[1] A[2] A[3] A[4]

Posicin de la celda

Para realizar la asignacin de la informacin en la celda ser:


A[0] =
5
Que significa:
En el espacio de memoria o en el vector A en la posicin 0 asigne guarde
o almacene la constante numrica 5.
Si queremos sumar el contenidos de dos celdas ser:
A[2]
= A[3]+A[4];
Lo que quiere decir en la posicin 2 del vector A asigne el contenido de la
posicin 3 ms el contenido del vector A de la posicin 4.

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]

Elementos del vector en pantalla

Vector

Posiciones del 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

Para el alumno: Realizar la prueba de escritorio

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.

Ingresar el tamao lgico del arreglo


Ingresar cada elemento del arreglo por teclado.
Calcular la suma de todos los elementos del arreglo.
Calcular el promedio total de todos los elementos.
Presentar en pantalla el arreglo ingresado.

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

Realizar un programa para almacenar en un vector de la siguiente manera,


luego imprimirlo.
1 2 1 2 1 2 1 2 1 2
Realizar un programa para almacenar el nmero 4 en las cinco primeras
celdas y desde la 6 a la 10 almacenar el nmero 3 en un vector de 10
celdas.
Realizar un programa para ingresar por teclado N elementos a un vector .
Con esta informacin se desea contar el total de nmeros pares e impares
que existen en el vector.
Realizar un programa para almacenar N elementos a un vector con esta
informacin se desea contar el total de nmeros positivos y nmeros
negativos que existe en el vector.
Se ingresa por teclado los 9 dgitos de la cdula de identidad , con esta
informacin se desea hallar el ltimo dgito ( dgito autoverificador)
Se ingresa por teclado N elementos a dos vectores con esta informacin se
desea hallar un tercero el cual es el resultado de sumar los dos anteriores
elemento por elemento, imprimir los tres vectores.

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)

8.5 Arreglos bidimensionales( matrices).


Cuando un arreglo tiene dos dimensiones se denomina Matrices, Una
matriz est formada por filas y columnas as:
columnas

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

Se ingresa por teclado M y N elementos de dos matrices con esta


informacin se desea. Hallar la suma, resta, multiplicacin,
Generar la matriz transpuesta de N*N ( N max 9),en la matriz
transpuesta se cambia filas por columnas.

74

ALGORITMOS
UNIDAD IX
8

PROCEDIMEINTOS Y FUNCIONES
Parmetros
Estructura y declaracin
Parmetros formales
Funciones
Codificacin

10h

9.1 Procedimientos y funciones


Pascal ofrece dos herramientas bsicas para realizar programacin
descendente: los procedimientos (procedure) y las funciones (function), a
los que nos referiremos genricamente con el trmino de subprogramas.
Turbo Pascal incorpora adems el concepto de unidad (unit), que permite
aprovechar mdulos independientes ya compilados.
9.2

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

Estructura, declaracin y empleo de un procedimiento


Se declaran inmediatamente despus de las variables del programa
principal, teniendo la precaucin de que si un subprograma referencia o
llama a otro, el referenciado debe declararse primero.

9.4

Declaracin de parmetros formales.


Se declaran encerrados entre parntesis, indicando el identificador y el tipo
correspondiente asociado a cada uno, separados por ':', y terminando en ';'.
La palabra reservada VAR precediendo a un identificador de parmetro
formal indica al compilador que el paso del parmetro es por VARIABLE.
Su ausencia u omisin indica que el paso de parmetro se realiza por
VALOR.

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.

2. Realizar un programa para ejecutar el siguiente men.


MENU
1.- SUMA
2.- RESTA
3.- MULTIPLICACIN
4.- DIVISIN
5.- SALIR
DIGITE OPCION
Para lo cual se ingresa por teclado dos nmeros, utilizar un procedimiento
para cada opcin.
Resolver el men anterior pero utilizar funciones para cada opcin,
imprimir en el programa principal el resultado.
3. Se ingresa por teclado N nmeros , en el programa principal utilizar un
procedimiento para hallar la suma de todos estos nmeros ingresados uno
a uno , y una funcin para hallar el promedio, imprimir este resultado en el
programa principal.

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.-) Ponga la diferencia mediante un ejemplo entre parmetros por valor y por
variable.
2.-) Ponga la diferencia entre funcin y procedimiento.
3.-) Ponga dos formatos como se puede llamar a una funcin desde el
programa principal.
4.-) Explique 3 ventajas para utilizar procedimientos.

GRADO MXIMO DE DIFICULTAD ...........


PUNTAJE OBTENIDO ........./20.......

77