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
Final de sintaxis (no entiendo nada)
Autor Mensaje
aaajfabio Sin conexión
Profesor del Modulo A
Retomando la carrera
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 260
Agradecimientos dados: 18
Agradecimientos: 18 en 7 posts
Registro en: Sep 2009
Mensaje: #16
RE: Final de sintaxis (no entiendo nada)
(30-07-2011 11:11)rld escribió:  Ahora que lo veo, la regla del puntero al primer elemento se sigue aplicando. Por ejemplo:


char s[] = "hola";
putchar(*s); /* imprime "h" */




Son dos cosas distintas


s[] -> esto es el vector entero
*s -> esto es un puntero al primer elemento de s




En la tercer excepción el vector "hola" (porque sigue siendo un vector, acordate que los literal cadena son vectores de char constantes terminados en \0 ) se pasa ENTERO... si vos pasas un puntero no estas pasando h sino que estas pasando una dirección de memoria y eso no es un char.
y ademas la especificación de putchar dice que recibe como argumento un char y vos al pasarle *s eso es un puntero y eso es un error.
30-07-2011 11:29
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rld Sin conexión
Secretario General
ლ(ಠ益ಠლ)
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 787
Agradecimientos dados: 9
Agradecimientos: 14 en 12 posts
Registro en: Nov 2010
Mensaje: #17
RE: Final de sintaxis (no entiendo nada)
*s no es un puntero...estoy desreferenciando el puntero s, o sea, obteniendo a qué apunta. En este caso, es la primera letra del string.

Probalo, compila sin warnings y es ANSI tambien. (lo probé con gcc -Wall -ansi -pedantic)
30-07-2011 12:03
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rodri042 Sin conexión
Militante

***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 81
Agradecimientos dados: 11
Agradecimientos: 44 en 10 posts
Registro en: Aug 2010
Mensaje: #18
RE: Final de sintaxis (no entiendo nada)
El tema es cómo llamar a la función xD
yo probé pasandole como argumento tanto el vector, como su primer elemento y tira error...


#include <stdio.h>
unsigned int XX (const char, int);
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;
}
int main() {
unsigned int XX (const char, int);
char asd[] = "hola ccccomo va";
unsigned int sarasa;
sarasa = XX (asd[0], 'c');
printf("%d",sarasa);
scanf("%d",sarasa);
return 0;
}



30-07-2011 14:29
Envíale un email 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: #19
RE: Final de sintaxis (no entiendo nada)
porque pusiste dentro del main
"unsigned int XX (const char, int);"

esta mal ! en el main las funciones se usan, tenes que mandarle parametros, no tipos
y si la vas a usar, es despues de declarar las variables asd y sarasa, no antes

[Imagen: v34BEFt.gif]
30-07-2011 14:38
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rodri042 Sin conexión
Militante

***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 81
Agradecimientos dados: 11
Agradecimientos: 44 en 10 posts
Registro en: Aug 2010
Mensaje: #20
RE: Final de sintaxis (no entiendo nada)
probe sacandoselo tambien... invalid conversion from `char' to `const char*' me dice en la linea sarasa = XX (asd[0], 'c');
30-07-2011 15:02
Envíale un email 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: #21
RE: Final de sintaxis (no entiendo nada)
asd[0] es el primer elemento, es un char
proba mandar asd, sin los corchetes

[Imagen: v34BEFt.gif]
30-07-2011 15:14
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rodri042 Sin conexión
Militante

***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 81
Agradecimientos dados: 11
Agradecimientos: 44 en 10 posts
Registro en: Aug 2010
Mensaje: #22
RE: Final de sintaxis (no entiendo nada)
leeesto
juré haberlo probado xD jajaja ahora me fije de vuelta y anduvo
30-07-2011 15:21
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
batty Sin conexión
Profesor del Modulo A

*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 211
Agradecimientos dados: 1
Agradecimientos: 11 en 8 posts
Registro en: Mar 2010
Mensaje: #23
RE: Final de sintaxis (no entiendo nada)
Una pregunta, en ese final porqué isdigit('\0') devuelve 0?
Tengo entendido que el prototipo es isdigit(int c)
'\0' es de tipo Int y su valor es 0
isdigit('\0') no debería devolver 1? wall

[Imagen: firmbatty.png]
31-07-2011 16:14
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rodri042 Sin conexión
Militante

***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 81
Agradecimientos dados: 11
Agradecimientos: 44 en 10 posts
Registro en: Aug 2010
Mensaje: #24
RE: Final de sintaxis (no entiendo nada)
Recibe un int o char (que terminan siendo una letra) y se fija si es igual a 0, 1, 2, 3, 4,..., 9. Si no lo es como en el caso de '\0' retorna 0, si es 'j' retorna 0, y solo devuelve 1 si es '5', por ejemplo o un digito
char as='4';
if (isdigit(as))
printf("es un digito");
else
printf("NO es un digito");
31-07-2011 16:25
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
batty Sin conexión
Profesor del Modulo A

