INTRODUCCIÓN A LA PROGRAMACIÓN

2008

Elaborado por jjcm docente UTEPSA  1

MATERIA CARRERA

INTRODUCCIÓN A LA PROGRAMACIÓN Ing. Informática y Sistemas Administrativos Ing. Electrónica y Sistemas Ing. Redes y Telecomunicaciones Ing. Sistemas No tiene COMPETENCIA GENERAL

SIGLA SEMESTRE HORAS HORAS TEÓRICAS HORAS PRACTICAS

SIS-110 Segundo 80 40 60

PRERREQUISITO

CAPACIDAD DE ANALIZAR Y SINTETIZAR UN PROBLEMA EN PARTES CON EL FIN DE DISEÑAR SU REPRESENTACION ALGORITMICA

CONTENIDO TEMA-1 ARQUITECTURA DEL COMPUTADOR. El Microprocesador – CPU. Tareas. UC, ALU y Registros del Sistema El BUS. Bus de Control, Dirección y Datos. La Memoria. ROM, RAM y Caché Otros dispositivos: Controlador de Interrupciones, DMA, Periféricos, etc. TEMA-2 SISTEMAS DE NUMERACIÓN. Sistemas Numéricos Posicionales. Números BINARIOS, OCTALES y HEXADECIMALES Conversiones entre sistemas numéricos posicionales. Operaciones Aritméticas con números no decimales TEMA-3 REPREENTACIÓN DE LA INFORMACIÓN. GENERALIDADES. Sistemas de procesamiento de la información. Tipos de datos. Constantes y variables. Expresiones: (Aritméticas, Relacionales, Lógicas). Asignaciones. EJERCICIOS TEMA-4 DISEÑO DE ALGORITMOS. PASOS EN LA RESOLUCIÓN DE UN PROBLEMA. Definición y Análisis, Diseño del algoritmo, Codificación y Validación DIAGRAMAS DE FLUJO. Símbolos gráficos ESTRUCTURAS BÁSICAS DE ALGORITMOS. Estructuras selectivas. BIFURCACIONES. (Salida simple, Salida doble y Salida múltiple. Estructuras repetitivas. BUCLES (Condición al final, Condición al inicio, Conociendo el número de iteraciones, Contadores y acumuladores EJERCICIOS TEMA-5 CODIFICACIÓN. • TECNOLOGÍA .NET CONCEPTOS BÁSICOS de NET, La plataforma .NET. el FRAMEWORK.NET y el VISUAL STUDIO.NET El ENTORNO de DESARROLLO IDE. Diseño de Formularios y Editor de código CREACIÓN de un PROYECTO en C#.NET

EL CÓDIGO DE PROGRAMACIÓN. Lenguajes de máquina, de bajo nivel , de alto nivel o súper lenguajes, Compiladores e intérpretes PARTES de la ESTRUCTURA del CÓDIGO en C#.NET. Declaración de Variables ELEMENTOS BÁSICOS del CÓDIGO C#.NET OPERADORES y FUNCIONES C#.NET. TIPOS DE SENTENCIAS. Sentencias simples, Sentencias CONDICIONALES (if ( ).., if( ) ..else .., switch( ) ) y Sentencias REPETITIVAS (while( ), for ( ) y do .. while( )) CONVERSIONES DE CÓDIGO A DIAGRAMAS DE FLUJO. PROGRAMAS EN MODO CONSOLA Y ORIENTADOS A EVENTOS EJERCICIOS

BIBLIOGRAFÍA

• •

¨Algoritmos y Estructuras de datos ¨ ………………….………………..………………..… LUIS JOYANES AGUILAR , “Microsoft VISUAL C# STEP by STEPÓ ………….…………………………………………. JHON SHARP & JON JAGGER

Elaborado por jjcm docente UTEPSA  2

MODELO DE PLANIFICACIÓN POR CLASES
# 1 TEMA TEMA-1 ARQUITECTURA DEL COMPUTADOR. El Microprocesador – CPU. Tareas. UC, ALU y Registros del Sistema El BUS. Bus de Control, Dirección y Datos. La Memoria. ROM y RAM Controladores TEMA-2 SISTEMAS DE NUMERACIÓN. Sistemas Numéricos Posicionales. Números BINARIOS, OCTALES y HEXADECIMALES. Conversiones entre sistemas numéricos posicionales. Operaciones Aritméticas con números no decimales Suma y Resta. Operaciones Aritméticas con números no decimales. EJERCICIOS TEMA-3 REPRESENTACIÓN DE LA INFORMACIÓN. GENERALIDADES. Sistemas de procesamiento de la información. Tipos de datos. Constantes y variables. Expresiones: Aritméticas. Expresiones: Relacionales, Lógicas y de Caracteres Asignaciones. EJERCICIOS. Representación algorítmica de expresiones algebraicas. EXÁMEN PARCIAL I TEMAS 1,2 Y 3 TEMA-4 DISEÑO DE ALGORITMOS. PASOS EN LA RESOLUCIÓN DE UN PROBLEMA. Definición y Análisis, Diseño del algoritmo, Codificación y Validación. DIAGRAMAS DE FLUJO. Símbolos gráficos. EJERCICIOS ESTRUCTURAS BÁSICAS DE ALGORITMOS. Estructuras selectivas. BIFURCACIONES. (Salida simple, Salida doble y Salida múltiple. EJEMPLOS Estructuras selectivas. BIFURCACIONES. EJERCICIOS Estructuras Repetitivas BUCLES (Condición al final, Condición al inicio, BUCLES: Conociendo el número de iteraciones, Contadores y acumuladores. EJEMPLOS Estructuras Repetitivas BUCLES. EJERCICIOS EXAMEN PARCIAL II TEMA 4 TEMA-5 CODIFICACIÓN en C#.NET. TECNOLOGÍA .NET CONCEPTOS BÁSICOS de NET, La plataforma .NET. El FRAMEWORK.NET y el VISUAL STUDIO.NET. Creación de un Proyecto en C#.NET El IDE: La Barra de Menú y Herramientas. Diseño de Formularios. Controles Básicos La Ventana de Propiedades. Explorador de Soluciones. El Editor de Código LAB-1 EXPLORANDO EL ENTORNO DE DESARROLLO Lenguajes Tipos: máquina, de bajo nivel, de alto nivel. Compiladores e intérpretes. Declaración de Variables. Tipos de Datos. ELEMENTOS BÁSICOS del CÓDIGO C#.NET TIPOS DE SENTENCIAS. Sentencias simples, Sentencias CONDICIONALES <if( ), if( ) .. else .., switch( )> EJERCICIOS LAB-2 CODIGO DE ALGORITMOS – ESTRUCTURAS CONDICIONALES TIPO DE CLASE Teórica

2

Teórica Práctica Teórica Práctica Teórica Práctica Teórica Práctica Evaluación Teórica Teórica Práctica Práctica Teórica Práctica Práctica Evaluación

3 4 5 6 7

8 9 10 11 12

13

LAB-01

14

Teórica

15

LAB-02

Elaborado por jjcm docente UTEPSA  3

16 17 18 19 20

LAB-3 CODIGO DE ALGORITMOS – ESTRUCTURAS REPETITIVAS 1 Sentencias REPETITIVAS <while( ), for( ), do .. while( )>. EJERCICIOS LAB-4 CODIGO DE ALGORITMOS– ESTRUCTURAS REPETITIVAS 2 LAB-5 EXAMEN FINAL PRÁCTICO EXAMEN FINAL TEÓRICO

LAB-03 Teórica Práctica LAB-04 Evaluación LAB Evaluación

EVALUACIONES Evaluaciones escritas Evaluación Primer Parcial Segundo Parcial Exámenes Finales <práctico y teórico>

Temas a evaluar Temas 1,2 y 3 Tema 4: Diseño de Algoritmos Se evalúa el alcance de los objetivos de la materia. Este examen tendrá un componente práctico (habilidades en máquina) que se sugiere que tenga un peso correspondiente a la mitad del puntaje.

Puntos 20 20 50

Fecha Clase 7 Clase 13 Clases 19 y 20

TRABAJOS PRÁCTICOS Descripción Se sugiere que el docente oriente diferentes evaluaciones periódicas de control para verificar el aprendizaje de los diferentes temas avanzados en la materia, así como la evaluación de los LABs Puntos 10

TRANSVERSALIZACIÓN DEL IDIOMA INGLÉS
Se sugiere al docente orientar un trabajo de clases (5 ptos) de buscar el significado de palabras y estructuras de lenguajes C#.NET, como pudieran ser por ejemplo: referente a los tipos de datos, terminología de programación, sintaxis empleada en C#.NET, etc.

Elaborado por jjcm docente UTEPSA  4

TEMA-1 ARQUITECTURA BÁSICA DEL COMPUTADOR.

COMPETENCIAS ESPECÍFICAS: Al terminar el tema el alumno debe: • Conocer a fondo el esquema básico del computador. • Identificar y conocer el papel de las diferentes unidades que forman parte de la arquitectura básica del computador CONTENIDO: 1.1 Generalidades • Conceptos de: Hardware, Software e Informática • Esquema básico del Computador 1.2 El Microprocesador – CPU. • Tareas de la Unidad Central de Procesamiento CPU • Componentes del CPU: La Unidad de Control La Unidad Aritmético - Lógica Los Registros del Sistema 1.3 El BUS • Función • Tipos de Buses: Bus de Control, Bus de Dirección y Bus de Datos. 1.4 La Memoria • La Memoria. ROM: (PROM, EPROM, EEPROM) Arranque, BIOS y Extensiones al BIOS • La Memoria RAM • La Memoria Caché 1.5 Otros Componentes • Controlador de Interrupciones. • Generador de Reloj • Controlador de Acceso Directo a Memoria DMA • Dispositivos de Almacenamiento • Periféricos RESUMEN El tema plantea la composición interna del ordenador mediante su representación de forma muy esquemática. La Unidad Central de Procesamiento es referida como su componente principal destacándose las tareas a las cuales está encaminada y las funciones que cumplen sus componentes principales como son las unidades de control y aritmético – lógica. En los ordenadores la interconexión de todos los circuitos de control internos se realiza mediante un diseño de circuitos conocido con el nombre de BUS El BUS es un conjunto de pistas trazadas en la placa principal que conectan todas las partes que controlan y forman la PC y sirve para el paso de la información de un componente a otro. Si parte del software necesario para el funcionamiento de un ordenador se encuentra siempre grabado en el interior del mismo resulta mucho más fácil este funcionamiento, es por ello que parte del software se encuentra grabado en la memoria ROM (Read Only Memory). Los ordenadores vienen con una cantidad de ROM que contiene las unidades, programas y datos que son necesarios para activar y hacer funcionar al ordenador y sus periféricos. Por otra parte la RAM (Random Access Memory) es el área de trabajo donde el ordenador almacena temporalmente las órdenes o comandos a ejecutar y los datos que deben manipularse por dichas órdenes.

Elaborado por jjcm docente UTEPSA  5

Finalmente se mencionan los elementos de control los cuales sirven de apoyo al funcionamiento del microprocesador, o sea que éstos están especializados en determinadas operaciones descargando al microprocesador de estas actividades permitiéndole una mayor rapidez y efectividad en el manejo del sistema.

PREGUNTAS DE AUTOCONTROL 1. ¿Qué función cumple cada uno de los elementos que componen el microprocesador? 2. ¿Qué función cumple el reloj en el microprocesador? 3. Describa brevemente las características principales de la memoria: RAM, ROM, PROM, y EPROM? 4. ¿Qué es la ROM BIOS? 5. Describa como funciona el controlador de interrupciones 6. Describa como funciona el controlador de DMA 7. Para comunicarse con el resto de los componentes del computador el microprocesador cuenta con tres buses. ¿Cuáles son? Describa las características principales de cada uno.

TEMA-2 SISTEMAS DE NUMERACIÓN.

COMPETENCIAS ESPECÍFICAS: Al terminar el tema el alumno debe: • Conocer a cabalidad que es un sistema numérico posicional. • Identificar los sistemas Binarios, Octales y Hexadecimales. • Dominar la conversión entre los sistemas Binarios, Octales y Hexadecimales. • Dominar las operaciones aritméticas de suma y resta en los sistemas Binarios, Octales y Hexadecimales CONTENIDO: 2.1 Sistemas Numéricos Posicionales • Definición • Representación del sistema decimal según suma de potencias 2.2 El Sistema Binario • Representación del sistema binario como suma de potencias de base 2 • Representación gráfica de un byte y su relación del sistema binario a nivel de bit 2.3 Los Sistemas Octal y Hexadecimal • Tabla de números decimales, binario, octal y hexadecimal 2.4 Conversiones entre Sistemas Numéricos Posicionales • Cualquier base a decimal • Base decimal a otra base • Bases Octal y Hexadecimal a Binaria y viceversa • Base Octal a Hexadecimal y viceversa 2.5 Operaciones Aritméticas con Números no Decimales • Suma y resta de números binarios, octales y hexadecimales. RESUMEN En capítulo se analizan los sistemas numéricos posicionales SNP que son aquellos en los cuales la posición de los dígitos que componen al número tienen un “peso asociado” en el valor del mismo. Estos números se pueden representar como una suma de potencias donde cada sumando es un dígito multiplicado por la base o raíz del número elevado a una potencia acorde a la posición del mismo. Como bien los circuitos digitales tienen señales que normalmente están en una de dos condiciones: altobajo, cargado-descargado, activado-desactivado, estos representan a bits que toman los valores 0 y 1 Aunque las bases octales y hexadecimales no se emplean frecuentemente éstas son convenientes para números con múltiples bits en un sistema digital y por ello son motivo de estudio.
Elaborado por jjcm docente UTEPSA  6

El sistema octal necesita 8 dígitos por lo que emplea los dígitos de 0 a 7, esto implica que se necesitan 3 bits para poder representar su máximo valor (7) El sistema hexadecimal necesita 16 dígitos por lo que complementa los dígitos decimales 0 a 9 con las letras A a la F, de igual forma se necesitan 4 bits para la representación de su máximo valor (F=15) Las conversiones entre sistemas de distintas bases son a veces necesarias para el trabajo de los sistemas informáticos, luego se establecen las reglas para las conversiones entre los distintos sistemas numéricos vistos en el tema. El capítulo termina haciendo referencia a la ejercitación de las operaciones aritméticas de SNP de bases no decimales. EJERCICIOS RESUELTOS CONVERSIONES Convertir de binario a decimal los siguientes números:

100112 = 1*24 + 0*23 + 0*22 + 1*21 + 1*20 = 1*16 + 1*2 + 1*1 = 1910 1000102 = 1*25 + 1*21 = 3410 101. 0012 = 1*22 + 0*21 + 1*20 + 0*2-1 + 0*2-2 + 1*2-3 = 1*4 + 0*2 + 1*1 + 0*0,5 + 0*0,25 + 1*0,125 = 5,12510

Convertir:
a) 17910 binario 179 / 2 = 89 residuo 1 (lsb) / 2 = 44 residuo 1 / 2 = 22 residuo 0 / 2 = 11 residuo 0 / 2 = 5 residuo 1 / 2 = 2 residuo 1 / 2 = 1 residuo 0 / 2 = 0 residuo 1 (msb)

luego:
17910 = 101100112 b) 46710 a octal 467 / 8 = 58 residuo 3 (lsb) / 8 = 7 residuo 2 / 8 = 0 residuo 7 (msb)

