Práctica 0. Emulador XENON de la computadora CESIUS

Documentos relacionados
Práctica 0. Emulador XENON de la computadora CESIUS

Tema 2 Introducción a la Programación en C.

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

TEMA 3: El proceso de compilación, del código fuente al código máquina

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

ENTORNO DE DESARROLLO Y COMPILACIÓN DE PELLES C

11.2. Manual de GTC 2.0: El primer contacto

Programación en java. Estructuras algorítmicas

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

FUNCIONAMIENTO DEL ORDENADOR

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

TEMA 4. ESTRUCTURAS DE CONTROL

Práctica 1 de Excel (Curso )

Programación en Visual Basic Ricardo Rodríguez García

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

Manual de usuario Mensajería Centro Virtual de Educación

PRESENTACIÓN TELEMÁTICA DE PUBLICIDAD CONCURSAL - PROCURADORES

INSTRUCCIONES PRESENTACIÓN DE CUENTAS ANUALES EN EL REGISTRO MERCANTIL

Qué es un programa informático?

Computadora y Sistema Operativo

Práctica ENS:Ensamblar y depurar

Los pasos a seguir para cumplimentar la solicitud son los siguientes: A continuación, se detallarán cada uno de estos apartados.

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

Guía de uso del sistema de acceso al DiViSA

Funciones básicas del depurador

Informática Ingeniería en Electrónica y Automática Industrial

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Base de Datos de Compras. Creación de formularios.

Estructuras de control

Algoritmos. Diagramas de Flujo. Informática IV. L. S. C. Heriberto Sánchez Costeira

BOLETÍN 5: Algoritmos II

índice MÓDULO 1: Introducción a Visual Basic 6.0 MÓDULO 2: Fundamentos de programación TEMA 1. Introducción a Visual Basic 6.0

Problemática con la actualización de Java 7 update 45

EXCEL I UNIDAD 1 EMPEZANDO A TRABAJAR CON EXCEL (SEMANA 1)

Enteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 4: Diseñador de Consultas (+ info)

INSTITUCIÓN EDUCATIVA JOSÉ EUSEBIO CARO ÁREA DE TECNOLOGÍA E INFORMÁTICA 2016 DOCENTE JESÚS EDUARDO MADROÑERO RUALES GRADO OCTAVO TEMA

Práctica #1 Crear Base de Datos

Técnicas de Programación

Ordenador local + Servidor Remoto

Guía para la instalación de discos duro SATA y Configuración RAID

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Manual configuración aplicaciones

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

Fundamentos de Ordenadores. Depurar programas usando Nemiver

Introducción a la arquitectura de computadores

Manual del Servicio de Consulta de autorizados RED que gestionan una empresa.

VARIABLES LOCALES Y VARIABLES GLOBALES

1.- CREAR UNA BASE DE DATOS CON ACCESS

Actualizaciones de software Guía del usuario

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

MÓDULO 6 I.V.A. / I.G.I.C.

Conceptos de Arquitectura de Computadoras Curso 2015

Tema 3. Aplicaciones de Tipo Consola

Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES.

Una base de datos de Access puede estar conformada por varios objetos, los más comunes son los siguientes:

Cuando no está abierto ningún menú, las teclas activas para poder desplazarse a través de la hoja son:

Tema: Entorno a C# y Estructuras Secuenciales.

Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2010/2011

INTRODUCCIÓN A BASE DE DATOS. Excel - Access

Lenguaje de Programación

Guía práctica de estudio 06: Lenguaje binario

Inicio del programa. Entrada de datos. Proceso de datos. Salida de datos. Fin del programa

Tema 1. Introducción a OpenOffice Writer

Estructuras en LabVIEW.

Actividad colaborativa Ejercicios de programación Programación básica C++

PEMAT PETICIONES DE MATERIAL. Manual Usuario Versión 1.0 Fecha de revisión 02/24/2012 Realizado por Equipo de Desarrollo PHP. PEMAT v1.

INSTITUCION EDUCATIVA MANUEL ANGEL ANACHURY AREA: TECNOLOGIA E INFORMATICA

Universidad Central de Venezuela. Facultad de Ciencias. Escuela de Computación. Proyecto #1 (Simulación de caché)

