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
Dudas ejercicios final Sintaxtis
Autor Mensaje
taper Sin conexión
Militante

***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 54
Agradecimientos dados: 16
Agradecimientos: 81 en 20 posts
Registro en: Feb 2013
Mensaje: #1
Dudas ejercicios final Sintaxtis Finales Sintaxis y Semántica de los Lenguajes
Hola! Tengo unas preguntas si alguien me puede ayudar, con algunos ejercicios de finales de sintaxis, muchas gracias!!

1) Sea la funcion ANSI C:
unsigned int XX (const char *s, int c)
{
unsigned int i, n;
for(i=n=0 ; s[i]!='\0' ; i++) if(s[i]==c) n++; return n;
}

Cantidad de palabras reservadas: 10
Cant de Identificadores: 15
Cant de constantes: 2
Cant de otros lexemas: 26 POR QUE DA ESTO?
Cant de ungetc que realiza scanner: 29 POR QUE DA ESTO?

2) Sea inta=3; Por que la expresion ++7 * a es semanticamente incorrecta?

3)Cual es la salida y que numero retorna el siguiente programa en ANSI C:
#include <studio.h>
int main(void) {
int i=2, *pi=&i;
printf("%.1f\\n", 1+*pi);
return i++;
}
Salida: 3.0\n POR QUE? No seria 3.1f\ lo que muestra?
Retorna: 2 POR QUE? No seria 3 la salida, si i=2 y se retorna i++?

4) Describa la semantica de la funcion segun Pratt de la funcion ANSI C:

int XX (double z) { if (4) printf("1234"); else printf("0"); return14; }

RTA: Muestra por pantalla 1234 y retorna 14. No se que estoy entendiendo mal, pero cuando hace el if(4), eso devuelve un false, y no deberia imprimir nada.


Se agradece!!
03-03-2013 14:29
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Nickgunner Sin conexión
Campeon del cubo Rubik
Yesterdays got nothing for me...
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 117
Agradecimientos dados: 44
Agradecimientos: 43 en 11 posts
Registro en: Jun 2011
Mensaje: #2
RE: Dudas ejercicios final Sintaxtis
2) El operador ++ tiene que estar acompañado de un LValue

3)%.1f/n es el formato de salida que se le da a la expresion, es decir que al numero que esta en la expresion (1+*pi) se le agrega una posicion decimal. No te olvides que la doble barra (//) sirve para imprimir los simbolos que hacen referencia a secuencias de escape, por eso no es nueva linea sino que solo muestra por pantalla eso. Ejemplo \\t muestra por pantalla \t. Y no estoy seguro pero si devuelve 2 debe ser porque el operador ++ esta al lado derecho.

4) Las constantes en un ciclo o condicional se toman como verdaderos siempre. Algo como 5 && 6 es verdadero

Y disculpá el primero pero ese nunca me quedó muy en claro roll

There is no knowledge that is not power...
(Este mensaje fue modificado por última vez en: 03-03-2013 14:57 por Nickgunner.)
03-03-2013 14:52
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Nickgunner recibio 1 Gracias por este post
taper (03-03-2013)
Koren Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 123
Agradecimientos dados: 3
Agradecimientos: 16 en 5 posts
Registro en: Feb 2011
Mensaje: #3
RE: Dudas ejercicios final Sintaxtis
1) no me acuerdo

2) tampoco, debe ser por el tema de lvalue.

3) en principio es como te dicen arriba.

Y retorna 2 pq al estar del lado derecho el ++ es post incremento por lo que dsp de ejecutarse la liena se incrementa la variable, si fuera ++i se incrementaria antes (pre incremento) y se mostraria 3.

4) Todo valor distinto de 0 es true. 0 && 5 es falso, pese a ser 0 una constante, ya que 0 es falso.

Saludos
(Este mensaje fue modificado por última vez en: 03-03-2013 15:05 por Koren.)
03-03-2013 15:03
Envíale un email 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.