Vous êtes sur la page 1sur 73

Programacin Estructurada

El diseo de soluciones a la medida de nuestros problemas, requiere


como en otras disciplinas una metodologa que nos ensee de manera
gradual, la forma de llegar a estas soluciones.
A las soluciones creadas por una computadora se les conoce como
programas y no son ms que una serie de operaciones que realiza la
computadora para llegar a un resultado, con un grupo de datos
especficos. Lo anterior nos lleva al razonamiento de que un programa
nos sirve para solucionar un problema especifico.
computadora: Es un dispositivo electrnico utilizado para procesar
datos y obtener resultados. Los datos y la informacin se pueden
introducir en la computadora como entrada (input) y a continuacin se
procesan para producir una salida (output).

Programa: Es el conjunto de instrucciones escritas de algn lenguaje


de programacin y que ejecutadas secuencialmente resuelven un
problema especifico.
Lenguaje: Es una serie de smbolos que sirven para transmitir uno o
mas mensajes (ideas) entre dos entidades diferentes. A la
transmisin de mensajes se le conoce comnmente como
comunicacin.
Lenguaje Maquina
Lenguaje de Bajo Nivel (Ensamblador)
Lenguaje de Alto Nivel

La palabra algoritmo se deriva


de la traduccin al latn de la
palabra rabe alkhowarizmi,
nombre de un matemtico y
astrnomo rabe que escribi un
tratado sobre manipulacin de
nmeros y ecuaciones en el
siglo IX.
Un algoritmo es una serie de
pasos organizados que describe
el proceso que se debe seguir,
para dar solucin a un problema
especifico.

Lenguajes Algortmicos
Grficos
No Grficos
Definicin del Problema
Esta fase est dada por el enunciado del problema, el cual requiere una
definicin clara y precisa. Es importante que se conozca lo que se desea
que realice el computadora; mientras esto no se conozca del todo no tiene
mucho caso continuar con la siguiente etapa.
Anlisis del Problema
Diseo del Algoritmo
Codificacin
Prueba y Depuracin
Documentacin
Mantenimiento

Anlisis del Problema

Una vez que se ha comprendido lo que se desea de la computadora, es


necesario definir:

Los datos de entrada.


Cual es la informacin que se desea producir (salida)
Los mtodos y frmulas que se necesitan para procesar los
datos.

Una recomendacin muy practica es el que nos pongamos en el lugar


de la computadora y analicemos que es lo que necesitamos que
nos ordenen y en que secuencia para producir los resultados
esperados.

Diseo del Algoritmo


Las caractersticas de un buen algoritmo son:

Debe tener un punto particular de inicio.

Debe ser definido, no debe permitir dobles interpretaciones.

Debe ser general, es decir, soportar la mayora de las variantes que se


puedan presentar en la definicin del problema.

Debe ser finito en tamao y tiempo de ejecucin.

Codificacin
La codificacin es la operacin de escribir la solucin del problema
(de acuerdo a la lgica del diagrama de flujo o pseudocdigo), en una
serie de instrucciones detalladas, en un cdigo reconocible por la
computadora, la serie de instrucciones detalladas se le conoce como
cdigo fuente, el cual se escribe en un lenguaje de programacin.

Prueba y Depuracin

Los errores humanos dentro de la programacin de computadoras


son muchos y aumentan considerablemente con la complejidad del
problema. El proceso de identificar y eliminar errores, para dar paso a
una solucin sin errores se le llama depuracin.

Documentacin

Es la gua o comunicacin escrita es sus variadas formas, ya sea en


enunciados, procedimientos, dibujos o diagramas.
A menudo un programa escrito por una persona, es usado por otra.
Por ello la documentacin sirve para ayudar a comprender o usar un
programa o para facilitar futuras modificaciones (mantenimiento).

Mantenimiento

Se lleva acabo despus de terminado el programa, cuando se detecta


que es necesario hacer algn cambio, ajuste o complementacin al
programa para que siga trabajando de manera correcta. Para poder
realizar este trabajo se requiere que el programa este correctamente
documentado.

Tipos De Datos

Todos los datos tienen un tipo asociado con ellos. Un dato puede ser
un simple carcter, tal como b, un valor entero tal como 35. El tipo de
dato determina la naturaleza del conjunto de valores que puede tomar
una variable.

Carcter