OFICINA DE REGISTRO VIRTUAL DE ENTIDADES LOCALES

CONTENIDO 1 Diagrama de flujo 2 Pseudocodigo 3 Diagrama estructurado (nassi-schneiderman)

Programación. Práctica Final

MANUAL DESCARGA DE CALIFICACIONES

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

REGISTRO EN EL SISTEMA PARA AUXILIARES DE CONVERSACIÓN EXTRANJEROS

PRUEBA DE ACCESO A LAS ENSEÑANZAS UNIVERSITARIAS OFICIALES DE GRADO 2016

MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6

Noticias RED Remisión electrónica de documentos

Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A)

RECIBOS. Cti19_14 C.T.I. Cálculo y Tratamiento de la Información

Anexo. Control de errores

4.1 Conversión de formato WAV a MP3

Programación. Test Autoevaluación Tema 3

Crear documentos de texto en Google Docs. Avanzado

LABORATORIO 3 ESTRUCTURAS REPETITIVAS WHILE / DO WHILE

MEMORIA EJERCICIO 1 EJERCICIO 2

Anexo C. Manual del usuario

Manual de Usuario. Aplicación de Autoevaluación de Centros

ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO

Definición: Dispositivo mecánico-electrónico que procesa Información (numérica, alfanumérica )

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 5: Informes

Tema: Introducción al IDE de Microsoft Visual C#.

6.1.- Introducción a las estructuras de datos Tipos de datos Arrays unidimensionales: los vectores Operaciones con vectores.

Net-LAN. Guía rápida del Kit inalámbrico NetLAN para ZyXEL P660 HW61

PROGRAMA DE AYUDA. OTRAS UTILIDADES

Computación Aplicada. Universidad de Las Américas. Aula virtual de Computación Aplicada. Módulo de Excel 2013 LIBRO 4

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)

MANUAL DE USUARIO CONCEPTOS GENERALES

SISTEMAS OPERATIVOS Arquitectura de computadores

Transcripción:

Práctica 0. Emulador XENON de la computadora CESIUS 1. Introducción El objeto de la presente práctica es permitir al alumno ensayar y familiarizarse con los conceptos de programación de computadoras digitales desarrollados en el curso de la asignatura. Para ello se hará uso un emulador de la computadora virtual CESIUS basada en la estructura de Von- Neumann. El término virtual hace referencia al hecho de que dicha máquina no existe físicamente como tal. Por ello se ha desarrollado un emulador virtual, denominado XENON, que consta de un entorno de programación multiplataforma que permiten programar, depurar y emular el comportamiento la computadora con programas desarrollados en el lenguaje de la máquina CESIUS. Esta práctica está enfocada a que el alumno se familiarice con el entorno de programación del emulador XENON. XENON es una aplicación de libre distribución programada en tecnología JAVA y disponible en: 2. Entornos de programación http://www.esi2.us.es/~jaar/docencia.htm El entorno de programación XENON está dividido en 2 aplicaciones diferentes, cuyas funciones son fácilmente accesibles mediante iconos (véase Figura 1. Entorno de programación principal XENON). A continuación se describen brevemente ambas. ü Entorno de programación: Traductor Es un entorno de programación ensamblador basado en un Lenguaje Simbólico de 2 pasos (LS2). El programa se encuentra en el archivo xenon.main.jar que una vez ejecutado aparece como en la ventana mostrada en la Figura 1. Entorno de programación principal XENON. Dicho programa produce ficheros ejecutables a partir de ficheros de texto (código ASCII) escritos en LS2, con extensión.ls2. Figura 1. Entorno de programación principal XENON. Práctica 0. Curso 2017/18 1

