Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

AsignacióN DináMica

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Próximo SlideShare
Trabajo de tecnologia
Trabajo de tecnologia
Cargando en…3
×

Eche un vistazo a continuación

1 de 8 Anuncio

Más Contenido Relacionado

Presentaciones para usted (20)

Anuncio

Similares a AsignacióN DináMica (20)

Más reciente (20)

Anuncio

AsignacióN DináMica

  1. 1. Asignación Dinámica<br />Ing. Paulo Guerra T.<br />26/Enero/2009<br />
  2. 2. Se asigna memoria dinámicamente mediante la función estándar malloc(), para trabajar con esa memoria como si fuera un array.<br />La función malloc () devuelve un puntero genérico al primer byte de una región de memoria del tamaño en bytes determinado en el argumento.<br />Arrays Asignados Dinámicamente <br />
  3. 3. Malloc(tamaño)<br />tamaño: indica el numero de bytes a reservar. <br />Si se desea reservar espacio de memoria para 10 elementos de tipo entero:<br />int *p;<br />p=(int *) malloc(10*sizeof(int));<br />Nota: la función sizeof( argumento) devuelve el numero de bytes que ocupa el argumento.<br />Declaración<br />
  4. 4. Ejemplo<br />#include &lt;stdio.h&gt;<br />#include &lt;stdlib.h&gt;<br />voidmain()<br />{<br />int *p,num;<br />printf(&quot;Ingrese el numero de elementos a crear: &quot;);<br />scanf(&quot;%d&quot;,&num);<br /> p=(int *)malloc(sizeof(int)*num);<br />for(int i=0;i&lt;num;i++)<br /> {<br />printf(&quot;Ingrese un dato: &quot;);<br />scanf(&quot;%d&quot;,(p+i)); <br /> }<br />for(i=0;i&lt;num;i++)<br /> {<br />printf(&quot;dato[%d]: %d&quot;,i,*(p+i)); <br /> }<br />}<br />recuerde que el puntero p apunta al primer elemento del arreglo y la variable i aumenta el desplazamiento a la siguiente posición de memoria<br />
  5. 5. #include &lt;stdio.h&gt;<br />#include &lt;stdlib.h&gt;<br />intleer(char texto[100], int min, intmax);<br />voidingresar_datos_arreglo(int *p, intnum);<br />voidimprimir_arreglo(int *p, intnum);<br />voidmain()<br />{<br />int *p,num;<br />num=leer(&quot;Ingrese el numero de elementos a crear: (0-20) &quot;, 0, 20);<br /> p=(int *)malloc(sizeof(int)*num);<br />ingresar_datos_arreglo(p,num);<br />imprimir_arreglo(p,num);<br />printf(&quot;Gracias... FIN DEL PROGRAMA&quot;);<br />}<br />int leer(char texto[100], int min, intmax)<br />{<br />int valor;<br /> do<br /> {<br />printf(&quot;%s&quot;, texto);<br />scanf(&quot;%d&quot;,&valor);<br /> }while(valor&lt;min ||valor&gt;max);<br />return valor;<br />}<br />voidingresar_datos_arreglo(int *p, intnum)<br />{<br />for(int i=0;i&lt;num;i++)<br /> {<br />printf(&quot;Ingrese un dato: &quot;);<br />scanf(&quot;%d&quot;,(p+i)); <br /> }<br />}<br />voidimprimir_arreglo(int *p, intnum)<br />{<br />for(int i=0;i&lt;num;i++)<br /> {<br />printf(&quot;dato[%d]: %d&quot;,i,*(p+i)); <br /> }<br />}<br />
  6. 6. int leer(char texto[100], int min, intmax);<br />voidingresar_datos_arreglo(int *p, intnum);<br />voidimprimir_arreglo(int *p, intnum);<br />voidmain()<br />{<br />int *p,num;<br />num=leer(&quot;Ingrese el numero de elementos a crear: (0-20) &quot;, 0, 20);<br />p=(int *)malloc(sizeof(int)*num);<br />ingresar_datos_arreglo(p,num);<br />imprimir_arreglo(p,num);<br />printf(&quot;Gracias... FIN DEL PROGRAMA&quot;);<br />}<br />int leer(char texto[100], int min, intmax)<br />{<br />int valor;<br />do{<br />printf(&quot;%s&quot;, texto);<br />scanf(&quot;%d&quot;,&valor);<br />}while(valor&lt;min ||valor&gt;max);<br />return valor;<br />}<br />voidingresar_datos_arreglo(int p[], intnum)<br />{<br />for(int i=0;i&lt;num;i++)<br /> {<br />printf(&quot;Ingrese un dato: &quot;);<br />scanf(&quot;%d&quot;,&p[i]); <br /> }<br />}<br />voidimprimir_arreglo(int *p, intnum)<br />{<br />for(int i=0;i&lt;num;i++)<br /> {<br />printf(&quot;dato[%d]: %d&quot;,i,p[i]); <br /> }<br />}<br />Observe que se puede pasar un puntero y recibirlo como un arreglo; esto se puede realizar por que un arreglo de la forma nombre[tamaño] es simplemente un puntero. <br />
  7. 7. Realizar un programa que permita ingresar n elementos de tipo floatdetermine el promedio.<br />A continuación el programa debe almacenar en un nuevo arreglo dinámico la desviación con respecto a la media.<br />d= Ai - Ā<br />Por ultimo el programa debe calcular la desviación estándar.<br />s= (d12 + d22 + d32 + ….+dn2 )/(n-1)<br />(Realizar el ejemplo con funciones y asignación dinámica).<br />Trabajo en clase<br />
  8. 8. Realizar un programa que permita ingresar una cedula y verifique si la cedula es válida o no.<br />1002856050 -&gt;Es válida<br />1000000001-&gt; Es inválida<br />Trabajo en clase<br />

×