Tipos de Datos Simples


Datos Numricos: Permiten representar valores escalares de forma
numrica, esto incluye a los nmeros enteros y los reales. Este tipo de
datos permiten realizar operaciones aritmticas comunes.
Datos Lgicos: Son aquellos que solo pueden tener dos valores (cierto
o falso) ya que representan el resultado de una comparacin entre otros
datos (numricos o alfanumricos).
Datos Caracteres: Permite representar las letras del abecedario,
smbolos y caracteres especiales. Es posible representar nmeros pero
estos pierden su propiedad matemtica, es decir no es posible hacer
operaciones con ellos. Todos estos caracteres tienen un valor numrico
segn la tabla ASCII. Este tipo de datos se representan encerrados
entre comillas simples. Ejemplo 'a'.

Expresiones
Las expresiones son combinaciones de constantes, variables, smbolos
de operacin, parntesis y nombres de funciones especiales. Por
ejemplo:
a + (b + 3)/c

Cada expresin toma un valor que se determina tomando los valores de


las variables y constantes implicadas y la ejecucin de las operaciones
indicadas.
Una expresin consta de operadores y operandos. Segn sea el tipo de
datos que manipulan, se clasifican las expresiones en:
Aritmticas
Relacionales
Lgicas

Operadores y Operandos
Operadores: Son elementos que relacionan de forma diferente, los
valores de una o ms variables y/o constantes. Es decir, los operadores
nos permiten manipular valores.

Operadores Aritmticos: Los operadores aritmticos permiten la


realizacin de operaciones matemticas con los valores (variables y
constantes). Pueden ser utilizados con tipos de datos enteros o reales. Si
ambos son enteros, el resultado es entero; si alguno de ellos es real, el
resultado es real.

Operadores Aritmticos
+ Suma
Resta
*
Multiplicacin
/
Divisin
MOD
Modulo (residuo de la divisin entera)
DIV
Divisin Entera

Ejemplos:
Expresin
7/2
7 mod 2
7 div 2
12 mod 7
2 div 7
4 +2*5

Resultado
3.5
1
3
5
1
14

Prioridad de los Operadores Aritmticos


Todas las expresiones entre parntesis se evalan primero. Las
expresiones con parntesis anidados se evalan de dentro hacia fuera,
el parntesis mas interno se evala primero.
Dentro de una misma expresin los operadores se evalan en el
siguiente orden.
1) ^ (ponencia)
2) *, /, DIV, MOD (multiplicacin, divisin, divisin entera
y modulo)
3) +, - (suma y resta)
Los operadores en una misma expresin con igual nivel de
prioridad se evalan de izquierda a derecha.

Ejemplos:
1)
2)
3)
4)
5)
6)
7)
8)
9)

4 + 2 * 5 = 14
23 * 2 / 5 = 9.2
46 / 5 = 9.2
3 + 5 * (10 - (2 + 4)) = 23
3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23
3.5 + 5.09 - 14.0 / 40 = 5.09
3.5 + 5.09 - 3.5 = 8.59 - 3.5 = 5.09
2.1 * (1.5 + 3.0 * 4.1) = 28.98
2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98

Operadores Relacionales:
Se utilizan para establecer una relacin entre dos valores.
Compara estos valores entre si y esta comparacin produce un
resultado de certeza o falsedad (verdadero o falso).
Los operadores relacionales comparan valores del mismo tipo
(numricos o alfanumricos).
Tienen el mismo nivel de prioridad en su evaluacin.
Los operadores relacionales tiene menor prioridad que los aritmticos.
Operadores Relacionales
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
< > Diferente, Distinto
= Igual

Ejemplos:
Si a = 10;

b = 20;

a+b>c
a-b<c
a-b=c
a*b<>c

c = 30

Falso
Verdadero
Falso
Verdadero

Ejemplos de expresiones no vlidas:

a<b<c
10 < 20 < 30
Verdad < 30
(No es vlido porque tiene diferentes operandos)

Operadores Lgicos:
Estos operadores se utilizan para establecer relaciones entre valores
lgicos.
Estos valores pueden ser resultado de una expresin relacional.
Operadores Lgicos
And
Or
Not

Y
O
Negacin

&&
||
!

Operador And (&&)


Operando1 Operador
V
AND
V
F
F

Operando2
V
F
V
F