luego:
46710 = 7238 c) 341710 a hexadecimal 3417 / 16 = 213 residuo 9 (lsb) / 16 = 13 residuo 5 / 16 = 0 residuo 13 (msb)

luego:
341710 = D5916

Convertir de binario a octal los siguientes números:
1000110011102 = 100 011 001 1102 = 43168 111011011101010012 = 011 101 101 110 101 0012 = 3556518 10.10110010112 = 010 . 101 100 101 100 = 2.54548

Convertir de binario a hexadecimal los siguientes números:
1000110011102 = 1000 1100 11102 = 8CE16 111011011101010012 = 1 1101 1011 1010 10012 = 1DBA916 10.10110010112 = 0010 . 1011 0010 1100 = 2.B2C16

Convertir de octal a binario los siguientes números:
13578 = 001 011 101 1112
Elaborado por jjcm docente UTEPSA  7

2046.178 = 010 000 100 110 . 001 1112

Convertir de hexadecimal a binario los siguientes números:
BEAD16 = 1011 1110 1010 11012 9F.46C16 = 1001 1111 . 0100 0110 11002

Comprobar los resultados de las conversiones siguientes: Convertir de Binario a Octal y Hexadecimal los siguientes valores:
0100111011102 1110111011102 10110111011112 111101.1101101002 2578 352116 47516 27208 363016 (23568 (73568 (133578 (75.6648 4EE16) EEE16) 16EF16) 6D.DA16)

