Cuadernillo Funciones
Cuadernillo Funciones
Cuadernillo Funciones
Concepto:
Una funcin es un conjunto de lneas de cdigo que realizan una tarea especfica y puede
retornar un valor. Las funciones pueden tomar parmetros que modifiquen su
funcionamiento. Las funciones son utilizadas para descomponer grandes problemas en tareas
simples y para implementar operaciones que son comnmente utilizadas durante un
programa y de esta manera reducir la cantidad de cdigo. Cuando una funcin es invocada
se le pasa el control a la misma, una vez que esta finaliz con su tarea el control es devuelto
al punto desde el cual la funcin fue llamada.
Cuerpo;
Para comenzar, vamos a considerar el caso en el cual se desea crear la funcin cuadrado (),
que deber devolver el cuadrado de un nmero real (de punto flotante), es decir, cuadrado ()
aceptar nmeros de punto flotante y regresar una respuesta como nmero flotante.
Nota: aunque para la funcin que veremos el tipo de retorno coincide con el tipo de parmetro
pasado, algunas veces las cosas pueden cambiar, es decir, no es obligatorio que una funcin
reciba un parmetro de un tipo y que tenga que regresar una respuesta de dicho tipo.
// Regresar el cuadrado de un nmero
Return n*n;
Parmetros
Normalmente, las funciones operan sobre ciertos valores pasados a las mismas ya sea como
constantes literales o como variables, aunque se pueden definir funciones que no reciban
parmetros. Existen dos formas en C++ de pasar parmetros a una funcin; por referencia o
por valor. El hecho es que si en una declaracin de funcin se declaran parmetros por
referencia, a los mismos no se les podr pasar valores literales ya que las referencias apuntan
a objetos (variables o funciones) residentes en la memoria; por otro lado, si un parmetro es
declarado para ser pasado por valor, el mismo puede pasarse como una constante literal o
como una variable. Los parmetros pasados por referencia pueden ser alterados por la funcin
que los reciba, mientras que los parmetros pasados por valor o copia no pueden ser alterados
por la funcin que los recibe, es decir, la funcin puede manipular a su antojo al parmetro,
pero ningn cambio hecho sobre este se reflejar en el parmetro original.
La funcin cuadrado () (ver arriba) es un clsico ejemplo que muestra el paso de parmetros
por valor, en ese sentido la funcin cuadrado () recibe una copia del parmetro n. En la misma
funcin se puede observar que se realiza un clculo (n*n), sin embargo el parmetro original
no sufrir cambio alguno, esto seguir siendo cierto aun cuando dentro de la funcin hubiera
una instruccin parecida a n = n * n; o n*=n;
Para mostrar un ejemplo del paso de parmetros por referencia, vamos a retomar el caso de
la funcin cuadrado, salvo que en esta ocasin cambiaremos ligeramente la sintaxis para
definir la misma. Veamos:
n *= n;
return n;
Al poner a prueba las funciones cuadrado () y cuadrado2 () se podr verificar que la primera
de estas no cambia el valor del parmetro original, mientras que la segunda s lo hace.
Funciones void
Bajo ciertas circunstancias se desear escribir funciones que no regresen valor alguno (esto
sera algo parecido a escribir procederes en Pascal) y para ello podemos declarar a la funcin
como void. La palabra reservada void es utilizada para declarar funciones sin valor de retorno
y tambin para indicar que una funcin especfica no requiere de parmetros. Por ejemplo, la
funcin pausa () que se ver en seguida, no devolver valor alguno y la misma no requiere
de parmetros.
cin.get();
Notas: se debe de aclarar que el uso de la palabra void dentro de los parntesis es opcional al
momento de declarar una funcin. As, la funcin pausa () podra haberse declarado
como void pausa (), y la misma puede invocarse como: pausa ();
Funciones anidadas
A diferencia de Pascal, el lenguaje C, C++ no permite anidar funciones, sin embargo, dentro
de una funcin puede existir la llamada a una o ms funciones declaradas previamente, que
determinara en cierto punto un resultado para que sea ejecutado cuando el programador lo
desee.
Dentro de una funcin, las variables y/o constantes pueden ser declaradas como: auto (por
omisin) o como static. Si una variable dentro de una funcin es declarada como esttica
significa que la misma retendr su valor entre las llamadas a la funcin. Por otro lado, las
variables automticas pierden su valor entre las llamadas. En el programa anterior puede
verse que el arreglo de caracteres (buffer [65]) se ha declarado como esttico para garantizar
que dicho buffer retenga los datos an despus de que la funcin termine. En el mismo
ejemplo, si el buffer no se declara como esttico, el contenido del mismo podra ser destruido
al salir de la funcin y los resultados obtenidos podran ser no deseados.
Parmetros constantes
Los parmetros usados por una funcin pueden declararse como constantes (const) al
momento de la declaracin de la funcin. Un parmetro que ha sido declarado como
constante significa que la funcin no podr cambiar el valor del mismo (sin importar si dicho
parmetro se recibe por valor o por referencia).
Ejemplo:
Donde vemos no va a retornar nada, por ello tiene void entonces la funcion hace lo que tiene
que hacer y termina, no devuelve nada.
Un ejemplo de devolucin seria en una suma de enteros, ya que se le podra enviar como dato
los dos nmeros y la funcin hara internamente la suma devolvindonos la suma de dichos
nmeros (si son todos enteros, devolvera un int. Si son enteros y flotantes devolvera un float
), as:
2) La definicin de la funcion:
Como vimos la declaracin nos serva para que el compilador sepa que existe dicha funcion,
ahora la definicin nos sirve ya para desarrollar la funcin; es decir ya programar dentro de
ella para que haga lo que necesitamos. Como consecuencia de que ya est creada podemos
usarla, pero si no la hubisemos declarado y la desarrollamos (hacemos la definicin), al
compilar nos dar error y dir que esa funcin no fue declarada, que no existe.
La definicin es muy similar a la declaracin, solo que esta vez lleva un ambiente (donde
vamos a programar es decir las llaves {}), as:
void ingresar()
Tambin otra diferencia es que la declaracin lleva ; (punto y coma) al final, la definicin
ya no lo lleva.
(www.wikibooks.org, 2015)
PROGRAMA N.-1
Anlisis
Proceso:
Diseo:
-----------------------
Codificacin:
Prueba de escritorio:
PROGRAMA N.-1
Funcin pantalla (int x1, int y1, int x2, int y2);
Anlisis
Proceso:
Diseo:
X1 y1
X2 y2
******
******
Codificacin:
Prueba de escritorio:
ARREGLO
A vector-> matriz
VECTOR
Declaracin de vectores:
Lectura de vectores:
Do
Scanf(%d, &vec[cont ];
Cont++;
}while (i<4);
Pantalla
dato[ 0]=3
dato[ 1]=2
dato[ 3]=4
PROGRAMA N.-3
Anlisis
Proceso
Codificacin:
Prueba de escritorio:
PROGRAMA N.-6
Anlisis
Proceso:
Codificacin:
Prueba de escritorio:
PROGRAMA N.-7
Anlisis
Objetivo: leer 10 nmeros por teclado y sum solo los numero pares
Proceso:
Leer 10 nmeros
Validar los datos de entrada
Condicionar que sean nmeros pares
imprimir el resultado de la suma de los pares
Restricciones: datos positivos
Codificacin:
Prueba de escritorio:
PROGRAMA N.-8
Anlisis
Objetivo: leer 10 nmeros por teclado y a los dgitos de los nmeros mayores a 9.
Proceso:
Leer 10 nmeros
Imprimir desde la ltima posicin
Condicionar que sean menores a 9
Caso contrario sumar los dgitos
imprimir el resultado de los dgitos
Restricciones: datos positivos
Codificacin:
Prueba de escritorio:
DEBER
PROGRAMA N.-9
Anlisis
Proceso:
Leer 10 dgitos
Validar los datos de entrada
Multiplicar las posiciones pares
Si la multiplicacin es mayor a 9, restar 9
Sumar las posiciones pares e impares
Realizar la suma general
Generar la siguiente decena
Restar a la decena la suma de las posiciones
Validar el nmero de cedula
Restricciones: datos positivos
Codificacin:
Prueba de escritorio:
1 2 24 56 2 86
0 1 2 3 4 5
Buscar (2)
Posicion :( 4)
Main()
Do
Scanf(%d, &cant);
If(cant<0||cant>10)
printf(error);
Leer_dat(vec,cant);
Printf(numero buscar);
Scanf(%d, &bus);
Buscar(vec,cant,bus);
Este mtodo de bsqueda es muy lento, pero si los datos no estn en orden es el nico mtodo
que puede emplearse para hacer las bsquedas. Si los valores de la llave no son nicos, para
encontrar todos los registros con una llave particular, se requiere buscar en toda la lista.
Ventajas de la tcnica.
Es el mejor mtodo de bsqueda para registros desordenados y revisa nodo por nodo sin
brincar ninguno (es muy seguro)
Muestreo de acceso:
Este mtodo consiste en observar que tan frecuentemente se solicita cada registro y
ordenarlos de acuerdo a las probabilidades de acceso detectadas.
Este esquema consiste en que la lista de registros se reorganice dinmicamente. Con este
mtodo, cada vez que bsqueda de una llave sea exitosa, el registro correspondiente se mueve
a la primera posicin de la lista y se recorren una posicin hacia abajo los que estaban antes
que l.
Transposicin:
Este es otro esquema de reorganizacin dinmica que consiste en que, cada vez que se lleve
a cabo una bsqueda exitosa, el registro correspondiente se intercambia con el anterior. Con
este procedimiento, entre ms accesos tenga el registro, ms rpidamente avanzara hacia la
primera posicin. Comparado con el mtodo de movimiento al frente, el mtodo requiere
ms tiempo de actividad para reorganizar al conjunto de registros. Una ventaja de mtodo de
transposicin es que no permite que el requerimiento aislado de un registro, cambie de
posicin todo el conjunto de registros. De hecho, un registro debe ganar poco a poco su
derecho a alcanzar el inicio de la lista.
Ordenamiento:
Una forma de reducir el nmero de comparaciones esperadas cuando hay una significativa
frecuencia de bsqueda sin xito es la de ordenar los registros en base al valor de la llave.
Esta tcnica es til cuando la lista es una lista de excepciones, tales como una lista de
decisiones, en cuyo caso la mayora de las bsquedas no tendrn xito.
Con este mtodo una bsqueda sin xito termina cuando se encuentra el primer valor de la
llave mayor que el buscado, en lugar de la final de la lista.
Desventajas de la tcnica.
Este mtodo de bsqueda es muy lento, pero si los datos no estn en orden es el nico mtodo
que puede emplearse para hacer las bsquedas. Si los valores de la llave no son nicos, para
encontrar todos los registros con una llave particular, se requiere buscar en toda la lista.
Si los registros a los que se accede con frecuencia no estn al principio del archivo, la cantidad
promedio de comparaciones aumenta notablemente dado que se requiere ms tiempo para
recuperar dichos registros.
Principales Aplicaciones.
Un ejemplo claro para utilizar esta tcnica de bsqueda es cuando se tiene una base de datos
no muy grande en un negocio pequeo donde los registros ms usados son llamados con
frecuencia, es aqu donde esta tcnica es fuerte, ya que se aplica a un patrn de bsqueda
pequeo, sencillo y manejable; es decir como si fuera una descripcin, es uno tras otro.
Mtodos de bsqueda
La bsqueda de un dato particular entre una coleccin de datos es una operacin que
habitualmente realizan las computadoras.
Un array, como ya sabemos, es una coleccin de datos residente en memoria principal, por
lo que es frecuente que se deba realizar dicha operacin de bsqueda sobre esta estructura.
En este apartado pasaremos a estudiar los diferentes algoritmos que se pueden implementar
adaptados a la estructura array. Algunos son ms eficientes que otros, si bien tambin suelen
ser ms complejos. En todo caso, cuando la longitud del array es pequea, las diferencias de
eficiencia pueden ser irrelevantes.
i <-- primero
mientras (v[i]<>valor y i<ultimo)
i <-- i + 1
finmientras
si v[i]= valor entonces
*** instrucciones correspondientes a valor encontrado
sino
*** instrucciones correspondientes a valor no encontrado
finsi
NOTA: se supone que primero es el valor de ndice en que se empieza a buscar, ultimo el
ltimo valor de ndice en que se buscar, y valor, el valor a localizar.
Es una adaptacin particular del anterior algoritmo al caso en que el vector en el que se
pretende localizar el dato est previamente ordenado p. ej. Ascendentemente. La eficiencia
mejora, ya que por trmino medio, el proceso de bsqueda acaba antes.
Se supera la posicin que debera ocupar el dato buscado sin encontrarlo (fracaso)
i <-- primero
mientras (v[i]<valor y i<ultimo)
i <-- i + 1
finmientras
si v[i]= valor entonces
*** instrucciones correspondientes a valor encontrado
sino
*** instrucciones correspondientes a valor no encontrado
finsi
NOTA: se hacen las mismas suposiciones que antes. Obsrvese que lo nico que cambia es
la condicin del bucle mientras, que pasa de <> a <
Consiste en comparar el elemento central del array con el valor buscado. Si coinciden, el
proceso termina, de lo contrario, se pregunta si es menor o mayor, y en funcin de esta
condicin, se descartar la mitad anterior o posterior del array, volvindose a repetir el
proceso, pero ahora en un subarray la mitad de largo, y as sucesivamente hasta dar con el
valor buscado.
Tambin se puede terminar el proceso con un resultado de fracaso, lo cual ocurrir cuando el
intervalo de bsqueda se haya reducido a 0.
NOTA: posicin es una variable que contendr -1 (valor ficticio) mientras no se encuentre el
elemento, y cuando ste se halle, pasar a tener como valor la posicin en que se
encuentra. Por otra parte, izquierda y derecha contendrn los valores de ndice inferior y
superior entre los cuales se realiza la bsqueda. Central ser el valor de ndice intermedio
(despreciando los decimales) a esos mrgenes, que irn cambiando a medida que se descarten
subarrays.
Mtodos de ordenacin
Otra de las tareas habituales que debe realizar un ordenador con una coleccin de datos es
ordenarlos, y tambin esta operacin puede realizarse de acuerdo a diferentes algoritmos con
desigual eficiencia.
Pasaremos a estudiar algunos de los ms conocidos. Todos ellos admiten variantes del tipo:
Consiste en:
Al final de cada pasada, los elementos mayores van siendo llevados hasta las ltimas
posiciones
El proceso concluye al terminar la pasada N-1 que consiste en una nica comparacin entre
los dos primeros elementos del array
Este mtodo incluye una mejora en cuanto a eficiencia al mtodo de la burbuja. Consiste en
incluir un flag (bandera, switch o sealizador) que indica si el array se encuentra ya ordenado
tras una pasada intermedia. De ser as, el proceso de ordenacin concluye.
i <- 0
repetir
ordenado <- 1
para j <- 0 hasta N - 1 - i
si v[j]>v[j+1] entonces
aux<- v[j]
v[j]<- v[j+1]
v[j+1]<- aux
ordenado <- 0
finsi
finpara
i <- i + 1
mientras (ordenado = 1 y i < N - 1)
eleccin del mayor (o menor, si fuera descendente) de los N elementos del array
Volver al paso anterior, pero con los N-1 elementos an en desorden, es decir, ignorando el
que ya se encuentra colocado en su sitio (cada pasada, por tanto, es ms corta que la anterior)
Este mtodo consiste en insertar los elementos del array en subarrays que se encuentren ya
ordenados. El subarray ms pequeo que se presenta ordenado de manera natural es el
formado por un slo elemento. A partir de ah, en sucesivas pasadas se van aadiendo
elementos en orden con los anteriores, pasndose a subarrays ordenados cada vez mayores,
hasta completar la totalidad del array.
sort(0,n - 1);
}
Este mtodo se basa en la comparacin de elementos que estn separados por intervalos cuya
anchura va disminuyendo sucesivamente. Subdivide en cada pasada el array inicial en un
nmero cada vez mayor de subarrays de longitud decreciente, y realiza en cada uno de ellos
una ordenacin por insercin.
intervalo <- N / 2
mientras (intervalo > 0) hacer
para i <- intervalo + 1 hasta N
aux <- v[i]
hallado <- 0
j <- i - intervalo
mientras (j>0 y hallado = 0) hacer
si aux < v[j] entonces
v[j+intervalo] <- v[j]
j <- j - intervalo
sino
hallado <- 1
finsi
finmientras
v[j+intervalo] <- aux
finpara
intervalo <- intervalo / 2
finmientras
PROGRAMA N.-10
Anlisis
Proceso:
Leer n nmeros
Ingresar los datos del vector
Imprimir el vector ingresado
Ingresar la bsqueda
Imprimir la posicin
Restricciones: la cantidad debe estar comprendido en el rango entre 1 y 10.
Diseo:
Dato[0]= ..
Dato[1]= ..
Dato[2]= ..
..
Su vector es: .
Posicin: .
Codificacin:
Prueba de escritorio:
PROGRAMA N.-11
Anlisis
Proceso:
Leer n nmeros
Ingresar los datos del vector
Imprimir el vector ingresado
Ordenar el vector
Imprimir
Restricciones: la cantidad debe estar comprendido en el rango entre 1 y 10.
Diseo:
Cuantos datos desea:
Dato[0]= ..
Dato[1]= ..
Dato[2]= ..
..
Su vector es: .
ordenado: .
Codificacin:
Prueba de escritorio:
PROGRAMA N.-12
7 12 25 42 9 0
REALICE UN FUNCION QUE MUESTRE EL MENOR DATO DEL VECTOR
0 7 9 12 25 42
Vec1:0 0 0 0 0 0 0
Vec2: 0 7 9 12 25 42
Anlisis
Proceso:
Leer n nmeros
Validar los datos de entrada
Llamar a la funcin ordenar
Encontrar el menor
imprimir el resultado
Restricciones: datos positivos
Codificacin:
Prueba de escritorio:
MATRICES
Array o matrices
Una array bi-dimensional es aquel en donde los componentes son accesibles por medio de
una pareja de ndices que apunten a la fila y a la columna del componente requerido. Los
arrays de este tipo son conocidos tambin con el nombre dematrices. Conceptualmente,
podemos pensar en un array bidimensional como en una lista compuesta de filas y columnas,
en donde para referirnos a una de ellas emplearemos un nmero para indicar la posicin de
fila y otro nmero para indicar la posicin de la columna del componente deseado. Por
ejemplo, consideremos el caso de la tabla o array VentaSemanaQ, la cual est pensada para
registrar las ventas de cada uno de los das de la semana por cuatro semanas, o sea, una tabla
de7 x 4 elementos. De manera conceptual podemos ver el array como se muestra a
continuacin:
array: VentaSemanaQ
COLUMNAS
+--- componente ( 0, 0 )
|
+------+------+------+------+
| dato | dato | dato | dato |
|------|------|------|------|
F | dato | dato | dato | dato |
|------|------|------|------|
I | dato | dato | dato | dato |
|------|------|------|------|
L | dato | dato | dato | dato |
|------|------|------|------|
A | dato | dato | dato | dato |
|------|------|------|------|
S | dato | dato | dato | dato |
|------|------|------|------|
| dato | dato | dato | dato |
+------+------+------+------+
|
+---- componente ( 6, 3 )
Si en el array VentaSemanaQ queremos que el elemento de la fila 4, columna 3 (por ejemplo)
contenga el valor de 5000 lo podemos lograr con la instruccin: VentaSemanaQ [4] [3] =
5000; y el estado del array sera:
array: VentaSemanaQ
+--- componente ( 0, 0 )
|
+------+------+------+------+
| dato | dato | dato | dato |
|------|------|------|------|
| dato | dato | dato | dato |
|------|------|------|------|
| dato | dato | dato | dato |
|------|------|------|------|
| dato | dato | dato | dato |
|------|------|------|------|
| dato | dato | dato | 5000 | <-- componente ( 4, 3 )
|------|------|------|------|
| dato | dato | dato | dato |
|------|------|------|------|
| dato | dato | dato | dato |
+------+------+------+------+
|
+---- componente (6, 3)
PROGRAMA N.-13
Anlisis
Objetivo: leer datos en filas e imprimir la matriz y otra con los datos pares
Datos de entrada:
Proceso:
Leer el vector
Imprimir la matriz original
Imprimir la matriz con datos pares
Restricciones: la cantidad debe estar comprendido en el rango entre 1 y 10.
Diseo:
Ingresar la matriz: .
**** **
**** **
****
**** ****
Codificacin:
Prueba de escritorio:
PROGRAMA N.-14
Anlisis
Diseo:
Ingresar la matriz: .
+ +
+ +
Codificacin:
Prueba de escritorio:
PROGRAMA N.-16
Anlisis
Proceso:
Diseo:
Ingrese los datos:
Posicin[0][0]: 45
Posicin[1][0]: 54
Posicin[2][0]: 67
Posicin[0][1]: 87
Posicin[1][1]: 9
Posicin[2][1]: 8
Posicin[0][2]: 1
Posicin[1][2]: 12
Posicin[2][2]: 23
45 87 1 54 9 12 67 8
23
54 12 8
Codificacin:
Prueba de escritorio:
PROGRAMA N.-17
Anlisis
Proceso:
Diseo:
Ingrese los datos:
Posicin[0][0]: 45
Posicin[1][0]: 54
Posicin[2][0]: 67
Posicin[0][1]: 87
Posicin[1][1]: 9
Posicin[2][1]: 8
Posicin[0][2]: 1
Posicin[1][2]: 12
Posicin[2][2]: 23
Codificacin:
Prueba de escritorio:
PROGRAMA N.-18
Anlisis
Proceso:
Diseo:
Posicin[0][0]: 1 Posicin[0][2]:2
Posicin[0][4]: 3 Posicin[1][1]: 4
Posicin[1][3]: 5 Posicin[2][0]: 6
Posicin[2][2]: 7 Posicin[2][4]: 8
Posicin[3][1]:9 Posicin[3][4]:10
1 0 2 0 3
0 4 0 5 0
6 0 7 0 8
0 9 0 10 0
Codificacin:
Prueba de escritorio:
PROGRAMA N.-19
Anlisis
Proceso:
Diseo:
Posicin[0][0]: 1 Posicin[0][2]:2
Posicin[0][4]: 3 Posicin[1][1]: 4
Posicin[1][3]: 5 Posicin[2][0]: 6
Posicin[2][2]: 7 Posicin[2][4]: 8
Posicin[3][1]:9 Posicin[3][4]:10
Codificacin:
Prueba de escritorio:
PROGRAMA N.-20
Anlisis
Proceso:
Diseo:
Ingrese las filas:3
Mat[0][0]: 1
Mat[0][1]: 2
Mat[0][2]: 3
Mat[1][0]: 3
Mat[1][1]: 4
Mat[1][2]: 5
Mat[2][0]: 6
Mat[2][1]: 7
Mat[2][2]: 8
Codificacin:
Prueba de escritorio:
PROGRAMA N.-21
Anlisis
Proceso:
Diseo:
ORDEN ESTUDIANE CALIFICACIONES
1 jENNY 16
2 Ximena 18
3 Marisol 19
Codificacin:
Prueba de escritorio:
}
PROGRAMA N.-22
Anlisis
Proceso:
Diseo:
MENU
1. Administrar
2. Jugar
3. Salir
1. Ingrese la palabra: Juan 2. Ingrese una letra a Letra ya ingresada Ingrese la letra i
Codificacin:
1.-Declaracion de Librerias
2.-Declaracion de prototipos
3.-Declara el programa principal
PRUEBA DE ESCRITORIO
GANANDO:
PERDIENDO:
ESTRUCTURAS DE DATOS
Las estructuras de datos se emplean con el objetivo principal de organizar los datos
contenidos dentro de la memoria del ordenador. As, nuestra primera experiencia con
estructuras comienza desde el momento mismo en que usamos en nuestros programas
variables de tipos primitivos (char, short, int, float, etc). A la memoria del ordenador se le
puede considerar como un gran bloque compuesto por una serie de BYTES dispuestos
secuencialmente uno detrs de otro. por ejemplo, si un ordenador posee una memoria de
128MB (128 megas) entonces se le puede leer o escribir desde el BYTE 0 hasta el BYTE
128MB - 1 ( 0000000H .. 7FFFFFFH ). Sintaxis general: struct
De acuerdo con la sintaxis general de la orden struct es posible crear estructuras de datos
annimas. Solamente hay que tener en cuenta que en una declaracin annima se debe definir
al menos una variable al final de la declaracin. Por ejemplo, con el siguiente fragmento de
cdigo:
struct { int a, b; } p1; se declara y define la variable estructurada p1, misma que se compone
por los miembros a y b; ambos del tipo int. Ahora bien, la sintaxis mostrada arriba no es tan
comn ni conveniente, ya que con la misma solamente se esta creando una variable
estructurada pero no un nuevo tipo. Es decir, si deseramos tener otra variable que tuviera
las mismas caractersticas que posee la variable p1, necesitaramos escribir exactamente la
misma instruccin, salvo que cambiando el nombre de la variable. Por ejemplo:
struct { int a, b; } p2; Por supuesto, en una misma lnea de instruccin podemos definir ms
de una variable. Ejemplo:
struct { int a, b; } p1, p2; Entonces, para crear nuevos tipos con struct deberemos de modificar
la sintaxis mostrada en los ejemplos anteriores.
Observe que, la sintaxis para declarar estructuras con nombre es bastante parecida a la
sintaxis para declarar estructuras annimas; salvo que en una declaracin de estructura con
nombre se debe especificar el nombre deseado para la misma. Adems, en una declaracin
de estructura.
PROGRAMA N.-23
Anlisis
Proceso:
Ingresar la cantidad de datos
Verificar
Realizar operaciones necesarias
Imprimir resultados
Restricciones: la cantidad debe ser positiva
Diseo:
Ingrese un dato:3
Ingrese codigo: 3
Nombre:
Apellido:
Estatura:
Codificacin:
Prueba de escritorio:
PROGRAMA N.-24
Anlisis
Proceso:
Diseo:
Ingrese un dato: 3
Ingrese cdigo: 3
Nombre:
Apellido:
Estatura:
Ingrese datos:
Ingrese cdigo:
Codificacin:
Prueba de escritorio:
PROGRAMA N.-25
Anlisis
Proceso:
Diseo:
Ingrese un dato: 3
Ingrese cdigo: 3
Nombre:
Apellido:
Estatura:
Codificacin:
Prueba de escritorio:
PROGRAMA N.-26
Anlisis
Proceso:
Diseo:
Ingrese un dato: 3
Ingrese cdigo: 3
Nombre:
Apellido:
Estatura:
Codificacin:
Prueba de escritorio:
PROGRAMA N.-24
Anlisis
Proceso:
Diseo:
Ingrese un dato: 3
Ingrese cdigo: 3
Nombre:
Apellido:
Estatura:
Codificacin:
Prueba de escritorio:
BIBLIOGRAFIAS:
- Lujan, M. S. (2014). Ejercicios resueltos sobre programacion y estructuras de datos. San Vicente del
Raspeig: Publicaciones de la Universidad de Alicante
- Oviedo, R. E. M. (2005). Logica de programacion. Bogota: ECOE Ediciones.
- Marti, O. N., Ortega, M. Y., & Verdejo, L. J. A. (2004). Estructuras de datos y metodos algoritmicos:
Ejercicios resueltos. Madrid: Prentice Hall.