Está en la página 1de 61

Instituto Tecnológico de Nogales

Unidad No. 3 Nombre Unidad Introducción a la programación de un lenguaje


estructurado
Práctica No. 12 Nombre Práctica Introducción y estructura del entorno de un lenguaje de
programación.
Tiempo de 1 Fechas de entregas Una por sesión
desarrollo hora

Objetivo:
Aplica los conceptos básicos de la programación para el diseño de programas básicos.
Competencia:
Desarrolla la capacidad de pensamiento lógico algorítmico para la solución de problemas de contexto a través de la
lógica de programación de computadora.

Valores: Respeto, Interés, Igualdad, Cooperación, Transparencia.


Materiales a utilizar
Cuaderno cuadriculado, lápices de colores y goma de borrar. Computadora personal si desea hacerlo de forma digital.

Introducción:

C# (pronunciado "Ci sharp" en inglés) es un lenguaje de programación moderno, basado en objetos y con seguridad de
características, que permite a los desarrolladores crear muchos tipos de aplicaciones seguras y sólidas que se ejecutan
en el ecosistema de .NET. C# tiene sus raíces en la familia de lenguajes C, y a los programadores de C, C++, Java y
JavaScript les resultará familiar inmediatamente. Este paseo proporciona información general de los principales
componentes del lenguaje en C# 8 y versiones anteriores. Si quiere explorar el lenguaje a través de ejemplos
interactivos, pruebe los tutoriales de introducción a C#., visite https://docs.microsoft.com/es-es/dotnet/csharp/tour-
of-csharp/tutorials/

C# es un lenguaje de programación orientado a componentes, orientado a objetos. C# proporciona construcciones de


lenguaje para admitir directamente estos conceptos, por lo que se trata de un lenguaje natural en el que crear y usar
componentes de software. Desde su origen, C# ha agregado características para admitir nuevas cargas de trabajo y
prácticas de diseño de software emergentes.

Varias características de C# facilitan la creación de aplicaciones sólidas y duraderas. La *recolección de elementos no


utilizados _ reclama de forma automática la memoria ocupada por objetos no utilizados inalcanzables. Los tipos que
aceptan valores NULL ofrecen protección ante variables que no hacen referencia a objetos asignados. El control de
excepciones proporciona un enfoque estructurado y extensible para la detección y recuperación de errores. Las
expresiones lambda admiten técnicas de programación funcional. La sintaxis de Language Integrated Query (LINQ) crea
un patrón común para trabajar con datos de cualquier origen. La compatibilidad del lenguaje con las operaciones
asincrónicas proporciona la sintaxis para crear sistemas distribuidos. C# tiene un _ sistema de tipos unificados*. Todos
los tipos de C#, incluidos los tipos primitivos como int y double, se heredan de un único tipo object raíz. Todos los tipos
comparten un conjunto de operaciones comunes. Los valores de cualquier tipo se pueden almacenar, transportar y
operar de forma coherente. Además, C# admite tanto tipos de referencia definidos por el usuario como tipos de valor.
C# permite la asignación dinámica de objetos y el almacenamiento en línea de estructuras ligeras. C# admite métodos
y tipos genéricos, que proporcionan una mayor seguridad de tipos, así como un mejor rendimiento. C# también
proporciona iteradores, gracias a los que los implementadores de clases de colecciones pueden definir
comportamientos personalizados para el código de cliente.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

C# resalta el control de versiones para asegurarse de que los programas y las bibliotecas pueden evolucionar con el
tiempo de manera compatible. Los aspectos del diseño de C# afectados directamente por las consideraciones de
versionamiento incluyen los modificadores virtual y override independientes, las reglas para la resolución de
sobrecargas de métodos y la compatibilidad para declaraciones explícitas de miembros de interfaz.

Arquitectura de .NET
Los programas de C# se ejecutan en .NET, un sistema de ejecución virtual denominado Common Language Runtime
(CLR) y un conjunto de bibliotecas de clases. CLR es la implementación de Microsoft del estándar internacional Common
Language Infrastructure (CLI). CLI es la base para crear entornos de ejecución y desarrollo en los que los lenguajes y las
bibliotecas funcionan juntos sin problemas.
El código fuente escrito en C# se compila en un lenguaje intermedio (IL) que guarda conformidad con la especificación
de CLI. El código y los recursos de IL, como los mapas de bits y las cadenas, se almacenan en un ensamblado,
normalmente con una extensión .dll. Un ensamblado contiene un manifiesto que proporciona información sobre los
tipos, la versión y la referencia cultural.
Cuando se ejecuta el programa C#, el ensamblado se carga en CLR. CLR realiza la compilación Just-In-Time (JIT) para
convertir el código IL en instrucciones de máquina nativas. Además, CLR proporciona otros servicios relacionados con
la recolección de elementos no utilizados, el control de excepciones y la administración de recursos. El código que se
ejecuta en el CLR se conoce a veces como "código administrado", a diferencia del "código no administrado", que se
compila en un lenguaje nativo de la máquina destinado a un sistema específico.
La interoperabilidad entre lenguajes es una característica principal de .NET. El código IL generado por el compilador de
C# se ajusta a la especificación de tipo común (CTS). El código IL generado desde C# puede interactuar con el código
generado a partir de las versiones de .NET de F# , Visual Basic, C++ o cualquiera de los más de 20 lenguajes compatibles
con CTS. Un solo ensamblado puede contener varios módulos escritos en diferentes lenguajes .NET y los tipos se pueden
hacer referencia mutuamente igual que si estuvieran escritos en el mismo lenguaje.
Además de los servicios en tiempo de ejecución, .NET también incluye amplias bibliotecas, que admiten muchas cargas
de trabajo diferentes. Se organizan en espacios de nombres que proporcionan una gran variedad de funciones útiles
para todo, desde la entrada y salida de archivos, la manipulación de cadenas y el análisis de XML hasta los marcos de
aplicaciones web y los controles de Windows Forms. En una aplicación de C# típica se usa la biblioteca de clases de .NET
de forma extensa para controlar tareas comunes de infraestructura.
Para obtener más información sobre .NET, vea Introducción a .NET,visite el sitio https://docs.microsoft.com/es-
es/dotnet/core/introduction

Estructura Básica de un programa en C#.

La Unidad dos que a continuación mencionamos trata la teoría de los fundamentos de programación.

Recordemos:

2. Desarrollo de lógica algorítmica.

2.1. Metodología para la solución de problemas. 2.2. Metodología para el diseño de software: Top down, Bottom up,
modular y programación estructurada. 2.3. Elementos y reglas de los lenguajes algorítmicos. 2.3.1. Diagramas de flujo.
2.3.2. Pseudocódigo. 2.4. Implementación de algoritmos. 2.4.1. Secuenciales. 2.4.2. Selectivos. 2.4.3. Repetitivos. 2.5.
Pruebas y depuración

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Vayamos a lo físico.

Al instalar el software: Cualquier versión (La que se muestra es 2015, más adelante está la 2022).
Localice el icono o acceso a Visual Studio o C Sharp ya sea en la barra de inicio, de herramientas o acceso directo

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

De clic en él y espere

Dar tiempo al tiempo a que cargue los componentes, a veces es lento la primera vez, así que no desespere. Depende
en cierta medida de la Arquitectura de su computadora o dispositivo.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Cuando aparezca la siguiente interfaz,

De clic a Nuevo proyecto, si es la primera ocasión que realizará uno.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Vamos a detenernos a observar dicha pantalla ya que es demasiado importante reconocer sus elementos.

Cerciórese que este instalado el C#, que la Aplicación sea para Windows Form Visual C Sharp, Cambiar el Nombre de la
Aplicación de WindowsFormsApplication3 sea el que Nosotros nombremos para llevar un mejor control.

En este caso será llamada Practica Botón Cerrar.

Observe que el Nombre de la Solución sea el mismo.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales
Este paso es el mas importante de todos ya que la primera vez que realizamos una solucion, no recordamos donde la
almacenamos por primera vez, por lo que es importante recordar el nombre del directorio donde se almacenraán las
prácticas.

Recomendamos realizar una Carpeta en un lugar accesible y de facil reordatorio para evitar périda de tiempo.

Para ello demos clic en el Botón Examinar.

Ya que tengamos enfocada la Carpeta, donde se almacenará la solución demos clic en Seleccionar carpeta.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales
Nos regresa a la pantalla anterior y demos Aceptar

Las casillas seleccionadas que aparecen

