darkzight
Moderador Envíos: 10 Registrado: 3/6/2003 Status: Desconectado
|
publicado el 3/6/2003 en 00:10 |
Bueno, hoy di mis primeros pasos en la programación en C. Tube mis primeras experiencias con la sentencia IF y los bloques FOR, While, Do-While y Case. La verdad una masa el lenguaje, bastante flexible y rapido. Ademas, parecido el PHP en cuanto a su facilidad de escritura y simplicidad. Ojala pueda seguir avanzando, porque apunto a logros mas grandes que los que ya di! No se como subir los archivos .exe a el foro, por favor poirot decime como, si no se llega a poder, avisenme que los subo a el server de godocs. Nos vemos! |
|
darkzight
Moderador Envíos: 10 Registrado: 3/6/2003 Status: Desconectado
|
publicado el 3/6/2003 en 01:39 |
Vamos mejoando!
En este instante acabo de terminar un programa en C que convierte un numero del 0 al 9 a su equivalente en binario, todavia no pude hacer andar el programa para mas de un dígito. E
sta echo con varios IFs y es un poco arcaico, pero funciona! Si quieren probarlo, estemm diganme como subir archivos jejeje! Nos Vemos! |
|
poirot
PV3 Coder Envíos: 184 Registrado: 24/10/2002 Status: Desconectado
|
publicado el 3/6/2003 en 02:02 |
pasteá fuentes, los .exe no sirven |
|
darkzight
Moderador Envíos: 10 Registrado: 3/6/2003 Status: Desconectado
|
publicado el 3/6/2003 en 02:13 |
Aqui tienen el codigo de mi programa.
#include <stdio.h>
int a,b,c,d,e,f,g,h,num;
int main()
{
num = 11;
a = num%2;
b = num/2%2;
c = num/2/2%2;
d = num/2/2/2%2;
e = num/2/2/2/2%2;
f = num/2/2/2/2/2%2;
g = num/2/2/2/2/2/2%2;
h = num/2/2/2/2/2/2/2%2;
printf("a es: %d %d %d %d %d %d %d %d",h,g,f,e,d,c,b,a);
return -1;
} |
|
poirot
PV3 Coder Envíos: 184 Registrado: 24/10/2002 Status: Desconectado
|
publicado el 3/6/2003 en 02:34 |
lindo
existe una instruccion en assembler llamada SHR y otra llamada SHL, justamente dividen y multiplican por 2, osea en binario corren todos los digitos.
Supongamos que tenemos un numero de 8 bits (tipo char), para pasarlo a binario podriamos hacer:
numero=11;
printf("a es: %d",numero&0x80);
for (int i=1;i<7;i++) printf(" %d",(numero<<=1)&0x80);
el & hace un and aritmético (bit a bit) y el << corre un bit, de forma que (numero<<=1)&0x80) es el primer bit de numero y además a numero lo deja corrido un bit. Este programa a diferencia del tuyo hace bolsa el valor de num y lo deja en 0. El tuyo lo mantiene. |
|
darkzight
Moderador Envíos: 10 Registrado: 3/6/2003 Status: Desconectado
|
publicado el 5/6/2003 en 23:32 |
Voy mejorando con los punteros, aca posteo un programa, que pasa una variable a otra funcion y la modifica, osea modifica tmb la variable de la fucion Main().
#include <stdio.h>
void Reemplazar(int *p, int *pp)
{
int a,b;
a = *p;
b = *pp;
*p = 5;
*pp = 2;
printf("Valores en REEMPLAZAR: %d %d\n",*p,*pp);
}
int main()
{
int a,b;
a = 7;
b = 5;
Reemplazar(&a,&b);
printf("Valores en MAIN: %d %d",a,b);
return 1;
}
Bueno, aca tamos.
|
|
darkzight
Moderador Envíos: 10 Registrado: 3/6/2003 Status: Desconectado
|
publicado el 7/6/2003 en 22:10 |
Quique me parece que saque el punto numero 17. fijate.
int i=1;
for (int num;num||num!=i;i++){
int numero;
numero = num;
num=num%i;
if(num%i=0){
printf("Numero primo: %d",i);
}
}
Ojala que sirva
[Editado el 7/6/2003 por darkzight]
[Editado el 7/6/2003 por darkzight]
[Editado el 7/6/2003 por darkzight] |
|
darkzight
Moderador Envíos: 10 Registrado: 3/6/2003 Status: Desconectado
|
publicado el 7/6/2003 en 22:11 |
me falto poner una cosa, al final de todo va un num = numero; esa variable la uso como un auxiliar para volver num a su valor inicial. Fijate que en una parte num se convierte en una division de su mismo numero con i. |
|
darkzight
Moderador Envíos: 10 Registrado: 3/6/2003 Status: Desconectado
|
publicado el 7/6/2003 en 22:23 |
Lo estube probando y no mne funciona . No se si es la declaracion del for, aparentemente no entra en el bucle |
|
darkzight
Moderador Envíos: 10 Registrado: 3/6/2003 Status: Desconectado
|
publicado el 7/6/2003 en 22:40 |
Hice una remake pero con while:
#include <stdio.h>
int main()
{
int i=0;
int num=4;
int suma;
while (i!=num){
int numero;
numero = num;
suma=num%i;
if (suma==0){
printf("Numero primo: %d",i);
}
i++;
num = numero;
}
return -1;
}
Esta vez entra y sale del bucle perfectamente pero no se porque no entra al IF. Voy a seguir probando. |
|
poirot
PV3 Coder Envíos: 184 Registrado: 24/10/2002 Status: Desconectado
|
publicado el 8/6/2003 en 16:15 |
Muy copado ahora viste lo que significa el orden de un algoritmo, y vas a ver que la rapidez y la optimizacion por más rápida que sea una PC puede llegar a ser necesaria.
Por ahi necesitas un poco más de practica a la hora de pensar el algoritmo ya que codificandolo lo haces perfecto. Antes de codificarlo deberías pensar como ahcer para usar menos variables, para achicar el orden y para que se etienda mejor. Esas son las leyes de la programación, pero esto no es solo para c sino para todos los lenguajes. |
|
darkzight
Moderador Envíos: 10 Registrado: 3/6/2003 Status: Desconectado
|
publicado el 11/6/2003 en 02:23 |
Bueno kkx grax por el consejo lo tendre en cuenta. Por ahora voy a seguir probando con el C.
GL/HF ^_^ |
|