Resultado
V
F
F
F

Operador Or ( | | ) Pipe
Operando1 Operador
V
OR
V
F
F

Operando2
V
F
V
F

Operador Not ( ! )
Operando
V
F

Ejemplos:

Resultado
F
V

(a < b) and (b < c)


(10<20) and (20<30)
V and
V

Resultado
V
V
V
F

Prioridad de los Operadores Lgicos


Not
And
Or
Prioridad de los Operadores en General
1.- ( )
2.- ^
3.- *, /, Mod, Not
4.- +, -, And
5.- >, <, > =, < =, < >, =, Or
Ejemplos:
a = 10; b = 12;
1)

2)

3)

c = 13;

d =10

((a > b) or (a < c)) and ((a


F
V
F
V
F
((a >= b) or (a < d)) and ((
F
F
F
F
not (a = c) and (c > b)
F
V
V
V

= c) or (a >= b))
F
F
a >= d) and (c > d))
V
V
V

Identificadores
Representan los datos de un programa (constantes, variables, tipos de
datos). Un identificador es una secuencia de caracteres que sirve para
identificar una posicin en la memoria en el computadora, que nos
permite accesar a su contenido.
Ejemplo:
Nombre
Num_hrs
Calif2
(No confundir con variable)
Reglas para formar un Identificador
Debe comenzar con una letra (A a Z, maysculas o minsculas) y no
deben contener espacios en blanco.
Letras, dgitos y caracteres como el underscore ( _ ) estn permitidos
despus del primer carcter.

Constantes y Variables
Constante: Una constante es un dato numrico o alfanumrico que no
cambia durante la ejecucin del programa.

Ejemplo:
PI = 3.1416
Variable: Es un espacio en la memoria del computadora que permite
almacenar temporalmente un dato durante la ejecucin de un
proceso, su contenido puede cambiar durante la ejecucin del
programa. Para poder reconocer una variable en la memoria del
computadora, es necesario darle un nombre con el cual podamos
identificarla dentro de un algoritmo.
Ejemplo:
area = PI * radio ^ 2
Las variables son : el radio, el rea y la constate es PI

Clasificacin de las Variables

Carcter