Cuando cree una aplicación o un sitio web en Visual Studio, debe comenzar con un proyecto, tal y como lo estamos
realizando. En un sentido lógico, un proyecto contiene todos los archivos que se compilan en un archivo ejecutable,
biblioteca o sitio web. Estos archivos pueden incluir código fuente, iconos, imágenes, archivos de datos, etc. Un proyecto
también contiene la configuración del compilador y otros archivos de configuración que podrían ser necesarios en diversos
servicios o componentes con los que el programa se comunica.

La primera casilla verificada realiza esta tarea. Si desea saber mas consulte el siguiente Link.

https://docs.microsoft.com/es-es/visualstudio/ide/solutions-and-projects-in-visual-studio?view=vs-2019

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales
La segunda casilla verificada es un poco mas compleja.

Una pequeña introducción.

Git es un sistema de control de versiones distribuido que permite a los equipos trabajar en los mismos documentos de
forma simultánea. Esto significa que hay un único servidor que contiene todos los archivos, pero que cada vez que se
extrae un repositorio de este origen central, la totalidad del repositorio se clona localmente en el equipo del usuario.

Hay muchos hosts remotos que permiten trabajar con Git para el control de versiones, aunque el más común de estos es
GitHub. Existe una serie de pasos para su configuración donde se usa un host de GitHub, pero puede usar cualquier host
de Git para el control de versiones en Visual Studio incluso para Mac.

Si quiere usar GitHub, asegúrese de haber creado y configurado una cuenta antes de trabajar con Git.

Si desea llevar el proyecto con control, de versiones, que incluyen modificaciones, mejoras, actualizaciones, etc. Entonces
le recomendamos configure este tipo de servidor que puede ser local o remoto. Hoy en día se utiliza la nube para
almacenamiento ya que puede compartir la información del proyecto sin atentar contra la información sensible de nuestra
computadora o servidores propios. Es necesario mencionar que Git Hub es mucho mas que un almacén de código fuente.

Git es un software de control de versiones distribuido diseñado por Linus Torvalds (Creador de Linux) como solución a los
problemas de control de versiones que se encontraban los desarrolladores del kernel de Linux. Plataformas como Github
son sistemas web para control de código fuente que utilizan Git como sistema de versionado subyacente y son compatibles
con sus protocolos. Es decir, aunque parezca una obviedad, es necesario aclarar que todos los repositorios de Github
utilizan Git pero no todos los repositorios Git están en Github.

Este control de versiones, que muchos usuarios aportan, se llevaba a cabo en plataforma como Codeplex y SourceForge
que todavía esta esta en uso: Recuerdan del sitio http://pseint.sourceforge.net/?page=descargas.php
Para descargar la herramienta de asistencia para programadores en sus primeras etapas como un pseudolenguiaje
complementado con un editor de diagramas de flujo que utilizamos en la segunda unidad del programa.

Para cerrar recordemos que Git es un software de control de versiones.


GitGub son plataformas web para control de versiones que utilizan Git como control de versiones subyacente y compatible
con sus protocolos.

GitHub no solo es un repositorio de código fuente, es mucho más.

Si desea saber más visite https://docs.microsoft.com/es-es/visualstudio/mac/set-up-git-repository?view=vsmac-2019

Al iniciar con nuestra primera práctica recomendamos no activar la casilla de GitHub y demos Aceptar

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales
Al dar aceptar, aparecerá siguiente ventana creando la solución.

Esta creando los directorios de la solución que hablamos en la página ocho.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Una vez realizada la tarea de crear los directorios aparece la siguiente interfaz IDE Integrated Development Environment
que será nuestra área de trabajo en el resto del curso.

Es necesario apoyarse en el Capítulo dos, página siete, del Libro C# para Estudiantes que hemos puesto a su disposición
para una mejor compresión del tema y desarrollo del conocimiento.

Los componentes principales de esta Interfaz aparecen en la pagina diez del Capitulo dos del libro de C # que mostramos
a continuación.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

La motivación a aprender algo nuevo te lleva a intentarlo, los hábitos de estudio a sostenerlo.

Ramon Robles Marques

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Para la versión 2022:

Aparecerá la siguiente ventana y de click a crear proyecto.

La ventana siguiente da opciones para desarrollar programas de computadora en el entorno de Windows, de forma
grafica y de consola. En nuestro caso es de forma gráfica, en esta ventana de ayuda no aparece C, en esta ventana de
ayuda no aparece C#. Escriba C# aquí y de next.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Aparecerá la opción que buscamos: de click a Windows Form y de next

Se muestra la siguiente ventana de ayuda.

Los pasos subsecuentes son los mismos vistos en páginas anteriores, lo único que cambia son las ventas de ayuda.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Por si no aparece la ventana de las formas como en esta pantalla:

De doble click aquí: o vaya a menú y de Add Form(Windows Form)

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

El lienzo para empezar a diseñar está preparado.

Si observa no hay gran diferencia de la versión 2015 o anteriores a la actual 2022.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Realicemos nuestra primera práctica. Botón Cerrar.

Extienda el lienzo para trabajar con mayor comodidad.

Agregue un Botón de la barra de herramientas dando clic

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Aparece la siguiente pantalla.

En el puntero del mouse aparece un símbolo

+
ab

Posiciónelo y arrastre hasta el tamaño que desee.

El tamaño será el acorde al diseño que se solicite.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Para efectos de nuestra práctica el botón será grande, pero podemos reducirlo como lo haremos más adelante simple y
sencillamente seleccionándolo y volviendo a posicionar en cualquier parte del lienzo.

Una vez seleccionado el Botón 1 (ya que es el primero y se ira aumentando conforme se vayan insertando).

También podemos cambiar de nombre el método.

Podemos realizar su cambio de nombre solo dando clic en Texto y escribiendo Cerrar

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Damos enter o clic en la forma y listo, el Botón 1 pasa a ser Cerrar.

Hasta este momento hemos trabajado en tiempo de diseño, realicemos el tiempo de ejecución (como se verá)

Solo del clic en Iniciar

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Aparecerá el modo de ejecución.

Como puede observar aparece una nueva forma, que es la misma que aparece en tiempo de diseño

También puede solo aparecer la forma de ejecución.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Tal como lo muestra la siguiente pantalla.

Observemos algunos detalles

El siguiente icono en la barra de herramientas, indica tiempo de ejecución y


durante este tiempo no podemos modificar el diseño.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

En la parte superior también podemos ver este indicador. Es el compilador en modo de ejecución o depuración.

Si da clic en él puede detener la ejecución y volver a


diseño.

Si damos clic en el icono la forma en ejecución aparece

Si pasamos el puntero del mouse se puede advertir un cambio en el color del Botón Cerrar.

Ese atributo se debe a las propiedades y evento del botón vistos en la pagina trece y quince del tema Los controles en
tiempo de diseño y Los eventos y el control Button del libro en mención anterior.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Si damos clic al botón Cerrar solo habrá un cambio en su color (si tiene las propiedades).

Hasta este momento no tiene ninguna tarea asignada el Botón Cerrar, para ello tendremos que volver al modo de diseño
y programarle una o indicar que debe de hacer.

Para volver al diseño tendremos que cerrar la aplicación con solo en dar clic en la barra de la forma que contiene el
Botón Cerrar.

o detener la depuración

Importante

Si desea volver al tiempo de diseño y no ha cerrado la aplicación el mensaje de error será algo como esto.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Cierre el cuadro de diálogo.

Para evitar este mensaje cierre la forma en tiempo de ejecución.

De nuevo en la interfaz de diseño, asignemos una tarea al Botón Cerrar.


Demos doble clic al Botón Cerrar y aparece lo siguiente:

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

En esta pantalla aparece una nueva pestaña, la Forma cs es el código fuente o code source, las instrucciones a dar para
que el Botón Cerrar las cumpla. Para ello habrá que ¡Hablarle en su lenguaje!, en su Lenguaje de Programación que es C
Sharp.

Es necesario codificar las instrucciones dentro de la línea 22, ya que ahí reside el cuerpo del botón 1 que hemos
denominado Cerrar.

A esta sección de código se le conoce como método.

Para que el botón cierre es necesario darle la instrucción en su lenguaje, en este caso una Palabra Reservada del
Lenguaje de Programación de C# o Palabra Clave. En este caso la palabra clave es Close Tal y como lo indica editor de
código que es sensible a la escritura, en cierto modo ayuda a ir identificando el componente a utilizar.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

De esta forma debe de quedar la instrucción de cerrar o salir del botón.

