Está en la página 1de 159

MATERIAL DE APOYO PARA EL CURSO:

DESARROLLO DE SOFTWARE DE
APLICACIÓN USANDO PROGRAMACIÓN
ORIENTADA A OBJETOS

Ing. Martin Martínez Muñoz

Ing. Martín Martínez Muñoz


Índice

Unidad I

Contenidos específicos:
1. Conceptos fundamentales de C#
a. La tecnología C# (Antecedentes de C#)
b. Elementos de la tecnología C# (Características de C#)
c. Que es el Framework de Microsoft
d. Instalación de Visual Studio
e. Configuración de Visual Studio

2. Conceptos fundamentales de Clases


a. Clase
b. Miembros de clase (atributos y métodos)
c. Constructores
d. Namespace
e. La sentencia using
f. Clases, métodos, atributos y modificadores

3. Estructura de un programa C#
a. Identificadores y palabras clave
b. Tipos de Datos
c. Conversión de Tipos
d. Clases envoltorio o Parseo
e. Variables, declaraciones y asignación
f. Constantes
g. Comentarios

4. Conceptos, definiciones e interfaz con los elementos de C#


a. La interfaz del medio ambiente de desarrollo Visual Studio.
b. Descripción de un Proyecto en C# y sus propiedades.
c. La clase Form, sus propiedades y sus Métodos
d. La clase aplication
e. Manipulación de controles básicos (Button, CheckBox,
NumericUpDown, PictureBox, RadioButton, TextBox, ToolTip),
propiedades y eventos.
f. Manipulación del controles de Rango definido (HScrollBar,
VScrollBar, TrackBar, ProgressBar) , propiedades y eventos.
g. Manipulación del controles de Fecha y Tiempo (DateTimePicker,
MonthCalendar, Timer) , propiedades y eventos.
h. Manipulación del controles contenedores (GroupBox, Panel,
TabControl) , propiedades y eventos.

5. Expresiones y Flujos de Control


a. Operadores Aritméticos
b. Operadores Relacionales.
c. Operadores Lógicos.
d. La Clase Math
e. La Clase String
f. La Clase DateTime
g. Sentencia If
h. Sentencia Switch
i. Ciclo For
j. Ciclo While
k. Ciclo Do While

6. Arreglos (Unidimensionales y Bidimensionales)


a. Conceptos generales
b. Declaración
c. Creación e inicialización
d. Operaciones con los elementos de un arreglo.
e. Métodos de la clase Array

7. Listas
a. Uso de los métodos de la clase List.

Proyecto de fin de Unidad


Unidad II

1. Evaluación diagnóstica.
2. Conceptos Fundamentales de Programación Orientada a Objetos (POO)
a. Conceptos fundamentales
b. Estructura de una clase
c. Clases, métodos, atributos y modificadores
d. Miembros de clase (atributos y métodos)
e. Constructores
f. Paquetes

3. Diseño de Clases
a. Superclases
b. Subclases
c. Herencia
d. Polimorfismo
e. Sobreescritura de métodos.
f. Sobrecarga
g. Métodos
h. Constructores
i. Inicialización de variables y métodos estáticos
j. Clases, métodos y variables finales

4. Excepciones
a. Definición
b. Sentencias try, catch y finally

5. Conectividad ADO.NET
a. Enlazar una base de datos (Conection, DataAdpter, Command,
DataReader, DataTable)
b. Proceso de altas y bajas de datos.
c. Proceso de modificación y consultas de datos (Select, Insert, Update,
Delete)
d. Manejo de Transacciones en C#

6. Creación de Reportes
a. Creación de Reportes con Crystal Reports
b. Visualización de Reportes en C#

7. Pruebas a los sistemas de información.

8. Validar el sistema de información.

Proyecto de Fin de Unidad


Unidad III

1. Evaluación diagnóstica.
2. Analiza y Diseña Sistemas
a. Conceptos Generales de la metodología de análisis y diseño de
sistemas.
b. Sistema, Características, Tipos, y Ejemplos.
c. Metodología.
i. Planificación
ii. Investigación preliminar (Estudio de viabilidad y factibilidad)
iii. Identificación de requerimientos
iv. Análisis/Recopilación de datos
v. Diseño
vi. Desarrollo
vii. Pruebas
viii. Implementación y/o Mantención
ix. Manuales técnicos y de usuario. (Procedimientos y
Elaboración).

3. Metodologías de Desarrollo de sistemas en Cascada, Incremental y Espiral

4. Modelado de Software usando UML.


a. Fundamentos de UML y Teoría de Objetos.
b. Elementos Comunes a todos los Diagramas
i. Notas
ii. Dependencias
c. Diagramas de estructura estática
i. Clases
ii. Objetos
iii. Asociaciones
iv. Herencia
v. Elementos Derivados
d. Diagramas de casos de Uso
i. Actores
ii. Casos de uso
iii. Relaciones entre casos de uso
e. Diagramas de Interacción.
f. Diagramas de secuencia
g. Diagramas de colaboración.
h. Diagramas de Estado.

5. Ejercicio Integrador con Base de Datos


6. Elaborar el manual de usuario
7. Implantar el sistema de información
8. Realizar mantenimiento al sistema de información
Conceptos fundamentales de C#
La tecnología C# (Antecedentes de C#) y Elementos de la
tecnología C# (Características de C#)
Historia de C#
BIBLIOGRAFÍA

https://docs.microsoft.com/es-es/dotnet/csharp/whats-new/csharp-version-history. (s.f.).
https://docs.microsoft.com/es-es/dotnet/csharp/whats-new/csharp-version-history.

C# versión 1.0
Al echar la vista atrás, la versión 1.0 de C# se parecía mucho a Java. Como parte
de sus objetivos de diseño indicados para ECMA, intentaba ser un "lenguaje
orientado a objetos que fuera sencillo, moderno y para fines generales". En aquel
momento, parecerse a Java significaba que conseguía esos primeros objetivos de
diseño.
Pero si volvemos a echarle un vistazo a C# 1.0 ahora, no lo verá tan claro. Carecía
de capacidades asincrónicas integradas y de algunas funcionalidades útiles de
genéricos que se dan por sentado. De hecho, carecía por completo de genéricos.
¿Y LINQ? Aún no estaba disponible. Esas características tardarían unos años más
en agregarse.
C# 1.0 parecía estar privado de características, en comparación con la actualidad.
Lo normal era tener que escribir código detallado. Pero aun así, hay que empezar
por algo. C# 1.0 era una alternativa viable a Java en la plataforma Windows.
Las principales características de C# 1.0 incluían lo siguiente:
 Clases
 Structs
 Interfaces
 Eventos

Ing. Martín Martínez Muñoz 1


 Propiedades
 Delegados
 Expresiones
 Instrucciones
 Atributos
 Literales

C# versión 2.0
Aquí las cosas empiezan a ponerse interesantes. Echemos un vistazo a algunas de
las principales características de C# 2.0, que se publicó en 2005 junto con Visual
Studio 2005:

 Genéricos
 Tipos parciales
 Métodos anónimos
 Nullable types (Tipos que aceptan valores NULL)
 Iteradores
 Covarianza y contravarianza

Otras características de C# 2.0 agregaron capacidades a las características


existentes:
 Accesibilidad independiente de captador o establecedor
 Conversiones de grupos de métodos (delegados)
 Clases estáticas
 Inferencia de delegados

Aunque puede que C# haya comenzado como un lenguaje genérico orientado a


objetos, la versión 2.0 de C# cambió esto enseguida. En cuanto se pusieron con
ella, se centraron en algunos puntos problemáticos graves para los desarrolladores.
Y lo hicieron a lo grande.
Con los genéricos, los tipos y métodos pueden operar en un tipo arbitrario a la vez
que conservan la seguridad de tipos. Por ejemplo, tener List<T> nos permite tener
List<string> o List<int> y realizar operaciones de tipo seguro en esas cadenas o en
enteros mientras los recorremos en iteración. Usar genéricos es mejor que crear un
ListInt que derive de ArrayList o se convierta desde Object en cada operación.
C# 2.0 incorporó los iteradores. Para explicarlo brevemente, los iteradores permiten
examinar todos los elementos de List (u otros tipos enumerables) con un bucle de
foreach. Tener iteradores como una parte de primera clase del lenguaje mejoró
drásticamente la facilidad de lectura del lenguaje y la capacidad de las personas de
razonar sobre el código.

Ing. Martín Martínez Muñoz 2


