Академический Документы
Профессиональный Документы
Культура Документы
Tema 5
Iniciacin a la
programacin
CONCEPTO DE ALGORITMO
Introduccin
La computadora no solamente es esa mquina que puede ejecutar
programas que tiene previamente cargados, como un procesador de textos.
Adems de jugar, escribir o comunicarnos tambin podemos disear
soluciones a medida de problemas especficos que se nos presenten.
A las soluciones creadas utilizando una computadora se les conoce
como programas y no son mas que una serie de instrucciones ordenadas,
expresadas en un lenguaje especfico (llamado lenguaje de programacin)
que debe realizar la computadora para llegar a un resultado, con un grupo de
datos especficos.
Supongamos que tenemos el siguiente problema: Repartir entre 2 chicos una bolsa de
caramelos (suponemos que inicialmente la bolsa tiene ms de 2 caramelos).
Este problema describe un cierto trabajo.
Este trabajo debe realizarlo una mquina.
Llamamos mquina a un aparato capaz de comprender el enunciado y ejecutar el trabajo.
Sin embargo una mquina no puede realizar un trabajo si no cuenta con los recursos necesarios,
por ejemplo, la bolsa de caramelos.
El conjunto de los objetos necesarios para la ejecucin de un algoritmo se denomina ambiente.
Por lo tanto el ambiente de un trabajo es especfico para ese trabajo. Adems, para ejecutar un
trabajo, se debe realizar una secuencia de acciones.
Entonces, un problema es resuelto a travs de una serie de acciones que respetan una
secuencia y que modifican el ambiente hasta la solucin del problema
Tomado el problema anterior, puede escribirse el siguiente algoritmo:
Repetir
Tomar caramelo de la bolsa
Darlo a nio
Hasta que la bolsa contenga menos de cuatro caramelos.
Los objetos son: caramelos , Nio
Y la accin: Tomar de la bolsa
Y adems hay una condicin dentro de una estructura. Esta estructura repetir-hasta que, hace que
la mquina evale si hay menos de 4 caramelos en la bolsa antes de retirarlos.
Esto es un Algoritmo.
Un algoritmo es una secuencia ordenada de acciones (llamadas acciones primitivas) que pueden ser
ejecutadas por una mquina y que dan la solucin a un problema dado.
Decimos que una accin es primitiva cuando no puede descomponerse en otras acciones.
Caracterstica de un algoritmo
Cuando se habla de disear soluciones utilizando una
computadora, pueden disearse buenas soluciones o malas soluciones.
Qu caractersticas debe tener un algoritmo para transformarse en una
buena solucin?
Modificable:
dificultades.
Debe ser eficiente: Para ello debe cumplir con los requisitos de
rapidez y economa.
Debe
permitir
la
actualizacin
sin
grandes
Algoritmo y programa
Antes dijimos que un algoritmo es una serie ordenada de pasos
que se realizan para llegar a una solucin. Qu relacin tiene con un
programa?
Podemos decir que un programa es un algoritmo expresado en un lenguaje que tanto la
computadora como el programador puedan entender.
Organigramas y Pseudocdigo
Pseudocdigo: Es una notacin mediante la cual podemos escribir la solucin a un
problema dado en forma de algoritmo utilizando palabras y frases del lenguaje natural aunque
sujetas a determinadas reglas impuestas. Nosotros utilizaremos el programa PseInt para compilar
estos algoritmos.
Organigramas: Representan grficamente paso a paso todas las instrucciones del
programa a codificar reflejando la secuencia lgica de las operaciones necesarias para la
resolucin del problema. Muestra grficamente el algoritmo del programa.
PROCESO Sumar
DEFINIR num1, num2,suma
como NUMERO
ESCRIBIR Introduzca un
nmero:;
LEER nmero1;
ESCRIBIR Introduzca otro
nmero:;
LEER nmero2;
suma nmero1 + nmero2 ;
ESCRIBIR Resultado:, suma;
FIN PROCESO
PROCESO DetectarNegativo
DEFINIR nmero como
NUMERO
ESCRIBIR Introduzca un
nmero entero;
LEER nmero;
SI nmero < 0 ENTONCES
ESCRIBIR Es negativo;
SI NO
ESCRIBIR No es
negativo;
FIN SI
FIN PROCESO
LENGUAJES DE PROGRAMACIN
INTRODUCCIN: INTRPRETES Y COMPILADORES
TIPOS DE LENGUAJES
Aparte de la clasificacin vista previamente en compiladores e intrpretes, los lenguajes de
programacin se clasifican en base a otros aspectos, de manera general en tres grandes grupos,
Lenguaje mquina (0 y 1)
A diferencia de los del grupo anterior, un lenguaje de alto nivel es independiente del
microprocesador del ordenador que lo soporta, as por ejemplo un programa escrito en lenguaje C, se
puede compilar sin modificar para cualquier mquina, y en principio funcionar sin ningn problema.
Esto implica dos ventajas principales, una es que la persona que desarrolla los programas no ha de
saber nada acerca del ordenador en que se ejecutar el programa, la otra es que los programas son
portables, es decir el mismo programa (en teora) ha de funcionar sobre distintos tipos de ordenadores.
Entre los lenguajes de alto nivel cabe destacar los siguientes: JAVA ,BASIC, FORTRAN,
MODULA 2, Pascal, ADA, C, C ++, LOGO ,LISP, PROLOG, Smalltalk
APRENDER A PROGRAMAR:
PSEUDOCODIGO
INTRODUCCIN
Para que una computadora pueda interpretar el problema, un algoritmo debe ser escrito en un
lenguaje de computacin (C, Pascal, Visual Basic, Java, etc.). Sin embargo, esto lo podemos hacer
cuando ya sabemos qu decir y cmo decirlo.
En el transcurso de esta asignatura, trabajaremos con una forma de lenguaje denominada
pseudocdigo.
La prctica la realizaremos con un software llamado PseInt (Pseudo Intrprete), que fue
desarollado por Pablo Novara, un estudiante de laUniversidad Nacional del Litoral.
Para bajar el software, e instalarlo en lacomputadora: http://pseint.sourceforge.net/
El ambiente (Conjunto de objetos) de un programa se modifica, a travs de instrucciones y
operaciones.
Entonces, bsicamente en un algoritmo tendremos:
Datos
Instrucciones
Operaciones.
Numricos: Son nmeros con los cuales podemos hacer operaciones aritmticas. Por
ejemplo: 34, 7.89; 899876 . Dentro de los datos numricos hay distintas categoras:
Enteros Cortos (Integer)
Enteros Largo (Long)
De punto flotante Simple (Single)
De punto flotante Doble (Double)
Alfanumricos (tambin llamados cadenas o strings): Son letras y nmeros. Pueden ser
palabras o conjunto de palabras o nmeros teniendo en cuenta que si se consideran
alfanumricos no tendrn valor.
Ejemplos:Uriarte 789; Escuela de Educacin Tcnica N 7
Lgicos (o booleanos): Son muy simples: guardan el valor Verdadero o el valor Falso.
Pueden ser muy tiles para almacenar ciertos datos, como por ejemplo el estado de un libro en
una biblioteca. En este caso podra ser prestado o no prestado... esto es, el valor prestado
puede ser falso o verdadero.
DEFINIR VARIABLES
DEFINIR una variable es crearla, informar a la mquina que existe y que tiene un tipo
determinado. El ordenador reservar la cantidad de memoria necesaria para esa variable.
Cuando se crea una variable se debe especificar su nombre y su tipo.
En el programa PSEINT las variables se declaran:
DEFINIR nombre_variable COMO NUMERO
DEFINIR nombre_variable COMO LOGICO
DEFINIR nombre_variable COMO CARACTER
Los vectores o arrays se declaran:
Dimension nombre_variable(tamao);
//Unidimencional
Dimension nombre_variable(tamao,tamao); //Bidimencional
CONSTANTES
Adems, podemos encontrarnos con distintos elementos que no cambian su valor a lo largo de
todo el algoritmo. Ejemplo:En la frmula de permetro del crculo,
EXPRESIONES ARITMTICAS
Sirven para realizar operaciones matemticas entre las variables y constantes
+
*
/
Mod
^
Suma
Resta
Multiplicacin
Divisin
Mdulo (resto de la divisin entera)
Potencia
Expresin
7/2
12 mod 7
4+2*5
3 + 5 * (10 - (2 + 4))
Resultado
3.5
5
14
23
Funciones aritmticas
Funcin
Significado
RC(X)
Raz Cuadrada de X
ABS(X)
Valor Absoluto de X
LN(X)
Logaritmo Natural de X
EXP(X)
Funcin Exponencial de X
SEN(X)
Seno de X
COS(X)
Coseno de X
ATAN(X)
Arcotangente de X
TRUNC(X)
Parte entera de X
REDON(X)
Entero ms cercano a X
AZAR(X)
EXPRESIONES 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).
Estas son:
>
(Mayor que)
<
(Menor que)
>=
(Mayor o igual que)
<=
(Menor o igual que)
<>
(Diferente)
=
(Igual)
Ejemplos: Si a = 10 b = 20 c = 30
a+b>c
a-b<c
Solucin: Falso
Solucin: Verdadero
EXPRESIONES LGICAS
Estos operadores se utilizan para establecer relaciones entre valores lgicos, y pueden ser el
resultado de una expresin de relacin.
And
Or
Not
Xor
(Y)
(O)
(Negacin)
(O excluyente)
SENTENCIA DE SELECCIN
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 dentrodel programa. Cabe mencionar que
la comparacin se puede hacer conra otra variable o contra una constante, segn se necesite.
SIMPLES
Las estructuras condicionales simples se les conoce como Tomas de decisin. Estas tomas de
decisin tienen la siguiente forma:
Si <condicin> entonces
Accin
Accin
Accin
FINSI
Esto significa que no hay un sino... la accin se hace solo en un caso.
DOBLES
Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en funcin
del cumplimiento o no de una determinada condicin. Se representa de la siguiente forma:
Si <condicin> entonces
Accin(es) 1
sino
Accin(es) 2
FINSI
SELECCIN ANIDADAS
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)
SINO
SI <condicin> ENTONCES
Accin(es)
SINO
Accin(es)
FINSI
FINSI
MULTIPLES
Ahora bien... Qu ocurre si tenemos que realizar el siguiente algoritmo? Leer un nmero del 1 al 7 y
ESCRIBIR a qu da de la semana corresponde (Un simple algoritmo de redaccin de fecha)... Lo
podriamos resolver con sentencias de seleccin anidadas una dentro de otra (explicadas
anteriormente), pero esta opcin se puede sustituir por una forma ms eficiente como la seleccin
multiple
La nueva estructura funciona, entonces, tomando el valor de la variable como un
selector automtico.
LEER z;
SEGUN z HACER
1: acciones;
2, 3, 4: acciones;
5: Acciones;
De otro modo
Mas acciones;
Finsegn
El problema expuesto al principio quedara
resuelto de la siguiente manera
PROCESO Dias
DEFINIR X COMO NUMERO
LEER X;
Segn X hacer
1: ESCRIBIR DOMINGO;
2: ESCRIBIR LUNES;
3: ESCRIBIR MARTES;
4: ESCRIBIR MIRCOLES;
5: ESCRIBIR JUEVES;
6: ESCRIBIR VIERNES;
7: ESCRIBIR SBADO;
DE OTRO MODO
ESCRIBIR ERROR;
Finsegn
FinProceso
Recomendacin: Cuanto trabajamos con estructuras, conviene utilizar la
tabulacin y colocar ms a la izquierda las instrucciones que estn ms adentro.
Esto contribuye a hacer ms legible el algoritmo y encontrar ms fcilmente los
errores.
Ejemplos resueltos
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 $500, y en ese caso desea saber cuanto dinero tendr finalmente en su cuenta.
PROCESO Interes
DEFINIR int, cap, capf COMO NUMERO
LEER int, cap;
int <- cap * int;
Si int > 500 ENTONCES
capf <- cap + int;
FINSI
ESCRIBIR capf;
FINPROCESO
Determinar si un alumno aprueba o suspende un curso, sabiendo que aprobara si su
promedio de tres calificaciones es mayor o igual a 5; reprueba en caso contrario.
PROCESO Notas
DEFINIR calif1, calif2, calif3, prom COMO NUMERO
LEER calif1, calif2, calif3;
prom <- (calif1 + calif2 + calif3)/3;
SI prom >= 5 ENTONCES
Escribir "alumno aprobado";
SINO
Escribir "alumno suspenso";
FINSI
FINPROCESO
SENTENCIA DE ITERACIN
Este tipo de estructuras que permiten reiterar una serie de instrucciones se llaman ciclos o
Bucles. Hay varios casos de bucles.
La estructura es:
Proceso SUMA2
Definir x, suma como numero
Leer x;
Mientras x > 0 hacer
Suma <- suma + x;
Leer x;
FinMientras
Escribir suma;
FinProceso
EJERCICIOS
TEORA
1) Qu es un organigrama?
2) Diferencia entre compilador e intrprete.
3) Caractersticas de un algoritmo
4) Ventajas de un lenguaje de alto nivel con uno de bajo nivel. Pon ejemplos de cada uno
5) Tipos de datos que puede contener un algoritmo.
6) Que es un algoritmo?Y un programa?
7) Diferencia entre el bucle REPETIR-HASTA, MIENTRAS-QUE y PARA
8) Tipos de sentencias de SELECCIN
20) En un supermercado se hace una promocin, mediante la cual el cliente obtiene un descuento
dependiendo de un nmero que se escoge al azar. Si el nmero escogido es menor que 74 el
descuento es del 15% sobre el total de la compra, si es mayor o igual a 74 el descuento es del 20%.
Obtener cuanto dinero se le descuenta.
21) El gobierno desea reforestar los bosques. Si la superficie del terreno excede a 1 milln de metros
cuadrados, entonces decidir sembrar de la sig. manera:
Porcentaje de la superficie del bosque Tipo de rbol
70% pino
20% eucalipto
10% cedro
Si la superficie del terreno es menor o igual a un milln de metros cuadrados, entonces decidir
sembrar de la sig. manera:
Porcentaje de la superficie del bosque Tipo de rbol
50% pino
30% eucalipto
20% cedro
El gobierno desea saber el nmero de pinos, eucaliptos y cedros que tendr que sembrar en el
bosque, si se sabe que en 10 metros cuadrados caben 8 pinos, en 15 metros cuadrados caben 15
eucaliptos y en 18 metros cuadrados caben 10 cedros. Pide por teclado en mumero de metros
cuadrados que se quieren reforestar.
22) En un juego de preguntas a las que se responde Si o No gana quien responda correctamente las
tres preguntas. Si se responde mal a cualquiera de ellas ya no se pregunta la siguiente y termina el
juego. Las preguntas son: (Utiliza variables booleanas y el conector AND). Puedes cambiar las
preguntas.
1. Colon descubri Amrica?
2. La independencia de Mxico fue en el ao 1810?
3. The Doors fue un grupo de rock Americano?
23) (Seleccin mltiple) Se leen los nmeros A, B, y OP, se pide realizare las operaciones de acuerdo al
codigo de operacin op, de la siguiente manera:
si op = 1 entonces A+B;
si op = 2 entonces A-B;
si op = 3 entonces a*b;
si op = 4 entonces a/b
24) (Seleccin mltiple) Realizar un algoritmo que al ingresar un nmero, me devuelva el mes
correspondiente.
29) (Bucle Para)Leer 20 nmeros e imprimir cuantos son positivos, cuantos negativos y cuantos
neutros.
30) (Bucle Para)Calcular e imprimir la tabla de multiplicar de un nmero cualquiera. Imprimir el
multiplicando, el multiplicador y el producto.
31) (Bucle Mientras-que)Determinar cuantos hombres y cuantas mujeres se encuentran en un grupo de
n (pide por teclado) personas, suponiendo que los datos son extrados alumno por alumno.
32) (Bucle Mientras-que)Obtener el promedio de calificaciones de un grupo de n alumnos.
33) (Bucle Mientras-que)Encontrar el mayor valor de un conjunto de n nmeros dados.
34) (Bucle Repetir-hasta) Realizar un algoritmo que calcule el factorial de un nmero dado.
35) (Bucle Repetir-hasta)Calcular la suma siguiente: 100 + 98 + 96 + 94 + . . . + 0 en este orden
ALGORITMOS GENERALES
36) Pedir la edad al usuario y mostrar por pantalla si es menor o mayor de edad. (Se considera un error
meter un nmero negativo)
37) Pedir un nmero al usuario y mostrarle de qu da de la semana se trata. (En otro caso se mostrar
un mensaje de error, y no volver).
38) Hacer el 37 pero si introduce un nmero menor de 1 o mayor de 12, volver a pedir dicho valor
39) Generar una lista del 1 al 10
40) Generar una lista del 2 al 20 de dos en dos
41) Generar una lista de potencias de 2, desde el 2 hasta el 256 (2,4,8,16...)
42) Almacena 10 nmeros en un vector e imprime los que ocupen las posiciones impares.
43) Generar una cuenta atrs desde el nmero que introduzca el usuario hasta el 0 inclusive y acabar
mostrando Booom! (Si mete un negativo sera error)
44) Como el 42 pero si mete un negativo, hacemos que cuente tambin hacia el 0 (-4,-3,-2,-1,0,booom)
45) Que el usuario vaya introduciendo nmeros mientras no acierte un nmero que tu elijas de
antemano
46) Igual que el 44, pero que al final le digas el nmero de intentos
47) Igual que el 45, pero que segn el nmero de intentos le muestres un mensaje diferente si lo ha
hecho de 0 a 3 intentos, de 4 a 6 o de 7 en adelante
48) Igual que el 46, pero en lugar de elegir t el nmero, que lo elija aleatoriamente el ordenador de 0 a
10 (mira la documentacin en la web o la ayuda del programa para hacerlo, no es tan difcil)