Las palabras clave son identificadores reservados predefinidos que tienen significados especiales para el compilador. No
se pueden utilizar como identificadores en su programa a menos que se incluyan @como prefijo. Por ejemplo, @ifes un
identificador válido, pero if no porque if es una palabra clave.

¿Tienes dos minutos para leer?

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/

https://docs.microsoft.com/es-es/dotnet/csharp/language-reference/builtin-types/struct

Una vez colocada la instrucción Close();

Damos clic en Iniciar

Aparece la forma diseñada.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Logramos dar clic al Botón Cerrar y cierra la forma regresando al modo de diseño.

12

Practicar todo este ejercicio para ir adentrándose en el entorno de programación y de la


estructura básica de un programa en C # o C Sharp o C gatito.

Cambie el nombre a la Form1 por Botón Cerrar, también puede cambiar el lugar, tamaño,
fuente del botón, el fondo de la forma etc.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Unidad No. 3 Nombre Unidad Introducción a la programación de un lenguaje


estructurado
Práctica No. 13 Nombre Práctica Tipos de datos en C#
Tiempo de 1 hora Fechas de entregas Una por sesión
desarrollo
Objetivo:
Identifica los tipos de datos en el Lenguaje de programación C #
Competencia:
Desarrolla la capacidad de pensamiento lógico algorítmico para la solución de problemas de contexto a través de la
lógica de programación de computadora.
Valores: Respeto, Interés, Igualdad, Cooperación, Transparencia.
Materiales a utilizar
Cuaderno cuadriculado, lápices de colores y goma de borrar. Computadora personal si desea hacerlo de forma digital.

Introducción:

Un dato es una representación simbólica (numérica, alfabética, algorítmica, espacial, etc.) de un atributo o variable
cuantitativa o cualitativa. Los datos describen hechos empíricos, sucesos y entidades.

Un tipo de datos es la propiedad de un valor que determina su dominio (qué valores puede tomar), qué operaciones
se le pueden aplicar y cómo es representado internamente por el computador. Todos los valores que aparecen en un
programa tienen un tipo. Los tipos de datos más simples son:
Números enteros: Nos sirve para representar números enteros.
Números reales: Nos sirve para representar números reales.
Cadenas de caracteres: Nos permite trabaja con cadenas de caracteres.
Valores lógicos: Nos permite trabajar con valores lógicos.

Los tipos de datos básicos son:


Integer: Para cualquier número entero positivo o negativo.
Natural: Más restrictivo que el anterior. ...
Positive: Más restrictivo aún que el anterior. ...
Float: Para almacenar cualquier número real en formato coma flotante. ...
Character: Para almacenar una única letra (un carácter).
String: Para almacenar una frase completa.

Los tipos de datos numéricos no enteros son Decimal (punto fijo de 128 bits), un tipo de datos único (punto flotante de
32 bits) y un tipo de datos Double (punto flotante de 64 bits).

Los tipos de datos estructurados o tipos compuestos son agrupaciones de otros tipos de datos. Los tipos de datos
estructurados más comunes son: vectores y matrices (array), cadenas de caracteres (string), registros y uniones.

Una variable en programación es una unidad de datos que puede cambiar de valor. Es la forma más simple de
almacenamiento, representando una zona de memoria donde se almacena un elemento de datos.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

En programación orientada a objetos, una variable de instancia o miembro de dato es una variable que se relaciona con
una única instancia de una clase. Cada vez que se crea un objeto, el sistema crea una copia de todas las variables que
están vinculadas con dicha clase, haciéndolas propias de esa instancia.

Las variables tienen dos intenciones importantes, que son que el programador puede elegir los nombres de ellas,
proporcionando así la programación como también que pueda escribir rutinas, módulos, programas o funciones que
trabajen con cualquier valor en ellas. Nunca se deben nombrar estas variables, con el nombre de un tipo de dato del
lenguaje a programar.

En ciencias, especialmente en física, se denomina constante a aquella magnitud cuyo valor no varía en el tiempo. En
matemáticas, una constante es un valor fijo, aunque a veces no determinado. En programación, las constantes, una vez
declaradas mantienen su valor durante toda la ejecución del programa de forma local, en un método o de forma global,
en todo el programa. En cambio, las variables pueden cambiar su valor tantas veces como deseen. Además de cambiar
su valor, las variables también pueden cambiar de tamaño en tiempo de ejecución (punteros o apuntadores).

los identificadores sirven para asemejar (usar o nombrar) todo lo que el programador necesite, entre esto, las variables,
funciones, clases y objetos. Debe comenzar con una letra (A a Z, mayúsculas o minúsculas) y no deben contener espacios
en blanco. Los nombres de variables (lo que se conoce como "identificadores") pueden estar formados por letras,
números o el símbolo de subrayado (_) y deben comenzar por letra o subrayado. No deben tener espacios intermedios.

Un identificador es el nombre que se asigna a un tipo (clase, interfaz, struct, delegado o enumeración), miembro,
variable o espacio de nombres. Los identificadores válidos deben seguir estas reglas:

Los identificadores deben comenzar con una letra, o _.


Los identificadores pueden contener caracteres de letra Unicode, caracteres de dígito decimales, caracteres de conexión
Unicode, caracteres de combinación Unicode o caracteres de formato Unicode. Para obtener más información sobre las
categorías Unicode, vea la base de datos de categorías Unicode. Puede declarar identificadores que coincidan con
palabras clave de C# mediante el prefijo @ en el identificador. @ no forma parte del nombre de identificador. Por
ejemplo, @if declara un identificador denominado if. Estos identificadores textuales son principalmente para la
interoperabilidad con los identificadores declarados en otros lenguajes.

Convenciones de nomenclatura.
Además de las reglas, hay una serie de convenciones de nomenclatura de los identificadores que se usa en las API. de
NET. Por convención, los programas de C# usan PascalCase para nombres de tipo, espacios de nombres y todos los
miembros públicos. Además, son comunes las convenciones siguientes:

Los nombres de interfaz empiezan por una I mayúscula.


Los tipos de atributo terminan con la palabra Attribute.
Los tipos de enumeración usan un sustantivo singular para los que no son marcas y uno plural para los que sí.
Los identificadores no deberían contener dos caracteres _ consecutivos. Esos nombres están reservados para los
identificadores generados por el compilador.

Para saber más visite el sitio.

https://docs.microsoft.com/es-es/dotnet/csharp/programming-guide/inside-a-program/identifier-names

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Tipos de datos más común en C#

Tipo C# Nombre la ¿Con signo? Bytes utilizados Valores que soporta


plataforma .NET
bool System.Boolean No 1 true o false
(verdadero o falso en
inglés)
byte System.Byte No 1 0 hasta 255
sbyte System.SByte Si 1 -128 hasta 127
short System.Int16 Si 2 -32.768 hasta 32.767
ushort System.Uint16 No 2 0 hasta 65535
int System.Int32 Si 4 -2.147.483.648 hasta
2.147.483.647
uint System.Uint32 No 4 0 hasta
4.394.967.395
long System.Int64 Si 8 -
9.223.372.036.854.7
75.808 hasta
9.223.372.036.854.7
75.807
ulong System.Uint64 No 8 0 hasta
18446744073709551
615
float System.Single Si 4 Approximadamente
±1.5E-45 hasta
±3.4E38 con 7 cifras
significativas
double System.Double Si 8 Approximadamente
±5.0E-324 hasta
±1.7E308 con 7 cifras
significativas
decimal System.Decimal Si 12 Approximadamente
±1.0E-28 hasta
±7.9E28 con 28 ó 29
cifras significativas
char System.Char
2 Cualquier carácter
Unicode (16 bits)
uint System.Uint32 No 4 0 hasta
4.394.967.395

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

C# es un lenguaje fuertemente tipado. Todas las variables y constantes tienen un tipo, al igual que todas las expresiones
que se evalúan como un valor. Cada declaración del método especifica un nombre, un número de parámetros, un tipo
y una naturaleza (valor, referencia o salida) para cada parámetro de entrada y para el valor devuelto. La biblioteca de
clases .NET define un conjunto de tipos numéricos integrados, así como tipos más complejos que representan una
amplia variedad de construcciones lógicas, como el sistema de archivos, conexiones de red, colecciones y matrices de
objetos, y fechas. Los programas de C# típicos usan tipos de la biblioteca de clases, así como tipos definidos por el
usuario que modelan los conceptos que son específicos del dominio del problema del programa.

Entre la información almacenada en un tipo se pueden incluir los siguientes elementos:


