Download ESTRUCTURAS LÓGICAS DE CONTROL
Document related concepts
no text concepts found
Transcript
Introducción a la Computación Unidad 1: INTRODUCCIÓN AL CONCEPTO DE ARCHIVOS. COMUNICACIÓN Y REDES. Semana 01 Introducción a la Computación Semana 01 Objetivos: • Introducción al concepto de archivos. Definir los conceptos generales de diseño de Archivos. Explicar Casos Prácticos de Aplicación. Describir la Administración y Procesamiento de Archivos Introducción a los conceptos de Archivos Base de Datos Conjunto de registros (unidades de información relevante) ordenados y clasificados para su posterior consulta, actualización o cualquier tarea de mantenimiento mediante aplicaciones específicas Colección o recopilación de datos relacionados y organizados en forma electrónica. Una guía telefónica es un ejemplo. Introducción a los conceptos de Archivos Archivo Información que puede almacenarse en una computadora. Los archivos están constituidos por el software y los datos. conjunto de registros referidos a objetos del mismo tipo. Es un conjunto de datos relacionados de manera lógica, como puede ser el conjunto de los nombres, direcciones y teléfonos de los empleados de una empresa determinada. Introducción a los conceptos de Archivos Registro conjunto de datos elementales referidos a un mismo objeto y por tanto constituyen una unidad para su proceso. En el mundo de las bases de datos, cada una de las fichas que componen una tabla. Introducción a los conceptos de Archivos Campo Mínima unidad de información a la que se puede acceder cada uno de los datos que forman un registro (o ficha). Por ejemplo, en la ficha de cada proveedor tendríamos campos como su nombre, su dirección, su teléfono, etc. Introducción a los conceptos de Archivos Los Campos pueden ser: NUMERICO (N) CARÁCTER (C) FECHA O DATE (D) LOGICO (L) ETC. La longitud de un campo se determina en bytes. Introducción a los conceptos de Archivos Tabla: un conjunto de registros que tienen una cierta homogeneidad (los datos de nuestros proveedores). un conjunto de filas (Registros) y columnas (campos) Introducción a los conceptos de Archivos Base de Datos: un conjunto de tablas relacionadas entre si. Introducción a los conceptos de Archivos Base de Datos TABLA REGISTROS CAMPOS EMPLEADOS Empleado C Empleado B Empleado A Código: Apellido: Nombre: Dirección: Teléfono: Sueldo: Introducción a los conceptos de Archivos Ventajas de la Base de Datos Consistencia de Datos. Menor Proliferación de Datos. Facilidad para definir nuevas aplicaciones Control de Seguridad Introducción al concepto de archivo Archivo Conjunto de Registros referidos a objetos del mismo tipo. Introducción al concepto de archivo Digitalización Señal que utiliza valores discretos en lugar de un espectro continuo de valores Video Audio Imagen Introducción al concepto de archivo Introducción al concepto de archivo TIPOS DE ARCHIVOS: •ARCHIVOS DE DATOS. •ARCHIVOS DE PROGRAMAS. •ARCHIVOS DE TEXTO. •ARCHIVOS DE IMÁGENES. •ARCHIVOS DE AUDIO. •ARCHIVOS DE VIDEO. Introducción al concepto de archivo Introducción al concepto de archivo Introducción al concepto de archivo Introducción al concepto de archivo Base de Datos TABLA REGISTROS CAMPOS EMPLEADOS Empleado C Empleado B Empleado A Código: Apellido: Nombre: Dirección: Teléfono: Sueldo: Introducción al concepto de archivo Introducción al concepto de archivo Servidor de Archivos, dispositivo de almacenamiento de archivos en una red de área local, o en Internet, al que los distintos Usuarios de la Red pueden Acceder, en función de los privilegios que les hayan sido dados por parte del administrador. Introducción al concepto de archivo un Servidor de Archivos es un dispositivo más complejo que no sólo almacena archivos sino que También los Administra y los mantiene en orden a medida que los usuarios de la red los solicitan y los modifican. Introducción al concepto de archivo Servidor de Archivos, suele ser un ordenador o computadora de altas prestaciones, con gran capacidad de almacenamiento, que está dedicado exclusivamente a las funciones de administración de archivos compartidos. Administración y Procesamiento de Archivos Aplicación sistemática de una serie de operaciones sobre un conjunto de datos. generalmente por medio de máquinas. para explotar la información que estos datos representan. Data Warehouse - Data Marts - Data Mining Data Warehouse - Data Marts - Data Mining Data Warehouse - Data Marts - Data Mining Introducción a la Computación Unidad 4: REDES. Semana 04 Introducción a la Computación Semana 02 Objetivos: • Redes Definir el concepto de Redes. Explicar los Tipos de Topologías. Describir los Tipos de Cableado. REDES las redes de ordenadores surgieron como una necesidad de interconectar los diferentes host de una empresa o institución para poder así compartir recursos y equipos específicos REDES "Una red es un conjunto de computadoras (dos como mínimo), que se unen a través de medios guiados (físicos) y no guiados (inalámbricos) se complementa con equipos (hardware) y Protocolos (software), para compartir información y recursos, con el fin de llevar a cabo una actividad o labor de forma eficiente y eficaz." Clasificación de las redes según la tecnología de transmisión: Redes de Broadcast. Aquellas redes en las que la transmisión de datos se realiza por un sólo canal de comunicación, compartido entonces por todas las máquinas de la red. Cualquier paquete de datos enviado por cualquier máquina es recibido por todas las de la red. Redes Point-To-Point. Aquellas en las que existen muchas conexiones entre parejas individuales de máquinas. Para poder transmitir los paquetes desde una máquina a otra a veces es necesario que éstos pasen por máquinas intermedias, siendo obligado en tales casos un trazado de rutas mediante dispositivos routers. REDES Clasificación de las redes según su tamaño y extensión: Local Area Network (LAN) Metropolitan Area Network (MAN) Wide Area Network (WAN) REDES Clasificación de las redes según su tamaño y extensión: •Local Area Network (LAN) •Metropolitan Area Network (MAN) •Wide Area Network (WAN) Redes de área local, son redes de ordenadores cuya extensión es del orden de entre 10 metros a 1 kilómetro. Son redes pequeñas, habituales en oficinas, colegios y empresas pequeñas, que generalmente usan la tecnología de broadcast , siendo velocidades de transmisión típicas de LAN las que van de 10 a 100 Mbps (Megabits por segundo). REDES Clasificación de las redes según su tamaño y extensión: •Local Area Network (LAN) •Metropolitan Area Network (MAN) •Wide Area Network (WAN) Redes de área Metropolitana, son redes de ordenadores de tamaño superior a una LAN, soliendo abarcar el tamaño de una ciudad. Son típicas de empresas y organizaciones que poseen distintas oficinas repartidas en un mismo área metropolitana, por lo que, en su tamaño máximo, comprenden un área de unos 10 kilómetros. REDES Clasificación de las redes según su tamaño y extensión: •Local Area Network (LAN) •Metropolitan Area Network (MAN) •Wide Area Network (WAN) Redes de área extensa, tienen un tamaño superior a una MAN, y consisten en una colección de host o de redes LAN conectadas por una subred. Esta subred está formada por una serie de líneas de transmisión interconectadas por medio de routers, aparatos de red encargados de rutear o dirigir los paquetes hacia la LAN Internet Una Internet es una red de redes, vinculadas mediante ruteadores, gateways. Un gateway o pasarela es un computador especial que puede traducir información entre sistemas con formato de datos diferentes Redes inalámbricas Las redes inalámbricas son redes cuyos medios físicos no son cables de cobre de ningún tipo, lo que las diferencia de las redes anteriores. Están basadas en la transmisión de datos mediante ondas de radio, microondas, satélites o infrarrojos. Clasificación de las redes según el tipo de transferencia de datos que soportan: Redes de transmisión simple. Son aquellas redes en las que los datos sólo pueden viajar en un sentido. Redes Half-Duplex. Aquellas en las que los datos pueden viajar en ambos sentidos, pero sólo en uno de ellos en un momento dado. Es decir, sólo puede haber transferencia en un sentido a la vez. Redes Full-Duplex. Aquellas en las que los datos pueden viajar en ambos sentidos a la vez. Modelo de Referencia OSI la Organización Internacional para la Normalización (ISO) realizó varias investigaciones acerca de los esquemas de red. La ISO reconoció que era necesario crear un modelo que pudiera ayudar a los diseñadores de red a implementar redes que pudieran comunicarse y trabajar en conjunto (interoperabilidad) y por lo tanto, elaboraron el modelo de referencia OSI en 1984. Tipos de Topologías La disposición de los diferentes componentes de una red se conoce con el nombre de topología de la red. La topología idónea para una red concreta va a depender de diferentes factores, como el número de máquinas a interconectar, el tipo de acceso al medio físico que deseemos, etc. Tipos de Topologías Topología de bus Topología de anillo (doble) Topología en estrella (extendida) Topología en árbol Topología en malla completa Topología de red celular Topología irregular Topología de bus todos sus nodos conectados directamente a un enlace y no tiene ninguna otra conexión entre nodos. Físicamente cada host está conectado a un cable común, por lo que se pueden comunicar directamente, aunque la ruptura del cable hace que los hosts queden desconectados. Es una topología antigua ya no muy utilizada se presenta en equipos denominados hub. Topología de anillo Se compone de un solo anillo cerrado formado por nodos y enlaces, en el que cada nodo está conectado solamente con los dos nodos adyacentes. Los dispositivos se conectan directamente entre sí por medio de cables en lo que se denomina una cadena margarita. Para que la información pueda circular, cada estación debe transferir la información a la estación adyacente. Topología de anillo doble Una topología en anillo doble consta de dos anillos concéntricos, donde cada host de la red está conectado a ambos anillos, aunque los dos anillos no están conectados directamente entre sí. Es análoga a la topología de anillo, con la diferencia de que, para incrementar la confiabilidad y flexibilidad de la red, hay un segundo anillo redundante que conecta los mismos dispositivos. Topología en estrella tiene un nodo central desde el que se irradian todos los enlaces hacia los demás nodos. Por el nodo central, generalmente ocupado por un Switch, pasa toda la información que circula por la red. La ventaja principal es que permite que todos los nodos se comuniquen entre sí de manera conveniente. La desventaja principal es que si el nodo central falla, toda la red se desconecta. Topología en estrella extendida La topología en estrella extendida es igual a la topología en estrella, con la diferencia de que cada nodo que se conecta con el nodo central también es el centro de otra estrella. Generalmente el nodo central está ocupado por un switch, y los nodos secundarios por hubs o switch. La ventaja de esto es que el cableado es más corto y limita la cantidad de dispositivos que se deben interconectar con cualquier nodo central. Topología en árbol Es similar a la topología en estrella extendida, salvo en que no tiene un nodo central. En cambio, un nodo de enlace troncal, generalmente ocupado por un switch, desde el que se ramifican los demás nodos. Topología en malla completa cada nodo se enlaza directamente con los demás nodos. Las ventajas son que, como cada nodo se conecta físicamente a los demás, creando una conexión redundante, si algún enlace deja de funcionar la información puede circular a través de cualquier cantidad de enlaces hasta llegar a destino. Además, esta topología permite que la información circule por varias rutas a través de la red Topología de red celular La topología celular está compuesta por áreas circulares o hexagonales, cada una de las cuales tiene un nodo individual en el centro. La topología celular es un área geográfica dividida en regiones (celdas) para los fines de la tecnología inalámbrica. En esta tecnología no existen enlaces físicos; sólo hay ondas electromagnéticas. Topología irregular En este tipo de topología no existe un patrón obvio de enlaces y nodos. El cableado no sigue un modelo determinado; de los nodos salen cantidades variables de cables. Las redes que se encuentran en las primeras etapas de construcción, o se encuentran mal planificadas, a menudo se conectan de esta manera. Las Tecnologías LAN más comunes son: Ethernet: topología de bus lógica y en estrella física o en estrella extendida. Token Ring: topología de anillo lógica y topología física en estrella. FDDI: topología de anillo lógica y topología física de anillo doble. Equipo de conectividad Por lo general, para redes pequeñas, la longitud del cable no es limitante para su desempeño; pero si la red crece, tal vez llegue a necesitarse una mayor extensión de la longitud de cable o exceder la cantidad de nodos especificada. Existen varios dispositivos que extienden la longitud de la red, donde cada uno tiene un propósito específico. Sin embargo, muchos dispositivos incorporan las características de otro tipo de dispositivo para aumentar la flexibilidad y el valor. Equipo de conectividad •Switches •Repetidores •Puentes (bridges) •Ruteadores (Router) •Compuertas (Gateway) Son un punto central de conexión para nodos de red que están dispuestos de acuerdo a una topología física de estrella. Equipo de conectividad •Switches •Repetidores •Puentes (bridges) •Ruteadores (Router) •Compuertas (Gateway) Es un dispositivo que permite extender la longitud de la red; amplifica y retransmite la señal de red. Equipo de conectividad •Switches •Repetidores •Puentes (bridges) •Ruteadores (Router) •Compuertas (Gateway) Dispositivo que conecta dos LAN separadas para crear lo que aparenta ser una sola LAN. Equipo de conectividad •Switches •Repetidores •Puentes (bridges) •Ruteadores (Router) •Compuertas (Gateway) Similares a los puentes, operan a un nivel diferente. Requieren que cada red tenga el mismo sistema operativo de red, para poder conectar redes basadas en topologías lógicas diferentes como Ethernet y Token Ring. Equipo de conectividad •Switches •Repetidores •Puentes (bridges) •Ruteadores (Router) •Compuertas (Gateway) Permite que los nodos de una red se comuniquen con tipos diferentes de red o con otros dispositivos. Cableado Estructurado La LAN debe tener un sistema de cableado que conecte las estaciones de trabajo individuales con los servidores de archivos y otros periféricos. Si sólo hubiera un tipo de cableado disponible, la decisión sería sencilla. Lo cierto es que hay muchos tipos de cableado, cada uno con sus propios defensores y como existe una gran variedad en cuanto al costo y capacidad, la selección no debe ser un asunto trivial. Tipos de cableado •Cable de par trenzado. •Cable coaxial. •Cable de fibra óptica. Es con mucho, el tipo menos caro y más común de medio de red Tipos de cableado •Cable de par trenzado. •Cable coaxial. •Cable de fibra óptica. Es tan fácil de instalar y mantener como el cable de par trenzado, y es el medio que se prefiere para las LAN grandes. Tipos de cableado •Cable de par trenzado. •Cable coaxial. •Cable de fibra óptica. Tiene mayor velocidad de transmisión, es inmune a la interferencia de frecuencias de radio y capaz de enviar señales a distancias considerables sin perder su fuerza. Tiene un costo mayor Introducción a la Computación ALGORITMOS SEMANA 05 Introducción a la Computación Semana 05 Objetivos: • Desarrollo de conceptos básicos: - Algoritmos - Pseudocodigo - Diagrama de Flujo - Programación (en Java y C++) • Visualización de Datos • Empleo de Comentarios MÉTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA Método de las 6’D Etapa 01 Descripción Problema Etapa 02 Definición Solución Etapa 03 n veces Diseño Solución Etapa 04 Ingeniería reversa Desarrollo Solución Etapa 05 Depuración Pruebas Etapa 06 Document. Método de las 6’D Etapas para la solución de problemas Diseño solución ALGORITMO Desarrollo solución PROGRAMACION Lenguajes de Programación: Herramientas: PSEUDOCODIGO JAVA DIAGRAMAS DE FLUJO LENGUANJE C++ ALGORITMO - CONCEPTOS BÁSICOS ALGORITMO Definición: El algoritmo constituye una lista completa de pasos secuenciales y una descripción de datos necesarios para resolver un determinado problema. • Una lista de pasos secuenciales que deben ser ejecutados. • Una descripción de los datos que son manipulados por estos pasos. ALGORITMO - CONCEPTOS BÁSICOS Algoritmo Características: • Una descripción de acciones que deben ser ejecutadas (Pasos Secuenciales). • Una descripción de los datos que son manipulados por estas acciones (Estructuras de Datos). • Un algoritmo debe ser preciso indicando el orden de realización de cada paso. • Todo algoritmo debe ser finito. Si se sigue un algoritmo este debe terminar en algún momento. • Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces se debe obtener el mismo resultado. ALGORITMO - CONCEPTOS BÁSICOS Algoritmo Características: • Un algoritmo puede tener o no datos de entrada. • Un algoritmo producirá uno o mas datos de salida. • Los datos de entrada y salida deben almacenarse en variables. • El resultado que se obtenga debe satisfacer los requerimientos de la persona interesada (efectividad). • Debe ser estructurado. Es decir, debe ser fácil de leer, entender, usar y cambiar si es preciso. ALGORITMO - CONCEPTOS BÁSICOS Algoritmo Herramientas: Se dispone de diversas herramientas para ayudar a los programadores a desarrollar los algoritmos. Algoritmos Herramientas: Pseudocódigo Diagrama de flujo ALGORITMO - CONCEPTOS BÁSICOS Algoritmo - PSEUDOCÓDIGO Definición: Un pseudocódigo permite expresar un algoritmo con palabras en castellano que son semejantes a las instrucciones de un lenguaje de programación. Algoritmo Mensaje ENTRADA: sueldo SALIDA: sueldo INICIO REAL sueldo sueldo = 0 LEER sueldo sueldo = sueldo * 0.85 ESCRIBIR sueldo FIN ALGORITMO - CONCEPTOS BÁSICOS Algoritmo - PSEUDOCÓDIGO Reglas básicas ENTRADA En este se consideran las variables que serán utilizadas para almacenar los datos ingresados por el usuario SALIDA En este se consideran las variables que serán utilizadas para almacenar los datos que serán mostrados al usuario INICIO/FIN Estas reglas especifican el inicio y el final del algoritmo. Todas las instrucciones se colocan entre estas reglas y constituyen el cuerpo del algoritmo. En el cuerpo del algoritmo se encontrarán los pasos a seguir para el desarrollo de la solución. ALGORITMO - CONCEPTOS BÁSICOS Algoritmo – DIAGRAMA DE FLUJO Definición: Es una herramienta que mediante el empleo de símbolos especializados y líneas de flujo, nos permite ilustrar el flujo lógico de pasos y datos de un algoritmo. INICIO ENTERO i LEER i i<100 i = i*1.20 IMPRIMIR FIN ESTRUCTURAS DE DATOS Símbolos básicos INICIO / FIN Este símbolo permite marcar el inicio y el final del algoritmo ENTRADA Este símbolo es empleado para el ingreso de datos y la visualización de la información que resulta del procesamiento SALIDA Este símbolo es empleado para la visualización de la información que resulta del procesamiento DECISION Permite seleccionar entre dos posibles alternativas de solución PROCESO Empleado para signar valores a variables y resultado de operaciones matemáticas FLUJOS (LINEAS) Permiten unir los diagramas y mostrar la secuencia lógica de la solución del problema CONECTOR Permiten unir los diagramas y mostrar la secuencia lógica de la solución del problema ALGORITMO - CONCEPTOS BÁSICOS PROGRAMACION La programación es la traducción del modelamiento y los algoritmos en sentencias que la computadora puede comprender y ejecutar. En términos sencillo es la acción de escribir programas para una computadora utilizando alguno de los lenguajes de programación existentes. ALGORITMO - CONCEPTOS BÁSICOS PROGRAMACION – Java Definición: Java es un lenguaje de Programación Orientado a Objetos desarrollado por Sun Microsystems. Es un lenguaje de propósito general que puede ser utilizado para el desarrollar cualquier tipo de aplicaciones. Estructura básica: package domApli ; class PrgBienvenida { public static void main (String[] args) { } } ALGORITMO - CONCEPTOS BÁSICOS PROGRAMACION – C++ Definición: “C” es un lenguaje de Programación de propósito general desarrollado en los laboratorios de Bell en 1983. C++ es un lenguaje orientado a objetos y es una versión ampliada y mejorada del Lenguaje C. Estructura básica: #include <iostream> using namespace std ; int main( ) { return 0 ; } ESTRUCTURAS LÓGICAS VISUALIZACIÓN DE DATOS Definición: La visualización de datos nos permite mostrar los datos a través de la pantalla de la computadora. ESTRUCTURAS LÓGICAS Visualización de datos En Pseudocódigo En DF nombreVariable ESCRIBIR nombreVariable ESCRIBIR x + 2 ESCRIBIR “Hola” En Java – Clase System x+2 “Hola” En “C” – cout<< System.out.print (nombreVariable) ; cout << nombreVariable ; System.out.print (x + 2); cout << (x + 2); System.out.print ( “Hola” ) ; cout << “Hola” ; Previamente antes de la declaración de main() debe colocarse #include <iostream.h> y using std::cout; ESTRUCTURAS LÓGICAS Visualización de datos Ejemplo: Desarrollo una solución que permita mostrar el saludo “Bienvenidos al desarrollo de algoritmos” INICIO Algoritmo Saludo ENTRADA: SALIDA: “Bienvenidos al desarrollo de algoritmos” INICIO ESCRIBIR “Bienvenidos al desarrollo de algoritmos” FIN “Bienvenidos al desarrollo de algoritmos” FIN ESTRUCTURAS LÓGICAS JAVA package dominioDeLaAplicacion ; class PrgSaludo { } public static void main (String [ ] args ) { System.out.print (“Bienvenidos al desarrollo de algoritmos”) ; } “C” #include <iostream> using std::cout ; int main ( ) { cout << “Bienvenidos al desarrollo de algoritmos” ; return 0; } ESTRUCTURAS LÓGICAS Ejemplo: Desarrollo una solución que permita mostrar el saludo: “Bienvenidos al desarrollo de algoritmos estamos creando una segunda línea” package domApli; class PrgSaludo2 { JAVA } public static void main (String [ ] args ) { System.out.println ( “Bienvenidos al desarrollo de algoritmos”) ; System.out.print ( “Estamos mostrando datos en la segunda línea”) ; } #include <iostream> using std::cout ; using std::endl ; C++ int main ( ) { cout << “Bienvenidos al desarrollo de algoritmos” << endl ; cout << “Estamos mostrando datos en la segunda línea”; return 0; } ESTRUCTURAS LÓGICAS Visualización de datos / Modificadores \n \t \n : Permite crear una línea adicional, similar al System.out.println y a endl \t : Permite hacer una tabulación. package domApli; class PrgSaludo2 { JAVA } public static void main (String [ ] args ) { System.out.print (“Bienvenidos al desarrollo de algoritmos \n estamos creando una segunda línea”) ; } #include <iostream> using std::cout ; C++ int main () { cout << “Bienvenidos al desarrollo de algoritmos \n estamos creando una segunda línea” ; return 0; } ESTRUCTURAS LÓGICAS Visualización de datos / Modificadores \n \t \t : Permite crear un espacio de tabulación antes de iniciar el párrafo que esta a continuación Nombre: Edad: Danae Flores 11 años package domApli; class PrgSaludos { public static void main (String [ ] args) { System.out.print ( “nombre: \ t Danae Flores \ n ”) ; System.out.print (“Edad: \ t 11 años”) ; } JAVA } #include <iostream> using std::cout ; C++ int main ( ) { cout << “nombre: \ t Danae Flores \ n ” ; cout << “Edad: \ t 11 años” ; return 0 ; } ESTRUCTURAS LÓGICAS COMENTARIOS En Pseudocódigo En DF Este es un comentario COMENTARIO Este es un comentario En Java En “C++” // Este es un comentario de una línea // Este es un comentario de una línea / * Este es un comentario para múltiples líneas */ / * Este es un comentario para múltiples líneas */ ESTRUCTURAS LÓGICAS /* Este programa, permitira mostra un mensaje empleando los modificadores \n y \t */ public static void main (String [ ] args ) { // Visuaización de datos System.out.print (“nombre: \ t Danae Flores \n Edad: \ t 11 años”); JAVA } /* Este programa, permitira mostra un mensaje empleando los modificadores \n y \t */ C++ #include <iostream> using std::cout ; int main ( ) { // Visuaización de datos cout << “nombre: \ t Danae Flores \n Edad: \ t 11 años” ; return 0; } Introducción a la Computación ESTRUCTURAS DE SECUENCIA SEMANA 07 ESTRUCTURAS DE SECUENCIA • Tipos de Datos • Operadores Matemáticos • Operadores relacionales y lógicos • Estructuras de Datos: Variables y constantes • Ingreso de Datos ESTRUCTURAS DE SECUENCIA ESTRUCTURAS LOGICAS o DE CONTROL SECUENCIA: Ingresar Procesar Mostrar DECISIÓN If (Simples) If / else (Dobles) switch (Múltiples) CONTROL while do / while for ESTRUCTURA DE DATOS VARIABLES y CONSTANTES ARREGLOS ESTRUCTURAS DE SECUENCIA TIPOS DE DATOS PSEUDOCODIGO DF JAVA C++ REPRESENTA A: ENTERO int / long int / long Un numero entero REAL float /double float /double Un numero real (Con decimales) CARÁCTER char char Un solo carácter TEXTO String string Una cadena de caracteres LOGICO boolean bool Un valor VERDADERO o FALSO Tenga presente que las palabras reservadas para el Pseudocódigo, DF, Java y C++, son reglas o pautas empleadas por estos, por lo que no podrán ser usadas como nombre de variable o constante. ESTRUCTURAS DE SECUENCIA OPERADORES ARITMETICOS PSEUDOCODIGO DF JAVA C++ + * / RESTO + * / % + * / % REPRESENTA A: Suma Resta Multiplicación División Resto / Modulo ESTRUCTURAS DE SECUENCIA Importante • Los operadores que están encerrados entre paréntesis se evalúan primero. Si existen paréntesis anidados las expresiones mas internas se evalúan primero. • Orden de prioridad: 1. * , / 2., RESTO 3. + , • En caso de coincidencia de operadores de igual prioridad en una expresión, el orden de prioridad será de izquierda a derecha. ESTRUCTURAS DE SECUENCIA OPERADORES RELACIONALES, LOGICOS y DE ASIGNACION PSEUDOCODIGO DF JAVA C++ REPRESENTA A: < < < Menor que > > > Mayor que = == == Igual que <= <= <= Menor o igual que. >= >= >= Mayor o igual que <> != != Distinto de. NO (Not) ! ! Negación. Y (And) && && Conjunción. O (Or) || || Disyunción. = = = Asignación ESTRUCTURAS DE DATOS VARIABLES Y CONSTANTES Variables : Una variable es una estructura de datos (lineal-estática) que permite reservar un espacio con la finalidad de almacenar temporalmente los datos. Una variable sólo puede almacenar un solo dato a la vez y del mismo tipo; Declaración, Almacenamiento de datos e inicialización. Constantes Una constate es una estructura de datos que permite almacenar un valor fijo, el cual va a ser empleado sin lugar a modificación durante el desarrollo del algoritmo. Java C : final pi = 3.1416 : const pi = 3.1416 ESTRUCTURAS DE DATOS Variables Declaración: Significa definir el nombre de la variable y el tipo de dato que podrá almacenar. Pseudocódigo / DF Java C++ tipoDato nombreDeVariable : ENTERO nota1 : int nota1 : int nota1 TEXTO nombre String nombre string nombre CARACTER tipo char tipo char tipo Inicialización : Significa asignar un valor inicial a la variable, el cual luego puede ser modificado mediante el almacenamiento de datos. nombreDeVariable = valor inicial Pseudocódigo / DF Java C++ : nota1 = 0 : nota1 = 0 : nota1 = 0 nombre = “ “ nombre = “ “ nombre = “ “ tipo = ‘ ’ tipo = ‘ ’ tipo = ‘ ’ Asignación : Significa dar un valor a la variable durante el desarrollo del algoritmo. Pseudocódigo / DF Java C++ nombreDeVariable = valor : nota1 = 10 : nota1 = 10 : nota1 = 10 nombre = “ Luis “ nombre = “ Luis “ nombre = “ Luis “ tipo = ‘A’ tipo = ‘A’ tipo = ‘A’ ESTRUCTURAS DE DATOS Prob. 1 : Desarrollo una solución que permita sumar los números 10 y 15 y mostrar el resultado INICIO Algoritmo Suma ENTRADA: SALIDA: suma INICIO ENTERO num1, num2, suma num1 = 10 num2 = 15 suma = num1 + num2 ESCRIIBIR suma FIN ENTERO num1, num2, suma num1 = 10 num2 = 15 suma = num1 + num2 suma FIN ESTRUCTURAS DE SECUENCIA “C” JAVA package domApli; class PrgSuma { public static void main (String [ ] args) { } } #include <iostream> using std::cout; int main ( ) { // declaración int num1, num2, suma; // declaración int num1, num2, suma; // asignación num1=10; num2=15; // asignación num1=10; num2=15; // operación suma = num1 + num2; // operación suma = num1 + num2; // Visualización de resultados System.out.print (suma); // Visualización de resultados cout <<suma ; return 0; } ESTRUCTURAS DE SECUENCIA Prob. 2: Desarrollo una solución que permita calcular el área de un cuadrado sabiendo que tiene lado = 10. INICIO Algoritmo AreaCuadrado ENTRADA: SALIDA: area INICIO ENTERO lado, area lado = 10 area = lado * lado ESCRIIBIR area FIN ENTERO lado, area lado = 10 area = lado * lado area FIN ESTRUCTURAS DE SECUENCIA “C” JAVA package domApli; class PrgAreaCuadrado { public static void main (String [ ] args) { // declaración int lado, area; int lado, area; lado = 10; // operación area = lado * lado; // Visualización de resultados System.out.print (“El area es: ” + area); } int main ( ) { // declaración // asignación } #include <iostream> using std::cout; // asignación lado = 10; // operación area = lado * lado; // Visualización de resultados cout << “El area es: ” << area ; return 0; } ESTRUCTURAS DE SECUENCIA Ingreso de datos Definición: Este permite ingresar datos de diferente tipo a través de un dispositivo de entrada de una computadora (el teclado). ESTRUCTURAS DE SECUENCIA Ingreso de datos En Pseudocódigo En DF LEER nombreVariable En Java – Clase Lectura nombreVariable = Lectura.leerInt () ; nombreVariable = Lectura.leerlong (); nombreVariable = Lectura.leerfloat () ; nombreVariable = Lectura.leerDouble () ; nombreVariable = Lectura.leerChar () ; nombreVariable = Lectura.leerString () ; nombreVariable En “C” cin >> nombreVariable ; Previamente antes de la declaración del método main() debe colocarse #include <iostream> y using std::cin; ESTRUCTURAS DE SECUENCIA Prob. 3: Desarrollo una solución que permita ingresar y mostrar el nombre de un alumno INICIO Algoritmo MostrarNombre ENTRADA: nombre SALIDA: nombre INICIO TEXTO nombre LEER nombre ESCRIIBIR nombre FIN TEXTO nombre nombre nombre FIN ESTRUCTURAS DE SECUENCIA “C” JAVA package domApli; import biblioteca.Lectura ; #include <iostream> using std::cout; using std::cin; class PrgMostrarNombre { public static void main (String [ ] args) { String nombre; //Ingreso de datos System.out.print (“Ingrese el nombre: “); nombre = Lectura.leerString(); System.out.print (“El nombre es: ” + nombre); } } int main ( ) { string nombre; //Ingreso de datos cout <<“Ingrese el nombre: “; cin >> nombre; cout << “El nombre es: ” << nombre ; return 0; } ESTRUCTURAS DE SECUENCIA Prob. 4: Desarrollo una solución que ingresar el nombre y dos notas de un alumno y mostrar su nombre y el promedio obtenido: (nota1+nota2)/2 INICIO Algoritmo NombrePromedio ENTRADA: nombre, nota1, nota2 SALIDA: nombre, promedio INICIO TEXTO nombre ENTERO nota1, nota2 REAL promedio LEER nombre, nota1, nota2 promedio = (nota1 + nota2) / 2 ESCRIIBIR nombre, promedio FIN TEXTO nombre REAL promedio ENTERO nota1, nota2 nombre, nota1, nota2 promedio = (nota1 + nota2) / 2 nombre, promedio FIN ESTRUCTURAS DE SECUENCIA Intentalo…!!! 1.- Se requiere mostrar el resultado de sumar, multiplicar, restar y dividir dos números 121236 y 735 2.- Se requiere ingresar un mensaje por teclado y mostrarlo por la pantalla 3.- Convertir y mostrar una cantidad expresada en dólares en su equivalente en Nuevos Soles. Ingresar la cantidad en dólares y el tipo de cambio. 4.- Calcular la nota final de un alumno, empleando la siguiente formula: n f= (n1+n2+n3+(n4*2)) 5 5.- Calcular el sueldo de un obrero y calcular un descuento del 5% por concepto de canasta de fin de año. Mostrar el sueldo inicial, el descuento y el sueldo a cobrar. 6.- Convertir ña temperatura de grados Celsius a grados Fahrenheit, de acuerdo a la formula: F= (9/5)*C+32 Introducción a la Computación ESTRUCTURAS DE DECISION SI – FIN SI SEMANA 08 ESTRUCTURAS LÓGICAS DE DECISION ESTRUCTURA LÓGICA DE DECISIÓN SIMPLE (SI.. FINSI) Definición: Una estructura de decisión simple “SI... FINSI” permite alterar el flujo secuencial (o pasos secuenciales) de una solución ejecutando un conjunto de pasos adicionales si el resultado de una condición lógica es verdadera. PSEUDOCODIGO SI (condición) ENTONCES instrucciones... FINSI EXPLICACIÓN: Si la condición resulta verdadera, se ejecutan las instrucciones que se encuentran entre las reglas ENTONCES y FINSI. Si la condición resulta falsa, no se ejecutan las instrucciones que se encuentran entre las reglas ENTONCES y FINSI ESTRUCTURAS LÓGICAS DE DECISION Estructura Lógica de Decisión Simple (SI… FINSI) ESTRUCTURAS LÓGICAS DE DECISION Estructura Lógica de Decisión Simple (SI… FINSI) JAVA y C++ EXPLICACIÓN: if (condición) { sentencias... } Si la condición resulta verdadera, se ejecutan las sentencias que se encuentra entre las llaves { }. Si la condición resulta falsa, no se ejecutan las sentencias que se encuentran entre las llaves { }. ESTRUCTURAS LÓGICAS DE DECISION Problema 1: Calcular y mostrar el área de un cuadrado. Si el área del cuadrado resulta menor que 100, se deberá visualizar el mensaje “este cuadrado es pequeño”. INICIO Algoritmo AreaCuadrado2 ENTERO lado, area TEXTO mensaje ENTRADA: lado SALIDA: area, mensaje INICIO ENTERO lado, area TEXTO mensaje = “ “ LEER lado area = lado * lado lado area = lado * lado area < 100 F V mensaje = “Este cuadrado es pequeño” SI ( area < 100) ENTONCES mensaje = “Este cuadrado es pequeño” FINSI ESCRIBIR area, mensaje FIN mensaje FIN ESTRUCTURAS LÓGICAS DE DECISION JAVA package domApli; import biblioteca.Lectura; class PrgAreaCuadrado2 { public static void main (String [] args ) { String mensaje= “ “; int lado, area; System.out.print (“Ingrese el lado: “); lado = Lectura.leerInt(); area = lado * lado; //Estructura de Decisión if (area<100) { mensaje = “Este cuadrado es pequeño”; } System.out.print (mensaje); } } “C” #include <iostream> #include <string> using std::cout ; using std::cin ; using std::string; int main ( ) { string mensaje=“ “; int lado, area; cout <<“Ingrese el lado: “; cin >> lado; area = lado * lado; //Estructura de Decisión if (area<100) { mensaje = “Este cuadrado es pequeño”; } cout <<mensaje; return 0; } ESTRUCTURAS LÓGICAS DE DECISION Problema 2: Calcular la nota final (nf) de un alumno, sabiendo que tiene sólo dos notas. Si el alumno obtiene una nota final mayor a 13 se deberá visualizar un mensaje de felicitaciones INICIO Algoritmo NotaFinal ENTRADA: nota1, nota2 SALIDA: nf, mensaje=“ “ INICIO ENTERO nota1, nota2 REAL nf TEXTO mensaje LEER nota1, nota2 nf = (nota1 + nota2) / 2 SI ( nf > 13 ) ENTONCES mensaje = “Felicitaciones” FINSI FIN ESCRIBIR mensaje ENTERO nota1, nota2 REAL nf TEXTO mensaje= “ “ nota1, nota2 nf = (nota1 + nota2) / 2 nota > 13 mensaje = “Felicitaciones” mensaje FIN ESTRUCTURAS LÓGICAS DE DECISION JAVA Package domApli; import biblioteca.Lectura; class PrgNotaFinal { public static void main (String [] args) { #include <iostream> #include <string> using std::cout ; using std::cin ; using std::string; int main ( ) { String mensaje=“ ”; int nota1, nota2, nf; string mensaje=“ ”; System.out.print (“Ingrese la nota1: “); cout <<“Ingrese la nota1: “; System.out.print (“Ingrese la nota2: “); cout <<“Ingrese la nota2: “; nota1 = Lectura.leerInt(); int nota1, nota2, nf; cin >> nota1; nota2 = Lectura.leerInt(); cin >> nota2; nf = (nota1 + nota2) / 2; nf = (nota1 + nota2) / 2; //Estructura de Decisión Simple if (nf > 13){ Mensaje = “Felicitaciones”; } //Estructura de Decisión Simple if (nf > 13){ mensaje = “Felicitaciones”; } System.out.print (“Su promedio es: “ + nf + mensaje); }} cout <<“Su promedio es: “ + nf + mensaje); return 0; } ESTRUCTURAS LÓGICAS DE DECISION INTENTALO…!!! 1.- Calcular y mostrar el sueldo de un trabajador conociendo el número de horas trabajadas y su tarifa horaria, sabiendo que se debe descontar un 10% del sueldo por concepto de impuestos si éste es mayor de S/. 3000. 2.- Ingresar un numero y mostrar un mensaje si el numero es múltiplo de 3. 3.- Ingresar dos números y mostrar un mensaje si ambos son iguales. Introducción a la Computación ESTRUCTURAS DE DECISION SI – SINO - FIN SI SEMANA 09 ESTRUCTURAS LÓGICAS DE DECISION Estructura Lógica de Decisión Doble (SI/SINO) Definición: Una estructura de decisión doble “SI... SINO... FINSI” permite alterar el flujo secuencial (o pasos secuenciales) de una solución, ejecutando un conjunto de pasos dependiendo del resultado de una condición lógica. Si la condición resulta verdadera, se ejecuta un conjunto de pasos, y si la condición resulta falsa, se ejecuta otro conjunto de pasos. En ningún caso se podrá ejecutar ambos conjuntos de pasos a la vez. PSEUDOCODIGO EXPLICACIÓN: SI (condición) ENTONCES instrucciones... SINO instrucciones... FINSI Si la condición resulta verdadera, se ejecutan las instrucciones que se encuentran entre las reglas ENTONCES y SINO. Si la condición resulta falsa se ejecutan las instrucciones que se encuentran entre las reglas SINO y FINSI. Sólo se ejecuta uno de los grupos de instrucción, en ningún caso se podrá ejecutar ambos grupos. ESTRUCTURAS LÓGICAS DE DECISION Estructura Lógica de Decisión Doble (SI/SINO) ESTRUCTURAS LÓGICA DE DECISION Estructura Lógica de Decisión Doble (SI/SINO) JAVA y C if (condición) { sentencias... } else { sentencias... } EXPLICACIÓN: Si la condición resulta verdadera, se ejecutan las sentencias que se encuentran entre las llaves { } ubicadas después de la palabra reservada if. Si la condición resulta falsa, se ejecutan las sentencias que se encuentran entre las llaves { } ubicadas después de la palabra reservada else. ESTRUCTURAS LÓGICAS DE DECISION Problema 1: Calcular y mostrar la nota final de un alumno. Si la nota final (nf) es menor a 14 se deberá mostrar el mensaje “Desaprobado”, caso contrario se mostrará el mensaje “Aprobado”. Fórmula: nf = (n1+n2+n3) / 3. Algoritmo NotaFinal2 INICIO ENTRADA: nota1, nota2, nota3 SALIDA: nf, mensaje INICIO ENTERO nota1, nota2,nota3 REAL nf TEXTO mensaje LEER nota1, nota2, nota3 nf = (nota1 + nota2 + nota3 ) / 3 SI ( nf < 14 ) ENTONCES mensaje = “Desaprobado” SINO mensaje = “Aprobado” FINSI ESCRIBIR nf, mensaje FIN ENTERO nota1, nota2,nota3 REAL nf TEXTO mensaje nota1, nota2,nota3 nf = (nota1 + nota2 + nota3) / 3 V nota < 14 F mensaje=“Aprobado” mensaje=“Desaprobado” mensaje FIN ESTRUCTURAS LÓGICAS DE DECISION import biblioteca.Lectura; class PrgNotaFinal2 { public static void main (String[] args ) { String mensaje; int nota1, nota2, nota3 double nf ; System.out.print (“Ingrese la nota1: “); nota1 = Lectura.leerInt(); System.out.print (“Ingrese la nota2: “); nota2 = Lectura.leerInt(); System.out.print (“Ingrese la nota3: “); nota3 = Lectura.leerInt(); nf = (nota1+nota2+nota3) / 3; if (nf <14) { mensaje = “Desaprobado”; } else { mensaje = “Aprobado”; } } } System.out.print (“su nota final es: “ + nf + “, usted está “ + mensaje); #include <iostream> #include <string> using std::cout ; using std::cin ; using std::string; int main ( ) { string mensaje; int nota1, nota2, nota3; double nf; cout <<“Ingrese la nota1: “>>; cin >> nota1; cout << “Ingrese la nota2: “>>; cin >> nota2; cout <<Ingrese la nota3: “>>; cin >> nota3; nf = (nota1+nota2+nota3) / 3; if (nf <14) { mensaje = “Desaprobado”; } else { mensaje = “Aprobado”; } cout <<“su nota final es: “ + nf + “, usted está “ + mensaje; return 0; } ESTRUCTURAS LÓGICAS DE DESICION Problema 2: Ingrese un número y determine si el número ingresado es un número par o un número impar. Algoritmo NumPar INICIO ENTRADA: num SALIDA: mensaje INICIO ENTERO num TEXTO mensaje LEER num SI ( num RESTO 2 = 0 ) ENTONCES mensaje = “Es un numero par” SINO mensaje = “Es un numero impar” FINSI ESCRIBIR mensaje ENTERO num TEXTO mensaje LEER num F V num RESTO 2 = 0 mensaje=“Numero par” mensaje=“Numero impar” mensaje FIN FIN ESTRUCTURAS LÓGICAS DE DECISION “C” JAVA Import bibioteca.Lectura; class PrgNumPar { public static void main (String[] args ) { String mensaje; int numero; System.out.print (“Ingrese un numero: “); numero = Lectura.leerInt(); string mensaje; int numero; if (numero % 2 == 0) { mensaje = “Numero par”; } else { mensaje = “Numero impar”; } cout <<“Ingrese un numero: “; cin >> numero; System.out.print (“Usted ingreso el numero: “ + numero + “ ,es un ” + mensaje”); } #include <iostream> #include <string> using std::cout ; using std::cin ; using std::string; int main ( ) { } if (numero % 2 == 0) { Mensaje = “Es un numero par”; } else { Mensaje = “Es un numero impar”; } cout <<“Usted ingreso el numero: “ + numero + “ ,es un ” + mensaje; return 0; } ESTRUCTURAS LÓGICAS DE DECISION INTENTALO…!!! 1.- Calcular y mostrar el monto total a pagar por la compra de un artículo si se tiene que agregar el IGV. En caso que el monto total a pagar incluido IGV sea mayor a S/.500 nuevos soles se aplica un descuento de 8%, caso contrario el descuento será de 2%. 2.- Ingresar la edad de una persona y mostrar un mensaje expresando si es o no mayor de edad. 3.- Ingresar un numero y mostrar un mensaje si es par o impar. Introducción a la Computación ESTRUCTURAS DE DECISION MULTIPLES SI ANIDADOS SEMANA 10 ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE Estructura Lógica de Decisión Múltiple (SI Anidados) Definición: Una estructura de decisión múltiple “SI Anidados” permite alterar el flujo secuencial de una solución ejecutando un conjunto de pasos que dependen del resultado de evaluar diferentes condiciones lógicas dentro de estructuras de decisión simple o doble. PSEUDOCODIGO FORMATO EN PSEUDOCODIGO SI (condición1) ENTONCES instrucciones1… SINO SI (condición2) ENTONCES instrucciones2… SINO SI (condición3) ENTONCES instrucciones3… FINSI FINSI FINSI EXPLICACIÓN: En el pseudocódigo mostrado, se puede apreciar un ejemplo de una estructura múltiple “SI Anidados”. Observe como se combinan estructuras de decisión simple y estructuras de decisión doble. Tenga presente que para formar una estructura múltiple “SI Anidados” puede utilizar cualquier combinación de estructuras de decisión simple y doble. ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE Estructura Lógica de Decisión Múltiple (SI Anidados) FORMATO EN JAVA JAVA if (condición1) { sentencias1... } else { if (condición2) { sentencias2... } else { if (condición3) { sentencias3… } } } OBSERVACIÓN: El presente código desarrollado en Java es la traducción del pseudocódigo de la diapositiva anterior. El profesor desarrollará en clase otras formas de utilizar las estructuras de decisión múltiple “SI Anidados”. ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE Problema 1: Calcular el área de un rectángulo conociendo su base y altura. Si el área es menor que 100, se deberá visualizar el mensaje “rectángulo pequeño”; si el área es mayor o igual a 100 y menor que 1000, se visualizará el mensaje “rectángulo mediano”; y si el área es mayor o igual que 1000, el mensaje será “rectángulo grande”. ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE ENTRADA: base, altura SALIDA: area, mensaje INICIO NUMERO base, altura, area TEXTO mensaje LEER base, altura area = base * altura SI (area < 100) ENTONCES mensaje = “ rectángulo pequeño ” SINO SI (area >= 1000) ENTONCES mensaje = “ rectángulo grande ” SINO mensaje = “ rectángulo mediano ” FINSI FINSI ESCRIBIR area, mensaje FIN ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE Problema 2: Leer el sueldo de un trabajador y calcule su aumento por incremento del costo de vida de acuerdo a la siguiente tabla: Tipo Monto Sueldo < 2000 20% 2000 < =Sueldo < =3000 13% Sueldo > 3000 9% ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE ENTRADA: sueldo SALIDA: nuevoSueldo INICIO NUMERO sueldo, nuevoSueldo LEER sueldo SI (sueldo < 2000) ENTONCES nuevoSueldo = sueldo * 1.2 SINO SI (sueldo > 3000) ENTONCES nuevoSueldo = sueldo * 1.09 SINO nuevosueldo = sueldo * 1.13 FINSI FINSI ESCRIBIR nuevoSueldo FIN ESTRUCTURAS LÓGICAS DE DECISION MUTIPLE ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE Problema 3: Determinar si un número es divisor de otro número; Utilice la expresión (num1 RESTO num2 > 0) donde “num1” y “num2” son los dos números. ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE ENTRADA: num1, num2 SALIDA: mensaje INICIO NUMERO num1, num2 TEXTO mensaje LEER num1, num2 SI (num1 > = num2) ENTONCES SI (num1 RESTO num2 = 0) ENTONCES mensaje = “El segundo número es divisor del primer número” SINO mensaje = “El segundo número no es divisor del primer número” FINSI SINO SI (num1 RESTO num2 = 0) ENTONCES mensaje = “El primer número es divisor del segundo número” SINO mensaje = “El primer número no es divisor del segundo número” FINSI FINSI ESCRIBIR mensaje FIN ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE Problema 4: Ingresar tres notas de un alumno. Muestre las notas ordenadas en forma ascendente. ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE Problema 5: Diseñe una solución en Pseudocódigo y Diagrama de flujo que permita ingresar y convertir una cantidad en metros a sus equivalentes en centímetros, pulgadas, pies y yardas. Considere la siguiente información: 1 metro = 100 cm. 1 pulgada = 2.54 cm. 1 pie = 12 pulgadas. 1 yarda = 3 pies. Problema 6: Elabore una solución en C++ que ingrese un número entero e indique las siguientes descripciones sobre el número ingresado: -Si es positivo o negativo. -Si es par o impar. -Si es múltiplo de 3 o no. -Si es menor que 500 o no. ( Problema 7: Elabore una solución en Java Calcular y mostrar el costo total que representa un paciente para un hospital de acuerdo al tipo de enfermedad, según los datos de la tabla. Adicionalmente, debe considerar que los pacientes de sexo femenino menores de 12 años implican un costo adicional de 13%. Enfermedad Tipo Costo diario por paciente 1 122 2 234 3 345 4 587 Introducción a la Computación ESTRUCTURAS DE DECISION MULTIPLE CUANDO SEMANA 11 ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE ESTRUCTURA LÓGICA DE DECISIÓN MÚLTIPLE (CUANDO) Definición: Una estructura de decisión múltiple “CUANDO... FINCUANDO” permite alterar el flujo secuencial de una solución ejecutando un conjunto de pasos dependiendo del valor de una variable. Generalmente, para cada posible valor que pueda tener la variable se define un conjunto de pasos a ejecutar. También se define un conjunto de pasos a ejecutar en caso que uno de los valores de la variable no tenga asociado un conjunto de pasos a ejecutar. ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE Estructura Lógica de Decisión Múltiple (CUANDO) PSEUDOCODIGO EXPLICACIÓN: CUANDO (variable) SEA CASO (valor 1) : instrucciones... TERMINAR CASO (valor n) : instrucciones... TERMINAR OTROS instrucciones... FINCUANDO Si el valor de la variable es igual a uno de los valores colocados después de una de las reglas CASO, se ejecutan las instrucciones que están dentro del mismo. Si el valor de la variable no es igual a ninguno de los valores colocados después de una de las reglas CASO, se ejecutan las instrucciones que están dentro de la regla OTROS. La regla OTROS es opcional (es decir, puede aparecer como no). ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE Estructura Lógica de Decisión Múltiple (CUANDO) CASO (VALOR 1) V Instrucciones TERMINAR Instrucciones TERMINAR Instrucciones TERMINAR Instrucciones TERMINAR F CASO (VALOR 2) V F CASO (VALOR 3) V F CASO (VALOR “n”) F Instrucciones POR DEFECTO V ESTRUCTURAS LÓGICAS DE DECISIÓN MULTIPLE Estructura Lógica de Decisión Múltiple (CUANDO) JAVA y C EXPLICACIÓN: switch (variable) { case valor 1 : sentencias... break case valor 2 : sentencias... break case valor n : sentencias... break default : sentencias... } Si el valor de la variable es igual a uno de los valores colocados después de la palabra reservada case (valor 1, valor 2, etc), se ejecutan las sentencias que están dentro del mismo hasta llegar al final (es decir hasta la llave) a no ser que encuentre una palabra reservada break entre las sentencias que se ejecutan. Si el valor de la variable no es igual a ninguno de los valores colocados después de una de las palabras reservadas case, se ejecutan las sentencias que están dentro de la palabra reservada default. La palabra reservada default es opcional (es decir puede aparecer como no). ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE Problema 1: Ingresar la categoría (categoria) y el sueldo (sueldo) de un trabajador, y calcular su aumento de sueldo teniendo en cuenta la siguiente mostrada. Mostrar el nuevo sueldo del trabajador (sueldo). Categoría Aumento 1 38 % 2 21 % 3 12 % 4 08 % ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE Algoritmo PrgSueldo – main() ENTRADA: categoria, sueldo SALIDA: sueldo INICIO ENTERO categoria REAL sueldo LEER categoria, sueldo CUANDO (categoria) SEA CASO (categoria = 1) sueldo = sueldo * 1.38 TERMINAR CASO (categoria = 2) sueldo = sueldo * 1.21 TERMINAR CASO (categoria = 3) sueldo = sueldo * 1.12 TERMINAR CASO (categoria = 4) sueldo = sueldo * 1.08 TERMINAR OTROS Sueldo = sueldo FIN CUANDO ESCRIIBIR sueldo FIN ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE INICIO NUMERO categoria REAL sueldo categoria, sueldo Categoria=1 Sueldo = sueldo * 1.38 Categoria=2 Sueldo = sueldo * 1.21 Categoria=3 Sueldo = sueldo * 1.12 Categoria=4 Sueldo = sueldo * 1.08 Sueldo = sueldo sueldo FIN ESTRUCTURAS LÓGICAS DE DECISION MUTIPLE class PrgSueldo { public static void main (String[] arg) { int categoria; double sueldo=0; System.out.print (“Ingrese la categoria”); categoria = Lectura.leerInt(); System.out.print (“Ingrese el sueldo”); sueldo = Lectura.leerInt(); } #include <iostream> using std::cout ; using std::cin ; int main ( ) { int categoria doublesueldo; cout <<“Ingrese la categoria”; cin >> categoria cout <<“Ingrese el sueldo”; cin >> sueldo; switch (categoria) { case 1: sueldo = sueldo * 1.38; break; case 2: sueldo = sueldo * 1.21; break; case 3: sueldo = sueldo * 1.12; break; case 4: sueldo = sueldo * 1.08; break; default: sueldo = sueldo } System.out.print (Su sueldo es: “ + sueldo); } } switch (categoria) { case 1: sueldo = sueldo * 1.38; break; case 2: sueldo = sueldo * 1.21; break; case 3: sueldo = sueldo * 1.12; break; case 4: sueldo = sueldo * 1.08; break; default: sueldo = sueldo } cout << “Su sueldo es: “ + sueldo>>; return 0; ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE INTENTALO…!!! 1.- 2.- En una dulcería se venden 4 tipos de sándwich, de acuerdo a la siguiente tabla: Desarrolle una solución que permita calcular el monto a pagar por La compra de cada sándwich. Categoría Aumento A 4.5 B 5.0 C 7.5 D 13.5 Desarrollar una solución que permita realizar operaciones de suma, resta o multiplicación. Se deberá ingresar dos números y el tipo de operación que se desea realizar símbolo operación + Suma - Resta * Multiplicación / División Introducción a la Computación ESTRUCTURAS DE CONTROL MIENTRAS SEMANA 12 ESTRUCTURAS DE DATOS Variables Uso de contadores Definición: Un contador es una variable entera que toma un valor inicial y cuyo valor se incrementa o decrementa en una cantidad fija cada vez que se ejecutan los pasos que forman parte de una estructura de repetición. Un contador puede ser creciente o decreciente. contador = contador + cantidadConstante En Pseudocódigo Ejemplos: En Java y C - Incremento de 1 en 1 c=c+1 C++ - Incremento de 2 en 2 contar = contar + 2 contar += 2 ; ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Estructura Lógica de Repetición (MIENTRAS) Definición: Una estructura lógica de repetición “MIENTRAS… FINMIENTRAS”, permite repetir una instrucción o un bloque de instrucciones mientras que una condición se cumpla o sea verdadera. Esta estructura de repetición prueba la condición antes de ejecutar la instrucción o instrucción. PSEUDOCODIGO MIENTRAS (condición) instrucción 1 . . . instrucción n FINMIENTRAS ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Estructura Lógica de Repetición (MIENTRAS) ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Estructura Lógica de Repetición (MIENTRAS) JAVA y C while (condición) { sentencia 1 . . . sentencia n } ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 1: Calcular la nota final de todos los alumnos del curso utilizando la siguiente fórmula: nf = ( n1 + (n2 *2 ) ) / 3 ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 1: Calcular la nota final de todos los alumnos del curso utilizando la siguiente fórmula: nf = ( n1 + (n2 *2 ) ) / 3 Algoritmo Nfinales ENTRADA: numalu, n1, n2 SALIDA: nf INICIO ENTERO numalu, n1, n2, cont=1 REAL nf LEER numalu MIENTRAS (cont <= numalu) HACER LEER n1, n2 nf = ( n1 + (n2 *2 ) ) / 3 ESCRIIBIR nf cont = con +1 FINMIENTRAS FIN ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 2: Calcular la suma de 5 números ingresados por teclado. ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 3: hacer un programa que muestre los 10 primeros números enteros positivos. ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 4: hacer un programa que muestre los 10 primeros números impares. ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 5: hacer un programa que muestre el cuadrado de los 10 primeros números pares. ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 6: hacer un programa que muestre la suma de los cuadrados de los 10 primeros números impares. ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 5: Calcular la suma de una lista de N números enteros ingresados por el usuario. Introducción a la Computación ESTRUCTURAS DE CONTROL HACER - MIENTRAS SEMANA 13 ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Estructura Lógica de Repetición (HACER-MIENTRAS) Definición: Una estructura lógica de repetición “HACER... MIENTRAS”, permite repetir una instrucción o un bloque de instrucciones mientras que una condición se cumpla o sea verdadera. Esta estructura de repetición permite que se ejecuten al menos una vez las instrucciones o instrucción antes de probar la condición. Esta estructura es utilizada para el desarrollo de menú y para la consistencia de los datos. PSEUDOCODIGO HACER instrucción 1 . . . instrucción n MIENTRAS (condición) ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Estructura Lógica de Repetición (HACER - MIENTRAS) ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Estructura Lógica de Repetición (HACER - MIENTRAS) JAVA y C do { sentencia 1 . . . sentencia n } while (condición) ; ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 1: Calcular la nota final de los alumnos del curso, siempre que se desee continuar. Utilizar la siguiente fórmula: nf = (n1 + n2) / 2 ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 1: Calcular la nota final de los alumnos del curso, siempre que se desee continuar. Utilizar la siguiente fórmula: nf = (n1 + n2) / 2 Algoritmo Nota ENTRADA: n1, n2 SALIDA: nf INICIO ENTERO n1, n2 REAL nf HACER LEER n1, n2 nf = ( n1 + (n2 *2 ) ) / 3 ESCRIBIR nf LEER continua MIENTRAS (continua = ‘S’ O continua=‘s’) FIN ESTRUCTURAS LÓGICAS DE CONTROL – REPETICION ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION # include<iostream> using std::cout; using std::cin; int main(){ int n1=0,n2=0; double nf=0; char continua=' '; do { cout << "Ingrese la nota1:\t"; cin >> n1; cout << "Ingrese la nota2:\t"; cin >> n2; nf = (double)( n1 + n2 ) / 2; cout << "Nota final =\t\t" + nf+"\n"; cout << "Si desea continuar ingresar (S) " + "\ncaso contrario Ingresar cualquier otro caracter:\t"; continua=Lectura.leerChar(); } while (continua == 'S' || continua == 's'); cout << "***Gracias por usar el programa***"; } ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION INTENTALO…!!! [1] Se desea desarrollar un programa que permita calcular la nota final de cada uno de los 70 alumnos que pertenecen a un salón de clase, utilizando la siguiente formula: NF= (EP + PP + EF)/3 Ingresar las notas de los alumnos a través del teclado, luego mostrar los resultados para cada alumno. ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION INTENTALO…!!! [2] desarrollar un programa donde se pueda leer 100 números desde el teclado y tener como resultado, cuantos de estos números son múltiplos de 3, cuantos son múltiplos de 5 y el promedio de los 100 números ingresados. ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Introducción a la Computación ESTRUCTURAS DE CONTROL DESDE ó PARA SEMANA 14 ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Estructura Lógica de Repetición (DESDE O PARA) Una estructura de repetición “DESDE... FINDESDE” permite repetir una instrucción, o un bloque de instrucciones, un número determinado de veces o hasta que una condición se cumpla. Una estructura lógica de repetición “DESDE... FINDESDE” con frecuencia se utiliza para iteraciones sencillas en donde se repite un bloque de instrucciones un cierto número de veces y después se detiene. INICIO Declaración Variables e inicialización incremento PSEUDOCODIGO PARA (cont=1, cont <= 5, cont++) HACER instrucción 1 . . . instrucción n FINPARA Condición F FIN Acción v ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 1: Desarrollar un algoritmo que sume 5 montos ingresados y al terminar lo muestre por pantalla. Algoritmo - pseudocodigo INICIO REAL monto, suma INT cont PARA (cont=1, cont <= 5, cont=cont+1) HACER LEER monto suma suma + monto FIN PARA ESCRIBIR suma FIN ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 1: Desarrollar un algoritmo que sume 5 montos ingresados y al terminar lo muestre por pantalla. Diagrama de Flujo INICIO X cont=cont+1 suma = suma + monto REAL monto, suma INT cont1 cont<=5 suma X FIN v monto ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 1: Desarrollar un algoritmo que sume 5 montos ingresados y al terminar lo muestre por pantalla. Codificación en Java package domApli; import biblioteca.*; public class sumamonto { public static void main (String[ ] args) { real monto, suma; int cont; for(cont=1; cont <=5; cont++) { System.out.println(“ingrese monto: ”); monto = Lectura.leerReal( ); suma = suma + monto; } System.out.println(“la suma es: ” +suma); } } ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 2: Calcular y mostrar la nota final de 10 alumnos utilizando la siguiente fórmula:nf = (n1+n2))/2. Ingrese las notas a través del teclado. Algoritmo Nfinales3 ENTRADA: n1, n2 SALIDA: nf INICIO ENTERO i REAL nf, n1, n2 PARA (i=1 , i =10, cont=cont+1) HACER LEER n1, n2 nf = ( n1 + n2 ) / 2 ESCRIBIR nf FIN PARA FIN ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 2: Calcular y mostrar la nota final de 10 alumnos utilizando la siguiente fórmula:nf = (n1+n2))/2. Ingrese las notas a través del teclado. JAVA package domApli; import biblioteca.Lectura; class PrgAPrgNfinales3 { public static void main (String[] args) { int i; double n1=0,n2=0,nf=0; for (i=1; i<=10; i++) { System.out.print(“Ingrese la nota1: ”); n1 = Lectura.leerInt(); System.out.print(“Ingrese la nota2: ”); n2 = Lectura.leerInt(); nf = ( n1 + n2 ) / 2; System.out.println(“Nota final = “+nf); } } } “C” #include <iostream> using std::cout; using std::cin; int main ( ) { int i; double n1=0,n2=0,nf=0; for (i=1; i<=10; i++) { cout <<“Ingrese la nota1”; cin >> n1; cout <<“Ingrese la nota2”; cin >> n2; nf = ( n1 + n2 ) / 2; cout << “Nota final =“+nf; } Return 0; } ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 3: Determinar cuáles son los términos de una progresión aritmética. Solicite el valor del primer término, el valor de la razón y el número de términos. ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION “C++” JAVA package domApli ; import biblioteca.Lectura; class PrgAPrgProgresión { public static void main (String[] args ) { int i, primero, razon, numTerminos,termino; int main ( ) { int i, primero, razon, numTerminos,termino; System.out.print ( “Ingrese el primer término de progresión aritmética: ” ); primero = Lectura.leerInt(); cout << “Ingrese el primer término de progresión aritmética: ” ; cin >>primero; System.out.print ( “Ingrese la razón de la progresión aritmética: ” ); razon = Lectura.leerInt(); cout << “Ingrese la razón de la progresión aritmética: ” ; cin >> razon; System.out.print ( “Ingrese el número de términos: ” ); numTerminos = Lectura.leerInt(); cout << “Ingrese el número de términos de la progresión: ” ; cin >> numTerminos for ( i=1 ; i <= numTerminos ; i++) { termino = primero; System.out.print ( término + “ ” ) ; primero = primero + razon ; } }} #include <iostream> using std::cout; using std::cin; for ( i=1 ; i <= numTerminos ; i++) { termino = primero; cout << término + “ ” ; primero = primero + razon ; } Return 0; } ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 4: Calcular y visualizar la suma de los números pares comprendidos entre los números 20 y 400. Algoritmo SumaPares ENTRADA: SALIDA: sumaPares INICIO ENTERO num, sumaPares = 0 PARA (num =22, num<398, num= num+1) HACER SI (num RESTO 2 = 0 ) ENTONCES sumaPares = sumaPares + num FINSI FINDESDE ESCRIBIR sumaPares FIN ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 4: Calcular y visualizar la suma de los números pares comprendidos entre los números 20 y 400. JAVA package dominioDeLaAplicacion ; class PrgSumaPares { public static void main (String[] arg) { int num, sumaPares = 0 ; for ( num=22 ; num<399 ; num++) { if ( num % 2 == 0) { sumaPares = sumaPares + num; } } System.out.println (“La suma de los numeros pares entre 20 y 400 es: ”+ sumaPares); } } ESTRUCTURAS DE DATOS Definición: Variables Uso de interruptores Un interruptor o conmutador (denominado también centinela, bandera o flag) es una variable lógica o numérica que puede tomar dos posibles valores (1/0, verdadero/falso, si/no, encendido/apagado) dentro de una determinada solución Ejemplo: En Pseudocódigo En Java sw = FALSO sw = false ; MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) Problema 5: Desarrolle una solución que permita determinar si un numero es o no primo. Emplee interruptores. El conjunto de los números primos es un subconjunto de los números naturales que engloba a todos los elementos de este conjunto que son divisibles exactamente tan sólo por sí mismos y por la unidad (por convención, el 1 no se considera primo). Los veinte primeros números primos son: 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67 y 71 Nótese el hecho de que todos los números naturales son divisibles por sí mismos y por la unidad. MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto) Problema 5: Desarrolle una solución que permita determinar si un numero es o no primo. Emplee interruptores. INICIO LOGICO sw = VERDADERO NUMERO i, num LEER num DESDE i = 2 HASTA i = num - 1 SI ( num RESTO i = 0 ) ENTONCES sw = FALSO FINSI FINDESDE SI ( sw ) ENTONCES ESCRIBIR “Número primo” SINO ESCRIBIR “Número no es primo” FINSI FIN ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION JAVA package domApli ; class PrgSumaPares { public static void main (String [ ] args) { boolean sw = true; int i, num; System.out.print("Ingrese el numero a evaluar :"); num=Lectura.leerInt(); for (i=2;i<num;i++){ if (num % i == 0 ) { sw = false; } } if (sw){ System.out.print("El numero es primo"); }else{ System.out.print("El numero no es primo"); } } } ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 6: package domApli; public class PrgFiguraCuadrado { public static void main(String[] args) { int i, j ; for (i = 1; i <= 5; i++) { for (j = 1; j <= 5; j++) { System.out.print("*"); } System.out.println(); } }} ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 7: package domApli; public class PrgFiguraCuadrado { public static void main(String[] args) { int i, j ; for (i = 1; i <= 5; i++) { for (j = 1; j <= i; j++) { System.out.print( “ * “ ); } System.out.println(); } }} ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Problema 8: package domApli; public class PrgFiguraCuadrado { public static void main(String[] args) { int i, j ; for (i = 1; i <= 5; i++) { for (j = 1; j <= i; j++) { System.out.print( i ); } System.out.println(); } }} ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION Desarrollar la codificación de las soluciones que permitan mostrar las siguientes figuras: Problema 9 Problema 10 Problema 11 Introducción a la Computación ESTRUCTURAS DE DECISION / CONTROL COMBINACIONES SEMANA 15 ESTRUCTURAS LÓGICAS Desarrollar la solución del menú que se presenta a continuación: ESTRUCTURAS LÓGICAS INICIO ENTERO a,b,opc HACER HACER LEER opc MIENTRAS (a<1 o a>6) CUANDO opc SEA CASO (opc=1) LEER a,b TERMINAR CASO (opc=2) ESCRIBIR a+b TERMINAR CASO (opc=3) ESCRIBIR a-b TERMINAR CASO (opc=4) ESCRIBIR a*b TERMINAR CASO (opc=5) ESCRIBIR a/b TERMINAR FINCUANDO MIENTRAS (opc!=6) FIN ESTRUCTURAS LÓGICAS Introducción a la Computación ESTRUCTURAS DE DATOS TIPO ARREGLO VECTORES SEMANA 16 Introducción a la Computación Objetivos : • Describir la estructura de datos tipo arreglo. Uso de vectores y matrices. • Desarrollo de soluciones con uso de vectores ESTRUCTURAS DE DATOS : ARREGLOS ARREGLOS Definición: Los arreglos son estructuras de datos que consisten en elementos del mismo tipo. Los arreglos son entidades estáticas en cuanto a que su tamaño no cambia una vez que han sido creadas. Se debe tener en cuenta que antes de usar los elementos de un arreglo, se debe declarar, crear e inicializar el arreglo. ESTRUCTURAS DE DATOS : ARREGLOS ARREGLOS Tipos: • Arreglos unidimensionales o vectores Representación: números 0 1 32 -2 2 3 0 174 tamaño=4 • Arreglos bidimensionales o matrices Representación: números 0 1 2 3 0 32 -2 0 174 1 14 12 -5 129 filas=2, columnas=4 ARREGLOS TIPO VECTOR DECLARACIÓN: En Pseudocódigo tipoDato nombreVector [ ] En Java tipoDato nombreVector [ ] ; tipoDato [ ] nombreVector ; Ejemplos; Ejemplos; - TEXTO nombres [ ] - String nombres [ ] ; - NUMERO sueldos [ ] - double sueldos [ ] ; - CARACTER letras [ ] - char letras [ ] ; ARREGLOS TIPO VECTOR CREACIÓN: En Pseudocódigo En Java CREAR nombreVector [tamaño] nombreVector = new tipoDato [tamaño] ; Ejemplos; Ejemplos; - CREAR nombres [10 ] - nombres = new String [10] ; - CREAR sueldos [numNot] - sueldos = new double [numNot] ; - CREAR letras [LONGITUD texto] - letras = new char [texto.length()] ; ARREGLOS TIPO VECTOR INGRESO DE DATOS: En Pseudocódigo En Java nombreVector [índice] = valor identificador [índice] = valor ; Ejemplos; Ejemplos; - nombres [0 ] = “Danae” - nombres [0 ] = “Danae” ; - sueldos [1] = 100.5 - sueldos [1] = 100.5 ; - letras [x] = ‘J’ - letras [x] = ‘J’ ; Cuando utilizamos vectores podemos utilizar las estructuras lógicas de repetición para optimizar de manera significativa el proceso de ingreso de datos especialmente utilizando la estructura DESDE ó PARA. ARREGLOS TIPO VECTOR TAMAÑO: En Pseudocódigo En Java variable = LONGITUD nombreVector [ ] variable = nombreVector.length ; Ejemplos; Ejemplos; - tamaño = LONGITUD nombres [ ] - tamaño = nombres.length ; - tamaño = LONGITUD sueldos [ ] - tamaño = sueldos.length ; - tamaño = LONGITUD letras [ ] - tamaño = letras.length ; ARREGLOS TIPO VECTOR DECLARACIÓN Y CREACIÓN: En Java tipoDato nombreVector [ ] = new tipoDato [tamaño] ; DECLARACIÓN, CREACIÓN E INICIALIZACIÓN: En Java tipoDato nombreVector [ ] = { valor1, valor2, valor3, valor4, … , valorN } ; ARREGLOS TIPO VECTOR Ejercicio 1 Desarrollar una solución que permita ingresar y almacenar las notas de todas las prácticas de un alumno. Determinar el promedio de las prácticas sabiendo que se elimina la práctica con la nota mas baja. Utilice vectores. Algoritmo VectorNotas ENTRADA: numPra, notas[ ] / SALIDA: promAlu INICIO ENTERO i, numPra REAL sumaNotas = 0, notaMenor = 20 REAL notas[ ], promAlu COMENTARIO “Creación del arreglo” CREAR notas [numPra] COMENTARIO “Ingreso de datos al arreglo notas[ ].” PARA (i=0, i<numpra, i=i+1) HACER LEER notas[i] FINPARA COMENTARIO “Cálculo del promedio de notas de las prácticas” PARA (i=0, i<numpra, i=i+1) HACER sumaNotas = sumaNotas + notas[i] FINPARA PARA (i=0, i<numpra, i=i+1) HACER SI ( notaMenor > notas[i] ) ENTONCES notaMenor = notas[i] FINSI FINPARA promAlu = ( sumaNotas - notaMenor ) / ( numPra - 1 ) ESCRIBIR promAlu ARREGLOS TIPO VECTOR Ejercicio 2 Desarrollar una solución que permita ingresar y almacenar el sueldo (sueldos[]) de todos los trabajadores de una empresa. Calcular y mostrar el sueldo neto (sueldoNeto) de cada trabajador, sabiendo que se tienen que descontar el 12% por impuestos y el 3% por seguro. Consistenciar el ingreso de datos. Ejercicio 3 Desarrollar una solución que permita ingresar y almacenar la nota (notas[]) de 10 alumnos de un salón de clase y determinar el promedio final del aula (prom). Mostrar el promedio. Consistenciar el ingreso de datos. .Ejercicio 4 Desarrollar una solución que permita ingresar y almacenar la nota (notas[]) de todos los alumnos de un salón de clase y determinar el promedio final (prom) redondeado a dos decimales. Mostrar el promedio. Consistenciar el ingreso de datos. Emplee vectores Introducción a la Computación ESTRUCTURAS DE DATOS TIPO ARREGLO MATRICES SEMANA 16 ESTRUCTURAS DE DATOS Arreglos Tipos: • Arreglos unidimensionales o vectores Representación: números 0 1 32 -2 2 3 0 174 tamaño=4 • Arreglos bidimensionales o MATRICES Representación: números 0 1 2 3 0 32 -2 0 174 1 14 12 -5 129 filas=2, columnas=4 ESTRUCTURAS DE DATOS Arreglos tipo MATRIZ Declaración: En Pseudocódigo En Java tipoDato identificador [ ][ ] tipoDato identificador [ ][ ] ; ó tipoDato [ ][ ] identificador ; Ejemplos; Ejemplos; - TEXTO nombres [ ][ ] - String nombres [ ][ ] ; - NUMERO sueldos [ ][ ] - double sueldos [ ][ ] ; - CARACTER letras [ ][ ] - char letras [ ][ ] ; ESTRUCTURAS DE DATOS Arreglos tipo MATRIZ Creación: En Pseudocódigo En Java CREAR identificador [filas][columnas] identificador = new tipoDato [filas][columnas] ; Ejemplos; Ejemplos; - CREAR nombres [2][4] - nombres = new String [2][10] ; - CREAR sueldos [numAlu][numNot] - sueldos = new double [numAlu][numNot] ; - CREAR letras [4][total] - letras = new char [4][total] ; ESTRUCTURAS DE DATOS Arreglos tipo MATRIZ Declaración y Creación: En Java tipoDato identificador[][] = new tipoDato [filas][columnas] ; Ejemplos; - String nombres = new String [2][10] ; - double sueldos = new double [numAlu][numNot] ; - char letras = new char [4][total] ; ESTRUCTURAS DE DATOS Arreglos tipo MATRIZ Ingreso de datos: En Pseudocódigo En Java identificador [índice] = valor identificador [índice] = valor ; Ejemplos; Ejemplos; - nombres [0][0] = “Danae” - nombres [0][0] = “Danae” ; - sueldos [1][x] = 100.5 - sueldos [1][x] = 100.5 ; - letras [y][x] = ‘J’ - letras [y][x] = ‘J’ ; Cuando utilizamos matrices podemos utilizar las estructuras lógicas de repetición para optimizar de manera significativa el proceso de ingreso de datos especialmente utilizando la estructura DESDE ó PARA dos veces. ESTRUCTURAS DE DATOS Ejercicio Desarrollar una solución que permita ingresar y almacenar números enteros positivos en una matriz de 3 por 3 (a[][]) y permita mostrar la matriz 3 por 3 y la suma de los números ubicados en la diagonal principal. Consistencia la entrada de datos. Utilice matrices. ENTRADA: numero[ ][ ] INICIO / SALIDA: numero[ ][ ], sumaDiaPri COMENTARIO “Declaración del arreglo” ENTERO i, j, numero[][], sumaDiaPri COMENTARIO “Creación del arreglo” Algoritmo VectorNotas CREAR numero[3][3], COMENTARIO “Ingreso de datos al arreglo numero[ ] [ ].” PARA (i=0, i<3, i=i+1) HACER PARA (j=0, j<3, j=j+1) HACER HACER LEER numero[i][j] MIENTRAS (numero[i][j]<0) FINPARA FINPARA // DESDE i =0 HASTA i < 3 // DESDE j =0 HASTA j < 3 // FIN DESDE // FIN DESDE COMENTARIO “Mostrar Matriz y Cálculo de Suma” PARA (i=0, i<3, i=i+1) HACER // DESDE i =0 HASTA i < 3 PARA (j=0, j<3, j=j+1) HACER // DESDE j =0 HASTA j < 3 ESCRIBIR numero[i][j] SI (i=j) ENTONCES sumaDiaPri = sumaDiaPri + numero[i][j] FINSI FINPARA // FIN DESDE FINPARA // FIN DESDE ESCRIBIR sumaDiaPri FIN ESTRUCTURAS DE DATOS INTENTALO…!!! 1.- Desarrollar una solución que permita ingresar y almacenar el precio de compra y el precio de venta de todos los artículos de una bodega (precio[][]). Calcular y mostrar la utilidad que se obtiene por la venta de cada artículo. Utilice matrices. 2.-Desarrollar una solución que permita ingresar y almacenar el código y el nombre de los empleados de una compañía (empleado[][]). Luego mostrar el código y nombre de los empleados de la compañía. Utilice matrices. 3.-Desarrollar una solución que permita ingresar y almacenar el promedio de prácticas, la nota del examen parcial y la nota del examen final de todos los alumnos de MBIII de la FIA (nota[][]). Calcular y mostrar el promedio que obtuvo cada alumno; Adicionalmente indicar el porcentaje de alumnos que aprobaron el curso.