Convertir de Octal y Hexadecimal a Binario los siguientes valores:
(010 101 1112) (0011 0101 0010 00012) (0100 0111 01012) (010 111 010 0002) (0011 0110 0011 00002)

Realizar las conversiones de Octal a Hexadecimal y viceversa siguientes:
12348 C0DE16 (001 010 011 1002 0010 1001 11002 29C16) (1100 0000 1101 11102 001 100 000 011 011 1102 1403368)

OPERACIONES ARITMÉTICAS BÁSICAS SUMA
C acarreo X 127 Y 63 190 <011111110> 011111112 001111112 101111102 <01010> 13278 6058 21348
3

C acarreo

<000000000> X 170 101010102 Y 85 010101012 255 111111112

C acarreo X 727 = 727 Y 389 1116

1 . 83+3 . 82+2 . 81+7 . 80 = 512+192+16+7 6 . 82+0 . 81+5 . 80 = 384+0+5 = 389 2 . 8 +1 . 8 +3 . 81+4 . 80 = 1024+64+24+4 = 1116
2

C acarreo <01100> X 51174 C7E616 12 . 163+7 . 162+14 . 161+6 . 160 =49152+1792+224+6 = 51174 Y 6585 19B916 1 . 163+9 . 162+11 . 161+9 . 160 = 4096+2304+176+9 = 6585 57759 E19F16 57759 / 16 = 3609 res 15 (lsb) / 16 = 225 res 9 / 16 = 14 res 1 / 16 = 0 res 14 (msd)

RESTA
B préstamo X 127 Y 63 64 B préstamo X 727 Y 389 338 <00000000> 011111112 001111112 010000002 <1000> 13278 6058 5228 B préstamo X 170 Y 85 85 <10101010> 101010102 010101012 010101012

1 . 83+3 . 82+2 . 81+7 . 80 = 512+192+16+7 = 727 6 . 82+0 . 81+5 . 80 = 384+0+5 = 389 5 . 82+2 . 81+2 . 80 = 320+16+2 = 338

Elaborado por jjcm docente UTEPSA  8

B préstamo <1010> X 51174 C7E616 12 . 163+7 . 162+14 . 161+6 . 160 =49152+1792+224+6 = 51174 Y 6585 19B916 1 . 163+9 . 162+11 . 161+9 . 160 = 4096+2304+176+9 = 6585 44589 AE2D16 10 .163+14 .162+2 . 161+13 . 160 =40960+3584+32+13 = 44589

Elaborado por jjcm docente UTEPSA  9

EJERCICIOS PROPUESTOS CONVERSIONES Convertir de binario a decimal los siguientes números:
a)1012 b)01112 c)101011112 d)10001110101012

Convertir de decimal a binario los siguientes números:
a)278 b)936 c)1897 d)5863

Convertir de decimal a hexadecimal los siguientes números:
a)15 b)59 c)268 d)873

Convertir de hexadecimal a decimal los siguientes números:
a)1A16 b)D816 c)5C216 d)4FB16

Convertir de octal a decimal los siguientes números:
a)648 b)1058 c)10258 d)45308

Convertir de decimal a octal los siguientes números:
a)43 b)80 c)236 d)4586

Convertir de binario a octal los siguientes números:
a)110101012 b)111100112 c)1000011110112 d)11000011111012

OPERACIONES ARITMÉTICAS BÁSICAS Realizar las siguientes sumas binarias:
a)1012 + 102 c)10012 + 11102 b)1102 + 112 d)101002 + 110112

Realizar las siguientes restas binarias:

a)10112 – 1002 b)1011101102 – 1000002 c)10000010002 – 11100112 d)11010000102 – 1111112

ANEXO TEMA 2 Tabla de Números Decimales, Binario, Octales y Hexadecimales. DECIMA L 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 BINARIO 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 OCTAL 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 HEXADECIMAL 0 1 2 3 4 5 6 7 8 9 A B C D E F

Elaborado por jjcm docente UTEPSA  10

RESUMEN DE CONVERSIONES PARA BASES COMUNES: • De cualquier base a base decimal Uso de la fórmula:
D =di * r i

donde: r = base del número en cuestión p = cantidad de dígitos a la izquierda del punto n = cantidad de dígitos a la derecha del punto di = dígito en la posición i • De base decimal a otra base Mediante divisiones sucesivas del número en cuestión entre la base a la que se quiere llevar, hasta obtener un cociente igual a cero, siendo el resultado los residuos colocados en forma inversa. De bases Octal y Hexadecimal a Binaria y viceversa Mediante sustitución de cada dígito octal o hexadecimal por su valor binario, sabiendo que cada dígito octal se representa mediante 3 dígitos binarios y a cada Hexadecimal le corresponden 4 dígitos binarios. De Binario a Octal o Hexadecimal se procede de forma inversa o sea a cada 3 o 4 dígitos binarios le corresponde un dígito Octal o uno Hexadecimal respectivamente. De base Octal a Hexadecimal y viceversa Mediante sustitución a través de la base binaria, es decir se pasa de Octal a binario y luego a Hexadecimal acorde al punto anterior y de la misma forma en caso de ser de Hexadecimal a Octal. Y
0 1 0 1 0 1 0 1

i =− n

p −1

Tabla de Suma Binaria ci X
0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1

X+Y
0 1 1 0 1 0 0 1

c
0 0 0 1 0 1 1 1

