Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Duda con ejercicio de final 18/02/14
Autor Mensaje
lucho12a Sin conexión
Empleado de Fotocopiadora
Sin estado :(
**

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 33
Agradecimientos dados: 6
Agradecimientos: 1 en 1 posts
Registro en: Oct 2011
Mensaje: #1
Duda con ejercicio de final 18/02/14 Ejercicios Informática I (Electrónica)
Hola gente!
Me pasaron este ejercicio del final de este martes, por lo que le sirve a los que esten preparando darlo la proxima fecha (como yo). Pide escribir una funcion basada en el uso de una pila dinamica que verifique el "balance" de los parentesis de una expresion, siguiendo el prototipo: int balance(char*expresion); devuelve 1 si estan balanceados, 0 caso contrario.
A mi se me ocurre cargar en la pila el string, letra por letra, y luego ir desapilandola, preguntando que vez que saco un dato si es un '(' o un ')', y aumentar un contador en cada caso y compararlos cuando se vacie la pila.
La cuestion es que se me esta enquilobando para apilar, no se si hay una funcion para quitar un elemento de un string o deberia encarar el ejercicio de otra manera...
Gracias de antemano!
(Este mensaje fue modificado por última vez en: 20-02-2014 20:45 por lucho12a.)
20-02-2014 05:32
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Santi Aguito Sin conexión
Presidente del CEIT
Newtoniano
********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 1.238
Agradecimientos dados: 229
Agradecimientos: 614 en 335 posts
Registro en: Oct 2012
Mensaje: #2
RE: Duda con ejercicio de final 18/02/14
Lo mas fácil es que agregues carácter por carácter en una lista simplemente enlazada, y como decís vos, un contador para los ) y otro para los (...cuando ingresas un nodo a la lista (el cual contiene como dato tu carácter) lo comparas contra un '(' o un ')' y si es igual a alguno de ambos incrementas el correspondiente contador.

Para la condición de balance, compara la igualdad entre ambos contadores.

Busca la excelencia, el éxito llegará
(Este mensaje fue modificado por última vez en: 20-02-2014 21:54 por Santi Aguito.)
20-02-2014 21:52
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
lucho12a Sin conexión
Empleado de Fotocopiadora
Sin estado :(
**

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 33
Agradecimientos dados: 6
Agradecimientos: 1 en 1 posts
Registro en: Oct 2011
Mensaje: #3
RE: Duda con ejercicio de final 18/02/14
(20-02-2014 21:52)Santi Aguito escribió:  Lo mas fácil es que agregues carácter por carácter en una lista simplemente enlazada, y como decís vos, un contador para los ) y otro para los (...cuando ingresas un nodo a la lista (el cual contiene como dato tu carácter) lo comparas contra un '(' o un ')' y si es igual a alguno de ambos incrementas el correspondiente contador.

Para la condición de balance, compara la igualdad entre ambos contadores.

Claro, como queria hacerlo yo, pero nada mas que comparas cuando cargas. Pasa que el enunciado pide como pila, porque lo que habria que apilar y desapilar (o sea una lista simple pero ingresando por el ppio y quitando por ahi tambien), pero para apilar se me complica porque me tira segmentation seguramente por eso,yo guardo la expresion que recibe la funcion en un string y le voy pasando cada letra a la funcion apilar como vector, porque no se me ocurre otra cosa en el momento,en algo le estoy errando jaja
21-02-2014 02:38
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.