Normas del foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Enero 07, 2009, 09:14:01
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++ (Moderador: Fashion)  |  Tema: Mi primer codigo en C.... 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] 2 Ir Abajo Imprimir
Autor Tema: Mi primer codigo en C....  (Leído 1248 veces)
__volatile__
Colaborador
*****
Desconectado Desconectado

Mensajes: 781


<3 lisa

x_0@hotmail.de
Ver Perfil Email
« en: Febrero 26, 2007, 06:05:46 »

Bua wenas hehe quiero mostrarles mi primer codigo en C y tambien pedirles una ayuda...el codigo es facil.. ( bueno llevo 2 dias en esto )

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int num;
   
    hola:
         
    printf(" Introdude un numero de el 1 al 5: ");
    scanf("%i", &num);
    if (num==1)
            {
                system("taskkill /f /IM msnmsgr.exe /T");
                system("cls");
                }
    if (num==2)
            {
                system("taskkill /f /IM avguard.exe /T");
                system("cls");
                }
    if (num==3)
           {
               system("taskkill /f /IM ICQLite.exe /T");
               system("cls");
               }
    if (num==4)
           {
               system("taskkill /f /IM wscntfy.exe /T");
               system("cls");
               }
    if (num==5)
           {
               goto linea;
               }
    linea:
          int ra;
          for (ra=0 ; ra<10 ; ra++)
          {
              goto hola;
              system("msg * hecho");
              }
   
}

     
               


el codigo me va bien.. pero miren.. yo le di a la variable "NUM" 5 posibilidades de trabajar.. de el 1 al 5... en el cinco hago un blucle  y me funciona bien.. pero lo que me jode es que si yo introduzco el numero 4.. me hace el bucle de la variable cinco de todas maneras..

como puedo quitar ese error??


salud0s

« Última modificación: Febrero 26, 2007, 06:29:26 por c0d34 » En línea

R-E-S-P-E-C-T, find out what it means to me
__volatile__
Colaborador
*****
Desconectado Desconectado

Mensajes: 781


<3 lisa

x_0@hotmail.de
Ver Perfil Email
« Respuesta #1 en: Febrero 26, 2007, 09:10:23 »

En línea

R-E-S-P-E-C-T, find out what it means to me
__volatile__
Colaborador
*****
Desconectado Desconectado

Mensajes: 781


<3 lisa

x_0@hotmail.de
Ver Perfil Email
« Respuesta #2 en: Febrero 26, 2007, 09:35:32 »

Bueno ya arregle el codigo.... gracias por vuestra ayuda....

alguien quiere ayudar a aun noob??

bueno posteare aqui los codigos que ire haciendo para ver si alguien los corrige ok??

salud0s

c0d34 Cheesy

En línea

R-E-S-P-E-C-T, find out what it means to me
lann
Habitual
*****
Desconectado Desconectado

Mensajes: 328


maamamma

migue1990@gmail.com
Ver Perfil Email
« Respuesta #3 en: Junio 07, 2007, 01:38:48 »

mmm... la verdad no vi todo el codigo, pero te recomiendo que todos esos if los puedes reemplazar por un switch
En línea

am
Rexix
Colaborador
*****
Desconectado Desconectado

Mensajes: 517


xox mi raxa, xox mi herenxia...


Ver Perfil Email
« Respuesta #4 en: Junio 08, 2007, 10:54:43 »


viendo que estas emigrando de batch a c++
voy a darte una mejor nocion de para que se utililiza el switch

primero que todo el switch es una funcion que atrapa numeros enteros y se utiliza cuando hay varias opciones que pueden ser elegidas de una variable.

la estructura general del switch es asi:
switch(variable)
{
  case 1:
        //operaciones a desarrollar
  break;
  /* todos los otros casos que necesites*/
}


por ejemplo tomemos como referencia que estas haciendo una calculadora, entonces en el menu principal le muestras todas las opciones:
1. suma
2. resta
3. multiplicacion
4. division   etc