El programa posee un traductor (denominado en el mundo profesional compilador) que además de traducir el programa en LS2 a código binario (denominado en el mundo profesional código máquina), genera mensajes por pantalla informando del resultado de dicho proceso de traducción. Se puede acceder al mismo a través del icono desde la ventana principal. Si el proceso ha sido correcto el mensaje será Compilación de nombre_archivo.ls2 correcta y guardada en nombre_archivo.ece. En otro caso, el traductor informa de los posible errores de traducción detectados en el proceso, informando además de la línea en que se ha producido el error. El código binario o código máquina se escribe en un fichero en el mismo directorio de trabajo. El nombre de dicho fichero se genera de forma automática como nombre_archivo.ece. Como se verá a continuación dicho fichero se usará como entrada para el programa de ejecución. ü Entorno de programación : Depurador El mismo entorno de programación contiene un acceso al Depurador, a través del icono, que es una aplicación que permite ejecutar los programas instrucción a instrucción, mostrando al mismo tiempo el contenido de los registros y la memoria de CESIUS, y facilitando la comprensión del funcionamiento de la máquina, y a su vez la localización de posibles errores de programación. En la Figura 2. Depurador del emulador XENON. se muestra la ventana del Depurador. Figura 2. Depurador del emulador XENON. ü Entorno de programación: Ejecutar Para poder cerrar el ciclo de programación completo, el entorno de programación permite también ejecutar el programa binario (objeto binario), a través del icono. Como se ha dicho más arriba la aplicación genera un fichero para almacenarlo de forma automática denominado nombre_archivo.ece. En resumen, esta aplicación permite emular la ejecución de un programa y muestra los resultados obtenidos en pantalla como si dicha computadora existiese realmente. Esta aplicación para ejecución de los programas también se distribuye por separado y se encuentra en el archivo xenon.emu.jar. Con ella se puede ejecutar el código binario creado directamente, proporcionándole el fichero nombre_archivo.ece como entrada, tantas veces como se desee. Práctica 0. Curso 2017/18 2

3. Desarrollo de la Práctica Para ilustrar los conceptos de programación de computadores y permitir que el alumno se familiarice con el emulador XENON, se propone la realización y análisis de dos programas. El primero consiste en el desarrollo de un programa que calcule la media aritmética de dos números enteros que introduzca el usuario por teclado. Las tareas a realizar por dicho programa son: 1. Leer dos números que el usuario introduzca por teclado, y almacenarlos en memoria. 2. Calcular la media aritmética y almacenar el resultado en memoria. 3. Escribir el resultado en la pantalla. La secuencia de operaciones a efectuar por el alumno son las siguientes: a) Preparación de archivos y directorios Ejecutar la aplicación xenon.main.jar y crear un nuevo Proyecto denominado por ejemplo media. Con ello se crea la carpeta y estructura de directorios correcta en el disco duro del PC. b) Escritura del código fuente en lenguaje LS2 De forma automática la aplicación crea el archivo vacío media.ls2. Seleccionando dicho nombre en el menú de la izquierda, se activa el editor de textos propio de la aplicación y nos permite escribir la secuencia de instrucciones en la ventana de la parte derecha. El código fuente completo en LS2 para dicho programa de cálculo de la media se detalla al margen. Una vez escrito dicho programa en LS2 se guarda desde el menú desplegable archivo o desde el icono correspondiente. Todo el código está ahora guardado en el archivo media.ls2 dentro del directorio media. c) Traducción (compilación) del código fuente Para comprobar que el código funciona correctamente generaremos un fichero ejecutable a partir de nuestro fichero fuente empleando el programa traductor. Para traducir el ORG 0 SAL INI A: ESP 1 B: ESP 1 C: ESP 1 DOS: CTE 2 INI: LEE A LEE B CAR A SUM B DIV DOS ALM C ESC C ALT FIN programa fuente almacenado en el fichero media.ls2, ejecutaremos el traductor a través del icono correspondiente descrito en la sección anterior. El traductor nos informará si el proceso se ha realizado correctamente o si hay fallos de codificación. En este último caso se debe volver a revisar el código fuente visualmente y modificarlo en consecuencia. d) Ejecución del programa traducido (compilado) y obtención de resultados La ejecución del programa traducido correctamente se hace a través del icono correspondiente descrito en la sección anterior, tras lo cual seguiremos las solicitudes de entrada de datos requeridas por el programa en la pantalla virtual de la computadora. Introduciremos los números enteros solicitados por el programa, y obtendremos su media aritmética como resultado. Recordemos que la computadora CESIUS únicamente maneja números enteros por lo que los resultados fraccionarios aparecerán truncados, esto es, el programa mostrará como resultado de la media de 3 y 6, el número 4 y no 4.5. e) Análisis del programa En este apartado el alumno deberá completar la Tabla 1. Depuración del programa media que se muestra más adelante. Para ello deberá seguir instrucción a instrucción la ejecución del programa desde el principio utilizando el Depurador de la aplicación y anotando los cambios que cada instrucción provoca en las celdas de memoria con etiquetas A, B y C así como los registros A, P, S y E Práctica 0. Curso 2017/18 3

