Sunteți pe pagina 1din 14

Algoritmos y Estructuras de Datos I

- 1 -




UNIDAD N 1:

Introduccin a la
lgica y la
programacin

TEMAS:
Conceptos Principales.
Diagramacin.
Programacin.
Tipos de Variables.
Estructuras Secuenciales.

Clase
1
1


Clase Nmero: 1
Introduccin de la materia
El objetivo fundamental de esta materia Algoritmos y Estructuras de
Datos I, es que el alumno aprenda a razonar, realizando problemas generalmente
de tipo matemtico, aplicando mtodos estructurados lgicamente.

Esta materia es de vital importancia para el avance del alumno en el plan de
estudios, pues brinda los fundamentos lgicos y tcnicos esenciales para despertar
la habilidad de resolver de problemas de uso general, utilizando la computadora
como fin especfico.

En general, se puede decir que la materia presenta dos ejes temticos
importantes, que son: por un lado la Diagramacin y por otro lado la
Programacin. En la Diagramacin se estudia la simbologa y la forma Lgica de
relacionar cada uno de los smbolos para obtener la solucin de un problema
planteado. En la programacin, se estudian las instrucciones de un lenguaje
determinado y como llegar a codificarlas a travs de un programa para ser llevado
a la computadora.

Aprender a programar, no es un proceso que se adquiere de un momento a
otro, sino que requiere de intensas prcticas, desarrollando soluciones a diversos
problemas. Mientras ms se practique, mas se desarrollar la capacidad de
razonamiento individual, y adems, gradualmente se ir incrementando la
posibilidad de resolver problemas de mayor magnitud.

Este material de estudios no es una fuente de informacin completa o
definitiva, sino slo una gua general. Un estudio profundo de esta asignatura,
debera ser complementado con libros y manuales de consulta.




Ing. Eduardo Mansilla






Algoritmos y Estructuras de Datos I
- 2 -

Conceptos Principales


Se comenzar con dar las definiciones fundamentales para inicializarse en la
materia Algoritmos y Estructuras de Datos I.

Diagrama de Flujo: Se define a un Diagrama de Flujo, como una secuencia de
pasos, mediante Smbolos, necesarios para la resolucin de un problema planteado.
Para realizar el diagrama de una posible solucin de un problema, se utilizan
smbolos normalizados, que mediante una distribucin Lgica y Razonable de los
mismos, se obtiene una respuesta al problema presentado.
La respuesta obtenida con el desarrollo de un diagrama, no es nica, sino
que es una de las numerosas que se pueden obtener. Cada persona tiene una forma
de razonar distinta de los dems, por lo tanto, distintas personas pueden llegar a la
solucin de un mismo problema de diversas maneras, es decir, que puede haber
varias soluciones para un determinado problema.


Smbolos Normalizados en la Diagramacin


Smbolo Nombre Accin que realiza








Lneas de Flujo

Muestra la Direccin y
Sentido del flujo del
proceso, conectando cada
uno de los smbolos.





Comienzo o final de
Proceso

En su interior, se coloca
Inicio o Fin del Diagrama







Introduccin de Datos


Se utiliza para ingresar
datos. En su interior, se
detalla la variable a
ingresar.








Smbolo de Asignacin

Se utiliza cuando se
quiere asignar un valor a
una variable.


Smbolo Nombre Accin que realiza
Algoritmos y Estructuras de Datos I
- 3 -







Smbolo de impresin




Se utiliza cuando se desea
imprimir una determinada
informacin.








Toma de Decisin

Se utiliza cuando se debe
decidir que camino
corresponde seguir.








Conector

En su interior se coloca
un nmero, que indica
donde debe continuar el
diagrama.


Ventajas de un Diagrama de Flujo

Favorecen la comprensin del proceso a travs de mostrarlo como un
dibujo. El cerebro humano reconoce fcilmente los dibujos. Un buen
diagrama de flujo reemplaza los diagramas varias pginas de texto.
Permiten identificar los problemas y las oportunidades de mejora del
proceso. Se identifican los pasos redundantes, los conflictos, las
responsabilidades, y los puntos de decisin.


Programa: Se define a un programa, como una secuencia de instrucciones,
realizadas en un orden Lgico mediante un lenguaje determinado. Un Lenguaje de
Programacin, es un idioma artificial, creado para comunicarse con las
computadoras. Existen diversos tipos de Lenguajes de Programacin, cada uno de
ellos se adapta para una actividad en particular. En esta materia, se programar en
lenguaje Java.