El espacio de almacenamiento que requiere una variable del tipo.
Los valores máximo y mínimo que puede representar.
Los miembros (métodos, campos, eventos, etc.) que contiene.
El tipo base del que hereda.
Interfaces que implementa.
La ubicación donde se asignará la memoria para variables en tiempo de ejecución.
Los tipos de operaciones permitidas.
El compilador usa información de tipo para garantizar que todas las operaciones que se realizan en el código cuentan
con seguridad de tipos. Por ejemplo, si declara una variable de tipo int, el compilador le permite usar la variable en
operaciones de suma y resta. Si intenta realizar esas mismas operaciones en una variable de tipo bool, el compilador
genera un error, como se muestra en el siguiente ejemplo:

Nota
Los desarrolladores de C y C++ deben tener en cuenta que, en C#, bool no se puede convertir en
int.
No olvide la rúbrica de
evaluación.
Almacenamiento en Memoria.
Para poder entender el Software hay que tratar de comprender el Hardware.
Realice un Mapa Conceptual del Almacenamiento de un Volumen Lógico en la Computadora.
13
Utilice de referencia el siguiente sitio:

https://www.ibm.com/docs/es/aix/7.2?topic=management-logical-volume-storage

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

¿Dónde se almacenan estos datos?

Recordemos la Unidad I, la arquitectura de la computadora en conociendo el Hardware de la computadora.

Enfoquemos las baterías hacia la memoria.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Un dispositivo de almacenamiento es un hardware que se utiliza principalmente para almacenar datos. Cada computadora
de escritorio, computadora portátil, tablet y smartphone tendrán algún tipo de dispositivo de almacenamiento en su
interior y también puedes obtener unidades de almacenamiento externo independientes que se pueden utilizar en varios
dispositivos.

El almacenamiento es necesario no solo para guardar archivos, sino también para ejecutar tareas y aplicaciones. Cualquier
archivo que crees o guardes en la computadora se guarda en el dispositivo de almacenamiento, al igual que cualquier
aplicación que utilices, así como el sistema operativo en el que se ejecuta la computadora.

A medida que la tecnología ha avanzado con el tiempo, los dispositivos de almacenamiento de datos también han
evolucionado de manera importante. Hoy en día, los dispositivos de almacenamiento tienen muchas formas y tamaños, y
hay algunos tipos diferentes de dispositivos de almacenamiento que se adaptan a diferentes dispositivos y funciones.

Un dispositivo de almacenamiento también se conoce como medio de almacenamiento o soporte de almacenamiento; el


almacenamiento digital se mide en megabytes (MB), gigabytes (GB) y, en la actualidad, terabytes (TB).

Algunos dispositivos de almacenamiento de computadoras pueden retener información de manera permanente, mientras
que otros solo pueden retener información de manera temporal. Cada computadora tiene tanto almacenamiento primario
como secundario, donde el almacenamiento primario actúa como memoria de corto plazo de la computadora y el
secundario, como memoria de largo plazo de la computadora.

La computadora trabaja con cuatro tipos de memorias diferentes, que sirven para realizar diversas funciones. Estas son la
memoria RAM, la memoria ROM, la memoria SRAM o Caché y la memoria Virtual o de Swap.

La más importante es la denominada memoria RAM (Random Access Memory), ya que nuestra computadora no podría
funcionar sin su existencia.

En la RAM se guarda distinto tipo de información, desde los procesos temporales como modificaciones de archivos, hasta
las instrucciones que posibilitan la ejecución de las aplicaciones que tenemos instaladas en nuestra PC.

Por tal motivo, es utilizada constantemente por el microprocesador, que accede a ella para buscar o guardar
temporalmente información referente a los procesos que se realizan en la computadora.

Dentro de las memorias RAM existen distintos tipos de tecnologías que se diferencian principalmente por su velocidad de
acceso y su forma física. Entre ellas encontramos las DRAM, SDRAM, RDRAM, entre otras.

Las denominadas DRAM (Dynamyc Random Acces Memory) han sido utilizadas en las computadoras desde los primeros
años de la década de los 80's, y aún en la actualidad continúan utilizándose. Se trata de uno de los tipos de memorias más
económicas, aunque su mayor desventaja está relacionada con la velocidad de proceso, ya que es una de las más lentas,
lo que ha llevado a los fabricantes a modificar su tecnología para ofrecer un producto mejor.

En cuanto al tipo de tecnología SDRAM, derivada de la primera, comenzó a comercializarse a finales de la década de los
90's, y gracias a este tipo de memoria se lograron agilizar notablemente los procesos, ya que puede funcionar a la misma
velocidad que la motherboard a la que se encuentra incorporada.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Por su parte, la tecnología RDRAM es una de las más costosas debido a su complejidad de fabricación, y sólo se utilizan en
procesadores grandes, tales como los Pentium IV y superiores.

Otra de las diferencias entre las distintas memorias RAM se halla en el tipo de módulo del que se trate, que pueden ser
SIMM (Single in line Memory Module), DIMM (Double Memory Module) y RIMM (Rambus in line Memory Module),
dependiendo de la cantidad de pines que contenga y del tamaño físico del módulo.

Hoy en día el almacenamiento se puede dar en la nube publica, privada o hibrida, en nubes gratis alcanzan los 1,024 Gb o
un Tera.

El almacenamiento en la nube es un servicio que permite almacenar datos transfiriéndolos a través de Internet o de otra
red a un sistema de almacenamiento externo que mantiene un tercero. Hay cientos de sistemas de almacenamiento en la
nube diferentes que abarcan desde almacenamiento personal, que guarda o mantiene copias de seguridad de correo
electrónico, fotos, vídeos y otros archivos personales de un usuario, hasta almacenamiento empresarial, que permite a las
empresas utilizar almacenamiento en la nube como solución comercial de copia de seguridad remota donde la compañía
puede transferir y almacenar de forma segura archivos de datos o compartirlos entre ubicaciones.

Los sistemas de almacenamiento suelen ser escalables para adaptarse a las necesidades de almacenamiento de datos de
una persona o una organización, accesibles desde cualquier lugar e independientes de aplicaciones para ofrecer
accesibilidad desde cualquier dispositivo. Las empresas disponen de tres modelos principales para elegir: un servicio de
almacenamiento en nube pública, adecuado para datos no estructurados; un servicio de almacenamiento en nube privada,
que puede estar protegido detrás de un firewall de la compañía para tener más control sobre los datos; y un servicio de
almacenamiento en nube híbrida, que combina servicios de almacenamiento en nube pública y privada para ofrecer una
mayor flexibilidad.
dropbox.com
Resumiendo.

Memoria
El término memoria se refiere al componente dentro de su computadora que le permite acceder a los datos que están
almacenados en su computadora a corto plazo. Usted puede reconocer este componente como DRAM, o memoria de
acceso aleatorio dinámico. Su computadora realiza muchas operaciones accediendo a los datos almacenados en su
memoria a corto plazo. Algunos ejemplos de estas operaciones incluyen editar un documento, cargar aplicaciones, y
navegar por internet. La velocidad y rendimiento de su sistema dependen de la cantidad de memoria que esté instalada
en su computadora. Si usted tiene un escritorio y un archivador, el escritorio representa la memoria de su computador.
Los elementos que necesitará a la mano se guardan en su escritorio para un acceso fácil. Sin embargo, no se puede
almacenar mucho en un escritorio, debido a las restricciones de tamaño.

Almacenamiento
Mientras la memoria se refiere a la ubicación de los datos a corto plazo, el almacenamiento es el componente de su
computadora que le permite almacenar y acceder a datos a largo plazo. Usualmente, el almacenamiento se da en forma
de una unidad de estado sólido o un disco duro. El almacenamiento le permite acceder y almacenar sus aplicaciones,
sistema operativo y archivos por un tiempo indefinido. Mientras que el escritorio representa la memoria de la
computadora, el archivador representa el almacenamiento de su computadora. Los elementos que se deben guardar, pero
no necesariamente acceder, se guardan en el archivador. Debido al tamaño del archivador muchas cosas se pueden
guardar.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Una diferencia importante entre memoria y almacenamiento es que la primera se borra cuando se apaga la computadora.
Por otro lado, el almacenamiento permanece intacto no importa cuántas veces se apague la computadora. Por lo tanto,
en la analogía del escritorio y el archivador, cualquier archivo que quede en su escritorio cuando salga de la oficina se
botará. Todo lo que esté en su archivador se mantendrá igual.

