sábado, 31 de octubre de 2015

nitziavielkayvictor.blogspot.com


FUNCIONES Y ESTRUCTURA DE DATOS

Funciones:
 Es un conjunto de líneas de código que realizan una tarea específica y puede retornar un valor.

Las funciones pueden tomar parámetros que modifiquen su funcionamiento. Las funciones son utilizadas para descomponer grandes problemas en tareas simples y para implementar operaciones que son comúnmente utilizadas durante un programa y de esta manera reducir la cantidad de código.


Estructura de datos:

Puede ser declarada inicialmente escribiendo una palabra reservada, luego un identificador.
Para la estructura y un nombre para cada uno de sus miembros, sin olvidar los tipos de datos que estos representan. Generalmente, cada miembro se separa con algún tipo de operador, carácter o palabra reservada.



Arreglo de parámetros:  

permite guardar una relación de varios a uno: varios argumentos pueden ser representados por un único arreglo de parámetros. En otras palabras, los arreglos de parámetros permiten listas de argumentos de tamaño variable. se declara con el modificador params.
 Sólo puede haber un arreglo de parámetros en cada método, y siempre debe ser el último parámetro especificado.
El tipo del arreglo de parámetros debe ser siempre un tipo arreglo unidimensional. Al llamar a la función se puede pasar uno o varios argumentos del tipo del arreglo.

Ejemplo:

#include <stdio.h>
#include <conio.h>
#include <string.h>
void proc1(int vector[]);
void main() {
clrscr();
//creando arreglo y cargandolo
int lista[5]= {10,11,12,13,14};
// mandandolo a procedimiento recordar como se manda sin []
proc1(lista);
// desplegando arreglo lista y observar que datos salen
for(int reng=0; reng<=4; reng++)
printf("%d \n",lista[reng]);
getchar();
} // termina main
void proc1(int vector[])
{
// sumandole 50 a lo que se tenia en arreglo lista
// es decir vector queda cargado con 60,61,62,63,64
for(int reng=0; reng<=4; reng++)
vector[reng]=vector[reng]+ 50;
// observar que no se regresa nada
} //termina proc1

Corrida





















Registro como parámetros:  

De una función o procedimiento se tiene que crear el tipo de dato que representa al registro, el siguiente programa crea un tipo de dato registro con identificador T Alumno, que después será usado en los procedimientos Leer Registro y Mostrar Registro.




Actividad

A.  Colocar 1 Ejemplo donde visualicen la conversión del programa estructurado en programa modular utilizando las funciones:



resp<>'s') and (resp<>'s');
Writel{programa que realiza descuentos segun el codigo del articulo}
Uses crt;
Var
N,a,b,c,d:string;
P,t,t1:real;
Resp:char;
Begin
Repeat
Clrscr;
Writeln('el nombre de el articulo es:');
Readln(n);
Writeln('el precio de el articulo es:');
Readln(p);
If (p>=5000) then
Begin
Clrscr;
Writeln('el articulo ', n ,' pertenece a el codigo a');
T:=(p*30)/100;
T1:=p-t;
Writeln('el precio es :',p:3:2);
Writeln('el descuento fue del 30% esto es :',t:3:2);
Writeln('el precio final es :',t1:3:2);
Readln;