Algoritmo: Es un conjunto preescrito de instrucciones o reglas bien definidas,
que permite realizar una actividad mediante pasos sucesivos. Tambin se puede
decir que un algoritmo, es el mtodo o la tcnica descripta para desarrollar una
determinada tarea o actividad.

Variable: Se define a una variable, como el espacio fsico para albergar un dato.
Los datos pueden ser de diversos tipos y por lo tanto, se debe definir una variable de
un determinado tipo, de acuerdo al dato que almacenar.



Algoritmos y Estructuras de Datos I
- 4 -
Se puede imaginar a una variable como un casillero en el cual se deposita
un determinado valor. Toda variable tiene tres parmetros, que son: El nombre de la
variable, llamado Identificador, el tipo al que pertenece y el dato almacenado.

Ejemplo: Suponer que se quiere definir la variable sueldo. Conceptualmente se
tendra lo siguiente:












Se debe tener presente, que lo que se almacena en una variable es un dato, y
los datos son siempre Constantes.
El nombre identificador de una variable, lo decide el programador y es
necesario seguir ciertas reglas para colocar dicho nombre. Las reglas son bastantes
simples, y son las siguientes:

1) El nombre identificador debe comenzar con una letra en minsculas, los
dems caracteres pueden ser otras letras, dgitos o el carcter subrayado.

Ejemplo de nombres identificadores vlidos:
precio, cantidad, dni, folio67, dia_laborable, etc.

Ejemplo de nombres identificadores no vlidos:
cdigo, ao, da, 5pesos.
Los tres primeros identificadores no son vlidos porque los
caracteres acentuados y la letra , son especiales, y no estn
permitidos en Java. El cuarto identificador, no es vlido porque
comienza con un nmero.

2) No debe haber espacios en blanco entre carcter y carcter.

3) Cuando un nombre se forma como fusin de dos o ms palabras, se
comienza siempre con minsculas y la primera letra de cada palabra
posterior se coloca en maysculas.

Ejemplo: diaDeLaSemana, sueldoDePersonal, precioUnitario, etc.

sueldo
Identificador
5800
Dato almacenado
Variable (Pertenece al tipo numrico)
Algoritmos y Estructuras de Datos I
- 5 -
Tipos de Variables

Tipo char: (char viene de la palabra charcter). Una variable definida de tipo
char, puede almacenar un nico carcter, es decir, puede almacenar cualquier
smbolo de los indicados en el teclado.
Para definir una variable, debe colocar primero el Tipo y luego el nombre
identificador de la misma. Si se necesita definir varias variables del mismo tipo, se
pueden colocar todas separadas por comas. Al final de cada definicin, se debe
colocar un punto y coma, es la forma en que Java identifica que termina una
instruccin.

Ejemplo:
char letra, digito, sexo;

Para asignar un dato a una variable definida de tipo char, se lo debe colocar entre
apstrofes (Comillas Simples).

letra = L ;
digito = 7 ;
sexo = M ;


Tipo int: (int viene de la palabra integer). Una variable definida de este tipo,
puede almacenar un nmero entero en el rango de [-2147483648.. 2147483647].

Ejemplo:
int legajo, cantidad, codigo, dia ;

legajo = 5832 ;
cantidad = 16 ;
codigo = 24 ;
dia = 12 ;


Tipo float: (float significa flotante). Una variable definida de tipo float, puede
almacenar un nmero con punto decimal flotante en el rango de:
[ -3,4x10
38
.. 3,4x10
38
].

Ejemplo:
float sueldo, precio, altura, distancia, ancho ;

sueldo = 5436.44f ;
precio = 35.50f ;
altura = 1.67f ;

Nota: La letra f al final de cada valor, es obligatorio colocarla para indicar a Java
que el dato asignado a la variable es de tipo float.

Algoritmos y Estructuras de Datos I
- 6 -
Tipo String: (String significa tira o hilera de caracteres). Una variable definida
de tipo String, permite almacenar una palabra, frase o texto.
Ejemplo:
String apellido, nombre, direccion, frase;

apellido = Rodrguez ;
nombre = Alberto ;
direccion = 9 de Julio 1653 ;
frase = Hoy es un da soleado ;

Observar que para asignar un dato a una variable String, se debe hacerlo entre
comillas.

Nota: Existen mucho mas tipos de variables, pero sern vistos mas adelante.

Operadores Aritmticos

Los operadores aritmticos son los utilizados para realizar clculos matemticos en
una determinada asignacin. Java reconoce los siguientes operadores aritmticos:

Operacin Aritmtica Operador
Suma +
Resta -
Multiplicacin *
Divisin /
Resto de Divisin %