Por su Contenido
Variable Numricas: Son aquellas en las cuales se almacenan valores
numricos, positivos o negativos. Ejemplo:
iva = 0.15
Pi = 3.1416
costo = 2500
Variables Lgicas: Son aquellas que solo pueden tener dos valores
(cierto o falso) estos representan el resultado de una comparacin
entre otros datos. Ejemplo:
Ok = 1 < 2
es_seguro = b > 3
Variables Carcter: Esta formada por caracteres letras, nmeros y
caracteres especiales. Y se utiliza ( ' ) para comilla simple para un
carcter y ( ) comillas dobles para una cadena(string). Ejemplo:
letra = a'
apellido = lopez
direccion = Av. Libertad #190

Por su Uso
Variables de Trabajo: Variables que reciben el resultado de una
operacin matemtica completa y que se usan normalmente dentro
de un programa.
Ejemplo:
resultado = a + b / c
Contadores: Se utilizan para llevar el control del numero de ocasiones
en que se realiza una operacin o se cumple una condicin. Con los
incrementos generalmente de uno en uno.
Ejemplo:
veces = veces + 1
Acumuladores: Forma que toma una variable y que sirve para llevar la
suma acumulativa de una serie de valores que se van leyendo o
calculando progresivamente.
Ejemplo:
suma = suma + b

DIAGRAMA DE FLUJO
Smbolo de INICIO o FIN

Smbolo de ENTRADA , permite leer datos


Ingresados por el usuario.
Smbolo de SALIDA , permite escribir mensajes y
datos los cuales vera el usuario.
Smbolo de ASIGNACION , permite colocar
valores en las variables.
Smbolo CONECTOR , permite seguir el flujo del
programa a otra pgina.
LINEA FLUJO , permite marcar el desarrollo del
programa de inicio a fin.

ESTRUCTURAS DE CONTROL
Las estructuras de operacin de programas son un grupo de formas de
trabajo, que permiten, mediante la manipulacin de variables, realizar
ciertos procesos especficos que nos lleven a la solucin de problemas.
Estas estructuras se clasifican de acuerdo con su complejidad en:

De Control

Estructuras Secuenciales
La estructura secuencial es aquella en la que una accin (instruccin)
sigue a otra en secuencia. Las tareas se suceden de tal modo que la
salida de una es la entrada de la siguiente y as sucesivamente hasta el
fin del proceso. Una estructura secuencial se representa de la siguiente
forma:
Inicio
Accion1
Accion2
.
.
AccinN
Fin

Asignacin (
La asignacin consiste, en el paso de valores o resultados a una zona
de la memoria. Dicha zona ser reconocida con el nombre de la variable
que recibe el valor. La asignacin se puede clasificar de la siguiente
forma:
Simples: Consiste en pasar un valor constante a una variable
a 15
Contador: Consiste en usarla como un verificador del numero de veces
que se realiza un proceso
a a + 1

Acumulador: Consiste en usarla como un sumador en un proceso


a a + b
De trabajo: Donde puede recibir el resultado de una operacin
matemtica que involucre muchas variables
a c + b * 2 / 4

Lectura:
La lectura consiste en recibir desde un dispositivo de entrada (el
teclado) un valor. Esta operacin se representa en un pseudo cdigo
como sigue:
LEER (a, b)
Donde a y b son las variables que recibirn los valores

Escritura:
Consiste en mandar por un dispositivo de salida (monitor o impresora)
un resultado o mensaje. Este proceso se representa en un pseudo
cdigo como sigue:

ESCRIBIR (El resultado es:, R)


Donde El resultado es: es un mensaje que se desea aparezca y R es
una variable que contiene un valor.

Problemas Secuenciales
Ejemplo 1. Suponga que un individuo quiere invertir su capital en un
banco y desea saber cuanto dinero ganar despus de un mes si el
banco paga a razn de 2% mensual.
Anlisis
Datos de entrada
Capital a invertir (cap_invertir)
Inters pagado por el banco = 2% mensual
Datos de salida
Ganancia obtenida en un mes (ganancia)
Algoritmo Ejemplo 1
INICIO
REAL cap_invertir, ganancia
ESCRIBIR
(Ingresa la cantidad a invertir)
LEER (cap_invertir)
ganancia cap_invertir * 0.02
ESCRIBIR (Tu ganancias a un mes es , ganancia)
cap_invertir cap_invertir + ganancia
ESCRIBIR (y capital sera de , cap_invertir)
FIN

Ejemplo 2. Un vendedor recibe un sueldo base mas un 10% extra por comisin
de sus ventas, el vendedor desea saber cuanto dinero obtendr por concepto de
comisiones por las tres ventas que realiza en el mes y el total que recibir en el
mes tomando en cuenta su sueldo base y comisiones.
Anlisis
Datos de entrada
Sueldo base del vendedor (sueldo_base)
Comisin por venta = 10% de las ventas
Realizo 3 ventas : Venta1, Venta2 y Venta3
Datos de salida
Valor de la comisin de las ventas (comisin)
Sueldo a recibir (sueldo_recibir)

Consideraciones
Para calcular el valor de la comisin, se debe conocer el total de las ventas
Total de las ventas es la suma acumulativa de cada una de las ventas.
La comisin corresponde al 10% del total acumulado de las ventas
El sueldo a recibir es la suma del sueldo base ms la comisin de las ventas.

Algoritmo Ejemplo 2
Inicio
REAL sueldo_base, venta1, venta2, venta3
REAL total_venta, comisin, sueldo_recibir
ESCRIBIR(Ingresa tu sueldo base)
LEER (sueldo_base)
ESCRIBIR(Ingresa el monto de la venta 1)
LEER (venta1)
ESCRIBIR(Ingresa el monto de la venta 2)
LEER (venta2)
ESCRIBIR(Ingresa el monto de la venta 3)
LEER (venta3)
total_venta venta1 + venta2 + venta3
comisin total_venta * 0.10
sueldo_recibir sueldo_base + comisin
ESCRIBIR(Tu sueldo a recibir es de ,
sueldo_recibir,y tu
comisin este
mes es de , comisin)
Fin

Ejemplo 3. Una tienda ofrece un descuento del 15% sobre el total de la


compra y un cliente desea saber cuanto deber pagar finalmente por su
compra.
Anlisis
Datos de entrada
El total de la compra (total_compra)
Descuento ofrecido por la tienda = 15% sobre el total de la compra
Datos de salida
Total a pagar por la compra (total_pagar)

Consideraciones
El descuento es el 15 del valor total comprado
Descuento = total_compra * 0.15

Algoritmo Ejemplo 3
Inicio
REAL total_compra, descuento, total_pagar
ESCRIBIR(Ingresa el monto de tu compra)
LEER (total_compra)
descuento total_compra * 0.15
total_pagar total_compra - descuento
ESCRIBIR (La cantidad a pagar menos el 15% de
descuento es de , total_pagar)
Fin

Ejercicios
1. Realizar un algoritmo que lea 3 nmeros y muestre la Suma, el
Producto y la Diferencia de los tres numero ledos.
2. Disear un algoritmo que permita ingresar un valor inicial y un valor
final. Para calcular el valor central de los valores.
3. Construir un algoritmo que calcule y muestre el nmero de segundos
que hay en un determinado nmero de das.

4. Realizar un algoritmo para saber cual ser la calificacin final de un


alumno en el curso de programacin. Dicha calificacin se compone de
los siguientes porcentajes:
55% del promedio de sus tres notas parciales.
30% de la nota del examen final.
15% de la nota de un trabajo final.

5. Un profesor conoce la cantidad de hombres y mujeres del curso de


Algoritmos, desea saber que porcentaje de hombres y que porcentaje de
mujeres hay en su grupo. Realiza un programa que resuelva el problema.

6. Realizar un algoritmo que dada un cantidad en pesos, obtenga la


equivalencia en dlares, asumiendo que la unidad cambiara es un dato
desconocido que se proporcionara por el usuario.
7. Disee un algoritmo que muestre el nuevo sueldo de un empleado si obtuvo
un incremento del 25% sobre su sueldo anterior.
8. El dueo de una tienda compra un artculo a un precio determinado.
Mediante un algoritmo calcula el precio en que lo debe vender para obtener
una ganancia del 30%.
9. Escribir un algoritmo que proporcione cambio de cualquier suma de dinero
entera, usando monedas de denominacin de 1, 5, 10 y 20.

10. Tres personas deciden invertir su dinero para fundar una empresa. Cada
una de ellas invierte una cantidad distinta. Mediante un programa obtener el
porcentaje que cada quien invierte con respecto a la cantidad total invertida.
11. Un alumno desea saber cual ser su promedio general en los tres cursos
ms difciles que cursa y cual ser el promedio que obtendr en cada una de
ellas. Estas materias se evalan como se muestra a continuacin:
La calificacin de Matemticas se obtiene de la sig. manera:
Examen 90%
Promedio de tareas 10%
En esta materia se pidi un total de tres tareas.
La calificacin de Fsica se obtiene de la sig. manera:
Examen 80%
Promedio de tareas 20%
En esta materia se pidi un total de dos tareas.
La calificacin de Programacin se obtiene de la sig. manera:
Examen 85%
Promedio de tareas 15%
En esta materia se pidi un promedio de tres tareas.

Estructuras Condicionales
Las estructuras condicionales comparan una variable contra otro(s)
valor(es), para que en base al resultado de esta comparacin, se
siga un curso de accin dentro del programa. Cabe mencionar que la
comparacin se puede hacer contra otra variable o contra una
constante, segn se necesite. Existen dos tipos bsicos, las simples
y las mltiples.

Simples: Las estructuras condicionales simples se les conoce como Tomas de


decisin.
Si <condicin> entonces
Accin(es)
Fin si
Dobles: Las estructuras condicionales dobles permiten elegir entre dos
opciones o alternativas posibles en funcin del cumplimiento o no de una
determinada condicin.
Si <condicin> entonces
Accin(es)
si no
Accin(es)
Fin si
Donde:
Si Indica el comando de comparacin
Condicin
Indica la condicin a evaluar
entonces..
Precede a las acciones a realizar cuando se cumple la condicin
accin(es)
Son las acciones a realizar cuando se cumple o no la condicin
si no Precede a las acciones a realizar cuando no se cumple la condicin

Dependiendo de si la comparacin es cierta o falsa, se pueden realizar una o


mas acciones.
Mltiples: Las estructuras de comparacin mltiples, son tomas de decisin
especializadas que permiten comparar una variable contra distintos posibles
resultados, ejecutando para cada caso una serie de instrucciones
especificas. La forma comn es la siguiente:
Si <condicin> entonces
Accin(es)
si no
Si <condicin> entonces
Accin(es)
si no
Accion(es)
Fin Si
Fin Si

Estructura condicional EN CASO


En Caso Variable
Op1: Accin(es)
Op2: Accin(es)
.
.
OpN: accin
Fin En Caso

Ejemplo Seleccin Simple.


Un hombre desea saber cuanto dinero se genera por concepto de intereses
sobre la cantidad que tiene en inversin en el banco. El decidir reinvertir
los intereses siempre y cuando estos excedan a $7.000, y en ese caso
desea saber cuanto dinero tendr finalmente en su cuenta.
Datos de Entrada:
Capital en Inversin (cap_inv)
Valor del Inters (p_interes)
Datos de Salida:
Saldo en la cuenta (saldo)
Consideraciones:
Se debe calcular el valor del inters generado por el capital

Algoritmo
Inicio
Entero cap_inv
Real p_interes, ineres_calculado, saldo
Escribir(Ingresa la tasa de interes y tu
cantidad a invertir )
Leer (p_interes, cap_inv)
saldo cap_inv
interes_calculado cap_inv * p_interes
SI (interes_calculado > 7000) entonces
saldo cap_inv + interes_calculado
Fin Si
Escribir (Ahora tienes es, saldo)
Fin

Ejemplo seleccin doble


Determinar si un alumno aprueba a reprueba un curso, sabiendo que aprobara
si su promedio de las tres calificaciones es mayor o igual a 4.0; reprueba en
caso contrario.

Algoritmo
Inicio
Real Nota1, Nota2, Nota3
Real Promedio
Escribir (Anota tus tres calificaciones )
Leer (Nota1, Nota2, Nota3)
Promedio (Nota1 + Nota2 + Nota3) / 3
Si (Promedio >= 4.0) entonces
Escribir(Con , Promedio, estas Aprobado)
si no
Escribir(Con , Promedio, estas Reprobado)
Fin si
Fin

En un almacn se hace un 20% de descuento a los clientes cuya compra


supere los $1000 Cual ser la cantidad que pagara una persona por su
compra?

Algoritmo
Inicio
Entero Compra
Real Descuento, Tot_Pagar
Escribir(Ingresa el monto de la compra)
Leer (Compra)
Si (Compra > 1000) entonces
Descuento Compra * 0.2
si no
Descuento 0
Fin si
Tot_Pagar Compra Descuento
Escribir
Fin

( El total a pagar es, Tot_pagar)

Un obrero necesita calcular su sueldo, el cual se obtiene de la sig. manera:


Si trabaja 40 horas o menos se le paga $1600 por hora trabajada
Si trabaja mas de 40 horas se le paga $1600 por cada una de las primeras 40
horas trabajadas y $2000 por cada hora extra.
Algoritmo
Inicio
Entero Hora_trabajada, Hora_extra, Sueldo
Escribir(Cuantas horas ha trabajado)
Leer (Hora_trabajada)
Si (Hora_trabajada > 40) entonces
Hora_extra Hora_trabajada - 40
Sueldo Hora_extra * 2000 + 40 * 1600
si no
Sueldo Hora_trabajada * 1600
Fin-si
Escribir (Tu sueldo es de, Sueldo)
Fin

Ejercicios propuestos
1) Escribir un algoritmo que lea dos nmeros y los escriba en forma
ascendente.
2) Hacer un algoritmo que calcule el total a pagar por la compra de camisas. Si
se compran tres camisas o ms se aplica un descuento del 10% sobre el
total de la compra y si mas de 5 camisas un descuento del 20%
3) Realizar un algoritmo que lea tres nmeros y muestre el menor de los tres.

