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)
{
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)




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.
ResponderBorrarexcelente la explicación de lo que es funciones combinada con estructura de datos.
ResponderBorrareste 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.