Estructuras Secuenciales

A partir de aqu, comenzaremos a realizar ejemplos de aplicacin de
Diagramas de Flujo y posteriormente su traduccin a lenguaje Java.

Ejemplo Nro. 1 : Calcular el importe que deber abonar una persona ingresando el
Precio unitario de un artculo y la cantidad que se quiere comprar.

Para la solucin, se deben pensar en las variables a utilizar en el diagrama, en
este caso, se tienen dos variables de ingreso, que son el precio y la cantidad, y una
variable de salida, que sera el importe que se debe abonar.

La solucin sera la siguiente:



Algoritmos y Estructuras de Datos I
- 7 -























El diagrama de flujo, nos da una idea del orden de ejecucin de las
actividades en el tiempo. Primero se introducen los datos de entrada, luego se
realizan las operaciones necesarias y por ltimo se muestran los resultados.

Ejemplo Nro. 2 : Hallar la superficie de un cuadrado conociendo el valor de uno de
sus lados.



















Inicio
precio
cantidad
importe = precio * cantidad
Fin
importe

Introduccin de datos

Clculo del importe a abonar

Impresin del importe a abonar

Inicio del Diagrama

Fin del Diagrama
Inicio
lado
superficie = lado * lado
Fin
superficie
En este caso, se ingresa el valor
de un lado del cuadrado,
mediante el smbolo de
Introduccin de Datos
(paralelogramo), luego se
calcula la superficie como el
producto de lado por lado, en el
smbolo rectngulo, y por ltimo
se imprime el resultado de la
superficie.
Algoritmos y Estructuras de Datos I
- 8 -
Se proceder ahora a realizar la codificacin de los ejercicios desarrollados
anteriormente, es decir, traducir los smbolos de los diagramas en instrucciones en
lenguaje Java, para ello, se debe haber instalado el software necesario, que en
nuestro caso, es el Ready to Program.



Para la instalacin de esta aplicacin se deber seguir los siguientes pasos:

Localizar el instalador de dicha aplicacin, por lo general suele venir
acompaando en el Cd de estudio. Tambin se puede conseguir en sitios de
descarga o bien conseguirlo a travs del campus o ayudantes del laboratorio.


Para instalarlo, se puede ejecutar el instalador desde el cd o bien
copiar los archivos y directorios a una unidad local (C:\ o D:\)

Una vez instalado, y ejecutado el programa, se mostrar una pantalla como la
siguiente:























Algoritmos y Estructuras de Datos I
- 9 -
All se puede comenzar a tipear las instrucciones para que Java las interprete, tener
en cuenta que a cada smbolo del diagrama, le corresponde una instruccin en Java.
Por ejemplo:
























El programa debe comenzar con una llave, que indica el inicio de la
actividad, luego se debe pedir el precio, para ello se utiliza la instruccin
c.readFloat(), que significa: leer un valor con punto decimal flotante y almacenarlo
en la variable precio, posteriormente, se ingresa la cantidad con la instruccin
c.readInt(), que significa: leer un valor entero, y almacenarlo en la variable cantidad.
La asignacin del clculo del importe, se coloca en el programa exactamente igual
como est en el diagrama, y por ltimo, para mostrar el resultado obtenido, se
utiliza la instruccin c.println(), con la variable que se quiere mostrar dentro de los
parntesis. Para finalizar el programa, se coloca otra llave, pero observar, que esta
es de cierre, mientras que la inicial es de apertura.

Para comenzar a tipear el programa, se debe previamente indicarle a Java
con que paquete de librerias se va a trabajar, esto se consigue con la instruccin:

import hsa.Console;

que le indica a Java que importe la librera de clases hsa.Console. Esta
librera contiene las funciones y mtodos apropiados de Entrada y Salida.

Se debe tener en cuenta adems, que en Java, todo programa es una clase y
por lo tanto debe llevar un nombre que debe comenzar en Maysculas y es
precisamente con ese nombre como debe ser grabado en el disco.

Inicio
precio
cantidad
importe = precio * cantidad
Fin
importe
precio = c.readFloat();

cantidad = c.readInt();
Esta asignacin se coloca como est

c.println (importe);

{

}
Algoritmos y Estructuras de Datos I
- 10 -
El programa una vez tipeado y grabado, quedar de la siguiente forma:




En este caso, a la clase se le di el nombre de Ejemplo1. La instruccin:

static Console c ;

se realiza para poder utilizar los mtodos de Entrada y Salida (readInt, readFloat,
println) con el objeto c, mas adelante, se explicar en mayor medida esta lnea.