Existen cuatro especificadores de almacenamiento. Estos especificadores de almacenamiento, cuando se usan, deben
preceder a la declaración del tipo de dato de la variable. Estos especificadores de almacenamiento son:

Especificador de almacenamiento Efecto


auto Variable local (por defecto)
extern Variable externa
static Variable estática
register Variable registro

El especificador auto se usa para declarar que una variable local existe solamente mientras estemos dentro de la subrutina
o bloque de programa donde se declara, pero, dado que por defecto toda variable local es auto, no suele usarse.
El especificador extern se usa en el desarrollo de programas compuestos por varios módulos. El modificador extern se usa
sobre las variables globales del módulo, de forma que, si una variable global se declara como extern, el compilador no
crea un almacenamiento para ella en memoria, sino que, tan solo tiene en cuenta que dicha variable ya ha sido declarada
en otro modulo del programa y es del tipo de dato que se indica.
El especificador static actúa según el alcance de la variable:

• Para variables locales, el especificador static indica que dicha variable local debe almacenarse de forma permanente en
memoria, tal y como si fuera una variable global, pero su alcance será el que correspondería a una variable local
declarada en la subrutina o bloque. El principal efecto que provoca la declaración como static de una variable local es el
hecho de que la variable conserva su valor entre llamadas a la función.
• Para variables globales, el especificador static indica que dicha variable global es local al módulo del programa donde se
declara, y, por tanto, no será conocida por ningún otro módulo del programa.

El especificador register se aplica solo a variables locales de tipo char e int.


Dicho especificador indica al compilador que, caso de ser posible, mantenga esa variable en un registro de la CPU y no
cree por ello una variable en la memoria. Se pueden declarar como register cuantas variables se deseen, pues el
compilador ignorara dicha declaración caso de no poder ser satisfecha. El uso de variables con especificador de
almacenamiento register permite colocar en registros de la CPU variables muy frecuentemente usadas, tales como
contadores de bucles, etc.

Algunos ejemplos de uso de los especificadores de almacenamiento son:

register unsigned int a;


static float b;
extern int c;
static const unsigned long int d;

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Las constantes se refieren a los valores fijos que el programa no puede alterar. Algunos ejemplos de constantes de C# son:

Tipo de dato Constantes de ejemplo


char ‘a’ ‘9’ 'Q'
int 1 -34 21000
long int -34 67856L 456
unsigned int 45600U 345 3
float 12.45 4.34e-3 -2.8e9

Existen, además, algunos tipos de constantes, distintos a los anteriores, que es necesario resaltar de forma particular.
Estos tipos de constantes son las constantes hexadecimales y octales, las constantes de cadena, y las constantes de barra
invertida.
Las constantes hexadecimales y octales son constantes enteras, pero definidas en base 16 (constantes hexadecimales) o
en base 8 (constantes octales). Las constantes de tipo hexadecimal comienzan por los caracteres 0x seguidas del número
deseado. Las constantes de tipo octal comienzan por un cero (0). Por ejemplo, son constantes hexadecimales 0x34 (52
decimal), 0xFFFF (65535 decimal); y constantes octales 011 (9 decimal), 0173 (123 decimal).

Las constantes de cadena son conjuntos de caracteres que se encierran entre comillas dobles. Por ejemplo, son constantes
de cadena “Esto es una constante de cadena”, “Estos son unos apuntes de C”, etc. Las constantes de caracteres de barra
invertida se usan para introducir caracteres que es imposible introducir por el teclado (tales como retorno de carro, etc.).

Estas constantes son proporcionadas por C para que sea posible introducir dichas
caracteres como constantes en los programas en los cuales sea necesario. Estas
constantes de caracteres de barra invertida son:

Código Significado
\b Retroceso
\f Alimentación de hoja
\n Nueva línea
\r Retorno de carro
\t Tabulador horizontal
\” Doble comilla
\’ Simple comilla
\0 Nulo
\\ Barra invertida
\v Tabulador vertical
\a Alerta
\o Constante octal
\x Constante

El uso de las constantes de barra invertida es igual que el de cualquier otro carácter, así, si ch es una variable de tipo char,
podemos hacer: ch=‘\t’, o ch=‘\x20’ (carácter espacio), etc., de igual forma que realizaríamos con cualquier otra constante
de carácter. Además, las constantes de barra invertida pueden usarse en el interior de constantes de cadena como un
carácter más, por ello, podemos poner escribir la constante de cadena: "Esto es una línea\n".

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

El Diagrama Lógico de una memoria RAM.

Las memorias Ram de unas computadoras ordinarias de escritorio y móvil.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Proposición de Asignación.

El operador de asignación = asigna el valor de su operando de la derecha a una variable, una propiedad o un elemento de
indizador proporcionado por el operando de la izquierda. El resultado de una expresión de asignación es el valor asignado
al operando izquierdo. El tipo del operando de la derecha debe ser el mismo que el del operando de la izquierda o debe
poder convertirse implícitamente en él.

El operador de asignación = es asociativo a la derecha, es decir, una expresión con el formato

Se evalúa como

Asignación compuesta
Para un operador binario op, una expresión de asignación compuesta con el formato

es equivalente a

La asignación compuesta es compatible con operadores aritméticos, lógicos booleanos y de desplazamiento y lógicos bit
a bit.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Asignación de uso combinado de NULL

A partir de C# 8.0, puede usar el operador de asignación de uso combinado de NULL ??= para asignar el valor de su
operando derecho al operando izquierdo solo si el operando izquierdo se evalúa como null. Para obtener más información,
consulte Operadores ?? y ??.

Posibilidad de sobrecarga del operador.

Un tipo definido por el usuario no puede sobrecargar el operador de asignación. Sin embargo, un tipo definido por el
usuario puede definir una conversión implícita a otro tipo. De este modo, el valor de un tipo definido por el usuario puede
asignarse a una variable, una propiedad o un elemento de indizador de otro tipo. Para obtener más información, vea
Operadores de conversión definidos por el usuario. Un tipo definido por el usuario no puede sobrecargar de forma explícita
un operador de asignación compuesta. Pero si un tipo definido por el usuario sobrecarga un operador binario op, el
operador op=, si existe, también se sobrecarga de forma implícita.

AMPLIACION.
Operadores de asignación.

Los operadores de asignación asignan un nuevo valor a una variable, una propiedad, un evento o un elemento de
indexador.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

El operando izquierdo de una asignación debe ser una expresión clasificada como una variable, un acceso de propiedad,
un acceso de indexador o un acceso de evento.

El = operador se denomina operador de asignación simple. Asigna el valor del operando derecho a la variable, propiedad
o elemento de indexador proporcionado por el operando izquierdo. Es posible que el operando izquierdo del operador de
asignación simple no sea un acceso a eventos (excepto como se describe en eventos similares a los de campo). El operador
de asignación simple se describe en asignación simple.

Los operadores de asignación distintos del = operador se denominan operadores de asignación compuesta. Estos
operadores realizan la operación indicada en los dos operandos y, a continuación, asignan el valor resultante a la variable,
la propiedad o el elemento indexador proporcionado por el operando izquierdo. Los operadores de asignación compuesta
se describen en asignación compuesta.

Los += -= operadores y con una expresión de acceso a eventos como operando izquierdo se denominan operadores de
asignación de eventos. Ningún otro operador de asignación es válido con un acceso de evento como operando izquierdo.
Los operadores de asignación de eventos se describen en asignación de eventos.

Los operadores de asignación son asociativos a la derecha, lo que significa que las operaciones se agrupan de derecha a
izquierda. Por ejemplo, una expresión con el formato a = b = c se evalúa como a = (b = c) .

Asignación simple.

El = operador se denomina operador de asignación simple.

Si el operando izquierdo de una asignación simple tiene el formato E.P o E[Ei] donde E tiene el tipo en tiempo de
compilación dynamic , la asignación está enlazada dinámicamente (enlace dinámico). En este caso, el tipo en tiempo de
compilación de la expresión de asignación es dynamic , y la resolución que se describe a continuación se realizará en
tiempo de ejecución en función del tipo en tiempo de ejecución de E .

En una asignación simple, el operando derecho debe ser una expresión que se pueda convertir implícitamente al tipo del
operando izquierdo. La operación asigna el valor del operando derecho a la variable, la propiedad o el elemento indexador
proporcionado por el operando izquierdo.

El resultado de una expresión de asignación simple es el valor asignado al operando izquierdo. El resultado tiene el mismo
tipo que el operando izquierdo y siempre se clasifica como un valor.