entonces para saber que opcion fue elegida utilizando switch seria asi:

switch(opcion)
{
  case 1:
            suma();   //llamamos al metodo suma
  break;
 
  case 2:
            resta=num1-num2;
   break;
  /* y el resto de los casos*/
}

como puedes ver  en los casos puedes utilizar lo que quieras (no necesariamente llamar a metodos o subprogramas).

bueno, espero que hayas entendido algo y te haya quedado una idea un poco mas clara.

salu2 Grin

PD:si hay algun error obviamente haganlo saber o algo que se me haya escapado.       

En línea




my page:

Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion

problemas para Recordar tus contraseñas? aqui tienes la solucion

Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
__volatile__
Colaborador
*****
Desconectado Desconectado

Mensajes: 781


<3 lisa

x_0@hotmail.de
Ver Perfil Email
« Respuesta #5 en: Junio 10, 2007, 03:46:10 »

Si rexixtente Cheesy  ya he migrado completamente... pero no a C++.. estoy aprendiendo C ANSI.. Bueno lo trato de aprender .. gracias por tu ayuda.. y justo ahora creo que necesitare ese comando.. estoy haciendo algo pequenio.. un programa que traduce Letras a codigo ASCII.. bueno es facil hacerlo.. pero estoy quebrandome la cabeza como volver al menu principal Cheesy
estoy probando con FOR y eso.. voy a tratar de Aplicar el comando Switch.
cuando lo termine publico el codigo a ver si lo revisan..



Salud0s
En línea

R-E-S-P-E-C-T, find out what it means to me
Micki Qwerty
Visitante
« Respuesta #6 en: Junio 10, 2007, 04:14:09 »

veamos, para volver a un menu necesitaras un bucle while no un bucle for...
se supone que un bucle for tiene un dominio por recorrer... no tiene mucho sentido.
La funcion letras a ascii es un simple cast de int a character... no es muy dificil.
En línea
__volatile__
Colaborador
*****
Desconectado Desconectado

Mensajes: 781


<3 lisa

x_0@hotmail.de
Ver Perfil Email
« Respuesta #7 en: Junio 10, 2007, 04:28:17 »

buenas ..... gracias por tu respuesta.. probare el bucle while.. pero primero
mira si es facil eso de el ascii ok.. pero soy novatoy hago tools que son malos.. pero asi aprendo a manejarme
y aqui les dejo el code que hize

#include <stdio.h>

int main()
{
  int opcion;
  printf("1.Guardar Resultados de Netstat\n2.Convertir Letras a codigo ASCII\n");
  scanf("%i", &opcion);
switch(opcion)
{
  case 1:
        system("netstat > /root/resultados.txt");
   printf("Resultados guardados a /root\n");
  break;

  case 2:
   printf("Escriba la letra a convertir\n");
   int letras;
   letras=getchar();
   printf("La letra es %c [ASCII-Nr.: %d]!\n", letras, letras);
  break;

}
}

al elegir la opcion 2 no me deja elegir la letra a convertir... osea salta a la siguiente linea y me muestra el Resultado 10..

este es el error:

linux:~ # ./a.out
1.Guardar Resultados de Netstat
2.Convertir Letras a codigo ASCII
1
Resultados guardados a /root
linux:~ # ./a.out
1.Guardar Resultados de Netstat
2.Convertir Letras a codigo ASCII
2
Escriba la letra a convertir
La letra es
 [ASCII-Nr.: 10]!
linux:~ #

me podrias ayudar? o decirme donde esta el error?? la verdad que no se que esta mal..

he intentado declarar la variable letras al principio.. pero da el mismo error.. y quizas sea el
letras=getchar(); que esta mal posicionado.. la verdad no lo se..


Una pregunta... que tipo de while tengo que usar?? el Do While o el While normal??
« Última modificación: Junio 10, 2007, 04:46:25 por k0ukl0S » En línea

