Si en el de Fibonacci en el printf del bucle en vez de mostrar el valor de la variable "res" se muestra el valor primer numero "x" no se necesitan los IF para que la sucesión se visualice correctamente, por lo que vi mucha gente lo hizo de esa manera. Muy bien explicados, simples y prácticos los vídeos, se agradecen. Saludos.
Como me hiciste pensar en estos ejercicios jaja gracias con lo que sabía de matemática había hecho un algoritmo super largo para ambos ejercicios y muy complicados. Se ve que no solamente saber matemática es importante sino también conocer algo de sintaxis. Otra vez gracias :)
Muy buen vídeo, aprovecho antes para decir que sabes explicar muy bien;) estoy siguiendo tu lista de reproducción y he aprendido mucho, muchas gracias como se sabe, hay mas de una forma de resolver los problemas como siempre he intentado resolver por mi mismo primero el problema, y gracias a su vídeo anterior (donde aprendí a depurar) llegué a una conclusión un poco diferente, pero igualmente sirve: Les muestro mi programa si lo quieren ver: //Elaborar la susecion de Fibonacci hasta el numero n introducido por teclado //La sucesión comienza con los números 0 y 1, y a partir de estos, «cada término es la suma de los dos anteriores» #include int main(){ int x,i,y,z,suma; // 0 1 1 2 3 5 8 13 21... (lo hice para recordar la susecion y ver si esta bien printf("Selecciona hasta que numero quieres ver la sucecion de Fibonacci: "); scanf("%i",&x); y=0; z=1; suma=0; for(i = 1 ; i
este es mi ejercicio, lo del if lo puse antes que tú, eso es lo único que supe como hacerlo solo, pare el video y lo arme :D // Hacer una serie de Fibonacci hasta el termino n introducido por teclado. #include int main (){ int x, y, res, n, i; i = 3; x = 0; y = 1; printf ("Introduce un numero para la sucesion de Fibonacci: "); scanf ("%i",&n); if (n == 1){ printf ("0"); } else if (n > 1){ printf ("0, 1, "); } else if (n == 0){ printf (" "); } while (i
Antes de ver la resolución que hiciste del ejercicio, estuve un buen rato hasta que me salió este engendro del demonio del cual estoy bastante orgulloso. Decidí incluir el "if" dentro del "for" para que el programa no calculara números de más que no se imprimían en pantalla, y también hice que x, y y z sean double porque en números asquerosamente grandes me salían cosas un poco trambóliko. De cualquier manera cuando le pido que me muestre más de 84 dígitos al programa le da ansiedad y empieza a sacar muchos "0" no sé bien por qué... #include int main () {
int n,i; double x,y,z;
printf("¿Cuantas cifras de la secuencia de Fibonacci te gustaria ver? "); scanf("%i",&n);
intente hacerlo viendo solo el principio y yo habia entendido que tenia que elegir un limite no la cantidad de numeros, y me salio esto que la verdad esta bastante bien #include int main(){ int l,i,a,b,c; printf("Secuencia de fibonacci: La secuencia es infinita asi que tiene que estableser un limite. Limite: "); scanf("%i",&l); a=0; b=1; printf("Secuencia: %i, %i",a,b); for(i=0; b+a
Es mucho c odigo colocar muchas condiciones IF para mostrar la serie de fibonacci desde 0 y 1, solo es necesario mostrar el resultado de "x" antes de hacer la suma de "res = x + y". Pero gracias a ti me estoy dando cuenta de esos detalles y estoy aprendiendo mucho, te lo agradezco.
BUENAS!! Os dejo mi código para el ejercicio del numero primo hecho de una forma más sencilla, lo que hago es dividir el numero por teclado entre 2 y 3 y si el resto no es 0, es primo ^^. GRACIAS POR LOS VÍDEOS!! la verdad es que aprendes bastante y es super gratificante el saber hacer codigos mas simples que los que muestras sacados por tí mismo :) #include int main (){ int n, x, y; printf ("escribe un numero y se te dira si es primo o no: "); scanf ("%i",&n); x = n % 2; y = n % 3; if ( x == 0 || y == 0){ printf ("El numero %i No es primo",n); } else { printf ("El numero %i Si es primo", n); } printf (" "); system ("pause"); return 0; }
DSRplay No vale asi el codigo, mira el resto de comentarios... esta muy muy comentado ya este asunto, en el futuro mira los comentarios antes de postear nada. Un saludo.
disculap una consulta, porque cuando depuras en la variable aux (despues de introducir el 8) , primero sale cero y luego sale 2 ,3..? no deberia de ser cero?
¿Podría el programa de los números primos optimizarse a un 50% del rendimiento poniendo que pare el bucle cuando el contador "i" llegue a la mitad del valor "n" insertado? Puesto que no va a encontrar más múltiplos bajo ninguna circunstancia a partir de ahí, ¿alguien me podría decir si me equivoco?
Hice el casi el mismo código antes de ver el video, pero le agregue una condición doble al for para que si detecta que el numero es primo no siga el bucle, porque ya con que 1 numero lo divida con resto 0 es primo. Codigo: //Calcular si un numero es primo. #include #define pf printf #define sf scanf #define swt switch #define cls system("cls") #define setcolor system("color a") int main (){ int i,x,num,prim; prim = 0; cls; pf(">> Introduce un numero para ver si es primo: "); sf("%i",&num); for (i = 2 ; i < num && prim == 0 ; i++) { x = num % i; if (x == 0) { prim = 0; } else { prim = 1; } } if (prim == 0) { cls; pf(">> El numero introducido (%i) no es primo.",num); } else { cls; pf(">> El numero introducido (%i) es primo.",num); } getch(); return 0; }
Llego unos años tarde... pero bueno, lo primero, gran profesor mejor persona, una gran guía que no aburre y que te pone retos, te habla estudiante de informática con base 0 en programación y con un odio incondicional a las Matemáticas, y aun así aprendo sin problema. A lo que iba, tengo problemas con el Depurador, he intentado solucionarlo, ya que me decía que faltaba zlib1.dll, lo instalé y ahora solo me deja depurar proyectos, quizás soy yo el que no lo ha entendido bien, pero, técnicamente se debería poder depurar mi código fuente, ¿Correcto?, no te pido que me lo expliques, solo pretendo saber si puedo depurar un código fuente o es que lo desconocía.
Muchas gracias por tus palabras. Deberias de poder depurar, si persisten los problemas, instalate CodeBlocks por ejemplo, aunque este IDE es mas complicado de usar que Dev C++, seguro que podras ver alguna guia de como usarlo para depurar. Un saludo.
Hola, no se porque no me funciona la depuración, me dice tu programa no tiene informacion para depuracion ,quieres reconstruirlo? le digo aceptar y deja de funcionar, saludos!
Con respecto al segundo problema, hice uno código más eficiente y si no me creen pueden comprobarlo. Me valgo de una propiedad que dice que se puede evaluar si un número es primo observando si hay algún numero inferior a su raíz cuadrada por defecto que sea capaz de dividirlo. Es como sigue: #include #include int main() { int n, r, i=2, j=1; printf("Ingrese su numero: "); scanf("%i", &n); r=sqrt(n); if (n==r*r) printf("%i NO es primo.", n); else { while(i
Hola, me gustaría comentarte algo muy extraño: Haciendo el ejercicio siguiendo tu vídeo paso a paso, pese a ser consciente del error del primer ejercicio, esperando a ver si lo corregías para verificar si tenía razón o si tenías algún motivo para dejarlo así, me he encontrado que, al ejecutarlo, me sale la serie de Fibonacci perfectamente, con el 0 incluido, cuando debería darme un error como a ti, y no lo comprendo, he revisado el código pero lo tengo igual, a ver si tu o alguien puede explicarme que ha sucedido: #include int main (){
int x, y, res, n, i;
printf ("Introduce el numero de terminos para la serie de Fibonacci: "); scanf ("%i",&n);
Hola que tal! excelentes los videos he aprendido muchisimo!! una pregunta en este video por que no usas en las condiciones aux == 0 en lugar de crear la variable j == 1 es decir if (aux == 0) { condicion} .... pues se esta crando una variable extra que hace el programa menos eficiente... por favor corrigeme si me equivoco Saludos y gracias!
La estructura que escribí antes se basa en la simple idea de que todos los números se forman del 0 al 9 y si del 0 al 9 distingue los primos de los no primos, obtendrás todas las posibilidades. No sé si me explico
Lo que tú estás plasmando es la sucesión de Fibonacci, mas no la serie. En la descripción del video poner "sucesión" pero en el programa pones "serie". No sé si habrá sido por distracción, pero son conceptos muy diferentes. Te lo hago saber para que lo tengas en cuenta. Gracias por los videos. Me están sirviendo bastante. Buena suerte!
El de número primo lo hice después de ver el vídeo de los bucles while y for y pensé en esto: #include int main(){ int x,z,k; float y,prod; printf("ingresa el supuesto primo:"); scanf("%i",&x); y=sqrt(x); k=2; prod=1; while (k
HOLA...EXCELENTE CURSO...FELICIDADES. LES COMPARTO OTRO ALGORITMO QUE DESARROLLE PARA LA SERIE DE FIBONACCI: #include #include int main(int argc, char *argv[]) {
int a=0,n,i,b=1,x; printf("ingresa la cantidad de elementos a imprimir"); scanf("%i",&n); for(i=0;i
descargue recientemente la aplicación a mi laptop, quisiera que me indicaran porque me genera error al querer llamar la librería, avance hasta aca sin ella pero por ejemplo los if no los reconce
Muy buenas, tengo una pequeña duda en el ejercicio de la sucesion de fibonacci: Hice el ejercicio siguiendo tus pasos, pero al contrario del video, el programa me da bien el resultado antes de poner el IF, te dejo el codigo a ver si ves algo raro, porque no lo entiendo jaja. #include int main() { int x, y, n, res, i; printf("Introduce un numero de terminos para la scesion de Fibonacci: "); scanf("%i", &n); i=1; x=0; y=1;
Monkey[G] Mira el siguiente video que enseña a usar el depurador y aplicalo con este programa, asi podras ver tu mismo que es lo que sucede. Un saludo.
amigo hay algo que no entiendo porque siempre en los bluques while los printf siempre van ejm: asi printf ("%i, "); amigo porque siempre va con un espacio
Al momento de poner el printf("%i, "); no ingrese ninguna variable a imprimir y me sale bien la sucesión Fibonacci, pero de igual forma me gustaría saber porque si me funciono y no simplemente imprimió %i. Gracias.
Respecto al primer ejercicio, lo he echo con una variable float, para que el programa pueda sacar mas valores. Pero queda muy feo, por que desde el primer valor le añade un monton de 0. Hay alguna manera de corregir eso?
hola por favor me podrias ayudar a resolver este problema Implemente un programa C para gente muy ocupada, que desea saber de cuanto tiempo dispone antes de una cita u otra actividad. El programa debe recibir como entrada la hora actual y la hora de la actividad que debe realizar (en formato de 24 horas). Como respuesta, debe recibir el tiempo del que se dispone entre ambas. Como restricción, entre ambas horas puede haber, como máximo, un día de diferencia (23:59). Considere, por ejemplo, que: • Si son las 14:20 y se tiene una cita a las 18:35, el programa debe responder que se dispone de un tiempo de 4:15. • Si son las 14:50 y se tiene una cita a las 18:25, el programa debe responder que se dispone de un tiempo de 3:35. • Si son las 21:00 y debo despertarme mañana a las 6:15, el programa debe responder que se dispone de un tiempo de 9:15. • Si son las 21:30 y debo despertarme mañana a las 6:00, el programa debe responder que se dispone de un tiempo de 8:30.
Hola!!, me gustaria saber por qué usas la variable j, y por qué al principio la inicializas en 0 y luego si la auxiliar es igual a cero le da el valor de 1.
Hola, al momento de ejecutar el programa de la serie de Fibonacci aparece error, es decir que no lo ejecuta, ya cheque el código y es el mismo, ayuda por favor
Hola, saludos desde argentina. Una duda, es necesario usar un bucle for en el ejercicio de los numeros primos?. ya que se puede hacer directamente solo con un if. if (x % 2 == 0){ printf("El numero ingresado no es primo") } else { printf ("El numero ingresado es primo")}
Pero llega un punto donde si pones una cantidad de números ya no realiza el cálculo de fibonacci, esto por el espacio en memoria de variables de tipo entro (int). Mi pregunta es ¿no es más viable declarar las variables de tipo flotante? Alguien responda por favor, salu2
Hola, yo al hacerlo antes de verlo solo, lo hice diferente con solo 3 variables, pero funciona. A este que has expuesto habría que hacerle un arreglo para que diga que el 1 NO es primo, porque en el programa me dice que SI lo es. Un saludo, gracias.
Una pregunta a ver si me la pueden resolver: Por que si en el "for" pongo que el divisor del numero introducido ( i en este video) es mayor que 1 en lugar de igual que 2 me da error al ejecutar el programa? Gracias, un saludo. PD: yo lo pongo asi: for(i>1 ; i
//Hacer la serie de Fibonacci hasta el termino n introducido por teclado #include int main(){ int primer_num; int segundo_num; int num_siguiente ; int cantida_d_veces; int contador = 1 ; printf("Introduce un numero de terminos para la sucesion de FIbonacci : "); scanf("%i",&cantida_d_veces); primer_num = 0; segundo_num = 1 ; while(contador
Al numero primo lo hice así !! y me funciono int main (){ int num,i; float div; printf ("Introduce un numero y te incidare si es primo o no: "); scanf ("%i",&num); if (num == 2){ printf("el numero %i SI ES PRIMO ",num); } for(i=2;i
+Cristhian te conviene mirar desde el comienzo, esas letras son variables que representan un número, y se les asigna muchas veces un valor por teclado :D. PD: mira desde el principio esto y vas a entender y aprender bien, yo empece a programar gracias a estos tutoriales :D
/*Serie de Fibonacci HASTA EL NUMERO n (NO hasta n repeticiones)*/ #include int main() { int n, i, j, k=0; printf("Introduce un número: "); scanf("%i", &n); printf(" %i\t", k); for(j=1; j
Lo de mostrar el 0, 1 al principio en vez de usar un printf("0, 1"); al principio del while solo basta con usar este código en while en la parte de printf: printf("%i,",x, y,res); pones el x, y delante del res y todo solucionado ;) Salu2 :D
y no seria mas efeciente en el bucle poner: for (i = 2; i < n && j == 0; i++){......} Asi en cuanto encuentre un numero que el resto sea 0 se saldra del bucle y no tendra que pasar por todos los numeros para salir.
Hola, porque no se ejecuta el programa? Se compila bien, sin dar errores pero al intentar abrirlo, este no se abre solo se queda el cirulo de cargando alado del cursor. Todos lo demas programas que he hecho de estos tutoriales se abren excepto los que empece desde el tutorial anterior. Me podrían ayudar El codigo no es, hice un hola mundo y da lo mismo el programa no se abre
para no poner un printf(0, 1) y lo haga de manera automatica aqui esta // sucesion de fibonacii #include int main(){ int x,y,r,n,i; printf("Introduce un numero para la sucesion: "); scanf("%i",&n);
Para mejorar el rendimiento del programa que comprueba si un número es primo, poniendo un "break;" cuando entra en la condición cuando el resto es 0, sale del bucle en ese momento y se va a la condición para mostrar el mensaje de que el número no es primo.
Hola como estas? una pregunta como puedo guardar una sucesion de fibonacci en una arreglo por ejemplo , para realizar comparaciones por ejemplo, tengo un arreglo de Fibonacci de {0 - 50}, y quiero validad que n numero introducido por teclado pertenece a esa serie o arreglo. Gracias de ante manos
me parece curioso este caso si en tu programa ingresas 1 lo consderara primo y 1 no es primo pero es porque al ingresarlo el bucle for se rompe y no inicia porque i
Emilio, vuestra resolución del Bloque 3.6.c no es del todo eficiente. al principio lo hice con la sentencia do-while pero luego pensé q si uno ingresaba el 0 no debería mostrar ningún mensaje. El código a continuación resuelve el problema de forma eficaz y eficiente.. hice el ejercicio antes de ver como lo desarrollaba, y me tomo horas hacerlo aunque suene increíble. Quiero deciros q su forma de hacer los cursos es la mejor . mediante ejercicios.Añoro un curso de html y javascript y normalizacion de bd. saludos.. #include int main (){ int s,c,a,p,n; //s sucesión, c contador q tiende a n, a anterior, p posterior, n cantidad de sucesiones. printf(" Ingrese un numero n:"); scanf("%i",&n); printf(" "); c=0; s=0; p=1; while (c
Mi contribución con el ejercicio numero 2.. hecho con el bucle do_while. #include #include using namespace std; int main( int argc, char *argv[]){ int n,i,rest;
printf("introduce un numero "); scanf("%i",&n); i=2; do{ rest=n%i; i++; if(rest==0){ printf("%i No es primo",n); } else{ printf("%i es primo",n); } }while(i
DUDA! Tal como lo hiciste no daria un vacio como dato? Quiero decir, si el valor ingresado por teclado es 1, n=1 y diria que 1 es un numero primo lo cual es totalmente falso ya que por convenio el numero 1 no es ni primo ni compuesto. Es correcto o no veo algo claramente?
Hola Empieza a Programar estoy siguiendo tu curso y me parece muy bueno, tengo una duda no se si por la version que tengo del dev c++ 5.11 me corrige algunos datos pero te voy a copiar el codigo que hice y me funciona perfecto sin el if que agregaste, agradeceria que me informaras #include int main (){ int x, y, res, n, i; printf ("Introduce un numero de terminos para la sucescion de Fibonacci: "); scanf ("%i",&n); i = 1; x = 0; y = 1; while (i
+Sergio Martín No tiene nada que ver el lenguaje con el valor de los números ¿?, aprende C por ejemplo, aunque si buscas un lenguaje especifico solo para matemáticas, Matlab suele ser el usado.
Hola!, siempre intento hacer por adelantado los ejercicios a los del vídeo para ver si voy aprendiendo de verdad, y en este me ha salido algo distinto, me podrías decir si es correcto ponerlo de esta manera?: #include int main(){ int n,i,aux; printf("Introduce el numero para saber si es primo "); scanf("%i",&n); for (i=n-1;i>1;i--){ aux=n%i; if (aux==0) { printf("No es primo "); system("pause"); return 0; } } printf("Es primo!!!!!!!!!! "); system("pause"); return 0; } No sé si es correcto cortar el programa de esa manera, pero funcionar me funciona, saludos y gracias por los vídeos!
Tu codigo es valido, solamente que lo de cortar el bucle a medias se puede hacer, pero va en contra de los conceptos de programacion estructurada, por esa razon yo no lo enseño, si algun dia vas a estudiar la carrera de informatica y te lo ve un profesor, te ganaras un par de gritos... por mi parte haz lo que quieras, pero si no lo haces mejor... La diferencia entre mi propuesta y la tuya, es que yo realizo el bucle hacia delante y tu hacia atras, pero esto no importa... Sigue asi! Este problema en mis inicios me costo horrores sacarlo... asi que es buena señal que lo consigas hacer solo. Un saludo.
El valor "Basura" importa mucho? pone lento un programa en algun momento? veo que al depurar el valor d "aux" es "aux = 2147344384" de ahi viene mi duda, pense en iniciarlo y se que en este programa no afectara porque el valor cambia al entrar al bucle pero quizas en otra ocasion si afecte, una ocasion que no imagino en estos momentos, tambien pense porque no puso los printf's dentro del bucle? o sea en vez d j = 1, pone un printf un else y otro printf y quizas hayas respondido esto antes, quizas no d la misma forma pero me da lala leer... =$
en lo de los numeros primos pueden hacer el if con el printf adentro del for de la siguiente forma diciendo despues del printf que n=0 saliendo del for, esto va a funcionar en todos los casos ya que si ingresan 0 o 1 el contador no comienza #include #include int main(){ int n,i,x; printf("ingrese un numero para comprobar si es primo o no: "); scanf("%i",&n); x=0; for(i=2;i
+Enmanuel Menjivar Cortez es muy sencillo, (si lo hiciste como el lo hizo) va a tener ese error¿ porque? por que al no ser 1 no entra al if y se ejecuta el else el cuan pide que imprima por pantalla"0, 1, " ahora si no sos capas de darte cuenta de eso, analizándolo por tu cuenta la programación no es lo tullo
9 лет назад+2
¿Qué te parece esta forma optimizada de saber si es primo o no? //Determinar si un numero es primo o no. #include #include int main(){ int x,raiz,i,cont=0,p; while(p=1;i--){ if(x%raiz==0){ cont++; } } if(cont>=2){ printf("El numero no es primo "); }else{ printf("El numero es primo "); } cont=0; }; }
Hola +Empieza A Programar !! He hecho el ejercicio de ver si un numero es primo y no sé si se puede decir que es un poco más eficiente puesto que he acortado a la mitad el ciclo del bucle mandando a dividir el numero n introducido por teclado hasta n/2 puesto que si tenemos un dividendo cuyo divisor sea mayor que la mitad de ese dividendo ya seguro que el resto no es 0. Por otra parte he evitado poner la variable j y para ello he "manipulado" un poco lo que sería el ciclo del bucle con el if que está dentro del bucle for. Sinceramente no sé si es correcto lo que hice, pero funcionar funciona jajaja. Aquí te dejo el código: /*Comprobar si un numero es primo*/ #include int num,i,resto; int main(void){ printf("Introduce un numero: "); scanf("%d",&num); for(i=2 ; i
Tu optimización de dividir por 2 no es totalmente correcta, es mas eficiente pero se puede hacer mucho más y lo comento en otro vídeo más adelante, se puede hacer raíz de 2, siendo por tanto muchas menos las vueltas que tenga que dar el bucle. En realidad saber estas cosas no es parte de la programación, es parte de un teorema matemático. Un saludo.
Hooola, perdona no habia visto tu comentario.. Por favor puedes decirme porque no sirve ? ya voy un poco mas avanzado.. pero quisiera tener esto en claro :D
como siempre dices, puse en pause el video y lo hice hasta que me funciono. luego me parecio super mas sencillo mi forma, pero quizas no sea la mas eficiente.. a ver que dicesn. #include int main(){ int x; printf("Introduce un numero: "); scanf("%i",&x); if ( x == 1){ printf("1 NO es un numero primo. "); } else if ( x % 2 == 0){ printf("%i NO es un numero primo. ",x); } else if ( x % 2 != 0){ printf("%i es un numero primo. ",x); } system("pause"); return 0; } saludos , y gracias por los videos.
Empieza A Programar listo, tienes toda la razon. Nada toda repetir el bloque y hacerlo correctamente, porque de la forma en que intente dan numeros que no son primos como primo. un salu2 y gracias por la respuesta.
hola, no puedo depurar;( me sale :El proyecto no tiene informacion para depuracion. desea continuar? presiono "yes" y se me cierra DEV C++ (el programa), siendo que ya havia anadido variables de vigilancia. ayudaxd
Yo lo he resuelto de otro modo: //Saber si un numero es primo. #include int main(){ int divisores = 0; int n; int i; printf("Introduce un numero: "); scanf("%d", &n); fflush(stdin); for (i = 1; i
9 лет назад+1
Cuando introduzco un número diferente a uno me dice que no es primo, es como si el for no se estuviese ejecutando, y yo lo tengo igual que tú. Saludos #include int main (){ int n, i, j, aux; printf ("Introduce un numero cualquiera: "); scanf ("%i", &n); j= 0; for (i = 2 ; i < n ; i++){ aux = n % 1; if (aux == 0){ j = 1; } } if (j == 1){ printf ("%i NO es primo. ", n); } else { printf ("%i ES primo. ", n); } system ("pause"); return 0; }
+Hacker [DroidDeveloper] “Ángel” Tienes que verte el video del depurador, ahi podras ver el error al momento, aunque te digo una pista, si haces % 1 normal que lo tengas mal, jejeje. Un saludo.
me puedes ayudar, me sale esta línea como mensaje, aveces se compila y aveces no, que puedo hacer para que no me pase esto. gracias de antemano. E:\ELECTRONICA Y PROGRAMACION\desarrollo deprogramacion\c\collect2.exe [Error] ld returned 1 exit status
Andres Martinez Pues tu error creo que se debe a que tienes la consola de comandos abierta, es decir, le has dado a compilar y ejecutar y no has cerrado la ventana negra que aparece y le has dado a compilar. Cierrala y dale a compilar y ejecutar, veras como ya funciona todo bien. Un saludo.
Holaaa, he optimizado el codigo del primer programa, no hay if ni else, aqui lo tienes ;) // Hacer la serie fibonacci de n numeros. #include int main(){ int x, n, y, z, i; printf ("Introduzca el numero de terminos de la serie "); scanf ("%i" ,&n); i = 1; y = 1; x = 0; while (i
Saludos. Si deseo que se muestren los, por ejemplo, 20000 números de Fibonacci entonces¿ debería cambiar de int a float no? Gracias Por cierto, excelente tutorial, me enganché.
Rubén Alfredo Tupayachi Latorre En la serie de Fibonacci todos los numeros, por mas grandes que sean, siempre son enteros positivos, ahora bien cuando se declara una variable como entera (int) y pides un valor tan grande de n terminos tales que sobrepasen el limite de (int), debes agregarle un atributo al declarar el entero, por ejemplo (long) y a la hora de agregar el tipo simplemente pones %li , agregandole el atributo al tipo. Si me equivoco, por favor, diganmelo para aprender tambien.
Creo que de esta forma es más eficiente, ya que el bucle for solo lo ejecutas hasta la raiz cuadrada, disminuyendo las operaciones que tiene que ejecutar la cpu. #include #include int main(){ int n,i,r; printf("Indique el numero que desea saber si es primo: "); scanf("%i",&n); for(i=2;i
Con el programa de la suseción de Fibonacci, lo entendí diferente, creí que se ingresaba un valor por teclado, y se debían mostrar todos los números de la suseción hasta el número ingresado (si n=8 -> 0, 1, 1, 2, 3, 5, 8): #include int main (){ int x, a, b, nuevo; a=0; b=1; printf("Ingrese un numero maximo para la susecion de Fibonacci: "); scanf("%i",&x); do{ nuevo=a; printf("%i, ",nuevo); a=b; b=a+nuevo; }while(x>=a); printf(" "); system ("pause"); return 0; }
Tambien logre hacer un programa mas eficiente para el segundo ejercicio: //Bloque 3.6.2 //Realizar un programa que verifique si un numero es primo. #include int main(){ int x, res, i; printf("Introduce el numero para verificar si es primo: "); scanf("%i",&x); i = 2; while(i < x){ res = x % i; if(res == 0){ printf(" El numero %i no es primo.",x); return 0; } i++; } printf(" El numero %i es primo.",x); return 0; }
El de los numeros primos lo hice asi: #include main(){ int num; printf("Introduzca su numero: "); scanf("%d",&num); if(num == 2 || num == 3 || num == 5 || num == 7){ printf("Su numero es primo
"); } else if(num%2 == 0 || num%3 == 0 || num%5 == 0 || num%7 == 0){ printf("Su numero no es primo
Porque esto no funciona? #include int main() { int x,y; float z; y=1; printf("Introduce un número y te digo si es primo:"); scanf("%i",&x); do{ y++; z=x%y; if(z==0 || x==0){printf("No es primo.");} }while(y
cuando incerto 9 en lo de los numeros primos no me da el resultado: //Hola #include int main () { int n,i,j, aux; j = 0; printf ("Introduzca un numero"); scanf ("%i",&n);
for (i = 2; i < n; i++) { aux = n % i; if (aux == 0) { j = 1; } } if (j == 1) { printf (" el %i No es primo",n); } else { printf ("el %i ES PRIMO",n); }
Para solucionar ese error ve a herramientas--> Opciones del compilador --> configuaracion--> linker (esta casi al final) --> y acitivas la opcion de "Generar informacion de debug".
Hola el de número primo lo hice utilizando una bandera: //Bloque 3.6b: Ejercicios Fibonacci y comprobar si un número es primo //Realiza un programa en C que calcule el fibonacci hasta el termino n introducido por teclado. #include int main(){ int n, x, i, res, bandera; printf("Bloque 3.6b: Comprobar si un numero es primo
"); printf("Introduce un numero positivo mayor que 2: "); scanf("%i", &n); printf(" "); x = 2; bandera = 0; if(n
No se si estará bien , pero lo plantee de la siguiente manera :
int main(){
int x,y,res,n,i;
printf("Ingrese hasta que sucesion quiere llegar
");
scanf("%i",&n);
i = 0;
x = 0;
y = 1;
while(i
Yo trate de hacerlo antes de ver el vídeo y llegue a esto... La cosa es que funciona fantástico ;)
// Numeros Primos
#include
int main (){
int x,i,g;
g = 0;
printf ("Dame el numero que quiere verificar:
");
scanf ("%i",&x);
for (i = 1; i
Saludos amigo!! Mañana tengo parcial acerca de programación en C , y tus videos me han servido muchísimo!! Gracias.
Si en el de Fibonacci en el printf del bucle en vez de mostrar el valor de la variable "res" se muestra el valor primer numero "x" no se necesitan los IF para que la sucesión se visualice correctamente, por lo que vi mucha gente lo hizo de esa manera.
Muy bien explicados, simples y prácticos los vídeos, se agradecen.
Saludos.
La clase es muy buena, gracias por tu tiempo invertido en todo estos vídeos.
Como me hiciste pensar en estos ejercicios jaja gracias
con lo que sabía de matemática había hecho un algoritmo super largo para ambos ejercicios y muy complicados. Se ve que no solamente saber matemática es importante sino también conocer algo de sintaxis. Otra vez gracias :)
brutaaaaaaaaaaaal jeje. Se ve muy complicado, pero poco a poco lo voy entendiendo y empiezan a fluir mis dedos. gracias !!!
hola solo para decirte que son unos exelentes tutoriales la verdad que explicas muy bien espero mas lenguajes de programacion pronto ;)
Muy buen vídeo, aprovecho antes para decir que sabes explicar muy bien;)
estoy siguiendo tu lista de reproducción y he aprendido mucho, muchas gracias
como se sabe, hay mas de una forma de resolver los problemas
como siempre he intentado resolver por mi mismo primero el problema, y gracias a su vídeo anterior (donde aprendí a depurar)
llegué a una conclusión un poco diferente, pero igualmente sirve:
Les muestro mi programa si lo quieren ver:
//Elaborar la susecion de Fibonacci hasta el numero n introducido por teclado
//La sucesión comienza con los números 0 y 1, y a partir de estos, «cada término es la suma de los dos anteriores»
#include
int main(){
int x,i,y,z,suma;
// 0 1 1 2 3 5 8 13 21... (lo hice para recordar la susecion y ver si esta bien
printf("Selecciona hasta que numero quieres ver la sucecion de Fibonacci: ");
scanf("%i",&x);
y=0;
z=1;
suma=0;
for(i = 1 ; i
este es mi ejercicio, lo del if lo puse antes que tú, eso es lo único que supe como hacerlo solo, pare el video y lo arme :D
// Hacer una serie de Fibonacci hasta el termino n introducido por teclado.
#include
int main (){
int x, y, res, n, i;
i = 3;
x = 0;
y = 1;
printf ("Introduce un numero para la sucesion de Fibonacci: ");
scanf ("%i",&n);
if (n == 1){
printf ("0");
}
else if (n > 1){
printf ("0, 1, ");
}
else if (n == 0){
printf ("
");
}
while (i
Antes de ver la resolución que hiciste del ejercicio, estuve un buen rato hasta que me salió este engendro del demonio del cual estoy bastante orgulloso. Decidí incluir el "if" dentro del "for" para que el programa no calculara números de más que no se imprimían en pantalla, y también hice que x, y y z sean double porque en números asquerosamente grandes me salían cosas un poco trambóliko. De cualquier manera cuando le pido que me muestre más de 84 dígitos al programa le da ansiedad y empieza a sacar muchos "0" no sé bien por qué...
#include
int main () {
int n,i;
double x,y,z;
printf("¿Cuantas cifras de la secuencia de Fibonacci te gustaria ver? ");
scanf("%i",&n);
x = 0;
y = 1;
z = 0;
for (i = 1; i
muchas gracias +Empieza A Programar tus vídeos me han ayudado mucho :) gracias por compartir tus videos
intente hacerlo viendo solo el principio y yo habia entendido que tenia que elegir un limite no la cantidad de numeros, y me salio esto que la verdad esta bastante bien
#include
int main(){
int l,i,a,b,c;
printf("Secuencia de fibonacci:
La secuencia es infinita asi que tiene que estableser un limite.
Limite: ");
scanf("%i",&l);
a=0;
b=1;
printf("Secuencia: %i, %i",a,b);
for(i=0; b+a
Es mucho c odigo colocar muchas condiciones IF para mostrar la serie de fibonacci desde 0 y 1, solo es necesario mostrar el resultado de "x" antes de hacer la suma de "res = x + y". Pero gracias a ti me estoy dando cuenta de esos detalles y estoy aprendiendo mucho, te lo agradezco.
saludos,muy bien entendido todoslosejercicios hasta ahora.
Muchas gracias por el tutorial estoy aprendiendo mucho con el
BUENAS!! Os dejo mi código para el ejercicio del numero primo hecho de una forma más sencilla, lo que hago es dividir el numero por teclado entre 2 y 3 y si el resto no es 0, es primo ^^. GRACIAS POR LOS VÍDEOS!! la verdad es que aprendes bastante y es super gratificante el saber hacer codigos mas simples que los que muestras sacados por tí mismo :)
#include
int main (){
int n, x, y;
printf ("escribe un numero y se te dira si es primo o no: ");
scanf ("%i",&n);
x = n % 2;
y = n % 3;
if ( x == 0 || y == 0){
printf ("El numero %i No es primo",n);
}
else {
printf ("El numero %i Si es primo", n);
}
printf ("
");
system ("pause");
return 0;
}
DSRplay No vale asi el codigo, mira el resto de comentarios... esta muy muy comentado ya este asunto, en el futuro mira los comentarios antes de postear nada.
Un saludo.
Hola muchas gracias por tan valiosa informacion .
disculap una consulta, porque cuando depuras en la variable aux (despues de introducir el 8) , primero sale cero y luego sale 2 ,3..? no deberia de ser cero?
¿Podría el programa de los números primos optimizarse a un 50% del rendimiento poniendo que pare el bucle cuando el contador "i" llegue a la mitad del valor "n" insertado? Puesto que no va a encontrar más múltiplos bajo ninguna circunstancia a partir de ahí, ¿alguien me podría decir si me equivoco?
Hice el casi el mismo código antes de ver el video, pero le agregue una condición doble al for para que si detecta que el numero es primo no siga el bucle, porque ya con que 1 numero lo divida con resto 0 es primo.
Codigo:
//Calcular si un numero es primo.
#include
#define pf printf
#define sf scanf
#define swt switch
#define cls system("cls")
#define setcolor system("color a")
int main (){
int i,x,num,prim;
prim = 0;
cls;
pf(">> Introduce un numero para ver si es primo: ");
sf("%i",&num);
for (i = 2 ; i < num && prim == 0 ; i++) {
x = num % i;
if (x == 0) {
prim = 0;
} else {
prim = 1;
}
}
if (prim == 0) {
cls;
pf(">> El numero introducido (%i) no es primo.",num);
} else {
cls;
pf(">> El numero introducido (%i) es primo.",num);
}
getch();
return 0;
}
Llego unos años tarde... pero bueno, lo primero, gran profesor mejor persona, una gran guía que no aburre y que te pone retos, te habla estudiante de informática con base 0 en programación y con un odio incondicional a las Matemáticas, y aun así aprendo sin problema. A lo que iba, tengo problemas con el Depurador, he intentado solucionarlo, ya que me decía que faltaba zlib1.dll, lo instalé y ahora solo me deja depurar proyectos, quizás soy yo el que no lo ha entendido bien, pero, técnicamente se debería poder depurar mi código fuente, ¿Correcto?, no te pido que me lo expliques, solo pretendo saber si puedo depurar un código fuente o es que lo desconocía.
Muchas gracias por tus palabras.
Deberias de poder depurar, si persisten los problemas, instalate CodeBlocks por ejemplo, aunque este IDE es mas complicado de usar que Dev C++, seguro que podras ver alguna guia de como usarlo para depurar.
Un saludo.
Porque no salen infinitos números en la sucesion?
Hola, no se porque no me funciona la depuración, me dice tu programa no tiene informacion para depuracion ,quieres reconstruirlo? le digo aceptar y deja de funcionar, saludos!
Por que al introducir como n 1200 aparece una sucesion de numeros negativos?
muy buenos videos gracias ......
Con respecto al segundo problema, hice uno código más eficiente y si no me creen pueden comprobarlo. Me valgo de una propiedad que dice que se puede evaluar si un número es primo observando si hay algún numero inferior a su raíz cuadrada por defecto que sea capaz de dividirlo. Es como sigue:
#include
#include
int main()
{
int n, r, i=2, j=1;
printf("Ingrese su numero: ");
scanf("%i", &n);
r=sqrt(n);
if (n==r*r) printf("%i NO es primo.", n);
else
{
while(i
Con tu codigo me sale que 1 no es primo y que el 6, el 8,o el 15 sí lo son xD
Hola, me gustaría comentarte algo muy extraño:
Haciendo el ejercicio siguiendo tu vídeo paso a paso, pese a ser consciente del error del primer ejercicio, esperando a ver si lo corregías para verificar si tenía razón o si tenías algún motivo para dejarlo así, me he encontrado que, al ejecutarlo, me sale la serie de Fibonacci perfectamente, con el 0 incluido, cuando debería darme un error como a ti, y no lo comprendo, he revisado el código pero lo tengo igual, a ver si tu o alguien puede explicarme que ha sucedido:
#include
int main (){
int x, y, res, n, i;
printf ("Introduce el numero de terminos para la serie de Fibonacci: ");
scanf ("%i",&n);
i = 1;
x = 0;
y = 1;
while (i
Hola que tal! excelentes los videos he aprendido muchisimo!! una pregunta en este video por que no usas en las condiciones aux == 0 en lugar de crear la variable j == 1 es decir if (aux == 0) { condicion} .... pues se esta crando una variable extra que hace el programa menos eficiente... por favor corrigeme si me equivoco Saludos y gracias!
disculpa estaria bien hacerlo con la condicion if?
muchas gracias por los videos, una pregunta, porque no inicializas la variable aux = 0; ?
el programa no quiere depurar, dice que el proyecto no tiene informacion para depuracion.. quien puede ayudarme.. Gracias
La estructura que escribí antes se basa en la simple idea de que todos los números se forman del 0 al 9 y si del 0 al 9 distingue los primos de los no primos, obtendrás todas las posibilidades. No sé si me explico
Lo que tú estás plasmando es la sucesión de Fibonacci, mas no la serie. En la descripción del video poner "sucesión" pero en el programa pones "serie". No sé si habrá sido por distracción, pero son conceptos muy diferentes. Te lo hago saber para que lo tengas en cuenta. Gracias por los videos. Me están sirviendo bastante. Buena suerte!
Lo dice en el video!
Hay veces que ejecuto un programa pero me aparece la pantalla del programa anterior,¿como puedo solucionar esto?
El de número primo lo hice después de ver el vídeo de los bucles while y for y pensé en esto:
#include
int main(){
int x,z,k;
float y,prod;
printf("ingresa el supuesto primo:");
scanf("%i",&x);
y=sqrt(x);
k=2;
prod=1;
while (k
HOLA...EXCELENTE CURSO...FELICIDADES. LES COMPARTO OTRO ALGORITMO QUE DESARROLLE PARA LA SERIE DE FIBONACCI:
#include
#include
int main(int argc, char *argv[]) {
int a=0,n,i,b=1,x;
printf("ingresa la cantidad de elementos a imprimir");
scanf("%i",&n);
for(i=0;i
Muy bien explicado, gracias.
y la variable res en fibonacci está inicializada ?
descargue recientemente la aplicación a mi laptop, quisiera que me indicaran porque me genera error al querer llamar la librería, avance hasta aca sin ella pero por ejemplo los if no los reconce
Muy buenas, tengo una pequeña duda en el ejercicio de la sucesion de fibonacci: Hice el ejercicio siguiendo tus pasos, pero al contrario del video, el programa me da bien el resultado antes de poner el IF, te dejo el codigo a ver si ves algo raro, porque no lo entiendo jaja.
#include
int main() {
int x, y, n, res, i;
printf("Introduce un numero de terminos para la scesion de Fibonacci: ");
scanf("%i", &n);
i=1;
x=0;
y=1;
while (i
Monkey[G] Mira el siguiente video que enseña a usar el depurador y aplicalo con este programa, asi podras ver tu mismo que es lo que sucede.
Un saludo.
Excelente explicación!!
amigo hay algo que no entiendo porque siempre en los bluques while los printf siempre van ejm: asi printf ("%i, "); amigo porque siempre va con un espacio
en el ejercicio de numeros primos, hay que poner la exepcion para el numero 1, ya que este no es primo, graicas por los videos.
ufff, falla cuando le pido cero términos, ¿no?
Al momento de poner el printf("%i, "); no ingrese ninguna variable a imprimir y me sale bien la sucesión Fibonacci, pero de igual forma me gustaría saber porque si me funciono y no simplemente imprimió %i. Gracias.
Respecto al primer ejercicio, lo he echo con una variable float, para que el programa pueda sacar mas valores. Pero queda muy feo, por que desde el primer valor le añade un monton de 0.
Hay alguna manera de corregir eso?
hola por favor me podrias ayudar a resolver este problema
Implemente un programa C para gente muy ocupada, que desea saber de cuanto
tiempo dispone antes de una cita u otra actividad.
El programa debe recibir como entrada la hora actual y la hora de la actividad que debe
realizar (en formato de 24 horas). Como respuesta, debe recibir el tiempo del que se
dispone entre ambas. Como restricción, entre ambas horas puede haber, como máximo,
un día de diferencia (23:59).
Considere, por ejemplo, que:
• Si son las 14:20 y se tiene una cita a las 18:35, el programa debe responder que se
dispone de un tiempo de 4:15.
• Si son las 14:50 y se tiene una cita a las 18:25, el programa debe responder que se
dispone de un tiempo de 3:35.
• Si son las 21:00 y debo despertarme mañana a las 6:15, el programa debe
responder que se dispone de un tiempo de 9:15.
• Si son las 21:30 y debo despertarme mañana a las 6:00, el programa debe
responder que se dispone de un tiempo de 8:30.
+Jesenia Lunita Te animo a que aprendas a hacerlo tu solo viéndote los vídeos.
Hola!!, me gustaria saber por qué usas la variable j, y por qué al principio la inicializas en 0 y luego si la auxiliar es igual a cero le da el valor de 1.
Hola, al momento de ejecutar el programa de la serie de Fibonacci aparece error, es decir que no lo ejecuta, ya cheque el código y es el mismo, ayuda por favor
Hola, saludos desde argentina. Una duda, es necesario usar un bucle for en el ejercicio de los numeros primos?.
ya que se puede hacer directamente solo con un if. if (x % 2 == 0){
printf("El numero ingresado no es primo")
}
else {
printf ("El numero ingresado es primo")}
Ecle Fabri Mirate el resto de comentarios antes de postear, ya esta muy comentado.
Un saludo.
Pero llega un punto donde si pones una cantidad de números ya no realiza el cálculo de fibonacci, esto por el espacio en memoria de variables de tipo entro (int). Mi pregunta es ¿no es más viable declarar las variables de tipo flotante? Alguien responda por favor, salu2
En vez de poner un printf con el valor, puedes poner que en N ==0 , res = a0 o tu termino res = x; no?
Hola, yo al hacerlo antes de verlo solo, lo hice diferente con solo 3 variables, pero funciona.
A este que has expuesto habría que hacerle un arreglo para que diga que el 1 NO es primo, porque en el programa me dice que SI lo es.
Un saludo, gracias.
Una pregunta a ver si me la pueden resolver:
Por que si en el "for" pongo que el divisor del numero introducido ( i en este video) es mayor que 1 en lugar de igual que 2 me da error al ejecutar el programa? Gracias, un saludo.
PD: yo lo pongo asi:
for(i>1 ; i
//Hacer la serie de Fibonacci hasta el termino n introducido por teclado
#include
int main(){
int primer_num;
int segundo_num;
int num_siguiente ;
int cantida_d_veces;
int contador = 1 ;
printf("Introduce un numero de terminos para la sucesion de FIbonacci :
");
scanf("%i",&cantida_d_veces);
primer_num = 0;
segundo_num = 1 ;
while(contador
Al numero primo lo hice así !! y me funciono
int main (){
int num,i;
float div;
printf ("Introduce un numero y te incidare si es primo o no: ");
scanf ("%i",&num);
if (num == 2){
printf("el numero %i SI ES PRIMO
",num);
}
for(i=2;i
Ola disculpa que letras son las las que ban alado de scanf las que estan dentro de parentisis
+Cristhian Torres mírate desde el primer video.
+Cristhian te conviene mirar desde el comienzo, esas letras son variables que representan un número, y se les asigna muchas veces un valor por teclado :D.
PD: mira desde el principio esto y vas a entender y aprender bien, yo empece a programar gracias a estos tutoriales :D
/*Serie de Fibonacci HASTA EL NUMERO n (NO hasta n repeticiones)*/
#include
int main() {
int n, i, j, k=0;
printf("Introduce un número: ");
scanf("%i", &n);
printf("
%i\t", k);
for(j=1; j
Lo de mostrar el 0, 1 al principio en vez de usar un printf("0, 1"); al principio del while solo basta con usar este código en while en la parte de printf: printf("%i,",x, y,res); pones el x, y delante del res y todo solucionado ;)
Salu2 :D
y no seria mas efeciente en el bucle poner:
for (i = 2; i < n && j == 0; i++){......}
Asi en cuanto encuentre un numero que el resto sea 0 se saldra del bucle y no tendra que pasar por todos los numeros para salir.
Hola, porque no se ejecuta el programa?
Se compila bien, sin dar errores pero al intentar abrirlo, este no se abre solo se queda el cirulo de cargando alado del cursor.
Todos lo demas programas que he hecho de estos tutoriales se abren excepto los que empece desde el tutorial anterior.
Me podrían ayudar
El codigo no es, hice un hola mundo y da lo mismo el programa no se abre
+Jesus De Los Santos no te puedo ayudar con esa informacion
para no poner un printf(0, 1) y lo haga de manera automatica aqui esta
// sucesion de fibonacii
#include
int main(){
int x,y,r,n,i;
printf("Introduce un numero para la sucesion: ");
scanf("%i",&n);
i = 1;
x = -1;
y = 1;
while(i
Para mejorar el rendimiento del programa que comprueba si un número es primo, poniendo un "break;" cuando entra en la condición cuando el resto es 0, sale del bucle en ese momento y se va a la condición para mostrar el mensaje de que el número no es primo.
Hola como estas? una pregunta como puedo guardar una sucesion de fibonacci en una arreglo por ejemplo , para realizar comparaciones por ejemplo, tengo un arreglo de Fibonacci de {0 - 50}, y quiero validad que n numero introducido por teclado pertenece a esa serie o arreglo.
Gracias de ante manos
+gustavo rangel Sigue viendo videos y lo sabrás.
Ok excelente.. SIgo en eso. muy buenos videos me has despejado muchas dudas
me parece curioso este caso si en tu programa ingresas 1 lo consderara primo y 1 no es primo pero es porque al ingresarlo el bucle for se rompe y no inicia porque i
el 1 si es primo porque los divides en 1 y en si mismo (1) y no te sobra nada.
Emilio, vuestra resolución del Bloque 3.6.c no es del todo eficiente. al principio lo hice con la sentencia do-while pero luego pensé q si uno ingresaba el 0 no debería mostrar ningún mensaje.
El código a continuación resuelve el problema de forma eficaz y eficiente.. hice el ejercicio antes de ver como lo desarrollaba, y me tomo horas hacerlo aunque suene increíble. Quiero deciros q su forma de hacer los cursos es la mejor . mediante ejercicios.Añoro un curso de html y javascript y normalizacion de bd. saludos..
#include
int main (){
int s,c,a,p,n; //s sucesión, c contador q tiende a n, a anterior, p posterior, n cantidad de sucesiones.
printf("
Ingrese un numero n:");
scanf("%i",&n);
printf("
");
c=0;
s=0;
p=1;
while (c
Mi contribución con el ejercicio numero 2.. hecho con el bucle do_while.
#include
#include
using namespace std;
int main( int argc, char *argv[]){
int n,i,rest;
printf("introduce un numero ");
scanf("%i",&n);
i=2;
do{
rest=n%i;
i++;
if(rest==0){
printf("%i No es primo",n);
}
else{
printf("%i es primo",n);
}
}while(i
DUDA!
Tal como lo hiciste no daria un vacio como dato?
Quiero decir, si el valor ingresado por teclado es 1, n=1 y diria que 1 es un numero primo lo cual es totalmente falso ya que por convenio el numero 1 no es ni primo ni compuesto.
Es correcto o no veo algo claramente?
cambiar el if donde dice j==1 y poner j==0 && n!=1 y listo.
evidentemente cambiar los printf de ese if y else
Hola Empieza a Programar estoy siguiendo tu curso y me parece muy bueno, tengo una duda no se si por la version que tengo del dev c++ 5.11 me corrige algunos datos pero te voy a copiar el codigo que hice y me funciona perfecto sin el if que agregaste, agradeceria que me informaras
#include
int main (){
int x, y, res, n, i;
printf ("Introduce un numero de terminos para la sucescion de Fibonacci: ");
scanf ("%i",&n);
i = 1;
x = 0;
y = 1;
while (i
Para poder trabajar con números grandes que lenguaje debo usar??
+Sergio Martín No tiene nada que ver el lenguaje con el valor de los números ¿?, aprende C por ejemplo, aunque si buscas un lenguaje especifico solo para matemáticas, Matlab suele ser el usado.
es decir que existen mas variables que admiten valores mayores que int y float?
Hola!, siempre intento hacer por adelantado los ejercicios a los del vídeo para ver si voy aprendiendo de verdad, y en este me ha salido algo distinto, me podrías decir si es correcto ponerlo de esta manera?:
#include
int main(){
int n,i,aux;
printf("Introduce el numero para saber si es primo ");
scanf("%i",&n);
for (i=n-1;i>1;i--){
aux=n%i;
if (aux==0) {
printf("No es primo
");
system("pause");
return 0;
}
}
printf("Es primo!!!!!!!!!!
");
system("pause");
return 0;
}
No sé si es correcto cortar el programa de esa manera, pero funcionar me funciona, saludos y gracias por los vídeos!
Tu codigo es valido, solamente que lo de cortar el bucle a medias se puede hacer, pero va en contra de los conceptos de programacion estructurada, por esa razon yo no lo enseño, si algun dia vas a estudiar la carrera de informatica y te lo ve un profesor, te ganaras un par de gritos... por mi parte haz lo que quieras, pero si no lo haces mejor...
La diferencia entre mi propuesta y la tuya, es que yo realizo el bucle hacia delante y tu hacia atras, pero esto no importa...
Sigue asi! Este problema en mis inicios me costo horrores sacarlo... asi que es buena señal que lo consigas hacer solo.
Un saludo.
El valor "Basura" importa mucho? pone lento un programa en algun momento? veo que al depurar el valor d "aux" es "aux = 2147344384" de ahi viene mi duda, pense en iniciarlo y se que en este programa no afectara porque el valor cambia al entrar al bucle pero quizas en otra ocasion si afecte, una ocasion que no imagino en estos momentos, tambien pense porque no puso los printf's dentro del bucle? o sea en vez d j = 1, pone un printf un else y otro printf y quizas hayas respondido esto antes, quizas no d la misma forma pero me da lala leer... =$
en lo de los numeros primos pueden hacer el if con el printf adentro del for de la siguiente forma
diciendo despues del printf que n=0 saliendo del for, esto va a funcionar en todos los casos ya que si ingresan 0 o 1 el contador no comienza
#include
#include
int main(){
int n,i,x;
printf("ingrese un numero para comprobar si es primo o no: ");
scanf("%i",&n);
x=0;
for(i=2;i
esta mal por que por ejemplo si metes el numero 9 daria resto distinto de 0 y daria q es primo.
Oye una pregunta: 15, 21, 25, 27, 33.... son números primos?
Hola, oye pero si ingresas el número 2 el programa dirá que no es primo pero el 2 si es primo
a mi me sale que si es primo
A mí me pasaba y era porque no inicie, j a 0
Hola! Una pequeñita pregunta, a que se debe ( sobre el primer ejercicio ) cuando escribo el numero 0 me imprime '' 0, 1, '' es confuso.
+Enmanuel Menjivar Cortez es muy sencillo, (si lo hiciste como el lo hizo) va a tener ese error¿ porque?
por que al no ser 1 no entra al if y se ejecuta el else el cuan pide que imprima por pantalla"0, 1, " ahora si no sos capas de darte cuenta de eso, analizándolo por tu cuenta la programación no es lo tullo
¿Qué te parece esta forma optimizada de saber si es primo o no?
//Determinar si un numero es primo o no.
#include
#include
int main(){
int x,raiz,i,cont=0,p;
while(p=1;i--){
if(x%raiz==0){
cont++;
}
}
if(cont>=2){
printf("El numero no es primo
");
}else{
printf("El numero es primo
");
}
cont=0;
};
}
Hola +Empieza A Programar !! He hecho el ejercicio de ver si un numero es primo y no sé si se puede decir que es un poco más eficiente puesto que he acortado a la mitad el ciclo del bucle mandando a dividir el numero n introducido por teclado hasta n/2 puesto que si tenemos un dividendo cuyo divisor sea mayor que la mitad de ese dividendo ya seguro que el resto no es 0. Por otra parte he evitado poner la variable j y para ello he "manipulado" un poco lo que sería el ciclo del bucle con el if que está dentro del bucle for. Sinceramente no sé si es correcto lo que hice, pero funcionar funciona jajaja.
Aquí te dejo el código:
/*Comprobar si un numero es primo*/
#include
int num,i,resto;
int main(void){
printf("Introduce un numero: ");
scanf("%d",&num);
for(i=2 ; i
Tu optimización de dividir por 2 no es totalmente correcta, es mas eficiente pero se puede hacer mucho más y lo comento en otro vídeo más adelante, se puede hacer raíz de 2, siendo por tanto muchas menos las vueltas que tenga que dar el bucle. En realidad saber estas cosas no es parte de la programación, es parte de un teorema matemático.
Un saludo.
Hooola, perdona no habia visto tu comentario.. Por favor puedes decirme porque no sirve ? ya voy un poco mas avanzado.. pero quisiera tener esto en claro :D
como siempre dices, puse en pause el video y lo hice hasta que me funciono. luego me parecio super mas sencillo mi forma, pero quizas no sea la mas eficiente.. a ver que dicesn.
#include
int main(){
int x;
printf("Introduce un numero: ");
scanf("%i",&x);
if ( x == 1){
printf("1 NO es un numero primo.
");
}
else if ( x % 2 == 0){
printf("%i NO es un numero primo.
",x);
}
else if ( x % 2 != 0){
printf("%i es un numero primo.
",x);
}
system("pause");
return 0;
}
saludos , y gracias por los videos.
Elys Román Gonzalez Hacerlo de esa manera esta ya muy comentado y es incorrecto, mira el resto de comentarios.
Un saludo
Empieza A Programar listo, tienes toda la razon. Nada toda repetir el bloque y hacerlo correctamente, porque de la forma en que intente dan numeros que no son primos como primo. un salu2 y gracias por la respuesta.
hola, no puedo depurar;( me sale :El proyecto no tiene informacion para depuracion. desea continuar? presiono "yes" y se me cierra DEV C++ (el programa), siendo que ya havia anadido variables de vigilancia. ayudaxd
x2
Cuando abro otro proyecto al lado por qué me sigue ejecutando el anterior? Muchas Gracias por el curso. Un saludo!
Una dudilla es necesarioa la variable j? Es decir que si se puede poner el ultimo if como condición que aux == 0
Gracias y saludos
Yo lo he resuelto de otro modo:
//Saber si un numero es primo.
#include
int main(){
int divisores = 0;
int n;
int i;
printf("Introduce un numero: ");
scanf("%d", &n);
fflush(stdin);
for (i = 1; i
Cuando introduzco un número diferente a uno me dice que no es primo, es como si el for no se estuviese ejecutando, y yo lo tengo igual que tú. Saludos
#include
int main (){
int n, i, j, aux;
printf ("Introduce un numero cualquiera: ");
scanf ("%i", &n);
j= 0;
for (i = 2 ; i < n ; i++){
aux = n % 1;
if (aux == 0){
j = 1;
}
}
if (j == 1){
printf ("%i NO es primo.
", n);
}
else {
printf ("%i ES primo.
", n);
}
system ("pause");
return 0;
}
+Hacker [DroidDeveloper] “Ángel” Tienes que verte el video del depurador, ahi podras ver el error al momento, aunque te digo una pista, si haces % 1 normal que lo tengas mal, jejeje.
Un saludo.
me puedes ayudar, me sale esta línea como mensaje, aveces se compila y aveces no, que puedo hacer para que no me pase esto. gracias de antemano.
E:\ELECTRONICA Y PROGRAMACION\desarrollo deprogramacion\c\collect2.exe [Error] ld returned 1 exit status
Andres Martinez Pues tu error creo que se debe a que tienes la consola de comandos abierta, es decir, le has dado a compilar y ejecutar y no has cerrado la ventana negra que aparece y le has dado a compilar. Cierrala y dale a compilar y ejecutar, veras como ya funciona todo bien.
Un saludo.
si ya me percate de eso pero aun asi aveces sale ese error ...bueno gracias
con método de burbuja
#include
int main(){
int n,i,x=0,y=1,z=1;
printf("Digite el numero de elementos: "); scanf("%i",&n);
printf("1 , ");
for(i=1;i
Holaaa, he optimizado el codigo del primer programa, no hay if ni else, aqui lo tienes ;)
// Hacer la serie fibonacci de n numeros.
#include
int main(){
int x, n, y, z, i;
printf ("Introduzca el numero de terminos de la serie ");
scanf ("%i" ,&n);
i = 1;
y = 1;
x = 0;
while (i
Saludos. Si deseo que se muestren los, por ejemplo, 20000 números de Fibonacci entonces¿ debería cambiar de int a float no? Gracias
Por cierto, excelente tutorial, me enganché.
Rubén Alfredo Tupayachi Latorre En la serie de Fibonacci todos los numeros, por mas grandes que sean, siempre son enteros positivos, ahora bien cuando se declara una variable como entera (int) y pides un valor tan grande de n terminos tales que sobrepasen el limite de (int), debes agregarle un atributo al declarar el entero, por ejemplo (long) y a la hora de agregar el tipo simplemente pones %li , agregandole el atributo al tipo.
Si me equivoco, por favor, diganmelo para aprender tambien.
Creo que de esta forma es más eficiente, ya que el bucle for solo lo ejecutas hasta la raiz cuadrada, disminuyendo las operaciones que tiene que ejecutar la cpu.
#include
#include
int main(){
int n,i,r;
printf("Indique el numero que desea saber si es primo: ");
scanf("%i",&n);
for(i=2;i
Con el programa de la suseción de Fibonacci, lo entendí diferente, creí que se ingresaba un valor por teclado, y se debían mostrar todos los números de la suseción hasta el número ingresado (si n=8 -> 0, 1, 1, 2, 3, 5, 8):
#include
int main (){
int x, a, b, nuevo;
a=0;
b=1;
printf("Ingrese un numero maximo para la susecion de Fibonacci: ");
scanf("%i",&x);
do{
nuevo=a;
printf("%i, ",nuevo);
a=b;
b=a+nuevo;
}while(x>=a);
printf("
");
system ("pause");
return 0;
}
Tambien logre hacer un programa mas eficiente para el segundo ejercicio:
//Bloque 3.6.2
//Realizar un programa que verifique si un numero es primo.
#include
int main(){
int x, res, i;
printf("Introduce el numero para verificar si es primo: ");
scanf("%i",&x);
i = 2;
while(i < x){
res = x % i;
if(res == 0){
printf("
El numero %i no es primo.",x);
return 0;
}
i++;
}
printf("
El numero %i es primo.",x);
return 0;
}
i = 1;
x = 0;
y = 1;
i = 1;
res = 0;
printf("Cuantos numerod : ");
scanf("%i",&n);
while(i
El de los numeros primos lo hice asi:
#include
main(){
int num;
printf("Introduzca su numero: ");
scanf("%d",&num);
if(num == 2 || num == 3 || num == 5 || num == 7){
printf("Su numero es primo
");
}
else if(num%2 == 0 || num%3 == 0 || num%5 == 0 || num%7 == 0){
printf("Su numero no es primo
");
}
else{
printf("Su numero es primo
");
}
system("pause");
return 0;
}
claro, porque solo hay 4 numeros primos, no es que halla infinitos ....
AAAARRRGGGG esta mierda es buenaa :D
Porque esto no funciona?
#include
int main()
{
int x,y;
float z;
y=1;
printf("Introduce un número y te digo si es primo:");
scanf("%i",&x);
do{
y++;
z=x%y;
if(z==0 || x==0){printf("No es primo.");}
}while(y
cuando incerto 9 en lo de los numeros primos no me da el resultado:
//Hola
#include
int main () {
int n,i,j, aux;
j = 0;
printf ("Introduzca un numero");
scanf ("%i",&n);
for (i = 2; i < n; i++) {
aux = n % i;
if (aux == 0) {
j = 1;
}
}
if (j == 1) {
printf (" el %i No es primo",n);
}
else {
printf ("el %i ES PRIMO",n);
}
system ("pause");
return 0;
}
Y por que no utilizas el depurador para buscar tu fallo?
Empieza A Programar no me sirve el depurador me dice que "el proyecto no tiene información para depuración ¿Desea activar
Y que ocurre si le dices que si?
Empieza A Programar se queda pegado ,da error y me saca del programa
Para solucionar ese error ve a herramientas--> Opciones del compilador --> configuaracion--> linker (esta casi al final) --> y acitivas la opcion de "Generar informacion de debug".
Hola el de número primo lo hice utilizando una bandera:
//Bloque 3.6b: Ejercicios Fibonacci y comprobar si un número es primo
//Realiza un programa en C que calcule el fibonacci hasta el termino n introducido por teclado.
#include
int main(){
int n, x, i, res, bandera;
printf("Bloque 3.6b: Comprobar si un numero es primo
");
printf("Introduce un numero positivo mayor que 2:
");
scanf("%i", &n);
printf("
");
x = 2;
bandera = 0;
if(n
+Guillermo Camarena WTF SO USELESS
La sucesion de fibonacci mas sencillo
#include
// 0 1 1 2 3 5 8 13 21
int main()
{
float a,b,c;
a = 0;
b = 1;
printf("0
");
printf("1
");
while(a