4) Realiza un programa que muestre el nmero de das de un mes dado, para


esto los datos de entrada son mes y ao y el programa mostrara de salida el
nmero de das del mes. Los meses 1, 3, 5, 7, 8, 10 y 12 tienen 31 das; los
meses 4, 6, 9 y 11 tienen 30 das; y el mes 2 tiene 28 o 29 das si es bisiesto.
5) Realizar una algoritmo que lea dos valores numricos y uno carcter para
realizar una operacin dependiendo del carcter. El carcter puede tener los
valores de +, -, /,*, %.
6) Una persona debe determinar la etapa de la vida de las personas que
existen en su zona habitacional. Se determinan las categoras con base en la
siguiente tabla:
CATEGORIA EDAD
Nios
0-12
Jvenes
13-29
Adultos
30-59
Viejos
60 en adelante

7) Disear un algoritmo para leer tres variables A, B y C y determinar cual es el


nmero de la mitad. No es el mayor ni el menor de los tres.
8) Disear un algoritmo para leer cuatro variables A, B, C, D y determinar si
estn en orden ascendente, en orden descendente, o desordenados.

9) Realizar un algoritmo que lea tres numero y muestre si uno es la suma de


los otros dos.
10) Realizar un algoritmo para determinar si un ao es bisiesto. Un ao es
bisiesto si es mltiplo de 4 pero no de 100 a menos de que tambin sea
mltiplo de 400.