*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 211
Agradecimientos dados: 1
Agradecimientos: 11 en 8 posts
Registro en: Mar 2010
Mensaje: #25
RE: Final de sintaxis (no entiendo nada)
pero '\0' es igual a 0
fijate el ejercicio 8)b) de la Pag. 70 del Vol I
4+'\0' da 4 Confused

[Imagen: firmbatty.png]
31-07-2011 16:28
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: #26
RE: Final de sintaxis (no entiendo nada)
al hacer 4 '\0' te da 0 porque toma el valor ascii como un numero

es como hacer char i = 10;

y dsp hagas 4 + &i; va a tomar la direccion de i como un numero.
'\0' no es un numero, es un char cuyo valor ascii es 0

[Imagen: v34BEFt.gif]
31-07-2011 16:31
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
batty Sin conexión
Profesor del Modulo A

*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 211
Agradecimientos dados: 1
Agradecimientos: 11 en 8 posts
Registro en: Mar 2010
Mensaje: #27
RE: Final de sintaxis (no entiendo nada)
Gracias a ambos! pensé que se mandaban asi los numeros isdigit(0) por eso me confundí, se mandaban isdigit('0') y evalúa el valor ascii como decían =P

[Imagen: firmbatty.png]
31-07-2011 16:58
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rodri042 Sin conexión
Militante

***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 81
Agradecimientos dados: 11
Agradecimientos: 44 en 10 posts
Registro en: Aug 2010
Mensaje: #28
RE: Final de sintaxis (no entiendo nada)
dejo uno de PAS que no lo puedo sacar :/ (es el del primer parcial del juego, que pide recursividad a derecha)
void L(void) { Match(I); while(ProximoToken() == C) { Match( C ); Match(I); } }
es <L>:= I | IC <L>... pero yo pienso que es <L>:= I | CI <L>
porque no se supone que lo primero que 'matcheás' es lo que dice la condición de proximotoken? digo por lo de que los PAS usan gramaticas LL(1) que empiezan con un token distinto para cada producción y blabla

(preg. boluda) te dejan usar hoja borrador en el final o hay que hacer todo en esa hojita chota¿?
(Este mensaje fue modificado por última vez en: 31-07-2011 19:55 por rodri042.)
31-07-2011 19:52
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
batty Sin conexión
Profesor del Modulo A

*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 211
Agradecimientos dados: 1
Agradecimientos: 11 en 8 posts
Registro en: Mar 2010
Mensaje: #29
RE: Final de sintaxis (no entiendo nada)
(31-07-2011 19:52)rodri042 escribió:  dejo uno de PAS que no lo puedo sacar :/ (es el del primer parcial del juego, que pide recursividad a derecha)
void L(void) { Match(I); while(ProximoToken() == C) { Match( C ); Match(I); } }
es <L>:= I | IC <L>... pero yo pienso que es <L>:= I | CI <L>
porque no se supone que lo primero que 'matcheás' es lo que dice la condición de proximotoken? digo por lo de que los PAS usan gramaticas LL(1) que empiezan con un token distinto para cada producción y blabla

Es <L>:= I | IC <L>
Porque primero haces un Match(I); y después con el while detectas el próximo token:
- Si el próximo token no es C, no entra al ciclo y te quedó el Match(I); nomás (o sea el I de la primera regla)
- Si C es el próximo token, entonces entra al ciclo y tenes que hacer el Match( C); (antes del ciclo hiciste Match(I); y ahora haces Match( C); ahi formas la regla IC) y como despues del IC viene <L> tenes que hacer otra vez el Match(I); si o si y vuelve a iterar el while a buscar si el próximo token es C.



(31-07-2011 19:52)rodri042 escribió:  (preg. boluda) te dejan usar hoja borrador en el final o hay que hacer todo en esa hojita chota¿?
Yo me pregunto lo mismo Confused

[Imagen: firmbatty.png]
31-07-2011 20:19
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] batty recibio 1 Gracias por este post
CarooLina (27-11-2016)
baarbi10 Sin conexión
Profesor del Modulo A
Sin estado :)
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 225
Agradecimientos dados: 4
Agradecimientos: 12 en 11 posts
Registro en: Nov 2009
Mensaje: #30
RE: Final de sintaxis (no entiendo nada)
(31-07-2011 20:19)batty escribió:  
(31-07-2011 19:52)rodri042 escribió:  (preg. boluda) te dejan usar hoja borrador en el final o hay que hacer todo en esa hojita chota¿?
Yo me pregunto lo mismo Confused

Solamente podes tener una hoja en el banco, y es la que te dan ellos..
asi que no!

Los sabios son los que buscan la sabiduría; los necios piensan ya haberla encontrado.

:)baarbi.-
31-07-2011 20:27
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




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