Si el operando izquierdo es una propiedad o un indexador, la propiedad o el indexador deben tener un set descriptor de
acceso. Si no es así, se produce un error en tiempo de enlace.

El procesamiento en tiempo de ejecución de una asignación simple del formulario x = y consta de los siguientes pasos:
Si x se clasifica como una variable:

x se evalúa para generar la variable.

y se evalúa y, si es necesario, se convierte al tipo de x mediante una conversión implícita (conversiones implícitas).

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Si la variable proporcionada por x es un elemento de matriz de un reference_type, se realiza una comprobación en tiempo
de ejecución para asegurarse de que el valor calculado para y es compatible con la instancia de la matriz de que x es un
elemento. La comprobación se realiza correctamente si y es null , o si existe una conversión de referencia implícita
(conversiones de referencia implícita) del tipo real de la instancia a la que se hace referencia en y el tipo de elemento real
de la instancia de la matriz que contiene x . De lo contrario, se produce una excepción

System.ArrayTypeMismatchException.

El valor resultante de la evaluación y la conversión de y se almacena en la ubicación especificada por la evaluación de x .


Si x se clasifica como un acceso de propiedad o indizador:

La expresión de instancia (si x no es static ) y la lista de argumentos (si x es un acceso de indexador) asociadas a x se
evalúan, y los resultados se usan en la set invocación del descriptor de acceso subsiguiente.

y se evalúa y, si es necesario, se convierte al tipo de x mediante una conversión implícita (conversiones implícitas).
El set descriptor de acceso de x se invoca con el valor calculado para y como su value argumento. Las reglas de covarianza
de matriz (covarianza de matriz) permiten que un valor de un tipo de matriz A[] sea una referencia a una instancia de un
tipo de matriz B[] , siempre que exista una conversión de referencia implícita de B a A .

Debido a estas reglas, la asignación a un elemento de matriz de un reference_type requiere una comprobación en tiempo
de ejecución para asegurarse de que el valor que se está asignando es compatible con la instancia de la matriz. En el
ejemplo

la última asignación provoca que System.ArrayTypeMismatchException se produzca una excepción porque no se


ArrayList puede almacenar una instancia de en un elemento de string[] .

Cuando una propiedad o un indizador declarado en una struct_type es el destino de una asignación, la expresión de
instancia asociada con el acceso a la propiedad o indizador debe estar clasificada como una variable. Si la expresión de
instancia se clasifica como un valor, se produce un error en tiempo de enlace. Debido al acceso a miembros, la misma
regla también se aplica a los campos.
Rúbrica.

14 Realice un resumen de la Asignación compuesta en C#. Puede apoyarse en el siguiente sitio si desea.

https://docs.microsoft.com/es-es/dotnet/csharp/language-reference/language-specification/expressions#assignment-
operators
MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.
Instituto Tecnológico de Nogales

Operadores, Operandos y Expresiones.

Operadores
Las expresiones se construyen a partir de los operadores*operandos _ y. Los operadores de una expresión indican qué
operaciones se aplican a los operandos. Ejemplos de operadores incluyen +, -, _, / y new. Algunos ejemplos de operandos
son literales, campos, variables locales y expresiones.

Hay tres tipos de operadores:

Operadores unarios. Los operadores unarios toman un operando y usan la notación de prefijo (como --x ) o la notación de
postfijo (como x++ ).

Operadores binarios. Los operadores binarios toman dos operandos y todos usan la notación infija (como x + y ).

Operador ternario. Solo un operador ternario, ?: , existe; toma tres operandos y usa la notación de infijo ( c ? x : y ).

El orden de evaluación de los operadores de una expresión viene determinado por la precedencia _ and _ asociativity de
los operadores (precedencia y asociatividad del operador).

Los operandos de una expresión se evalúan de izquierda a derecha. Por ejemplo, en F(i) + G(i++) * H(i) , se llama al método
con F el valor anterior de i , a continuación, se llama al método G con el valor anterior de i , y, por último, H se llama al
método con el nuevo valor de i . Esto es independiente de la prioridad de operador y no está relacionada con ella.

Algunos operadores se pueden sobrecargar. La sobrecarga de operadores permite especificar implementaciones de


operador definidas por el usuario para las operaciones donde uno o ambos operandos son de una clase definida por el
usuario o un tipo de estructura (sobrecarga de operadores).

Prioridad y asociatividad de los operadores.

Cuando una expresión contiene varios operadores, el *precedencia _ de los operadores controla el orden en el que se
evalúan los operadores individuales. Por ejemplo, la expresión x + y _ z se evalúa como x + (y * z) porque el operador *
tiene mayor precedencia que el operador binario +.

La precedencia de un operador se establece mediante la definición de su producción gramatical asociada. Por ejemplo, un
additive_expression se compone de una secuencia de multiplicative_expression s separadas + por - operadores or, lo que
permite que los operadores + y tengan - menor prioridad que los * / operadores, y % .

En la tabla siguiente se resumen todos los operadores en orden de prioridad, de mayor a menor:

Recordemos la importancia de seguir esta jerarquía para optimizar recursos en la computadora.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

SECCION CATEGORIA OPERADORES

Cuando un operando se encuentra entre dos operadores con la misma precedencia, la asociatividad de los operadores
controla el orden en que se realizan las operaciones:

Excepto en el caso de los operadores de asignación y el operador de uso combinado de NULL, todos los operadores binarios
son asociativos a la izquierda, lo que significa que las operaciones se realizan de izquierda a derecha. Por ejemplo, x + y +
z se evalúa como (x + y) + z.

Los operadores de asignación, el operador de uso combinado de NULL y el operador condicional ( ?: ) son asociativos a la
derecha, lo que significa que las operaciones se realizan de derecha a izquierda. Por ejemplo, x = y = z se evalúa como x =
(y = z).

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales
La precedencia y la asociatividad pueden controlarse mediante paréntesis. Por ejemplo, x + y * z primero multiplica y por
z y luego suma el resultado a x, pero (x + y) * z primero suma x y y y luego multiplica el resultado por z.

Prioridad de operadores

En una expresión con varios operadores, los operadores con mayor prioridad se evalúan antes que los operadores con
menor prioridad. En el ejemplo siguiente, la multiplicación se realiza primero porque tiene mayor prioridad que la suma:

OPERADORES CATEGORIA O NOMBRES

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Asociatividad de los operadores.

Cuando los operadores tienen la misma prioridad, su asociatividad determina el orden en el que se realizan las
operaciones:

Los operadores asociativos a la izquierda se evalúan, por orden, de izquierda a derecha. A excepción de los operadores de
asignación y el operador de integración nula, todos los operadores binarios son asociativos a la izquierda. Por ejemplo, a
+ b - c se evalúa como (a + b) - c.

Los operadores asociativos a la derecha se evalúan, por orden, de derecha a izquierda. Los operadores de asignación, el
operador de integración nula y el operador condicional ? : son asociativos a la derecha. Por ejemplo, x = y = z se evalúa
como x = (y = z).

Use paréntesis, para cambiar el orden de evaluación impuesto por la asociatividad de los operadores:

Evaluación de operandos.

Independientemente de la prioridad y la asociatividad de los operadores, los operandos de una expresión se evalúan de
izquierda a derecha. En los siguientes ejemplos, se muestra el orden en el que se evalúan los operadores y los operandos:

EVALUACIÓN DE OPERANDOS

Expresión Orden de evaluación


a+b a, b, +
a+b*c a, b, c, *, +
a/b+c*d a, b, /, c, d, *, +
a / (b + c) * d a, b, c, +, /, d, *

Normalmente, se evalúan todos los operandos de un operador. Sin embargo, algunos operadores evalúan los operandos
de forma condicional. Esto significa que el valor del operando situado más a la izquierda de este tipo de operador define
si se deben evaluar otros operandos, o bien qué operandos deben evaluarse. Estos operadores son los operadores lógicos
condicionales AND (&&) y OR (||), los operadores de integración nula ?? y ??=, los operadores condicionales nulos ?. y ?[],
así como el operador condicional ?:. Para más información, consulte la descripción de cada operador en las tablas que
anteceden a este texto.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Expresiones.
Una expresión es una secuencia de operadores y operandos. En este capítulo se define la sintaxis, el orden de evaluación
de los operandos y operadores y el significado de las expresiones.

Clasificaciones de expresiones.

Una expresión se clasifica de las siguientes formas:


