












































































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
apuntes de la materias informatica descricion general
Tipo: Ejercicios
1 / 84
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!













































































ISSN 1316-
Centro de Enseñanza Asistida por Computador (CENEAC) Caracas, Junio 2011
Algoritmos y Programación Guías de Clase
Profa. Yusneyi Y. Carballo Barrera ND 2011- 02
UCV. Algoritmos y Programación Tema 1. Introducción a la Programación
TEMA 1. INTRODUCCIÓN A LA PROGRAMACIÓN
Objetivos:
Presentación de los alumnos, la docente, la materia y sus condiciones. Conversar sobre conceptos elementales asociados a introducción a la programación y enfoques de programación
Contenido:
Presentación y Verificación de lista de alumnos, Expectativas, Distribución del grupo (Primeros / Repitientes) Lectura de la Nota Informativa, Preguntas y Aclaraciones Conceptos Básicos sobre el computador, hardware, software, algoritmos, programas, lenguajes de programación, compiladores e intérpretes Enfoques para solucionar un problema. Características deseables en un programa. Fases del ciclo de vida del Software.
1.1. Conceptos Básicos sobre el Computador
Computador u Ordenador
Dispositivo electrónico utilizado para procesar datos en forma automática y obtener resultados los cuales pueden a su vez ser organizados y analizados para producir información. El computador está conformado por una parte física llamada hardware y por una parte lógica o de programas llamada software.
Datos
Es una representación de hechos, conceptos o instrucciones, organizados de manera que se puedan procesar, interpretar o comunicar por medios humanos o automáticas. Los datos, son por ejemplo, representaciones de las características de una persona, objeto, concepto o hecho.
Los datos se pueden introducir en el computador como entrada y se procesan para producir resultados e información de salida.
Hardware
En un computador se refiere a todos los componentes físicos que lo conforman, los aparatos propiamente dichos.
Como ejemplo tenemos los chips de los procesadores (CPU, procesadores matemáticos, procesadores de video), las tarjetas (la tarjeta madre, las tarjetas de memoria como la memoria RAM, las tarjetas de video, red, sonido), las unidades de almacenamiento (disco duro, disquete, cd, dvd, pen drive), los dispositivos periféricos (ratón, teclado, monitor, impresora)
Software
Son los programas que permiten utilizar los recursos del computador. Programación, soporte lógico, parte no-mecánica o no-física de un sistema. Es un conjunto de programas y procedimientos que se incluyen en un computador o equipo con el fin de hacer posible el su uso eficaz de dicha máquina. Son las instrucciones responsables de que el hardware (la máquina) realice su tarea.
Como ejemplo tenemos los sistemas operativos , el software de aplicación , el software utilitario y los lenguajes de programación.
UCV. Algoritmos y Programación Tema 1. Introducción a la Programación
Sistema Operativo:
Software básico encargado de controlar diferentes procesos en el computador mediante tres grandes funciones:
Coordinar y manipular el hardware del computador: como los procesadores, la memoria, las impresoras, las unidades de almacenamiento, el monitor, el teclado o el ratón; Organizar los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, cds; Gestionar los errores de hardware y la pérdida de datos.
Software de Aplicación:
Programa informático diseñado para facilitar al usuario la realización de un determinado tipo de trabajo. Algunas son aplicaciones desarrolladas 'a la medida' que ofrecen una gran potencia y soluciones eficientes ya que están exclusivamente diseñadas para resolver un problema específico. Son ejemplos de este tipo de software los programas que realizan tar eas concretas como manejo de nómina, análisis de estadísticas, manejo de almacén, etc.
Software Utilitario:
Son programas que facilitan el uso del computador como herramienta para solucionar actividades generales como la edición de textos o la digitalización de materiales. En muchos casos los programas utilitarios son agrupados en paquetes integrados de software, por ejemplo el Microsoft Office o el OpenOffice, donde se ofrece soluciones más generales, pero se incluyen varias aplicaciones(procesador de textos, de hoja de cálculo, manejador de base de datos, correo electrónico, visor de imágenes, etc.).
Lenguajes de Programación:
Sirven para escribir programas que permitan la comunicación usuario/máquina y la soluciones de problemas utilizando las ventajas, poder de cálculo, procesamiento y almacenamiento del computador.
Diferencias entre los tipos software
El software de aplicación se diferencia de un sistema operativo (que hace funcionar al ordenador), de una utilidad (que realiza tareas de mantenimiento o de uso general) y de un lenguaje (con el cual se crean los programas informáticos), en que suele resultar una solución informática para la automatización de tareas en un área determinada (procesamiento de texto, edición de imágenes, estadística, manejo de correspondencia, etc).
1.2. Estructura Funcional de un Computador (arquitectura Von Neumann)
La arquitectura Von Neumann se refiere a las arquitecturas de computadoras que utilizan el mismo dispositivo de almacenamiento para las instrucciones y para los datos (a diferencia de la arquitectura Harvard). El término se acuñó en el año 1945, escrito por el conocido matemático John von Neumann, que propuso el concepto de programa almacenado.
Los ordenadores con arquitectura Von Neumann constan de las siguientes partes: La Memoria Principal , La Unidad Central de Proceso (CPU o Procesador), su vez formada por: La Unidad Lógico-Aritmética (ALU) La Unidad de Control (UC) Los Dispositivo de Entrada/Salida , formados por: El Bus de datos o unidades de intercambio que proporciona un medio de transporte de los datos entre las distintas partes. La Memoria Secundaria Los Dispositivos Periféricos
UCV. Algoritmos y Programación Tema 1. Introducción a la Programación
1.3. Conceptos Básicos sobre Construcción de Programas
Algoritmo ( algorithm )
Es un conjunto bien definido de procedimientos lógicos o matemáticos que se pueden seguir para resolver un problema en un número finito de pasos.
Es una lista finita de pasos que plantean una solución a un problema, preferiblemente pasos los más cortos y simples posibles. Para un mismo problema pueden existir muchos algoritmos que conducen a su solución. La elección del mejor algoritmo está guiada por criterios de eficiencia y eficacia, entre otras características deseables.
Elementos de un algoritmo:
Datos de entrada Proceso o pasos que resuelven el problema Datos de salida
Características de un algoritmo:
Un algoritmo debe ser preciso e indicar el orden de realización de cada paso. El resultado del algoritmo debe estar definido. Si se sigue un algoritmo dos veces con los mismos datos de entrada, se debe obtener el mismo resultado cada vez. Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento, es decir, se debe tener un número finito de pasos.
Pseudo-código ( pseudo-code )
En un algoritmo expresado de manera más formal. Se utiliza como una representación intermedia, antes de traducirlo o codificarlo con un lenguaje de programación. En las clases de Algoritmo y Programación utilizaremos el pseudo-código para expresar las soluciones algorítmicas creadas.
Lenguaje de programación ( programming language )
En computación es cualquier lenguaje artificial que puede utilizarse para definir una secuencia de instrucciones, a fin de qu e puedan ser procesadas por un computador.
Conjunto de caracteres, reglas, palabras y operaciones con significados previamente asignados y que permiten escribir programas.
La definición de un lenguaje de programación cubre tres aspectos:
Los principales tipos de lenguajes de programación utilizados en la actualidad son:
Lenguajes de máquina Lenguajes de bajo nivel y traductores (lenguaje ensamblador, compiladores, intérpretes) Lenguajes de lato nivel (C++, C#, Visual Basic, Java, Turbo Pascal, Prolog, SQL, HTML, JavaScript, VBScript, PHP, VB.Net, Fortran, Delphi, etc.)
UCV. Algoritmos y Programación Tema 1. Introducción a la Programación
Programa ( program )
En Computación, es el conjunto de instrucciones que definen la secuencia de eventos que un computador debe ejecutar para llevar a cabo una tarea, realizando cálculos y suministrando resultados.
Grupo de instrucciones compuestas con la finalidad de resolver un problema específico mediante el uso de un computador. Un programa está codificado en un lenguaje que la máquina es capaz de entender y procesar.
Es la traducción de un algoritmo o de un pseudo-código utilizando un lenguaje de programación.
Programación ( programming )
Proceso que comprende el análisis del problema, diseño de la solución, escritura o desarrollo del programa, prueba del programa y su corrección.
Es la disciplina de la Computación que trata el desarrollo de programas.
Aspectos que miden la Calidad en un programa
Algunos aspectos que se consideran para medir la calidad de un programa, también llamados características deseables en un programa , son:
Legibilidad Robustez Eficacia Eficiencia Adaptabilidad Portabilidad Reusabilidad del software
Capacidad de Abstracción
Mecanismo intelectual principal en la actividad de la programación, el cual durante la etapa de análisis del problema permite la separación de los aspectos relevantes de los irrelevantes en el contexto estudiado. Por ejemplo, si el problema consiste en determinar cuál es la persona más alta del salón, lo relevante es la estatura de cada persona, y no color de ojos, talla d e calzado, etc.
Enfoques para solucionar un problema
Fases en la resolución de Problemas
Resolver problemas a través de un computador se basa principalmente en analizar, diseñar, escribir y ejecutar un programa con pasos orientados a solucionar el problema. Podemos considerar como fases de resolución de un problema las siguientes:
Para Investigar y Meditar
UCV. Algoritmos y Programación Tema 2. Tipos de Datos
TEMA 2. TIPOS DE DATOS
Objetivos: Conocer sobre conceptos asociados a tipos de datos elementales, su clasificación, operadores y su precedencia, la conversión implícita y explícita de datos.
Puntos: Conceptos de tipo de dato, variables, constantes, precedencia. Clasificaciones de los tipos de datos. Tipos de datos elementales (entero, real, caracter, string , booleano, sub-rango, enumerado) y sus operaciones. Precedencia de operadores. Conversión de tipos, implícita y explícita.
2.1. Conceptos Básicos
Dato
Diferentes entidades u objetos de información con que trabaja un programa. Determina el conjunto de valores que la entidad puede almacenar, los operadores que puede usar y las operaciones definidos sobre ellos.
Tipo de Dato
Ejemplos de Clasificaciones para los Tipos de datos
Tipos de datos primitivos o elementales : tipos básicos incluidos en cada lenguaje de programación. En el lenguaje de programación Java, también son llamados tipos integrados Tipos de datos estructurados : tipos basados o construidos a partir de tipos de datos primitivos (por ejemplo, arreglo, registro, archivo, conjunto). Tipos de datos abstractos (TDA): tipos de datos definidos por el usuario y las operaciones abstractas aplicadas sobre ellos. Los TDA apoyan el concepto de ocultamiento de la información. Esconden los detalles de la representación y permiten el acceso a los objetos sólo a través de sus operaciones, son ejemplos las representaciones de los TDA Lista, Cola, Pila, Árbol y la representación que hace el Enfoque Orientado a Objeto mediante atributos y métodos.
Esquemas de organización de los tipos de datos: Esquema 1 Tipo de Componentes Número de Entero, Real (numéricos) componentes (^) Carácter, Cadenas de caracteres o String (caracteres) 1 Elemental Lógico o Booleano Enumerado Subrango TIPOS DE DATOS Tipo de Componentes
n Estructurado
Homogéneos ( todos los elementos iguales ) Archivos Arreglos Heterogéneos ( aceptan elementos distintos ) Registros
UCV. Algoritmos y Programación Tema 2. Tipos de Datos
Esquema 2 Estándar Entero ( Integer ) Real ( Real ) Carácter ( Character ) Lógico ( Boolean ) No estándar Enumerado ( Enumerated ) Subrango ( Subrange )
TIPOS DE DATOS Estáticos
Arreglo ( Vector / Matrix ) Registro ( Record ) Archivo ( File - fichero) Conjunto ( Set ) Cadena de caracteres ( String ) Dinámicos Lista (y las variaciones pila, cola, dipolo) Lista enlazada Árbol Grafo
Variable
Nombre asignado a una entidad que puede adquirir un valor cualquiera dentro de un conjunto de valores. Es decir, una entidad cuyo valor puede cambiar a lo largo del programa. En un programa de computador se puede asumir que una variable es una posición de memoria donde los valores asignados pueden ser reemplazados o cambiados por otros valores durante la ejecución del programa.
Constante
Nombre asignado a una entidad al cual se asigna un valor que mantiene sin cambios durante el programa.
Operaciones de los tipos de datos elementales
Operación : Acción por medio de la cual se obtiene un resultado de un operando. Ejemplos: sumar, dividir, unir, restar. Operando : número, texto, valor lógico, variable o constante sobre la cual es ejecutada una operación. Operador : símbolo que indica la operación que se ha de efectuar con el operando, por ejemplo, + / - * > == ≠ ≥ =
Expresiones
Son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones o acciones. Cada expresión toma un valor que se determina evaluando los valores de sus variables, constantes y operadores.
Una expresión consta de operandos y operadores.
Las expresiones se pueden clasificar en Aritméticas, Lógicas o Carácter. Así tenemos:
Una expresión aritmética, arroja resultados de tipo numérico ( entero o real ) Una expresión relacional o una expresión lógica, arrojan resultados de tipo lógico ( booleanos ) Una expresión carácter, arroja resultados de tipo carácter (caracteres simples o string )
2.2 Precedencia de Operadores
Prioridad definida entre los operadores. Indica en qué orden debe aplicarse diferentes operaciones sobre un conjunto de valores. Permiten aplicar los operadores en el orden correcto.
Algunos comentarios sobre tipos de datos y precedencia:
UCV. Algoritmos y Programación Tema 2. Tipos de Datos
+ Concatenación Operador de cadena
Permite la concatenación de valores de tipo entero, real o lógico con valores de tipo caracteres o con cadenas de caracteres (string). El resultado de la concatenación es un string. Se utiliza principalmente para crear mensajes.
= Asignación Menor prioridad. La asignación de valores o resultados a una variable o constante es la última operación que se realiza. En expresiones donde se combinen operadores se evalúa primero los aritméticos, luego los relacionales y de último los operadores lógicos.
2.3 Conversión de Tipos
La conversión de tipos es el proceso de cambiar un valor de un tipo de dato a otro. Por ejemplo, el string o cadena "1579874" se puede convertir a un número entero, o se puede cambiar un número real a un String o a un Entero.
Las conversiones de tipo pueden ser de ampliación o de restricción :
Las conversiones de ampliación transforman un valor de un tipo de dato a otro más grande, por ejemplo transforman un valor entero (conjunto más pequeño) a un número real (que es un conjunto más grande). Estas conversiones no producen desbordamiento o pérdida de datos. Las conversiones de restricción permiten transformar un valor de un conjunto de datos más grande a uno más pequeño, por ejemplo, transformar un número real a un entero o transformar una cadena a carácter. Si transformamos el valor X = 23,14587 a entero obtendríamos como resultado 23, lo cual significa pérdida de información ya que se pierde la precisión de los decimales; transformar el string m = ”casa” a carácter significaría quedarnos solo con el carácter „c‟ del inicio de la cadena. Estos tipo de transformación son poco convenientes ya que pueden implicar pérdida de información y solo deben ser usados cuando sea estrictamente necesario.
Las conversiones por ampliación o por restricción pueden a su vez ser explícitas o implícitas.
Las conversiones con pérdida de información tienen lugar cuando el tipo de datos original no tiene un análogo en el tipo de destino de la conversión. Por ejemplo, la cadena "Pedro" no se puede convertir en un número. En estos casos, algunos lenguajes de programación devuelven un valor predeterminado cuando se usa la función de conversión de tipo, por ejemplo el valor NaN o el número cero, indicando con estos valores que la conversión de tipos falló.
Algunos tipos de conversiones, como de una cadena a un número, tardan bastante tiempo. Cuantas menos conversiones utilice el programa, más eficaz será.
La mayoría de las conversiones, como la asignación de un valor a una variable, se producen automáticamente. El tipo de datos de la variable determina el tipo de datos de destino de la conversión de expresión. En otros casos, la conversión implícita viene dada tanto por los tipos de datos como por los operadores utilizados.
Para convertir explícitamente una expresión a un tipo de datos concreto, se utilizan funciones que se asumen predefinidas y disponibles en el pseudocódigo, colocando entre paréntesis el dato, variable o expresión que se va a convertir. Las conversiones explícitas requieren más escritura que las implícitas, pero proporcionan más seguridad con respecto a los resultados. Además, las conversiones explícitas pueden controlar conversiones con pérdida de información.
UCV. Algoritmos y Programación Tema 2. Tipos de Datos
El comportamiento de la conversión explícita depende del tipo de datos originales y del tipo de datos de destino.
En el ejemplo siguiente se muestra conversiones de datos implícitas y explícitas, usando valores entero , string , caracter y real.
Entero A; Real D; Caracter C; String pal; // se declaran las variables indicando su tipo de dato
A = 5; // a la variable A se le asigna el valor entero 5
D = i; // a la variable real D se le asigna el entero 5, el cual cambia por conversión implícita al valor 5,
C = „a‟; // a la variable C se le asigna el carácter „a‟
pal = “los árboles ” + C; // a pal se le asigna la unión de una cadena y un carácter, resultando, “los árboles c”
// hay conversión implícita de datos por que el carácter C se convierte al concatenar // en string, por lo tanto estamos concatenando con el + dos cadenas, no sumando
A = aEntero( D + 3,7 ); // el resultado 8,2 (5,0 + 3,7) es convertido explícitamente de real a entero, asignando
// a la variable A solo la parte entera del resultado, es decir A = 8 y perdiéndose la // parte decimal o 0,
C = aCaracter(A); // transforma el número entero 8 a carácter, asignando entonces C = „8‟
Consulta en guías de tus amigos, en apuntes de semestres pasados o investigando en libros:
Para investigar y meditar
UCV. Algoritmos y Programación Tema 3. Acciones Elementales
3.2. Operación de Lectura o Entrada Simple ( Leer – read )
La operación de lectura o de entrada de datos permite leer valores y asignarlos a constantes o a variables.
Almacena en una variable un valor extraído desde un dispositivo externo, del cual hacemos abstracción aunque generalmente es el teclado cuando se está programando. En pseudocódigo usamos la acción Leer para obtener los datos que nos suministra el usuario del algoritmo, datos necesarios para el procesamiento o cálculo posterior.
Los datos de entrada se introducen en el computador mediante dispositivos de entrada (teclado, pantalla, unidades de disco, escáneres, entre otros). Los datos de salida pueden aparecer en un dispositivo de salida (pantalla, impresora, cornetas, entre otros).
Comportamiento: La acción elemental Leer cambia el valor en la variable o variables que se está usando en la instrucción de lectura. Luego de leer un valor, el valor de la variable cambia en forma similar a si se hiciera una asignación.
La notación algorítmica (sintaxis) que utilizaremos para la asignación es:
Leer(
Ejemplo: sean las variables:
Entero I; Real X, Y Caracter c;
Acciones de lectura:
Leer(I); Leer(X, Y); Leer(c);
NOTA : Cuando vamos a leer datos suministrados por el usuario, la acción Leer suele trabajar en conjunto con la acción Escribir, ya que primero le tenemos que informar al usuario que datos necesita el algoritmo o que datos le estamos solicitando, para luego leerlos, por ejemplo:
Escribir(“Suministre la edad de los 2 estudiantes”); Leer(edad1, edad2);
Respetando la secuencia lógica de acciones, primero le decimos al usuario que datos estamos necesitando y luego los leemos.
3 .3. Operación de Escritura o Salida Simple ( Escribir – write )
Permite mostrar el valor de una variable, constante o expresión. Cuando estamos programando la acción Escribir trasmite un valor a un dispositivo externo, por ejemplo lo muestra por la pantalla del computador. En pseudocódigo la acción Escribir nos permite mostrar mensajes o mostrar los resultados al usuario del algoritmo.
Comportamiento: muestra mensajes y resultados almacenados en variables, constantes o expresiones.
La notación algorítmica (sintaxis) que utilizaremos para la asignación es:
Escribir(< Nombre Variable, Constante o Expresión>);
Ejemplo:
Entero i; // se declara la variable i = 4; // a la variable i se le asigna el valor 4 Escribir(“El valor de la variable i es: ” + i ); // este escribir muestra un mensaje equivalente a: // El valor de la variable i es: 4
UCV. Algoritmos y Programación Tema 3. Acciones Elementales
Ejercicios para Consolidar:
1.2. Calcular un descuento del 25% para el precio de un curso y mostrarle al usuario cuanto se ahorra y cuanto va a pagar 1.3. Convertir una cantidad de segundos, suministrados como un valor entero positivo, a minutos y a horas.
Traduce las siguientes expresiones matemáticas en forma de expresiones algorítmicas:
AGUILAR, Luis Joyanes. "Programación en C++. Algoritmos, Estructuras de Datos y Objetos". Editorial McGraw-Hill, 2000. Capítulo 3, Prioridad y Expresiones en C++. Páginas 65 - 79 DEITEL & DEITEL. "Cómo Programar en Java". Editorial Pearson Prentice Hall, 2004. Anexos A y B, , páginas 1191- 1193 RECOMENDACIÓN: toma nota y guarda las referencias de los libros o sitios Web que consultas, así ubicarlos fácilmente y usarlos en futuras consultas.
¿Te atreves a pasar?