de la computadora. Para ello se proporciona el estado inicial de dichas celdas y registros. La pantalla del Depurador, al que se accede a través del icono correspondiente descrito en la sección anterior, se divide en varias zonas donde se muestran todos los registros de la computadora A, I, P, S, T y E y el teclado y pantalla virtuales. A la derecha se muestra la memoria en una ventana dividida en dos partes. Cada vez que ejecuta una instrucción se refresca el contenido de los registros y celdas de memoria además de su color. Es preciso tener en cuenta la actualización del contenido se realiza justo al terminar la ejecución de una instrucción, por lo que el registro P apunta a la instrucción siguiente, pero ésta no ha sido leída aún de la memoria. De este modo, podemos rellenar la tabla, teniendo en cuenta los valores para las celdas de memoria y registros correspondientes a una determinada instrucción. Recuérdese que el Depurador sustituye las etiquetas del código fuente por las direcciones de memoria a las que apuntan, por lo que el aspecto de las instrucciones que muestra el depurador no es idéntico al código fuente tecleado. El código que presenta el depurador no tiene etiquetas, sino valores numéricos de posiciones de memoria. Estos valores numéricos pueden mostrarse en las bases binaria, decimal y hexadecimal desde el menú vista. Además recuerde que las pseudoinstrucciones no generan código y constituyen únicamente directivas del programa traductor, como por ejemplo la sentencia ORG 0, que indica la posición de memoria en la que comienza a generarse el código, pero no genera ninguna instrucción. Por este motivo, no deben rellenarse las celdas correspondientes a estas pseudoinstrucciones que aparecen rellenas con el símbolo - en la tabla. Por último recuerde que las posiciones de memoria dependen del valor indicado con la pseudoinstrucción ORG. En este caso es ORG 0 por lo que A, B y C se corresponden con las direcciones 1, 2 y 3. NOTA IMPORTANTE: La Tabla 1. Depuración del programa media debe interpretarse del siguiente modo: cada fila presenta el valor de las celdas de memoria y registros justo DESPUÉS de la ejecución de la instrucción de la primera columna de dicha fila. Por ejemplo, si tenemos una instrucción como CAR VALOR en la posición de memoria 3, deberemos anotar como contenido del registro P (puntero de instrucción) el valor 3 (posición de memoria donde se encuentra la instrucción), si bien el valor del registro acumulador no se actualizará con el valor M(VALOR) hasta la siguiente instrucción. Tabla 1. Depuración del programa media Instrucción Celdas Memoria Registros A B C A P S E Estado inicial 0 0 0 0 0 0 0 ORG 0 - - - - - - - SAL INI A: ESP 1 - - - - - - - B: ESP 1 - - - - - - - C: ESP 1 - - - - - - - DOS: CTE 2 - - - - - - - INI: LEE A LEE B CAR A SUM B DIV DOS ALM C ESC C ALT FIN - - - - - - - Práctica 0. Curso 2017/18 4

