elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda.Error= a function-definition is not allowed here before '{' token
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda.Error= a function-definition is not allowed here before '{' token  (Leído 3,789 veces)
Deathclaw

Desconectado Desconectado

Mensajes: 5



Ver Perfil
Ayuda.Error= a function-definition is not allowed here before '{' token
« en: 9 Abril 2015, 21:29 pm »

Hola, les explico mi problema: estaba programando unos algoritmos de planificación en C++ para un proyecto de la Universidad, ya había escrito 2 algoritmos cuando me informan que debo tener ambos algoritmos en un solo trabajo (hasta ese momento tenia ambos códigos en archivos diferentes), el problema es que tenia escrito uno de los algoritmos de forma modular y se me ocurrió hacer lo mismo para unir ambos códigos junto con un menú, pues bien ahora me aparece el error en cuestión en una de las lineas, lo extraño es que la función del error tiene ambos corchetes al comienzo y al final. Espero me ayuden, les dejo el codigo (el error aparece en la linea 44 contando los espacios en blanco desde el primer #include, justo debajo del void process::nuevo(void):

Código
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include<conio.h>
  4. #include<stdio.h>
  5. #include<stdlib.h>
  6. #include<string.h>
  7. using namespace std;
  8. float esperafifo=0, respuestafifo=0, esperasjf=0, respuestasjf=0, espera=0, respuesta=0;
  9.  
  10. int menu();
  11. void fifo();
  12. void sjf();
  13.  
  14. void comparacion();
  15.  
  16. main()
  17. {
  18. int opc;
  19. do{
  20. opc=menu();
  21. system("cls");
  22. switch (opc)
  23. { case 1: fifo(); break;
  24. case 2: sjf(); break;
  25. case 3: comparacion();  break;
  26. }
  27. }while (opc!=0);
  28. }
  29.  
  30. void fifo()
  31. {
  32. class process
  33. {
  34. float tiemporafaga, tiempoespera, tiemporespuesta, tiempollegada, tiempofinal, tiemporetnorm, tiempofinal2;
  35. class process *next, *ptr, *ptr2;
  36. int max;
  37. public:
  38. process(){tiemporafaga=tiempoespera=tiemporespuesta=tiempollegada=tiempofinal=tiemporetnorm=tiempofinal2=0;};
  39. void nuevo(void);
  40. void fcfs(void);
  41. }*front=NULL, *rear=NULL;
  42.  
  43. void process::nuevo(void)
  44. {
  45. float temp;
  46.    cout << " *Algoritmo de planificacion FIFO*" << endl;
  47. cout << "Ingrese el numero de procesos a planificar: ";
  48. cin >> max; cout << endl;
  49. system ("cls");
  50.  
  51. class process *new_process;
  52. for (int i=1; i<=max; i++)
  53. {
  54. new_process=new process;
  55. do
  56. {
  57. do{
  58. cout << "Ingrese tiempo de llegada del proceso: " << i << "=";
  59. cin >> new_process->tiempollegada;
  60. system("cls");
  61. if ((new_process->tiempollegada)>=50)
  62. {
  63. system ("cls");
  64. cout << "Tiempo de llegada invalido" << endl;
  65. }
  66. }while ((new_process->tiempollegada)>=50);
  67. do{
  68. cout << "Ingrese el tiempo de rafaga del proceso: " << i << "=";
  69. cin >> new_process->tiemporafaga;
  70. system("cls");
  71. if ((new_process->tiemporafaga)>=50)
  72. {
  73. system("cls");
  74. cout << "Tiempo de rafaga invalido" << endl;
  75. }
  76. }while ((new_process->tiemporafaga)>=50);
  77. }while (new_process<=0);
  78. if (front==NULL)
  79. {
  80. front=new_process;
  81. ptr=front;
  82. }
  83. else
  84. rear->next=new_process;
  85. rear=new_process;
  86. }
  87. }
  88.  
  89. void process::fcfs(void)
  90. {
  91. float tiempotempfinal=0, tiempotemp=0, respuesta=0, tiempotemprespnorm=0, tiempoespera=0;
  92. int suma=0, suma2=0;
  93. system("cls");
  94. cout << "Proceso Tiempo de Rafaga Tiempo de Llegada" << endl;
  95. for (int i=1; i<=max; i++)
  96. {
  97. cout << i <<" "<< (ptr->tiemporafaga) <<" "<<(ptr->tiempollegada) << endl;
  98. ptr=ptr->next;
  99. }ptr=front;
  100. cout << "Tiempo Final Tiempo de Respuesta Tiempo de Espera" << endl;
  101. for (int i=1; i<=max; i++)
  102. {
  103. (ptr->tiempofinal)=tiempotempfinal +(ptr->tiempofinal)+(ptr->tiemporafaga);
  104. tiempofinal = ptr->tiempofinal;
  105. (ptr->tiemporespuesta)= (ptr->tiempofinal)-(ptr->tiempollegada);
  106. respuesta = respuesta + (ptr->tiemporespuesta);
  107. for (int i=1; i<=max; i++)
  108. {
  109. suma+=(ptr->tiemporafaga);
  110. suma2+=(ptr->tiempollegada);
  111. (ptr->tiempoespera)=suma-suma2;
  112. }
  113. //(ptr->tiemporetnorm)=(ptr->tiemporespuesta)/(ptr->tiemporafaga);
  114. //tiempotemprespnorm=tiempotemprespnorm+(ptr->tiemporetnorm);
  115. cout << (ptr->tiempofinal)<<" "<<(ptr->tiemporespuesta)<<" "<<(ptr->tiempoespera)<<endl;
  116. ptr=ptr->next;
  117. }
  118. cout << "El tiempo de respuesta promedio es: " << respuesta/max<<endl;
  119. cout << "El tiempo de espera promedio es: " << tiempotemprespnorm/max<<endl;
  120. system ("pause");
  121. return;
  122. }
  123.  
  124. main(void)
  125. {
  126. process p;
  127. p.nuevo();
  128. p.fcfs();
  129. system ("PAUSE");
  130. }
  131. }
  132.  
  133. void sjf()
  134. {
  135. int np, sre, ses, i, b, c;
  136. float a, pre, pes, s, nM;
  137. float Tll[50], TS[50], TScop[50], TCo[50], TFi[50], TRe[50], TEs[50];
  138. {
  139. cout<<"                       *Algoritmo de Planificacion SJF*       " << endl;
  140. cout<<"Ingrese el numero de procesos a planificar: ";
  141. cin>>np; cout<<endl;
  142. system("cls");
  143. a=0; sre=0; ses=0;
  144. for (i=0;i<np;i++)
  145. {
  146. do
  147. {
  148. cout<<"Ingrese el Tiempo de Llegada del proceso "<<i+1<<": ";
  149. cin>>Tll[i]; cout<<endl;
  150. system("cls");
  151. if (Tll[i]>=50)
  152. {
  153. system("cls");
  154. cout <<"Tiempo de llegada invalido" << endl;
  155. }
  156. }while (Tll[i]>=50);
  157. do
  158. {
  159. cout<<"Ingrese el Tiempo de Rafaga del proceso "<<i+1<<": ";
  160. cin>>TS[i]; cout<<endl;
  161. system("cls");
  162. if (TS[i]>=50)
  163. {
  164. system("cls");
  165. cout <<"Tiempo de rafaga invalido" << endl;
  166. }
  167. }while (TS[i]>=50);
  168. }
  169. nM=TS[0];
  170. for (i=1;i<np;i++)
  171. {
  172. if (TS[i]>nM)
  173. nM=TS[i];
  174. }
  175. TCo[0]=0;
  176. TFi[0]=TS[0];
  177. for (i=0;i<np;i++)
  178. {
  179. TScop[i]=TS[i];
  180. }
  181. s=0; c=0;
  182. do
  183. {
  184. b=1;
  185. for (i=1;i<np;i++)
  186. {
  187. if (TScop[b]>TScop[i])
  188. {
  189. a=TScop[i];
  190. b=i;
  191. }
  192. }
  193. TCo[b]=TFi[c];
  194. TFi[b]=TCo[b]+TS[b];
  195. TScop[b]=nM+1;
  196. c=b;
  197. s=s+1;
  198. }while(s<(np-1));
  199. for (i=0;i<np;i++)
  200. {
  201. TRe[i]=TFi[i]-Tll[i];
  202. sre=sre+TRe[i];
  203. TEs[i]=TCo[i]-Tll[i];
  204. ses=ses+TEs[i];
  205. }
  206. pre=sre/np;
  207. pes=ses/np;
  208. cout<<endl;
  209. cout<<"Proceso T.Llegada T.Rafaga T.Comienzo T.Finalizacion T.Respuesta T.Espera"<<endl;
  210. for (i=0;i<np;i++)
  211. {
  212. cout<<" "<<i<<"          "<<Tll[i]<<"          "<<TS[i]<<"         "<<TCo[i]<<"          "<<TFi[i]<<"          "<<TRe[i]<<"          "<<TEs[i]<<endl;
  213. }
  214. cout<<"Promedio de Tiempo de Respuesta: "<<pre<<endl;
  215. cout<<"Promedio de Tiempo de Espera: "<<pes<<endl;
  216. getch();
  217. system("pause");
  218. return;
  219. }
  220. }
  221.  
  222. void comparcaion()
  223. {
  224.  
  225. }
  226.  
  227. int menu()
  228. {
  229. int opc;
  230. cout << " MENU DE OPCIONES" << endl;
  231. cout << "---------------------------------------------------------------" << endl;
  232. cout << "Oprima un numero para elegir una de las siguientes opciones:"
  233. cout << "1.-Algoritmo fifo" << endl;
  234. cout << "2.-Algoritmo SJF"<< endl;
  235. cout << "3.-Algoritmo ****" << endl;
  236. cout << "4.-comparar resultados" << endl;
  237. cout << "---------------------------------------------------------------" << endl;
  238. cout << "Escoja su opcion= " << endl;
  239. cin >> opc;
  240. return opc;
  241. }  

El código no esta terminado si se dan cuenta. También me gustaría saber si hay alguna forma de escribir un sub-proceso en modular dentro del proceso principal también en modular que es masomenos lo que intente hacer. Gracias y espero me ayuden.


« Última modificación: 9 Abril 2015, 22:02 pm por Deathclaw » En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.252


Be the change you wanna see in te world


Ver Perfil
Re: Ayuda.Error= a function-definition is not allowed here before '{' token
« Respuesta #1 en: 9 Abril 2015, 21:31 pm »

Utiliza etiquetas GeSHI


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: Ayuda.Error= a function-definition is not allowed here before '{' token
« Respuesta #2 en: 9 Abril 2015, 21:37 pm »

Es preferible que copies literalmente el texto del error.

Entre otros errores que puedas tener: tienes 2 main().


Edito: ¿Qué es void fifo(){? Al parecer no está terminado.
« Última modificación: 9 Abril 2015, 21:39 pm por ivancea96 » En línea

Deathclaw

Desconectado Desconectado

Mensajes: 5



Ver Perfil
Re: Ayuda.Error= a function-definition is not allowed here before '{' token
« Respuesta #3 en: 9 Abril 2015, 22:08 pm »

Es preferible que copies literalmente el texto del error.

Entre otros errores que puedas tener: tienes 2 main().


Edito: ¿Qué es void fifo(){? Al parecer no está terminado.

el void fifo() es el metodo que declare para incluir uno de los algoritmos dentro del programa, ese es el que ya estaba en modular y por eso hay dos main() lo que quiero saber es alguna manera de poder tener ambos main() o de diferenciar el del metdo fifo() del pricipal.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines