martes, 23 de febrero de 2016
domingo, 13 de septiembre de 2015
Comenzando a Programar con Java (Linea de Comando)
Para Poder empezar a programar con Java, necesitas descargar el JDK (Java Development Kit o Kit de Desarrollo de Java), e Instalarlo.
Objetivo: instalar el kit de desarrollo Java (JDK) en una plataforma Windows.
De modo que te has decidido a aprender aprogramar en Java…
Quizás haya sido porque se trate del lenguaje de programación más utilizado y, como programador, no quieras permanecer ajeno a la fiesta. Tal vez te haya atraído su extraordinaria portabilidad o la capacidad para desarrollar programas para cualquier plataforma.
O simplemente te fascina la programación orientada a objetos. En Java, al contrario de lo que sucede en otros lenguajes, las clases y los objetos no son una opción, algo de lo que te darás cuenta en cuanto escribamos el Hola mundo de rigor.
Sea lo que sea lo que te ha movido, celebro tu decisión.
El primer paso, naturalmente, consiste en preparar el entorno de desarrollo. En el artículo de hoy mostraremos cómo instalar el JDK(Java Development Kit) para la edición estándar de Java sobre una plataforma Windows. En un artículo posterior realizaremos la instalación en alguna máquina Linux.
El proceso es bien sencillo y casi anecdótico, como podrás comprobar.
Comenzamos accediendo a la página oficial de descarga, desde la cual descargaremos el JDK de Java SE 7u17, es decir, la versión 7, update 17 (la actual en el momento de escribir esto) de la edición estándar de Java.
Llegado a este punto tienes que tener muy clara la diferencia entre elJDK y el JRE. El JRE (Java Runtime Environment) contiene la máquina virtual Java, y es necesario para poder ejecutar aplicaciones creadas en Java. Pero, como programador, lo que necesitas es el kit de desarrollo, el JDK, que además incluye el propio JRE.
Haz clic, entonces, en alguno de los iconos que he rodeado con un círculo rojo (ambos apuntan al mismo destino) para acceder a la página que contiene los enlaces de descarga.
Acepta los términos de licencia de Oracle para que los enlaces se activen.
Elige la opción adecuada en función de si tienes un sistema de 32 o 64 bits.
La instalación es poco más que hacer doble clic sobre el instalador y aceptar las opciones por defecto:
Nota: las imágenes, de aquí en adelante, corresponden al Update 15, versión de Java existente en el momento en que fueron capturadas, pero la instalación del Update 17 es exactamente la misma.
Pulsa sobre Next y que empiece el show.
Para amenizarte el proceso, la instalación te recordará que 3 billones de dispositivos utilizan Java. Son billones anglosajones (1000 millones), no de los nuestros (un millón de millones), pero aún así puedes hacerte una idea del orden de magnitud del despliegue de Java en la actualidad.
Si no ha habido sorpresas, enhorabuena, tu kit de desarrollo Java estará instalado.
Vamos a asomarnos a la carpeta de instalación. Navega hasta
Archivos de Programa | Java | jdk1.7.0_15 | bin , donde se encuentran los ejecutables.
El corazón del kit lo conforman los ficheros javac.exe, el compilador, y java.exe, la máquina virtual Java. Obsérvalos en la figura.
Por lo general hay dos formas de programar en Java: empleando un IDE (como Eclipse o NetBeans, de los que hablaremos a su debido momento) o a pelo, sin más que un editor de texto plano y la línea de comandos, que es como trabajaremos en los siguientes artículos.
Pero, para poder invocar el compilador desde cualquier lugar en la línea de comandos, es necesario que la carpeta bin de arriba figure en el PATH del sistema.
Para asegurarte que no cometes ningún error trascribiendo la ruta exacta, te recomiendo que te sitúes sobre la dirección, en la parte superior del explorador de windows, hagas clic con el botón derecho y elijas Copiar dirección como texto. De este modo la ruta se copiará al portapapeles dispuesta a que la agreguemos a la variable PATH.
Accede, a continuación al cuadro de diálogo Propiedades del sistema:
Hay varios modos de llegar a él. Por ejemplo, botón derecho sobre
Equipo | Propiedades | Configuración avanzada del sistema.
Dentro de la pestaña
Opciones avanzadas, pulsa sobre el botónVariables de entorno para acceder al cuadro de diálogo que nos permite editarlas.
En el cuadro Variables del sistema, localiza la variable Path, selecciónala y pulsa el botón Editar.
Desplázate al final, agrega un punto y coma como separador y pega a continuación el contenido del portapapeles, que contiene la ruta completa al compilador de Java.
Acepta todo lo que haya que aceptar y probemos nuestra instalación.
Abre un intérprete de comandos y ejecuta los comandos:
javac -version
java -version
Como ves, no sólo hemos verificado que el compilador y la máquina virtual se encuentran accesibles desde cualquier ubicación; además, comprobamos que las versiones son las correctas.
Ahora sí, ya estamos en condiciones de escribir nuestro primer programa en Java.
Javier Montero Gabarró
http://elclubdelautodidacta.es/wp/2013/03/instalacion-del-kit-de-desarrollo-java-jdk-en-windows/
El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)
Modificadores de Visibilidad en las Clases
Paquetes.
Cada vez que creamos un paquete, lo que sucede por detrás es generarse una estructura de directorios, correspondientes al paquete.
Ejemplo:
Paquete: py.com.miPaquete
Directorio: py/com/miPaquete
Modificadores de Visibilidad
public class persona
{
private int dni;
privete void registrar ()
{
.........
}
}
public class persona
{
protected int dni;
protected void registrar ()
{
.........
}
}
4.) friendly o default: (sin palabra clave) visible desde cualquier clase en el mismo paquete.
public class persona
{
int dni;
void registrar ()
{
.........
}
}
Todos estos modificadores se pueden combinar a gusto y necesidad, dependiendo de lo que desea lograr. Ejemplo:
public class personas
{
public String nombre;
public String apellido;
private int dni;
private void registrar ()
{
...............
}
public void verDatos ()
{
................
}
}
Antes de impartir los conceptos que en realidad son interés de esta nota, vale la pena mencionar unos pre-conceptos. Por ejemplo, los paquetes. ¿Qué son? Podríamos hacer una sutil analogía con lo que son las carpetas. Los paquetes permiten establecer un nombre único para las clases y ayudan a la organización de dichas clases.
Palabras claves: import java.util.*; y package py.com.miPaquete.miClase;Cada vez que creamos un paquete, lo que sucede por detrás es generarse una estructura de directorios, correspondientes al paquete.
Ejemplo:
Paquete: py.com.miPaquete
Directorio: py/com/miPaquete
Modificadores de Visibilidad
En lo que concierne a los modificadores de visibilidad o de acceso, el objetivo principal el lograr elencapsulamiento, controlando o prohibiendo el acceso a los atributos o elementos de una clase.
Pueden usarse para establecer la visibilidad de: clases, métodos y variables.
En java podemos mencionar 4 tipos de modificadores, éstos, como su nombre lo indica, "modifican" o determinan la "visibilidad" o el acceso a un cierto elemento, son:
1.) public: visible dentro y fuera del paquete. Los métodos y las variables, son heredados por todas las subclases o hijas de la clase. Accesibles desde cualquier lugar.
Ejemplo:
public class persona
{
public int dni;
public void registrar ()
{
.........
}
}
2.) private: visible sólo desde el interior de la clase. No son heredados por ninguna sub-clase. No son accesibles desde ninguna otra clases, por más que estén en el mismo paquete.
{
private int dni;
privete void registrar ()
{
.........
}
}
3.) protected: visible desde el interior de la clase y desde las clases heredadas (sub-clases o hijas).
{
protected int dni;
protected void registrar ()
{
.........
}
}
4.) friendly o default: (sin palabra clave) visible desde cualquier clase en el mismo paquete.
public class persona
{
int dni;
void registrar ()
{
.........
}
}
Todos estos modificadores se pueden combinar a gusto y necesidad, dependiendo de lo que desea lograr. Ejemplo:
public class personas
{
public String nombre;
public String apellido;
private int dni;
private void registrar ()
{
...............
}
public void verDatos ()
{
................
}
}
http://javadsdcero.blogspot.com.co/2012/08/modificadores-de-visibilidad.html
martes, 8 de septiembre de 2015
Introduccion a las Clases en POO
Introducción a las Clases en POO
Utilizando el estandar de diagramacion UML, una clase se define de la siguiente manera:
Ejemplo:
El elemento o artefacto mas importante en la Programación Orientada a Objeto es la Clase, ya que de ella parte todo. una clase define que es un Objeto y Como se comportara éste, la clase esta conformada por atributos (que es) y metodos (como hace).
Utilizando el estandar de diagramacion UML, una clase se define de la siguiente manera:
(imagen tomada de Wilson Pelaez Hernandez)
Ejemplo:
En codigo de Java se escribiria de la siguiente forma:
En la linea 11 se escribe las palabras reservadas public (que indica que el elemento a crear es publico) y la palabra clave class que indica que es una clase y seguido del nombre y el simbolo de llave para apertura del cuerpo de la clase; despues de esto en las lineas 12, 13 y 14 se crean los atributos de acuerdo a los tipos definidos; en la linea 16 se crea el constructor de la clase, en este caso recibe tres arguementos, los cuales se asignaran a cada uno de los atributos de la clase; y las lineas 21, 24, 27 se escribe los otros metodos y los codigos respectivos.
martes, 25 de agosto de 2015
Ejercicios POO (Diagramas Basicos de Clases y Objetos)
Quererse a sí mismo
es el principio de un romance para toda la vida
Oscar Wilde
En el diagrama de clase
presentado se presenta una clase Persona,
con los atributos identificación, nombre, sexo, madre y padre (estos dos
atributos son de tipo persona) y se
presentan dos métodos, el método constructor Persona() y El método quererse()
el cual tiene como parámetro un objeto de tipo Actividad
El Diagrama de Objeto seria:
TARARÍ Y TARARÁ
De: Alicia a través del espejo
Lewis Carroll
— Ahora está soñando -señaló Tarará- ¿y a que no
sabes lo que está soñando?
— ¡Vaya uno a saber -replicó Alicia- ¡Eso no
podría adivinarlo nadie!
— ¡Anda! ¡Pues si te está soñando a ti! -exclamó
Tarará batiendo palmas en aplauso de su
triunfo-. Y si dejara de soñar contigo, ¿qué crees
que te pasaría?
— Pues que seguiría aquí tan tranquila, por
supuesto -respondió Alicia.
— ¡Ya! ¡Eso es lo que tú quisieras! -replicó
Tarará con gran suficiencia-. ¡No estarías en
ninguna parte! ¡Como que tú no eres más que un
algo con lo que está soñando!
— Si este Rey aquí se nos
despertara -añadió Tararí- tú te apagarías… ¡zas! ¡Como una vela!
Diagrama de Objetos
REALIZAR UN DIAGRAMA DE CLASE BASADO EN CADA UNO DE LOS CUENTOS, SEGÚN LOS
EJEMPLOS DE ARRIBA
MI ZAPATO
VIEJO
Cuento
Corto para
niños y niñas, creado por: Emiliana Marante
Tenía un hueco en la punta de mi zapato, estaba roto por un lado,
machacado por detrás, ya no servían para nada.
– ¡Lo tiraré a la basura!, – pensé
Y por un rato dejé allí mi zapato, mientras
hacía mis tareas de la escuela. Cuando terminé me dispuse a tirar mis
viejos e inservibles zapatos, pero me llevé una gran sorpresa cuando
vi un lindo y calentito huevo de mi patita Loló dentro
de uno de ellos.
– ¡Puede servirle de nidito!, -pensé.
Por lo menos no se moja ni pasa frío. Busqué un
pedazo de tela vieja, la hundí dentro y puse el huevo encima.
– ¡Que alegre estaba! ¡Ya mi patito Loló tenía su camita
para nacer!
Puse mi zapato debajo de un arbolito, allí mi
patita Lolò velaría a su nuevo bebé y mi abuela vería como pude darle otro uso
a los zapatos, que si para mi no servían, sí a mis animalitos.
Nunca mas pensaré en tirar algo sin antes pensar
para que puede servir y les contaré a mis amiguitos de la escuela y a
mi maestra.
NATI Y SU DELFIN
Cuento Corto para niños/as; creado por: Luna Pilar Acevedo
Nati era una chica de
dieciséis años, era huérfana. Un día Nati decidió que quería trabajar. Los primeros que quisieron
contratarla fueron los Mancini.
Ellos necesitaban que trabajara para que cuidara
a su mascota. Nati pensaba que
era una mascota cualquiera, normal, pero no era así. Incluso se desmayó cuando
se enteró de que tendría que cuidar de un delfín. Cuando se recuperó de la gran
sorpresa lo pensó y aceptó el trabajo.
El primer día de trabajo los dos (el delfín y
ella) se divirtieron muchísimo,
tanto fue que Nati pasó un año cuidando al delfín. Los Mancini se encariñaron
con ella y la adoptaron. Vivió muy feliz junto a su familia y su delfín.
EL CARACOL
PESIMISTA
Cuento Corto para niños y niñas; creado por: Sergio Gomez
Había un niño llamado Juan que salía a su jardín todos los días.Un día vio una fila de caracoles, uno de ellos iba muy atrasado y el niño le preguntó:
– ¿Por qué estas tan atrasado?
El caracol le dijo:
– Es que soy el más lento de todos.
– No seas pesimista tu puedes avanzar más rápido. -Dijo el niño.
El caracol pensó en lo que le estaba diciendo el
niño y se animó. Empezó a ir cada vez más rápido hasta que consiguió correr.
Ahora, cuando el niño sale al jardín, siempre ve
al caracol y va el primero de todos, ya que tiene confianza en sí mismo y
mejora cada día un poquito más.
Soñé que estaba ella sentada a mi cabecera,
y alborotaba tiernamente mi cabello con sus dedos,
suscitando la melodía de su contacto.
La miré a la cara, luchando con mis lágrimas,
hasta que la angustia de las palabras no dichas
quebró mi sueño como una burbuja.
Me incorporé. La Vía Láctea se veía arder por mi ventana,
como un mundo de silencio inflamado.
Y me pregunté si en aquel momento estaría ella soñando
un sueño que viniera, bien con el mío.
Introduccion a la Programacion Orientada A Objetos (POO)
Que es la POO?
La programación orientada a objetos (POO, u OOP según sus siglas en inglés) es un paradigma de programación que usa objetos en sus interacciones, para diseñar aplicaciones y programas informáticos.
Está basada en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.
La programación orientada a objetos difiere de la programación estructurada tradicional, en la que los datos y los procedimientos están separados y sin relación, ya que lo único que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programación estructurada anima al programador a pensar sobre todo en términos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. En la programación estructurada solo se escriben funciones que procesan datos. Los programadores que emplean POO, en cambio, primero definen objetos para luego enviarles mensajes solicitándoles que realicen sus métodos por sí mismos.
Objeto
Los objetos son entidades que tienen un determinado "estado" (en sus atributos), "comportamiento (método)" e "identidad":
Un objeto contiene toda la información que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos. A su vez, los objetos disponen de mecanismos de interacción llamados métodos, que favorecen la comunicación entre ellos. Esta comunicación favorece a su vez el cambio de estado en los propios objetos. Esta característica lleva a tratarlos como unidades indivisibles, en las que no se separa el estado y el comportamiento.
Los métodos (comportamiento) y atributos (estado) están estrechamente relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase requiere de métodos para poder tratar los atributos con los que cuenta. El programador debe pensar indistintamente en ambos conceptos, sin separar ni darle mayor importancia a alguno de ellos.
Conceptos
La programación orientada a objetos (POO, u OOP según sus siglas en inglés) es un paradigma de programación que usa objetos en sus interacciones, para diseñar aplicaciones y programas informáticos.
Está basada en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.
La programación orientada a objetos difiere de la programación estructurada tradicional, en la que los datos y los procedimientos están separados y sin relación, ya que lo único que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programación estructurada anima al programador a pensar sobre todo en términos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. En la programación estructurada solo se escriben funciones que procesan datos. Los programadores que emplean POO, en cambio, primero definen objetos para luego enviarles mensajes solicitándoles que realicen sus métodos por sí mismos.
Objeto
Los objetos son entidades que tienen un determinado "estado" (en sus atributos), "comportamiento (método)" e "identidad":
- El estado está compuesto de datos o informaciones; serán uno o varios atributos a los que se habrán asignado unos valores concretos (datos).
- El comportamiento está definido por los métodos o mensajes a los que sabe responder dicho objeto, es decir, qué operaciones se pueden realizar con él.
- La identidad es una propiedad de un objeto que lo diferencia del resto; dicho con otras palabras, es su identificador (concepto análogo al de identificador de una variable o una constante).
Un objeto contiene toda la información que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos. A su vez, los objetos disponen de mecanismos de interacción llamados métodos, que favorecen la comunicación entre ellos. Esta comunicación favorece a su vez el cambio de estado en los propios objetos. Esta característica lleva a tratarlos como unidades indivisibles, en las que no se separa el estado y el comportamiento.
Los métodos (comportamiento) y atributos (estado) están estrechamente relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase requiere de métodos para poder tratar los atributos con los que cuenta. El programador debe pensar indistintamente en ambos conceptos, sin separar ni darle mayor importancia a alguno de ellos.
Conceptos
La POO es una forma de programar que trata de encontrar una solución a estos problemas. Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:
- Clase
- Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ella.
- Herencia
- Por ejemplo, herencia de la clase C a la clase D, es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables públicas declaradas en C. Los componentes registrados como "privados" (private) también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. Esto es así para mantener hegemónico el ideal de POO.
- Objeto
- Instancia de una clase. Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos), los mismos que consecuentemente reaccionan a eventos. Se corresponden con los objetos reales del mundo que nos rodea, o con objetos internos del sistema (del programa). Es una instancia a una clase.
- Método
- Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.
- Evento
- Es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento la reacción que puede desencadenar un objeto; es decir, la acción que genera.
- Atributos
- Características que tiene la clase.
- Mensaje
- Una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.
- Propiedad o atributo
- Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.
- Estado interno
- Es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase.
- Componentes de un objeto
- Atributos, identidad, relaciones y métodos.
- Identificación de un objeto
- Un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos y funciones correspondientes.
En comparación con un lenguaje imperativo, una "variable" no es más que un contenedor interno del atributo del objeto o de un estado interno, así como la "función" es un procedimiento interno del método del objeto.
Características de la POO[editar]
Existe un acuerdo acerca de qué características contempla la "orientación a objetos". Las características siguientes son las más importantes:
- Abstracción
- Denota las características esenciales de un objeto, donde se capturan sus comportamientos. Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar "cómo" se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos, y, cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción. El proceso de abstracción permite seleccionar las características relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstracción es clave en el proceso de análisis y diseño orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar.
- Encapsulamiento
- Significa reunir todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión (diseño estructurado) de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.
- Modularidad
- Se denomina "modularidad" a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes. Estos módulos se pueden compilar por separado, pero tienen conexiones con otros módulos. Al igual que la encapsulación, los lenguajes soportan la modularidad de diversas formas.
- Principio de ocultación
- Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una "interfaz" a otros objetos que especifica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas; solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no puedan cambiar el estado interno de un objeto de manera inesperada, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos.
- Polimorfismo
- Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre; al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O, dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecución", esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en "tiempo de compilación") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.
- Herencia
- Las clases no se encuentran aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento, permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto hereda de más de una clase se dice que hayherencia múltiple; siendo de alta complejidad técnica por lo cual suele recurrirse a la herencia virtual para evitar la duplicación de datos.
- Recolección de basura
- La recolección de basura (garbage collection) es la técnica por la cual el entorno de objetos se encarga de destruir automáticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el programador no debe preocuparse por la asignación o liberación de memoria, ya que el entorno la asignará al crear un nuevo objeto y la liberará cuando nadie lo esté usando. En la mayoría de los lenguajes híbridos que se extendieron para soportar el Paradigma de Programación Orientada a Objetos como C++ u Object Pascal, esta característica no existe y la memoria debe desasignarse expresamente.
URL:
https://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos#Conceptos_fundamentales
martes, 18 de agosto de 2015
Introduccion a los Algoritmos
INTRODUCCIÓN A LA PROGRAMACIÓN DE
COMPUTADORES
ALGORITMOS
Para qué Sirven los Algoritmos?
Partimos
este curso, respondiendo esta pregunta, y su respuesta puede ser simple como
compleja; los algoritmos sirven como una guía o receta única para resolver siempre
un mismo problema. Es decir que siguiendo los pasos o instrucciones que da el
algoritmo siempre vamos a encontrar la respuesta a ese problema.
Que es un problema?
Podemos
definir un problema como una situación que debe ser solucionada, el Diccionario de la Real Academia lo define
como (1. Cuestión que se trata de aclarar, 2. Proposición o Dificultad de
Solución Dudosa, 3.) Conjunto de Hechos o Circunstancias que dificultan la
consecución de algún fin. 4.)
Planteamiento de una situación cuya respuesta desconocida debe obtenerse a través
de métodos científicos. Partiendo de esta ultima definición podemos decir que
para poder solucionar un problema
mediante el uso de la computadora, es necesario seguir una serie de pasos,
donde uno de estos se conoce como diseño del Algoritmo.
Que
es un Algoritmo?
Es un
conjunto de instrucciones o pasos ordenados, que tienen como objetivo dar la solución
a un problema y se caracteriza porque cada paso debe ser preciso y detallado,
debe tener un final que es la solución del problema, y debe ser definido, es
decir que sirve para lo que se ha creado.
Tipos
de Algoritmos
De
acuerdo al tratamiento de los Algoritmos a través de una computadora, estos se
pueden clasificar en Cualitativos y Cuantitativos. Los Algoritmos Cualitativos
son aquellos en donde cada paso se describe en forma de enunciado, textual o
gráficamente. Ejemplo una Receta de Cocina, o instrucciones para Armar algún
objeto. Los Algoritmos Cuantitativos son aquellos en donde cada paso se describe
en forma de expresión matemática, ejemplo: (Una Fórmula un Teorema. etc.).
Características
de los Algoritmos
Aunque
hay tres características fundamentales que deben tener los algoritmos: finito,
preciso y definido, el Doctor en Computación Donald Knuth define dos mas de
esta forma:
Carácter
finito.
"Un
algoritmo siempre debe terminar después de un número finito de pasos".
Precisión.
"Cada
paso de un algoritmo debe estar precisamente definido; las operaciones a llevar
a cabo deben ser especificadas de manera rigurosa y no ambigua para cada caso".
Entrada.
"Un
algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que
el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas
entradas son tomadas de conjuntos específicos de objetos."
Salida.
"Un
algoritmo tiene una o más salidas: cantidades que tienen una relación
específica con las entradas".
Eficacia.
"También
se espera que un algoritmo sea eficaz, en el sentido de que todas las
operaciones a realizar en un algoritmo deben ser suficientemente básicas como
para que en principio puedan ser hechas de manera exacta y en un tiempo finito
por un hombre usando lápiz y papel".
Como
se abordan los problemas desde la perspectiva de los algoritmos
Para
poder especificar la solución de un problema desde la perspectiva de los
algoritmos, debemos Entender bien el Problema, prácticamente se habla de
conocer qué es lo que se busca solucionar, analizar qué datos nos da el
enunciado, que información conocemos, cual desconocemos (y debemos ir a buscar
para incluirla en nuestro algoritmo) o cual desconocemos y debemos pedírsela al
usuario cuando ejecute nuestro algoritmos; partiendo de esto debemos determinar
cuáles son nuestros datos de entrada, también que es lo que debemos
realizar (proceso) y que es lo que debemos mostrar (salida o
resultado). Estos son nuestros insumos para poder desarrollar nuestro
algoritmo.
Problema: Se Necesita Conocer el Area de un
Círculo, cuyo radio es N (Un Valor Cualquiera) que debemos saber?
1.
Analizar el problema (Investigar la Formula para calcular el área de un
Circulo, la cuales
Area =
Pi * Radio Al Cuadrado, podemos observar mediante la fórmula que hay dos
operandos uno es Pi, que investigando sabemos que es una constante, y el otro
es el radio, que es el dato que desconocemos, por lo tanto, es el dato que
debemos pedir (entrada), La salida debe
ser, El Area del Circulo. Entonces tenemos
Datos
de Entrada : Pi y
Radio
Proceso
: Formula del Area
del Circulo Area = Pi * Radio Al cuadrado
Datos
de Salida: Area del
Circulo
Computadores
- Problemas - Algoritmos su relación
El
hombre inventó la computadora con el objetivo de que le ayudar a resolver
problemas de índole numérico, de una manera ágil, eficiente y automatizada,
pero para que estos problemas fueran resueltos por la computadora, era
necesario determinar la manera de poder indicarle a la computadora como podía
resolverlos, en este orden de ideas el hombre decidió utilizar la teoría de los
algoritmos para este fin. ya que era la que mejor encajaba con la arquitectura
de funcionamiento de ella. Donde se partía
de unos datos de entrada, se realizaba un proceso y se generaba una salida o
resultado.
Como
se pueden Expresar los Algoritmos
Los
algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de
flujo y lenguajes de programación entre otros. Las descripciones en lenguaje
natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de
flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son
formas más estructuradas para representar algoritmos; no obstante, se mantienen
independientes de un lenguaje de programación específico.
La
descripción de un algoritmo usualmente se hace en tres niveles:
Descripción
de alto nivel
Se
establece el problema, se selecciona un modelo matemático y se explica el algoritmo
de manera verbal, posiblemente con ilustraciones y omitiendo detalles (Nivel de
Detalle Básico).
Descripción
formal
Se usa
pseudocódigo para describir la secuencia de pasos que encuentran la solución
(Nivel de Detalle Medio).
Implementación
Se muestra
el algoritmo expresado en un lenguaje de programación específico o algún objeto
capaz de llevar a cabo instrucciones (Nivel de Detalle Alto).
Pseudocódigo
(Formalización de los Algoritmos)
El
Pseudocódigo es un lenguaje intermedio entre el lenguaje humano y el Lenguaje
de Programación, parte de la Palabra Pseudo que significa Falso, es un lenguaje
que trata de imitar los lenguajes de programación de Alto Nivel pero de una
manera abreviada y menos compleja que los lenguajes de programación como tal.
Componentes
de los Algoritmos
Instrucciones
de Asignación
Es
aquella que permite asignarle a una Variable o una Constante un Valor
En pseudocódigo
se usa el carácter de asignación = o ß
Ejemplo,
si queremos asignar a la variable edad un valor determinado 18, lo hacemos de
esta manera:
Edadß18
Edad=18
Instrucciones
declarativas
Las instrucciones declarativas son aquellas en donde
llamamos por primera vez las variables o constantes o librerías a utilizar en
nuestro algoritmo, aquí lo que hacemos es decir de qué tipo es una variable o
constante o que librería utilizará nuestro programa. En los algoritmos las
instrucciones declarativas no tienen relevancia.
Instrucciones de Lectura de Datos
La
instrucción de lectura de datos es aquella que nos permite, mediante teclado
poder introducir datos solicitados por el algoritmo y que estos a su vez sean
asignados a variables. La instrucción de lectura de datos es LEER o LEA, y se usa de la siguiente manera:
Ejemplo, En un algoritmo se nos pide que leamos el número de
personas para pedir unos datos después, entonces lo que hacemos es lo
siguiente, debemos crear una variable donde se almacene el valor ingresado que
corresponda al número de personas, esta variable la podemos llamar simplemente n, entonces la instrucción seria:
LEER n
o
LEA n
Instrucciones de Impresión
Las
instrucciones de impresión nos permiten mostrar datos en la pantalla del
computador, es como el computador nos informa de algo, nos da un resultado para
verlo. En pseudocódigo la instrucción que se utiliza es ESCRIBA o IMPRIMA Y este es un ejemplo de uso:
ESCRIBA “Estoy Aprendiendo Algoritmos y
Programación”
IMPRIMA “Estoy Aprendiendo Algoritmos y
Programación”
Lo que
queremos que nos muestre lo encerramos en comillas dobles
Otro
ejemplo puede ser imprimir el valor de una variable, supongamos la variable n
ESCRIBA n
Este
ejemplo lo que hace es escribir o mostrar en la pantalla el valor que tenga n.
Expresiones
Las expresiones son combinación de operadores y
operandos (números, variables, constantes), que al ser evaluados nos devuelven
un valor, y este valor puede ser asignado a una variable o puede ir dentro de
una condición en una estructura de control, el ejemplo de esto puede ser el
resultado de una fórmula:
área ß Pi * 3.5^2
La
expresión a evaluar es Pi * 3.5^2 y vemos el operador de multiplicación *, el
operador de exponenciación ^ y la constante Pi y el valor 3.5, a toda esta
combinación se le llama expresión, las expresiones también obedece a una regla
de precedencia, donde se determina la operación
que se debe realizar primero, pero antes de esto vamos a ver unas definiciones
fundamentales en este tema:
Variable es un espacio en la memoria del algoritmo que es reconocido
por un nombre y se le permite guardar valores
o datos, los cuales pueden ir cambiando dentro del algoritmo, la regla
fundamental para el uso de variables es que esta debe estar relacionada con la
información que almacena, y debe ser una sola palabra o combinación de estas
utilizando el carácter – o _ ejemplo:
edad, n,
peso numero_hijos, cantidad_personas
Los
valores a las variables se les asignan de dos maneras, mediante una instrucción
de asignación, o mediante la instrucción de lectura de datos, como lo vimos en
ejemplos anteriores:
edadß 18
o
LEA edad
Constante, la misma definición de variable y las
mismas reglas de uso, solo que su valor no puede cambiar dentro del algoritmo,
por lo general se declara al comienzo del algoritmo con un valor, ejemplo:
pi ß 3.1416
gravedad
ß9.81
Operadores
Los
operadores son símbolos que nos indican que operación se debe realizar entre
los operandos (números, variables o constantes), y son de varios tipos
(aritméticos, lógicos, relacionales)
Operadores Aritméticos, son aquellos que nos permiten
realizar operaciones matemáticas y son los siguientes:
Símbolo
|
Significado
|
+
|
Suma
|
-
|
Resta
|
*
|
Multiplicación
|
/
|
División
|
^
|
Exponenciación o Potencia
|
%
|
Modular o Residuo de una División.
|
Para
poder agrupar los operadores y operandos,
y requerir que se realice una operación antes que otra, se usa los símbolos de
paréntesis.
Prioridad de los operadores
como en
las matemáticas, si tenemos una expresión con varios operadores, debemos
determinar cual se debe realizar primero y sabemos que para eso hay una regla,
la primera es que todo lo que está en el
paréntesis () se resuelve primero, desde el interior al exterior, a nivel de
operadores los primeros en resolverse son la exponenciación y la modularidad o
residuo, luego si hay una división o multiplicación se resuelven, siempre la
que aparece primero de izquierda a derecha, y por último que dan la suma y la
resta, de la misma forma que la multiplicación
Prioridad
|
Operación
|
1
|
^ Potenciación y % residuo
|
2
|
* multiplicación y / división
|
3
|
+ suma y - resta
|
Operadores Relacionales son aquellos que nos permite
comparar dos o más expresiones u operandos, y nos puede devolver uno de dos
valores (falso o verdadero), por lo general estos operadores van en la
condición de las estructuras de control, y son los siguientes
Operador
|
Significado
|
>
|
Mayor que determina si la expresión a la izquierda es mayor que la
de la derecha ejemplo 4>5 devolvería
falso
|
<
|
Menor que determina si la expresión de la izquierda es menor que la
de la derecha ejemplo 4<5 devolvería
verdadero
|
=
|
Igual que Determina si la expresión de la izquierda es igual a la
derecha, ejemplo
5= 8 devolvería falso
|
<>
|
Diferente o no igual, determina si la expresión de la izquierda es
diferente de la derecha, ejemplo 5<>8
devolvería verdadero
|
>=
|
Mayor o Igual, determina si la expresión a la izquierda es mayor o igual
que la de la derecha, ejemplo 4>=5
devolvería falso
|
<=
|
Menor o igual, determina si la expresión de la izquierda es menor o igual
que la de la derecha ejemplo 4<=4,
devolvería verdadero, porque es
igual
|
Operadores Lógicos
Son
aquellos que nos permiten combinar expresiones relacionales y que al ser evaluadas
en su conjunto devuelven un valor lógico de falso o verdadero, por lo general
van siempre en las condiciones de las estructuras de control de decisión.
Operador
|
Descripción
|
Y
|
Evalúa las expresiones que hay a la izquierda y a la
derecha y el resultado para que esta sea verdadera es que se cumplan las dos
ejemplo 5>4 Y 3<1, le resultado sería falso,
ya que para que sea verdadero, las dos expresiones tienen que ser
ciertas, y es falso que 3<1.
|
O
|
Evalúa las expresiones que hay a la izquierda y a la
derecha, y si alguna de las dos es verdadera, el resultado final seria
verdadero, ejemplo 5>4 O 3<1, seria verdadero, porque
aunque la expresión de la derecha es falsa, la de la izquierda es verdadera.
|
No
|
Este operador, lo que hace es negar todo lo que aparezca al
frente de el, ejemplo
No 3<1, esto sería verdadero, ya
que aunque la operación relacional 3<falso, el operador no lo que hace es
negar ese resultado convirtiéndolo en verdadero.
|
ESTRUCTURAS DE CONTROL
Las
estructuras de control, son instrucciones en los algoritmos que nos permiten
modificar el flujo de ejecución de este, y sirven para:
De
acuerdo a una condición, ejecutar un grupo u otro de instrucciones
Ejecutar
un grupo de instrucciones mientras exista una condición
Ejecutar
un grupo de instrucciones hasta que exista una condición
Ejecutar
un grupo de instrucciones un número determinado de veces
Las
estructuras de control pueden ser clasificadas en (estructuras de decisión, y
estructuras de iteración o repetición)
Estructuras de Decisión
Esta
Estructura permite redirigir el curso de las instrucciones del algoritmo según
la evaluación de una condición, sea falsa o verdadera, y esta estructura puede
ser simple o compuesta: y esta es la forma de su uso:
SI (condición) ENTONCES
Instrucciones A
Instrucciones B
Instrucciones C
.
.
.
FIN SI
Ejemplo:
SI (edad>=18) ENTONCES
ESCRIBA “Es mayor de Edad”
FIN SI
La
estructura compuesta seria de esta forma, e indica que si no se cumple la
condición entonces realiza las instrucciones que están después del SINO
SI (condición) ENTONCES
Instrucciones A
Instrucciones B
Instrucciones C
.
.
.
SINO
Instrucciones D
Instrucciones E
Instrucciones F
.
.
.
FIN SI
Ejemplo:
SI (edad>=18) ENTONCES
ESCRIBA “Es mayor de Edad”
SINO
ESCRIBA “Es menor de Edad”
FIN SI
Estructuras
de Repetición o Iteración
Son
aquellas que nos permite realizar una serie de instrucciones de manera
repetitiva, si al evaluar una condición esta permanece verdadera, es muy
utilizada en algoritmos que nos exigen que realicemos una actividad o acción un
determinado número de veces.
Instrucción
MIENTRAS
MIENTRAS (condición) HAGA
Instrucciones A
Instrucciones B
Instrucciones C
.
.
FIN MIENTRAS
Esta instrucción de repetición, lo que hace es repetir las
instrucciones A, B, C .. Mientras la condición que tiene sea verdadera
Ejemplo:
Si deseamos imprimir
una serie de número del 1 al 10, hacemos lo siguiente:
numeroß1
MIENTRAS (numero<=10) HAGA
ESCRIBA numero
numeroßnumero+1
.
FIN MIENTRAS
En este ejemplo se puede observar que declaramos una variable
llamada numero y le asignamos el valor de 1, luego creamos un bloque de instrucción
mientras, y en la condición pusimos que si la variable numero era menor o igual
que 10 escribiera el contenido de la variable numero en pantalla y luego fuese
incrementando su valor a 1. Esto quiere decir que cuando la variable numero
valga 11, ya no ejecutará las instrucciones que están dentro del mientras.
Ejercicios Resueltos
http://datateca.unad.edu.co/contenidos/2150510/Ejemplos_de_algoritmos.pdf
Ejercicios para hacer tomado de
http://informaticacbta75.blogspot.com/p/ejercicios-basicos-de-algoritmos-y.html
ESTRUCTURA SELECTIVAS
1. Confeccione un algoritmo que lea un número e indique si este es positivo o negativo
2. Confeccione un algoritmo que lea un número e indique si este es par o impar
3. Confeccione un algoritmo que lea un número e indique si este es par-positivo, par-negativo, imparpositivo o impar-negativo.
4. Confeccione un algoritmo que lea un número y si este es mayor o igual a 10 devuelva el triple de
este de lo contrario la cuarta parte de este.
5. Obtener el iva de una venta, si esta es superior a $ 150.000 aplicar un descuento del 25 %.
6. Leer tres números e imprimir el mayor de ellos
8. Determine el valor de un pasaje en avión , conociendo la distancia a recorrer, el número de días de
estancia, y sabiendo que si la distancia a recorrer es superior a 1000 Km y el número de días de
estancia es superior a 7, la línea aérea le hace un descuento del 30%. ( el precio por km. es de
$35)
9. Confeccione un algoritmo que permita determinar el precio de un pasaje en avión sabiendo que :
? valor por kilómetro recorrido es de ($47)
? sobre los 1000 km de vuelo el valor del kilómetro es de $25.
10. Construya un algoritmo que permita obtener el sueldo liquido y descuento previsional de un
trabajador, conociendo su sueldo bruto y si este esta imponiendo en caja se le descontará el 12% del
sueldo bruto, y si impone en AFP se le descontará el 17%.
ESTRUCTURA REPETITIVA + VARIABLE CONTADOR
11. Construya un algoritmo que permita leer sólo números positivos hasta reunir 100 números pares u
ochenta números 5. Indicar luego la totalidad de números leídos.
12. Construya un algoritmo que permita leer una cantidad de 20 números y nos indique finalmente
cuantos fueron positivos y cuantos fueron negativos.
13. Construya un algoritmo que permita leer una cantidad variable de números y nos indique cuantos
fueron mayores a 100 y cuántos menores a 100.
14. Construya un algoritmo que permita ingresar 90 notas entre uno y siete, indicando finalmente
cuántos alumnos aprobaron y cuantos reprobaron.
15. Construya un algoritmo que permita leer una cantidad variable de números indicando finalmente lo
siguiente :
• cuántos números fueron positivos
• cuántos fueron negativos
• cuantos fueron pares
• cuantos fueron impares
• cuántos fueron múltiplos de ocho
16. Construya un algoritmo que permita leer una cantidad variable de números hasta que se ingresen 5
números negativos. Indicar cantidad total de números leídos.
17. Construya un algoritmo que permita ingresar números hasta que se lean 7 números pares o 10
números negativos. Indicar finalmente del total de números leídos cuántos fueron impares, cuántos
fueron pares, cuántos fueron positivos y mayores que 100, y cuántos fueron negativos.
19. Leer 10 números e indicar cuánto es la suma de todos ellos.
20. Leer 10 números e indicar cuánto suman los números pares.
21. Leer una cantidad variable de números e indicar cuanto suman todos los números, cuanto los
números positivos y cuanto los números negativos.
22. Leer una cantidad variable de números e indicar el promedio de los números pares y el promedio de los números impares.
23. Leer una cantidad de números variables hasta que se ingrese un número múltiplo de 5. Indicar el
número de datos que fueron ingresados, sin contar el múltiplo de la condición de término.
24. Leer 70 números e indicar cual es el promedio de los números pares mayores a 40 y el promedio de los números pares menores a 40.
25. Leer las edades y los pesos de todos los alumnos de un curso. Indicar para estos la edad promedio y el peso promedio de los alumnos del curso.
26. Leer las edades de los asistentes a un cine e indicar finalmente cuantos de estos fueron: niños (1-
10), adolescentes (11-15), jóvenes (16-22), adultos (23-35), otros (36- ...)
27. Leer las estaturas de los asistentes a un estadio e indicar la estatura promedio de los hombres y la
estatura promedio de las mujeres.
ESTRUCTURA REPETITIVA + VARIABLES AUXILIARES
28. Leer 5 números e indicar finalmente cual fue el menor
29. Leer 200 números e indicar finalmente cual fue el mayor y el menor número
30. Leer una cantidad variable de números e indicar cual fue el mayor número positivo y cual fue el
menor numero negativo.
31. Leer una cantidad variable conocida de números e indicar finalmente cual fue el mayor número leido y cuantas veces fue ingresado.
32. Construya un algoritmo que permita leer un cantidad variable de números e indicar finalmente de
estos:
• el promedio de todos los números pares leídos
• el promedio de todos los números impares leídos
• el número impar leído más grande
• el número par leído más pequeño.
Se deberá ir consultando al usuario si desea leer otro número cada vez.
33. Leer las edades y peso de 50 personas y finalmente indicar:
• Cual fue la mayor y menor edad y sus respectivos pesos.
• Cual fue la edad promedio.
• Cuantos fueron mayores de 21, pero menores de 31.
34. Un estudio meteorológico mensual consiste de una medición promedio diaria para un mes
Conociendo el estudio meteorológico del mes de mayo se pide:
• Indicar la mayor temperatura del mes y el número del día a la que corresponde.
• Indicar la menor temperatura del mes y el número del día a la que corresponde.
• La temperatura promedio del mes.
• La temperatura promedio de la primera quincena del mes.
• La temperatura promedio de la segunda quincena del mes.
35. Un digitalizador óptico permite medir el tiempo que demora un cuerpo en pasar entre un punto A y un punto B. Un digitalizador óptico es empleado para medir el tiempo que demoran diez cuerpos en
recorrer un trayecto de 200 metros. Construya un algoritmo que permita determinar de los diez
cuerpos, cual fue el más veloz, y a cuanto ascendió esta velocidad.
Además indique la velocidad promedio de los cuerpos.
36. Un BOING 747 tiene una capacidad de carga para equipaje de aproximadamente 18.000 kgr.
Confeccione un algoritmo que controle la recepción de equipajes para este avión, sabiendo :
• Un bulto no puede exceder la capacidad de carga del avión ni tampoco exceder los 500 Kg.
• El valor por kilo del bulto es :
- de 0 a 25 Kg. cero pesos
- de 26 a 300 Kg. 1500 pesos por kilo de equipaje.
- de 301 a 500 Kg. 2500 pesos por kilo de equipaje
Para un vuelo cualquiera se pide:
a) Número total de bultos ingresados para el vuelo
b) Peso del bulto más pesado y del más liviano
c) Peso promedio de los bultos
d) Ingreso en pesos y en dólares por concepto de carga.
Construya una tabla de seguimiento con no menos de 15 bultos para realizar la prueba del algoritmo.
40. Construya un algoritmo que permita generar y desplegar los N primeros números pares a
continuación del número P.
MAS EJERCICIOS
Diseñar un diagrama de flujo de un programa que permita convertir una cantidad ingresada en kilogramos a libras.
En un curso de ciencias de la computación la calificación final del estudiante se determina a partir del
rendimiento en tres aspectos del trabajo. Existe una calificación de exámenes parciales, que cuenta con
30% del total, la calificación de trabajo de taller con 20%, y el examen final con el 50%. Diseñar un
algoritmo para calcular la calificación final del estudiante.
MAS EJERCICIOS DE CICLOS
Una agencia de venta de autos paga a su personal de ventas un salario de $800,00 mas una comisión
de $170,00 por auto vendido mas un 5% del valor de venta. Diseñar un algoritmo para calcular el
salario de un vendedor en un determinado mes, conociendo el nº de automóviles vendidos y el total del monto
de ventas.
http://datateca.unad.edu.co/contenidos/2150510/Ejemplos_de_algoritmos.pdf
Ejercicios para hacer tomado de
http://informaticacbta75.blogspot.com/p/ejercicios-basicos-de-algoritmos-y.html
ESTRUCTURA SELECTIVAS
1. Confeccione un algoritmo que lea un número e indique si este es positivo o negativo
2. Confeccione un algoritmo que lea un número e indique si este es par o impar
3. Confeccione un algoritmo que lea un número e indique si este es par-positivo, par-negativo, imparpositivo o impar-negativo.
4. Confeccione un algoritmo que lea un número y si este es mayor o igual a 10 devuelva el triple de
este de lo contrario la cuarta parte de este.
5. Obtener el iva de una venta, si esta es superior a $ 150.000 aplicar un descuento del 25 %.
6. Leer tres números e imprimir el mayor de ellos
8. Determine el valor de un pasaje en avión , conociendo la distancia a recorrer, el número de días de
estancia, y sabiendo que si la distancia a recorrer es superior a 1000 Km y el número de días de
estancia es superior a 7, la línea aérea le hace un descuento del 30%. ( el precio por km. es de
$35)
9. Confeccione un algoritmo que permita determinar el precio de un pasaje en avión sabiendo que :
? valor por kilómetro recorrido es de ($47)
? sobre los 1000 km de vuelo el valor del kilómetro es de $25.
10. Construya un algoritmo que permita obtener el sueldo liquido y descuento previsional de un
trabajador, conociendo su sueldo bruto y si este esta imponiendo en caja se le descontará el 12% del
sueldo bruto, y si impone en AFP se le descontará el 17%.
ESTRUCTURA REPETITIVA + VARIABLE CONTADOR
11. Construya un algoritmo que permita leer sólo números positivos hasta reunir 100 números pares u
ochenta números 5. Indicar luego la totalidad de números leídos.
12. Construya un algoritmo que permita leer una cantidad de 20 números y nos indique finalmente
cuantos fueron positivos y cuantos fueron negativos.
13. Construya un algoritmo que permita leer una cantidad variable de números y nos indique cuantos
fueron mayores a 100 y cuántos menores a 100.
14. Construya un algoritmo que permita ingresar 90 notas entre uno y siete, indicando finalmente
cuántos alumnos aprobaron y cuantos reprobaron.
15. Construya un algoritmo que permita leer una cantidad variable de números indicando finalmente lo
siguiente :
• cuántos números fueron positivos
• cuántos fueron negativos
• cuantos fueron pares
• cuantos fueron impares
• cuántos fueron múltiplos de ocho
16. Construya un algoritmo que permita leer una cantidad variable de números hasta que se ingresen 5
números negativos. Indicar cantidad total de números leídos.
17. Construya un algoritmo que permita ingresar números hasta que se lean 7 números pares o 10
números negativos. Indicar finalmente del total de números leídos cuántos fueron impares, cuántos
fueron pares, cuántos fueron positivos y mayores que 100, y cuántos fueron negativos.
19. Leer 10 números e indicar cuánto es la suma de todos ellos.
20. Leer 10 números e indicar cuánto suman los números pares.
21. Leer una cantidad variable de números e indicar cuanto suman todos los números, cuanto los
números positivos y cuanto los números negativos.
22. Leer una cantidad variable de números e indicar el promedio de los números pares y el promedio de los números impares.
23. Leer una cantidad de números variables hasta que se ingrese un número múltiplo de 5. Indicar el
número de datos que fueron ingresados, sin contar el múltiplo de la condición de término.
24. Leer 70 números e indicar cual es el promedio de los números pares mayores a 40 y el promedio de los números pares menores a 40.
25. Leer las edades y los pesos de todos los alumnos de un curso. Indicar para estos la edad promedio y el peso promedio de los alumnos del curso.
26. Leer las edades de los asistentes a un cine e indicar finalmente cuantos de estos fueron: niños (1-
10), adolescentes (11-15), jóvenes (16-22), adultos (23-35), otros (36- ...)
27. Leer las estaturas de los asistentes a un estadio e indicar la estatura promedio de los hombres y la
estatura promedio de las mujeres.
ESTRUCTURA REPETITIVA + VARIABLES AUXILIARES
28. Leer 5 números e indicar finalmente cual fue el menor
29. Leer 200 números e indicar finalmente cual fue el mayor y el menor número
30. Leer una cantidad variable de números e indicar cual fue el mayor número positivo y cual fue el
menor numero negativo.
31. Leer una cantidad variable conocida de números e indicar finalmente cual fue el mayor número leido y cuantas veces fue ingresado.
32. Construya un algoritmo que permita leer un cantidad variable de números e indicar finalmente de
estos:
• el promedio de todos los números pares leídos
• el promedio de todos los números impares leídos
• el número impar leído más grande
• el número par leído más pequeño.
Se deberá ir consultando al usuario si desea leer otro número cada vez.
33. Leer las edades y peso de 50 personas y finalmente indicar:
• Cual fue la mayor y menor edad y sus respectivos pesos.
• Cual fue la edad promedio.
• Cuantos fueron mayores de 21, pero menores de 31.
34. Un estudio meteorológico mensual consiste de una medición promedio diaria para un mes
Conociendo el estudio meteorológico del mes de mayo se pide:
• Indicar la mayor temperatura del mes y el número del día a la que corresponde.
• Indicar la menor temperatura del mes y el número del día a la que corresponde.
• La temperatura promedio del mes.
• La temperatura promedio de la primera quincena del mes.
• La temperatura promedio de la segunda quincena del mes.
35. Un digitalizador óptico permite medir el tiempo que demora un cuerpo en pasar entre un punto A y un punto B. Un digitalizador óptico es empleado para medir el tiempo que demoran diez cuerpos en
recorrer un trayecto de 200 metros. Construya un algoritmo que permita determinar de los diez
cuerpos, cual fue el más veloz, y a cuanto ascendió esta velocidad.
Además indique la velocidad promedio de los cuerpos.
36. Un BOING 747 tiene una capacidad de carga para equipaje de aproximadamente 18.000 kgr.
Confeccione un algoritmo que controle la recepción de equipajes para este avión, sabiendo :
• Un bulto no puede exceder la capacidad de carga del avión ni tampoco exceder los 500 Kg.
• El valor por kilo del bulto es :
- de 0 a 25 Kg. cero pesos
- de 26 a 300 Kg. 1500 pesos por kilo de equipaje.
- de 301 a 500 Kg. 2500 pesos por kilo de equipaje
Para un vuelo cualquiera se pide:
a) Número total de bultos ingresados para el vuelo
b) Peso del bulto más pesado y del más liviano
c) Peso promedio de los bultos
d) Ingreso en pesos y en dólares por concepto de carga.
Construya una tabla de seguimiento con no menos de 15 bultos para realizar la prueba del algoritmo.
40. Construya un algoritmo que permita generar y desplegar los N primeros números pares a
continuación del número P.
MAS EJERCICIOS
Diseñar un diagrama de flujo de un programa que permita convertir una cantidad ingresada en kilogramos a libras.
En un curso de ciencias de la computación la calificación final del estudiante se determina a partir del
rendimiento en tres aspectos del trabajo. Existe una calificación de exámenes parciales, que cuenta con
30% del total, la calificación de trabajo de taller con 20%, y el examen final con el 50%. Diseñar un
algoritmo para calcular la calificación final del estudiante.
MAS EJERCICIOS DE CICLOS
Una agencia de venta de autos paga a su personal de ventas un salario de $800,00 mas una comisión
de $170,00 por auto vendido mas un 5% del valor de venta. Diseñar un algoritmo para calcular el
salario de un vendedor en un determinado mes, conociendo el nº de automóviles vendidos y el total del monto
de ventas.
Suscribirse a:
Entradas (Atom)