Aun así, C# seguía yendo por detrás de Java. Java ya había publicado versiones
que incluían genéricos e iteradores. Pero esto cambiaría pronto a medida que los
idiomas siguieran evolucionando.
C# versión 3.0
La versión 3.0 de C# llegó a finales de 2007, junto con Visual Studio 2008, aunque
la cartera completa de características de lenguaje no llegaría realmente hasta la
versión 3.5 de .NET Framework. Esta versión marcó un cambio importante en el
crecimiento de C#. Estableció C# como un lenguaje de programación realmente
formidable. Echemos un vistazo a algunas de las principales características de esta
versión:
 Propiedades implementadas automáticamente.
 Anonymous Types (Tipos anónimos [Guía de programación de C#])
 Expresiones de consulta
 Expresión lambda
 Árboles de expresión
 Métodos de extensión
 Variables locales con asignación implícita de tipos
 Métodos parciales
 Inicializadores de objeto y colección

En retrospectiva, muchas de estas características parecen inevitables e indivisibles.


Todas ellas encajan estratégicamente. Por lo general se considera que la mejor
característica de la versión de C# fue la expresión de consulta, también conocida
como Language-Integrated Query (LINQ).
Una vista más matizada examina árboles de expresión, expresiones lambda y tipos
anónimos como la base sobre la que se construye LINQ. Sin embargo, en cualquier
caso, C# 3.0 presentó un concepto revolucionario. C# 3.0 había comenzado a sentar
las bases para convertir C# en un lenguaje híbrido funcional y orientado a objetos.
En concreto, permitía escribir consultas declarativas en estilo de SQL para realizar
operaciones en colecciones, entre otras cosas. En lugar de escribir un bucle de for
para calcular el promedio de una lista de enteros, permitía hacerlo fácilmente como
list.Average(). La combinación de métodos de extensión y expresiones de consulta
hizo que esa lista de enteros pareciera haberse vuelto más inteligente.
Llevó tiempo hasta que los usuarios realmente captaron e integraron el concepto,
pero ocurrió gradualmente. Ahora, años más tarde, el código es mucho más conciso,
sencillo y funcional.
C# versión 4.0
La versión 4.0 de C# tuvo que lidiar con el carácter innovador que había adquirido
la versión 3.0. Con la versión 3.0, el lenguaje de C# dejó de estar a la sombra de

Ing. Martín Martínez Muñoz 3


Java y alcanzó una posición prominente. El lenguaje se estaba convirtiendo
rápidamente en algo elegante.
La siguiente versión introdujo algunas nuevas características interesantes:
 Enlace dinámico
 Argumentos opcionales/con nombre
 Covariante y contravariante de genéricos
 Tipos de interoperabilidad insertados

Los tipos de interoperabilidad insertados solucionaron un problema de


implementación. La covarianza y contravarianza de genéricos proporcionan más
capacidad para usar genéricos, pero son más bien académicos y probablemente
más valorados por autores de bibliotecas y Framework. Los parámetros opcionales
y con nombre permiten eliminar muchas sobrecargas de métodos y proporcionan
mayor comodidad. Pero ninguna de esas características está modificando el
paradigma exactamente.
La característica más importante fue la introducción de la palabra clave dynamic.
Con la palabra clave dynamic, en la versión 4.0 de C# se introdujo la capacidad de
invalidar el compilador durante la escritura en tiempo de compilación. Al usar la
palabra clave dinámica, puede crear constructos similares a los lenguajes tipados
dinámicamente, como JavaScript. Puede crear dynamic x = "a string" y luego
agregarle seis, dejando que el runtime decida qué debería suceder después.
Los enlaces dinámicos pueden dar lugar a errores, pero también otorgan un gran
poder sobre el lenguaje.
C# versión 5.0
La versión 5.0 de C# era una versión del lenguaje centrada. Casi todo el trabajo de
esa versión se centró en otro concepto de lenguaje innovador: el modelo async y
await para la programación asincrónica.
Estas son las principales características:
 Miembros asincrónicos
 Atributos de información del llamador

El atributo de información del autor de la llamada permite recuperar fácilmente


información sobre el contexto donde se está ejecutando sin tener que recurrir a una
gran cantidad de código de reflexión reutilizable. Tiene muchos usos en tareas de
registro y diagnóstico.
Pero async y await son los auténticos protagonistas de esta versión. Cuando estas
características salieron a la luz en 2012, C# cambió de nuevo las reglas del juego
al integrar la asincronía en el lenguaje como un participante de primera clase. Si
alguna vez ha trabajado con operaciones de larga duración y la implementación de

Ing. Martín Martínez Muñoz 4


sitios web de devoluciones de llamada, probablemente le haya encantado esta
característica del lenguaje.
C# versión 6.0
Con las versiones 3.0 y 5.0, C# había agregado nuevas características destacables
a un lenguaje orientado a objetos. Con la versión 6.0, en lugar de introducir una
característica innovadora y predominante, se publicaron muchas características
menores que aumentaron la productividad de la programación de C#. Estas son
algunas de ellas:
 Importaciones estáticas
 Filtros de excepciones
 Inicializadores de propiedades
 Miembros de cuerpo de expresión
 Propagador de null
 Interpolación de cadenas
 operador nameof
 Inicializadores de índice

Entre las otras características nuevas se incluyen estas:


 Await en bloques catch y finally
 Valores predeterminados para las propiedades solo de captador

Cada una de estas características es interesante en sí misma. Pero si las


observamos en su conjunto, vemos un patrón interesante. En esta versión, C#
eliminó lenguaje reutilizable para que el código fuera más fluido y fácil de leer. Así
que, para los que adoran el código simple y limpio, esta versión del lenguaje fue una
gran aportación.
En esta versión también se hizo otra cosa, aunque no es una característica de
lenguaje tradicional: publicaron el compilador Roslyn como un servicio. Ahora, el
compilador de C# está escrito en C# y puede usarlo como parte de su trabajo de
programación.
C# versión 7.0
La versión principal más reciente es la versión 7.0 de C#. Esta versión tiene algunas
cosas interesantes y evolutivas en la misma línea que C# 6.0, pero sin el compilador
como servicio. Estas son algunas de las nuevas características:
 Variables out
 Tuplas y deconstrucción
 Coincidencia de patrones
 Funciones locales
 Miembros con forma de expresión expandidos

Ing. Martín Martínez Muñoz 5


 Devoluciones y variables locales ref

Otras características incluidas:


 Descartes
 Literales binarios
 Separadores de dígitos
 Valores devueltos y variables locales
 Expresiones throw

Todas estas características ofrecen capacidades nuevas e interesantes para los


desarrolladores y la posibilidad de escribir un código de manera más clara que
nunca. De manera destacada, condensan la declaración de variables que se van a
usar con la palabra clave out y permiten varios valores devueltos a través de tuplas.
Pero C# se está usando cada vez más. .NET Core ahora tiene como destino
cualquier sistema operativo y tiene puesta la mirada en la nube y la portabilidad. Por
supuesto, esas nuevas capacidades ocupan las ideas y el tiempo de los
diseñadores de lenguaje, además de ofrecer nuevas características.

Ing. Martín Martínez Muñoz 6


Que es el Framework de Microsoft (Microsoft)
BIBLIOGRAFÍA

https://docs.microsoft.com/es-es/dotnet/framework/get-started/index

https://docs.microsoft.com/es-es/dotnet/framework/get-started/net-core-and-open-source

Introducción a .NET Framework


.NET Framework es un entorno
de ejecución runtime que
administra aplicaciones cuyo
destino es .NET Framework.
Incorpora Common Language
Runtime, que proporciona la
administración de la memoria y
otros servicios del sistema, y una
biblioteca de clases completa,
que permite a los programadores
aprovechar el código estable y
fiable de todas las áreas
principales del desarrollo de
aplicaciones.

.NET Framework está disponibles solo en los sistemas Windows. Puede usar .NET
Core para ejecutar aplicaciones en Windows, MacOS y Linux.
¿Qué es .NET Framework?
.NET Framework es un entorno de ejecución administrado para Windows que
proporciona diversos servicios a las aplicaciones en ejecución. Consta de dos
componentes principales: Common Language Runtime (CLR), que es el motor de
ejecución que controla las aplicaciones en ejecución, y la biblioteca de clases de
.NET Framework, que proporciona una biblioteca de código probado y reutilizable
al que pueden llamar los desarrolladores desde sus propias aplicaciones. Los
servicios que ofrece .NET Framework a las aplicaciones en ejecución son los
siguientes:
 Administración de la memoria. En muchos lenguajes de programación, los
programadores son responsables de asignar y liberar memoria y de
administrar la vida útil de los objetos. En las aplicaciones de .NET
Framework, CLR proporciona estos servicios en nombre de la aplicación.

Ing. Martín Martínez Muñoz 7


 Sistema de tipos comunes. En los lenguajes de programación
tradicionales, el compilador define los tipos básicos, lo que complica la
interoperabilidad entre lenguajes. En .NET Framework, los tipos básicos los
define el sistema de tipos de .NET Framework y son comunes a todos los
lenguajes que tienen como destino .NET Framework.
 Biblioteca de clases extensa. En lugar de tener que escribir cantidades
extensas de código para controlar operaciones comunes de programación de
bajo nivel, los programadores usan una biblioteca de tipos accesible en todo
momento y sus miembros desde la biblioteca de clases de .NET Framework.
 Marcos y tecnologías de desarrollo. .NET Framework incluye bibliotecas
para determinadas áreas de desarrollo de aplicaciones, como ASP.NET para
aplicaciones web, ADO.NET para el acceso a los datos, Windows
Communication Foundation para las aplicaciones orientadas a servicios y
Windows Presentation Foundation para las aplicaciones de escritorio de
Windows.
 Interoperabilidad de lenguajes. Los compiladores de lenguajes cuya
plataforma de destino es .NET Framework emiten un código intermedio
denominado Lenguaje intermedio común (CIL), que, a su vez, se compila en
tiempo de ejecución a través de Common Language Runtime. Con esta
característica, las rutinas escritas en un lenguaje son accesibles para otros
lenguajes, de modo que los programadores puedan centrarse en crear
aplicaciones en su lenguaje preferido.
 Compatibilidad de versiones. Con raras excepciones, las aplicaciones que
se desarrollan con una versión determinada de .NET Framework se ejecutan
sin modificaciones en una versión posterior.
 Ejecución en paralelo. .NET Framework ayuda a resolver conflictos entre
versiones y permite que varias versiones de Common Language Runtime
coexistan en el mismo equipo. Esto significa que pueden coexistir varias
versiones de las aplicaciones, y que una aplicación se puede ejecutar en la
versión de .NET Framework con la que se compiló. La ejecución en paralelo
se aplica a los grupos de la versión de .NET Framework 1.0/1.1, 2.0/3.0/3.5
y 4/4.5.x/4.6.x/4.7.x.
 Compatibilidad con múltiples versiones (multi-targeting). Al establecer
.NET Standard como destino, los desarrolladores crean bibliotecas de clases
que funcionan en varias plataformas de .NET Framework compatibles con
esa versión del estándar. Por ejemplo, las bibliotecas que tienen .NET
Standard 2.0 como destino pueden usarlas las aplicaciones que tienen como
destino .NET Framework 4.6.1, .NET Core 2.0 y UWP 10.0.16299.
Si usa el sistema operativo Windows, es posible que .NET Framework ya esté
instalado en el equipo. Además, si instala una aplicación que requiera .NET

Ing. Martín Martínez Muñoz 8


Framework, el programa de instalación de la aplicación puede instalar una versión
concreta de .NET Framework en el equipo. En algunos casos, puede aparecer un
cuadro de diálogo en el que se le pida que instale .NET Framework. Si acaba de
intentar ejecutar una aplicación cuando se muestra este cuadro de diálogo y si el
equipo tiene acceso a Internet, puede ir a una página web que le permita instalar la
versión de .NET Framework que falte.
En general, no debería desinstalar ninguna versión de .NET Framework instalada
en el equipo. Hay dos motivos para ello:
 Si una aplicación que usa depende de una versión específica de .NET
Framework, podría dañarse al quitarla.
 Algunas versiones de .NET Framework son actualizaciones locales de
versiones anteriores. Por ejemplo, .NET Framework 3,5 es una actualización
local de la versión 2.0, mientras que .NET Framework 4.7.2 lo es de las
versiones 4 a 4.7.1.

Ing. Martín Martínez Muñoz 9


.NET Core y código abierto

¿Qué es .NET Core?


.NET Core es una implementación de .NET Standard para uso general, modular,
multiplataforma y de código abierto. Contiene muchas de las API de .NET
Framework (aunque .NET Core es un conjunto más pequeño), e incluye
componentes de entorno en tiempo de ejecución, marco de trabajo, compilador y
herramientas que admiten diversos sistemas operativos y destinos de chip. La
implementación de .NET Core se debe principalmente a las cargas de trabajo de
ASP.NET Core, pero también a la necesidad y la intención de tener una
implementación más moderna. Se puede utilizar en escenarios de dispositivos,
nube e incrustados.
Estas son las principales características de .NET Core:
 Multiplataforma: .NET Core proporciona una funcionalidad clave para
implementar las características de la aplicación que necesita y
reutilizar este código independientemente del destino de la plataforma.
En estos momentos, es compatible con los principales sistemas
operativos (SO): Windows, Linux y macOS. Puede escribir
aplicaciones y bibliotecas que se ejecutan sin modificaciones en todos
los sistemas operativos compatibles.
 Código abierto: .NET Core es uno de los muchos proyectos que
administra .NET Foundation. Al tratarse de un proyecto de código
abierto, .NET Core favorece que el proceso de desarrollo sea más
transparente y que exista una comunidad activa y comprometida.

Ing. Martín Martínez Muñoz 10


 Desarrollo flexible: hay dos modos principalmente para desarrollar
una aplicación, implementación basada en marco e implementación
autocontenida. Con la implementación basada en marco, solo se
instalan su aplicación y las dependencias de terceros, y la aplicación
requiere la presencia de una versión de .NET Core en todo el sistema.
Con la implementación autocontenida, la versión de .NET Core que se
utiliza para compilar su aplicación también se implementa junto con la
aplicación y las dependencias de terceros, y se puede ejecutar
paralelamente con otras versiones. Para obtener más información,
consulte el tema Implementación de aplicaciones .NET Core.
 Modular: .NET Core es modular, ya que se publica a través de NuGet
en paquetes de ensamblado más reducidos. En lugar de un
ensamblado grande que contiene la mayor parte de la funcionalidad
básica, .NET Core está disponible como paquetes más pequeños
centrados en las características. Esta característica nos permite un
modelo de desarrollo más ágil y le permite optimizar su aplicación para
incluir solo los paquetes de NuGet que necesita. Entre las ventajas de
una menor superficie de aplicación se incluyen una mayor seguridad,
mantenimiento reducido, rendimiento mejorado y menor costo en un
modelo de suscripción ajustado a sus necesidades.
NuGet Es un manejador de paquetes que permite instalar y actualizar
librerías y herramientas en Visual Studio. Está basado en una extensión la
cual se acopla a Visual Studio y es instalada desde el Extension Gallery,
agregando funcionalidades de línea de comando (en powershell) e interfaz
gráfica para realizar la búsqueda, instalación y actualización de paquetes.
Plataforma .NET Core
La plataforma .NET Core está formada por varios componentes, entre los que se
incluyen los compiladores administrados, el entorno en tiempo de ejecución, las
bibliotecas de clases base y numerosos modelos de aplicaciones, como ASP.NET
Core.

Ing. Martín Martínez Muñoz 11


Actividad 1
Tema: Conceptos fundamentales de C#
OBJETIVO
Identificar y Conocer los antecedentes de la tecnología C#.
MARCO TEÓRICO
Investigación Documental.
La Investigación Documental es el proceso estratégico en donde el investigador
busca, a través de la observación y consulta en distintas fuentes documentales,
recabar los datos e información existente sobre el tema que pretende estudiar.
La Investigación Documental básicamente se orienta hacia la “selección y
recopilación de información por medio de la lectura y crítica de documentos y
materiales bibliográficos”, que tiene como objetivo el levantamiento de un marco
teórico y de datos.
La Metodología reconoce una serie de pasos, que deberán ser seguidos en el
siguiente orden:
 Elegir cuál será el tema sobre el cual se investigará, puesto que esto ayuda
a delimitar los documentos que deberán consultarse.
 Recopilar una lista de títulos (Bibliografía) que puedan –según el criterio del
investigador- proporcionar información básica e importante para la
Investigación a realizarse.
 Leer y consultar de forma rápida el primer material recopilado.
 Revisar nuevamente el tema escogido, y proceder a su máxima
delimitación, a fin de realizar una investigación especializada.
 En base al material bibliográfico y al ámbito delimitado sobre el que se
realizará la investigación, el investigador deberá realizar un esquema de
actividades, que le permitan orientar las distintas tareas que deberá realizar.
 La delimitación del tema, llevará a que el investigador amplié su bibliografía,
buscando textos que amplíen el tema escogido de forma especializada.
 Cuando se tengan los documentos bases sobre los que se sustentará la
investigación, se deberá entonces proceder a la lectura minuciosa de estos.
 Ya con el proceso de lectura realizado, el investigador deberá realizar una
serie de fichas de contenido, que le garanticen durante el desarrollo de la
Investigación Científica la recuperación y consulta rápida de los
documentos que vaya necesitando.

Ing. Martín Martínez Muñoz 12


 Realizado esto, se deberán cotejar las fichas con el esquema de trabajo, a
fin de organizar y disponer el archivo según las distintas fases que
pretenden abordarse durante la investigación.
 Finalmente, el investigador puede proceder a la redacción de su marco
teórico, así como a la elaboración del resto del trabajo, en caso de que éste
contemple también una fase de práctica, análisis y registro.
MATERIAL, EQUIPO o SOTFWARE A UTILIZAR
 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.
DESARROLLO
Mediante la investigación documental desarrolla los siguientes puntos en tu
cuaderno de trabajo:
1. Elabora un cuadro sinóptico con las principales características del Lenguaje
C#.
2. Elabora una línea del Tiempo de esta tecnología.
3. Elabora una síntesis del funcionamiento del Framework de Microsoft.
4. Elabora un glosario de términos al final de la actividad.

APRENDIZAJE ESPERADO
Conoce los antecedentes y características del lenguaje del C#.
Describe con sus propias palabras el funcionamiento del Framework de Microsoft.

ESTRATEGIA DIDACTICA
Síntesis.
Ing. Martín Martínez Muñoz 13
PRODUCTO FINAL ESPERADO
Cuadro sinóptico con los antecedentes y características del lenguaje C#
Síntesis del funcionamiento del Framework de Microsoft
Línea del Tiempo de la tecnología C#.
Glosario de términos.
EVIDENCIA
Pega en este espacio el resultado de tu trabajo con su respectiva Rubrica de
evaluación.

Ing. Martín Martínez Muñoz 14


Ing. Martín Martínez Muñoz 15
Actividad 2
Tema: Conceptos fundamentales de C#
OBJETIVO
Identificar los componentes del Medio Ambiente de Desarrollo Integrado (IDE)
Visual Studio de Microsoft, descargando, instalando y configurando el IDE Visual
Studio 2017 para el lenguaje de programación C#.
MARCO TEÓRICO
Como hacer un Instructivo.
Los instructivos son generalmente documentos escritos, (aunque también pueden
estar hechos en materiales audiovisuales), en donde se presentan instrucciones de
manera secuencial, lógica y ordenada, de armado, manejo, reparación, de forma
que se ilustre a las personas para el uso, conservación (mantenimiento) o
reparación de aparatos, programas y dispositivos.
El texto instructivo nos informa, de manera clara y detallada, de los pasos
necesarios para llevar a cabo una tarea. La estructura del texto instructivo suele
constar de 3 partes:
 Título de la tarea.
 Materiales necesarios.
 Instrucciones que se deben seguir.
Debe contar con un título, posteriormente debe contener un resumen de los
elementos que se utilizarán, aquí es donde se expone el nombre de cada uno de
estos y si tiene alguna función específica o general dentro de la actividad a realizar,
esta sección es básica, ya que donde el usuario puede conocer o “familiarizarse”
con la acción que llevará a cabo y los elementos que la componen, finalmente las
instrucciones, mismas que tienen que llevar una secuencia organizada.
La primera característica que debemos tomar en cuenta si queremos redactar un
texto instructivo, es la claridad y precisión de las indicaciones, estas deben tener un
lenguaje sencillo y adecuado, debe ser entendido por cualquier persona que
pretenda usar el producto, el siguiente paso es escribir la secuencia de las
actividades en un orden cronológico correcto y entendible, enumerarlas y utilizar
conectores que ayuden a la comprensión de las acciones. “primero conecte”, “una
vez que conectó el cable azul”, si es necesario repasa los pasos y asegúrate que
sean comprensibles.
MATERIAL, EQUIPO o SOTFWARE A UTILIZAR
 Plumones

Ing. Martín Martínez Muñoz 16


 Pizarrón.
 Computadora
 Cuaderno de Trabajo
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.

Reconoce los propios prejuicios, modifica sus puntos de vista al conocer


nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.
DESARROLLO
Mediante la investigación documental desarrolla los siguientes puntos
 Elabora un instructivo de descarga e instalación del medio ambiente de
desarrollo Visual Studio 2017
 Elaborar un Instructivo para crear un proyecto de C# en Visual Studio 2017
(describa las carpetas generadas)
 Describe los componentes y/o herramientas de la pantalla principal del
ambiente de desarrollo Visual Studio 2017.
APRENDIZAJE ESPERADO
Instala y configura el ambiente de desarrollo Visual Studio 2017, genera un primer
proyecto.
Describe con sus propias palabras las carpetas generadas por el IDE Visual Studio
para administrar un proyecto o solución de C#.
ESTRATEGIA DIDACTICA
Investigación documental.
Instructivo de Instalación.
PRODUCTO FINAL ESPERADO
Instructivo de descarga e instalación del medio ambiente de desarrollo Visual Studio
2017.

Ing. Martín Martínez Muñoz 17


Instructivo para crear un proyecto de C# en Visual Studio 2017 (describa las
carpetas generadas)
Glosario de términos.
EVIDENCIA
Pega en este espacio el resultado de tu trabajo con su respectiva Rubrica de
evaluación.

Ing. Martín Martínez Muñoz 18


Ing. Martín Martínez Muñoz 19
Conceptos fundamentales de Clases
Las clases y Objetos
El componente principal de la programación orientada a objetos es la clase.
Nosotros podemos pensar en la clase como si fuera un plano por medio del cual
podemos crear objetos, por ejemplo, pensemos en una casa. Para hacer una casa
lo primero que hacemos es pensar en los cuartos que deseamos que tenga y luego
diseñamos un plano.
El plano no es la casa. Sin embargo, éste nos proporciona las características de la
casa. Por medio del plano podemos construir la casa y en esta construcción sí
podemos llevar a cabo nuestras actividades.
El plano sería equivalente a la clase y la casa construida al objeto. La clase es un
plano, una descripción, y el objeto tiene esas características y puede llevar a cabo
un trabajo concreto. Si necesitásemos hacer otra casa igual, no sería necesario
hacer un nuevo plano, simplemente tomaríamos el plano ya realizado y crearíamos
otra casa.
Una clase nos puede servir para crear muchos objetos independientes pero que
tienen las mismas características. El proceso de crear un objeto a partir de una clase
es lo que conocemos como instanciación.
Adentro de la clase, nosotros colocaremos información y más importante aún, los
métodos que trabajan sobre esta información, es decir, que los datos y los métodos
que los procesan están contenidos dentro de una sola unidad. A esto lo llamamos
encapsulamiento. Al encapsular datos y métodos los protegemos contra la
corrupción de información.
Los datos
Los datos son la información con la que trabajará la clase. La clase solamente debe
tener los datos que necesita para poder llevar a cabo su trabajo. Declarar un dato
es muy similar a declarar una variable, necesitamos indicar el acceso ya que
tenemos básicamente tres tipos de acceso: público, privado y protegido. Cuando
nosotros tenemos un dato con acceso público cualquier elemento del exterior, o
algún otro objeto, puede acceder al dato, leerlo y modificarlo. Cuando tenemos el
acceso privado solamente los métodos definidos dentro de la clase podrán leerlo o
modificarlo.
Un punto muy importante con relación a los datos que no debemos olvidar es que
los datos definidos en la clase son conocidos por todos los métodos de la misma
clase. Es decir, actúan como si fueran globales para la clase. Cualquier método
puede acceder a ellos directamente sin necesidad de que los pasemos como
parámetro.

Ing. Martín Martínez Muñoz 20


En algunos casos podremos colocar el acceso a nuestros datos como público,
aunque preferentemente no lo haremos. Si nos excedemos o usamos el acceso
público en un mal diseño, corremos el riesgo de corrupción de información. Por lo
general, nuestros datos serán privados, aunque esto puede parecer un problema ya
que si el exterior necesita alguna información calculada por el objeto no podrá tener
acceso a ella. Para resolver esto hacemos uso de las funciones de interfaz.
Una función de interfaz es aquella que puede ser invocada desde el exterior y que
regresa una copia del valor de algún dato dentro del objeto. También podemos
usarla para colocar un valor determinado en un dato. La ventaja que nos da la
función de interfaz es que podemos administrar el acceso a nuestra información, y
podemos colocar dentro de ésta código de seguridad que verifique o valide la
información que entra o sale. De esta forma evitamos la corrupción de información.
Los métodos
Los métodos son las funciones que llevan a cabo el proceso o la lógica de la clase.
Los métodos también tendrán un tipo de acceso, al igual que los datos. Trabajarán
sobre los datos de la clase. No hay que olvidar que todos los métodos conocen
todos los datos definidos dentro de la clase, y pueden recibir parámetros y regresar
valores. A un dato definido dentro de la clase no necesitamos pasarlo como
parámetro ya que el método lo conoce. Solamente los métodos que necesiten ser
invocados desde el exterior deben tener acceso público. Si el método sólo se invoca
desde el mismo interior de la clase su acceso debe ser privado. Esto lo hacemos
con fines de seguridad y para mantener el encapsulamiento correctamente.
Cómo declarar la clase y los datos
Las clases se declaran dentro de un namespace y cualquiera que tenga acceso a
ese namespace puede crear objetos de la clase. No olvidemos que la clase es como
el plano y los objetos son realmente los que usamos para llevar a cabo el trabajo.
Para declarar la clase tendremos un esquema como el siguiente:

acceso class nombre


{
// datos

// función de interfaz o propiedades

// métodos

}

Ing. Martín Martínez Muñoz 21


El nombre de la clase puede ser cualquier nombre válido dentro de C#. El nombre
debe ser único para el namespace, es decir no podemos tener dos clases que se
llamen igual adentro del mismo namespace. La clase necesita un bloque de código
y en su interior llevamos a cabo las declaraciones de los elementos que la
componen. Generalmente, declaramos primero los datos.
Podemos diagramar las clases si hacemos uso de UML. La clase del cubo quedará
como se muestra en la siguiente figura:

Los diagramas anteriores se pueden leer fácilmente. Hay un rectángulo que


representa a la clase. El rectángulo está dividido en tres secciones. La sección
superior, que es utilizada para colocar el nombre de la clase, la sección intermedia,
que se usa para indicar los datos que tendrá la clase y la sección inferior, que es
para indicar cuáles son los métodos a utilizar.
El acceso se muestra por medio de los signos + o -. Cuando usamos el signo más
estamos indicando que ese dato o método tiene un acceso del tipo público. En el
caso de que coloquemos el signo menos, el acceso es del tipo privado.
El formato de los datos lleva primero el acceso seguido del nombre del dato. Luego
se coloca : y el tipo que tiene este dato. El tipo puede ser nativo o definido por el
programador. En el caso de los métodos, primero indicamos el acceso seguido del
nombre del método. Como ninguno de nuestros métodos necesita parámetros,
entonces los dejamos vacíos. El tipo del método, es decir el tipo de valor que
regresa, se indica por medio de : seguido del tipo.
Protección de datos y creación de propiedades
La declaración de los datos públicos, puede llevar a corrupción de la información.
Para proteger los datos tenemos que hacerlos privados y proveer una función de
interfaz a aquellos a los que se necesita acceder por el exterior.
Lo primero que hacemos es cambiar el acceso de los datos a privado. Las
propiedades son funciones de interfaz. Nos permiten acceder a los datos privados
de una manera segura y controlada, ya que también nos brindan una forma de
acceso intuitiva y sencilla.

Ing. Martín Martínez Muñoz 22


La propiedad puede ser de varios tipos: lectura, escritura y la combinación de
ambas (lectura-escritura). Una propiedad de lectura solamente nos permite leer el
dato, pero no podemos agregarle información. Una propiedad que es de tipo
escritura sólo nos permite colocar información en el dato, pero no podemos leerlo.
La propiedad de lectura-escritura permite llevar a cabo ambas acciones.
Para lograr esto, la propiedad tendrá dos métodos. El método relacionado con la
lectura se conoce como get y el relacionado con la escritura es set. Dependiendo
de cuál método coloquemos en la propiedad, será su tipo.
La propiedad de éste tiene la siguiente forma de declaración:

public tipo nombre {


get
{


return x;
}
set
{


x=value;
}
}
Las propiedades son públicas para poder llamarlas desde el exterior de la clase. El
tipo está referenciado al tipo del valor que leerá o colocará, ya sea entero, flotante,
doble, etcétera. En su interior tenemos get, donde colocamos el código para sacar
un valor de la clase por medio de return, y a set, donde ponemos el código
necesario para introducir un valor en la clase.
En ocasiones en las propiedades podemos decidir si es necesario algún tipo de
validación. Cada aplicación puede tener sus propias reglas de validación para la
información.
Cuando usemos el método set tendremos una variable previamente definida por el
lenguaje que se llama value. Esta variable representa el valor que el usuario asigna
y podemos usarlo en la lógica que necesitemos.
En ocasiones, dentro de los métodos get y set de la propiedad, tendremos un return
o una asignación. Aunque esto es correcto, no debemos olvidar que en las
propiedades podemos colocar cualquier lógica válida de C# que nos permita validar
la información que sale o entra. Esto hará que nuestro código sea más seguro y
evitaremos problemas con nuestra información.

Ing. Martín Martínez Muñoz 23


Métodos públicos y privados
modificador tipo Nombre(parámetros)
{
código
}

Los métodos pueden regresar información y esta información puede ser cadena,
entero, flotante o cualquier otro tipo. En la sección de tipo tenemos que indicar
precisamente la clase de información que regresa. Si el método no regresa ningún
valor entonces tenemos que indicar a su tipo como void.
Todos los métodos deben identificarse y lo hacemos por medio de su nombre. Los
métodos que coloquemos adentro de las clases deben de tener un nombre único.
El nombre también es utilizado para invocar o ejecutar el método. Los métodos
pueden necesitar de datos o información para poder trabajar. Nosotros le damos
esta información por medio de sus parámetros. Los parámetros no son otra cosa
que una lista de variables que reciben estos datos. Si el método no necesita usar a
los parámetros, entonces simplemente podemos dejar los paréntesis vacíos.
Nunca debemos olvidar colocar los paréntesis, aunque no haya parámetros.
El código del método se sitúa adentro de un bloque de código. En esta sección
podemos colocar cualquier código válido de C#, es decir, declaración de variables,
ciclos, estructuras selectivas e incluso invocaciones a otros métodos.
Los métodos al ser declaradas pueden llevar un modificador antes del tipo. Los
modificadores cambian la forma como trabaja el método.
Debemos saber que las variables que se declaran adentro del método se conocen
como variables locales y solamente serán conocidas adentro de ese método, de
esta forma solo podrán ser invocadas dentro del método correspondiente.
El método puede regresar cualquiera de los tipos definidos en el lenguaje y también
tipos definidos por el programador y objetos de diferentes clases.
El método va a utilizar un comando especial para regresar el valor, este comando
se conoce como return y se usa de la siguiente manera: return variable;
En cuanto la ejecución del programa encuentra un return, el método finaliza aun si
no ha llegado a su fin. Al mismo tiempo que finaliza el método el valor colocado
después del return es regresado a quien hizo la invocación. El valor puede ser
colocado con una variable o explícitamente con un valor en particular. No hay que
olvidar colocar el punto y coma al finalizar la sentencia. La finalización del método
se lleva a cabo, aunque tengamos código escrito después del return.

Ing. Martín Martínez Muñoz 24


Como el método regresa un valor, del lado del invocador necesitamos tener alguien
que pueda recibir el valor regresado. Generalmente usaremos una variable, pero en
algunos casos puede ser una expresión que será evaluada con el valor regresado
por el método.
Los métodos también pueden recibir valores en el momento que son invocadas. De
esta forma trabajarán con los valores pasados por el programa en lugar de pedirlos
al usuario. Estos valores son conocidos como parámetros. Los parámetros pueden
ser de cualquier tipo, ya sea de los tipos nativos de C# como entero, flotante, cadena
o de tipos definidos por el programador como clases y estructuras.
Los parámetros deben llevar su tipo y su nombre. El nombre nos permite acceder a
los datos que contiene y de hecho van a trabajar como si fueran variables locales al
método. Adentro del método los usamos como variables normales. Los parámetros
se definen en la declaración del método. Adentro de los paréntesis del método los
listamos. La forma de listarlos es colocando primero en tipo seguido del nombre. Si
tenemos más de un parámetro para el método, entonces debemos separarlos por
medio de comas.
ORDEN DE LOS PARÁMETROS
Durante la invocación del método los parámetros deben colocarse en el mismo
orden en el cual fueron declarados. No hacerlo así puede llevarnos a que los
parámetros reciban datos equivocados.
Éste es uno de los puntos que debemos cuidar. También es bueno nombrar a los
parámetros de tal manera que su nombre nos recuerde la información que va a
colocársele.
Como el método fue definido para recibir parámetros entonces debemos de pasar
datos en su invocación. Los parámetros son colocados entre los paréntesis. Las
variables usadas en la invocación no necesitan llamarse igual que los parámetros
declarados en el método.
Un método es un bloque de código que contiene una serie de instrucciones. Un
programa hace que se ejecuten las instrucciones al llamar al método y especificando
los argumentos de método necesarios. Los métodos pueden ser públicos o
privados. Los primeros pueden ser invocados desde el exterior del objeto y los
privados solamente desde su interior. Al programar la única diferencia es el tipo de
acceso que colocamos.

Parámetros de métodos frente a Argumentos


La definición del método especifica los nombres y tipos de todos los parámetros
necesarios. Si el código de llamada llama al método, proporciona valores concretos

Ing. Martín Martínez Muñoz 25


denominados argumentos para cada parámetro. Los argumentos deben ser
compatibles con el tipo de parámetro, pero el nombre del argumento (si existe)
utilizado en el código de llamada no tiene que ser el mismo que el parámetro con
nombre definido en el método.
El constructor en las clases
El constructor es un método especial que podemos utilizar con las clases. Éste
generalmente es usado para inicializar los valores de los datos con los que trabajará
el objeto. El constructor es un método especial y tiene ciertas características que lo
distinguen de los demás métodos. Su primera característica es que tiene el mismo
nombre de la clase y su segunda característica más importante es que no tiene tipo,
es decir, que no solamente no regresa nada, sino que no tiene tipo alguno.
El constructor es invocado en forma automática cuando el objeto es instanciado, ya
que esto nos da la oportunidad de llevar a cabo cosas en el instante que se instancia
el objeto, como, por ejemplo, hacer inicializaciones. El constructor puede tener en
su interior cualquier código válido de C# y también puede tener parámetros o no. Si
utilizamos los parámetros tendremos que pasar los valores necesarios en el
momento en el que instanciamos el objeto.
No hay que confundir el constructor
El constructor no se encarga de instanciar el objeto, sólo se invoca en forma
automática en el momento en que el objeto se instancia.
Sobrecarga del constructor
El constructor puede ser sobrecargado, es decir, podemos tener más de una versión
del constructor. Esto resulta útil ya que podemos seleccionar cómo se inicializarán
los datos del objeto dependiendo del tipo de constructor que utilicemos. El
compilador seleccionará automáticamente el tipo de constructor dependiendo de los
tipos y la cantidad de parámetros.
La cantidad de sobrecargas dependerá del análisis y las necesidades del programa.
No debemos exagerar en las sobrecargas, debemos colocar solamente aquellas
que sean realmente necesarias.
El acceso protegido
El acceso protegido es utilizado cuando hacemos uso de la herencia. Si declaramos
un dato como protegido, la propia clase y las clases que hereden de ellas podrán
acceder a él, leerlo y modificarlo. Todas las demás clases lo verán como si su acceso
fuera privado y no podrán acceder a él directamente.

Problemas con las propiedades


Tenemos que decidir oportunamente el tipo de acceso que permitirá la propiedad.
Si tratamos de asignarle un valor a una propiedad de sólo lectura, el compilador nos

Ing. Martín Martínez Muñoz 26


indicará un error. Lo mismo sucede si tratamos de leer una propiedad de sólo
escritura. Por eso lo mejor es planificar durante la etapa de análisis el acceso que
les colocaremos a las propiedades de nuestra clase.
Cómo crear la instancia de nuestra clase
Ya tenemos la clase, que es el plano donde se indica qué datos tiene y qué
información utilizará con ellos. Ahora tenemos que construir el objeto, que es quien
llevará a cabo el trabajo en realidad. Para instanciar un objeto de la clase debemos
utilizar la sintaxis que se muestra a continuación:
clase nombre_objeto = new clase();
Quien realiza realmente la instanciación es new y esa instancia queda referenciada
como nombre_objeto. A partir de nombre_objeto podremos empezar a trabajar
con él.
Cómo asignarles valores a datos públicos
Como ya tenemos la instancia, ya podemos comenzar a trabajar con ella. Haremos
la asignación por medio del operador de asignación = (igual), pero también
deberemos indicar a cuál de todos los datos de la clase vamos a acceder. Esto lo
hacemos con el operador punto.
Usamos la siguiente sintaxis
nombre_objeto.propiedad = expresión

Cómo invocar métodos de un objeto


Cuando invocamos el método de un objeto, éste ejecuta el código que tiene en su
interior. Desde el exterior de la clase solamente podemos invocar métodos que sean
públicos. En este caso sólo tenemos que indicar con qué objetos trabajaremos,
seguido el operador punto y el nombre del método con sus parámetros, si los
necesita.
Usamos la siguiente sintaxis
nombre_objeto.metodo(parámetros)

Una de las ventajas que tiene la programación orientada a objetos es la reutilización


de código. Si necesitáramos dos objetos o más, simplemente creamos nuevas
instancias. Cada una de ellas tendría en su interior sus propias variables y podría
llevar a cabo los cálculos que fueran necesarios.
La programación orientada a objetos es un paradigma de programación diferente a
la programación estructurada. Tenemos que reconocer los objetos que componen
el sistema, así como la comunicación que tienen entre ellos. La clase es el elemento
fundamental de este tipo de programación y actúa como el plano sobre el que los

Ing. Martín Martínez Muñoz 27


objetos son construidos. Los objetos o las instancias son los que realmente llevan
a cabo el trabajo. Los datos y los métodos pueden tener diferentes tipos de acceso:
público, privado o protegido. Las propiedades nos sirven como funciones de interfaz
para poder acceder a los datos privados de forma segura. Las clases pueden tener
un constructor que nos ayuda a inicializar la información. Es posible hacer uso de la
sobrecarga en el constructor.
Espacio de Nombres o namespace.
En general, en informática, un namespace o espacio de nombres es un medio para
organizar clases dentro de un entorno, agrupándolas de un modo más lógico y
jerárquico. Por ejemplo, si estamos desarrollando un conjunto de clases para las
operaciones de gestión de una biblioteca, podemos ir escribiendo todas las clases
y situarlas dentro de una misma aplicación o DLL (biblioteca).
Utilizar espacios de nombres (Guía de programación de C#)
Los espacios de nombres se usan mucho en programas de C# de dos maneras. En
primer lugar, las clases de .NET Framework usan espacios de nombres para
organizar sus clases. En segundo lugar, declarar sus propios espacios de nombres
puede ayudar a controlar el ámbito de nombres de clase y método en proyectos de
programación grandes.
Acceder a los espacios de nombres (using)
La mayoría de las aplicaciones de C# comienzan con una sección de directivas
using. En esta sección se muestran los espacios de nombres que la aplicación usará
frecuentemente, y evita que el programador especifique un nombre completo cada
vez que se use un método que se incluye dentro.

Ing. Martín Martínez Muñoz 28


Actividad 3
Tema: Conceptos fundamentales de Clases
OBJETIVO
El participante será capaz de describir los conceptos de
 Clase
 Miembros de clase (atributos y métodos)
 Constructores
 Espacio de Nombres
 La sentencia using
 Clases, métodos, atributos y modificadores

MARCO TEÓRICO
Investigación Documental.
Consulte el libro de texto Enciclopedia de Microsoft C# Francisco Javier, Sitios de
C# en la web, y desarrolle una síntesis de los siguientes conceptos.
 Clase
 Miembros de clase (atributos y métodos)
 Constructores
 Espacio de Nombres
 La sentencia using
 Clases, métodos, atributos y modificadores

MATERIAL, EQUIPO o SOTFWARE A UTILIZAR


 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:

Ing. Martín Martínez Muñoz 29


 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.

Competencias Genéricas
Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Atributos:
5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Ing. Martín Martínez Muñoz 30


Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.
4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Se apropia de los conceptos y términos relativos a la teoría de clases,
fundamento de la programación orientada a objetos.
DESARROLLO
Mediante la investigación documental escriba una síntesis de los siguientes
conceptos.
 Clase
 Miembros de clase (atributos y métodos)
 Constructores
 Espacio de Nombres
 La sentencia using
 Clases, métodos, atributos y modificadores

APRENDIZAJE ESPERADO
Se apropia de manera clara de los conceptos teóricos de case y objeto, es capaz
de usar la simbología para describir una clase.
ESTRATEGIA DIDACTICA
Investigación documental.
PRODUCTO FINAL ESPERADO
Síntesis de los conceptos:
 Clase
 Miembros de clase (atributos y métodos)
 Constructores
 Espacio de Nombres
 La sentencia using
 Clases, métodos, atributos y modificadores

EVIDENCIA

Ing. Martín Martínez Muñoz 31


Pega en este espacio el resultado de tu trabajo con su respectiva Rubrica de
evaluación.

Ing. Martín Martínez Muñoz 32


Estructura de un programa C#
BIBLIOGRAFÍA

https://docs.microsoft.com/es-es/dotnet/csharp/programming-guide/inside-a-program/general-structure-
of-a-csharp-program

Los programas de C# pueden constar de uno o más archivos. Cada archivo puede
contener cero o más espacios de nombres. Un espacio de nombres puede contener
tipos como clases, structs, interfaces, enumeraciones y delegados, además de otros
espacios de nombres. El siguiente es el esqueleto de un programa de C# que
contiene todos estos elementos.

// Estructura de un programa C#
using System;
namespace YourNamespace
{
class YourClass
{
}

struct YourStruct
{
}

interface IYourInterface
{
}

delegate int YourDelegate();

enum YourEnum
{
}

namespace YourNestedNamespace
{
struct YourStruct
{
}
}

class YourMainClass

Ing. Martín Martínez Muñoz 33


{
static void Main(string[] args)
{
//Your program starts here...
}
}
}

Identificadores y palabras clave


Un identificador es un conjunto de caracteres alfanuméricos de cualquier longitud
que sirve para identificar las entidades del programa (clases, funciones, variables,
tipos compuestos) Los identificadores pueden ser combinaciones de letras y
números.
Cada lenguaje tiene sus propias reglas que definen como pueden estar construidos.
Cuando un identificador se asocia a una entidad concreta, entonces es el "nombre"
de dicha entidad, y en adelante la representa en el programa. Nombrar las entidades
hace posible referirse a las mismas, lo cual es esencial para cualquier tipo de
procesamiento simbólico.
Reglas para nombrar 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.
No usar vocales acentuadas
No usar la eñe
No podremos usar como identificadores las palabras reservadas de C#.
Debemos recordar que en C# las mayúsculas y minúsculas se consideran
diferentes.
Palabras clave o palabras reservadas.
Las palabras reservadas son identificadores reservados predefinidos que tienen un
significado especial para el lenguaje y no se pueden utilizar como identificadores en
sus programas, excepto si llevan delante el carácter @ como prefijo.
Conversión de Tipos
Las conversiones nos permiten que una expresión de un tipo sea tratada como una
expresión de otro tipo, dichas conversiones pueden ser implícitas o explícitas, por
ejemplo la conversión de un tipo int a long es implícita, sin embargo la conversión
de un tipo long a un tipo int es explícita, esto debido a que un int puede ser
expresado en formato long sin que haya perdida de precisión en la operación, sin
embargo si intentamos convertir un numero long a int puede haber perdida de

Ing. Martín Martínez Muñoz 34


precisión y se necesita una conversión explícita, es como una forma de obligarnos
a demostrar que estamos conscientes de que existe tal perdida de precisión.
Conversión Implícita
 No requiere sentencias adicionales
 Puede perder precisión, pero no magnitud
Conversión Explícita
 La define el usuario utilizando la expresión (cast)
Ejemplo:
int X;
float Y;
X=3;
Y=X;
En este caso no es necesaria una conversión explícita debido a que un número int
puede ser asignado sin ningún problema en una variable float.

float X;
float Y;
Y = 13.5;
X=( int )Y;
En este caso si es necesaria una conversión explícita debido a que un número float
no puede ser expresado en int sin que haya perdida de precisión.
Para hacer la conversión debemos usar el operador cast (tipo), para indicarle
explícitamente el tipo de dato al que debe convertir la expresión.

Método Parse y los métodos de la clase Convert.


Veamos las diferencias entre utilizar el método Parse() de las estructuras de tipos
de .NET o utilizar los métodos de la clase System.Convert.
En realidad, parece que hacen lo mismo, pero existe una gran diferencia.
Supongamos que dejamos que un usuario introduzca un valor numérico por pantalla
y queremos realizar cálculos con ese valor.
El valor introducido por el usuario será del tipo String y deberemos convertirlo a un
tipo de valor numérico, por ejemplo, Int.
En definitiva, queremos saber qué diferencia hay entre ejecutar estas dos líneas de
código:

Ing. Martín Martínez Muñoz 35


int valorA = Convert.ToInt32(valorUsuario);
int valorB = Int32.Parse(valorUsuario);
Cuando utilizamos la segunda opción, el método Parse(), si el usuario no ha
introducido ningún valor (null) recibiremos una excepción del tipo
System.FormatException. Lo que indica que el formato del argumento no cumple
las especificaciones del parámetro del método invocado.
En cambio, cuando utilizamos la primera opción, los métodos de la clase
System.Convert, si el valor pasado al método es null, el método ConovertToInt32()
devolverá un valor numérico, devolverá cero en todos los casos que el valor de
entrada sea null.

Las variables
BIBLIOGRAFÍA
Libro: C# GUÍA TOTAL DEL PROGRAMADOR por Nicolás Arrioja Landa Cosió

Las computadoras no solamente escriben mensajes en la pantalla, sino que deben


hacer cosas útiles y para poder hacerlas necesitan información. La información debe
almacenarse y manipularse de alguna forma.
Cuando queremos guardar algo en la vida cotidiana podemos utilizar cajas, por lo
que cualquier cosa que deseamos almacenar puede ser colocada en una caja de
cartón, por ejemplo. Sin embargo, el tamaño de la caja dependerá de lo que
deseamos almacenar. Unos zapatos pueden caber en una caja pequeña, pero en
esa caja no podemos colocar un televisor. Si empezamos a almacenar muchas
cosas en cajas, pronto tendremos demasiadas y será difícil poder encontrar lo que
hemos guardado. Entonces, una forma de solucionar esto es por medio de
etiquetas.
A cada caja le ponemos una etiqueta con el contenido y de esta forma podemos
encontrar rápidamente lo que buscamos.
Las variables en la computadora funcionan de manera similar a nuestras cajas de
almacenaje. Las podemos imaginar como pequeñas cajas que existen en la
memoria de la computadora y su tamaño dependerá de la información que deben
guardar.
Esto se conoce como tipo de la variable. Para poder acceder a esa caja o variable
le ponemos un nombre que sería la etiqueta con la que la identificamos.
Para hacer uso de una variable, lo primero que tenemos que hacer es declararla.
La declaración de éstas es algo muy sencillo. Como primer paso tenemos que
colocar el tipo y luego el nombre. Las variables en C# deben nombrarse de acuerdo
con unas recomendaciones sencillas:

Ing. Martín Martínez Muñoz 36


• Los nombres de las variables deben empezar con letra.
• Es posible colocar números en los nombres de las variables, pero no
empezar el nombre con ellos.
• Los nombres de las variables no pueden llevar signos a excepción del
guión bajo _ .
• Las variables no pueden llevar acentos en sus nombres.
Cuando nombramos las variables, hay que tener en cuenta que C# es sensible a
las mayúsculas y minúsculas, por lo que una variable llamada costo no es la misma
que otra variable llamada COSTO u otra llamada Costo.
Es recomendable nombrar a las variables con nombres que hagan referencia a la
información que guardarán. Si nos acostumbramos a hacer esto desde que
empezamos a programar, evitaremos muchos problemas en el futuro y será mucho
más sencillo corregir nuestros programas cuando tengan errores.
Veamos un ejemplo de cómo podemos declarar una variable que guarde valores
numéricos enteros. El tipo que guarda estos valores se conoce como int.
int costo;
Vemos que al final de la sentencia hemos colocado el punto y coma. Si necesitamos
declarar más variables lo podemos hacer de la siguiente forma:
int costo;
int valor;
int impuesto;
Pero también es posible declarar las variables en una sola línea. Para esto
simplemente separamos los nombres de las variables con comas. No hay que
olvidar colocar el punto y coma al final de la sentencia.
int costo, valor, impuesto;

Tipos de Datos en C#
C# nos provee de muchos tipos para poder usar con nuestras variables, que
podemos conocer en la siguiente tabla:
TIPO INFORMACIÓN QUE GUARDA
bool Es una variable booleana, es decir que solamente puede guardar los
valores verdadero o falso (true o false) en términos de C#.
byte Puede guardar un byte de información. Esto equivale a un valor entero
positivo entre 0 y 255.
sbyte Guarda un byte con signo de información. Podemos guardar un valor
entero con signo desde –128 hasta 127.
char Puede guardar un carácter de tipo Unicode.

Ing. Martín Martínez Muñoz 37


decimal Este tipo puede guardar un valor numérico con decimales. Su rango es
desde ±1.0 ? 10?28 hasta ±7.9 ? 1028.
double También nos permite guardar valores numéricos que tengan decimales. El
rango aproximado es desde ±5.0 ? 10?324 hasta ±1.7 ? 10 308.
float Otro tipo muy utilizado para guardar valores numéricos con decimales.
Para este tipo el rango es desde ±1.5 ? 10?45 hasta ±3.4 ? 1038.
int Cuando queremos guardar valores numéricos enteros con signo, en el
rango de -2,147,483,648 hasta 2,147,483,647.
uint Para valores numéricos enteros positivos, su rango de valores es desde 0
hasta 4,294,967,295.
long Guarda valores numéricos enteros realmente grandes con un rango desde
–9,223,372,036,854,775,808 hasta 9,223,372,036,854,775,807.
uling Guarda valores numéricos enteros positivos. Su rango de valores varía
desde 0 hasta 18,446,744,073,709,551,615.
short Guarda valores numéricos enteros, pero su rango es menor y varía desde
-32,768 hasta 32,767.
ushort Puede guardar valores numéricos enteros positivos con un rango desde 0
hasta 65,535.
String Este tipo nos permite guardar cadenas.

Una vez que hemos declarado la variable, debemos inicializarla. Inicializar una
variable es asignarle un valor por primera vez. Esto nos permite darle un valor inicial
que puede ser útil en la ejecución de nuestro programa (no sólo podemos asignarle
a una variable un valor fijo, sino también puede ser desde un texto ingresado por el
usuario o desde el registro de una base de datos).
Para asignarle un valor a una variable, ya sea durante la inicialización o durante el
transcurso del programa, usamos un operador de asignación, el signo igual.
Veamos a continuación un ejemplo de cómo asignar valores:
costo = 50;
valor = 75;
impuesto = 10;
En este caso, la variable costo almacena el valor de 50, la variable valor almacena
el 75, y la variable impuesto guarda el valor 10.

b. Constantes

Comentarios
Los comentarios solamente nos sirven a nosotros como seres humanos para
facilitarnos a comprender el código del programa. El compilador ignora todos los
comentarios y no los toma en cuenta en el momento de la compilación. Los

Ing. Martín Martínez Muñoz 38


comentarios no hacen el programa ni más lento ni más rápido. Sin embargo, sí son
muy útiles cuando nosotros vemos el código.
Comentarios en el programa
Los programas de computadora pueden ser muy grandes, por lo que es necesario
colocar comentarios de codigo en el programa. Los comentarios sirven para
documentar las partes del programa, explicar lo que hace cierta parte del código o
simplemente colocar un recordatorio.
Podemos hacer comentarios de una sola línea, que se colocan por medio de la
doble barra // seguido del texto del comentario. El texto que se encuentre a partir de
la doble barra // y hasta el fin del renglón es ignorado por el compilador. Algunos
ejemplos de comentarios pueden ser:
// Declaro mis variables
int ancho, alto;
int tarea; // Esta variable guarda el área calculada.
// La siguiente sentencia nunca se ejecuta
// Console.WriteLine(“Hola”);
Si llegáramos a necesitar colocar mucha información en nuestros comentarios,
puede ser útil explayarla en varios renglones, es decir, hacer un bloque de
comentarios.
Para esto, abrimos nuestro bloque de comentarios con una barra seguida de un
asterisco, /*, y finalizamos éste con un asterisco en primer lugar, seguido de una
barra */. Todo lo que se encuentre entre estos delimitadores será tomado como un
comentario y el compilador lo pasará por alto.
Veamos un ejemplo de un comentario de múltiples líneas:
/* La siguiente sección calcula el área y usa las variables
alto – para guardar la altura del rectángulo
ancho – para guardar la base del rectángulo
*/
Así vemos cómo los comentarios colocados en varios renglones, se toman como un
solo comentario. Esto es algo muy útil para recordatorios futuros.

Ing. Martín Martínez Muñoz 39


Actividad 4
Tema: Estructura de un programa C#
OBJETIVO
El participante será capaz de describir la estructura básica de un programa C#
identificando cada uno de los elementos que lo componen.
MARCO TEÓRICO
Investigación Documental.
Consulte el libro de texto Enciclopedia de Microsoft C# Francisco Javier, Sitios de
C# en la web, y desarrolle una síntesis de los siguientes conceptos.
 Identificadores y palabras clave
 Tipos de Datos Primitivos y Referenciados
 Conversión de Tipos
 Clases envoltorio o parseo
 Variables, declaraciones y asignación
 Constantes.
 Comentarios
 Estructura de un programa C#

MATERIAL, EQUIPO o SOTFWARE A UTILIZAR


 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.

Ing. Martín Martínez Muñoz 40


 Estructura ideas y argumentos de manera clara, coherente y sintética.
Competencias Genéricas
Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Atributos:
5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.

Ing. Martín Martínez Muñoz 41


4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Identifica los elementos que componen un programa escrito en C#
desarrollando un proyecto en el medio ambiente de desarrollo Visual Studio.
DESARROLLO
Mediante la investigación documental escriba una síntesis de los siguientes
conceptos.
 Identificadores y palabras clave
 Tipos de Datos Primitivos y Referenciados
 Conversión de Tipos
 Clases envoltorio o parseo
 Variables, declaraciones y asignación
 Constantes.
 Comentarios
 Estructura de un programa C#

El profesor guiara una práctica con el objetivo de identificar los tipos de datos, la
conversión de tipos de datos y la conversión por parseo, usando el medio ambiente
de desarrollo Visual Studio y de la estructura de un programa en C#, identificando
los conceptos desarrollados en su investigación documental.

APRENDIZAJE ESPERADO
Se apropia de manera clara de los conceptos teóricos para describir los tipos de
datos y su conversión usando el medio ambiente de desarrollo Visual Studio.

ESTRATEGIA DIDACTICA
Investigación documental, práctica guiada.

PRODUCTO FINAL ESPERADO


Síntesis de los conceptos:
 Identificadores y palabras clave
 Tipos de Datos Primitivos y Referenciados
 Conversión de Tipos
 Clases envoltorio o parseo

Ing. Martín Martínez Muñoz 42


 Variables, declaraciones y asignación
 Constantes.
 Comentarios
 Estructura de un programa C#
EVIDENCIA
Pega en este espacio el resultado de tu trabajo con su respectiva Rubrica de
evaluación.

Ing. Martín Martínez Muñoz 43


Actividad 5
Tema: Estructura de un programa C#
OBJETIVO
El participante será capaz de escribir un programa básico en C#, que le permita
reafirmar sus aprendizajes de manejo de variables, declaración y uso de constantes,
y la estructura del programa C#, usando el medio ambiente de desarrollo Visual
Studio.
MARCO TEÓRICO
Conversión de Unidades.
Las distancias se miden en diferentes longitudes. Las longitudes más comunes se
definen como las longitudes métricas, y se derivan de la METRO. Otros incluyen los
tamaños imperiales como la pulgada, pies, yardas y millas.
Un metro tiene 100 centímetros, una pulgada mide 2.54 cm.
Un pie tiene 12 pulgadas y una yarda tiene 3 pies.

Conversión de Temperaturas.
El sistema métrico utiliza la escala Celsius o Centígrados para medir la temperatura.
Sin embargo, para medir la temperatura en Estados Unidos todavía se utiliza la
escala Fahrenheit.
El agua se congela a 0º Centígrados y hierve a 100º Centígrados, lo que indica una
diferencia de 100º. El agua se congela a 32º Fahrenheit y hierve a 212º Fahrenheit,
lo que indica una diferencia de 180º. Por lo tanto, cada grado en la escala Celsius
es igual a 180/100 o 9/5 grados en la escala Fahrenheit.
Como convertir temperaturas en grados Centígrados a Fahrenheit
 Multiplica los grados Centígrados por 9/5.
 Súmale 32º para adaptar el equivalente en la escala Fahrenheit.
9
𝐹= 𝐶 + 32
5

MATERIAL, EQUIPO o SOTFWARE A UTILIZAR


 Plumones
 Pizarrón.

Ing. Martín Martínez Muñoz 44


 Computadora
 Cuaderno de Trabajo.
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.

Competencias Genéricas
Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Atributos:
5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Ing. Martín Martínez Muñoz 45


Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.
4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Identifica los elementos que componen un programa escrito en C#
desarrollando un proyecto en el medio ambiente de desarrollo Visual Studio.

DESARROLLO
Usando la información del marco teórico:
5_A Elabora un Programa para convertir una cantidad expresada en metros a su
equivalente en pulgadas, pies y yardas.
5_B Elabora un programa para convertir una temperatura expresada en grados
Fahrenheit a Celsius.
Una vez terminados los programas deberá compilarlos y generar datos de prueba.
Copie el código generado, sus resultados y anéxelo como evidencia al final de esta
actividad, así mismo deberá poner sus conclusiones sobre lo aprendido con esta
práctica.
APRENDIZAJE ESPERADO
Reafirmar y aplicar sus conocimientos teóricos, sobre variables, constantes,
estructura de un programa C#, y el medio ambiente de desarrollo Visual Studio.
ESTRATEGIA DIDACTICA
Aprendizaje basado en problemas.

Ing. Martín Martínez Muñoz 46


PRODUCTO FINAL ESPERADO
Código fuente de los programas generados y depurados.
Presenta pantallas con los resultados de la ejecución de sus programas.
Escribe una conclusión de los aprendizajes al desarrollar estos problemas.

EVIDENCIA
Pega en este espacio el resultado de tu trabajo con su respectiva Rubrica de
evaluación.

5A

Ing. Martín Martínez Muñoz 47


Ing. Martín Martínez Muñoz 48
Ing. Martín Martínez Muñoz 49
5B

Ing. Martín Martínez Muñoz 50


Ing. Martín Martínez Muñoz 51
Ing. Martín Martínez Muñoz 52
Actividad 6
Tema: Estructura de un programa C#
OBJETIVO
El participante será capaz de escribir un programa básico en C#, que le permita
reafirmar sus aprendizajes de manejo de variables, declaración y uso de constantes,
y la estructura del programa C#, usando el medio ambiente de desarrollo Visual
Studio.
MARCO TEÓRICO
Descuentos y Porcentajes.
Porcentajes
Un porcentaje es una regla de 3 en la que uno de los factores es 100. Para calcular
el porcentaje sobre una cantidad lo que hacemos es multiplicar el porcentaje por la
cantidad y dividir el resultado por 100.
Por ejemplo, para calcular el 3% de 45 lo que hacemos es multiplicar 3x45 y el
resultado se divide por 100:
3 x 45 = 135 / 100 = 1.35
Descuentos
Un descuento es un porcentaje que se resta a una cantidad dada.
Por ejemplo: unos pantalones que cuestan 350 pesos en rebajas tienen un
descuento del 30% ¿cuánto costarán ahora?
primero calculamos el porcentaje que se tiene que descontar:
30 x 350 = 10500 / 100 = 105
una vez lo tenemos lo restamos a la cantidad inicial: 350 – 105 = 245
ya tenemos la solución: 245 pesos.
Recargos.
Un recargo es un porcentaje que se añade (se suma) a una cantidad inicial.
Multa por estacionamiento indebido: 125 pesos

Ing. Martín Martínez Muñoz 53


Recargo 10% 125 x 10 = 1250 / 100 = 12.5
Total a pagar: 125 + 12.5 = 137.5

MATERIAL, EQUIPO o SOTFWARE A UTILIZAR


 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo.
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.

Competencias Genéricas
Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Atributos:
5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.

Ing. Martín Martínez Muñoz 54


Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.
4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Identifica los elementos que componen un programa escrito en C#
desarrollando un proyecto en el medio ambiente de desarrollo Visual Studio.

DESARROLLO
Usando la información del marco teórico:
Elabora un Programa para ayudar a una persona que desea invertir su dinero en un
banco de la localidad y desea saber cuánto dinero ganara después de un mes, solo
se sabe que el banco ofrece dividendos a razón de 2% mensual. Indique a la
persona su capital total al finalizar el mes.

Ing. Martín Martínez Muñoz 55


La tienda de supermercado “Mi favorita” ofrece un descuento del 15% sobre el total
de la compra y un cliente desea saber cuánto deberá pagar finalmente por su
compra, elabora un programa que indique al cliente, el importe del descuento y el
total a pagar por su compra.
Una vez terminados los programas deberá compilarlos y generar datos de prueba.
Copie el código generado, sus resultados y anéxelo como evidencia al final de esta
actividad, así mismo deberá poner sus conclusiones sobre lo aprendido con esta
práctica.
APRENDIZAJE ESPERADO
Reafirmar y aplicar sus conocimientos teóricos, sobre variables, constantes,
estructura de un programa C#, y el medio ambiente de desarrollo Visual Studio.
ESTRATEGIA DIDACTICA
Aprendizaje basado en problemas.
PRODUCTO FINAL ESPERADO
Código fuente de los programas generados y depurados.
Presenta pantallas con los resultados de la ejecución de sus programas.
Escribe una conclusión de los aprendizajes al desarrollar estos problemas.

EVIDENCIA
Pega en este espacio el resultado de tu trabajo con su respectiva Rubrica de
evaluación.

6A

Ing. Martín Martínez Muñoz 56


Ing. Martín Martínez Muñoz 57
Ing. Martín Martínez Muñoz 58
Conceptos, definiciones e interfaz con los elementos de C#
La interfaz del medio ambiente de desarrollo Visual Studio.

Barras de herramientas. Proporcionan los comandos que permiten dar formato al


texto, buscar texto, etc. Algunas barras de herramientas sólo están disponibles
cuando se trabaja en la vista Diseño.
Explorador de soluciones. Muestra los archivos y carpetas del proyecto.
Ventana Documento. Muestra los documentos en los que se está trabajando en
ventanas con fichas. Puede pasar de un documento a otro haciendo clic en las
fichas.
Ventana Propiedades. Permite cambiar la configuración de los proyectos, los
controles y otros objetos.
Cuadro de herramientas. Proporciona los controles que se pueden arrastrar a la
ventana. Los elementos del Cuadro de herramientas se agrupan por funcionamiento
común.
Descripción de un Proyecto en C# y sus propiedades.

La clase Form, sus propiedades y sus Métodos


c. La clase aplication

Ing. Martín Martínez Muñoz 59


d. Manipulación de controles básicos (Button, CheckBox,
NumericUpDown, PictureBox, RadioButton, TextBox, ToolTip),
propiedades y eventos.
e. Manipulación del controles de Rango definido (HScrollBar,
VScrollBar, TrackBar, ProgressBar) , propiedades y eventos.
f. Manipulación del controles de Fecha y Tiempo (DateTimePicker,
MonthCalendar, Timer) , propiedades y eventos.
g. Manipulación del controles contenedores (GroupBox, Panel,
TabControl) , propiedades y eventos.

Ing. Martín Martínez Muñoz 60


Expresiones y Flujos de Control
Un operador es un símbolo que representa una acción determinada para una
variable o valor, en aritmética existen operadores que indican la ejecución de
determinado proceso.
Los operadores en programación están en categorías dependiendo de su
funcionalidad, los primeros son los operadores aritméticos que a su vez se dividen
en binarios y unarios, los operadores de asignación, los operadores
relacionales y los operadores Lógicos.
Operadores de Asignación.
Los operadores de asignación almacenan un valor en el objeto designado por el
operando izquierdo. Hay dos clases de operaciones de asignación: asignación
simple, en la que el valor del segundo operando se almacena en el objeto
especificado por el primer operando, y asignación compuesta, en la que se realiza
una operación aritmética, antes de almacenar el resultado. Todos los operadores
de asignación de la tabla siguiente, salvo el operador =, son operadores de
asignación compuesta.
Operadores de Asignación
Operador Significado
= Almacena el valor del segundo operando en el objeto especificado por
el primer operando (asignación simple).
*= Multiplica el valor del primer operando por el valor del segundo
operando; almacena el resultado en el objeto especificado por el
primer operando.
/= Divide el valor del primer operando por el valor del segundo operando;
almacena el resultado en el objeto especificado por el primer
operando.
%= Toma el módulo del primer operando especificado por el valor del
segundo operando; almacena el resultado en el objeto especificado
por el primer operando.
+= Suma el valor del segundo operando al valor del primer operando;
almacena el resultado en el objeto especificado por el primer
operando.
-= Resta el valor del segundo operando del valor del primer operando;
almacena el resultado en el objeto especificado por el primer
operando.

Ing. Martín Martínez Muñoz 61


Operadores Aritméticos
Binarios: los operadores binarios indican operaciones sencillas de incremento
(suma o multiplicación) y decremento (resta, división y modulo), estos son los
operadores binarios:
Operadores Aritméticos Binarios
+ representa la suma de dos o más valores o variables.

- representa la resta de dos o más valores o variables.

* representa la multiplicación de dos o más valores o variables.

/ representa la división de dos o más valores o variables.

% representa el módulo (obtención del residuo de una división) de dos


o más valores o variables.

Unarios: los operadores unarios representan operaciones simplificadas de


incremento decremento y modificación de signos.
Operadores Aritméticos Unarios
++ Incrementa el valor de una variable en una unidad.

-- Decrementa el valor de una variable en una unidad.

- Cambia el signo de una variable, es como multiplicar por -1.

Operadores Relacionales.
Son operadores que se encargan de unir y comparar dos o más valores, siempre
se utilizan en comparaciones de parejas y están dadas por los símbolos:

Operadores Relacionales
== igual que
!= diferente a
> mayor que
< menor que
>= mayor igual que

Ing. Martín Martínez Muñoz 62


<= menor igual que

Estos operadores se usan para comparar valores de variables por pares, es decir,
no se pueden comparar más de 2 valores al tiempo
Operadores Lógicos.
Son operadores que se encargan de unir y comparar dos o más valores, siempre
se utilizan en comparaciones de parejas, estos operadores pueden unir dos o más
pares de valores comparados por medio de los operadores relaciones y están dados
por estos símbolos:
Operadores Lógicos
&& Operador AND (Y) quiere decir que todas las condiciones deben
ser verdaderas para que se ejecute una
acción.
|| Operador OR (O) quiere decir que de todas las condiciones
solo una debe ser verdadera y se asume que
con eso es suficiente para hacer determinada
acción.
! Operador NOT (NO) quiere decir que se niega la afirmación para
cambiar su valor, es decir cambia de
verdadero a falso y de falso a verdadero.

La Clase Math
Proporciona constantes y métodos estáticos para operaciones trigonométricas,
logarítmicas y otras funciones matemáticas comunes.
La clase estática Math define los números π y e y las principales funciones
matemáticas:
Método Descripción
Abs(numero) Devuelve el valor absoluto de un número
Acos(Double) Devuelve el ángulo cuyo coseno es el número
especificado, El ángulo es devuelto en radianes.
Asin(Double) Devuelve el ángulo cuyo seno es el número
especificado. El ángulo es devuelto en radianes.
Atan(Double) Devuelve el ángulo cuya tangente corresponde al
número especificado. El ángulo es devuelto en
radianes.
Ceiling(numero) Devuelve el valor integral más pequeño que es mayor
o igual que el número especificado.

Ing. Martín Martínez Muñoz 63


Cos(Double) Devuelve el coseno del ángulo especificado. El
ángulo debe expresarlo en radianes.
Exp(Double) Devuelve e elevado a la potencia especificada.
Floor(numero) Devuelve el número entero más grande menor o igual
que el número decimal especificado.
Log(Double) Devuelve el logaritmo natural (en base e) de un
número especificado.
Log(Double, Double) Devuelve el logaritmo de un número especificado en
una base determinada.
Log10(Double) Devuelve el logaritmo en base 10 de un número
especificado.
Max(numero, numero) Devuelve el mayor de dos numeros.
Min(numero, numero) Devuelve el menor de dos números decimales.
Pow(Double, Double) Devuelve un número especificado elevado a la
potencia especificada.
Round(Decimal) Redondea un valor decimal al valor integral más
próximo.
Round(Decimal, Int32) Redondea un valor decimal al número especificado
de dígitos fraccionarios.
Sign(numero) Devuelve un entero que indica el signo de un número.
Sin(Double) Devuelve el seno del ángulo especificado.
Sqrt(Double) Devuelve la raíz cuadrada de un número
especificado.
Tan(Double) Devuelve la tangente del ángulo especificado.
Truncate(numero) Calcula la parte entera de un número especificado.

Constantes de la clase Math

Nombre Descripción
E Representa la base logarítmica natural, especificada por la constante, e.

PI Representa la relación entre la longitud de la circunferencia de un círculo y su


diámetro, especificada por la constante π.

Ing. Martín Martínez Muñoz 64


Actividad 7
Tema: Expresiones y Flujos de Control
OBJETIVO
El participante será capaz de escribir un programa con interfaz gráfica en C#, que
le permita reafirmar sus aprendizajes de la clase Math.
MARCO TEÓRICO
Distancia entre dos puntos de un plano cartesiano
Distancia entre dos puntos cartesianos

Sabemos que el Plano cartesiano se usa como un sistema de referencia para localizar
puntos en un plano. Otra de las utilidades de dominar los conceptos sobre el Plano
cartesiano radica en que, a partir de la ubicación de las coordenadas de dos puntos es
posible calcular la distancia entre ellos.
Cuando los puntos se encuentran ubicados sobre el eje X (de las abscisas) o en una recta
paralela a este eje, la distancia entre los puntos corresponde al valor absoluto de la
diferencia de sus abscisas (X2 – X1).
Cuando los puntos se encuentran ubicados sobre el eje Y (de las ordenadas) o en una
recta paralela a este eje, la distancia entre los puntos corresponde al valor absoluto de la
diferencia de sus ordenadas (Y2 – Y1).
Ahora, si los puntos se encuentran en cualquier lugar del sistema de coordenadas, la
distancia queda determinada por la relación:

(1)

Para demostrar esta relación se deben ubicar los puntos P1(x1, y1) y P2(x2, y2) en el
sistema de coordenadas, luego formar un triángulo rectángulo de hipotenusa P1P2 y
emplear el Teorema de Pitágoras.

Demostración

Sean P1 (x1, y1) y P2 (x2, y2) dos puntos en el plano.

La distancia entre los puntos P1 y P2 denotada por d = esta dada por:

Ing. Martín Martínez Muñoz 65


(1)

En la Figura hemos localizado los puntos P1 (x1, y1) y P2 (x2, y2) así como también el segmento

de recta

MATERIAL, EQUIPO o SOTFWARE A UTILIZAR


 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.

Competencias Genéricas
Categoría: Piensa crítica y reflexivamente

Ing. Martín Martínez Muñoz 66


Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Atributos:
5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.
4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.

Ing. Martín Martínez Muñoz 67


Competencias profesionales
1.- Aplica de forma práctica los operadores aritméticos, de asignación,
relacionales y lógicos desarrollando una aplicación.
DESARROLLO
Lea la información del marco teórico.
Elabora un Programa que lea las coordenadas de dos puntos en un plano cartesiano
y calcule la distancia entre los dos puntos.
Una vez terminado el programa deberá compilarlo y generar datos de prueba.
Copie el código generado, sus resultados y anéxelo como evidencia al final de esta
actividad, así mismo deberá poner sus conclusiones sobre lo aprendido con esta
práctica y una imagen de su autoevaluación.
APRENDIZAJE ESPERADO
Reafirmar y aplicar sus conocimientos teóricos sobre la clase Math codificando un
programa que cumpla con la especificación indicada.
ESTRATEGIA DIDACTICA
Aprendizaje basado en problemas.
PRODUCTO FINAL ESPERADO
Código fuente de los programas generados y depurados.
Presenta pantallas con los resultados de la ejecución de sus programas, así como
su autoevaluación.
Escribe una conclusión de los aprendizajes al desarrollar estos problemas.

Ing. Martín Martínez Muñoz 68


Ing. Martín Martínez Muñoz 69
Ing. Martín Martínez Muñoz 70
Actividad 8
Tema: Expresiones y Flujos de Control
OBJETIVO
El participante será capaz de escribir un programa con interfaz gráfica en c#, que le
permita reafirmar sus aprendizajes de la clase Math.
MARCO TEÓRICO
Investiga quien fue Herón de Alejandría, escribe la fórmula para encontrar el
área de un triángulo conociendo 3 de sus lados.

MATERIAL, EQUIPO o SOTFWARE A UTILIZAR


 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.

Competencias Genéricas
Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Atributos:

Ing. Martín Martínez Muñoz 71


5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.
4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Aplica de forma práctica los operadores aritméticos, de asignación,
relacionales y lógicos desarrollando una aplicación.
DESARROLLO
Una vez terminada tu investigación desarrolla el siguiente programa.

Ing. Martín Martínez Muñoz 72


Elabora una aplicación que lea las coordenadas de los vértices de un triángulo y
calcule su área. Considera el uso de la fórmula de Herón de Alejandría.
Una vez terminado el programa deberá compilarlo y generar datos de prueba.

Copie el código generado, sus resultados y anéxelo como evidencia al final de esta
actividad, así mismo deberá poner sus conclusiones sobre lo aprendido con esta
práctica y una imagen de su autoevaluación.
APRENDIZAJE ESPERADO
Reafirmar y aplicar sus conocimientos teóricos sobre la clase Math codificando un
programa que cumpla con la especificación indicada.
ESTRATEGIA DIDACTICA
Aprendizaje basado en problemas.
PRODUCTO FINAL ESPERADO
Código fuente de los programas generados y depurados.
Presenta pantallas con los resultados de la ejecución de sus programas, así como
su autoevaluación.
Escribe una conclusión de los aprendizajes al desarrollar estos problemas.

Ing. Martín Martínez Muñoz 73


La Clase String
Representa texto como una serie de caracteres Unicode.
Una cadena de C# es una matriz de caracteres que se declara utilizando la palabra
clave string. Un literal de cadena se declara utilizando las comillas, como se muestra
en el siguiente ejemplo:
string s = "Martin Martinez";

Propiedades

Nombre Descripción
Length Obtiene el número de caracteres del objeto String actual.

Métodos

Nombre Descripción
CompareTo(String) Compara esta instancia con un objeto String especificado
e indica si la posición de esta instancia es anterior,
posterior o igual que la posición de la cadena
especificada en el criterio de ordenación.
Concat(String, String) Concatena dos instancias de String especificadas.
Contains Devuelve un valor que indica si una subcadena
especificada aparece dentro de esta cadena.
Copy Crea una nueva instancia de String con el mismo valor
que una String especificada.
EndsWith(String) Determina si el final de esta instancia de cadena coincide
con la cadena especificada.
Equals(String, String) Determina si dos objetos String especificados tienen el
mismo valor.
Format(String, Reemplaza los elementos de formato en una cadena
Object) especificada por la representación de cadena de dos
objetos especificados.
IndexOf() Indica el índice de base cero de la primera aparición de la
cadena especificada en la instancia en cuestión. La
búsqueda comienza en una posición de carácter
especificada y examina un número especificado de
posiciones de caracteres.

Ing. Martín Martínez Muñoz 74


Insert Devuelve una nueva cadena en la que se inserta una
cadena especificada en una posición de índice concreta
en esta instancia.
LastIndexOf(Char) Indica la posición de índice de base cero de la última
aparición de una cadena especificada en la instancia en
cuestión. La búsqueda se inicia en una posición de
carácter especificada y continúa hacia atrás hacia el
principio de la cadena.
PadLeft(Int32) Devuelve una nueva cadena que alinea a la derecha los
caracteres de la instancia e inserta espacios en blanco a
la izquierda hasta alcanzar la longitud total especificada.
PadRight(Int32) Devuelve una nueva cadena que alinea a la izquierda los
caracteres de la cadena e inserta espacios en blanco a la
derecha hasta alcanzar la longitud total especificada.
Remove(Int32, Int32) Devuelve una nueva cadena en la que se ha eliminado un
número de caracteres especificado en la instancia actual
a partir de una posición especificada.
Replace(String, Devuelve una nueva cadena en la que todas las
String) apariciones de una cadena especificada en la instancia
actual se reemplazan por otra cadena especificada.
StartsWith(String) Determina si el principio de esta instancia de cadena
coincide con la cadena especificada cuando se comparan
usando la opción de comparación especificada.
Substring() Recupera una subcadena de la instancia. La subcadena
comienza en una posición de carácter especificada y
tiene una longitud especificada.
ToLower() Devuelve una copia de esta cadena convertida en
minúsculas.
ToUpper() Devuelve una copia de esta cadena convertida en
mayúsculas.
Trim() Quita todos los caracteres de espacio en blanco del
principio y el final del objeto String actual.
TrimEnd() Quita todas las apariciones del final de un conjunto de
caracteres especificados en una matriz del objeto String
actual.
TrimStart() Quita todas las apariciones del principio de un conjunto
de caracteres especificados en una matriz del objeto
String actual.

Ing. Martín Martínez Muñoz 75


Formatos
Formato de cadenas en C#
Números
Especificaciones de formato básico:
Specifier Type Format Output (Passed Double Output (Passed Int -
1.42) 12400)
c Currency {0:c} $1.42 -$12,400
d Decimal (Whole {0:d} System.FormatException -12400
number)
e Scientific {0:e} 1.420000e+000 -1.240000e+004
f Fixed point {0:f} 1.42 -12400.00
g General {0:g} 1.42 -12400
n Number with {0:n} 1.42 -12,400
commas for
thousands
r Round trippable {0:r} 1.42 System.FormatException
x Hexadecimal {0:x4} System.FormatException cf90

Formato de número personalizado:


Specifier Type Example Output (Passed Double Note
1500.42)
0 Zero placeholder {0:00.0000} 1500.4200 Pads with zeroes.
# Digit placeholder {0:(#).##} (1500).42
. Decimal point {0:0.0} 1500.4
, Thousand {0:0,0} 1,500 Must be between two
separator zeroes.
% Percent {0:0%} 150042% Multiplies by 100, adds
% sign.
e Exponent {0:00e+0} 15e+2 Many exponent formats
placeholder available.
; Group separator see below

Fechas y Tiempo
Tenga en cuenta que el formato fecha es especialmente dependiente de la del
sistema de configuración regional.

Ing. Martín Martínez Muñoz 76


Specifier Type Example (Passed System.DateTime.Now)
d Short date 10/12/2002
D Long date December 10, 2002
t Short time 10:11 PM
T Long time 10:11:29 PM
f Full date & time December 10, 2002 10:11 PM
F Full date & time (long) December 10, 2002 10:11:29 PM
g Default date & time 10/12/2002 10:11 PM
G Default date & time (long) 10/12/2002 10:11:29 PM
M Month day pattern December 10
r RFC1123 date string Tue, 10 Dec 2002 22:11:29 GMT
s Sortable date string 2002-12-10T22:11:29
u Universal sortable, local time 2002-12-10 22:13:50Z
U Universal sortable, GMT December 11, 2002 3:13:50 AM
Y Year month pattern December, 2002

Formato personalizado de fecha:


Specifier Type Example Example Output
dd Day {0:dd} 10
ddd Day name {0:ddd} Tue
dddd Full day name {0:dddd} Tuesday
f, ff, … Second fractions {0:fff} 932
gg, … Era {0:gg} A.D.
hh 2 digit hour {0:hh} 10
HH 2 digit hour, 24hr format {0:HH} 22
mm Minute 00-59 {0:mm} 38
MM Month 01-12 {0:MM} 12
MMM Month abbreviation {0:MMM} Dec
MMMM Full month name {0:MMMM} December
ss Seconds 00-59 {0:ss} 46
tt AM or PM {0:tt} PM
yy Year, 2 digits {0:yy} 02
yyyy Year {0:yyyy} 2002
: Separator {0:hh:mm:ss} 10:43:20
/ Separator {0:dd/MM/yyyy} 10/12/2002

Ing. Martín Martínez Muñoz 77


La Clase DateTime
Representa un instante de tiempo, normalmente expresado en forma de fecha y
hora del día.
Propiedades

Nombre Descripción
Date Obtiene el componente correspondiente a la fecha de esta
instancia.
Day Obtiene el día del mes representado por esta instancia.

DayOfWeek Obtiene el día de la semana representado por esta instancia.


DayOfYear Obtiene el día del año representado por esta instancia.
Hour Obtiene el componente correspondiente a la hora de la fecha
representada por esta instancia.
Kind Obtiene un valor que indica si la hora representada por esta
instancia está basada en la hora local, en la hora universal
coordinada (UTC), o en ninguna de ellas.
Millisecond Obtiene el componente correspondiente a los milisegundos de la
fecha representada por esta instancia.
Minute Obtiene el componente correspondiente a los minutos de la fecha
representada por esta instancia.
Month Obtiene el componente correspondiente al mes de la fecha
representada por esta instancia.
Now Obtiene un objeto DateTime que se establece en la fecha y hora
actual de este equipo, expresada como hora local.
Second Obtiene el componente correspondiente a los segundos de la
fecha representada por esta instancia.
Ticks Obtiene el número de pasos que representan la fecha y hora de
esta instancia.
TimeOfDay Obtiene la hora del día para esta instancia.

Today Obtiene la fecha actual.

UtcNow Obtiene un objeto DateTime que se establece en la fecha y hora


actual del equipo, expresada como hora universal coordinada
(UTC).
Year Obtiene el componente correspondiente al año de la fecha
representada por esta instancia.

Ing. Martín Martínez Muñoz 78


Métodos:

Nombre Descripción
Add(TimeSpan) Devuelve un nuevo objeto DateTime que suma el
valor del objeto TimeSpan especificado al valor de
esta instancia.
AddDays(Double) Devuelve un nuevo objeto DateTime que suma el
número especificado de días al valor de esta
instancia.
AddHours(Double) Devuelve un nuevo objeto DateTime que suma el
número especificado de horas al valor de esta
instancia.
AddMilliseconds(Double) Devuelve un nuevo objeto DateTime que suma el
número especificado de milisegundos al valor de
esta instancia.
AddMinutes(Double) Devuelve un nuevo objeto DateTime que suma el
número especificado de minutos al valor de esta
instancia.
AddMonths(Int32) Devuelve un nuevo objeto DateTime que suma el
número especificado de meses al valor de esta
instancia.
AddSeconds(Double) Devuelve un nuevo objeto DateTime que suma el
número especificado de segundos al valor de esta
instancia.
AddTicks(Int64) Devuelve un nuevo objeto DateTime que suma el
número especificado de pasos al valor de esta
instancia.
AddYears(Int32) Devuelve un nuevo objeto DateTime que suma el
número especificado de años al valor de esta
instancia.
Compare(DateTime, Compara dos instancias de DateTime y devuelve un
DateTime) entero que indica si la primera instancia es anterior,
igual o posterior a la segunda instancia.
CompareTo(DateTime) Compara el valor de esta instancia con un valor de
DateTime especificado y devuelve un entero que
indica si esta instancia es anterior, igual o posterior
al valor de DateTime especificado.
DaysInMonth(Int32, Devuelve el número de días del mes y año
Int32) especificados.

Equals(DateTime, Devuelve un valor que indica si dos instancias de


DateTime) DateTime tienen el mismo valor de fecha y hora.

Ing. Martín Martínez Muñoz 79


IsDaylightSavingTime() Indica si esta instancia de DateTime está dentro del
intervalo del horario de verano de la zona horaria
actual.
IsLeapYear(Int32) Devuelve una indicación en la que se precisa si el
año especificado es bisiesto.
Parse(String) Convierte la representación de cadena de una fecha
y hora en el objeto DateTime equivalente.
Subtract(DateTime) Resta la fecha y hora especificadas de esta
instancia.
Subtract(TimeSpan) Resta la duración especificada de esta instancia.

ToLocalTime() Convierte el valor del objeto DateTime actual a la


hora local.
ToLongDateString() Convierte el valor del objeto DateTime actual en su
representación de cadena de fecha larga
equivalente.
ToLongTimeString() Convierte el valor del objeto DateTime actual en su
representación de cadena de hora larga
equivalente.
ToShortDateString() Convierte el valor del objeto DateTime actual en su
representación de cadena de fecha corta
equivalente.
ToShortTimeString() Convierte el valor del objeto DateTime actual en su
representación de cadena de hora corta
equivalente.
ToString() Convierte el valor del objeto DateTime actual en su
representación de cadena equivalente usando las
convenciones de formato de la referencia cultural
actual.(Invalida ValueType.ToString()).
TryParse(String, Convierte la representación de cadena especificada
DateTime) de una fecha y hora en el objeto DateTime
equivalente y devuelve un valor que indica si la
conversión se realizó correctamente.

Ing. Martín Martínez Muñoz 80


La clase Timespan
Un objeto TimeSpan representa un intervalo de tiempo (duración de tiempo o el
tiempo transcurrido) que se mide como un número positivo o negativo de días,
horas, minutos, segundos y fracciones de segundo. También puede utilizarse para
representar la hora del día, pero solo si la hora no está relacionada con una fecha
determinada. De lo contrario, la clase DateTime debe usarse en su lugar.
La clase TimeSpan representa un intervalo general sin hacer referencia a un
determinado punto inicial o final, no se pueden expresar en términos de años y
meses, que tienen un número variable de días. Difiere de un DateTime valor, que
representa una fecha y hora sin referencia a una zona horaria determinada.
El valor de un TimeSpan es el número de tics que igualan el intervalo de tiempo
representado. Un paso es igual a 100 nanosegundos o unos diez millonésimos de
segundo. El valor de un TimeSpan puede abarcar desde TimeSpan.MinValue a
TimeSpan.MaxValue.
Realizar operaciones con valores Timespan
Puede agregar y restar duraciones de tiempo mediante el uso de los métodos
Addition y Subtraction, o mediante una llamada a los métodos Add y Subtract.
También puede comparar dos duraciones de tiempo llamando a los métodos
Compare, CompareTo, y Equals. El TimeSpan estructura también incluye los
métodos Duration y Negate que convierten intervalos de tiempo en valores
positivos y negativos.
Propiedades:
Nombre Descripción
Obtiene el componente de días del intervalo de tiempo representado por la estructura
Days
TimeSpan actual.
Obtiene el componente de días del intervalo de tiempo representado por la estructura
Hours
TimeSpan actual.
Obtiene el componente de milisegundos del intervalo de tiempo representado por la
Milliseconds
estructura TimeSpan actual.
Obtiene el componente de minutos del intervalo de tiempo representado por la
Minutes
estructura TimeSpan actual.
Obtiene el componente de segundos del intervalo de tiempo representado por la
Seconds
estructura TimeSpan actual.
Obtiene el número de pasos que representa el valor de la estructura TimeSpan actual.
Ticks
Obtiene el valor de la estructura TimeSpan actual, expresado en días completos y
TotalDays
fracciones de días.
Obtiene el valor de la estructura TimeSpan actual, expresado en horas completas y
TotalHours
fracciones de horas.
Obtiene el valor de la estructura TimeSpan actual, expresado en milisegundos
TotalMilliseconds
completos y fracciones de milisegundos.
Obtiene el valor de la estructura TimeSpan actual, expresado en minutos completos y
TotalMinutes
fracciones de minutos.
Obtiene el valor de la estructura TimeSpan actual, expresado en segundos completos y
TotalSeconds
fracciones de segundos.

Ing. Martín Martínez Muñoz 81


Actividad 9
Tema: Expresiones y Flujos de Control
OBJETIVO
El participante dará seguimiento a la práctica guiada por el docente para ejemplificar
los métodos de la clase String.
MARCO TEÓRICO
La clase String.
Un String en C# representa una cadena de caracteres no modificable.
Todos los literales de la forma "cualquier texto", es decir, literales entre comillas
dobles, que aparecen en un programa c# se implementan como objetos de la clase
String.
MÉTODOS DE LA CLASE STRING
La clase String proporciona métodos para el tratamiento de las cadenas de
caracteres: acceso a caracteres individuales, buscar y extraer una subcadena,
copiar cadenas, convertir cadenas a mayúsculas o minúsculas, etc.
** Consulte la tabla expuesta anteriormente para revisar los métodos y realizar la
práctica guiada.

MATERIAL, EQUIPO o SOTFWARE A UTILIZAR


 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.

Ing. Martín Martínez Muñoz 82


 Estructura ideas y argumentos de manera clara, coherente y sintética.

Competencias Genéricas
Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Atributos:
5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Atributos.

Ing. Martín Martínez Muñoz 83


4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.
4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Aplica de forma práctica los métodos de la clase String.
DESARROLLO
Usando la información del marco teórico, da seguimiento a la práctica guiada.
Una vez terminada la práctica guiada copie el código generado y anéxelo como
evidencia al final de esta actividad, así mismo deberá poner sus conclusiones sobre
lo aprendido con esta práctica.

APRENDIZAJE ESPERADO
Identificar y aplicar los métodos de la clase String.
ESTRATEGIA DIDACTICA
Aprendizaje basado en problemas.
PRODUCTO FINAL ESPERADO
Código fuente de la práctica guiada.
Escribe una conclusión de los aprendizajes al desarrollar estos problemas.

Ing. Martín Martínez Muñoz 84


Ing. Martín Martínez Muñoz 85
Actividad 10
Tema: Expresiones y Flujos de Control
OBJETIVO
El participante será capaz de escribir un programa con interfaz gráfica en C#, que
le permita reafirmar sus aprendizajes de la clase String.
MARCO TEÓRICO
La demostración de la actividad anterior

MATERIAL, EQUIPO o SOTFWARE A UTILIZAR


 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.

Competencias Genéricas
Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Atributos:

Ing. Martín Martínez Muñoz 86


5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.
4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Aplica de forma práctica los operadores aritméticos, de asignación,
relacionales y lógicos desarrollando una aplicación.
DESARROLLO

Ing. Martín Martínez Muñoz 87


Elabora una aplicación en C# que lea una operación de multiplicación, por ejemplo
34*25.3, y calcule el resultado de la operación (considera el uso de decimales).

Una vez terminado el programa deberá compilarlo y generar datos de prueba.

Copie el código generado, sus resultados y anéxelo como evidencia al final de esta
actividad, así mismo deberá poner sus conclusiones sobre lo aprendido con esta
práctica y una imagen de su autoevaluación.
APRENDIZAJE ESPERADO
Reafirmar y aplicar sus conocimientos teóricos sobre la clase String codificando un
programa que cumpla con la especificación indicada.
ESTRATEGIA DIDACTICA
Aprendizaje basado en problemas.
PRODUCTO FINAL ESPERADO
Código fuente de los programas generados y depurados.
Presenta pantallas con los resultados de la ejecución de sus programas, así como
su autoevaluación.
Escribe una conclusión de los aprendizajes al desarrollar estos problemas.

Ing. Martín Martínez Muñoz 88


Actividad 11
Tema: Expresiones y Flujos de Control
OBJETIVO
El participante dará seguimiento a la práctica guiada por el docente para ejemplificar
el uso de cadenas de formato y las clases DateTime, y Timespan.
MARCO TEÓRICO
Formatos de cadena en C#.
La clase DateTime, y Timespan.
** Consulte las tablas expuesta anteriormente para revisar los métodos y realizar la
práctica guiada.

MATERIAL, EQUIPO o SOTFWARE A UTILIZAR


 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.

Competencias Genéricas
Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Ing. Martín Martínez Muñoz 89


Atributos:
5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.
4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Aplica de forma práctica los métodos de la clase String.
DESARROLLO

Ing. Martín Martínez Muñoz 90


Usando la información del marco teórico, da seguimiento a la práctica guiada.
Una vez terminada la práctica guiada copie el código generado y anéxelo como
evidencia al final de esta actividad, así mismo deberá poner sus conclusiones sobre
lo aprendido con esta práctica.

APRENDIZAJE ESPERADO
Identificar y aplicar los métodos de la clase String.
ESTRATEGIA DIDACTICA
Aprendizaje basado en problemas.
PRODUCTO FINAL ESPERADO
Código fuente de la práctica guiada.
Escribe una conclusión de los aprendizajes al desarrollar estos problemas.

Ing. Martín Martínez Muñoz 91


Ing. Martín Martínez Muñoz 92
Sentencia If

BIBLIOGRAFÍA
https://msdn.microsoft.com/es-es/library/5011f09h(v=vs.80).aspx

La instrucción if selecciona una instrucción para ejecución en base al valor de una


expresión Boolean. En el ejemplo siguiente una expresión relacional es evaluada,
si la expresión da como resultado un valor verdadero se ejecutan las sentencias del
primer bloque, si la expresión da como resultado un valor falso se ejecuta el
segundo bloque de sentencias.

if (expresión_relacional)
{
// Sentencias del primer bloque, que se ejecutan si la
// expresión relacional da como resultado un valor verdadero
}
else
{
// Sentencias del segundo bloque, que se ejecutan si la
// expresión relacional da como resultado un valor falso
}

Si la expresión en el paréntesis se evalúa como true, a continuación, se ejecutan


las instrucciones del primer bloque. Después de ejecutar la instrucción if, el control
se transfiere a la siguiente instrucción. else no se ejecuta en este ejemplo.
Si se desea ejecutar más de una instrucción, es posible ejecutar varias instrucciones
en forma condicional al incluirlas en bloques mediante {}. Las instrucciones que se
van a ejecutar como resultado de comprobar la condición pueden ser de cualquier
tipo, incluida otra instrucción if anidada dentro de la instrucción if original. En las
instrucciones if anidadas, la cláusula else pertenece a la última instrucción if que no
tiene una cláusula else correspondiente.
Sentencia Switch

La instrucción switch es una instrucción de control que controla múltiples


selecciones, pasando el control a una de las instrucciones case de su cuerpo.
Con la instrucción switch nosotros podemos comparar una variable contra diferentes
valores. La variable puede ser de tipo entero, char o cadena. El valor del caso o
case, debe ser apropiado para que funcione correctamente. De nuestro análisis
conocemos los posibles valores para cada caso. El tipo de variable de comparación
dependerá del algoritmo en particular.

Ing. Martín Martínez Muñoz 93


La sentencia switch evalúa el resultado de la expresión del switch, el resultado de
esta expresión es comparado con la etiqueta de cada palabra case, si coincide,
ejecuta las instrucciones que están dentro hasta que encuentra la instrucción break,
en ese momento se va al final de la sentencia switch.
Si el resultado de la expresión del switch no coincide con la primera etiqueta del
case, compara con las subsecuentes etiquetas case que tenga hasta encontrar una
que coincida con el valor obtenido, si no la encuentra se ejecutan las sentencias
incluidas en la etiqueta default.
switch (expresión_del_switch)
{
case valor1:
// Sentencias que se ejecutan si el resultado de la expresión del switch
// coincide con el valor1 del case
break;
case valor2:
// Sentencias que se ejecutan si el resultado de la expresión del switch
// coincide con el valor2 del case
break;

default:
// Sentencias que se ejecutan si el resultado de la expresión del switch
// No coincide con ningún valor puesto en los case
break;
}

El control se transfiere a la instrucción case que coincide con el valor del


modificador. La instrucción switch puede incluir cualquier número de instancias
case, sin embargo, dos instrucciones case nunca pueden tener el mismo valor. La
ejecución del cuerpo de la instrucción empieza en la instrucción seleccionada y
continúa hasta que la instrucción break transfiere el control fuera del cuerpo case.
Es necesario introducir una instrucción de salto como break después de cada bloque
case, incluido el último bloque, se trate de una instrucción case o de una instrucción
default.
Si ninguna expresión case coincide con el valor de la instrucción switch, entonces
el control se transfiere a la etiqueta default y se ejecutan las instrucciones que se
encuentran dentro de esta etiqueta, la etiqueta default es opcional. Si no existe
ninguna etiqueta default, el control se transfiere fuera de la instrucción switch.
El siguiente ejemplo muestra que se permite el paso de una etiqueta case a otra
para etiquetas case vacías.

// sentencia switch

Ing. Martín Martínez Muñoz 94


int n = 2;
switch(n)
{
case 1:
case 2:
case 3:
// Sentencias a ejecutar
break;
default:
// Sentencias que se ejecutan si no coincide el valor de la variable
break;
}

En el ejemplo anterior, se utilizó una variable de tipo entero, n, para los casos de la
instrucción switch. Observe que también se puede utilizar la variable de cadena, s,
directamente. En ese caso, la estructura switch puede presentar la siguiente forma:

switch(s)
{
case "1":
// ...
case "2":
// ...
}

Ciclo For

El ciclo for en C está compuesto de tres instrucciones: for (instrucción uno;


instrucción dos; instrucción tres).
Las instrucciones uno y tres son opcionales, es decir, podemos ponerlas o no; pero
la instrucción dos no la podemos omitir y además debe ser una condición que pueda
evaluarse como verdadera o falsa. Esto significa que podemos tener un ciclo for de
la forma: for ( ; condición; ).

El ciclo for en C funciona siguiendo los siguientes pasos:


1. Realiza las operaciones de la instrucción uno (si la hay), estas operaciones sólo
se ejecutan una vez
2. Evalúa la condición (la instrucción dos)
3. Si la condición es verdadera, ejecuta el cuerpo del ciclo for

Ing. Martín Martínez Muñoz 95


4. Ejecuta la instrucción tres (si la hay)
Después de ejecutar el cuerpo del ciclo (el cual se ejecuta sólo si la condición es
verdadera) se realiza el paso 4 y se repiten los pasos 2 y 3.
Sintaxis.
for(inicialización; condición; incremento)
{
//Sentencias del ciclo
}
La sentencia del ciclo se inicia con la palabra clave for seguida de paréntesis.
Adentro de los paréntesis colocaremos expresiones que sirven para controlar el
ciclo.
El ciclo for necesitará una o varias variables de control, aunque en la mayoría de los
casos usaremos únicamente una variable. Veamos las diferentes partes del ciclo
for.
En primer lugar encontramos la inicialización. En esta sección le damos a la variable
de control su valor inicial. El valor inicial se lleva a cabo por medio de una asignación
normal, tal y como las que hemos trabajado. La segunda sección lleva una condición
en forma de una expresión relacional. Ésta nos sirve para controlar cuándo termina
el ciclo y generalmente aquí indicamos la cantidad de vueltas que da el ciclo.
Luego tenemos el código. En esta sección colocamos la parte del código que
deseamos que se repita. Esta sección puede ser una sentencia o un bloque de
código. Por último, se ejecuta la sección del incremento. Aquí indicamos cómo se
modificará el valor de la variable de control para cada vuelta del ciclo.
Cuando se ejecuta el ciclo for, lo primero que se lleva a cabo es la inicialización y
luego la condición. Si la condición es verdadera, entonces se pasa al código y
después al incremento. Seguido del incremento vamos nuevamente a la condición
y se repite el proceso. Si la condición no se cumple, entonces decimos que el ciclo
finaliza, se salta al código y continúa la ejecución del programa con lo que sea que
encontremos después del ciclo.

Ciclo While

El ciclo while también puede ser utilizado cuando tenemos algo que se debe repetir,
pero no conocemos el número de repeticiones previamente. La repetición del ciclo
tiene que ver con el cumplimiento de una condición. A diferencia del ciclo do while,
este ciclo puede no ejecutarse ni siquiera una vez. Su estructura es la siguiente:
while(condicion) {

Ing. Martín Martínez Muñoz 96


Código
}
Adentro de esta condición colocaremos una expresión lógica o relacional. Si la
condición se evalúa como verdadera, entonces se procede a ejecutar el código.
Después del código se regresa a la condición. Si la condición no se cumple,
entonces no se ejecuta el código y se continúa con el resto del programa.
El tener la condición al inicio del ciclo nos lleva a un punto importante. Si la condición
no se cumple desde el inicio, entonces el ciclo nunca se lleva a cabo.

Ciclo Do While

El ciclo do-while (Instrucción hacer – repetir mientras) es un tipo de estructura


repetitiva eficiente. Lo que lo diferencia con el while es que en la estructura do-while
la condición se evalúa al finalizar el ciclo, esto hace que las instrucciones se
ejecuten cuando menos una vez.
Los ciclos do-while también son una ESTRUCTURA DE CONTROL CÍCLICA, los
cuales nos permiten ejecutar una o varias líneas de código de forma repetitiva sin
necesidad de tener un valor inicial e incluso a veces sin siquiera conocer cuando se
va a dar el valor final, hasta aquí son similares a los ciclos while, sin embargo el
ciclo do-while nos permite añadir cierta ventaja adicional y esta consiste que nos da
la posibilidad de ejecutar primero el bloque de instrucciones antes de evaluar la
condición necesaria, de este modo los ciclos do-while, son más efectivos para
algunas situaciones específicas.
En resumen un ciclo do-while, es una estructura de control cíclica que permite
ejecutar de manera repetitiva un bloque de instrucciones sin evaluar de forma
inmediata una condición especifica, sino evaluándola justo después de ejecutar por
primera vez el bloque de instrucciones.
La ejecución de esta estructura se realiza de la siguiente manera.
1.- Se ejecutan las instrucciones que se encuentran dentro del do, para esto es
necesario ponerlas entre llaves.
2.- Después evalúa la expresión dentro de while. Si la expresión es falsa, el ciclo
do-while finaliza y pasa a la siguiente instrucción del programa. Si la expresión es
verdadera, el ciclo se repite.
La sintaxis de este ciclo es la siguiente:
do{
Instrucción
} while (expresión);

Ing. Martín Martínez Muñoz 97


Actividad 12
Tema: Expresiones y Flujos de Control
OBJETIVO
El participante será capaz de identificar los operadores aritméticos, de asignación,
relacionales, y lógicos, conoce y aplica la clase Math, y la clase String. Identifica la
sintaxis de las estructuras de decisión if y switch, además de los ciclos for, while y
do..while.

MARCO TEÓRICO
Investigación documental y síntesis.
MATERIAL, EQUIPO o SOTFWARE A UTILIZAR
 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.

Competencias Genéricas
Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Ing. Martín Martínez Muñoz 98


Atributos:
5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.
4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Identifica los operadores aritméticos, de asignación, relacionales y
lógicos. Asi como las estructuras de decisión if, switch, los ciclos for, while, y
do..while.

Ing. Martín Martínez Muñoz 99


DESARROLLO
Realiza una investigación documental para explicar los operadores aritméticos, de
asignación, relacionales y lógicos, las estructuras de decisión if y switch y los ciclos
for, while y do..while, indicando la sintaxis y su funcionamiento .
Elabora una síntesis en donde explique las estructuras de decisión if y switch, y los
ciclos for, while, y do..while (sintaxis y su funcionamiento).

APRENDIZAJE ESPERADO
Reafirmar y aplicar sus conocimientos teóricos, sobre estructuras de decisión,
operadores relacionales, y ciclos.

ESTRATEGIA DIDACTICA
Investigación documental y Aprendizaje basado en problemas.

PRODUCTO FINAL ESPERADO


Síntesis de los temas investigados Código fuente de los programas generados como
parte de la demostración de los temas.
Escribe una conclusión de los aprendizajes logrados.

Ing. Martín Martínez Muñoz 100


Actividad 13
Tema: Expresiones y Flujos de Control
OBJETIVO
El participante será capaz de escribir un programa con interfaz gráfica en C#, que
le permita reafirmar sus aprendizajes de operadores relacionales, y la estructura de
decisión if.
MARCO TEÓRICO
Equinoccios y Solsticios
El equinoccio.
Un equinoccio es un momento del año en el que el Sol se ubica exactamente encima
del ecuador, por lo que el sol se coloca sobre el cenit y el día y la noche tienen casi
la misma duración. Ocurre justo dos veces al año, alrededor del 20 de marzo y el
22 de septiembre.
Los equinoccios ocurren en el planeta dos veces al año, uno alrededor del 20-21 de
marzo y otro en torno al 22-23 de septiembre. El día del equinoccio no es el mismo
todos los años, debido a que la duración de los años no es siempre igual. Recuerda
que cada 4 años se agrega un día más al calendario de 365 días (año bisiesto).

Ing. Martín Martínez Muñoz 101


Durante los equinoccios el Sol se ubica en uno de los dos puntos de la esfera o
bóveda celeste donde el ecuador celeste (un círculo en el mismo plano que el
ecuador, es decir, la proyección del ecuador terrestre en la esfera celeste) y la
eclíptica se cruzan.
El equinoccio de marzo se llama equinoccio de primavera y sucede cuando el Sol
se mueve hacia el norte en el plano de la eclíptica, cruzando el ecuador celeste. En
el hemisferio norte, un equinoccio de primavera marca el inicio de esta estación. Por
su parte, el equinoccio de septiembre es el denominado equinoccio de otoño,
sucedido cuando el Sol se mueve cruzando el ecuador celeste hacia el sur, y marca
el inicio del otoño.
El solsticio
Esta palabra significa “el Sol se detiene” o “Sol quieto”. Los solsticios son eventos
en los cuales el Sol alcanza su punto más alto o más bajo del año en el cielo. En un
año del hemisferio norte ocurren dos solsticios: el solsticio de verano el 20 o 21 de
junio y el solsticio de invierno el 21 o 22 de diciembre.
Durante los solsticios, el Sol se encuentra en una de las dos líneas imaginarias de
la Tierra llamadas Trópico de Cáncer y Trópico de Capricornio. Así, cuando esta
gran estrella se halla en el Trópico de Cáncer se experimenta el solsticio de verano
y cuando se ubica en el Trópico de Capricornio, en el hemisferio sur, es el solsticio
de invierno. En el primero transcurre el día más largo del año, mientras que en el
segundo solsticio se percibe el día más corto, con menos horas de luz solar.
Un dato
 En el Círculo Polar Antártico, el Sol no se pone durante el solsticio de
invierno.
 Algunas culturas efectúan celebraciones del inicio de los solsticios o los
equinoccios.
Fuente: http://www.geoenciclopedia.com/equinoccios-y-solsticios/
MATERIAL, EQUIPO o SOTFWARE A UTILIZAR
 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:

Ing. Martín Martínez Muñoz 102


 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.
Competencias Genéricas
Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Atributos:
5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Ing. Martín Martínez Muñoz 103


Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.
4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Aplica de forma práctica los operadores aritméticos, de asignación,
relacionales y lógicos desarrollando una aplicación.
DESARROLLO
Lea la información del marco teórico.
El domingo de pascua es el primer domingo después de la primera luna llena
posterior al equinoccio de primavera, y se determina mediante el siguiente cálculo.
A = año mod 19
B = año mod 4
C = año mod 7
D = (19*A + 24) mod 30
E = (2*B + 4*C + 6*D + 5 ) mod 7
N = (22 + D + E )
Donde N indica el número de día del mes de marzo ( Si N es igual o menor a 31 ) o
abril ( si es mayor que 31 ). Construir un programa que determine la fecha del
domingo de pascua.
Una vez terminado el programa deberá compilarlo y generar datos de prueba.
Copie el código generado, sus resultados y anéxelo como evidencia al final de esta
actividad, así mismo deberá poner sus conclusiones sobre lo aprendido con esta
práctica y una imagen de su autoevaluación.
APRENDIZAJE ESPERADO
Reafirmar y aplicar sus conocimientos teóricos sobre los operadores aritméticos, de
asignación, relacionales, y la estructura de decisión if, codificando un programa que
cumpla con la especificación indicada.
ESTRATEGIA DIDACTICA
Aprendizaje basado en problemas.
PRODUCTO FINAL ESPERADO
Código fuente de los programas generados y depurados.
Presenta pantallas con los resultados de la ejecución de sus programas, así como
su autoevaluación.
Escribe una conclusión de los aprendizajes al desarrollar estos problemas.

Ing. Martín Martínez Muñoz 104


Ing. Martín Martínez Muñoz 105
Ing. Martín Martínez Muñoz 106
Actividad 14
Tema: Expresiones y Flujos de Control
OBJETIVO
El participante será capaz de escribir un programa con interfaz gráfica en C#, que
le permita reafirmar sus aprendizajes de la clase Math.
MARCO TEÓRICO
Comprobar mediante distancias que tres puntos son colineales

Para comprobar que tres puntos son colineales, graficamos los puntos dados sobre
el plano y definimos los tres segmentos de recta que se forman. Una vez definidos
los segmentos se encuentran las distancias existentes en ellos mediante la fórmula
de la distancia entre dos puntos:

Para comprobar que los puntos son colineales la distancia existente entre los puntos
extremos debe ser igual a la suma de las distancias de un extremo al punto
intermedio con la distancia del punto intermedio al otro extremo. Si se comprueba
la igualdad de la suma mencionada entonces los puntos son colineales.
Dos puntos son colineales si están en la misma recta, y son coplanares si están en
el mismo plano.

AC=AB+BC

La Distancia del punto A al punto C, debe ser


igual a la suma de la distancia del punto A al
punto B más la distancia del punto B al punto C

MATERIAL, EQUIPO o SOTFWARE A UTILIZAR


 Plumones
 Pizarrón.
 Computadora

Ing. Martín Martínez Muñoz 107


 Cuaderno de Trabajo
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.

Competencias Genéricas
Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Atributos:
5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Ing. Martín Martínez Muñoz 108


Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.
4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Aplica de forma práctica los operadores aritméticos, de asignación,
relacionales y lógicos desarrollando una aplicación.
DESARROLLO
Lea la información del marco teórico.
Elabora un Programa que lea las coordenadas de tres puntos en un plano
cartesiano y determine si son colineales o no lo son.

Una vez terminado el programa deberá compilarlo y generar datos de prueba.

Copie el código generado, sus resultados y anéxelo como evidencia al final de esta
actividad, así mismo deberá poner sus conclusiones sobre lo aprendido con esta
práctica y una imagen de su autoevaluación.
APRENDIZAJE ESPERADO
Reafirmar y aplicar sus conocimientos teóricos sobre la clase Math codificando un
programa que cumpla con la especificación indicada.
ESTRATEGIA DIDACTICA
Aprendizaje basado en problemas.
PRODUCTO FINAL ESPERADO
Código fuente de los programas generados y depurados.

Ing. Martín Martínez Muñoz 109


Presenta pantallas con los resultados de la ejecución de sus programas, así como
su autoevaluación.
Escribe una conclusión de los aprendizajes al desarrollar estos problemas.

Ing. Martín Martínez Muñoz 110


Ing. Martín Martínez Muñoz 111
Actividad 15
Tema: Expresiones y Flujos de Control
OBJETIVO
El participante será capaz de escribir un programa con interfaz gráfica en C#, que
le permita reafirmar sus aprendizajes de la clase String.
MARCO TEÓRICO
La demostración de la actividad anterior

MATERIAL, EQUIPO o SOTFWARE A UTILIZAR


 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.

Competencias Genéricas
Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Atributos:

Ing. Martín Martínez Muñoz 112


5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.
4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Aplica de forma práctica los operadores aritméticos, de asignación,
relacionales y lógicos desarrollando una aplicación.
DESARROLLO

Ing. Martín Martínez Muñoz 113


Elabora una aplicación en C# que lea una operación aritmética básica, por ejemplo
34+25, y calcule el resultado de la operación (considera el uso de decimales, y
cualquiera de los operadores aritméticos binarios vistos, y use la estructura
switch).

Una vez terminado el programa deberá compilarlo y generar datos de prueba.

Copie el código generado, sus resultados y anéxelo como evidencia al final de esta
actividad, así mismo deberá poner sus conclusiones sobre lo aprendido con esta
práctica y una imagen de su autoevaluación.
APRENDIZAJE ESPERADO
Reafirmar y aplicar sus conocimientos teóricos sobre la clase String codificando un
programa que cumpla con la especificación indicada.
ESTRATEGIA DIDACTICA
Aprendizaje basado en problemas.
PRODUCTO FINAL ESPERADO
Código fuente de los programas generados y depurados.
Presenta pantallas con los resultados de la ejecución de sus programas, así como
su autoevaluación.
Escribe una conclusión de los aprendizajes al desarrollar estos problemas.

Ing. Martín Martínez Muñoz 114


Ing. Martín Martínez Muñoz 115
Actividad 16
Tema: Expresiones y Flujos de Control
OBJETIVO
El participante será capaz de escribir un programa con interfaz gráfica en C#, que
le permita reafirmar sus aprendizajes de la clase String y el uso de ciclos.
MARCO TEÓRICO
Que es un palíndromo

Ing. Martín Martínez Muñoz 116


Un palíndromo es una palabra o frase que se lee igual de izquierda a derecha que
de derecha a izquierda.
La palabra palíndromo viene del griego: palin dromein, volver a ir hacia atrás.
Como es lógico, las frases palíndromas se resienten en su significado cuanto más
largas son. La complejidad aumenta cuanto más aumentemos la longitud de la frase.
Ejemplos de palíndromos:
"No subas abusón"
"Oí lo de mamá me dolió"
"Sometamos o matemos"
"Yo dono rosas oro no doy"
"Isaac no ronca así"
"Lavan esa base naval"
"No traces en ese cartón"
"¿Será lodo o dólares?"
"Logra Casillas allí sacar gol"
MATERIAL, EQUIPO o SOTFWARE A UTILIZAR
 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.

Competencias Genéricas
Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Ing. Martín Martínez Muñoz 117


Atributos:
5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.
4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Aplica de forma práctica los operadores aritméticos, de asignación,
relacionales y lógicos desarrollando una aplicación.

Ing. Martín Martínez Muñoz 118


DESARROLLO
Elabora una aplicación en C# que lea una frase y la muestre invertida, además
debe decir si la frase es un palíndromo. (usar ciclos)

Una vez terminado el programa deberá compilarlo y generar datos de prueba.

Copie el código generado, sus resultados y anéxelo como evidencia al final de esta
actividad, así mismo deberá poner sus conclusiones sobre lo aprendido con esta
práctica y una imagen de su autoevaluación.
APRENDIZAJE ESPERADO
Reafirmar y aplicar sus conocimientos teóricos sobre la clase String y el uso de
ciclos, codificando un programa que cumpla con la especificación indicada.
ESTRATEGIA DIDACTICA
Aprendizaje basado en problemas.
PRODUCTO FINAL ESPERADO
Código fuente de los programas generados y depurados.
Presenta pantallas con los resultados de la ejecución de sus programas, así como
su autoevaluación.

Escribe una conclusión de los aprendizajes al desarrollar estos problemas.

Ing. Martín Martínez Muñoz 119


Ing. Martín Martínez Muñoz 120
Ing. Martín Martínez Muñoz 121
Actividad 17
Tema: Expresiones y Flujos de Control
OBJETIVO
El participante será capaz de escribir un programa con interfaz gráfica en C#, que
le permita reafirmar sus aprendizajes del uso de ciclos.
MARCO TEÓRICO
La teoría de ciclos en su cuaderno de trabajo.

MATERIAL, EQUIPO o SOTFWARE A UTILIZAR


 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.

Competencias Genéricas
Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Atributos:

Ing. Martín Martínez Muñoz 122


5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.
4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Aplica de forma práctica los operadores aritméticos, de asignación,
relacionales y lógicos desarrollando una aplicación.
DESARROLLO

Ing. Martín Martínez Muñoz 123


Elabora una aplicación en C# que calcule la suma de los n primeros enteros
impares. (1+3+5+….), use los tres ciclos para calcular la serie.

Una vez terminado el programa deberá compilarlo y generar datos de prueba.

Copie el código generado, sus resultados y anéxelo como evidencia al final de esta
actividad, así mismo deberá poner sus conclusiones sobre lo aprendido con esta
práctica y una imagen de su autoevaluación.
APRENDIZAJE ESPERADO
Reafirmar y aplicar sus conocimientos teóricos sobre el uso de los ciclos for, while,
y do..while codificando un programa que cumpla con la especificación indicada.
ESTRATEGIA DIDACTICA
Aprendizaje basado en problemas.
PRODUCTO FINAL ESPERADO
Código fuente de los programas generados y depurados.
Presenta pantallas con los resultados de la ejecución de sus programas, así como
su autoevaluación.
Escribe una conclusión de los aprendizajes al desarrollar estos problemas.

Ing. Martín Martínez Muñoz 124


Ing. Martín Martínez Muñoz 125
Ing. Martín Martínez Muñoz 126
Actividad 18
Tema: Expresiones y Flujos de Control
OBJETIVO
El participante será capaz de escribir un programa con interfaz gráfica en C#, que
le permita reafirmar sus aprendizajes del uso de ciclos. Introduce los componentes
ComboBox, ListBox.
MARCO TEÓRICO
La teoría de ciclos en su cuaderno de trabajo.

MATERIAL, EQUIPO o SOTFWARE A UTILIZAR


 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.

Competencias Genéricas
Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Atributos:

Ing. Martín Martínez Muñoz 127


5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.
4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Aplica de forma práctica los operadores aritméticos, de asignación,
relacionales y lógicos desarrollando una aplicación.
DESARROLLO
Elabora una aplicación en C# que presente la siguiente estructura.

Ing. Martín Martínez Muñoz 128


El usuario selecciona en un combobox el nivel máximo que quiere visualizar.

Una vez terminado el programa deberá compilarlo y generar datos de prueba.

Copie el código generado, sus resultados y anéxelo como evidencia al final de esta
actividad, así mismo deberá poner sus conclusiones sobre lo aprendido con esta
práctica y una imagen de su autoevaluación.
Documente en su cuaderno los controles ComboBox y ListBox.
APRENDIZAJE ESPERADO
Reafirmar y aplicar sus conocimientos teóricos sobre el uso de los ciclos for, while,
y do..while codificando un programa que cumpla con la especificación indicada.
ESTRATEGIA DIDACTICA
Aprendizaje basado en problemas.
PRODUCTO FINAL ESPERADO
Código fuente de los programas generados y depurados.
Presenta pantallas con los resultados de la ejecución de sus programas, así como
su autoevaluación.
Escribe una conclusión de los aprendizajes al desarrollar estos problemas.

Ing. Martín Martínez Muñoz 129


Ing. Martín Martínez Muñoz 130
Ing. Martín Martínez Muñoz 131
Arreglos (Unidimensionales y Bidimensionales)
Conceptos generales

En C# un array es un dato de tipo referencia. Un array es una estructura de datos


que contiene variables (elementos) a los que se accede a través de índices.
Todos los elementos de un array son del mismo tipo.
Se dice entonces que ése es el tipo del array. Así, se habla, por ejemplo, de un array
de enteros o un array de string, etc., dependiendo de que los elementos del array
sean de un tipo o de otro.
Un array puede tener más de una dimensión. Por cada dimensión de un array se
necesita un nivel de índices para acceder a sus elementos.
Declaración

Para declarar un array se especifica el tipo de dato de los elementos seguido de


unos corchetes vacíos y del nombre del array que es una referencia al objeto array.
Por ejemplo: int[] unArray;
La línea anterior declara unArray como una referencia a un array de enteros.
Después de esta línea unArray es una referencia que contiene null, ya que no
referencia a ningún array.
Creación e inicialización

Para crear un arreglo haremos uso de la palabra reservada new y los corchetes
cuadrados [ ], también es necesario conocer el tamaño que necesitaremos, no es
posible cambiar el tamaño una vez creado.
char [] vocales = new char[5];
int [] conteo = new int[10];
Además de la instanciación tradicional, también podemos emplear la instanciación
de colecciones, la cual nos permite inicializar un arreglo asignándole valores
inmediatamente:
char [] vocales = new char[5] { 'a', 'e', 'i', 'o', 'u' };
int [] conteo = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
Como podemos ver, tenemos varias opciones para inicializar arreglos
unidimensionales:
new char[5] { ..., nos permite indicar el tamaño y el tipo explícitamente y
posteriormente indicar los valores, si cambiáramos el 5 por un 7 sin aumentar la
cantidad de valores obtendríamos un error de compilación.

Ing. Martín Martínez Muñoz 132


new int[] { 1, 2, ..., nos permite indicar solamente el tipo de dato de los elementos,
la cantidad es inferida por el compilador, en este caso podemos incrementar o
reducir la cantidad de elementos al momento de inicializar sin ningún problema.
{ "3", 1, 99.99 }, al inicializar de esta manera estamos dejándole al compilador la
tarea de inferir tanto el tipo de dato del arreglo como la cantidad de elementos que
contiene. Dicho sea de paso, el declarar un arreglo así puede resultar un poco
confuso de leer.
Operaciones con los elementos de un arreglo.

Una vez instanciado, podemos acceder a los elementos del arreglo usando
nuevamente los corchetes cuadrados [ ] y el índice del elemento al que queremos
acceder. Nota importante los arreglos están indizados en 0 es decir, el primer
elemento de un arreglo está en el índice 0.
char [] vocales = new char[5] { 'a', 'e', 'i', 'o', 'u' };
Del arreglo anterior para acceder a la ‘a’ dentro del arreglo vocales debemos
acceder a la posición 0:
vocales[0]; // a
O, digamos que queremos reemplazar la i por una t:
vocales[2] = 't';
Métodos de la clase Array.

La clase Array proporciona métodos para la creación, manipulación, búsqueda y


ordenación de matrices.
Propiedades.
Nombre Descripción
Obtiene el número total de elementos de todas las dimensiones de Array.
Length
Obtiene un entero de 64 bits que representa el número total de elementos de todas las
LongLength
dimensiones de la Array.

Métodos

Nombre Descripción
Establece un intervalo de elementos de una matriz en el valor
Clear(Array, Int32,
predeterminado de cada tipo de elemento.
Int32)
Crea una copia superficial de la colección Array.
Clone()
Copia un intervalo de elementos de una matriz Array comenzando en el
Copy(Array, Array,
primer elemento y los pega en otra matriz Array comenzando en el
Int32)
primer elemento. La longitud se especifica como un entero de 32 bits.

Ing. Martín Martínez Muñoz 133


Copia todos los elementos de la matriz unidimensional actual en la
CopyTo(Array, Int32)
matriz unidimensional especificada, empezando en el índice
especificado de la matriz de destino. El índice se especifica como un
entero de 32 bits.
Copia todos los elementos de la matriz unidimensional actual en la
CopyTo(Array, Int64)
matriz unidimensional especificada, empezando en el índice
especificado de la matriz de destino. El índice se especifica como un
entero de 64 bits.
Determina si el objeto especificado es igual al objeto actual.(Heredado
Equals(Object)
de Object).
Obtiene un entero de 32 bits que representa el número de elementos de
GetLength(Int32)
la dimensión especificada de Array.
Busca el objeto especificado y devuelve el índice de su primera
IndexOf(Array,
aparición en una matriz unidimensional.
Object)
Busca el objeto especificado en un intervalo de elementos de la matriz
IndexOf(Array,
Object, Int32) unidimensional y devuelve el índice de su primera aparición. El intervalo
se extiende desde un índice especificado hasta el final de la matriz.
Busca el objeto especificado en un intervalo de elementos de una matriz
IndexOf(Array,
unidimensional y devuelve el índice de su primera aparición. El intervalo
Object, Int32, Int32)
se extiende desde un índice especificado durante un número
especificado de elementos.
Ordena los elementos de toda una matriz Array unidimensional usando
Sort(Array)
la implementación de IComparable de cada elemento de la matriz Array.

Ing. Martín Martínez Muñoz 134


Arreglos Bidimensionales.
En C#, las dimensiones se manejan por medio de un par de corchetes, dentro de
los que se escriben los valores de cada dimensión, separados por comas.
Las matrices pueden tener más de una dimensión. Por ejemplo, la siguiente
declaración crea una matriz bidimensional de cuatro filas y dos columnas.
int[ , ] valores = new int[4, 2];

Declarar un arreglo Bidimensional


La sintaxis para declarar un arreglo multidimensional es la siguiente:
<tipo> [ , ] <identificador >;
o
<tipo> [ ][ ] <identificador>;

Donde:
Tipo indica el tipo de dato correspondiente a los elementos del arreglo, Identificador
es el nombre del arreglo, y el par de corchetes, y la coma [ , ], representan las dos
dimensiones del arreglo.

Ejemplos:
double [ , ] bidim; // Dos dimensiones.
double [ ] [ ] bidim; // Dos dimensiones.
Durante esta operación no se reserva espacio en la memoria.
Creación
La creación de un arreglo bidimensional consiste en reservar espacio en la memoria
para todos sus elementos, utilizando la siguiente sintaxis:
identificador =new tipo [dim1, dim2]

Donde:
new es el operador para gestionar espacio de memoria, en tiempo de ejecución,
dim1, dim2 son valores enteros que representan las dimensiones del arreglo (filas y
columnas).
Operaciones con los elementos de un arreglo.
Una vez instanciado o creado el arreglo bidimensional, podemos acceder a los
elementos del arreglo usando doble corchete cuadrado [ ][ ], uno para cada
dimensión, indicando el índice del renglón en el primer corchete y el índice de la
columna en el segundo corchete, del elemento al que queremos acceder. Nota

Ing. Martín Martínez Muñoz 135


importante los arreglos están indizados en 0 en renglón y columna, es decir, el
primer elemento de un arreglo está en el índice renglón 0, columna 0.
int [ ] [ ] Valores=new int [ 4 ] [ 3 ];
la sentencia anterior declara e instancia un arreglo bidimensional de 4 renglones y
3 columnas.
Para asignar un valor a la primera celda del arreglo usaremos la siguiente
instrucción.
Valores [ 0 ] [ 0 ] = 20;
También podemos usar variables o expresiones como índices siempre y cuando
nos den como resultado valores de tipo entero.

int X, Y;
X=0;
Y=0;
Valores [ X+1 ] [ Y ] = 30; // Coloca un 30 en la celda 1, 0

Ing. Martín Martínez Muñoz 136


Actividad 19
Tema: Arreglos Unidimensionales y Bidimensionales.
OBJETIVO
El participante será capaz de identificar y aplicar la creación, inicialización de los
arreglos unidimensionales y bidimensionales, así como la realización de
operaciones con los elementos de un arreglo.
MARCO TEÓRICO
Arreglos Unidimensionales y Bidimensionales.
Declaración de un arreglo.
Creación o Instanciación de un arreglo.
Creación e Inicialización.
Acceso a los elementos de un arreglo.
Haciendo operaciones con los elementos de un arreglo.

MATERIAL, EQUIPO o SOTFWARE A UTILIZAR


 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.

Competencias Genéricas

Ing. Martín Martínez Muñoz 137


Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Atributos:
5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.

Ing. Martín Martínez Muñoz 138


4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Identifica los elementos que componen un programa escrito en Java
desarrollando un proyecto en el medio ambiente de desarrollo Eclipse.

DESARROLLO
Mediante investigación documental el alumno identifica la Declaración y creación de
arreglos unidimensionales y bidimensionales, el acceso a sus elementos, así como
el uso de estos en cualquier operación.
Mediante técnica expositiva el docente elabora una práctica guiada para demostrar
la declaración, instanciación de los arreglos unidimensionales y bidimensionales,
así como el uso de los elementos de un arreglo en las operaciones.
Una vez terminados los programas deberá compilarlos y generar datos de prueba.
Copie el código generado, sus resultados y anéxelo como evidencia al final de esta
actividad, anexe la síntesis de su investigación documental.
Anote sus conclusiones sobre lo aprendido con esta práctica.

APRENDIZAJE ESPERADO
Reafirmar y aplicar sus conocimientos teóricos, sobre la declaración y creación de
arreglos unidimensionales y bidimensionales, el acceso a sus elementos, así como
el uso de estos en cualquier operación.
ESTRATEGIA DIDACTICA
Investigación documental, síntesis y Aprendizaje basado en problemas.

PRODUCTO FINAL ESPERADO


 Código fuente de los programas generados y depurados.
 Presenta pantallas con los resultados de la ejecución de sus programas.
 Escribe una conclusión de los aprendizajes al desarrollar estos problemas.
Síntesis de su investigación documental.

Ing. Martín Martínez Muñoz 139


Actividad 20
Tema: Arreglos Unidimensionales y Bidimensionales
OBJETIVO
El participante será capaz de escribir un programa con interfaz gráfica en C#, que
le permita reafirmar sus aprendizajes del uso de Arreglos Unidimensionales.
MARCO TEÓRICO
La teoría de arreglos en su cuaderno de trabajo.

MATERIAL, EQUIPO o SOTFWARE A UTILIZAR


 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.

Competencias Genéricas
Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Atributos:

Ing. Martín Martínez Muñoz 140


5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.
4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Aplica de forma práctica los operadores aritméticos, de asignación,
relacionales y lógicos desarrollando una aplicación.
DESARROLLO

Ing. Martín Martínez Muñoz 141


Escriba una aplicación en C# que lea la calificación de 10 alumnos y los almacene
en un arreglo, enseguida debe mostrar las calificaciones de cada alumno (Usando
un listbox) y calcular el total de alumnos reprobados, el promedio del grupo, la
calificación más alta y el número de alumno que la obtuvo.

Una vez terminado el programa deberá compilarlo y generar datos de prueba.

Copie el código generado, sus resultados y anéxelo como evidencia al final de esta
actividad, así mismo deberá poner sus conclusiones sobre lo aprendido con esta
práctica y una imagen de su autoevaluación.
APRENDIZAJE ESPERADO
Reafirmar y aplicar sus conocimientos teóricos sobre el uso de los arreglos
unidimensionales, su declaración, instanciación, y uso de sus elementos,
codificando un programa que cumpla con la especificación indicada.
ESTRATEGIA DIDACTICA
Aprendizaje basado en problemas.
PRODUCTO FINAL ESPERADO
Código fuente de los programas generados y depurados.
Presenta pantallas con los resultados de la ejecución de sus programas, así como
su autoevaluación.
Escribe una conclusión de los aprendizajes al desarrollar estos problemas.

Ing. Martín Martínez Muñoz 142


Actividad 21
Tema: Arreglos Unidimensionales y Bidimensionales
OBJETIVO
El participante será capaz de escribir un programa con interfaz gráfica en C#, que
le permita reafirmar sus aprendizajes del uso de Arreglos Unidimensionales.
MARCO TEÓRICO
La teoría de arreglos en su cuaderno de trabajo.

MATERIAL, EQUIPO o SOTFWARE A UTILIZAR


 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.

Competencias Genéricas
Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Atributos:

Ing. Martín Martínez Muñoz 143


5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.
4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Aplica de forma práctica los operadores aritméticos, de asignación,
relacionales y lógicos desarrollando una aplicación.
DESARROLLO

Ing. Martín Martínez Muñoz 144


Escriba una aplicación en C# que lea 20 números enteros y los almacene en dos
arreglos de 10 elementos cada uno. Enseguida el programa debe multiplicar el
primer elemento del primer arreglo con el último elemento del segundo arreglo y el
resultado lo coloca en el primer elemento de un tercer arreglo. Después multiplica
el segundo elemento del primer arreglo con el penúltimo elemento del segundo
arreglo y el resultado lo coloca en el segundo elemento del tercer arreglo, y así
sucesivamente. El programa debe mostrar como resultado los tres arreglos.

Una vez terminado el programa deberá compilarlo y generar datos de prueba.

Copie el código generado, sus resultados y anéxelo como evidencia al final de esta
actividad, así mismo deberá poner sus conclusiones sobre lo aprendido con esta
práctica y una imagen de su autoevaluación.
APRENDIZAJE ESPERADO
Reafirmar y aplicar sus conocimientos teóricos sobre el uso de los arreglos
unidimensionales, su declaración, instanciación, y uso de sus elementos,
codificando un programa que cumpla con la especificación indicada.
ESTRATEGIA DIDACTICA
Aprendizaje basado en problemas.
PRODUCTO FINAL ESPERADO
Código fuente de los programas generados y depurados.
Presenta pantallas con los resultados de la ejecución de sus programas, así como
su autoevaluación.
Escribe una conclusión de los aprendizajes al desarrollar estos problemas.

Ing. Martín Martínez Muñoz 145


Actividad 22
Tema: Arreglos Unidimensionales y Bidimensionales
OBJETIVO
El participante será capaz de escribir un programa con interfaz gráfica en C#, que
le permita reafirmar sus aprendizajes del uso de Arreglos Bidimensionales.
MARCO TEÓRICO
La teoría de arreglos en su cuaderno de trabajo.

MATERIAL, EQUIPO o SOTFWARE A UTILIZAR


 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.

Competencias Genéricas
Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Atributos:

Ing. Martín Martínez Muñoz 146


5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.
4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Aplica de forma práctica los operadores aritméticos, de asignación,
relacionales y lógicos desarrollando una aplicación.
DESARROLLO

Ing. Martín Martínez Muñoz 147


Escriba una aplicación en C# que declare e inicialice un arreglo bidimensional con
los valores como se muestra, intercambiar el valor de la celda en donde se
encuentra el cero por una celda a la izquierda, considere que no puede salir del
cuadro. Una vez terminado este punto considere los casos para mover el cero a la
derecha, hacia arriba y hacia abajo, no olvide que puede salir del cuadro.

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 0
Una vez terminado el programa deberá compilarlo y generar datos de prueba.

Copie el código generado, sus resultados y anéxelo como evidencia al final de esta
actividad, así mismo deberá poner sus conclusiones sobre lo aprendido con esta
práctica y una imagen de su autoevaluación.
APRENDIZAJE ESPERADO
Reafirmar y aplicar sus conocimientos teóricos sobre el uso de los arreglos
Bidimensionales, su declaración, instanciación, y uso de sus elementos, codificando
un programa que cumpla con la especificación indicada.
ESTRATEGIA DIDACTICA
Aprendizaje basado en problemas.
PRODUCTO FINAL ESPERADO
Código fuente de los programas generados y depurados.
Presenta pantallas con los resultados de la ejecución de sus programas, así como
su autoevaluación.
Escribe una conclusión de los aprendizajes al desarrollar estos problemas.

Ing. Martín Martínez Muñoz 148


Actividad 23
Tema: Arreglos Unidimensionales y Bidimensionales
OBJETIVO
El participante será capaz de escribir un programa con interfaz gráfica en C#, que
le permita reafirmar sus aprendizajes del uso de Arreglos Bidimensionales.
MARCO TEÓRICO
La teoría de arreglos en su cuaderno de trabajo.

MATERIAL, EQUIPO o SOTFWARE A UTILIZAR


 Plumones
 Pizarrón.
 Computadora
 Cuaderno de Trabajo
 Enciclopedia de Microsoft C# Francisco Javier.
COMPETENCIAS ESPECÍFICAS
Piensa crítica y reflexivamente
Sustenta una postura personal sobre temas de interés y relevancia general,
considerando otros puntos de vista de manera crítica y reflexiva
Atributos:
 Evalúa argumentos y opiniones e identifica prejuicios y falacias.
 Reconoce los propios prejuicios, modifica sus puntos de vista al conocer
nuevas evidencias, e integra nuevos conocimientos y perspectivas al acervo
con el que cuenta.
 Estructura ideas y argumentos de manera clara, coherente y sintética.

Competencias Genéricas
Categoría: Piensa crítica y reflexivamente
Competencia:
5. Desarrolla innovaciones y propone soluciones a problemas a partir de
métodos establecidos.

Atributos:

Ing. Martín Martínez Muñoz 149


5.1 Sigue instrucciones y procedimientos de manera reflexiva,
comprendiendo como cada uno de sus pasos contribuye al alcance de un
objetivo

Categoría: Aprende de forma autónoma


7. Aprende por iniciativa e interés propio a lo largo de la vida.
Atributos:
7.2 Identifica las actividades que le resultan de menor y mayor interés y
dificultad, reconociendo y controlando sus reacciones frente a retos y
obstáculos.

Categoría: Trabaja en forma colaborativa


8.- Participa y colabora de manera efectiva en equipos diversos.

Atributos
8.1 Propone maneras de solucionar un problema o desarrollar un proyecto
en equipo, definiendo un curso de acción con pasos específicos
8.3 Asume una actitud constructiva, congruente con los conocimientos y
habilidades con los que cuenta dentro de distintos equipos de trabajo.

4.- Se conoce y valora a sí mismo y aborda problemas y retos teniendo en


cuenta los objetivos que persigue.

Atributos.
4.1 Expresa ideas y conceptos mediante representaciones lingüísticas,
matemáticas o gráficas.
4.2 Aplica distintas estrategias comunicativas según quienes sean sus
interlocutores, el contexto en el que se encuentra y los objetivos que
persigue.
Competencias profesionales
1.- Aplica de forma práctica los operadores aritméticos, de asignación,
relacionales y lógicos desarrollando una aplicación.
DESARROLLO

Ing. Martín Martínez Muñoz 150


Escriba una aplicación en C# que las calificaciones de los 3 parciales de 10 alumnos
y almacene estas calificaciones en un arreglo (10 x 3). En un arreglo unidimensional
el programa debe calcular el promedio de cada alumno. El programa debe indicar
al final, recorriendo el arreglo unidimensional cuantos alumnos tienen calificación:

Excelente 10
Muy Bien 9
Bien 8
Regular 7
Suficiente 6
No Suficiente<6
Una vez terminado el programa deberá compilarlo y generar datos de prueba.

Copie el código generado, sus resultados y anéxelo como evidencia al final de esta
actividad, así mismo deberá poner sus conclusiones sobre lo aprendido con esta
práctica y una imagen de su autoevaluación.
APRENDIZAJE ESPERADO
Reafirmar y aplicar sus conocimientos teóricos sobre el uso de los arreglos
Bidimensionales, su declaración, instanciación, y uso de sus elementos, codificando
un programa que cumpla con la especificación indicada.
ESTRATEGIA DIDACTICA
Aprendizaje basado en problemas.
PRODUCTO FINAL ESPERADO
Código fuente de los programas generados y depurados.
Presenta pantallas con los resultados de la ejecución de sus programas, así como
su autoevaluación.
Escribe una conclusión de los aprendizajes al desarrollar estos problemas.

Ing. Martín Martínez Muñoz 151


Ing. Martín Martínez Muñoz 152
Ing. Martín Martínez Muñoz 153

También podría gustarte