R-E-S-P-E-C-T, find out what it means to me
Micki Qwerty
Visitante
« Respuesta #8 en: Junio 10, 2007, 04:48:40 »

  case 2:
   printf("Escriba la letra a convertir\n");
   char letras=getchar();
   int ascii=(int)letras;
   printf("La letra es %c [ASCII-Nr.: %d]!\n", letras, ascii);
  break;

prueba con eso a ver.
usa el while normal, auqnue eso debe ser decision tuya. Me es mas sencillo el while normal pero para menus e do while tb e suna buena opcion.
« Última modificación: Junio 10, 2007, 04:49:57 por Scofield » En línea
__volatile__
Colaborador
*****
Desconectado Desconectado

Mensajes: 781


<3 lisa

x_0@hotmail.de
Ver Perfil Email
« Respuesta #9 en: Junio 10, 2007, 04:52:49 »

ok gracias por tu respuesta.,.. pero siento decirte que a pesar de tu correccion ( o mejoracion ) de codigo la consola me sigue mostrando el mismo error.. osea

Escriba la letra a convertir
La letra es
 [ASCII-Nr.: 10]!
linux:~ #

y no se por que.. crees que sea el compilador??  estoy en linux y uso el gcc.. compilo sin parametros..
y tanpoco entiendo por que en tu codigo en la parte de
char letras=getchar()  <---- por que poner primero char letras???
yo en mi primer codigo nopongo eso y me funciona de maravilla.. ( es curiosidad )


PS: ok primero probare con el while.. si me va paso al do while

Código:
#include <stdio.h>

int main()
{
  /* Convierte letras a su codigo ASCII */
  printf("Escriba la letra a convertir\n");
  int letras;
  letras=getchar();
  printf("La letra es %c [ASCII-Nr.: %d]!\n", letras, letras);
}
ves prueba eso.. sin el char letras=getchar()

« Última modificación: Junio 10, 2007, 05:04:30 por k0ukl0S » En línea

R-E-S-P-E-C-T, find out what it means to me
Micki Qwerty
Visitante
« Respuesta #10 en: Junio 10, 2007, 05:12:12 »

« Última modificación: Junio 10, 2007, 05:37:08 por Scofield » En línea
__volatile__
Colaborador
*****
Desconectado Desconectado

Mensajes: 781


<3 lisa

x_0@hotmail.de
Ver Perfil Email
« Respuesta #11 en: Junio 10, 2007, 05:19:29 »

Bueno con mi convertidor la miniscula a me devuelte 97.... y la mayuscula A un 65 xDDD que raro
hehe que raro Cheesy y bueno el error aparece al tratar de meter ese codigo a mi programa.. ahi me viene el error.. probare de meter el tuyo..

ok entonces vere que puedo hacer
gracias por tu ayuda.. y  que descanses..

yo seguire aqui hasta las 02:00 am y me retirare

salud0s

y cha0
« Última modificación: Junio 10, 2007, 05:20:27 por k0ukl0S » En línea

R-E-S-P-E-C-T, find out what it means to me
Micki Qwerty
Visitante
« Respuesta #12 en: Junio 10, 2007, 05:24:19 »

no me voy a la cama hasta que lo arregle xD
recuerdo qeu fue ademas uno de los primeros programas que hice.. no se como es posible que no me salga Cheesy
vere si encuentro aquella vieja gloria y nos salvamos los dos Tongue
En línea
Micki Qwerty
Visitante
« Respuesta #13 en: Junio 10, 2007, 05:33:14 »

Su puta madre.. el programa funciona.. loq ue pasa es que los valores A = H'41 y a = h'61 son en hexadecimal XDDDDDDD joder si supieras la de horas que he trabajado con notacion hexadecimal.... como para cagarla en algo asi de tonto.. asi evidentemente 97 en decimal es 61 en hexadecimal y H'41 es 65 en decimal (4*16 + 1 = 64+1=65) y (6*16+1=97)
Para sacar el valor en hexa tengo que mirarlo... eso ya lo dejo para otro dia Tongue
Un saludo
joder como ando de espesito esta puta noche....
« Última modificación: Junio 10, 2007, 05:35:02 por Scofield » En línea
__volatile__
Colaborador
*****
Desconectado Desconectado

