|
181
|
Programación / Programación C/C++ / problema if's anidados
|
en: 27 Diciembre 2012, 01:11 am
|
saludos estoy haciendo un programa que me tiene que: generar 5 operaciones aritmeticas aleatorias, los números (aleatorios) deben estar comprendidos entre 10 y 1, y las operaciones deberán ser suma, resta multiplicación, división (en el caso de la división se realizará siempre una división entera y el primer número tendrá que ser mayor que el segundo) al final imprimir el número de aciertos t la calificación pero el problema es que no me da bien el número de los aciertos, no se si es porque tengo muchos ifs anidados o porque no me calcula bien las operaciones que dan resultados negativos como: 5-7 =-2 #include <stdio.h> #include <stdlib.h> #include <time.h> #define OPERACIONES 5 int main() { int i,numero1,numero2,respuesta,resultado,aciertos=0; char operacion; for(i=0;i<OPERACIONES;i++) { operacion = rand()% 6+42; if(operacion==42||operacion==43||operacion==45||operacion==47) { if(operacion==47) { if(numero2>numero1) { printf("%d %c %d = ",numero2 ,operacion ,numero1 ); resultado = numero2/numero1; } else { printf("%d %c %d = ",numero1 ,operacion ,numero2 ); resultado = numero1/numero2; } } else { if(operacion==42) { printf("%d %c %d = ",numero1 ,operacion ,numero2 ); resultado=numero1*numero2; } else if(operacion==43) { printf("%d %c %d = ",numero1 ,operacion ,numero2 ); resultado=numero1+numero2; } else if(operacion==45) { printf("%d %c %d = ",numero1 ,operacion ,numero2 ); resultado=numero1+numero2; } } if(respuesta==resultado) aciertos++; } else i--; } printf("\nTuviste %d aciertos, tu calificacion es %d\n",aciertos ,aciertos *20); return 0; }
de antemano gracias por sus respuestas
|
|
|
182
|
Programación / Programación C/C++ / warnings
|
en: 21 Diciembre 2012, 01:08 am
|
saludos tengo el siguiente código de una lista simplemente enlazada, pero el problema es que me aparece un warning que dice: return makes pointer from integer without a cast #include <stdio.h> #include <stdlib.h> typedef struct nodo { int dato; struct nodo*sig; }NODO; NODO* crear_nodo(int x); void insertar_cabeza(NODO **cabeza,int x); NODO* buscar_elemento(NODO *cabeza); int main() { int i,num,x; NODO *cabeza,*ptr; cabeza = NULL; printf("Cuantos elementos quieres?\n"); printf("Lista Simplemente Ligada!\n"); for(i=0;i<num;i++) { printf("Dame el elemento %d\n",i +1); insertar_cabeza(&cabeza,x); } for(ptr=cabeza;ptr!=NULL;ptr=ptr->sig) buscar_elemento(cabeza); return 0; } NODO* crear_nodo(int x) { NODO *p; p = (NODO *)malloc(sizeof(NODO )); p->dato = x; p->sig = NULL; return p; } void insertar_cabeza(NODO **cabeza,int x) { NODO *nuevo; nuevo = crear_nodo(x); nuevo->sig = *cabeza; *cabeza = nuevo; } NODO* buscar_elemento(NODO *cabeza) { int elemento,encontro=0; NODO *indice; printf("Buscar elemento\n\n"); printf("Cual elemento quieres buscar?\n"); for(indice=cabeza;indice!=NULL;indice=indice->sig) { if(indice->dato==elemento) encontro=1; else encontro=0; } if(encontro) return indice->dato; else return 0; }
de antemano gracias
|
|
|
183
|
Programación / Programación General / Teoria del color
|
en: 26 Noviembre 2012, 23:56 pm
|
Saludos
Estoy estudiando los diferentes modelos de color (RGB,CMY,CMYK, etc..) y tengo que resolver el siguiente problema que dice:
Transformar el pixel RGB de 8 bits/color primario (64, 128, 192) al modelo CMY normalizado
tengo entendido que la fórmula para transformar de CMY a RGB es:
C: 1-R M: 1-G Y: 1-B
pero creo que con 8 bits es diferente
de antemano gracias
|
|
|
184
|
Programación / Programación C/C++ / mensaje de error
|
en: 21 Noviembre 2012, 22:19 pm
|
Saludos
que significa cuando cada vez que intento correr un programa (en codeblocks) me aparece un mensaje de error que dice la direccion donde tengo guardada la aplicacion y
failed.Nothing to be done.
pero aún asi el programa compila, por eso no entiendo por qué me aparece este mensaje
de antemano gracias
|
|
|
185
|
Programación / Programación C/C++ / Programa de Gráficas
|
en: 12 Noviembre 2012, 20:50 pm
|
Saludos Estoy haciendo un programa de gráficas que me tiene que dar las coordenadas de una recta, un circulo y un elipse, aún no lo he terminado porque el programa compila pero cuando entra al ciclo do-while se congela y no hace nada, no se por qué #include <stdio.h> #include <stdlib.h> void dibujar_recta(); int main() { int opcion; printf("Graficas por Computadora\n"); printf("Dibujo primitivas 2D\n"); switch(opcion) { case 1: dibujar_recta(); break; case 2://todavia me falta esta parte break; case 3://todavia me falta esta parte break; default: } return 0; } void dibujar_recta() { int pi_x,pf_x,pi_y,pf_y,m,inc_x,inc_y,Pk=0,inc_y2,inc_x2,k,num,Xk,Yk; printf("Dame el punto inicial(x,y):\n"); scanf("%d%d",&pi_x ,&pi_y ); printf("Dame el punto final(x,y):\n"); scanf("%d%d",&pf_x ,&pf_y ); m = (pf_y-pi_y)/(pf_x-pi_x); printf("pixel inicial = (%d,%d)\n",pi_x ,pi_y ); inc_x = pf_x-pi_x; inc_y = pf_y-pi_y; inc_y2 = 2*inc_y; inc_x2 = 2*inc_x; printf("%cx = %d\n",30,inc_x ); printf("%cy = %d\n",30,inc_y ); printf("2%cy = %d\n",30,inc_y2 ); printf("2%cy - 2%cx = %d - %d = %d\n",30,30,inc_y2 ,inc_x2 ,inc_y2 -inc_x2 ); Pk = 2*inc_y-inc_x; printf("Pk = 2%cy - %cx = %d - %d = %d\n\n",30,30,inc_y2 ,inc_x ,Pk ); Xk = pi_x; Yk = pi_y; printf("Hasta que numero quieres calcular?\n"); printf("K\tPk\t(Xk+1,Yk+1)\n"); k=0; do { if(Pk>=0) { Pk = Pk+inc_y2-inc_x2; Xk++; Yk++; } else { Pk = Pk+inc_y2; Xk++; } k++; }while(k<=num); }
de antemano gracias
|
|
|
186
|
Programación / Programación C/C++ / función random
|
en: 5 Noviembre 2012, 19:35 pm
|
Saludos
Tengo una duda con respecto a la función random
Si quisiera generar numeros aleatorios del 0 al 10 por ejemplo, sería algo como rand()%11; pero que pasa cuando de esos números del 0 al 10 no quiero que se generen el 6 y el 4, por ejemplo.
¿Cómo podría hacer una excepción de algunos números?
de antemano gracias
|
|
|
187
|
Foros Generales / Dudas Generales / convertir a decibeles
|
en: 25 Septiembre 2012, 21:43 pm
|
Saludos
Alguien que me pueda decir cuál es la fórmula para calcular decibeles, es que tengo una tabla de 3 columnas para completar y me dan potencia inicial, potencia final y decibeles, por ejemplo:
potencia inicial = 60 potencia final = 55mW decibeles = 29.62 decibeles
yo tenía entendido que la fórmula era
10 log(pot final/potencia inicial)
pero no me da los resultados
de antemano gracias
|
|
|
188
|
Foros Generales / Dudas Generales / problemas de potencia
|
en: 21 Septiembre 2012, 21:39 pm
|
Saludos necesito ayuda para resolver el siguiente problema: 2.¿Con cuánta potencia llegará una señal de 15 decibeles después de recorrer 630 metros de cierto cable que atenúa 2.50 dB cada 500 pies? 1 pie → 0.3048 metros x = (500) (0.3048) 500 pies → x x = 152.4 metros primero hice una regla de 3 para convertir de pies a metros, después 2.0 atenuación → 36.1% potencia perdida x = (36.1) (2.5)= 90.25 2.5 atenuación → x x = 90.25/2.0=45.1% potencia perdida hice otra regla de 3 porque según una tabla 2.0 de atenuación equivale a 36.1% de potencia perdida( y en el problema me están pidiendo la potencia) y por último dividí 630 sobre 152.4 para saber exactamente cuántas veces se atenúan 2.50 decibeles 630/152.4 = 4.13 pero hasta aquí me quedé ya no sé qué más hacer y quería saber si alguien me pudiera dar una pista de antemano gracias ES UN POCO URGENTE
|
|
|
189
|
Foros Generales / Dudas Generales / Memoria RAM y almacenamiento secundario
|
en: 24 Agosto 2012, 03:39 am
|
Saludos
estoy leyendo un libro de estructuras de archivos y me esta costando un poco entender algunas definiciones y esperaba que alguien me pudiera explicar que quiere decir con que los costos varian en el almacenamiento secundario y por qué es esto:
en el almacenamiento secundario el costo de recuperación varia de unas partes de la información a otras, en RAM todos los accesos tienen el mismo costo
gracias
|
|
|
190
|
Programación / Programación C/C++ / intercalar elemento en vector
|
en: 15 Agosto 2012, 20:50 pm
|
Saludos estoy haciendo el siguiente código que me tiene que leer un vector de longitud n ordenado ascendente y un elemento x del mismo tipo que los elementos del vector, intercalar x en el vector v de manera que siga ordenado. todo esto sin utilizar funciones, solo arreglos y llevo lo siguiente pero mi problema es en la parte que me tiene que intercalar el elemento x en el vector que no se si esta bien hecha #include <stdio.h> #include <stdlib.h> #define MAX 20 /* Leer un vector de longitud n ordenado ascendente y un elemento x del mismo tipo que los elementos del vector, intercalar x en el vector v de manera que siga ordenado. */ int main() { int n,i,j,v[MAX],aux,x; printf("Dame longitud del vector\n"); for(i=0;i<n;i++) { printf("Imprimir elemento %d\n",i ); } for(j=0;j<n;j++) { for(i=0;i<n;i++) { if(v[i+1]>v[i]) { aux=v[i+1]; v[i+1]=v[i]; v[i]=aux; } } } for(i=0;i<n;i++) { } printf("Dame elemento a intercalar\n"); for(i=0;i<=n;i++)//Aqui le estoy creando una posicion mas al arreglo { if(x > v[i]) { for(j=n;j>v[i];j--) { v[j]=v[j-1];/*Aqui recorro los elementos para insertar el elemento x*/ } } } return 0; }
me falta todavia la parte en la que se inserta el elemento x en la posicion correcta sin desordenar el vector gracias
|
|
|
|
|
|
|