La lnea: public static void main(String arg[])

es la cabecera del programa principal. Todos los programas que realicemos por el
momento comenzarn de la misma forma.

El inicio del programa empieza definiendo las variables a utilizar, en este caso, las
variables precio e importe son definidas de tipo float y la cantidad de tipo int. Se
define la variable como un objeto de la Console, por lo tanto, estar capacitada para
acceder a los mtodos de entrada y salida.
La lnea:
c.print (ingrese Precio: );

no figura en el diagrama, pero es necesario colocarla para que la computadora, antes
de detenerse pidiendo un dato con la lnea:

precio = c.readFloat();

Algoritmos y Estructuras de Datos I
- 11 -
muestre la leyenda correspondiente para ingresar el precio. Las dems lneas,
continan secuencialmente, de acuerdo con el diagrama de flujo.

La instruccin: println();

Se utiliza para dejar un rengln en blanco entre los datos introducidos y el
resultado que nos entrega la computadora. Observar, que para realizar la impresin
del resultado, se ha colocado una leyenda y al lado la variable correspondiente
separadas por un signo mas ( + ). Este signo, al utilizarlo con constantes o variables
de tipo String realiza la concatenacin de los elementos, es decir, que en este caso,
va ha producir la unin entre leyenda El importe a abonar es: con el valor que le
corresponde a la variable importe.
Una vez realizado codificado el programa, se lo debe ejecutar, para ello se
accede al botn [Run (F1)], que realiza la compilacin del programa y
posteriormente la ejecucin. Compilar en programa, significa traducir cada una de
las lneas escritas en Java, a un lenguaje entendible por la computadora. Si la
traduccin no registra ningn error, se observar una pantalla de salida del
programa, como se muestra en la siguiente figura:










En caso de haber errores en las lneas tipeadas, el programa no se ejecutar,
y se mostrar ms reasaltada la lnea en la cual se detect el error, indicndose el
tipo de error en la parte inferior de la ventana.

Codificacin del ejemplo nmero 2: Hallar la superficie de un cuadrado conociendo
el valor de uno de sus lados.





Inicio
lado
superficie = lado * lado
Fin
superficie

{

lado = c.readFloat();


superficie = lado * lado


c.println(La superficie es: + superficie);


}
Algoritmos y Estructuras de Datos I
- 12 -




Ejemplo Nro. 3 : Ingresar tres nombres con sus respectivas altura y determinar e
imprimir, la altura promedio.


























Inicio
promedio = (a1 + a2 + a3) / 3
Fin
promedio
n1, a1
n2, a2
n3, a3
En el smbolo de introduccin
de datos, se pueden colocar
ms de una variable, pero se
debe tener en cuenta que por
cada variable, se debe tener
una instruccin read en el
programa.

En este caso ser:

n1 = c.readLine();
a1 = c.readInt();
Nota: para pedir in dato de
tipo String, se utilizar la
instruccin c.readLine(), que
significa leer una linea.
Algoritmos y Estructuras de Datos I
- 13 -
El programa del ejemplo 3, sera el siguiente:


import hsa.Console;
class Ejemplo3
{
static Console c;
public static void main(String arg[])
{
String n1, n2, n3;
float a1, a2, a3;
float promedio;
c = new Console();

c.print("Ingrese primer nombre: ");
n1 = c.readLine();
c.print("Ingrese su altura: ");
a1 = c.readFloat();

c.print("Ingrese segundo nombre: ");
n2 = c.readLine();
c.print("Ingrese su altura: ");
a2 = c.readFloat();

c.print("Ingrese tercer nombre: ");
n3 = c.readLine();
c.print("Ingrese su altura: ");
a3 = c.readFloat();

promedio = (a1 + a2 + a3)/3;
c.println();
c.println("La altura promedio es: " + promedio);
}
}

Algoritmos y Estructuras de Datos I
- 14 -



Ejercicios Propuestos


1- Calcular el sueldo mensual de un operario conociendo la cantidad de horas
trabajadas y el valor por hora.

2- Realizar el ingreso de dos nmeros por teclado e imprimir su suma y su
producto.

3- Ingresar la base y la altura de un tringulo, imprimir posteriormente la
superficie del mismo. (Recordar que la superficie de un triangulo es base por
altura sobre 2). La frmula sera: superficie = b * h / 2 ;

4- Ingresar el nombre de un artculo con su respectivo precio. Imprimir el
importe a pagar si recibe un descuento del 12 % si se lo abona de contado.

S-ar putea să vă placă și