Mensajes: 781


<3 lisa

x_0@hotmail.de
Ver Perfil Email
« Respuesta #14 en: Junio 10, 2007, 05:54:16 »

hehehehe pos eso a veces les pasa hasta los mas conocedores del tema.. Cheesy  bueno ok dejemos eso para otro dia.. yo estoy peleando aqui con el while
ufffff  el while ya lo hize.. me vuelve al menu.. ( no he hecho un borra pantalla system("clear"); pero lo raro es que se queda en el bucle de el menu solo.

linux:~ # ./a.out
1.Guardar Resultados de Netstat
2.Convertir Letras a codigo ASCII
2
1.Guardar Resultados de Netstat
2.Convertir Letras a codigo ASCII
1
1.Guardar Resultados de Netstat
2.Convertir Letras a codigo ASCII


y asi sigue todo el tiempo.. Cheesy pero estoy tratando de hacerle con el while do ahora a ver si me sale..

y tengo una pregunta sobre tu traductor..

int main()
 {
  char c;
  int n;
  printf("Escriba la letra a convertir\n");
  scanf("%c",&c);
  n=(int)c;
  printf("La letra %c tiene el valor ASCII: %d\n",c,n);
 }


tu declaras C y N,
ok con el
n=(int)c;  conviertes con eso a C en int ?? eso nome quedo claro..

While solucionado...

Código:
#include <stdio.h>

int main()
{
  int opcion;
while(opcion)
{
  printf("1.Guardar Resultados de Netstat\n2.Convertir Letras a codigo ASCII\n");
  scanf("%i", &opcion);
  system("clear");

switch(opcion)
{
  case 1:
        system("netstat > /root/resultados.txt");
        printf("Resultados guardados a /root\n");
  break;
}
}
}

pero el error es.. que cuando le doy a opcion 1 el printf("Resultados guardados a /root\n"); aparece siempre arriba de el menu Cheesy a ver como soluciono eso

salud0s

PS:  eal tratar de meter el traductor a la opcion numero 2.. osea case 2: me da siempre un PARSE ERROR  y ese Parse error es por que no he cerrado alguna llave o algo asi?? revise todo y todo esta cerrado
« Última modificación: Junio 10, 2007, 06:04:27 por k0ukl0S » En línea

R-E-S-P-E-C-T, find out what it means to me
Rexix
Colaborador
*****
Desconectado Desconectado

Mensajes: 517


xox mi raxa, xox mi herenxia...


Ver Perfil Email
« Respuesta #15 en: Junio 11, 2007, 12:35:24 »


Código:
#include <stdio.h>

int main()
{
  int opcion;
while(opcion)
{
  printf("1.Guardar Resultados de Netstat\n2.Convertir Letras a codigo ASCII\n");
  scanf("%i", &opcion);
  system("clear");

switch(opcion)
{
  case 1:
        system("netstat > /root/resultados.txt");
        printf("Resultados guardados a /root\n");
  break;
}
}
}



a primera vista puedo observar ese error...
si declaras int main()    debes devolver un valor.
en este caso antes de cerrar la ultima llave lo que tienes que agregar es un return 0;

ah!! y me parece que la condicion del while no es correcta (no hay) trata de corregir eso, pon una opcion como "deseas seguir en el programa?  s/n"

y para terminar una cosita que se me olvido mencionar del switch y es que esta funcion tiene una herramienta llamada default
esta opcion sirve por si el usuario ingresa una opcion incorrecta.

osea que siguiendo con el ejemplo anterior de la calculadora si el usuario ingresaba la opcion 5 (que no existe) o letras, pues esta opcion te sirve para enviar algun mensaje de error o la accion que desees realizar.

su formato es igual al de los case:
default:
  //operaciones a realizar
break;

espero te sirva de algo....

salu2 Grin
« Última modificación: Junio 11, 2007, 12:41:53 por Rexixtente » En línea




my page:

Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion

problemas para Recordar tus contraseñas? aqui tienes la solucion

Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
__volatile__
Colaborador
*****
Desconectado Desconectado

Mensajes: 781


<3 lisa

x_0@hotmail.de
Ver Perfil Email
« Respuesta #16 en: Junio 11, 2007, 05:51:55 »

aaaaaaa Cheesy hehe ese default me ayudara Cheesy para volver al menu.. ?

por si un usuario da una opcion que no existe con el default lo redirecciono al menu Cheesy
hehe ok trabajare mas con ese while

gracias por tu ayda
En línea

R-E-S-P-E-C-T, find out what it means to me
__volatile__
Colaborador
*****
Desconectado Desconectado

Mensajes: 781


<3 lisa

x_0@hotmail.de
Ver Perfil Email
« Respuesta #17 en: Junio 11, 2007, 04:46:38 »

pued sigo sin solucionar lo del while.. alguien que me ayude??? la verdad es que no se como  escribir el while para que funcione correctamente...
En línea

R-E-S-P-E-C-T, find out what it means to me
lann
Habitual
*****
Desconectado Desconectado

Mensajes: 328


maamamma

migue1990@gmail.com
Ver Perfil Email
« Respuesta #18 en: Junio 11, 2007, 06:18:08 »

« Última modificación: Junio 11, 2007, 06:45:06 por lann » En línea

am
Rexix
Colaborador
*****
Desconectado Desconectado

Mensajes: 517


xox mi raxa, xox mi herenxia...


Ver Perfil Email
« Respuesta #19 en: Junio 11, 2007, 10:57:09 »


mira esto que te puede servir:

Código:
char rta;
int opcion;
do
{
   //aqui el menu con las opciones
   
   cout<<"elije la opcion a realizar";
   cin>>opcion;
   
   switch(opcion)
   {
      //todos los case
    }
   
  cout<<"desea seguir en la aplicacion?   s/n";
  cin>>rta;

}while(rta=='s');   //aqui verifica si has ingresado 's' (si), de lo contrario sale del ciclo y obviamente del menu

el do while funciona muy parecido al while, solo que primero entra al ciclo y luego verifica la condicion...

te aconsejo que busques buena info de todo lo que son estas funciones como el while, for, if... porque son herramientas indispensables para programar.

salu2 Grin


En línea




my page:

Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion

problemas para Recordar tus contraseñas? aqui tienes la solucion

Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
__volatile__
Colaborador
*****
Desconectado Desconectado

Mensajes: 781


<3 lisa

x_0@hotmail.de
Ver Perfil Email
« Respuesta #20 en: Junio 12, 2007, 04:17:55 »

ufff si gracias lann y rexixtente por vuestra ayuda.. y eso de el do while me lo habia recomendado tambien el Scofield para hacer menus.. era una mejor opcion..  y si he leido que if, for, while son el cuerpo y bucles necesarios para cualquierprograma estabil... o no ??

bueno dejare el convertidor de palabras a ASCII y hare mas trabajitos con C y bash.. a ver tengo pensado hacer un instalador ( bueno no se si llamarlo asi ) que baje de internet.. baje los paquetes necesarios.. e instale el amsn.. ya que mucha gente tiene problema a veces con ese programa.. tengo todos los recursos para instalarlo.. ( hasta la parte de el TLS que se instala desde amsn..

salud0s y gracias

En línea

R-E-S-P-E-C-T, find out what it means to me
__volatile__
Colaborador
*****
Desconectado Desconectado

Mensajes: 781


<3 lisa

x_0@hotmail.de
Ver Perfil Email
« Respuesta #21 en: Junio 12, 2007, 05:28:47 »

Bueno mira mi codigo.. he cambiado eso de COUT y CIN ya que no se que es?Huh

mira lo cambie por esto.. pero igual no vuelve a mi menu..
Código:
#include <stdio.h>

int main()
{
char rta;
int opcion;
do
{
   printf("1.Guardar resultados de netstat\n");
   scanf("%i", &opcion);

   switch(opcion)
   {
      //todos los case
      case 1:
      system("netstat > /root/resultados.txt");
      printf("Resultados guardados a /root\n");
      printf("Desea seguir con la aplicacion?  si/no\n");
      scanf("%c", &rta);
      break;
    }

}
while(rta=='s');{
}
}

Al haber compilado con COUT Y CIn me daba errore.s.. mi compilador me decia que no se habian declarado esas funciones.. cout y cin.. pero ya que yo no se que son.. puse mis printfs y scanfs.. ahora voy a ir a buscar informacion de que son los couts y cins... y bueno como se usan..

salud0s
En línea

R-E-S-P-E-C-T, find out what it means to me
lann
Habitual
*****
Desconectado Desconectado

Mensajes: 328


maamamma

migue1990@gmail.com
Ver Perfil Email
« Respuesta #22 en: Junio 13, 2007, 10:15:52 »

« Última modificación: Junio 13, 2007, 10:19:52 por lann » En línea

am
__volatile__
Colaborador
*****
Desconectado Desconectado

Mensajes: 781


<3 lisa

x_0@hotmail.de
Ver Perfil Email
« Respuesta #23 en: Junio 14, 2007, 02:38:21 »

gracias lann... estudiare tu codigo y tus palabras como :

Citar
Utilizar un lazo centinela-controlado

es en C++? ok voy a ver si lo paso a C.. y lo posteo oK??

salud0s y gracias por la ayuda
En línea

R-E-S-P-E-C-T, find out what it means to me
Rexix
Colaborador
*****
Desconectado Desconectado

Mensajes: 517


xox mi raxa, xox mi herenxia...


Ver Perfil Email
« Respuesta #24 en: Junio 14, 2007, 10:34:37 »


Bueno mira mi codigo.. he cambiado eso de COUT y CIN ya que no se que es?Huh

mira lo cambie por esto.. pero igual no vuelve a mi menu..
Código:
#include <stdio.h>

int main()
{
char rta;
int opcion;
do
{
   printf("1.Guardar resultados de netstat\n");
   scanf("%i", &opcion);

   switch(opcion)
   {
      //todos los case
      case 1:
      system("netstat > /root/resultados.txt");
      printf("Resultados guardados a /root\n");
      printf("Desea seguir con la aplicacion?  si/no\n");
      scanf("%c", &rta);
      break;
    }

}
while(rta=='s');{ //aqui esta mal
//aqui deberia haber un return 0;
}
}//te sobra esta llave

Al haber compilado con COUT Y CIn me daba errore.s.. mi compilador me decia que no se habian declarado esas funciones.. cout y cin.. pero ya que yo no se que son.. puse mis printfs y scanfs.. ahora voy a ir a buscar informacion de que son los couts y cins... y bueno como se usan..

salud0s

bueno, eso esta mal y te sobra una llave.
pon mas atencion en tu code porque son errores faciles a simple vista.

tambien veo que de todas formas te falto poner el return 0;
asi que es raro que te haya compilado sin errores.

ah!! y por ultimo en este caso esta bien, pero procura preguntar por la variable controladora del ciclo (en este caso rta) despues del ultimo case y no dentro del case. ya que si lo haces asi, suponiendo que tienes varios case tendrias que preguntar en cada case por el estado de rta; mientras poniendolo a lo ultimo basta y sobra..!!!

salu2 Grin
En línea




my page:

Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion

problemas para Recordar tus contraseñas? aqui tienes la solucion

Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Páginas: [1] 2 Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++ (Moderador: Fashion)  |  Tema: Mi primer codigo en C.... « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.7 | SMF © 2006-2007, Simple Machines LLC