ci y c son acarreo inicial y acarreo

Tabla de Resta Binaria bi X
0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1

Y
0 1 0 1 0 1 0 1

X–Y
0 1 1 0 1 0 0 1

b
0 1 0 0 1 1 1 1

bi y b son préstamo inicial y préstamo

Elaborado por jjcm docente UTEPSA  11

TEMA-3 REPRESENTACIÓN DE LA INFORMACIÓN.

COMPETENCIAS ESPECÍFICAS: Al terminar el tema el alumno debe: • Identificar los conceptos generales que se tomarán en cuenta a lo largo de la materia para la resolución de problemas como son variables, constantes, tipos de datos, operadores y expresiones • Identificar las operaciones de asignación y las de entrada – salida como operaciones básicas de cualquier programa de computación CONTENIDO: 3.1 Generalidades. • Sistema de Procesamiento de la Información 3.2 Representación de la Información • Tipos de datos. • Constantes y variables. • Expresiones: (Aritméticas, Relacionales, Lógicas, de Caracteres). • Asignaciones. RESUMEN: En el tema se plantea el mecanismo de procesamiento de la información (datos, programa, salida), como

sistema de información, considerándose fundamentalmente los tipos de datos numéricos (enteros y reales), booleanos o lógicos y los de carácter – cadena. Los programas de computación contienen ciertos valores que no cambian durante la ejecución del programa y otros que pueden cambiar durante la ejecución del mismo, a los primeros se les denominan constantes mientras que a los últimos se les conoce como variables. Las expresiones en su forma mas simple están definidas según: operando – operador – operando siendo, generalmente, los operandos, variables y constantes y los operadores símbolos que indican la operación (aritmética o lógica) a realizar con los operandos. Cuando las expresiones son simples no existe duda en cuanto a la operación a realizar, pero cuando son compuestas, es decir, cuando intervienen mas de dos operadores, debe existir un orden o precedencia para realizar las operaciones señaladas. Cuando una constante, variable o resultado de una expresión se asigna a una variable el valor contenido en ésta es reemplazado por el valor asignado conociéndose esta operación como operación de asignación. Un algoritmo no es mas que una serie de instrucciones o sentencias que especifican la secuencia de pasos a seguir en la resolución de un problema, estando éste último regido por, al menos, de una serie de pasos como la definición y análisis del problema, el desarrollo del algoritmo, la codificación o representación mediante un lenguaje de programación y la validación o corrección de la representación del problema hasta alcanzar los resultados esperados. Finalmente en el tema se estudia la representación algorítmica de diversas expresiones algebraicas. PREGUNTAS de AUTOCONTROL: • • • • • • ¿A que se denomina dato en programación? ¿Qué se entiende por algoritmo y como puede ser representado? ¿Qué características poseen las operaciones de entrada – salida en un programa? ¿Dónde pueden ser usadas las expresiones relacionales y lógicas en un programa? Diga, a su criterio, ¿que importancia revisten las operaciones de entrada – salida? Como Ud. conoce en una operación de asignación es posible asignar el contenido de una expresión a una variable, a lo que se denomina operación de asignación. ¿Podría esa misma variable encontrarse como un operando de la expresión? Explique.
Elaborado por jjcm docente UTEPSA  12

EJEMPLOS RESUELTOS: I Indicar el valor de cada una de las siguientes variables:

1. 2.

3.

4.

5.

a (2 * 2 * 2) + 9 / 5 – 6 * 8 a  8 + 1.8 – 48 a  -38.2 b  4 * (3 * 3) / 8 + 5 b4*9/8+5 b  36 / 8 + 5 b  9.5 c  ((4 * 3) * (4 * 3)) / (8 + 5) c  (12 * 12) / 13 c  144 / 13 c  11.07 d  (3 * 3) – 9 / (5 – 6 ) * 8 d  9 – 9 / (-1 ) * 8 d9+9*8 d  81 e  125 / (5 * 5) – 5 e  125 / 25 – 5 e5–5 e0

II Hallar el valor de la variable z en cada una de las expresiones: Si:
a 6 b  a * 10 – 3 (b  6 * 10 – 3 b 57) c 7+b/3 (c  7 + 57 / 3 c  7 + 19 c  26) z a+b%c z  6 + 57 % 26 z6+5 z  11 z  (a + b) / c z  (6 + 57) / 26 z  63 / 26 z2 z  b / a + (c * c) z  57 / 6 + (26 * 26) z  9 + 676 z  685 z  a * b / (c – 6 ) z  6 * 57 / (26 – 6) z  6 * 57 / 20 z  17 z  (b + c) / a + (b + c) % a z  (57 + 26) / 6 + (57 + 26) % 6 z  83 / 6 + 83 % 6 = 13 + 5 z  18

6.

7.

8.

9.

10.

III Evaluar las expresiones algorítmicas siguientes:

11. cuadrado(3) > abs(9.05) 9 > 9.05 F 12. no(16 * 2 > 5 * 5) y (24 % 5 / 2 == 2) no(32 > 25) y (4 / 2 == 2) no(V) y V
Elaborado por jjcm docente UTEPSA  13

13.

FyV F raiz2(625) == cuadrado(5) 25 = 25 V

14. (4 * 4 + 9) > cuadrado(5)
(16 + 9) > 25 25 > 25 F ((6 + 3 * 3) > abs(15.1)) o (25 == (9 + 4 * 4)) ((6 + 9) > 15.1) o (25 == (9 + 16)) (15 > 15.1) o (25 == 25) FoV V

15.

EJERCICIOS PROPUESTOS 1. Indicar el valor de cada una de las siguientes variables:
a) x  ( 2 + 3) * 6 b) x  4 2 + 7 * 6 c) x  ( 4 2 + 7 ) * 6 d) x  4 2 + ( 7 * 6) e) y  f) y 

9 +7 5 54

33 126 3 g) y  21 2. Indicar el valor de cada una de las siguientes variables:

a) b) c) d) e)
a) b) c) d) e) f) g) h) i) j)

a 3 a 2 w 9 q 2 q 2

b 6 b  10 x 2 e  34 e  34

c 8 d a+b–c c  7 d  (a + b) % c y  3 z  x +w / y r  8 h  ((e / q) % q -r) * 3 r  8 h  ((e+r) % 7) * (q – r)

3. Evaluar las siguientes expresiones:

– 4 * 7 + (2 * 2 * 2) / 4 – 5 (24 % 5) / 2 5 * 5 / (15 + 5 * 2) 12 + 3 * 7 + 5 * 4 (4 * 4 + 2 * 2) < (10+ 5 / 2) (1.0 * 3.0) == raiz2 (9) cuadrado (4) >= abs (16.5) (5 * 5 > 16 * 2) o (3 * 3 > 2 * 4) no ((24 % 5) / 2 == 2 ) no (raiz2(31 + 5) == 6) y (0 < 1)

4.

Encontrar el valor de la variable VALOR después de la ejecución de las siguientes operaciones.

a) b)

VALOR  4.0 * 5 X  3.0 Y  2.0 VALOR  X * Y – Y
Elaborado por jjcm docente UTEPSA  14

c) d) e)

VALOR  5 X3 VALOR  VALOR * X VALOR  (10 > 6) Y (10 == 6) VALOR  2 * 2 + 5 * 5 VALOR  VALOR + 1

5. Deducir el valor que tienen las variables A y B al final de la siguiente secuencia de instrucciones.
A B B B A      4 5 A+1 B+1 B