Estructuras Iterativas (Cclicas)


Se llaman problemas repetitivos o cclicos a aquellos en cuya solucin es
necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una
cantidad especifica de veces. Esta cantidad puede ser fija (previamente
determinada por el programador) o puede ser variable (estar en funcin de
algn dato dentro del programa).Los ciclos se clasifican en:
Ciclos con un Numero Determinado de Iteraciones:
a) Para
Ciclos con un Numero Indeterminado de Iteraciones:
a) Mientras
b) Hacer-Mientras

Ciclos con un Numero Determinado de Iteraciones (Para)


Son aquellos en que el numero de iteraciones se conoce antes de ejecutarse el
ciclo. La forma de esta estructura es la siguiente:
Para (Inicializar ; condicin ; Incremento/decremento)
Accion 1
Accion 2

Fin Para
Donde:
Inicializar:

Var_Control Valor_Inicial
Var_Control es una variable que lleva la cuenta de las iteraciones.
Valor_Inicial corresponde al primer valor que tomar Var_Control.
Condicin: Es una expresin lgica que compara la Var_control y el ultimo
valor permitido para continuar iterando.
Incremento/decremento: Corresponde al avance que tendr Var_Control ,
por lo regular es de uno en uno.

Ejemplo:
Calcular el promedio de un alumno que tiene 7 calificaciones en la materia de
Programacin Estructurada.
Alternativa 1 (Sin considerar iteracin)
Algoritmo
Inicio
Real Nota1, Nota2, Nota3, Nota4, Nota5, Nota6, Nota7
Real Promedio
Escribir(Ingresa las 7 calificaciones )
Leer Nota1, Nota2, Nota3, Nota4, Nota5, Nota6, Nota7
Promedio(Nota1+Nota2+Nota3+Nota4+Nota5+Nota6+Nota7)/7
Escribir (El promedio del alumno es, Promedio)
Fin

