Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[SINTAXIS] Duda final 20.12.10
Autor Mensaje
AGUSTIN27 Sin conexión
Secretario de la SAE
INGENIEROOO :)
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 642
Agradecimientos dados: 20
Agradecimientos: 115 en 25 posts
Registro en: Feb 2010
Mensaje: #1
[SINTAXIS] Duda final 20.12.10 Ejercicios Sintaxis y Semántica de los Lenguajes
Hola chicos, quiero ver si me pueden ayudar con el primer ejercicio practico de este final, que dice asi:

Supongamos que el siguiente flujo de caracteres, que comienza con espacios y termina con espacios, forma parte de un programa ANSI C:

begin+==p=" '\01\n "*q0XAFint;until(e)2.16E-8++

Si un Scanner realiza el Análisis Léxico de este flujo, indique la cantidad mínima de invaciones a ungetc que debe hacer y la cantidad de lexemas que detecta.

Mi duda es acerca de las invocaciones a la función ungetc, según la respuesta son 9.
Yo la verdad es que tengo mis dudas acerca de esto porque pienso que hay mas de nueve identificadores u operadores que necesitan centinela:
1. begin
2. +
3.=
4. =
5. p
6. =
7. q0XAFint
8. until
9. e
10. 2.16E-8 ( acá no se si esa E necesita de un centinela )
11. +
12. +

tmb dudo si la cantidad minima no requiere que vuelva a contar yo cada vez que aparece un + para invocarlo a la funcion ungetc.

si alguien me puede ayudar se agradece!

saludos
06-02-2011 14:17
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Imakuni Sin conexión
Presidente del CEIT
Boxes tastes like mush
********

Ing. en Sistemas
Facultad Regional Córdoba

Mensajes: 7.021
Agradecimientos dados: 124
Agradecimientos: 129 en 85 posts
Registro en: Jul 2008
Mensaje: #2
RE: [SINTAXIS] Duda final 20.12.10
CREO, que el + del principio no necesita un centinela, ya que += es una palabra, al igual que el "++" del final de todo.

No me des bola si no te parece asi, hace dos años que no toco nada de Sintaxis, menos con el plan nuevo =P

Pregunto: Centinela == 'Caracter espureo', no?
06-02-2011 15:23
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
gonnza Sin conexión
User Verde

*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 17.356
Agradecimientos dados: 900
Agradecimientos: 889 en 356 posts
Registro en: Mar 2010
BlogSpot Google+ YouTube
Mensaje: #3
RE: [SINTAXIS] Duda final 20.12.10
Cita:Centinela == 'Caracter espureo',
ajam.


agustin, te falto el ";" y los parentesis (son palabras tambien, en el tokens de CaracteresPuntuacion me parece )

[Imagen: v34BEFt.gif]
06-02-2011 15:32
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Maxter Sin conexión
Presidente del CEIT
Free
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.103
Agradecimientos dados: 129
Agradecimientos: 82 en 31 posts
Registro en: Dec 2009
Mensaje: #4
RE: [SINTAXIS] Duda final 20.12.10
Hola. Te indico en rojo los 9 caracteres que funcionan como centinelas.
Pensá por qué son centinelas. Si tenés alguna duda preguntame.


begin+==p=" '\01\n "*q0XAFint;until(e)2.16E-8++



La cantidad de lexemas:

1. begin
2. +=
3. =
4. p
5. =
6 " '\01\n "
7. *
8. q0XAFint
9. ;
10. until
11. (
12. e
13. )
14. 2.16E-8
15. ++
(Este mensaje fue modificado por última vez en: 06-02-2011 18:58 por Maxter.)
06-02-2011 18:43
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Maxter recibio 1 Gracias por este post
heinn (21-11-2018)
gonnza Sin conexión
User Verde

*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 17.356
Agradecimientos dados: 900
Agradecimientos: 889 en 356 posts
Registro en: Mar 2010
BlogSpot Google+ YouTube
Mensaje: #5
RE: [SINTAXIS] Duda final 20.12.10
pero..

el += es un operador =P
vendria a ser

1. begin
2. +=
3. =
4. p
5. =

y asi..

los 2 iguales solos son de asignacion =P

[Imagen: v34BEFt.gif]
06-02-2011 18:47
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Maxter Sin conexión
Presidente del CEIT
Free
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.103
Agradecimientos dados: 129
Agradecimientos: 82 en 31 posts
Registro en: Dec 2009
Mensaje: #6
RE: [SINTAXIS] Duda final 20.12.10
(06-02-2011 18:47)gonnza escribió:  pero..

