|
251
|
Programación / Programación C/C++ / Re: verificar numeros romanos
|
en: 20 Agosto 2013, 06:00 am
|
aqui tengo algunas mejoras que le hice al codigo, aunque cuando le ingreso un numero romano cualquiera como: XVI, me imprime error!no es numero romano y no tengo idea de por que, ya van varias veces que lo checo #include <stdio.h> #include <stdlib.h> #define TAM 7 int main() { int i,j,bandera; char romano[TAM],letras[]={'I','V','X','L','C','M','\0'},*ptr,*p; printf("Dame el primer numero: "); ptr = romano; p = letras; for(i=*ptr;*ptr!='\0';*ptr++) { bandera = 0; for(j=*p;((*p!='\0')&&(bandera==0));*p++) { if(*ptr == *p) bandera = 1; } if(bandera!=1) { printf("Error!No es numero romano\n"); } } return 0; }
|
|
|
252
|
Programación / Programación C/C++ / Re: verificar numeros romanos
|
en: 19 Agosto 2013, 21:19 pm
|
gracias amchacon seria algo como esto???: #include <stdio.h> #include <stdlib.h> #define TAM 7 int main() { char romano[TAM],letras[]={'I','V','X','L','C','M'},*ptr,*p; printf("Dame el primer numero: "); ptr = romano; p = letras; while(*ptr++ != '\0') { if(*ptr++ != *p++) printf("Error!! no es numero romano\n"); } return 0; }
y que significa k&r?
|
|
|
253
|
Programación / Programación C/C++ / verificar numeros romanos
|
en: 19 Agosto 2013, 19:52 pm
|
Saludos tengo el siguiente programa que me pide que le ingrese un numero romano cualquiera, pero tengo que verificar que si sea romano y que no contenga letras que no sean I, V, X, L, M y es ahi donde tengo el problema #include <stdio.h> #include <stdlib.h> #define TAM 7 int main() { char romano[TAM]; printf("Dame el primer numero: "); while(*romano++ != '\0') { if(*romano!='I','V','X','L','C','M') printf("Error!! no es numero romano\n"); } return 0; }
el error esta en el if de antemano gracias
|
|
|
254
|
Foros Generales / Dudas Generales / Re: Analisis de algoritmos
|
en: 29 Julio 2013, 19:27 pm
|
i=0; //ta while((i<n)&&(v!=x)) //desde aqui le pongo n* las dos condiciones -> n*(2tc) pero para que el ciclo while se salga se tiene que evaluar la condicion (i <n) una vez mas y ya que sea falsa ya no tiene caso evaluar el resto de condicion (y!=x) por eso le puse un tc extra. i = i+1; // Aqui hay una asignacion y una operacion -> to + ta if(i==n) //tc enc = false; else // Luego, solo habra una, asi que si o si será ta enc = true;
|
|
|
255
|
Foros Generales / Dudas Generales / Re: Analisis de algoritmos
|
en: 28 Julio 2013, 23:55 pm
|
Una ultima pregunta, ahora tengo el codigo de busqueda secuencial (busca el elemento x)
i=0; while((i<n)&&(v!=x)) i = i+1; if(i==n) enc = false; else enc = true;
y me dice que saque tiempo de ejecucion del mejor y peor caso, el mejor caso pues es si x se encuentra en la primera posicion del vector y seria
T(n) = ta + (2tc + tc + ta)
donde ta es el numero de asignaciones, tc = numero de comparaciones y to = numero de operaciones aritmeticas
pero para el peor seria que x no se encuentre en el vector y en este caso yo calcule que seria:
T(n) = ta + (n*(2tc + to + ta)) + tc + tc +ta
pero el libro me dice que la respuesta correcta es
T(n) = (2tc + 2to +2ta)*n + (2tc +2ta)
alguien sabe por que es esto??
gracias
|
|
|
256
|
Foros Generales / Dudas Generales / Re: Suma de Riemann
|
en: 27 Julio 2013, 18:54 pm
|
jajaj espero no correr la misma suerte y tambien salirme de la carrera , bueno la sumatoria que me esta dando problemas es la siguiente: no la pude poner mas grande porque me sale la imagen cortada no entiendo por que, a ver si me pueden ayudar gracias
|
|
|
257
|
Foros Generales / Dudas Generales / Suma de Riemann
|
en: 27 Julio 2013, 01:12 am
|
Alguien que me pueda explicar como calcular la suma de Riemann, he estado buscando por muchas paginas pero no logro entender bien el concepto ni las formulas
gracias
|
|
|
258
|
Foros Generales / Dudas Generales / Analisis de algoritmos
|
en: 26 Julio 2013, 01:24 am
|
Saludos estoy empezando a leer un libro de analisis de algoritmos y viene un codigo al que le tengo que calcular el tiempo de ejecucion, esto sumando las operaciones elementales(asiganciones,retornos,acceso a estructuras indexadas, etc..) de cada linea de codigo pero tengo duda de como calcular el tiempo de ejecucion para el mejor caso
el codigo esta en modula-2
PROCEDURE Buscar(VAR a:vector;c:INTEGER):CARDINAL; VAR j:CARDINAL; BEGIN j :=1; (1) WHILE(a[j] >c) AND (j < n) DO (2) j:=j+1; (3) END; (4) IF a[j]=c THEN (5) RETURN j; (6) ELSE RETURN 0; (7) END; (8) END Buscar;
y el libro dice
En el mejor caso para el algoritmo, se efectuara la linea 1 y de la linea 2 solo la primera mitad de la condicion, que supone 2 OE(suponemos que las expresiones se evaluan de izquierda a derecha y una expresion logica deja de ser evaluada en el momento que se conoce su valor, aunque no hayan sido evaluados todos sus terminos. Tras ellas se acaba ejecutando las lineas (5) y (7), en consecuencia T= 1+2+3=6
pero no entiendo porque en la linea 2 solo evalua la mitad de la condicion, si es un AND no se supone que tiene que evaluarla completa??
gracias de antemano
|
|
|
259
|
Programación / Programación C/C++ / Re: scanf y gets
|
en: 21 Julio 2013, 02:51 am
|
A priori no hay forma. Lo mas sencillo es utilizar un array de caracteres para leer ahí cada una de las cadenas tomando nota de su longitud. Lees una cadena, reservas el espacio justo para ella y la copias ahí. rir3760 con esto ultimo que me acabas de decir ya me quedo claro como lo tengo que hacer, aqui dejo un pedazo del codigo que estoy haciendo, creo que era a lo que te referias con utilizar un array de caracteres y demas #define MAX 5 int main() { char *nombre[MAX]; entrada(nombre); return 0; } void entrada(char *nombre[]) { char B[50]; int i; for(i=0;i < MAX;i++) { printf("Dame la escuela numero %d: ",i ); } }
de la funcion de malloc no se si tiene algun error porque no se bien como es su estructura
|
|
|
260
|
Programación / Programación C/C++ / Re: scanf y gets
|
en: 19 Julio 2013, 06:48 am
|
entonces si por ejemplo quiero ingresarle no se... 5 nombres cualquieras:
char *a[5] *(a+0)="Maria"; *(a+1)="Jose"; etc...
pero no quiero estar contando el numero de letras cada vez que tenga que asignar memoria para cada nombre, como se le asignaria la memoria??
perdona que pregunte tanto pero es que los punteros no se me dan
|
|
|
|
|
|
|