End
Else
If (p>=3000) and (p<5000) then
Begin
Clrscr;
Writeln('el articulo ', n ,' pertenece a el codigo "b"' );
T:=(p*20)/100;
T1:=p-t;
Writeln('pertenece al codigo b');
Writeln('',n);
Writeln('el precio es ',p:3:2);
Writeln('el descuento fue del 20% esto es :',t:3:2);
Writeln('el precio final es :',t1:3:2);
Readln;
End
Else
If (p>=2000) and (p<3000) then
Begin
Clrscr;
Writeln('el articulo ', n ,' pertenece a el codigo "c"');
T:=(p*10)/100;
T1:=p-t;
Writeln('pertenece al codigo c');
Writeln('',n);
Writeln('el precio es :',p:3:2);
Writeln('el descuento fue del 10% esto es :',t:3:2);
Writeln('el precio final es :',t1:3:2);
Readln;
End;
If (p<2000) then
Begin
Clrscr;
Writeln('el articulo ', n ,' pertenece a el codigo "d"');
T:=(p*5)/100;
T1:=p-t;
Writeln('el precio es :',p:3:2);
Writeln('el descuento fue del 5% esto es :',t:3:2);
Writeln('el precio final es :',t1:3:2);
Readln;
End;
Writeln('desea seguir capturando <s/n>');
Readln(resp);
Until (n('presione enter para salir');
Readln;
End.




B-Analizar la interrelación entre las funciones y las estructuras de datos como parámetro de las funciones.
  • Relación entre funciones y estructura de datos.
Cuando se llama a una función en c   , los valores de los parámetros se copian desde el ámbito llamador (lugar en el que está la llamada a la función) al ámbito llamado (el cuerpo de la función). El siguiente programa muestra la ejecución de una función que recibe como parámetro dos estructuras.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <math.h>
/* Definición de la estructura */
struct coordenadas
{
    float x;
    float y;
    float z;
};
/* Definición de función que calcula la distancia entre dos puntos */
float distancia(struct coordenadas a, struct coordenadas b)
{





    return sqrtf(pow(a.x - b.x, 2.0) +
                 pow(a.y - b.y, 2.0) +
                 pow(a.z - b.z, 2.0));
}

int main()
{
    /* Declaración e inicialización de dos variables */
    struct coordenadas punto_a = { 3.5e-120, 2.5, 1.5 };
    struct coordenadas punto_b = { 5.3e-120, 3.1, 6.3 };
    float d; /* Almacenar el resultado */

    /* Llamada a la función con las dos estructuras */   
    d = distancia(punto_a, punto_b);
    /* Imprimir el resultado */
    printf("%f\n", d);

    return 0;
}



En la línea 26 se realiza una copia de las estructuras punto a y punto
b en el ámbito de la función main a las estructuras a y b en el ámbito de la función distancia.
Esta copia tiene dos efectos: el programa invierte tanto tiempo como datos haya en la estructura, y durante la ejecución de la función se mantienen en memoria dos copias completas de las estructuras.
El uso de punteros ofrece una alternativa más eficiente. La función puede reescribirse para que reciba dos punteros a las estructuras. La definición de la función pasa a ser:

float distancia(struct coordenadas *a_ptr, struct coordenadas *b_ptr)
{ return sqrtf(pow(a_ptr->x - b_ptr->x, 2.0) +
                 pow(a_ptr->y - b_ptr->y, 2.0) +
                 pow(a_ptr->z - b_ptr->z, 2.0)) }
La llamada a la función en la línea 26 pasa ahora a ser
d = distancia(&punto_a, &punto_b);
Con esta nueva versión, el programa ejecuta exactamente los mismos cálculos, obtiene el mismo resultado, pero su ejecución es más rápida, y utiliza menos memoria.


C-Coloque 1 ejemplo de programación que involucren el uso de las funciones, estructuras de datos y alguna técnica de diseño modular por ejemplo HIPO.
HIPO:
 (Jerarquía más entrada-salida del proceso( la técnica es una herramienta para la planificación y / o documentación de un programa de ordenador. Un modelo HIPO consiste en un gráfico de jerarquía que representa gráficamente la estructura del programa de control y un sistema de oferta pública inicial (entrada-proceso-salida) las cartas que describen las entradas a las salidas de, y las funciones (o procesos) realizadas por cada módulo de la tabla de jerarquía.


AQUI LES DEJO UN LINK DONDE PODEMOS VER TODOS LOS PASOS DE ARREGLOS Y REGISTROS COMO PARAMETROS.






 (al momento de abrir el link solo debes dar clik en omitir anuncio para iniciar el vídeo)

2 comentarios:

  1. Este tema nos habla todo lo referente a las funciones de estructura de datos, es muy importante ya que nos indica cual es el manejo sobre estas estructuras; este tema nos ayudara a entender como debemos realizar nuestra estructura datos y el porque la realizacion de las mismas.

    ResponderBorrar
  2. excelente la explicación de lo que es funciones combinada con estructura de datos.
    este blog nos ayudara a entender de una manera fácil como se trabaja una estructura de datos en programación... espero que esta información le resulte de gran ayuda.

    ResponderBorrar