4. La directiva DRE. Programación de vectores Los vectores se almacenan en la memoria de CESIUS usando varias posiciones de memoria consecutivas. Para ello basta con reservar memoria como VEC: ESP 3, o VEC: ESP 4, etc. Para poder localizar las diferentes componentes del vector en la memoria es necesario disponer de la posición de memoria en la que comienza dicho vector, es decir la dirección de la primera componente del vector. Para ello se utiliza la directiva DRE, por ejemplo DCV: DRE VEC. Si se necesita operar con una componente concreta del vector, por ejemplo la k- ésima componente (v K ) se puede ver que la dirección en la que se encuentra es DCV + k - 1. Mediante el modo indirecto de instrucción es ahora posible acceder a dicha posición de memoria. Por ejemplo, si en la posición de memoria PUN se tiene la dirección 20, entonces LEE I PUN permite leer un dato almacenándolo en la memoria en la posición 20. Si se incrementa PUN y se procede igual es posible leer en la posición 21, 22, etc. Lectura de un vector En este primer punto se va a realizar un programa que lea un vector de tres componentes. El alumno debe escribir el código fuente del recuadro al margen en un archivo de texto vector.ls2. Después ha de traducirlo y depurarlo con el emulador XENON observando que la ejecución del mismo es la correcta. Durante la simulación usando el depurador preste especial atención a las operaciones indirectas. Centre para ello el visor de memoria en torno al vector. Escritura de un vector Se va a modificar el programa anterior para que se realice la escritura del vector que se ha leído previamente. El nuevo programa ha de leer todas las componentes del vector y luego escribirlas todas en la pantalla. Para ello añada al programa anterior vector.ls2 las sentencias necesarias para que se lleve a cabo la escritura del vector. Traduzca y ejecute el programa comprobando el correcto funcionamiento. PISTA: el trabajo se simplifica mucho si uno observa que la escritura de un vector es un proceso igual a la lectura pero cambiando leer por escribir. ADVERTENCIA: al realizar el bucle de escritura recuerde que no puede haber dos etiquetas con igual nombre. ORG 0 SAL INI VEC: ESP 3 K: ESP 1 PUN: ESP 1 UNO: CTE 1 TRES: CTE 3 DCV: DRE VEC INI: CAR UNO ALM K BLE: CAR DCV SUM K RES UNO ALM PUN LEEI PUN CAR K SUM UNO ALM K RES TRES SAN BLE SAC BLE ALT FIN Cálculo de la media aritmética de las componentes de un vector Añada al programa anterior las sentencias necesarias para que además de la lectura del vector calcule y escriba la media de sus componentes. Traduzca y ejecute el programa comprobando el correcto funcionamiento. NOTA: Se necesitará una variable auxiliar para almacenar la suma parcial, que valdrá inicialmente cero. A esta variable hay que sumarle cada componente del vector, para lo cual se puede usar un bucle 1 como el de lectura pero usando SUM I PUN. Tenga en cuenta que en un bucle siempre hay un bloque de inicio antes de las iteraciones, en este bloque se proporciona valor inicial a las variables que se vayan a usar en el bucle. 1 Un bucle es una estructura de programación iterativa, en la cual se ejecutan un grupo de instrucciones repetidas veces predefinidas, a priori. Práctica 0. Curso 2017/18 5

Práctica 1. Programación Avanzada con el Emulador XENON 1. Introducción El objeto de la presente práctica es permitir al alumno ensayar y familiarizarse con los conceptos de programación de computadoras digitales desarrollados en el curso de la asignatura. Para ello se hará uso un emulador de la computadora virtual CESIUS basada en la estructura de Von- Neumann. El término virtual hace referencia al hecho de que dicha máquina no existe físicamente como tal. Por ello se ha desarrollado un emulador virtual, denominado XENON, que consta de un entorno de programación multiplataforma que permiten programar, depurar y emular el comportamiento la computadora con programas desarrollados en el lenguaje de la máquina CESIUS. Esta práctica está enfocada la realización de programas más avanzados basándose en que el alumno conoce el entorno de programación del emulador XENON descrito en la práctica anterior. Recuerde que el entorno de programación XENON está dividido en 2 aplicaciones diferentes, cuyas funciones son fácilmente accesibles mediante iconos. Además XENON es una aplicación de libre distribución programada en tecnología JAVA y disponible en: 2. Programación de matrices http://www.esi2.us.es/~jaar/docencia.htm Las matrices se almacenan en la memoria de CESIUS igual que los vectores usando varias posiciones de memoria consecutivas. Como las matrices tienen 2 dimensiones dicho almacenamiento consecutivo se puede hacer por filas o por columnas. Usaremos aquí el almacenamiento por filas consecutivas. Al igual que en los vectores primero hay que reservar la memoria necesaria como MAT: ESP 4, o MAT: ESP 9, etc. Para poder localizar las diferentes componentes de la matriz en la memoria es necesario disponer de la posición de memoria en la que comienza dicha matriz, es decir la dirección de la primera componente de la matriz, y para ello se utiliza la directiva DRE, por ejemplo DCM: DRE MAT. Si se necesita operar con una componente concreta de una matriz de M filas y N columnas (A MN ), por ejemplo la componente kj- ésima (a kj ), se puede ver que la dirección en la que se encuentra en la memoria es Dirección de { a kj } = DCM + (k 1)*N + j 1, donde la dirección de { a 11 } = DCM Mediante el modo de direccionamiento indirecto en las instrucciones puede accederse fácilmente a dicha posición de memoria operando como en los vectores, es decir usando dicho modo antes de hacer cualquier operación con las componentes de la matriz. Lectura de una matriz En este primer apartado se va a realizar un programa que lea una matriz de M filas y N columnas. El alumno debe entender perfectamente el algoritmo propuesto en la página siguiente, prestando especial atención a la estructura de programación con dos bucles anidados (uno dentro del otro), y analizando si dicho algoritmo cumple las leyes básicas de la programación estructurada explicadas en clase. Una vez analizado en detalle dicho algoritmo debe escribir el código fuente del recuadro a su derecha en un archivo de texto matriz.ls2. Después ha de traducirlo y depurarlo con el emulador XENON observando que la ejecución del mismo es la correcta. Para ello recuerde que puede centrar el visor de memoria en torno a la matriz. Durante la simulación usando el depurador preste especial atención a las operaciones indirectas. Práctica 1. Curso 2017/18 1

