hola a todos necesito de su ayuda aqui esta el codigo de mi menu en c pero no me sirve:
#include <stdio.h>
main ()
{ int op;
repeat
printf ( "MENU" );
printf ( "" );
printf ( "Opcion (1)" );
printf ( "Opcion (2)" );
printf ( "Opcion (3)" );
printf ( "Opcion (4)" );
printf ( "" );
scanf("",&op) ;
if ( op == 1 )
{
programa1 ;
}
if ( op == 2 )
{
programa2 ;
}
if ( op == 3 )
{
programa3 ;
}
if ( op == 4 )
{
programa4 ;
}
until 2 == 3 ;
}
En la función scanf(); te queda poner el %d entre las comillas. Así:
scanf("%d",&op);
Saludos.
gracias pero me sigue marcando los sig. errores:
-parse error before printf
-programa1 underclared
-programa2 underclared
-programa3 underclared
-programa4 underclared
-until undeclared
-parse error before 2
"repeat... until" en C no existe. Creo que lo que quieres hacer con eso es un do-while.
Lo de "programa 1"... ¿Qué quieres hacer con eso? Es que no le encuentro sentido...
Eso respecto a los errores. Después, he visto que pones dos veces:
printf ( "" );
Eso no imprime nada, no sé por qué lo quieres poner... Supongo que lo que quieres es hacer un salto de línea. Si es así, debes poner:
printf ( "\n" );
Saludos.
lo acomode como dijiste y me sigue apareciendo los mismos errores:
#include <stdio.h>
main ()
{ int op;
do
printf ( "MENU" );
printf ( "\n" );
printf ( "Opcion (1)" );
printf ( "Opcion (2)" );
printf ( "Opcion (3)" );
printf ( "Opcion (4)" );
printf ( "\n" );
scanf("%d",&op) ;
if ( op == 1 )
{
programa1 ;
printf ( "hello world1" );
}
if ( op == 2 )
{
programa2 ;
printf ( "hello world2" );
}
if ( op == 3 )
{
programa3 ;
printf ( "hello world3" );
}
if ( op == 4 )
{
programa4 ;
printf ( "hello world4" );
}
while 2 == 3 ;
}
Los errores aparecen porque la sintaxis de do-while no es así. Ahora te dejo el código de cómo sería.
A parte, ¿qué quieres hacer con "programa1", "programa2"...?
#include <stdio.h>
int main ()
{
int op;
do
{
printf ( "MENU: \n" );
printf ( "Opcion (1)\n" );
printf ( "Opcion (2)\n" );
printf ( "Opcion (3)\n" );
printf ( "Opcion (4)\n" );
scanf("%d",&op) ;
if ( op == 1 )
{
printf("Hola Mundo 1\n");
}
if ( op == 2 )
{
printf("Hola Mundo 2\n");
}
if ( op == 3 )
{
printf("Hola Mundo 3\n");
}
if ( op == 4 )
{
printf("Hola Mundo 4\n");
}
}while(/*PON AQUÍ LA CONDICIÓN*/);
return 0;
}
gracias amigo me ayudaste, pero tengo una duda en C existen "procedures" como en Pascal ?
Cogete un buen libro de C o C++ y pregunta dudas coherentes, lo que no puedes hacer es llegar con un codigo hibrido entre C y pascal o algo asi, y decir que porque no funciona.
Saludos.
Sí, existen en C, solo que se llaman funciones.
Saludos.
como puedo implementar entonces esas funciones tipo procedures en mi codigo para que me devuelva al menu principal:
#include <stdio.h>
int main ()
{
int op;
do
{
system("cls");
printf ( "MENU: \n" );
printf ( "Opcion (1)\n" );
printf ( "Opcion (2)\n" );
printf ( "Opcion (3)\n" );
printf ( "Opcion (4)\n" );
scanf("%d",&op) ;
if ( op == 1 )
{
system("cls");
printf("Hola Mundo 1\n");
system("pause");
}
if ( op == 2 )
{
system("cls");
printf("Hola Mundo 2\n");
system("pause");
}
if ( op == 3 )
{
system("cls");
printf("Hola Mundo 3\n");
system("pause");
}
if ( op == 4 )
{
system("cls");
printf("Hola Mundo 4\n");
system("pause");
}
}
while(2 == 3);
}
Si en la condicion del while le pones 2==3 solo se va a ejecutar una vez, ponle op<1 || op<4 para asegurarte de que se escoge una opcion entre 1 y 4. Y cogete un libro de C o C++.
Saludos.
Eso que has hecho ahora no te va a compilar, ya que system(); se encuentra en stdlib.h
Igual, aunque incluyas esa librería, no te recomiendo que lo uses... (y mucho menos tantas veces como aparece en tu código!). Aquí una explicación de por qué es malo y posibles soluciones:
http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html
Como dice daniyo, también te recomiendo que cojas un buen libro de C.
Saludos.
Cita de: daniyo en 5 Julio 2012, 17:02 PM
Si en la condicion del while le pones 2==3 solo se va a ejecutar una vez, ponle op<1 || op<4 para asegurarte de que se escoge una opcion entre 1 y 4. Y cogete un libro de C o C++.
Saludos.
estas equivocado lo del 2==3 es un bucle infinito para que el programa no se cierre.
Cita de: DickGumshoe en 5 Julio 2012, 17:07 PM
Eso que has hecho ahora no te va a compilar, ya que system(); se encuentra en stdlib.h
Igual, aunque incluyas esa librería, no te recomiendo que lo uses... (y mucho menos tantas veces como aparece en tu código!). Aquí una explicación de por qué es malo y posibles soluciones:
http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html
Como dice daniyo, también te recomiendo que cojas un buen libro de C.
Saludos.
no me respondiste la pregunta anterior, y si me compila tal cual como esta ahi puesto usando el Dev-C++
¿Te refieres a la pregunta de los procedimientos? Respondí esto:
CitarSí, existen en C, solo que se llaman funciones.
Saludos.
Y el código a mí no me funciona. De hecho, aquí mismo pone que es necesario stdlib.h...: http://www.cplusplus.com/reference/clibrary/cstdlib/system/
Por cierto, con contradecir a daniyo no vas a ganar nada... Más que nada porque él está en lo cierto xD.
Saludos.
Cita de: DickGumshoe en 5 Julio 2012, 17:36 PM
¿Te refieres a la pregunta de los procedimientos? Respondí esto:
Y el código a mí no me funciona. De hecho, aquí mismo pone que es necesario stdlib.h...: http://www.cplusplus.com/reference/clibrary/cstdlib/system/
Por cierto, con contradecir a daniyo no vas a ganar nada... Más que nada porque él está en lo cierto xD.
Saludos.
apuesto 100.000$ a que 2 ==3 es un bucle infinito.
esa no es la pregunta anterior, la pregunta anterior es esta:
como puedo implementar entonces esas funciones tipo procedures en mi codigo para que me devuelva al menu principal?
muchas gracias de antemano por ayudarme
Hombre, explicar las funciones cuando en los libros la explicación es de unas 20 ó 30 páginas... Sería un poco larga la explicación. El foro, como ya ha dicho daniyo, es para preguntar dudas puntuales, no para que te digamos la teoría...
Y si no quieres creerlo, pues no lo creas, pero 2==3 SOLO te va a repetir lo que está en el do-while UNA vez.
Saludos.
Cita de: DickGumshoe en 5 Julio 2012, 17:48 PM
Hombre, explicar las funciones cuando en los libros la explicación es de unas 20 ó 30 páginas... Sería un poco larga la explicación. El foro, como ya ha dicho daniyo, es para preguntar dudas puntuales, no para que te digamos la teoría...
Y si no quieres creerlo, pues no lo creas, pero 2==3 SOLO te va a repetir lo que está en el do-while UNA vez.
Saludos.
+1 XD
¿Es dos igual a tres? NOOOOOO, -> falso -> sale del bucle
no es que me las expliques, es que las implementes en mi codigo
Ah, claro, voy a hacerte la tarea ^^
Saludos.
Cita de: do-while en 5 Julio 2012, 17:53 PM
+1 XD
¿Es dos igual a tres? NOOOOOO, -> falso -> sale del bucle
es que es alreves como es falso el bucle se repite....
Cita de: DickGumshoe en 5 Julio 2012, 17:55 PM
Ah, claro, voy a hacerte la tarea ^^
Saludos.
por favor ayudame, es una tonteria seguro, ya he buscado mil formas y no he podido....
Claro, pero como estamos hablando de C, pues entonces al poner en while(2==3) saldrá del bucle... No sé si te habrás molestado en buscar cosas de C por Internet, en libros, etc.
Citarpor favor ayudame, es una tonteria seguro, ya he buscado mil formas y no he podido....
¿Para que nos vuelvas a contradecir (a mí o a daniyo) cuando tenemos razón? (porque si contesto en un tema es porque lo sé, no para liar a alguien que estudia C).
Si me dices qué has intentando, quizás pueda ayudarte, sino...
Saludos.
Cita de: shitoman en 5 Julio 2012, 17:57 PM
es que es alreves como es falso el bucle se repite....
¿Volviendo a contradecir? Como es falso el bucle finaliza xD
Saludos.
Cita de: DickGumshoe en 5 Julio 2012, 18:06 PM
¿Volviendo a contradecir? Como es falso el bucle finaliza xD
Saludos.
pero en pascal cuando pones
repeat
until 2=3
se repite el bucle indefinidamente,
no sabia que en C era alrevez,
por favor implementa en mi codigo las funciones he intentado y no he podido...
Pues traduce el significado de do... while y te darás cuenta de qué es, o sino, leyéndote un libro seguro que no nos hubieras contradicho cuando no tenías razón. ¡Hablamos de C, no de Pascal!
Ya te he dicho que te ayudo cuando pongas lo que has intentado...
Saludos.
Cita de: shitoman en 5 Julio 2012, 17:57 PM
es que es alreves como es falso el bucle se repite....
1º - Si no sabes de lo que estas hablando, deja de molestar.
2º - Pasate por la sección de libros - papers y descargate algo para EMPEZAR a aprender.
3º - Cuando hayas estudiado y tengas alguna duda, la preguntas.
4º - Si estas en un foro, y tres personas te estan diciendo algo que tu no pienses que sea asi, molestate en enterarte de lo que estas hablando, es probable que no estes en lo cierto.
5º - Por mi parte, con esa actitud que tienes, olvidate de obtener ninguna respuesta.
¡Saludos!
Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
Pascal != C (Espero que sepas cuales son los operadores relacionales), asi que el hecho de que sepas pascal no implica que sepas C, coge un libro ya y cuando sepas cosas tan basicas como que repeat-until no existe en C, entonces ven y pregunta, en vez de decir que te hagan las cosas.
Saludos.
sigue en pie lo de los $100.000???...jajajaja. Es broma no te lo tomes a mal ;)
Estoy con mis compañeros, aprende un poco mas porque aun estas muy verde (osea, con conocimientos muy basicos) y sobre todo modera un poco tus formas, que ya imagino que no lo hagas con mala intencion, pero lo parece. Trata de explicarnos mejor lo que quieres hacer y vete poniendo el codigo que estes TU escribiendo y no nos pidas q lo hagamos por ti!!! :P
Un saludo y animo!
espero me ayuden a implementar las funciones....
Cita de: BlerofonT en 5 Julio 2012, 18:29 PM
sigue en pie lo de los $100.000???...jajajaja. Es broma no te lo tomes a mal ;)
Estoy con mis compañeros, aprende un poco mas porque aun estas muy verde (osea, con conocimientos muy basicos) y sobre todo modera un poco tus formas, que ya imagino que no lo hagas con mala intencion, pero lo parece. Trata de explicarnos mejor lo que quieres hacer y vete poniendo el codigo que estes TU escribiendo y no nos pidas q lo hagamos por ti!!! :P
Un saludo y animo!
no tengo la culpa yo emepeze mi proyecto con repeat until y me dijeron que lo sustituyera por do y while por lo tanto pensaba que era lo mismo.
Bueno, a no ser que madures un poco este es mi último mensaje en este tema, ya que me gusta ayudar a la gente que se interesa por lo que hace, no que quiere que le hagamos las cosas.
Te dijimos que era do... while, sí, pero:
1. Las dos palabras inglesas tienen un significado claro, por lo que era evidente que no es como en Pascal.
2. Esto es C, no Pascal.
3. Te tendrías que haber molestado en buscar en un libro el uso de do... while.
Y por cierto, lee esto:
http://foro.elhacker.net/programacion_cc/reglas_del_subforo-t251603.0.html
https://docs.google.com/document/pub?id=1OsG_dD3SwbkOmMTg3bAFFRFY69Tq6JQLFf593n97D7Y
http://foro.elhacker.net/programacion_general/reglas_del_foro_iexclleed_todos-t93852.0.html
Normas del foro, del foro de Programación, y del subforo de C.
Saludos.
Cita de: DickGumshoe en 5 Julio 2012, 18:40 PM
Bueno, a no ser que madures un poco este es mi último mensaje en este tema, ya que me gusta ayudar a la gente que se interesa por lo que hace, no que quiere que le hagamos las cosas.
Te dijimos que era do... while, sí, pero:
1. Las dos palabras inglesas tienen un significado claro, por lo que era evidente que no es como en Pascal.
2. Esto es C, no Pascal.
3. Te tendrías que haber molestado en buscar en un libro el uso de do... while.
Y por cierto, lee esto:
http://foro.elhacker.net/programacion_cc/reglas_del_subforo-t251603.0.html
https://docs.google.com/document/pub?id=1OsG_dD3SwbkOmMTg3bAFFRFY69Tq6JQLFf593n97D7Y
http://foro.elhacker.net/programacion_general/reglas_del_foro_iexclleed_todos-t93852.0.html
Normas del foro, del foro de Programación, y del subforo de C.
Saludos.
ah bueno entonces no me vas a ayudar con la implementacion de las funciones, gracias de todas maneras...
Has dicho que has intentado algo, ¿verdad? Pues ponlo y te ayudamos.
#include <stdio.h>
int main ()
{
int op;
do
{
menu:
system("cls");
printf ( "MENU: \n" );
printf ( "Opcion (1)\n" );
printf ( "Opcion (2)\n" );
printf ( "Opcion (3)\n" );
printf ( "Opcion (4)\n" );
scanf("%d",&op) ;
if ( op == 1 )
{
system("cls");
printf("Hola Mundo 1\n");
system("pause");
goto menu;
}
if ( op == 2 )
{
system("cls");
printf("Hola Mundo 2\n");
system("pause");
}
if ( op == 3 )
{
system("cls");
printf("Hola Mundo 3\n");
system("pause");
}
if ( op == 4 )
{
system("cls");
printf("Hola Mundo 4\n");
system("pause");
}
}
while(2 == 3);
}
solo he podido con etiquetas, con funciones no he podido, por favor ayudame
CitarPascal != C
xDDDDDD...
shitoman no uses goto ya que no debe usarse en un lenguaje estructurado como lo es C. Te dejo el codigo con una funcion, despues implementalo en las demas opciones
#include <stdio.h>
void func1(void); /* prototipo de la funcion */
int main ()
{
int op;
do
{
system("cls");
printf ( "MENU: \n" );
printf ( "Opcion (1)\n" );
printf ( "Opcion (2)\n" );
printf ( "Opcion (3)\n" );
printf ( "Opcion (4)\n" );
printf("Opcion (5) para salir del programa\n");
scanf("%d",&op) ;
if ( op == 1 )
{
func1(); // llamada de la funcion func1
}
if ( op == 2 )
{
system("cls");
printf("Hola Mundo 2\n");
system("pause");
}
if ( op == 3 )
{
system("cls");
printf("Hola Mundo 3\n");
system("pause");
}
if ( op == 4 )
{
system("cls");
printf("Hola Mundo 4\n");
system("pause");
}
}
while(op!=5);
}
void func1(void) {
system("cls");
printf("Hola Mundo 1\n");
system("pause");
}
Toma los consejos que te dieron, y lo principal lee un libro de C
Saludos
muchas gracias amigo "durasno" me salvaste la vida...
De nada... si queres un consejo de que libro aprender C, te recomiendo este:
Programacion en C Metodologia, Algoritmos y Estructurade datos
Saludos
hola amigo aqui tienes un menu implementado con funciones cualquier duda me preguntas cordiales saludos.
#include <stdio.h>
//declaracion de las funciones
int menu();
int pidenum();
void programa1();
void programa2();
void programa3();
void programa4();
int main(void){//funcion principal main aqui se hace el llamado al resto de las funciones
int opc;
do{
opc=menu();
switch(opc){//el switch tiene todas las opciones desponibles, cada opcion es realizada por una funcion
case 1:
programa1();
printf("\n");
break;
case 2:
programa2();
printf("\n");
break;
case 3:
programa3();
printf("\n");
break;
case 4:
programa4();
printf("\n");
break;
case 0:// caso cero para salir delprograma
return(0);
default:// default si el usuario ingresa una opcion distinta se mostrara este mensaje
printf("error la opcion no esta en el menu");
}
}while(opc!=0);//mientras el usuario no igrese el cero el programa continuara su ejecucion
return(0);
}//implementacion de las funciones
int menu(){
printf("1 programa1\n2 programa2\n3 programa3\n4 programa4\n0salir\n");
return(pidenum());//la opcion menu imprime el menu y retorna a la funcion pide() es decir siempre estara pidiendo que ingrese una opcion
}
int pidenum(){
int num;
printf("ingrese opcion\n");
scanf("%i",&num);
return(num);
}
void programa1(){
printf("programa1\n");
}
void programa2(){
printf("programa2\n");
}
void programa3(){
printf("programa3\n");
}
void programa4(){
printf("programa4\n");
}