el += es un operador =P
vendria a ser

1. begin
2. +=
3. =
4. p
5. =

y asi..

los 2 iguales solos son de asignacion =P


Tenés razón.
En ese caso, la primera "p" es centinela del = que está antes de ella.
Ahí modifico lo primero así no hay confusión.
(Este mensaje fue modificado por última vez en: 06-02-2011 18:57 por Maxter.)
06-02-2011 18:54
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
AGUSTIN27 Sin conexión
Secretario de la SAE
INGENIEROOO :)
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 642
Agradecimientos dados: 20
Agradecimientos: 115 en 25 posts
Registro en: Feb 2010
Mensaje: #7
RE: [SINTAXIS] Duda final 20.12.10
(06-02-2011 18:43)Maxter escribió:  Hola. Te indico en rojo los 9 caracteres que funcionan como centinelas.
Pensá por qué son centinelas. Si tenés alguna duda preguntame.


begin+==p=" '\01\n "*q0XAFint;until(e)2.16E-8++



La cantidad de lexemas:

1. begin
2. +=
3. =
4. p
5. =
6 " '\01\n "
7. *
8. q0XAFint
9. ;
10. until
11. (
12. e
13. )
14. 2.16E-8
15. ++

a ver si entiendo bien, lo que marcaste en rojo son los centinelas que necesitan en estos casos lexemas como el: begin, = , p , = , * , q0XAF , until , e , 2.16E-8 . esto es asi ??

porque marcaste a la letra 'q' del identificador q0AXF como centinela de '*' ? porque el caracter '*' necesita un centinela ??

muchas gracias !!
06-02-2011 21:08
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Maxter Sin conexión
Presidente del CEIT
Free
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.103
Agradecimientos dados: 129
Agradecimientos: 82 en 31 posts
Registro en: Dec 2009
Mensaje: #8
RE: [SINTAXIS] Duda final 20.12.10
(06-02-2011 21:08)AGUSTIN27 escribió:  a ver si entiendo bien, lo que marcaste en rojo son los centinelas que necesitan en estos casos lexemas como el: begin, = , p , = , * , q0XAF , until , e , 2.16E-8 . esto es asi ??

Exacto.
El + es centinela de begin.
La p es centinela de ==
El = es centinela del lexema p
La " es centinela del lexema =
Y asi...


Cita:porque marcaste a la letra 'q' del identificador q0AXF como centinela de '*' ? porque el caracter '*' necesita un centinela ??

Porque acordate que tambien existe el operador *=
El scaner lee el * y no puede asegurar nada, necesita del centinela.
Si despues del * hubiese venido el = listo ya no se necesita centinela, se detecto el lexema *=, pero como en cambio apareció una q, ésta es centinela del lexema *.
06-02-2011 22:39
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
AGUSTIN27 Sin conexión
Secretario de la SAE
INGENIEROOO :)
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 642
Agradecimientos dados: 20
Agradecimientos: 115 en 25 posts
Registro en: Feb 2010
Mensaje: #9
RE: [SINTAXIS] Duda final 20.12.10
joya, jamás supe que existía el operador *= .. que significa ????

(06-02-2011 22:39)Maxter escribió:  
(06-02-2011 21:08)AGUSTIN27 escribió:  a ver si entiendo bien, lo que marcaste en rojo son los centinelas que necesitan en estos casos lexemas como el: begin, = , p , = , * , q0XAF , until , e , 2.16E-8 . esto es asi ??

Exacto.
El + es centinela de begin.
La p es centinela de ==
El = es centinela del lexema p
La " es centinela del lexema =
Y asi...


Cita:porque marcaste a la letra 'q' del identificador q0AXF como centinela de '*' ? porque el caracter '*' necesita un centinela ??

Porque acordate que tambien existe el operador *=
El scaner lee el * y no puede asegurar nada, necesita del centinela.
Si despues del * hubiese venido el = listo ya no se necesita centinela, se detecto el lexema *=, pero como en cambio apareció una q, ésta es centinela del lexema *.
07-02-2011 12:25
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Maxter Sin conexión
Presidente del CEIT
Free
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.103
Agradecimientos dados: 129
Agradecimientos: 82 en 31 posts
Registro en: Dec 2009
Mensaje: #10
RE: [SINTAXIS] Duda final 20.12.10
(07-02-2011 12:25)AGUSTIN27 escribió:  joya, jamás supe que existía el operador *= .. que significa ????

Es un operador de asignación .
Por ejemplo:

valor*=2; Equivale a: valor=valor*2;
07-02-2011 18:56
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




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