Академический Документы
Профессиональный Документы
Культура Документы
Gonzalo Müller
Problema Resuelto
Construir un programa modular con acoplamiento de datos básico con estructuras en C++ para:
Determinar cual
Análisis
gmullerb@mail.com
Prof. Gonzalo Müller
UML de estructuras
RECTANGULO RESULTADOS
x: real mayorancho: RECTANGULO
y: real menorancho: RECTANGULO
letra: carácter mayorarea: RECTANGULO
ancho: real menorarea: RECTANGULO
alto: real mayordiag: RECTANGULO
área: real menordiag: RECTANGULO
diagonal: real masarr: RECTANGULO
x2: real masaba: RECTANGULO
y2: real masder: RECTANGULO
masizq: RECTANGULO
Rectángulos
Tabla de Módulos
gmullerb@mail.com
Prof. Gonzalo Müller
Fase 1
Análisis
Rectángulo Rectángulo
(x, y, ancho, alto, letra) (x, y, ancho, alto, letra)
RECTANGULO
x: real
y: real
letra: carácter
ancho: real
alto: real
Rectángulos
leerRectangulo escribirRectangulo
Código Fuente
#include <stdio.h>
#include <stdlib.h>
struct RECTANGULO
{
char letra;
float x,y;
float ancho, alto;
};
gmullerb@mail.com
Prof. Gonzalo Müller
RECTANGULO leerRectangulo();
void escribirRectangulo(RECTANGULO rect);
main()
{
RECTANGULO recta;
//
recta= leerRectangulo();
escribirRectangulo(recta);
}
RECTANGULO leerRectangulo()
{
RECTANGULO rect;
//
printf("x:");
scanf("%f", &rect.x);
printf("y:");
scanf("%f", &rect.y);
printf("Ancho:");
scanf("%f", &rect.ancho);
printf("Alto:");
scanf("%f", &rect.alto);
printf("Letra:");
scanf("%c", &rect.letra);
scanf("%c");
//
return rect;
}
gmullerb@mail.com
Prof. Gonzalo Müller
Fase 2
Análisis
Rectángulo Rectángulo
(x, y, ancho, alto, letra) (x, y, ancho, alto, letra,
RECTANGULO
x: real
y: real
letra: carácter
ancho: real
alto: real
área: real
diagonal: real
x2: real
y2: real
Rectángulos
Código Fuente
#include <stdio.h>
gmullerb@mail.com
Prof. Gonzalo Müller
#include <stdlib.h>
#include <math.h>
struct RECTANGULO
{
char letra;
float x,y;
float x2,y2;
float ancho, alto;
double area, diagonal;
};
RECTANGULO leerRectangulo();
void escribirRectangulo(RECTANGULO rect);
RECTANGULO calcularRectangulo(RECTANGULO rect);
main()
{
RECTANGULO recta;
//
recta= leerRectangulo();
recta= calcularRectangulo(recta);
escribirRectangulo(recta);
}
RECTANGULO leerRectangulo()
{
RECTANGULO rect;
//
printf("x:");
scanf("%f", &rect.x);
printf("y:");
scanf("%f", &rect.y);
printf("Ancho:");
scanf("%f", &rect.ancho);
printf("Alto:");
scanf("%f", &rect.alto);
printf("Letra:");
scanf("%c", &rect.letra);
scanf("%c");
//
return rect;
gmullerb@mail.com
Prof. Gonzalo Müller
gmullerb@mail.com
Prof. Gonzalo Müller
Fase 3
Código Fuente
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
struct RECTANGULO
{
char letra;
float x,y;
float x2,y2;
float ancho, alto;
double area, diagonal;
};
RECTANGULO leerRectangulo();
void escribirRectangulo(RECTANGULO rect);
RECTANGULO calcularRectangulo(RECTANGULO rect);
main()
{
RECTANGULO recta;
unsigned short k, cantidad;
//
printf("Cantidad de Rectangulos:");
scanf("%hu", &cantidad);
k= 0;
do
{
printf("Rectangulo %u\n", k+1);
recta= leerRectangulo();
recta= calcularRectangulo(recta);
escribirRectangulo(recta);
k = k+1;
}
while(k < cantidad);
}
RECTANGULO leerRectangulo()
{
RECTANGULO rect;
//
printf("x:");
scanf("%f", &rect.x);
gmullerb@mail.com
Prof. Gonzalo Müller
printf("y:");
scanf("%f", &rect.y);
printf("Ancho:");
scanf("%f", &rect.ancho);
printf("Alto:");
scanf("%f", &rect.alto);
printf("Letra:");
scanf("%c", &rect.letra);
scanf("%c");
//
return rect;
gmullerb@mail.com
Prof. Gonzalo Müller
Fase 4
Análisis
RESULTADOS
mayorancho: RECTANGULO
menorancho: RECTANGULO
mayorarea: RECTANGULO
menorarea: RECTANGULO
mayordiag: RECTANGULO
menordiag: RECTANGULO
masarr: RECTANGULO
masaba: RECTANGULO
masder: RECTANGULO
masizq: RECTANGULO
Rectángulos
Código Fuente
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
struct RECTANGULO
{
char letra;
float x,y;
float x2,y2;
float ancho, alto;
double area, diagonal;
};
struct RESULTADOS
{
RECTANGULO masancho;
RECTANGULO menosancho;
RECTANGULO masalto;
RECTANGULO menosalto;
RECTANGULO masarea;
RECTANGULO menosarea;
RECTANGULO masdiagonal;
RECTANGULO menosdiagonal;
RECTANGULO masizq;
RECTANGULO masder;
RECTANGULO masarr;
RECTANGULO masaba;
};
RECTANGULO leerRectangulo();
void escribirRectangulo(RECTANGULO rect);
RECTANGULO calcularRectangulo(RECTANGULO rect);
RESULTADOS inicializarResultados();
RESULTADOS compararRectangulo(RESULTADOS res, RECTANGULO rect);
void escribirResultados(RESULTADOS res);
main()
{
RECTANGULO recta;
unsigned short k, cantidad;
RESULTADOS resultados;
//
printf("Cantidad de Rectangulos:");
scanf("%hu", &cantidad);
k= 0;
gmullerb@mail.com
Prof. Gonzalo Müller
resultados = inicializarResultados();
do
{
printf("Rectangulo %u\n", k+1);
recta= leerRectangulo();
recta=calcularRectangulo(recta);
resultados = compararRectangulo(resultados, recta);
escribirRectangulo(recta);
k = k+1;
}
while(k < cantidad);
escribirResultados(resultados);
}
RECTANGULO leerRectangulo()
{
RECTANGULO rect;
//
printf("x:");
scanf("%f", &rect.x);
printf("y:");
scanf("%f", &rect.y);
printf("Ancho:");
scanf("%f", &rect.ancho);
printf("Alto:");
scanf("%f", &rect.alto);
printf("Letra:");
scanf("%c", &rect.letra);
scanf("%c");
//
return rect;
gmullerb@mail.com
Prof. Gonzalo Müller
RESULTADOS inicializarResultados()
{
RESULTADOS res;
//
res.masancho.ancho = -9999;
res.menosancho.ancho = 99999;
res.masalto.alto = -99999;
res.menosalto.alto = 999999;
res.masarea.area = -9999;
res.menosarea.area = 99999;
res.masdiagonal.diagonal = -99999;
res.menosdiagonal.diagonal = 99999;
res.masizq.x = 99999;
res.masder.x2 = -99999;
res.masarr.y = -99999;
res.masaba.y2 = 9999999;
//
return res;
}
gmullerb@mail.com
Prof. Gonzalo Müller
{
res.menosdiagonal = rect;
}
if(rect.x > res.masizq.x)
{
res.masizq = rect;
}
if(rect.x2 < res.masder.x2)
{
res.masder = rect;
}
if(rect.y > res.masarr.y)
{
res.masarr = rect;
}
if(rect.y2 < res.masaba.y2)
{
res.masaba = rect;
}
//
return res;
}
gmullerb@mail.com