Un valor. Todos los valores tienen un tipo asociado.
Una variable. Cada variable tiene un tipo asociado, es decir, el tipo declarado de la variable.
Espacio de nombres. Una expresión con esta clasificación solo puede aparecer como la parte izquierda de un
member_access (acceso a miembros). En cualquier otro contexto, una expresión clasificada como un espacio de nombres
produce un error en tiempo de compilación.

Un tipo. Una expresión con esta clasificación solo puede aparecer como el lado izquierdo de un member_access (acceso a
miembros) o como un operando para el as operador (el operador as), el is operador (operador is) o el typeof operador (el
operador typeof). En cualquier otro contexto, una expresión clasificada como un tipo genera un error en tiempo de
compilación.

Un grupo de métodos, que es un conjunto de métodos sobrecargados que resultan de una búsqueda de miembros
(búsqueda de miembros). Un grupo de métodos puede tener una expresión de instancia asociada y una lista de
argumentos de tipo asociada. Cuando se invoca un método de instancia, el resultado de evaluar la expresión de instancia
se convierte en la instancia representada por this (este acceso). Se permite un grupo de métodos en un
invocation_expression (expresiones de invocación), un delegate_creation_expression (expresiones de creación de
delegado) y como el lado izquierdo de un operador is y se puede convertir implícitamente en un tipo de delegado
compatible (conversiones de grupo de métodos). En cualquier otro contexto, una expresión clasificada como grupo de
métodos produce un error en tiempo de compilación.

Un literal null. Una expresión con esta clasificación se puede convertir implícitamente a un tipo de referencia o a un tipo
que acepta valores NULL.

Una función anónima. Una expresión con esta clasificación se puede convertir implícitamente en un tipo de delegado
compatible o un tipo de árbol de expresión.

Un acceso de propiedad. Cada acceso de propiedad tiene un tipo asociado, es decir, el tipo de la propiedad. Además, un
acceso de propiedad puede tener una expresión de instancia asociada. Cuando se invoca un descriptor get set de acceso
(el bloque o) de una propiedad de instancia, el resultado de evaluar la expresión de instancia se convierte en la instancia
representada por this (este acceso).

Un acceso de evento. Cada acceso a eventos tiene un tipo asociado, es decir, el tipo del evento. Además, un acceso a
eventos puede tener una expresión de instancia asociada. Un acceso a eventos puede aparecer como el operando
izquierdo de += los -= operadores y (asignación de eventos). En cualquier otro contexto, una expresión clasificada como
acceso de evento produce un error en tiempo de compilación.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales
Un acceso de indexador. Cada acceso de indexador tiene un tipo asociado, es decir, el tipo de elemento del indexador.
Además, un acceso de indexador tiene una expresión de instancia asociada y una lista de argumentos asociada. Cuando
se invoca un descriptor get set de acceso (el bloque o) de un acceso de indexador, el resultado de evaluar la expresión

de instancia se convierte en la instancia representada por this (este acceso) y el resultado de evaluar la lista de argumentos
se convierte en la lista de parámetros de la invocación.

Nada. Esto sucede cuando la expresión es una invocación de un método con un tipo de valor devuelto de void . Una
expresión clasificada como Nothing solo es válida en el contexto de una statement_expression (instrucciones de
expresión).

El resultado final de una expresión nunca es un espacio de nombres, tipo, grupo de métodos o acceso a eventos. En su
lugar, como se indicó anteriormente, estas categorías de expresiones son construcciones intermedias que solo se permiten
en determinados contextos.

Un acceso de propiedad o de indexador siempre se reclasifica como un valor realizando una invocación del descriptor de
acceso get o del descriptor de acceso set. El descriptor de acceso concreto viene determinado por el contexto de la
propiedad o el acceso del indexador: Si el acceso es el destino de una asignación, se invoca al descriptor de acceso set
para asignar un nuevo valor (asignación simple). De lo contrario, el descriptor de acceso get se invoca para obtener el
valor actual (valores de las expresiones).

Valores de las expresiones.

En última instancia, la mayoría de las construcciones que implican una expresión requieren que la expresión denote un
valor. En tales casos, si la expresión real denota un espacio de nombres, un tipo, un grupo de métodos o nada, se produce
un error en tiempo de compilación. Sin embargo, si la expresión denota un acceso de propiedad, un acceso a indexador o
una variable, el valor de la propiedad, el indexador o la variable se sustituyen implícitamente:

El valor de una variable es simplemente el valor almacenado actualmente en la ubicación de almacenamiento identificada
por la variable. Una variable se debe considerar definitivamente asignada (asignación definitiva) antes de que se pueda
obtener su valor o, de lo contrario, se producirá un error en tiempo de compilación.

El valor de una expresión de acceso de propiedad se obtiene invocando el descriptor de acceso get de la propiedad. Si la
propiedad no tiene un descriptor de acceso get, se produce un error en tiempo de compilación. De lo contrario, se realiza
una invocación de miembro de función (comprobación en tiempo de compilación de la resolución dinámica de sobrecarga)
y el resultado de la invocación se convierte en el valor de la expresión de acceso de propiedad.

El valor de una expresión de acceso de indexador se obtiene al invocar el descriptor de acceso get del indexador. Si el
indizador no tiene ningún descriptor de acceso get, se produce un error en tiempo de compilación. De lo contrario, se
realiza una invocación de un miembro de función (comprobación en tiempo de compilación de la resolución dinámica de
sobrecarga) con la lista de argumentos asociada a la expresión de acceso del indizador y el resultado de la invocación se
convierte en el valor de la expresión de acceso del indexador.

Realice las prácticas de Autoevaluación del Libro de texto C # para Estudiantes.


15
4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9 y 4.10.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

16 ELABORACION DE PROGRAMAS.

PRACTICA: llamando a formas.

Etiqueta, AutoSize = False para poder modificar su tamaño, si es necesario.

En una forma (Formas) agregar los botones Forma2, Forma3, Forma4 y Forma5 y Salir.

Insertar una etiqueta del cuadro de herramientas con La Leyenda Ejercicios de Formas: Llamar a Forma2, Forma3,
Forma4 y Forma5.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Para llamar a la Forma2, damos clic en su respectivo botón

E introducimos el siguiente código dentro de las llaves

Form2 frm = new Form2();


frm.Show();

INTERPRETACION

private void indica que el método, trozo de código, solo puede tener acceso dentro de la misma clase, en este caso solo
de las Formas.

button1_Click es el nombre asignado al boton1 que es Llamar a Forma2

object es el objeto que se ha generado, en este caso el boton1

sender corresponde con el objeto que ha generado el evento

EventArgs, llamado e se utiliza para proveer información a


los métodos que tratan el evento.

Código para llamar a Llamar a forma 2

private void button1_Click(object sender, EventArgs e)


{
Form2 frm = new Form2();
frm.Show();
}

Form2 es el nombre de la forma2, asignado creando una nueva instancia (new) para la Forma2 que devolverá un valor.

Muestra el formulario o forma llamada. En sistemas mas complejos se utiliza ShowDialog.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Para agregar una forma mas vaya a Proyecto y de clic a la primera opción.

De agregar y así sucesivamente para las otras formas hasta la número 5.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Corra la aplicación con la instrucción

Aparecerá, si no existe algún problema, la Form2

Sugerencia, puede anexar un Botón Cerrar, como ya se ha visto, en la Forma 2 y salir de ahí y regresar a la forma Formas
o dar clic en cerrar. Recuerde que puede modificar el tamaño de la Forma.

Con una etiqueta ingrese a la formas su nombre y correo oficial .

RECUERDE QUE ES EN TODAS Y CADA UNA DE LAS FORMAS DE LAS PRACTICAS Y TRABAJOS REALIZADOS.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

17

En la Forma 2 agregar un checkBox1 con etiqueta Salir, un botón regresar y un radioButton1 con etiqueta de ir a la
forma1

Pista: Vaya al cuadro de herramientas e inserte los componentes solicitados.

Con una etiqueta ingrese a la forma su nombre y correo oficial .

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Evaluación. Unidad III Introducción a la programación de un lenguaje estructurado

ALGORITMOS Y LENGUAJES DE PROGRAMACION INGENIERIA INDUSTRIAL. 25/abril/2022

NOMBRE________________________________________________________________________

Realice de forma individual el siguiente diseño.

No olvide poner su nombre y correo oficial dentro de la forma.


TIPS.

✓ Sustituya los correos de su servidor por los integrantes de su equipo, para ello puede hacer la forma más grande.
✓ Componenetes:
✓ 6

✓ 6

✓ 3

✓ 2