ORG 0 SAL INI M: ESP 1 N: ESP 1 MAT: ESP 100 DCM: DRE MAT PUN: ESP 1 J: ESP 1 K: ESP 1 UNO: CTE 1 INI: LEE M LEE N CAR UNO ALM K BFIL: CAR UNO ALM J BCOL: CAR K RES UNO MUL N SUM J RES UNO SUM DCM ALM PUN LEEI PUN CAR J SUM UNO ALM J RES N SAN BCOL SAC BCOL CAR K SUM UNO ALM K RES M SAN BFIL SAC BFIL ALT FIN Para asimilar conceptos se ha incluido en la tabla al margen las direcciones de memoria, en decimal, relacionadas con las componentes de la matriz y su contenido. LS2 DIRECCCION MEMORIA...... M: 1 0 N: 2 0 MAT: 3 {a 11 } 4 {a 21 }...... 6 DCM: 103 3 PUN: 104 0 J: 105 0... Práctica 1. Curso 2017/18 2

Anulación de la diagonal de una matriz leída por teclado Para afianzar conceptos se propone ahora realizar un programa cuyo objetivo es leer una matriz por teclado y almacenarla en memoria para que, posteriormente, el propio programa anule la diagonal de dicha matriz, es decir que ponga a cero los elementos de la diagonal principal. Por ejemplo, si la matriz introducida es la siguiente el resultado debería ser Fíjese que además del módulo principal de anular diagonal, deben añadirse módulos de lectura y escritura de la matriz como se muestra en el diagrama de flujo al margen. Recuerde que no puede haber dos etiquetas con igual nombre. Finalmente, que debido a la simplicidad de las instrucciones de lectura y escritura de la computadora CESIUS la salida por la pantalla sería: - 1 1 3 5 1 3 5 7 3 5 7 9 0 1 3 5 1 0 5 7 3 5 0 9, donde estos números corresponden a las componentes de la matriz original y la matriz con la diagonal anulada. Si se quiere mejorar la visualización de dichas matrices en pantalla se puede mejorar el código para hacer que dichas matrices aparezcan como matrices en dos dimensiones. Para ello se deben añadir los códigos ASCII correspondientes en el sitio adecuado en el programa 2. Cálculo de la matriz transpuesta de una matriz dada En este apartado se propone que realice el algoritmo y su codificación de un programa que permita la lectura de una matriz A, y calcule y escriba en pantalla la matriz transpuesta B de la A, es decir B=A T. Traduzca y ejecute el programa comprobando el correcto funcionamiento. NOTA: Se necesitará reservar espacio para ambas matrices A y B, con sus correspondientes direcciones de comienzo en la memoria y punteros. 2 El código ASCII en decimal del carácter espacio es el 32 y del cambio de línea es el 10. Práctica 1. Curso 2017/18 3