Alternativa 2 (Considerar iteracin)


Algoritmo
Inicio
Real Nota
Real Promedio, Suma
Entero C_Nota, i
Suma 0
Para (i 1 ; i <= 7 ; i i+1)
Escribir(ingresa la calificacin )
Leer (Nota)
Suma Suma + Nota
FinPara
Promedio Suma / 7
Escribir (El promedio es , Promedio)
Fin

Cual alternativa es mas interesante de implementar?


Por que?

Ejemplo
Leer 10 nmeros y obtener su cuadrado y su cubo.
Algoritmo
Inicio
Entero Numero, Cuadrado, Cubo
Entero i
Para (i 1 ; i < 10 ; ii+1)
Escribir(Ingresa un numero)
Leer (Numero)
Cuadrado Numero * Numero
Cubo Cuadrado * Numero
Escribir (El cuadrado del numero es, Cuadrado,)
Escribir (El cubo del numero es, Cubo)
Fin Para
Fin

Ejercicios
1. Leer 10 nmeros e imprimir solamente los nmeros positivos
2. Leer 20 nmeros e imprimir cuantos son positivos, cuantos negativos y
cuantos neutros.
3. Calcular y escribir la tabla de multiplicar de un numero cualquiera. Escribir
el multiplicando, el multiplicador y el producto.

4. Disear un algoritmo para imprimir la suma de los nmeros impares


menores o iguales que n. Ejemplo: 1 + 3 + 5 + 7 + . . . + n
5. Realizar un algoritmo que muestre cual es el numero mximo de 10
nmeros ingresados por un usuario.
Simular el comportamiento de un reloj digital, escribiendo la hora, minutos y
segundos de un da desde las 0:00:00 horas hasta las 23:59:59 horas