ANEXOS TEMA 3 EXPRESIONES Expresiones aritméticas Los operadores de las expresiones aritméticas son: +, – suma, resta *, / multiplicación, división (cuando ambos operandos son enteros el resultado es un valor entero, si uno de ellos es real el resultado es de tipo real) % resto de la división entera Expresiones relacionales Operador < > == <= >= != significado menor que mayor que igual que menor o igual que mayor o igual que distinto de

Expresiones lógicas operador lógico no y o expresión lógica no p pyq poq significado Negación de p Conjunción de p y q Disyunción de p y q

Precedencias de las operaciones Lenguaje C#.NET: nivel 1 2 3 4 5 6 tipo Lógicas Aritméticos Descripción Paréntesis (agrupamiento) Negación Multiplicación, División y Resto de la división entera Suma, Resta Operadores relacionales Operador () no */% + – <, >, <=, >= == !=
Elaborado por jjcm docente UTEPSA  15

7 8

Lógicas Asignación

Conjunción, Disyunción

yo =

TABLA DE EXPRESIONES ALGEBRAICAS - ALGORITMICAS Exp. algebraica Significado |x| Valor absoluto de x Tan-1 (x) Ángulo cuya tangente es x sin(x), cos(x) Seno y coseno del ángulo x ln(x), Logaritmos natural y base 10 del valor x log10(x) Redondeo del valor x Ejemplos: 7.25 a 7; 7.85 a 8; 7.5 a 8; 6.5 a 6 x2 Cuadrado del valor x Raíz cuadrada de x x Truncar el valor x (eliminar la parte fraccionaria de un valor real, devolviendo un entero) Ejemplo: 4.998 a 4

Exp. algorítmica abs(x) arctan(x) sen(x), cos(x) ln(x), log10(x) redondeo(x) cuadrado(x) raiz2(x) trunc(x)

Elaborado por jjcm docente UTEPSA  16

TEMA-4 DISEÑO DE ALGORITMOS.
COMPETENCIAS ESPECÍFICAS: Al terminar el tema el alumno debe: • Desarrollar el pensamiento lógico y la capacidad de descomponer la solución de un problema en pasos ordenados con el fin de diseñar algoritmos sencillos • Identificar las estructuras básicas de los algoritmos y aplicarlas adecuadamente en la resolución de problemas • Representar gráficamente los algoritmos mediante diferentes métodos CONTENIDO: 4.1 Pasos en la Resolución de un Problema. • Definición y Análisis, • Diseño del algoritmo, • Codificación y • Validación 4.2 Diagramas de Flujo. • Símbolos gráficos 4.3 Estructuras Básicas de Algoritmos. • Estructuras selectivas. BIFURCACIONES. Salida simple, Salida doble y Salida múltiple. • Estructuras repetitivas. BUCLES Condición al final, Condición al inicio, Conociendo el número de iteraciones, Contadores y acumuladores RESUMEN: Se detallan los pasos a seguir en la resolución de un problema, vistos en el tema anterior, siendo el paso del análisis desglosado en los datos de entrada, los resultados, las fórmulas necesarias si éstas existieran y la lógica a emplear, es decir, que herramientas de programación se emplearán y como para resolver el problema. La definición del problema es un aspecto crucial pues el programador debe de estar muy claro en que es lo que se le está solicitando. El análisis debe aprovecharse para definir mediante identificadores cuales son las variables que intervendrán en el problema. Existen varios métodos para el desarrollo de un algoritmo como son los de seudo código, los diagramas de flujo y los lenguajes de programación. El seudo código es el planteamiento del problema mediante un lenguaje coloquial, los diagramas de flujo mediante símbolos gráficos y los lenguajes de programación mediante el código directo que interpretará la PC, éste último constituye la forma mas avanzada de plantear el algoritmo por lo que para ello el programador debe contar con suficiente experiencia. En el caso de los dos primeros métodos es necesaria la codificación, es decir, pasarlo a un lenguaje de programación determinado. En el caso de los diagramas de flujo se estudian las estructuras selectivas o bifurcaciones que son las empleadas para la consideración de variantes de acuerdo al comportamiento de una determina condición, de esta forma se plantean las bifurcaciones de salida simple cuando el resultado de la condición es verdadero o de salida doble cuando el flujo de la ejecución toma caminos en dependencia si la condición es verdadera o si es falsa, asimismo se plantea el caso de la bifurcación con salidas múltiples donde al evaluar una expresión o variable, el flujo seguirá acorde al valor tomado. Un bucle o lazo es un segmento del programa que se repite un número de veces mientras se cumpla una condición determinada y donde en cada ciclo o iteración se comprueba la condición. Existen bucles en

Elaborado por jjcm docente UTEPSA  17

