









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
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
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
Descubre las mejores universidades de tu país según los usuarios de Docsity
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
Los seres humanos realizamos de manera cotidiana una serie de pasos, procedimientos o acciones que nos permiten realizar una actividad, alcanzar un resultado o resolver un problema. Esta serie de pasos los realizamos diariamente desde que comienza el día, por ejemplo, cuando nos levantamos, tomamos un baño, desayunamos, preparamos la comida, entre muchas otras actividades, seguimos una seria de pasos que al final nos permiten alcanzar un resultado. La realidad es que a cada momento aplicamos u
Tipo: Ejercicios
1 / 17
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
1.1. Algoritmo: Diagrama de flujo, Seudo código y Programa.
Un algoritmo se define como un conjunto de pasos, que ordenados lógicamente y ejecutados de forma secuencial permiten la solución de un problema. Aquí los problemas se miran como tareas a realizar en el computador, por lo tanto, en el algoritmo se orientan cada una de las acciones necesarias para que se ejecuten adecuadamente los procesos en el computador.
Problema de ejemplo: Se requiere calcular y mostrar el área de un triángulo.
En un algoritmo se indican cada una de las cosas que se deben hacer para resolver el problema. Para ello se debe analizar el problema como tal. En este caso se sabe que para calcular el área de un triángulo se requiere de dos datos la medida de la base del triángulo y la medida de la altura; de aquí se deduce que una de las cosas a realizar es la obtención de dichas medidas. También se conoce que el área se obtiene a través de una fórmula matemática, lo que dice que otra tarea a realizar es el cálculo de la fórmula del área del triángulo. Por último, el problema plantea mostrar el resultado, que directamente se convierte en la tarea faltante para la solución del problema:
Estos realmente son los pasos a seguir para resolver el problema, pero para que sea correcto nos falta una de las partes más importantes resaltadas en la definición de algoritmo: su orden lógico, luego el algoritmo correcto sería el siguiente:
El diagrama de flujo y el seudo código se consideran como un paso intermedio entre el algoritmo y el programa que representa la forma adecuada como se deben escribir las instrucciones que el computador debe ejecutar. En un algoritmo es indispensable determinar tres tipos de acciones que marcan la esencia de la solución de un problema que son las Entradas, los Procesos y las Salidas. Estas acciones se relacionan directamente con el manejo de la información en el computador, cuando se ingresa información al computador, cuando se procesa la información en el computador y cuando se muestran los resultados obtenidos de dichos procesos.
El diagrama de flujo presenta los algoritmos de forma gráfica acompañado de partes escritas donde los gráficos representan acciones como entrada, salida o proceso y los escritos representan los componentes de dichas acciones. El diagrama de flujo del problema de ejemplo sería el que aparece en la figura.
Diagrama de Flujo
El seudo código presenta los algoritmos en un lenguaje natural al programador sin reglas estrictas de escritura, y especificando tareas concretas con frases cortas y significativas. En el seudo código se emplean técnicas de programación como la utilización de variables, el uso de operadores, etc.
Seudo código Algoritmo area Inicio real area, base, altura Escribir “Ingrese base: “ Leer base Escribir “Ingrese altura : “ Leer altura area = (base * altura) / 2 Escribir “El area es : “,area Fin
Inicio
real area, base, altura
area = (base * altura )/
base
“Ingrese base :”
“Ingrese altura :”
altura
“El area es : “,area
Fin
una nueva clasificación de lenguajes de medio nivel, pero el hecho que el computador actúe como su propio traductor realmente los deja en un único bajo nivel.
Los lenguajes de alto nivel se acercan en su estructura a los lenguajes naturales humanos, facilitando la comprensión de los programadores y haciendo más eficiente el proceso de la programación. Desaparecen por completo las instrucciones numéricas binarias y se utilizan palabras comunes a los lenguajes naturales y con significado como PRINT, LOAD, etc. son muchos los lenguajes desarrollados en este nivel, con diversas filosofías y estructuras, pero todos buscando facilitar el trabajo de los programadores y el beneficio de las personas y empresas que utilizan sus programas.
1.2.2. Dominio de aplicación o finalidad.
Un segundo criterio para clasificar los lenguajes es su dominio de aplicación o finalidad. Algunos tipos a destacar son: Lenguaje generalizado o multipropósito (Java, C++, Python), Lenguaje científico (R, Algol, Apl), Lenguaje de gestión o comercial (Cobol, Builder C++, RPG, Delphi), Lenguaje de inteligencia artificial (Prolog, Lisp, CLOS), Lenguaje de simulación (Simula, GPSS, SIMSCRIPT), Lenguajes de Datos (Ps-Algol, SQL, Daplex, FDL), Lenguajes Visuales (Visual Basic, Visual FoxPro), Lenguajes Metalenguajes (HTML, XML, SGML), Lenguajes Script (VISUALSCRIPT, JAVASCRIPT, PERLSCRIPT), entre otros.
1.2.3. Modelo computacional, paradigma o enfoque.
El tercer criterio de clasificación de carácter importante es su modelo computacional, paradigma o enfoque. Los paradigmas tienen en cuenta entre otras cosas los elementos estructurales y los elementos metodológicos con que fueron desarrollados los lenguajes. Considerando estos elementos podemos tener Lenguajes imperativos, Lenguajes declarativos, Lenguajes funcionales, Lenguajes de programación lógica , Lenguajes orientados a objetos y Lenguajes concurrentes.
Los lenguajes imperativos como en sus orígenes con la máquina de Von Newman, reciben los programas como conjuntos de instrucciones que se ejecutan secuencialmente, aunque existen herramientas para cambiar dicha secuencialidad. Son características de estos lenguajes las estructuras de datos, los procedimientos y las funciones, el flujo de datos y las sentencias de asignación.
Los Lenguajes declarativos , basan el interés de sus programas en lo que se desea obtener a través del mismo y en menor porcentaje en el paso a paso del proceso. SQL, es uno de los principales lenguajes pertenecientes a este grupo junto a todos los orientados a la interacción con las bases de datos.
Los lenguajes funcionales , reciben en esencia los programas como un conjunto de funciones disponibles a ser invocadas en el momento oportuno de utilización. Son sus características principales las expresiones invariantes, la programación sin asignación, manejo de almacenamiento implícito y funciones que interactúan con expresiones y estructuras de datos.
El cálculo de predicados y las relaciones matemáticas, la utilización de hechos y reglas para presentar los problemas y el uso de deducciones para la respuesta de consultas son las principales características de los lenguajes de programación lógica.
Los programas compuestos por una colección de objetos que intercambian mensajes, propiedades, y datos pertenecen a los lenguajes orientados a objetos , cuyas características principales son los objetos, el encapsulamiento y los tipos abstractos de datos (TAD), las clases, la herencia y el polimorfismo, entre otros.
Por último, los lenguajes concurrentes se caracterizan por la orientación a la comunicación, la sincronización entre procesos y el acceso exclusivo a datos compartidos. Emplean las nociones de eventos, secciones críticas y exclusión.
1.2.4. Desarrollo Histórico.
De acuerdo a su desarrollo y evolución histórica los lenguajes también pueden clasificarse como Lenguajes de 1ª. Generación, Lenguajes de 2ª. Generación, Lenguajes de 3ª. Generación, Lenguajes de 4ª. Generación y Lenguajes de 5ª. Generación.
1.2.5. Desarrollo histórico de los lenguajes de programación.
Los lenguajes de programación nacen como consecuencia de la invención de los computadores. Un computador es una máquina que por sí sola no es capaz de efectuar tarea alguna, por el contrario, requiere de un conjunto de instrucciones que le permitan actuar. Estas instrucciones corresponden a secuencias numéricas binarias que agrupadas de la manera correcta logran que el computador capture, procese y muestre información.
El hombre tiene entonces la necesidad de dar las instrucciones para poner a su servicio esta poderosa herramienta, surgiendo los primeros problemas. Memorizar esas grandes secuencias de ceros (0) y unos (1), o detectar un error en los extensos programas eran serios inconvenientes para los primeros programadores de computador. Los lenguajes de programación surgen como solución a los problemas planteados, siendo similares a los lenguajes naturales, pero simplificados y con ciertas reglas, que permiten trasmitir las instrucciones necesarias al computador para operar correctamente.
Los primeros programas de computador utilizados se veían como planillas de control de personal de alguna empresa, además que algunos computadores requerían de botones especiales para realizar algunas tareas. En el año de 1944 el ingeniero alemán Zuse diseño un lenguaje que denominó Plankalkül, lenguaje que ya utilizaba variables, valores estructurados, además incluía procedimientos inclusive con parámetros.
Al inicio de los años 50, se popularizan los lenguajes ensamblador intentando explotar al máximo el poder de los computadores. La mayoría de las aplicaciones se relacionaban con procesamiento numérico y los programadores convertían fórmulas numéricas en instrucciones de ensamblador. Este trabajo da origen a los códigos automáticos (“autocodes”), considerados por muchos como los primeros lenguajes de programación. A finales de la década FORTRAN agregó al uso de identificadores de la A a la Z y fórmulas simples, los procedimientos y control de flujo.
En la década de los años 60 con la aparición de lenguajes como COBOL, Lisp, Algol, PL/I y BASIC se incrementó su poder expresivo y fueron reforzadas algunas áreas de trabajo: La recursión, Los datos estructurados y la interacción con el usuario.
En la década de los años 70 se popularizan los lenguajes Pascal, C y Algol 68, que utilizan la programación estructurada, situación que se traduce en programas de mejor portabilidad o menor dependencia de la máquina.
información, y en los mismos es posible encontrar momentos para recibir información, momentos para procesar información y momentos para mostrar la información bien sea en su estado original o en el estado resultante de los procesos ejecutados sobre sí. La información es construida a través de los datos y es almacenada en la memoria del computador o en dispositivos de almacenamiento de acuerdo su propia necesidad.
1.3.1. Datos.
Un dato es simplemente una unidad de información, que en términos de Hardware se considera como la representación binaria de una letra, un número, un color, un nombre, un código, etc. Esta representación binaria es almacenada en la memoria del computador para que pueda ser procesada posteriormente por medio de instrucciones a través de un lenguaje de programación.
1.3.1.1. Tipos de Datos.
Los tipos de datos definen el formato de información que va a ser utilizado por el lenguaje en determinado momento. De forma general se tienen tres tipos de datos: numéricos, alfanuméricos y lógicos. Los datos numéricos representan cantidades numéricas en diferente presentación con los que se puede realizar cualquier tipo de operación matemática. Los datos alfanuméricos representan combinaciones de letras, números y caracteres especiales. Los datos lógicos almacenan valores lógicos de falso o verdadero.
Cuando se trabaja con diagramas de flujo o seudo código se utilizan como tipos de datos: entero, real, caracter, cadena y lógico.
Los datos de tipo Entero son números enteros y los datos de tipo Real son números reales que se diferencian simplemente por la utilización de parte decimal para el caso de los reales.
Los datos de tipo caracter almacenan un caracter cualquiera perteneciente al conjunto de caracteres del código ASCII utilizando su representación numérica, o bien utilizando el caracter como tal. Los datos de tipo cadena almacenan en cambio un conjunto de caracteres.
1.3.1.2. Declaración de Constantes y Variables.
Las Constantes y las Variables son localizaciones de la memoria del computador donde se almacena información de tipo de dato específico. Físicamente son lo mismo pero su utilización es lo que las diferencia.
En una constante se almacena información que no cambia durante el tiempo en que se ejecute el programa que la utilice. De la misma forma en una variable se almacena información que cambia algunas veces durante el tiempo en que se ejecute el programa que la utilice.
Para declarar variables se debe utilizar el siguiente formato dependiendo si quiere definir una o varias del mismo tipo:
tipoDato nombreVariable tipoDato nombreVariable1, nombreVariable2, … , nombreVariableN
Ejemplos de declaración de variables:
entero edad real area, base, altura
Para declarar constantes se debe utilizar el siguiente formato:
tipoDato NOMBRECONSTANTE = valorConstante
El valor utilizado puede ser la representación numérica de la constante o la representación alfanumérica que estará entre comillas sencillas o dobles si es caracter o cadena. Ejemplos de declaración de constantes:
real PI = 3, caracter JORNADA = ‘T’ cadena UBICACION = “Preferencial” entero NOEXISTE = -
Existen algunas reglas que se deben tener en cuenta al momento de asignar el nombre de una variable o una constante:
Los nombres son una combinación de caracteres de letras y números, que no utiliza caracteres especiales a excepción del caracter de subrayado _. (El espacio en blanco es un caracter especial) El nombre debe comenzar por una letra. Para su identificación el nombre de la variable debe escribirse en minúsculas y el nombre de la constante en MAYÚSCULAS. La longitud del nombre de la variable puede ser de más de 8 caracteres pero en algunos lenguajes y sistemas operativos solo tienen significado para el programa los 8 primeros. En el caso de los lenguajes de programación los nombres no pueden ser palabras reservadas o propias del lenguaje. Se sugiere a los programadores utilizar nombres de variables relacionados a su contenido, para ayudar en labores de corrección o de mantenimiento de los programas.
1.3.2. Operadores de información.
Los operadores de información son símbolos utilizados para representar operaciones que se pueden aplicar a los datos almacenados en variables y constantes para obtener algún resultado. Los diagramas de flujo proporcionan al programador un buen grupo de operadores que le permiten realizar varias tareas importantes de programación como: la construcción de expresiones, la comparación de entidades, la manipulación de información, etc. Los paréntesis redondos () son considerados como operadores generales utilizados en cualquier expresión.
1.3.3. Expresiones.
Una expresión es la combinación correcta de los operadores, variables y constantes del programa en busca de un resultado. De esta forma se pueden tener dos tipos de expresiones: las expresiones aritméticas y las expresiones lógicas.
1.3.3.5. Operadores relacionales.
Los operadores relacionales realizan comparaciones entre dos variables o dos expresiones y generan un valor de tipo lógico (Falso y Verdadero) como resultado. Los operadores son:
> Mayor que < Menor que >= Mayor igual <= Menor igual == Igual ! = Diferente
Ejemplos:
si los valores de las variables a=5, b=3 y c=
a + 2 > b-1 Verdadero a < c Verdadero a + b >= a - c Verdadero c <= a Falso a + 1 == c – b Falso b != c Verdadero
1.3.3.6. Operadores lógicos.
Los operadores lógicos comparan dos o más expresiones de relación y generan un resultado lógico de acuerdo a la tabla de verdad del operador utilizado.
Estos operadores son:
&& Y o And || O u Or ! NO o Not
Ejemplos:
si los valores de las variables a=5, b=3 y c=
a + 2 > b-1 && a < c Verdadero a + b >= a – c || c <= a Verdadero a + 2 > b-1 || a < c Verdadero a + b >= a – c && c <= a Falso !(a + 1 == c – b) Verdadero !( b != c) Falso
1.3.3.7. Jerarquía de Símbolos.
Para la evaluación expresiones aritméticas y lógicas, existe una jerarquía, que el lenguaje tiene en cuenta para entregar un resultado. Algunos consideran a los paréntesis como operadores destructores de jerarquía, porque rompen con la evaluación normal de la expresión. Otros en cambio los consideran como operadores de primer nivel o mayor jerarquía.
Los operadores se evalúan en orden estricto de acuerdo a su nivel de jerarquía. Se ejecutan primero las operaciones con los operadores de mayor jerarquía y así sucesivamente en el orden y el tipo de evaluación correspondiente, hasta que se pueda obtener un resultado.
OPERADOR EVALUACIÓN JERARQUÍA ( ) Izquierda a derecha Mayor ! derecha a izquierda ^ Izquierda a derecha
1.3.4. Entrada de datos.
Para representar la lectura de datos desde el teclado hacia el computador se debe utilizar el nombre de la variable dentro del símbolo del diagrama de flujo correspondiente.
nombreVariable
1.3.5. Salida de datos.
Para mostrar información en la pantalla del computador se debe combinar los nombres de las variables y los mensajes a mostrar entre comillas dentro del símbolo del diagrama correspondiente separados según el caso por comas.
“Mensaje”, nombreVariable, “Mensaje”, NOMBRECONSTANTE, …
1.3.6. Simbología de los Diagramas de flujo.
Cada una de las instrucciones que pueden ser ejecutadas en un computador son representadas a través de diferentes gráficos que en conjunto representarán un algoritmo. A continuación, se describe la simbología utilizada para crear un diagrama de flujo.
Símbolo Explicación Símbolo utilizado para marcar el inicio y el fin del diagrama de flujo. Se escribe la palabra dentro del símbolo según corresponda.
Símbolo utilizado para expresar la entrada de los datos. Expresa lectura. Se escribe el nombre de la variable correspondiente.
Regla 6. Cuando una hoja no es suficiente para albergar el diagrama de flujo se deben utilizar conectores y enumeración conveniente. Regla 7. Un símbolo del diagrama de flujo no puede recibir más de una línea de flujo.
Ejercicios Propuestos
Ejercicio nivel básico.
De los siguientes nombres de variables y constantes identifique cuales son correctos y cuales incorrectos:
a. edad b. SUELDO_basico c. dias trabajdos d. conta e. _sexo f. 1total g. for h. nombre-estudiante i. PEN j. edad_niño k. área l. cantidad m. apellid n. 3Nota o. TITULO
Ejercicios nivel Intermedio.
Determine cuál es el resultado de la evaluación de las siguientes expresiones, dados los valores de las variables x=4, y=7, z=2, a=5, b=3 y c=9:
a. x + y % 2 * a b. c / b * y + a - 3 c. c >= (x % 3 * c) / b d. y == 0 && x < a e. a < b * 2 && c != z f !(a>b) || (x – z) != (c – 1) g. x < y - 4 || a == z h. a % x < c && !(b >= y) i. b > x+ j. y * z – 1 / x
Ejercicios nivel avanzado.
a. Elabore el algoritmo que, dado el código de un estudiante y las 4 notas obtenidas en la materia de introducción a la programación, con valores equivalentes al 15%, 20%, 25% y 40%, muestre el código del estudiante y la definitiva obtenida de acuerdo a los porcentajes de las notas.
b. Elabore el algoritmo que, dados los valores correspondientes al radio y la altura de un cilindro, muestre los valores del volumen y del área del cilindro.
c. Elabore el algoritmo que, dada la velocidad a la que se desplaza un auto, expresada en kilómetros / hora, muestre su correspondiente valor expresado en millas / hora.
d. Una institución benéfica europea ha recibido tres donaciones en soles, dólares y marcos. La donación será repartida en tres rubros: 60% para la implementación de un centro de salud, 40% para un comedor de niños y el resto para gastos administrativos. Diseñe un algoritmo que determine el monto en euros que le corresponde a cada rubro.
e. En una competencia atlética de velocidad el tiempo se mide en minutos, segundos y centésimas de segundo y, el espacio recorrido se mide en metros. Diseñe un algoritmo para determinar la velocidad promedio de un atleta en km/h. Considere que: 1 hora = 60 minutos, 1 minuto = 60 segundos, 1 segundo = 100 centésimas de segundo, 1 kilómetro = 1000 metros.
b. Evaluar la siguiente expresión! ((7 ^ 2 < 77 % 46) && (4 < 3 ^ 2))
Solución:
!((7 ^ 2 < 77 % 46) && (4 < 3 ^ 2)) !((49 < 77 % 46) && (4 < 3 ^ 2)) !((49 < 77 % 46) && (4 < 9)) !((49 < 31) && (4 < 9)) !(Falso && (4 < 9)) !(Falso && Verdadero) !(Falso) Verdadero
Ejercicios ejemplo nivel avanzado.
a. Escribir un algoritmo que capture el peso, expresado en gramos, de un artículo cualquiera de una tienda y lo exprese en términos de kilogramos y de libras.
Solución:
Datos de entrada. El dato de entrada requerido es el peso en gramos del artículo.
Procesos. Para convertir la cantidad en gramos a kilogramos y a libras se utilizan las siguientes fórmulas: peso/1000 y peso/500 respectivamente.
Salidas. Se requieren los resultados obtenidos en la resolución de las fórmulas utilizadas para la conversión.
b. Escribir un programa que capture la temperatura del ambiente en grados centígrados y la exprese en grados kelvin y fahrenheit.
Solución:
Datos de entrada. El dato de entrada requerido es la temperatura del ambiente expresada en grados centígrados.
Procesos. Para convertir los grados centígrados en grados kelvin y grados fahrenheit se utilizan las siguientes fórmulas: °K=°C+275.15 y °F=(°C*9/5)+32 respectivamente.
Salidas. Se requieren los resultados obtenidos en la resolución de las fórmulas utilizadas para la conversión.