Ciclos con un Numero Indeterminado de Iteraciones ( Mientras, HacerMientras)


Son aquellos en que el numero de iteraciones no se conoce con exactitud, ya
que esta dado en funcin de un dato dentro del programa.
Mientras: Esta es una estructura que repetir un proceso durante N veces,
donde N puede ser fijo o variable. Para esto, la instruccin se vale de una
condicin que es la que debe cumplirse para que se siga ejecutando. Cuando
la condicin ya no se cumple, entonces ya no se ejecuta el proceso. La forma
de esta estructura es la siguiente:
Mientras (Condicin)
Accin_1
Accin_2

Accin_N
Fin Mientras

Ejemplo
Leer 10 nmeros y obtener su cuadrado y su cubo.
Algoritmo
Inicio
Entero Numero, Cuadrado, Cubo
Entero i
i 1;
Mientras (i <= 10)
Escribir(ingresa un numero)
Leer (Numero)
Cuadrado Numero * Numero
Cubo Cuadrado * Numero
Escribir (El cuadrado del numero es es, Cuadrado)
Escribir (El cubo del numero es, Cubo )
i i + 1
Fin Para
Fin

1) Realizar un algoritmo que lea un numero entero positivo y lo escriba al


inverso.

2) Una persona desea invertir su dinero en un banco, el cual le otorga un 2%


de inters. Cual ser la cantidad de dinero que esta persona tendr al cabo de
un ao si la ganancia de cada mes es reinvertida?.
3) Realizar un algoritmo que muestre la divisin entera median te restas de un
numero A dividido entre otro B.
4) Realizar un algoritmo que muestre si un numero ingresado por el usuario es
primo o no.
5) Realizar un algoritmo que lea nmeros positivos, cuando se ingrese un
numero negativo se debe mostrar cuantos nmeros positivos se ingresaron, as
como la suma de nmeros ingresasdos.

Hacer-Mientras: Esta es una estructura similar en algunas caractersticas, a la


anterior. Repite un proceso una cantidad de veces, pero a diferencia del
Mientras, el Hacer-Mientras lo hace mientras la condicin se cumple. Por otra
parte, esta estructura permite realizar el proceso cuando menos una vez, ya
que la condicin se evala al final del proceso, mientras que en la estructura
Mientras puede ser que nunca llegue a entrar si la condicin no se cumple
desde un principio. La forma de esta estructura es la siguiente:
Hacer
Accin_1
Accin_2

Accin_N
Mientras ( Condicin)

1. Realizar un algoritmo que pida ingresar la letra s o n, si se ingresa la letra s


debe aparecer de nuevo el mensaje, si se ingresa la letra n el programa debe
terminar.
2. Disear un algoritmo que lea nmeros enteros los sume y muestre el
resultado hasta que se ingrese cualquier valor entre 10 y 15.
3. Realizar un algoritmo que permita leer una serie de nmeros y diga si es
positivo o negativo, si se ingresa el numero 0 el programa debe terminar.

4. Disear un algoritmo que permita leer caracteres ingresados por el usuario


y diga si el carcter ledo es una letra, smbolo o nmero. El programa
termina hasta que se ingrese la S.

LENGUAJE C

Fue creado por Dennis Ritchie en 1972 (UNIX)


Deriva del lenguaje B de Ken Thompson
En 1989 se unifican criterios, Ansi C.
Caractersticas
Es estructurado (subrutinas y estructuras de control)
Es amigable, flexible y potente (Combina elementos de lenguaje
de alto nivel y elementos de ensambladores.)
Es eficiente
Es portable
Es compilado.

Para escribir un programa en C hay que seguir los


siguientes pasos:
Disear el algoritmo que resuelve el problema
Escribir el Cdigo Fuente del programa (extensin .c)
Traducir de seudo lenguaje a cdigo C
Esto se hace utilizando cualquier editor de texto.

Generar Cdigo Objeto del programa (extensin .obj)


El compilador traduce el programa fuente a lenguaje interno
del computadora
El compilador comprueba si hemos cometido algn error de
sintaxis.

Generar archivo ejecutable (Extensin .exe o .out)


Se ejecuta un programa llamado linker, que genera el archivo
ejecutable.

Vous aimerez peut-être aussi