los que la condición se encuentra al final y otros donde ésta está al inicio, así como pueden existir bucles donde la cantidad de iteraciones o repeticiones son conocidas de antemano. Los procesos repetitivos son la base del uso de las computadoras. En estos procesos se necesita, frecuentemente, contar las repeticiones que se efectúan, esto es lo que se denomina un contador. Luego un contador es una variable cuyo valor se incrementa o disminuye en una cantidad constante en cada iteración, asimismo un acumulador o totalizador es una variable cuya misión es almacenar cantidades variables resultantes de sumas sucesivas. Los contadores y los acumuladores necesitan ser inicializados con un valor antes de la ejecución del bucle, ya que las variables que lo identifican se encuentran en la expresión que se les asignará. PREGUNTAS de AUTOCONTROL: • ¿Por qué son necesarios, en algunos casos, el uso de contadores en las estructuras repetitivas de los programas de computación? • ¿Cuál es la diferencia entre dos bucles en uno de los cuales la condición se encuentra al inicio de éste y en otro en la que se encuentra al final del mismo? EJEMPLO RESUELTO: 1 Calcular la media de una serie de números enteros y positivos dados por el usuario desde teclado. El valor cero (0) indica el fin de la entrada. Análisis del Problema Datos.- n (diferentes valores dados por el usuario, es decir n1, n2, .. ,nn) R/s.Vprom (valor promedio) Fórmulas.Vprom = (n1 + n2 + … + nk)/k (sumatoria de los # dados entre la cantidad) Lógica.- Se usará un acumulador para la sumatoria y un contador para la cantidad de valores entrados, en un ciclo hasta la lectura del valor 0 El valor 0 => la impresión de Vprom y fin del algoritmo Diseño del Algoritmo

Codificación (se verá próximamente cuando se estudie la programación en C#.NET) Validación Se comprobará mediante el siguiente juego de valores: 15, 8, 23, 102, 0 de donde Promedio = (15 + 8 + 23 + 102) / 4 = 148/4 = 37 Corrida a mano del algoritmo ( consiste en ir evaluando paso a paso las distintas variables acorde al flujo del diagrama) var val inicial ciclo 1 ciclo 2 ciclo 3 ciclo 4 n 15 8 23 102 c 0 c= 0+1= 1 c= 1+1= 2 c= 2+1= 3 c= 3+1= 4 S 0 S= 0 + 15 = S= 15 + 8 = S= 23 + 23 = S= 46 + 102
Elaborado por jjcm docente UTEPSA  18

15 Vprom = S / c = 148 / 4 = 37 Lo cual coincide con el resultado a priori.

23

46

=148

EJERCICIOS PROPUESTOS: 1. Plantear los pasos lógico que usted sigue para ir desde su casa hasta su universidad. 2. Una persona solo sabe sumar dos números y dividir 2 números. Escribir los pasos que se deben seguir para que esta persona calcule el promedio entre los números 9, 4, 12. 3. Modificar el anterior- ejercicio para calcular el promedio de 3 números cualesquiera. 4. Calcular la velocidad promedio que emplea un corredor de maratón en su Carrera. Los datos del tiempo empleado, expresado en minutos, se introducen desde el teclado y el resultado se visualiza en pantalla en kilómetros por horas. 5. Convertir una temperatura expresada en grados Celsius a grados Fahrenheit. La formula de conversión es F = 9/5+32 6. Determinar el área y el volumen de un cilindro cuyas dimensiones se leen por teclado 7. Determinar si un número es múltiplo de 6 y 9 a la vez 8. Intercambiar dos variables a y b en caso de que a sea mayor a b 9. Determinar el mayor de tres números 10. Imprimir el día de la semana en caso de que su inicial coincida con una tecla oprimida por el usuario. En caso de que no coincida imprimir un mensaje de error. 11. Calcular el salario de un empleado si se sabe que para los de turno diurno la tarifa en el caso de horas normales de trabajo es de 1.3 $/hora y en el caso de horas extras es de 2. l si el empleado es de turno diurno, la tarifa será horas normales es de 1.8 y para horas extras es de 2.5. 12. Determinar si un carácter tecleado por el usuario es un dígito, una mayúscula, una minúscula o un carácter especial 13. Determinar el mayor entre 4 números. 14. Generar los 10 primeros números naturales 15. Generar los primeros N número naturales. 16. Sumar los N primeros números naturales 17. Sacar el promedio de los primeros N números naturales. 18. Generar los N números enteros antes del 100. 19. Generar los N últimos números enteros antes de un número A. 20. De un conjunto de N números enteros, sacar el promedio de los pares. 21. De un conjunto de N números, sumar sólo aquellos que llegan en forma ascendente. 22. Escoger el menor entre N números 23. Escoger el mayor y menor de un conjunto de N números. 24. Generar las siguientes series: a.) Serie de Fibonacci-. 1, 1, 2,3, 5, 8, 13, 21, 34, 55, 89 b.) 1, 3, 4, 7, 11, 18, 29, c.) 1, 20, 3, 18, 5, 16, 7, 14, 9, 12, 11, 10, 13, 8, 15, 6, 17, 4, 19, 21, 0 d.) 1, 2, 4, 8, 16, 32, 64, -128 e.) 1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 1, 2, 3, 4, 4, 3, 2, 1, 1, 2, 3, 3, 2, 1, 1, 2, 2, 1, 1, 1 f.) -1, 1, -2, 3, -5, 8, -13, 21, -34, 55 g.) 1, 2, 6, 24, 120, 720 ……………….n! h.) - 1, 1, -2, 2, -3, 4, -4, 8, -5, 1 6, -6, 32 25. Teniendo un número natural cualquiera, calcular la cantidad de dígitos que contiene. 26. Determinar el factorial de un número N

Elaborado por jjcm docente UTEPSA  19

ANEXOS TEMA 4 DIAGRAMAS DE FLUJO. SÍMBOLOS GRÁFICOS Y SEUDO CÓDIGOS DF SEUDO CÓDIGO inicio, fin DESCRIPCIÓN Indica el inicio y fin del programa Indica un proceso predefinido o procedimiento <método> leer a mostrar x a b+c si (a > 0) : fin si (b == 0) : sino : fin Entrada de datos por teclado Salida de resultados por pantalla Asignación de datos, expresiones o variables Comparación de una expresión booleana con salida simple

Comparación de una expresión booleana con salida doble Conexión entre líneas de flujo Líneas de flujo. Indican los flujos del diagrama Comentario para referenciar algún proceso

hacer : mientras que (e==0)

Ciclo repetitivo para la ejecución de una o más sentencias con la condición al final del bucle

mientras (g >1) : fin para i=1 hasta n hacer : fin 

Ciclo repetitivo para la ejecución de una o más sentencias con la condición al inicio del bucle

Ciclo repetitivo para la ejecución de uno o más sentencias con un número de iteraciones dadas Asignación de datos a una variable

Elaborado por jjcm docente UTEPSA  20

Bifurcación Condicional Tipos:

Estructuras Repetitivas Tipos:

Condición al final

Condición al inicio

Se conoce el # de repeticiones

Elaborado por jjcm docente UTEPSA  21

TEMA-5 CODIFICACIÓN
COMPETENCIAS ESPECÍFICAS: Al terminar el tema el alumno debe: • Comenzar a usar proyectos en C Sharp.NET < C#.NET> a través del entorno .NET. • Utilizar las herramientas de diseño y programación en el entorno de desarrollo de trabajo con las aplicaciones. • Crear mediante el empleo de la PC, en el laboratorio, una aplicación simple. • Identificar conceptos relacionados con el entorno de la programación como son: lenguajes de alto y bajo nivel, compiladores, intérpretes, etc. • Utilizar el lenguaje de programación C#.NET como herramienta para la resolución de diversos problemas • Traducir, de forma eficiente, a código de programación las diversas estructuras algorítmicas estudiadas. CONTENIDO: 5.1 Tecnología .NET • Conceptos Básicos de NET, La plataforma .NET. Framework.NET Visual Studio.NET • El Entorno de Desarrollo IDE. Diseño de Formularios y Editor de código La ventana de Propiedades • Creación de un Proyecto en C#.NET El proceso de desarrollo Creación de la Interfaz de usuario Fijando propiedades a los controles y añadiendo el código asociado Construyendo un archivo ejecutable 5.2 EL Código de Programación. • Lenguajes de Programación Lenguajes de máquina, de bajo nivel , de alto nivel o súper lenguajes. Compiladores e intérpretes • Estructura del Código en C#.NET. Declaración de Variables Elementos Básicos del Código C#.NET Operadores y Funciones C#.NET. Tipos de Sentencias. Sentencias simples, Sentencias Condicionales <if ( ), if ( ) .. else, switch ( ) > Sentencias Repetitivas <while( ), for( ), do .. while( )> Conversiones de Código a Diagramas de Flujo. Programas en Modo Consola y Orientados a Eventos Ejercicios RESUMEN: En la primera parte del tema se presenta al lenguaje C#.NET explicando a grandes rasgos como se inserta el mismo en la plataforma .NET y como se emplean las herramientas de programación en VS.NET proveyendo los elementos necesarios para la creación de una aplicación. Es importante conocer previamente, algunos conceptos básicos de .NET como son la plataforma que posibilita el uso de la tecnología .NET, el FrameWork y el VisualStudio entre otros. Por otra parte en el tema se señalan las principales características del entorno de desarrollo usado para la creación y modificación de las aplicaciones como la ventana de formularios y la caja de herramientas.

Elaborado por jjcm docente UTEPSA  22

