Vous êtes sur la page 1sur 15

PROGRAMACION DIGITAL MA713-I 120

PROBLEMAS DE 
PROBLEMAS DE
CO I ICACIO
CODIFICACION
PROGRAMACION DIGITAL MA713-I 121

Problema1: Área de triángulos


PROGRAMACION DIGITAL MA713-I 122

Y
2,3

6,2

13,1.2
S1 S6
S3 S5
X
0,0 S4
15,-0.4
9,-1
S2

x2,y2 x3,y3
Area = 17.111

4,-5
,
Entrada Salida 0,0 xi xi xj
tol Area
x2,y2
2 2
x3,y3 x3,y3 x2,y2
PROGRAMACION DIGITAL MA713-I 123

/ Area de triángulos*/
/*Area triángulos /
#include<stdio.h>
# c ude at .
#include<math.h>
int main()
{float x1=0,y1=0,x2,y2,x3,y3,tol,area=0,xi,xj;
{ ,y , ,y , ,y , , , , j;
int i;
printf("Tolerancia: "); scanf("%f",&tol);
p
printf("V1=0,0\n");
printf("V2="); scanf("%f,%f",&x2,&y2);
i=2;
do {i++;
printf("V%d=",i); scanf("%f,%f",&x3,&y3);
if(i==3)
{xi=x2+(x3-x2)/(y3-y2)*(-y2);
/
area=area+xi*fabs(y2)/2;
}
PROGRAMACION DIGITAL MA713-I 124

else
{xj=x2+(x3-x2)/(y3-y2)*(-y2);
a ea a ea ( j
area=area+(xj-xi)*fabs(y2)/2;
) abs(y )/ ;
xi=xj;
}
x2=x3;
y y
y2=y3;
}
while(fabs(y3)>=tol);
area=area+(x3-xi)*fabs(y3)/2;
printf("Area = %.3f\n",area);
system("pause");
}
PROGRAMACION DIGITAL MA713-I 125

Problema2: Sección Transversal de una Quebrada


PROGRAMACION DIGITAL MA713-I 126

Problema2: Sección Transversal de una Quebrada

x1,y1
Entrada Salida x2,y2
x1 y1
x1,y1 y1-ymin
y1 ymin CASO1 CASO2 CASO3
x2,y2 A
T 2 2
x2,y2 x1,y1
Hm x2,y2 x1,y1
PROGRAMACION DIGITAL MA713-I 127

VARIABLE
SUBINDICADA

Arreglo Lineal
l l
PROGRAMACION DIGITAL MA713-I 128

Variable Subindicada

Es una variable que almacena un conjunto de valores


del mismo tipo de dato.
dato
Cada valor del conjunto se identifica con un subíndice
entero (0,
(0 1,
1 2,…).
2 )
También se le denomina arreglo.

Tipos:
• Arreglo
A l Lineal:
Li l un solo
l subíndice
bí di (vector)*
( t )*
• Arreglo Bidimensional: dos subíndices (matriz)
• Arreglo
A l Multidimensional:
M l idi i l tres o mas subíndices
bí di

* Una cadena de caracteres equivale a un arreglo lineal de caracteres


PROGRAMACION DIGITAL MA713-I 129

Arreglo Lineal

Tiene un solo subíndice.

Declaración: tipo nombre_arreglo[N° elementos];

Ejemplo: int x[50];

x[0] x[1] x[2] … x[49]

subíndice
50 elementos
PROGRAMACION DIGITAL MA713-I 130

Arreglo Lineal

Lectura y Escritura:
scanf(“formato”
scanf( formato ,&elemento[i-ésimo]);
&elemento[i ésimo]);

printf(“formato”
printf( formato ,elemento[i-ésimo]);
elemento[i ésimo]);
~
Ejemplo: Leer
scanf(“%d”, &x[i]); xi

~
~
printf(“%d”, x[i]); Escribir
xi
PROGRAMACION DIGITAL MA713-I 131

Ejemplo con arreglo lineal


Calcular la longitud de una poligonal cerrada de n
vértices.
x1,y1 (x4,y4)
x2,y2
x3,y3 (xn,yn)
… (x3,y3)
… X
xn,yn (x1,y
y1)
(x2,y2)
Y
PROGRAMACION DIGITAL MA713-I 132

Diagrama de Flujo
Inicio 
Leer
n i  1 .. n

i  1 .. n
L L x i  x i1 2  y i  y i1 2
Leer
xi,yi

Escribir
L
xn+1  x1
Fin
yn+1  y1

L0


PROGRAMACION DIGITAL MA713-I 133

/ Ejemplo de Arreglos lineales


/*Ejemplo lineales*/
/
#include<stdio.h>
#include<math.h>
int main()
{ int n,i;
, double L=0,x[100],y[100];
, [ ],y[ ]
printf("n: "); scanf("%d",&n);
for(i=1; i<=n; i++)
{printf("x%d,y%d: ",i,i);
scanf("%lf,%lf",&x[i],&y[i]);
}
x[n+1]=x[1];
y[n+1]=y[1];
[ 1] [1]
for(i=1; i<=n; i++)
L+ sqrt(po ( [i] [i+1] 2)+po ( [i] [i+1] 2))
L+=sqrt(pow(x[i]-x[i+1],2)+pow(y[i]-y[i+1],2));
printf("L=%lf\n",L);
system( pause );
system("pause");
}
PROGRAMACION DIGITAL MA713-I 134

Ejercicios

• Dado un arreglo de n elementos, determinar la


media y la desviación estándar.
estándar

• Dado un arreglo de N elementos,


elementos determinar cual
es el valor que más veces se repite y cuántas
veces se presenta.
t

• D
Dado
d una matriz i ded orden
d n, guardarla
d l en un
arreglo lineal x de n2 elementos y escribirlo en
pantalla por filas y columnas.

Vous aimerez peut-être aussi