Bloque 5.3: Vectores con punteros y Ejemplo

  Рет қаралды 101,790

Empieza A Programar

Empieza A Programar

Күн бұрын

Пікірлер: 161
@sasosan2428
@sasosan2428 8 жыл бұрын
me han servido mucho tus videos, me he quitado el ADBlock y lo posteo por si alguien gusta hacerlo
@TheMarrioser
@TheMarrioser 7 жыл бұрын
Yo hice lo mismo, pero para todo youtube, es una forma de agradecerlo. Pero igualmente doné un poquito, porque me pareció muy amable y muy útil el canal. Lo digo por si alguien se anima también y así que vea que tiene apoyo y continúe con su canal
@adrifreeskate3289
@adrifreeskate3289 7 жыл бұрын
Son geniales los vídeos, lo único que he echado de menos es un tutorial (que no se si lo habrá más adelante) en el que expliques los errores que da al compilar, como los llama y a que se suelen deber. Así en vez de buscar las diferencias entre el tutorial y mi código podría intentar ver cual es el fallo. Mil gracias! Eres un crack
@Jairolooo
@Jairolooo 10 жыл бұрын
Me ha encantado el video, aunque estos 2 o 3 últimos vídeos si que los tendré que repasar porque lo de los vectores aunque comprendo más o menos cómo funcionan no lo he asimilado del todo, son muchas cosas nuevas. Gracias por los vídeos.
@redl1ner170
@redl1ner170 8 жыл бұрын
Resumen de este video: vec[i] es lo mismo que *(vec+i). Y el nombre de un vector solo, sin corchetes ni nada, no es más que un puntero a la primera posición del vector.
@joserobertoherreracuriel2054
@joserobertoherreracuriel2054 8 жыл бұрын
Oye tu muy bien, ya había visto dos veces el video y no entendía, hasta que leí tu bendito comentario.
@Kazzoi1
@Kazzoi1 7 жыл бұрын
ole tu te quiero!
@enzo7400
@enzo7400 6 жыл бұрын
Exacto ! Saber que un vector en realidad es un puntero que tiene almacenada la direccion de memoria del primer elemento del vector y que justamente apunta a ese elemento, aclara varias dudas. Para acceder al segundo elemento, avanzas una posicion de memoria, por eso el *(vec+1) que dice: a lo que apunta vec+1. O en el caso del for: *(vec+i).
@TheOrphanHatesYou
@TheOrphanHatesYou 5 жыл бұрын
Y si quiero guardar un nuevo valor en la misma posición de memoria dentro de una función? Puedo guardar una tabla en la misma variable, pero si intento que mantenga la dirección en la memoria me pone mal uno de los valores int
@isailopezmartinez8434
@isailopezmartinez8434 4 жыл бұрын
Más sencillo, todos los vectores o arreglos son en si apuntadores., pero se pueden reescribir como un puntero o apuntador
@Camila-do8ot
@Camila-do8ot Жыл бұрын
me exploto un pcoo le cerebro pero re contra aprendii mil gracias
@Anynomuos74648
@Anynomuos74648 9 жыл бұрын
He estado probando y creo que resulta más sencillo poner esto en la parte del sorteo, al menos a mí me ha funcionado, lo pego: void loteria (int *v){ int i,dado; for (i=1;i
@germantoobe
@germantoobe 3 жыл бұрын
Exelentes explicaciónes, gracias y saludos.
@santiagoinigo5045
@santiagoinigo5045 10 жыл бұрын
El video, como todos está muy bien. En el ejemplo del dado sobra el "case", porque siempre la operación es la misma *(vec+aux)++ o lo que es lo mismo *(vec+aux)=*(vec+aux)+1
@josuebracho4529
@josuebracho4529 Жыл бұрын
Eso pense yo tambien, pero si pongo *(vec+aux)++ da error, tiene que ser *(vec+aux)+=1
@antoniollaguno2357
@antoniollaguno2357 4 жыл бұрын
exelentes clases de programacion en C++
@EmpiezaAProgramar
@EmpiezaAProgramar 4 жыл бұрын
Gracias! Aunque recuerda que no es C++, sino C lo que enseño :D
@demorootmail673
@demorootmail673 7 жыл бұрын
Solo que no era necesario hacer un swich bastaba con solo *(vec+aux)++; asi es mas corto y eficiente
@EvaristeG10
@EvaristeG10 4 жыл бұрын
No funciona con ++, debes poner +=1
@juansimonmerlo6854
@juansimonmerlo6854 4 жыл бұрын
@@EvaristeG10 hola, podrías explicarme por qué no funciona con ++?
@jorgerosas6037
@jorgerosas6037 3 жыл бұрын
Exacto..
@Kazzoi1
@Kazzoi1 7 жыл бұрын
como consejo para la gente que este ultimo tema le queda un poco nublado yo me he olvidado de usar los vectores de esta forma y los uso como en el video anterior, por que es la manera que los entiendo perfectamente y total es lo mismo
@neurosp
@neurosp 3 жыл бұрын
Gracias por los punteros , estoy en un curso y lo explican cómo el culo
@cesargamboa13
@cesargamboa13 6 жыл бұрын
/* ********************** Hola amigo, excelente video, creo que el switch no es necesario, aqui esta el codigo de mi version funcionando para el que lo quiera ver ya que algunos comentan que no anda sin el switch. Gracias por hacer tan excelentes videos. ********************** Bloque 05.03.02; Calcular la probabilidad de que salga cada uno de los numeros de un dado de 6 lados usando punteros. Calcular 10000 iteracciones Version de César Gamboa */ #include void funcLanzarDado(int v[6]); void funcLeerResultados(int v[6]); int main() { int vVector01[]={1,2,3,4,5,6}; //Se va a usar como un contador, cada resultado del dado se le va a sumar 1 a la parte correspondiente funcLanzarDado(vVector01); // Se llama a la funcion de lanzar dado con el vector como parametro funcLeerResultados(vVector01); system("pause"); return 0; } void funcLanzarDado(int *v) //Se recibe el vector como parametro peo como se va a tratar con punteros se define con el simbolo '*' { //Se crea un numero aleatorio //Se crea una semilla para captar un numero largo aleatorio int aux; srand(time(NULL)); int i; for(i=0;i
@zalebu
@zalebu 6 жыл бұрын
¿Porqué en el segundo programa, minuto 6:41, imprime salto de linea si en el código no se puso ?
@ZUK-DT-em4wf
@ZUK-DT-em4wf 6 жыл бұрын
Con lo que me ha enseñado a través de sus vídeos y aprendido de Internet estoy haciendo un juego de batallas por turnos, y lo que quiero lograr es que si un golpe es seleccionado, el rango de daño en la vida sea de entre 10 y 20. A base de mi escasa creatividad he hecho lo siguiente. //Número aleatorio. #include int main (){ int x; int i; srand (time(NULL)); x = rand () % 20; for (i=0;i=0&&x=10&&x
@lilviper7607
@lilviper7607 3 жыл бұрын
Yo tuve que utilizar las bibliotecas stdlib.h , time.h porque me decia que time, rand y srand no estaban declaradas, usando solo stdio.h
@santiagozenteno3052
@santiagozenteno3052 Жыл бұрын
Gracias bro me ayudaste 😉
@Julianes_code
@Julianes_code 8 жыл бұрын
que pasa si no usas el condicional switch, es decir a mi parecer no hace falta ya que el numero que arroje la variable aux no va a cambiar mientras el bucle no de otra vuelta, asi que simplemente se le sumara uno a la posicion del vector.
@jorgeandrescordobamedina8009
@jorgeandrescordobamedina8009 9 жыл бұрын
¿podrías hacer ejemplos donde el usuario ingrese el tamaño de la longitud del vector? me seria de mucha ayuda gracias! espero me puedas responder si si o si no.
@Anesar93
@Anesar93 4 жыл бұрын
Alguien sabe por que me da error de invalid initializer in function main?
@SUPERKMB1997
@SUPERKMB1997 7 жыл бұрын
Disculpe la molestia, no comprendo el porque se utilizan punteros si de todas maneras al modificar los valores de un vector en una funcion los valores se quedan modificados en la funcion main, me explico, hice un programa en el cual cree un vector y le meti como valores el 1,2 y el 3, ademas cree una funcion (llamada fun) en la cual a ese vector se le suma un 5, quedando los valores del vector como 6, 7 y 8, luego imprimi los valores del vector en la funcion fun y me imprimio 6,7,8 luego imprimi los valores del vector fuera de la funcion fun y me sigue dando 6, 7 y 8. No se supone que los punteros son para "extraer" mas de un solo valor de variables utilizadas en una funcion?, entonces si el vector conserva los valores que se le asignaron en la funcion fun , entonces para que se usan los punteros?.
@lumnt6042
@lumnt6042 10 жыл бұрын
¡Excelente!
@cesarwadskier9217
@cesarwadskier9217 8 жыл бұрын
hola como hago para imprimir en que posicion del vector se encuentra un numero ya guardado
@luisllorensmompo
@luisllorensmompo 3 жыл бұрын
¿Es preciso el switch? Si quisiera hacerlo con los números de la Loto o del bingo serían muchos case y el código sería larguísimo.
@Rafael-ix2rk
@Rafael-ix2rk 9 жыл бұрын
eres un fiera
@MrGrapas
@MrGrapas 3 жыл бұрын
cuando sacaste el curso tenía 10 años jaja, y aquí me tienes
@Cris-ru3st
@Cris-ru3st 4 жыл бұрын
gracias por el video :) logre entenderlo solo me falto las librerias xd
@hamblinperez3386
@hamblinperez3386 9 жыл бұрын
Hola solo tengo una duda se pueden hacer comparaciones entre vectores y matrices y que imprima una matriz resultante sin duplicados ??
@RodrigoSantos-ou9oh
@RodrigoSantos-ou9oh 10 жыл бұрын
se podria hacer este mismo ejercicio con vectores. pero sin usar punteros?
@EmpiezaAProgramar
@EmpiezaAProgramar 10 жыл бұрын
Rodrigo Santos Buenas, pues a partir de ahora cuando tengas una duda del tipo, ¿Se podria hacer de tal manera? Lo que tienes que hacer es probarlo, asi es como se aprende a programar de verdad, asi que adelante, prueba y saca tus propias conclusiones y luego, si quieres, puedes compartirlas aqui. Un saludo y a seguir aprendiendo!
@heroe2214
@heroe2214 8 жыл бұрын
Hola ante todo queria agradecer sus videos tutoriales, estan muy pero muy bien explicados, realmente con usted estoy aprendiendo mucho. Tengo una duda, ojala usted tenga tiempo y me la responda: Sino me equivoco en el video anterior, usted dijo que los punteros no hacen falta en los vectores, ya que cuando se le pasa como argumento un vector a una funcion, ésta modifica el vector original, o sea no crea una nueva variable en memoria, entonces me surge la duda de por que en este video, se usan punteros en vectores. De vuelta muchas gracias y perdon por el comentario tan largo
@iNrelevante
@iNrelevante 10 жыл бұрын
Tengo una duda: Tanto en el printf del segundo ejemplo como en el scanf a la hora de referirte al vector lo pones entre paréntesis ,*(vec+i)), he probado sin los paréntesis y no cambia nada. ,*vec+i); Me puedes explicar si los paréntesis responden a algún tipo de función o simplemente los pones para aclarar que dentro hay una suma? Gracias.
@enzo7400
@enzo7400 6 жыл бұрын
Mmm no se a que te referis que no cambia en nada. Yo lo veo asi: si haces un printf de *(vec+i) se mostrara el elemento de la primera posicion+i. Por ejemplo si vec={1,5,7} e i=2 se mostrara el 7. Por el contrario si haces printf de *vec+i yo pienso que el * solo afecta a vec, por ende, siguiendo el ejenplo anterior, se mostrara la suma del primer elemento del vector ( ya que *vec significa: a lo que apunta vec, y justamente vec es un puntero que tiene almacenada la posicion de memoria del primer elemento del vector) más i, entonces queda: 1+2=3.
@darske1
@darske1 8 жыл бұрын
Totalmente innecesario ese switch, si en todos los casos hace lo mismo, hubiera bastado con poner *(vec+aux)+=1; Así se ahorraban un montón de líneas de código y tiempo en comparaciones. Igualmente muy buen trabajo, muy bien explicado todo :)
@yeraipros5
@yeraipros5 8 жыл бұрын
No entiendo muy bien para que ponemos el switch, cuando en todas las situaciones se lleva acabo la misma función, he probado a hacerlo sin el switch y da el mismo resultado, así que para que sirve el switch en este caso?
@sasosan2428
@sasosan2428 8 жыл бұрын
+yerai pros el switch se puede omitir
@yeraipros5
@yeraipros5 8 жыл бұрын
+Saso San entoces para que lo pone?
@sasosan2428
@sasosan2428 8 жыл бұрын
+yerai pros pues supongo yo que porque son ejercicios de aprendizaje, no necesariamente optimizados y pues si eres principiante de paso prácticas switch .. no creo que muchos se den cuenta de que se puede omitir el switch ya que estamos concentrados en los punteros y operaciones
@rauleduardocruzperez7270
@rauleduardocruzperez7270 10 жыл бұрын
Hola que tal, una duda o más bien pregunta, *(vec+i) equivale a ¿ vec[i] ? lo hize de las 2 formas y al parecer me sale lo mismo, supongo solamente es para ver el funcionamiento con punteros ¿cierto?
@EmpiezaAProgramar
@EmpiezaAProgramar 10 жыл бұрын
Raúl Crüez Tienes que volver a verte el video, creo que ahi se explica lo suficientemente bien como para que te quede claro. Un saludo.
@laloespino240
@laloespino240 9 жыл бұрын
Turn down for what!
@FranXcoT
@FranXcoT 9 жыл бұрын
En que video explicas lo de punteros en funciones? Este es el segundo video que veo de punteros y lo das por entendido, en todo caso, mi duda es en scanf, por que hay que poner vec+i???
@EmpiezaAProgramar
@EmpiezaAProgramar 9 жыл бұрын
+Franco Taborda Lo mejor es no preguntarlo y buscarlo tu mismo, cada vídeo tiene un titulo y una descripción, por lo que lo podrás ver fácilmente. Aquí tienes la lista de reproducción con todos los vídeos: kzbin.info/aero/PLw8RQJQ8K1ySN6bVHYEpDoh-CKVkL_uOF Un saludo.
@FranXcoT
@FranXcoT 9 жыл бұрын
+Empieza A Programar Vi desde el primer vídeo de punteros hasta este vídeo y en ningún lugar dices el porque de lo que te pregunto, lo único que aclaras es que normalmente se pone la posición del elemento que se quiere reemplazar adentro de los corchetes.
@ignaciosebastian88
@ignaciosebastian88 6 жыл бұрын
si pones (vec+i) hace referencia a la direccion de memoria no?. en el caso de ponerle * es el dato que le asignaste a ese puntero?. PD: hace falta poner la libreria #include ?.
@keinmaster
@keinmaster 4 жыл бұрын
También en mi caso tuve que agregar la librería #include
9 жыл бұрын
En el caso anterior usted hacía un llamado a la la función con punteros de esta forma: imprimir(&vec); y declaraba la función con punteros así: int imprimir(int *a){}; Y yo entendía que el a=&vec. Pero ahora veo que es igual pero en vez de poner el &vec al declarar en el main la función,solo le pone "vec". Quisiera despejar esa duda...
@hernianbedac5804
@hernianbedac5804 7 жыл бұрын
Hola Emilio, te hago una consulta: tengo un problema que me impide avanzar con los vectores, no puedo hacer los ejercicios por mi cuenta ya que me tira un error al compilar. #include int main(){ int i; int vec[] = (1,2,3); for (i=0 ; i
@EmpiezaAProgramar
@EmpiezaAProgramar 7 жыл бұрын
El problema es que no se inicializan los vectores con paréntesis "(", sino con llaves "{". Un saludo.
@davidcandelaruze
@davidcandelaruze 6 жыл бұрын
int vec[] = {1,2,3} //tu pusiste (1,2,3)
@Juankam
@Juankam 7 жыл бұрын
hola Emilio, tengo una duda, es que en el ejemplo 2 de este video lo intente realizar solo, pero siempre que lo ejecuto me sale algún valor negativo, pero no se si es normal, y muchas gracias he aprendido bastante con tus videos, mira esto es lo que he echo: //calcular la probabilidad de que un numero salga en un dado con un vector en 10000 tiros #include void probabilidad(int *vector); void leer(int*vector); int main (){ int vector[]={0,0,0,0,0,0}; probabilidad(vector); leer(vector); } void probabilidad (int*vector){ srand(time(NULL)); //es para sacar numeros aleatorios int i,a; for(i=0;i
@martinmacola6256
@martinmacola6256 8 жыл бұрын
GENIO!
@carlaberard1203
@carlaberard1203 2 жыл бұрын
Buenas, tengo una duda: porqué no se le pone el "&" antes de (vec+i)?
@alexxljj1610
@alexxljj1610 2 ай бұрын
4:30
@elarcademan
@elarcademan 9 жыл бұрын
Hola muy buenas exelente video este cada vez aprendo mas e tenido un problemilla con srand y es que estoy en linux y parece que se utiliza de otra forma lo buscare en google pero si saves cual es te agradeceria que me lo digeces asi no boy dando tumbos por hay jejeje muchas gracias un saludo.
@benko-pi1fi
@benko-pi1fi 9 жыл бұрын
EXCELENTE
@diyarbakirvasquezsilva3747
@diyarbakirvasquezsilva3747 10 жыл бұрын
hola, como seria verificar si un dato existe en un vector y mostrar su posición?
@EmpiezaAProgramar
@EmpiezaAProgramar 10 жыл бұрын
Diyar Bakir Vásquez Silva Pues para eso, tendras que pensarlo tu mismo, si te ves todos los videos de vectores se te ocurrira, ya que es realmente sencillo, pero la gracia de la programacion es pensar en como usar una herramient (C en este caso), no lo contrario. Un saludo.
@diyarbakirvasquezsilva3747
@diyarbakirvasquezsilva3747 10 жыл бұрын
Empieza A Programar lo intenté así #include int main(){ int x, i, a[5]= {9,8,7,5,3}; printf ("indique la posicion del dato q desea ver: "); scanf("%i", &x); for(i = 0 ; i< 5; i++){ } if(x== a[i]){ printf("el %i esta en posicion %i", x, a[i]); } else{ printf("%i no existe en la lista ", x); } system("pause"); return 0; } no obstante no ocurre lo que busco
@andersonloaiza9622
@andersonloaiza9622 10 жыл бұрын
Diyar Bakir Vásquez Silva amigo como estas, voy en este video aprendiendo a programar, no se si todavia tengas esta duda igual te dare mis dos posibles soluciones: Si lo que quieres es dar una posicion del vector y saber que valor tiene, esta este programa: #include int main(){ int x, i, a[5]= {9,8,7,5,3}; printf ("indique la posicion del dato q desea ver: "); scanf("%i", &x); printf ("el numero en la posicion %i es: %i ",x,a[x]); system("pause"); return 0; } y el otro ejercicio es saber si un dato existe en un vector y en que posicion esta, hice este programa: #include int main(){ int y, i, a[5]= {9,8,7,5,3}; printf ("introduce un numero para y: "); scanf ("%i", &y); for (i = 0 ; i < 5 ; i++){ //printf ("%i, ",a[i]); if (y == a[i]){ printf ("el numero %i introducido para Y si existe y es el numero %i y esta en la posicion %i ",y,a[i],i); } } system("pause"); return 0; }
@the_radio_deer
@the_radio_deer 10 жыл бұрын
haciendo el mismo codigo ktu me da un error, el numero generado por rand no cambia y me el 100% uno de los numeros.
@EmpiezaAProgramar
@EmpiezaAProgramar 10 жыл бұрын
Si aun sigue el error pon aqui el codigo, algo debes de tener mal. Un saludo.
@the_radio_deer
@the_radio_deer 10 жыл бұрын
Gracias, pero ya lo sulocione. :)
@Kazzoi1
@Kazzoi1 7 жыл бұрын
uf he notado un salto de dificultad bastante grande en la linea de aprendizaje que llevavamos hasta aqui jeje
@Kazzoi1
@Kazzoi1 7 жыл бұрын
es curioso lo dificil que es hacer tu trabajo por que en un solo video le dejas claro a todo el mundo como funcionan las cosas y no suele haber preguntas como pasaria en cualquier clase expuesta presencialmente eso pocos profesores del mundo lo logran
@firecode5276
@firecode5276 7 жыл бұрын
no me sirve la función srand (time(NULL)); hay otra opción que se lo mismo?
@10meloalan
@10meloalan 7 жыл бұрын
talvez a esta altura no te sirva pero debes poner otra libreria #include
@roisdelythgonzalez4159
@roisdelythgonzalez4159 7 жыл бұрын
tengo el mismo problema pero yo ya agregué la libreta stdlib
@jorgearroyogonzalez9088
@jorgearroyogonzalez9088 7 жыл бұрын
#include #include
@TheSebascasta
@TheSebascasta 8 жыл бұрын
existe algun problema si opto por nunca usar los punteros?. pq en serio que no entiendo como se usan :/
@juancarlosrelloso1302
@juancarlosrelloso1302 3 жыл бұрын
Hola porque no lo haces que sea real los números aleatorios del 1 al 6 en vez del 0 al 5. Muchas gracias (eres muy bueno, me gustan tus videos un montón)
@leonorrobledo8873
@leonorrobledo8873 8 жыл бұрын
hola", yo tengo esto así, pero no sale, ya cambie mil veces las cosas y sigue marcándome errores, que hago? #include #include #include #include float EDO(float y[],float dydx[]); // prototipo int main(){ float *x,y[10],x0,xf,y0[10],dydx[10],h; int i,N, Neq; FILE *Archivo; Archivo = fopen ("Resultados.txt", "w"); Neq=10; scanf("%i",&N); x= (float*)malloc(N*sizeof(float)); x0=(float*)malloc(N*sizeof(float)); xf= (float*)malloc(N*sizeof(float)); x0=0.0; //Valor inicial de la variable independiente xf=10.0; y0[0]=0.0; //Valor inicial de la variable dependiente y0[1]=0.0; y0[2]=0.0; me dice que tengo tipos incompatibles con float
@robeabraham365
@robeabraham365 10 жыл бұрын
Exelente!!
@dooby777777777777
@dooby777777777777 9 жыл бұрын
He hecho el segundo problema pero sin punteros, ya que me parece mucho más sencillo y me ha permitido ahorrarme código. #include void dado (int a[]); void leer (int a[]); int main () { int v[6] = {0,0,0,0,0,0}; dado (v); leer (v); system ("pause"); return 0; } void dado (int a[]){ srand (time(NULL)); int i,aux; for (i=0;i
@Parra116
@Parra116 Жыл бұрын
Pero como yo hago para disminuir la cargar del vector ?
@facebookwhatsapp2155
@facebookwhatsapp2155 8 жыл бұрын
el uso de los punteros para no ocupar mucha memoria verdad? con eso se optimiza el trabajo
@EmpiezaAProgramar
@EmpiezaAProgramar 8 жыл бұрын
Entre otras cosas, es para no ocupar mucha memoria, exactamente, si tienes una cosa en memoria y lo puedes usar desde varios lugares diferentes (por ejemplo varias funciones diferentes), te ahorras tenerlo de forma repetida, por lo que ahorra memoria y tiempo de volver a crearlo. Un saludo.
@DanielGonzalez-uz7ki
@DanielGonzalez-uz7ki 9 жыл бұрын
tienes algún tutorial de como hacer números aleatorios sin repetirse ?
@110SEBA15
@110SEBA15 9 жыл бұрын
+Daniel Gonzalez La unica forma que se me ocurre a mi. Es ir guardando los aleatorios en un vector. y compara si todos los elementos guardados que tiene el vector son distintos al nuevo numero generado. si es asi, que guarde. Sino que de otra vuelta.
@mroscardd57
@mroscardd57 8 жыл бұрын
Hola! He intentado hacer el ejercicio del algoritmo de la probabilidad introduciendo el numero de iteraciones como parametro de entrada "n", una vez sustituidos los "10000" por "n", cuando lo sustituyo en la variable "x" de probabilidad me da error , ya ponga el punto en el numerador o en el denominador, ¿A alguien se le ocurre que sucede?
@jesusrubio1633
@jesusrubio1633 7 жыл бұрын
El switch ese no nos vale para mucho realmente, no? Al fin y al cabo siempre hará *(vec+aux)++, por lo que no nos hace falta una estructura selectiva (como seria el switch).
@elarcademan
@elarcademan 9 жыл бұрын
ni te preocupes ya lo e resuelto 1 necesitaba otras librerias 2 no abia declarado como flotante la variable disculpa la molestia sigo practicando jejeje...
@RaicitoxD
@RaicitoxD 7 жыл бұрын
Tengo un serio problema aunque creo que probablemente sea un bug de la versión ya que ami los floats desde que empece no me dan decimales, me dan los números exactos continuados de un punto y ceros ej: 17.00000 no me da decimales, a lo mejor alguien sabe como solucionarlo, gracias de antemano !
@saulaxel
@saulaxel 7 жыл бұрын
r1nx casi seguro que han sido errores de conversión por hacer operaciones con enteros y guardarlos en floats. El error no de versión sino tuyo.
@Javi11Cc
@Javi11Cc 10 жыл бұрын
Buenas a todos, tengo una duda. Por qué usamos en el ejercicio del dado los punteros? Por ejemplo en esta parte del código pongo el puntero en case4 y no lo pongo en case5 y me compila igual y se ejecuta igual case 4:{ *(v+aux)+=1; break; } case 5:{ v[aux]+=1; break; } Gracias de antemano
@EmpiezaAProgramar
@EmpiezaAProgramar 10 жыл бұрын
JaviCc Vaya, me has hecho ver mi propio video (lo cual resulta raro), en el minuto 0:40 aproximadamente explico de que va el video y lo que digo es que voy a enseñar una nueva forma para acceder a los datos de un vector... es decir, que son iguales ambas formas, por supuesto. Te pediría que en el futuro antes de postear te vieras un par de veces los videos si tienes dudas porque realmente lo suelo explicar casi todo y tras un año y pico, lo que no esta en los videos suele estar en los comentarios del mismo ya contestado. En el caso de que tu duda no este explicada en el video o en los comentarios, sera un placer responderte! Un saludo :D.
@Javi11Cc
@Javi11Cc 10 жыл бұрын
Muchísimas gracias! Lo haré así ^^
@FaculocoDj
@FaculocoDj 8 жыл бұрын
Uso el programa Zinjai y copie este codigo: #include #include #include int main(){ int i; int vec[]=(1,2,3); for (i=0;i
@juanpablomuccillidemaria8167
@juanpablomuccillidemaria8167 4 жыл бұрын
Prócer del universo
@eaomorsa
@eaomorsa 6 жыл бұрын
Emilio: Para calcular la probabilidad solo hay que dividir total de éxitos entre total de eventos.
@TukaPlay
@TukaPlay 8 жыл бұрын
yo lo había hecho todo en una misma función. int main (){ int i; int vec[10]; for (i = 0; i < 3; i++){ printf (" Introduce un valor para la posicion %i del vector: ",i); scanf ("%i",(vec+i)); } i = 0; for (i = 0; i < 3; i++){ printf ("%i ",*(vec+i)); } system ("pause"); return 0; }
@paolahinostroza6659
@paolahinostroza6659 8 жыл бұрын
acá me perdí :(
@angeltavarez3180
@angeltavarez3180 9 жыл бұрын
se me habia olvidado el twich cuando me puse a hacerlo xD
@ermitoba7620
@ermitoba7620 7 жыл бұрын
Hola, en el primer ejemplo que pones, a mí solamente me imprime el segundo número, lo he repasado 20 veces y he usado el depurador, y no encuentro la solución. Alguien me puede ayudar? #include void funcion (int *vec); void imprimir (int *vec); int main(){ int vec[3]; funcion (vec); imprimir (vec); system ("pause"); return 0; } void funcion (int *vec){ int i; for (i = 0 ; i < 3 ; i++){ printf ("Introduce un valor para la posicion %i: ",i+1); scanf ("%i", (vec+i)); } } void imprimir (int *vec){ int i; for (i = 0 ; i < 3 ; i++){ printf ("%i ",*(vec+1)); } }
@mauricioalejandro2938
@mauricioalejandro2938 4 жыл бұрын
En tu función de imprimir, tienes *(vec+1), en lugar de *(vec+i)
@chavakseya
@chavakseya 9 жыл бұрын
en los ejemplos que salen al principio del video del vec [] = 1,2,3 me imprime solamente el 2; en el siguiente ejemplo me imprime solamente el 8 tengo la vercion mas reciente de dev c++ con el TDM-GCC (pense que tenia que ver con el compilador) y descarge a la vercion que esta e el video con el compilador Mingw e imprime lo mismo ("guarde con nom_archivo.c")
@EmpiezaAProgramar
@EmpiezaAProgramar 9 жыл бұрын
andrew Osorio Dale al cuarto boton, el de rebuild o reconstruir todo y seguro que no habra problema. Tambien ten en cuenta que estes leyendo bien el vector. Un saludo.
@danielvr746
@danielvr746 9 жыл бұрын
andrew Osorio lo que te pasa es que cuando debes poner printf("%i, ", *(v + i)); y en vez de eso tu le sumas uno en vez de la letra i
@bydocexx7867
@bydocexx7867 8 жыл бұрын
que tengo mal? me salen infinitos numeros #include void funcion (int *vec); void leer (int *vec); int main () { int vec [3]; funcion (vec); leer (vec); system ("Pause"); return 0; } void funcion (int *vec) { int i; for (i = 0; i < 3; i++) { printf ("Introduce valor para la posicion %i: ", i+1); scanf ("%i", (vec +i)); } } void leer (int *vec) { int i; for (i = 0; 1 < 3; i++) { printf ("%i ", *(vec +1)); } }
@EmpiezaAProgramar
@EmpiezaAProgramar 8 жыл бұрын
Te recomiendo que utilices el depurador en este tipo de casos en vez de preguntar, suele ser mucho mas rapido e instructivo. Un saludo.
@cosck
@cosck 7 жыл бұрын
no era necesario el switch (aux)con solo poner *(vec+aux) +=1; en un solo renglón era suficiente.
@Kazzoi1
@Kazzoi1 7 жыл бұрын
supongo que lo hizo para que la gente recordara el switch ya que hace muchos videos que no a puesto un ejemplo!
@jorgeb2789
@jorgeb2789 7 жыл бұрын
Para que haces el swich si todos llevan la misma sentencia, no es inutil?
@bubbango
@bubbango 8 жыл бұрын
Hola a todos. ¿Podrían ayudarme en una duda que me surgió? Mi duda es que si puedes poner el "case" en un bucle, en un switch. Saludos, gracias. #include void operation (int *v, int *n); void imprimir (int *v, int *n); int main (){ int n; printf ("Introduce de cuantos numeros estamos parlando y te daré la probabilidad: "); scanf ("%i", &n); int v [n]; operation (v, n); imprimir (v, n); system ("pause"); return 0; } void operation (int *v, int *n){ srand (time(NULL)); int i, aux, j; for (i = 0 ; i < 10000; i++){ aux = rand ()%*n; switch (aux){ /*AQUIII+/ for (j = 0 ; j < *n ; j++){ /*AQUIII+/ case 0 + j: { /*AQUIII+/ *(v+aux) += 1; /*AQUIII+/ break; /*AQUIII+/ } } } } } void imprimir (int *v, int *n){ int i; float x; for (i = 0; i < *n ; i++){ x = (*(v)*100) / 10000; printf ("La probabilidad de que el numero %i salga es de: %f. ",i+1, x); } printf (" "); }
@harlesepc5906
@harlesepc5906 2 жыл бұрын
Lastima que no tuvo en cuenta el zoom...las letras salen muy pequeñas.
@isailopezmartinez8434
@isailopezmartinez8434 4 жыл бұрын
En las partes importantes de explicación y dudas acentúas mucho la s y no entiendo :,c.
@2222agustin
@2222agustin 8 жыл бұрын
me sale esto: warning: implicit declaration of function 'time' [-Wimplicit-function-declaration] error: expected ';' before numeric constant
@2222agustin
@2222agustin 8 жыл бұрын
USO CODE BLOCKS
@2222agustin
@2222agustin 8 жыл бұрын
YA ESTA me falto el #include
@redl1ner170
@redl1ner170 9 жыл бұрын
A mi entender la estructura switch no hace falta....
@dooby777777777777
@dooby777777777777 9 жыл бұрын
+ngoeslink Eso pensé yo, pero lo intente hacer y me daba problemas así que lo he hecho sin punteros. Lo acabo de poner en un comentario por si te interesa.
@Julianes_code
@Julianes_code 8 жыл бұрын
+ngoeslink es verdad no hace falta, creeria yo que seria mas eficiente por que el programa no tendria que entrar en los condicionales.
@jesusrubio1633
@jesusrubio1633 7 жыл бұрын
+LuisG Que bonito encontrarte en un comentario de youtube jajaja. Yo no usé el switch ni en notación puntero ni en vector y me iba de perlas
@flatolingo
@flatolingo 5 жыл бұрын
Tengo una duda técnica, ¿porque hacemos todo el rato (vec+1) si el direccionamiento es a nivel de byte y un "integer" son 2 bytes (16 bits)? si haces +1 te vas al siguiente byte que no coincide con el principio del siguiente entero. (Esto si ocurre con los "char" ya que ocupan 1 byte cada carácter en memoria)
@kevinmaciel3409
@kevinmaciel3409 2 жыл бұрын
Porque el puntero sabe a que tipo de dato esta apuntando, por lo cual al sumarle 1 se mueve a la siguiente direccion teniendo en cuenta el tipo de dato del puntero
@NicboChetaIiI
@NicboChetaIiI 3 жыл бұрын
alguien me explica por que no funciona mi codigo? #include #include #include #include void sorteo (int *vec); void leer(int *vec); int main(){ int vec[]={0,0,0,0,0,0}; sorteo(vec); leer(vec); printf("Hola"); system("pause"); return 0; } void sorteo(int *vec){ srand(time(NULL)); int i, aux; for(i=0; i
@gustavorangel894
@gustavorangel894 9 жыл бұрын
En el resultado todos me dan el mimo numero es decir que no me da la totalidad del 100% Aca esta el codigo #include void sorteo(int *vec); void leer(int *vec); int main(){ int vec[] = {0,0,0,0,0,0}; sorteo(vec); leer(vec); system("pause"); return 0; } void sorteo(int *vec){ srand (time(NULL)); int i,aux; for(i = 0; i < 10000; i++){ aux = rand()%6; switch (aux){ case 0:{ *(vec+aux) +=1; break; } case 1:{ *(vec+aux) +=1; break; } case 2:{ *(vec+aux) +=1; break; } case 3:{ *(vec+aux) +=1; break; } case 4:{ *(vec+aux) +=1; break; } case 5 : { *(vec+aux) +=1; break; } } } } void leer(int *vec){ int i; float x; for (i=0; i
@elarcademan
@elarcademan 9 жыл бұрын
a se me olvidaba el codigo al final te pongo los mensages de error del compilador #include void sorteo(int *vect); void imprimir(int *vect); int main(void){ int vect[] = {0,0,0,0,0,0}; sorteo(vect); imprimir(vect); return 0; } void sorteo(int *vect){ srand(time(NULL)); int i, aux; for(i = 0; i < 10000; i++){ aux = rand()%6; switch(aux){ case 0:{*(vect+aux) += 1;break;} case 1:{*(vect+aux) += 1;break;} case 2:{*(vect+aux) += 1;break;} case 3:{*(vect+aux) += 1;break;} case 4:{*(vect+aux) += 1;break;} case 5:{*(vect+aux) += 1;break;} } } } void imprimir(int *vect){ int j, x; for(j = 0; j < 6; j++){ x = (*(vect+j)*100)/10000.; printf("La probabilidad de que el numero %d salga es de %f: ", j+1, x); } } ejercisio_27.c: En la función ‘sorteo’: ejercisio_27.c:19:2: aviso: declaración implícita de la función ‘srand’ [-Wimplicit-function-declaration] ejercisio_27.c:19:2: aviso: declaración implícita de la función ‘time’ [-Wimplicit-function-declaration] ejercisio_27.c:23:3: aviso: declaración implícita de la función ‘rand’ [-Wimplicit-function-declaration] ejercisio_27.c: En la función ‘imprimir’: ejercisio_27.c:38:3: aviso: formato ‘%f’ espera un argumento de tipo ‘double’, pero el argumento 3 es de tipo ‘int’ [-Wformat] La compilación ha terminado con éxito. y se compila con exito XD
@addfilm
@addfilm 9 жыл бұрын
EL ARCADEMAN En la funcion imprimir declaraste x como entero (int), tenes que declararla como float. En el printf de imprimir pusiste %d y tenias que poner %i. La advertencia de srand no se por que es. Suerte.
@elarcademan
@elarcademan 9 жыл бұрын
ok gracias %d tambien imprime enteros no se a que se deve pero asi me lo enseñaron en un curso que hice. no se enfocaba en c pero vimos un poquito, en ese momento usaba linux y siempre use %d. si que e declarado mal x muchas gracias
@addfilm
@addfilm 9 жыл бұрын
Es cierto, error mio. Se puede usar %i y %d. Gracias por avisar.
@elarcademan
@elarcademan 9 жыл бұрын
Ho! no gracias ati
@agus0
@agus0 9 жыл бұрын
No entiendo que sentido tiene el "switch(aux)" en el procedimiento "sorteo()"....
@frankjobs7113
@frankjobs7113 5 жыл бұрын
No entendí porque hacerlo con el switch.. yo lo hice sin el. #include void sorteo(int *vec,int tope, int iter); void muestravectorpointer(int *vec, int tope,int iter); int main(){ int v[]={0,0,0,0,0,0},x=6,it=10000; sorteo(v,x,it); muestravectorpointer(v,x,it); system("pause"); return 0; } void sorteo(int *vec,int tope, int iter){ srand(time(NULL)); int i,c,l; for (c=1;c
@edkaem259
@edkaem259 8 жыл бұрын
Estoy volando en esta webada de punteros, alguien podría decirme porque no funciona mi programa, se los agradecería. #include void puntero (int *vec); void ayuda (int *vec); int main (){ int vec[3]; puntero(vec); ayuda(vec); system ("pause"); return 0; } void puntero (int *vec){ int i; for (i=0; i
@joseluisgasconarias6034
@joseluisgasconarias6034 8 жыл бұрын
+Edkaem te falta la librería stdlib
@edkaem259
@edkaem259 8 жыл бұрын
+Luis Gascón Disculpa pero como llamo a esa librería que dices ?
@joseluisgasconarias6034
@joseluisgasconarias6034 8 жыл бұрын
#include te recomiendo leer más sobre las librerías
@Zoroark1999
@Zoroark1999 8 жыл бұрын
+Edkaem En el void puntero, en el scanf a vec no se le suma 1, sino i.
@javierfuentes1804
@javierfuentes1804 9 жыл бұрын
me da un error aqui srand(time(NULL)); para ver cual es el error ke tengo #include void sorteo(int *vec); void leer(int *vec); int main() { int vec[]={0,0,0,0,0,0}; sorteo(vec); leer(vec); return 0; } void sorteo(int *vec) { srand(time(NULL)); int i,aux; for(i=0;i
@edkaem259
@edkaem259 8 жыл бұрын
No enseñaste para que servía el switch, y ahora lo usas, la verdad es que me perdí en casi todo el problema, haberlo de nuevo nomas.
@EmpiezaAProgramar
@EmpiezaAProgramar 8 жыл бұрын
+Edkaem Enseñe para que sirve el switch en el bloque 2. Por favor, tienes que verte todos los vídeos antes de comentar que no lo entiendes. Un saludo.
@edkaem259
@edkaem259 8 жыл бұрын
+Empieza A Programar Lo veré inmediatamente :D, disculpa por la molestia.
@mekmekmek2019
@mekmekmek2019 8 жыл бұрын
No te preocupes, en este vídeo el switch sirve para nada... : )
@xXdeathnoteXx961
@xXdeathnoteXx961 8 жыл бұрын
los punteros no se declaran ? no entendi una mierda :C
@sasosan2428
@sasosan2428 8 жыл бұрын
+jonathan quiñonez si se declaran
@javierfuentes1804
@javierfuentes1804 9 жыл бұрын
les agregue esas librerias y ahora me da error en todos los casos alguien que me eche una manito.. #include #include #include void sorteo(int *vec); void leer(int *vec); int main() { int vec[]={0,0,0,0,0,0}; sorteo(vec); leer(vec); return 0; } void sorteo(int *vec) { srand(time(NULL)); int i,aux; for(i=0;i
@soniaframis7425
@soniaframis7425 9 жыл бұрын
cambia la libreria #include por #include suerte!
@condor1294
@condor1294 8 жыл бұрын
yo puse de esta manera pero no me compila podrias ver el error y corregirlo ? #include void sorteo (int *vec){ void leer (int *vec){ int main (){ int vec []={0,0,0,0,0,0}; sorteo(vec); leer(vec); system ("pause"); return 0; } void sorteo (int *vec){ srand(time(NULL)); int i,aux; for (i=0; i
@FaculocoDj
@FaculocoDj 8 жыл бұрын
#include #include #include #include void sorteo (int *vec); void leer (int *vec); int main (){ int vec[6]; vec[0]=0; vec[1]=0; vec[2]=0; vec[3]=0; vec[4]=0; vec[5]=0; sorteo(vec); leer(vec); system ("pause"); return 0; } void sorteo (int *vec){ srand(time(NULL)); int i,aux; for (i=0;i
@eliasmartinez530
@eliasmartinez530 6 жыл бұрын
despues del numero de cada CASE, va dos puntos no punto y coma, ej: case 1:
@carlossantaella139
@carlossantaella139 8 жыл бұрын
amigo tu explicacion no estuvo muy acertada por ejemplo nunca explicastes xq pones 0s en las 6 posiciones o por que cuando se le suma 1 a los valores de *(vec+aux) da como resultado un numero determinado cuando en la variable del vector cuando la declarastes pusistes puros 0 eres un exlente profesor la mayoria de tus videos los e entendido pero no des por hecho que los que ven los videos los entienden porfavor habemos personas q estamos comenzando y queremos aprender
@skary1023
@skary1023 8 жыл бұрын
+Carlos Santaella "habemos" creo que te equivocas de palabra
@yeraipros5
@yeraipros5 8 жыл бұрын
+Carlos Santaella yo estoy empezando a aprender y eso que dices que no explica, si lo hace y a mi parecer se entiende todo a la perfección.
@carlossantaella139
@carlossantaella139 8 жыл бұрын
mmmm entiendo, ya yo no estoy en ese nivel pero sigue aprendiendo (y)
@Criticalgraphics
@Criticalgraphics 8 жыл бұрын
+Carlos Santaella creo que es sentido comun 0 es el numero inicial y le sumas 1 cada vez
@CraftMyMe
@CraftMyMe 7 жыл бұрын
Ni la ortografía.
@jahazielvictoriano8663
@jahazielvictoriano8663 4 жыл бұрын
¡Excelente!
Bloque 5.4: ¿Que es una Matriz? y Ejemplos
19:51
Empieza A Programar
Рет қаралды 82 М.
Bloque 5.5: ¿Que son los Strings? y Como Compararlos
15:43
Empieza A Programar
Рет қаралды 95 М.
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19
Каха и дочка
00:28
К-Media
Рет қаралды 3,4 МЛН
Punteros en C - Definición
14:29
Jose Colbes
Рет қаралды 11 М.
Bloque 7.1: ¿Que es la Memoria Dinamica?
17:56
Empieza A Programar
Рет қаралды 69 М.
Programación en  C // función VOID  //vacío
2:42
Azokar News
Рет қаралды 566
Punteros en C - Punteros y Vectores
12:21
Jose Colbes
Рет қаралды 5 М.
Bloque 6.1: ¿Que son las Estructuras?
15:33
Empieza A Programar
Рет қаралды 77 М.
Bloque 6.5: Punteros a Estructuras y Funciones con Estructuras
14:27
Empieza A Programar
Рет қаралды 96 М.
Como usar correctamente los punteros en C
24:22
carmen .dominguez
Рет қаралды 190 М.
Bloque 7.2: Malloc y Realloc con Vector Dinamico
23:03
Empieza A Programar
Рет қаралды 62 М.
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19