Finalmente se explica como se procede para la creación de una aplicación en C#.NET, atendiendo al proceso de desarrollo que involucra a la misma y se proveen detalles de la sintaxis del lenguaje e implementación. Las acciones de un algoritmo definidas en sus pasos se traducen en la codificación del programa como instrucciones o sentencias, luego el código consta de una serie de instrucciones o sentencias cada una especificando las operaciones que debe hacer la computadora. El código puede estar escrito en lenguaje de máquina, en lenguaje de bajo nivel o en superlenguaje, los primeros solo lo entienden las computadoras ya que son cadenas binarias (0 y 1) que especifican las operaciones y direcciones en memoria empleadas por lo que este lenguaje depende del hardware de la máquina lo cual dificulta su portabilidad, los de bajo nivel usan instrucciones que son conocidas como nemotécnicas siendo mas fáciles de usar que los anteriores pero al igual que ellos dependen del hardware, mientras que los superlenguajes están diseñados para un fácil entendimiento de las personas, es decir, poseen una sintaxis sencilla parecida al lenguaje coloquial y no dependen del hardware de la computadora lo cual garantiza su portabilidad. El código escrito en un lenguaje por encima al de máquina se denomina código fuente, el cual tiene que ser traducido, al lenguaje de máquina para que la computadora pueda entenderlo, mediante programas del lenguaje denominados traductores. En el caso de los súper lenguajes estos traductores se denominan compiladores. Luego los compiladores crean un nuevo tipo de código denominado código objeto el cual el sistema utiliza para la creación del código ejecutable (.exe) Sin embargo no es esencial la traducción de los lenguajes de alto nivel para la ejecución de un programa. Algunas veces es mejor realizar la traducción a una forma de lenguaje intermedio que es ejecutado por otro programa denominado intérprete. Luego un intérprete es un programa que lee el programa a ser interpretado y lo ejecuta sentencia a sentencia. La codificación en el lenguaje consta de varias partes esenciales, entre las que se encuentran la declaración de constantes y variables que se utilizarán en el código de la aplicación y las sentencias de éste que especifican las acciones a realizar por la PC. Existen varios tipos de sentencias; las simples como las de asignación, de llamado a procedimientos Sub y las de GoTo, las sentencias condicionales y las repetitivas, estas dos últimas analizadas algorítmicamente anteriormente. Finalmente resulta interesante realizar el proceso inverso a la codificación, es decir dado el código en lenguaje C#.NET poder representarlo mediante un diagrama de flujo. PREGUNTAS de AUTOCONTROL: 1. ¿Cómo se accede al editor de código para la creación de un formulario? Mencione un ejemplo de por qué sería necesario hacer esto. 2. ¿Cómo puede el CLR (Common Language RunTime) administrar la ejecución de aplicaciones escritas en diferentes lenguajes de programación? 3. Después que se crean las especificaciones de diseño para una aplicación. ¿Cómo puede UD. crear objetos para la interfaz de usuario? 4. Mientras UD. está creando una aplicación en C#.NET. ¿Cómo puede UD. asegurarse que trabaja correctamente cuando se realiza un cambio de consideración en la misma? 5. ¿Qué herramienta de programación se usa para cambiar el color y la captura de información de un objeto en la interfaz de usuario? 6. ¿A que se denomina codificación? 7. ¿Qué tipo de dato óptimo asociado Ud, usaría para una variable que represente: valores enteros y positivos solo valores enteros (positivos y/o negativos) la edad de una persona. el sexo de una persona 8. ¿Por qué los lenguajes de programación vienen acompañados por programas denominados compiladores? 9. ¿Cual es el problema fundamental que presentan los lenguajes de programación que no llegan a constituir un súper lenguaje? 10. Señale que diferencias existen entre un programa fuente y un programa ejecutable.

Elaborado por jjcm docente UTEPSA  23

EJERCICIOS RESUELTOS: 1. Calcular y visualizar por pantalla, el área de un triangulo, suministrándole por teclado la base y la altura. Interfaz de Usuario Se comienza agregando los controles necesarios en un formulario nuevo como se muestra en la imagen:

Objeto Form1 Label1 Label2 Label3 Label4 Label5 TextBox1 TextBox2 Button1

Nombre

Propiedad Text = CÁLCULO del ÁREA de un TRIÁNGULO Text = Base Text = Altura Text = Área BackColor = Silver Text = Calcular

lblRes txtBase txtAlt btnCalc

Código de la Aplicación En el evento Click del botón btnCalc cuyo texto es Calcular se coloca el código que se puede ver en el listado completo del programa. public Form1() : private void btnCalc_Click(object sender, EventArgs e) { float Base, Altura, Area; Base = float.Parse(this.txtBase.Text); Altura = float.Parse(this.txtAlt.Text); Area = (Base * Altura) / 2; this.lblRes.Text = Area.ToString();
Elaborado por jjcm docente UTEPSA  24

} La aplicación una vez ejecutada se muestra en la figura que sigue:

2. Realizar un programa que lea del teclado un número correspondiente al radio de la circunferencia, visualizando la longitud de la misma y el área del círculo correspondiente. Interfaz de Usuario Se comienza agregando los controles necesarios en un formulario nuevo como se muestra en la imagen:

Objeto Form1 Label1 Label2 Label3 TextBox1 TextBox2 TextBox3 Button1 Button2

Nombre

Propiedad Text = Circunferencia Text = Radio Text = Área Text = Longitud

txtRadio txtArea txtLong btnCalc btnFin

Text = Calcular Text = Terminar

Código de la Aplicación public Form1() : private void btnCalc_Click(object sender, EventArgs e) { double r, area, Lng; r = double.Parse(this.txtRadio.Text); area = Math.PI * r * r; Lng = 2 * Math.PI * r; this.txtArea.Text = area.ToString(); this.txtLong.Text = Lng.ToString(); } private void btnFin_Click(object sender, EventArgs e) { this.Close();
Elaborado por jjcm docente UTEPSA  25

} La aplicación una vez ejecutada se muestra como la figura que sigue:

EJERCICIOS PROPUESTOS 1.Crear una aplicación denominada Propiedades de Adición que muestre las propiedades Asociativa (a + b) + c = a + (b + c) y Conmutativa a + b = b + a cuando se haga clic en los botones agregados al Formulario a tales efectos. La Interfaz de Usuario debe lucir como la siguiente:

2.Crear

una aplicación denominada Conversión de Temperatura que cuando el usuario entre un valor en grados centígrados (Celsio) se muestre su correspondiente en grados Fahrenheit cuando se haga clic en el botón agregado al Formulario a tales efectos <fórmula C = 5/9(F – 32)>. La Interfaz de Usuario debe lucir como la siguiente:

3.El costo de hacer una pizza en una pizzería es el

siguiente:  Mano de obra $0,75 por pizza, independiente del tamaño de las misma  Costo de renta $1.00 por pizza, independiente del tamaño de las misma  Materiales $0.05 * diámetro2 (el diámetro se mide en pulgadas) Cree una aplicación denominada Costo de Pizzas que permita al usuario entrar el valor del diámetro de la pizza y muestre el costo de la misma cuando se haga clic en el botón Costo, agregado a tal efecto en el formulario. La Interfaz de Usuario debe lucir como la siguiente:
4.Crear una aplicación que permita al usuario entrar una

cantidad menor de Bs 10 y muestre el número mínimo de monedas para efectuar el cambio cuando se haga clic en

Elaborado por jjcm docente UTEPSA  26

el botón Monedas, el cambio puede ser efectuado en monedas de Bs 0.10, Bs 0.20, Bs 0.50, Bs 1.00, Bs 2.00 y Bs 5.00. La Interfaz de Usuario debe lucir como la siguiente:

5. Crear una aplicación denominada Número de Dígitos que

permita al usuario entrar un valor numérico entero y cuando el usuario haga clic en el botón Dígitos se muestre la cantidad de dígitos que posee el número entrado. La Interfaz de Usuario debe lucir como la siguiente:

6.Crear la aplicación Test Matemático que muestre una

