Anda di halaman 1dari 2

APELLIDO, NOMBRE:……………………………….PADRÓN:…………………...

______________________________________________________________________
75.02- Algoritmos y programación I Cátedra: Mónica Kuhn
Examen parcial – 1ra oportunidad 2do Cuat 2013 05/11/11

1) Realizar una tabla con el seguimiento de las diferentes variables (incluyendo las declaradas
en el main y en la función), y mostrar la salida por pantalla del siguiente código de programa.
#include <stdio.h>
#include <stdlib.h>

#define M 4

float funcion(float a[], int max)


{
float m;
if (max>1)
{
m=funcion(a,max-1)+a[max-1];
return m;
}
return a[0];

int main(){
float s[M] = {1.5, 1.0, 3.5, 2.5};
float* maxs[M] = {NULL, NULL, NULL, NULL};
int ths = funcion(s,M)/M;
int i,j;

for(i=0, j=0; i<M;++i)


{
if (s[i]>ths) maxs[j++]=s+i;
}

printf("ths: %d\n",ths);

j=0;
while(maxs[j])
{
printf("m%d: %f\n",j, *(*maxs+j));
j++;
}

return 0;
}
2) Se disponen las siguientes estructuras para modelizar una heladería que tiene gustos y
pedidos.

#define M 30
typedef struct gusto{
char nom[M];
float precio;
} tGusto;

typedef struct pedido{


char *nombre;
int q_gustos;
tGusto **gusto
} tPedido;

typedef struct heladeria{


int q_gustos;
tGusto ** gustos;
int q_pedido;
tPedido ** pedidos;
} tHeladeria;

a) Hacer una función para agregar un nuevo gusto en la heladería. El nombre del gusto tiene que
ser único y el precio se le debe preguntar al usuario y debe ser mayor a 0.

b) Hacer una función que busque un gusto de la heladería por su nombre, la función debe
devolver un puntero al gusto o NULL en caso de no encontrarlo

c) Hacer una función para agregar un nuevo pedido. Se le debe preguntar al usuario su nombre y
qué gustos desea solicitar (por nombre).

d) Hacer una función que a partir del nombre de un gusto recibido como parámetro, devuelva un
vector de pedidos con todos los pedidos de la heladería que tengan ese gusto.

e) Hacer una función para ordenar un vector de pedidos según la cantidad de gustos de mayor a
menor con algún método visto en clase. Aclarar de qué método de ordenamiento se trate

f) Hacer una función para eliminar toda la memoria utilizada

g) Desarrollar el main. Se debe tener una heladería y preguntarle al usuario si quiere ingresar un
nuevo gusto hasta que no lo desee hacer más. (Utilizar función del punto a)
Luego se deben ir agregando pedidos de a uno (función del punto c) hasta que el usuario no
quiera ingresar más
Después se debe preguntar por un nombre de gusto y mostrar por pantalla los pedidos que
contengan ese gusto ordenados por la cantidad de gustos que tengan (funciones d y e)
Finalmente se debe eliminar toda la memoria del programa.

NOTA: Las funciones NO muestran los resultados en pantalla, mostrarlos SÓLO en el main.
______________________________________________________________________

Anda mungkin juga menyukai