[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