expresión aritmética mediante la creación aleatoria de 5 números y 4 operadores aritméticos (+, –, *, /, \) y donde el usuario tenga que escribir el resultado. La aplicación comprobará la respuesta y mostrará un mensaje de si es correcta o no y permitirá al usuario ver mediante una caja de mensajes la respuesta correcta. La Interfaz de Usuario debe lucir como la siguiente:

7.Crear una aplicación denominada Sumatoria que

calcule la suma de un determinado rango de valores entrados por el usuario y que muestre en una etiqueta el resultado de dicha sumatoria. La Interfaz de Usuario debe lucir como la siguiente:

8.Crear la Interfaz de Usuario y escribir el código para un problema que dado un conjunto de n números

enteros encontrar el promedio de los mismos
9.Crear la Interfaz de Usuario y escribir el código para un problema que permita invertir un número de 3 10.Diseñar un algoritmo que calcule el área de un conjunto de círculos.

dígitos, dado como entrada por el usuario. Use los controles a su elección que le permitan lo anterior. El radio de cada círculo en centímetros se leerá mediante una caja de texto (TextBox) y se almacenará en una caja de lista (ListBox). El algoritmo deberá mostrar la siguiente información por pantalla a través de una caja de mensaje (MessageBox): a. El área mayor calculado b. El área menor
Elaborado por jjcm docente UTEPSA  27

c.

El promedio de las áreas de todos los círculos

11.En una empresa se fabrican dos tipos de piezas: Cónicas y Cilíndricas. Para confección de dichas piezas

es necesario conocer el volumen de las mismas. Cree la Interfaz de Usuario y escriba el código para el proceso de calculo del volumen de cualquier pieza si se conoce que las fórmulas para el cálculo de volumen son las siguientes: Cilindro: V= 3.14*R^2*H Cono: V = 3.14 * R^2/3 Donde V : Volumen R : Radio de la base H : Altura Nota: El programa debe servir para calcular el volumen de cualquier cantidad de piezas. 12.Escriba un programa (Interfaz de Usuario y confección del código) que permita clasificar triángulos según la longitud de sus lados. Los triángulos se clasifican según el siguiente criterio: Equilátero: Tres lados iguales Escaleno: Tres lados diferentes Isósceles: Dos lados iguales y uno diferente ANEXOS TEMA 5 TIPOS DE DATOS PRIMITIVOS Dim TIPO <byt es> byte 1 Entero sin signo short 2 Entero con signo int 4 Entero con signo long 8 Entero con signo float Punto flotante de 4 precisión simple double Punto flotante de 8 precisión doble decimal Números decimales 16 con 29 dígitos significativos char 2 Un carácter Unicode Enteros Reales Caracteres string varía

RANGO de VALORES 0 a 255 –32 768 a +32 767 – 2 147 483 648 a +2 147 483 647 –9 223 372 036 854 775.808 a +9 223 372 036 854 775.808 – 3.4028235 e38 a +3.4028235 e38 –1.79769313486232 e308 a +1.79769313486232 e308

±1.0 × 10 e−28 a ±7.9 × 10 e28 Símbolos Unicode utilizados en textos

Secuencia de caracteres Unicode

boolean Tipo dato lógico o booleano

Lógicos

2

True, False

FUNCIONES PRINCIPALES
Elaborado por jjcm docente UTEPSA  28

Expresión algebraica |x| tan-1 (x) Sin(x), Cos(x) ln(x), log10(x)

Expresión algorítmica abs(x) arctan(x) sen(x), cos(x) ln(x), log10(x) redondeo(x)

Función C#.NET Math.Abs(x) Devuelve el valor absoluto de un número especificado. Math.Atan(x) Devuelve el ángulo cuya tangente corresponde al número especificado. Math.Sin(x), Math.Cos(x) Devuelve el seno y coseno del ángulo especificado Math.Log(x), Math.Log10(x) Devuelve el logaritmo natural y el logaritmo en base 10 de un número especificado. Math.Round(x [,pos]) Redondea un valor al entero más próximo o al número especificado de posiciones decimales. Math.Pow(x,2) En general devuelve un número especificado elevado a la potencia especificada MathSqrt(x) Devuelve la raíz cuadrada de un número especificado Math.Truncate(x) Calcula la parte entera de un número

xn

cuadrado(x) raiz2(x) trunc(x)

x

SENTENCIAS CONDICIONALES Sentencia de salida simple: Sintaxis: if ( expression ) statement Esta sentencia ejecuta una o ninguna sentencia acorde al resultado de su expresión de condición. Si la condición expresada en expression == True entonces se ejecuta S y si expression == False no se ejecuta nada. Ejemplo: if (x==1.5) z = x + y; //en línea if (x==1.5) //en bloque delimitado por { } { z = x+y; } Sentencia de salida doble:

Elaborado por jjcm docente UTEPSA  29

Sintaxis: if ( expression ) statement1 [else statement2] Si la condición que refleja la condición es expression == True entonces se ejecuta la sentencia S1 de otra forma (expression == False) se ejecuta la sentencia S2. Ejemplo: if (x==1.5) z = x + y; else z = 1.5; //en línea if (x==1.5) //en bloque { z = x + y; } else { z = 1.5; }

Elaborado por jjcm docente UTEPSA  30

Sentencia condicional de salida múltiple Sintaxis: switch ( expression ) case constant-expression : statement [default : statement] donde: expression se le denomina selector constant-expression se denominan constantes case Ejemplo: siendo a un valor numérico de tipo entero, se quiere que si: 3 < a < 1 entonces x=0, de otra forma si a==1 x=b+c, a==2 x=(b+c)/2 y si a==3 x=(b+c)2, luego se haría: switch (a) { case 1: x = b + c; break; case 2: x = (b + c)/2; break; case 3: x = Math.Pow((b + c),2); break; default: x=0; break; } MessageBox.Show(x.ToString()); SENTENCIAS REPETITIVAS Condición al final do statement while (exp); Sintaxis: do { S1; : Sn; } while (exp); La instrucción do ejecuta una instrucción o un bloque de instrucciones entre {} repetidamente hasta que una expresión especificada se evalúe como false. Nótese que el bucle siempre se ejecuta al menos una vez ya que la condición se encuentra al final de éste. Ejemplo: public static void Main () { int x = 0; do { Console.WriteLine(x); x++; } while (x < 5); }
Elaborado por jjcm docente UTEPSA  31

Condición al inicio while(exp) statements; Sintaxis: while (exp) { S1; : Sn; } La instrucción while ejecuta una instrucción o un bloque de instrucciones repetidamente hasta que una expresión especificada se evalúa como false. Nótese que el bucle podría no ejecutarse nunca ya que la condición se encuentra al inicio de éste. Ejemplo: static void Main() { int n = 1; while (n < 6) { Console.WriteLine("Current value of n is {0}", n); n++; } } Número de iteraciones conocidas de antemano for (vc, cond, inc) {…} Sintaxis: for ( init-expression ; cond-expression ; loop-expression ) statement donde: init-expression = Variable de control cond-expression = Condición de evaluación del bucle loop-expression = Incremento de la variable de control El bucle for ejecuta una instrucción o un bloque de instrucciones repetidamente hasta que una determinada expresión se evalúa como false. El bucle for es útil para recorrer en iteración matrices y para procesar secuencialmente. Ejemplo: int main() { int i; for ( i = 0 ; i < 2 ; i++ ) printf_s( "\n%d\n",i ); } Nota importante: La variable de control NO debe modificarse en el Bucle.

Elaborado por jjcm docente UTEPSA  32