A esta forma agregue la operación de potencia base 2 o el cuadrado del número calculado.

Trabajo a entregar 25 de abril, a mas tardar el día 29 de abril del 2022.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

Mas pistas.

No es necesario programar las cajas de texto, solo los botones Calcular, Limpiar y Salir.

El código fuente para sus respectivos botones es el siguiente:

private void button1_Click(object sender, EventArgs e)


{
// BOTON CALCULAR
int valor1 = int.Parse(textBox1.Text); Agregue el código
int valor2 = int.Parse(textBox2.Text);
int suma = valor1 + valor2; restante para las
int resta = valor1 - valor2; demás operaciones.

textBox3.Text = suma.ToString();
textBox4.Text = resta.ToString();
textBox5.Text = mult.ToString();
textBox6.Text = div.ToString();
}

private void button2_Click(object sender, EventArgs e)


{
//BOTON LIMPIAR
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = ""; Agregue el código
textBox4.Text = ""; restante para las
demás operaciones.
}

private void button3_Click(object sender, EventArgs e)


{
//BOTON CERRAR
Close();
}

***Solo falta agregar el código acerca de la operación de potencia solicitada.

Suerte.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

INGENIERÍA INDUSTRIAL

Rubricas

Rubrica grupal: NO APLICA EN ESTA OCASIÓN.


GRUPO 1 GRUPO 2 GRUPO 3 GRUPO 4 GRUPO 5 GRUPO 6
Definieron los
conceptos
Desarrollo de
la práctica
Trabajo
colaborativo
Tiempo de
entrega
Disciplina

CUMPLE 2 PUNTOS PARCIALMENTE 1 PUNTO NO CUMPLE 0 PUNTOS

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales
INGENIERÍA INDUSTRIAL

Rubrica de evaluación Cumple: 2 puntos Parcialmente 1 punto NO Cumple 0 puntos

Definieron los conceptos Los alumnos definieron los Los alumnos definieron de Los alumnos No definieron
conceptos adquiridos, no manera parcial los de ninguna manera los
tuvieron problema alguno conceptos adquiridos, conceptos adquiridos, No
para definir y comprender tuvieron indecisiones y mostraron comprensión y
los conceptos. mostraron inseguridad, los conceptos No se
pero no mayor problema afirmaron de ninguna
para definir y comprender forma.
los conceptos.
Desarrollo de la práctica Los alumnos desarrollaron Los alumnos desarrollaron Los alumnos no
de manera muy precisa la de manera parcial la desarrollaron la práctica,
práctica, no tuvieron práctica, mostraron mostraron inseguridad y
problema alguno para inseguridad y tuvieron tuvieron demasiados
desarrollar los pasos que problema para desarrollar problemas para desarrollar
involucran la práctica. los pasos que involucran la los pasos que involucran la
práctica. práctica.
Trabajo colaborativo Los alumnos mostraron un Los alumnos mostraron un Los alumnos mostraron un
trabajo colaborativo trabajo colaborativo trabajo colaborativo
excelente, se desarrollaron bueno, se desarrollaron en pésimo, se desarrollaron en
en completa armonía armonía parcial durante el completa desarmonía
durante el desarrollo de la desarrollo de la práctica. durante el desarrollo de la
práctica. práctica.
Tiempo de entrega Los alumnos entregaron en Los alumnos entregaron de Los alumnos No entregaron
tiempo y forma el trabajo forma parcial y no en ni de forma parcial y ni en
de la práctica. No tiempo y forma el trabajo tiempo y forma el trabajo
mostraron ningún retraso de la práctica. Mostraron de la práctica. No
durante el proceso. leves retrasos durante el mostraron interés en
proceso de entrega el entregará el desarrollo de
desarrollo de la práctica. la práctica.
Disciplina Los alumnos mostraron un Los alumnos mostraron Los alumnos no mostraron
completo respeto y falta de respeto y disciplina un completo respeto y la
disciplina a sus a sus compañeros y disciplina a sus
compañeros y docente. La docente. La actitud compañeros y docente no
actitud mostrada fue mostrada durante el fue la conducente. La
excelente durante el proceso de la práctica no actitud mostrada durante
proceso de la práctica. fue adecuada ya que el proceso de la práctica
tuvieron contratiempos. dejo mucho que desear.
Fueron expulsados del
aula.

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales
INGENIERIA INDUSTRIAL

LISTA DE COTEJO DE TAREAS Y TRABAJOS


Materia: Lugar/Fecha Carrera: Profesor: Unidad/Tema

Alumno(s):

Instrucciones para el llenado: En esta lista de cotejo se señalarán a criterio del evaluador la calidad en la entrega del p
la calidad en la entrega del producto evaluado, señalando en la columna correspondiente y anotando las observaciones
que correspondan.

RESUMEN

Excelente
Contenidos

Regular
Bueno

Malo
Valor 1 .85 .7 .6 Observaciones

Nombre del elemento a Evaluar:

1.- Presentación

2.- Contiene Índice

3.- Contiene una Introducción del trabajo.

4.- Contiene el desarrollo de la investigación

5.- Contiene Conclusiones

6.- Claridad en comentarios

7.- Ortografía

8.- Redacción

9.- Entrega a tiempo

10.- Calidad de tarea

Puntuación

Calificación

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

INGENIERIA INDUSTRIAL

Materia: Lugar/Fecha Carrera: Profesor: Unidad/Tema

Alumno(s):

RUBRICA MAPA CONCEPTUAL

Aspectos a Competente Competente Competente Competente No aprobado


evaluar sobresaliente 100 avanzado intermedio básico
90 80 70 60
Contiene Contiene un Contiene un Contiene Contiene
todos los 80 % de los 75 % de los un 50 % de menos del
Exposición de aspectos aspectos aspectos los 50 % de los
los aspectos importantes sustanciales sustanciales aspectos y aspectos y no
más del tema del tema del tema y no se se muestran
importantes expuestos expuestos no se muestran de forma clara
de forma de forma muestran de de forma y ordenada
clara y clara y forma clara y clara y
ordenada ordenada ordenada ordenada
Presenta en Presenta en Presenta en No Contiene
todos los un 80% los un 75% los contiene jerarquías de
Presenta conceptos conceptos conceptos jerarquías primer y
jerarquías jerarquías de jerarquías de jerarquías de de tercer segundo orden
tercer nivel tercer nivel tercer nivel nivel
de mapas redes de
pensamiento organizador lluvia ideas
Propone Propone Propone Propone Los ejemplos
ejemplos ejemplos ejemplos ejemplos propuestos no
claros y en claros y en claros, pero claros sin son claros ni
Ejemplos relación al relación al sin relación relación al en relación al
tema con tema sin al tema tema tema
ideas ideas
innovadoras innovadoras
Todos los 80 % de los 75 % de los El 50% de No tiene
conceptos conceptos conceptos los uniones
que así lo que así lo que así lo conceptos cruzadas en los
Tipo de uniones requieren requieren requieren que así lo conceptos
presentan presentan presentan requieren
uniones uniones uniones presentan
cruzadas cruzadas cruzadas uniones
cruzadas

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales
Las ideas El 80% de las El 75% de las El 50% de Ninguna de las
principales ideas ideas las ideas ideas
Proposiciones las principales principales principales principales las
presentan las las las presenta
presentan presentan presentan
Todos los El 80% de los El 75% de los El 50% de No presenta
conceptos conceptos conceptos los conexiones
presentan presentan presentan conceptos adecuadas o
Conexión de una una una presentan correctas entre
conceptos conexión conexión conexión una los conceptos
adecuada adecuada adecuada conexión
con él o los con él o los con él o los adecuada
siguientes siguientes siguientes con él o los
siguientes
Utiliza Utiliza Utiliza Utiliza No utiliza
palabras palabras palabras palabras palabras en los
adecuadas adecuadas adecuadas en el 50% enlaces entre
en el 100% en el 80% de en el 75% de de los conceptos
Enlaces de los los enlaces los enlaces enlaces
enlaces entre entre entre
entre conceptos y conceptos y conceptos
conceptos y concuerdan algunas no y no
concuerdan con el tipo concuerdan concuerda
con el tipo de relación con el tipo con el tipo
de relación de relación de relación
Escala de
evaluación
Evaluación final Fecha de evaluación

Nombre del
evaluador

Firma del
evaluador

Observaciones

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.


Instituto Tecnológico de Nogales

MTRO. RAMON ROBLES MARQUES INGENIERIA EN SISTEMAS COMPUTACIONALES.

También podría gustarte