[C con Clase] Varias dudas con switch

Elis José Brito Ovando elyjhoe en hotmail.com
Lun Mar 5 01:06:41 CET 2007


Hola, Mis dudas radican en el programa adjuntado, podrian revisarlo y 
decirme donde estan las posibles fallas, mi problema es que la profesora no 
me ha dado material considerable como para defenderme por problemas de salud 
y en tal sentido recurro a ustedes...
Gracias...

>From: Steven Davidson <steven en conclase.net>
>Reply-To: Lista de correo sobre C y C++ <cconclase en listas.conclase.net>
>To: cconclase en listas.conclase.net
>Subject: Re: [C con Clase] Varias dudas con switch
>Date: Sun, 04 Mar 2007 17:15:27 -0600
>
>Hola Elis,
>
>El pasado 2007-03-04 13:53:06, Elis Brito escribió:
>
>EB> Buenas, tengo cierta duda de la estructura switch, no tengo lenguaje c 
>o
>EB> turbo c para compilar mis programas y me baso mas que todo en pura 
>teoria.
>EB> Necesito saber si es posible trabajar en la estructura switch con 
>variables
>
>Sí puedes usar variables de tipo 'float'. Por ejemplo,
>
>float fNum;
>
>cin >> fNum;
>
>switch( fNum )
>{
>   case 1.0f:
>     // Hacer algo aquí
>   break;
>
>   case -1.0f:
>     // Hacer otra cosa aquí
>   break;
>
>   case 0.0f:
>     // Hacer algo más por aquí
>   break;
>
>   default:
>     // Hacer algo por defecto para cualesquier otros valores
>}
>
>EB> de tipo float? también si puedo utilizar la estructura switch para 
>arreglos
>EB> bidimensionales y cuales serian las distintas opciones para sumar, 
>restar y
>EB> sacar promedio a los elementos de una matriz.
>EB>
>
>Hay que tener cuidado con arrays. Ten presente que, al manipular arrays, el 
>lenguaje no manipula sus contenidos, sino sus direcciones de memoria, que 
>es exactamente lo que es un array. Por ejemplo,
>
>char szCadena[128];
>
>cin >> szCadena;
>
>switch( szCadena )
>{
>   case "HOLA":
>     // Hacer algo aquí
>   break;
>
>   case "ADIOS":
>     // Sentencias
>   break;
>
>   case "SI":
>     // Más sentencias
>   break;
>
>   case "NO":
>     // Y más sentencias
>   break;
>
>   default:
>     // Por defecto
>}
>
>En este caso, siempre se ejecutarán las sentencias por defecto - bajo la 
>etiqueta 'default'. Esto es porque se compararían la dirección de memoria 
>de 'szCadena' con las direcciones de memoria de las otras cadenas 
>literales. Como tales cadenas son únicas, sus direcciones de memoria son 
>diferentes y por tanto 'switch' no llegará a ninguna de las etiquetas 
>indicadas; excepto por 'default'. Ocurre lo mismo con arrays 
>bidimensionales; estaríamos comparando direcciones de memoria y no sus 
>contenidos.
>
>Tendrás que usar algún algoritmo para comparar los contenidos para 
>determinar si son iguales o no. Esto implicará ir elemento por elemento de 
>cada array comparándolos.
>
>En cuanto a las operaciones de matrices, tienes que definir a qué te 
>refieres con "matriz". Si es en términos matemáticos, entonces es cuestión 
>de implementar las operaciones ya existentes para tratar matrices: suma, 
>resta, multiplicación, etc.. La cuestión de "promedio" no tiene mucho 
>sentido al hablar de matrices tanto en términos matemáticos como 
>informáticos. Claro que si tienes algo en mente al referirte a promedios, 
>entonces adelante con su implementación.
>
>
>Espero que todo esto te ayude.
>
>Steven
>_______________________________________________
>Lista de correo Cconclase Cconclase en listas.conclase.net
>http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ

_________________________________________________________________
MSN Amor: busca tu ½ naranja http://latam.msn.com/amor/
------------ próxima parte ------------
An embedded and charset-unspecified text was scrubbed...
Name: matriz.txt
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20070304/d8c51a65/attachment.txt>


Más información sobre la lista de distribución Cconclase