Sunteți pe pagina 1din 14

PROGRAMACION DIGITAL - CB412 CICLO 2015-2 32

UNIVERSIDADNACIONALDEINGENIERIA
FACULTADDEINGENIERIACIVIL

PROGRAMACIONDIGITAL
LABORATORIO N 3
CICLO 2015-2

WILFREDO CUPE ROMN


PROGRAMACION DIGITAL - CB412 CICLO 2015-2 33

LaboratorioN3
Objetivos
Utilizar Sentencias de Ejecucin:
Lectura
Escritura
Decisin
PROGRAMACION DIGITAL - CB412 CICLO 2015-2 34

Ejercicio
Dados las coordenadas de una poligonal cerrada
de n puntos (x,y). Determinar su permetro y su
menor lado.

Entrada
n L3
x1 y1
Ln (x3,y3)
x2 y2
X
L2
xn yn (x1,y1)
L1 (x2,y2)
Y
Salida
Permetro = 123.456
Lado menor = L3
PROGRAMACION DIGITAL - CB412 CICLO 2015-2 35

Diagrama de Flujo 2
3

3
PROGRAMACION DIGITAL - CB412 CICLO 2015-2 36

Pseudo cdigo PSeInt


ProcesoPoligonal_Cerrada d<RC((x1copiax2)^2+(y1copiay2)^2)
Escribir 'Nro Vertices' perim<perim+d
Leer n Si d<dmin Entonces
Escribir 'Vertice1' dmin<d
Leer x1,y1 lmin<n
x1copia<x1 FinSi
y1copia< y1 Escribir 'Perimetro=',perim
i<2 Escribir 'LadoMenor=L',lmin
perim<0 FinProceso
Mientras i<=nHacer
Escribir 'Vertice',i
Leer x2,y2
d<RC((x1x2)^2+(y1y2)^2)
perim<perim+d
Si i=2Entonces
dmin<d
lmin<1
Sino
Si d<dmin Entonces
dmin<d
lmin<i1
FinSi
FinSi
x1<x2
y1<y2
i<i+1
FinMientras
PROGRAMACION DIGITAL - CB412 CICLO 2015-2 37

Codificacin C
#include<stdio.h>
#include<math.h>
int main(){
float d,dmin,perim,x1,x1copia,x2,y1,y1copia,y2; int i,lmin,n;
printf("Nro Vertices:"); scanf("%d",&n);
printf("Vertice1:"); scanf("%f%f",&x1,&y1);
x1copia= x1; y1copia= y1; i= 2; perim = 0;
while (i<=n){
printf("Vertice%d:",i); scanf("%f%f",&x2,&y2);
d= sqrt(pow((x1x2),2)+pow((y1y2),2));
perim = perim+d;
if (i==2){
dmin = d; lmin = 1;
} else {
if (d<dmin){
dmin = d; lmin = i1;
}
}
x1= x2; y1= y2; i= i+1;
}
d= sqrt(pow((x1copiax2),2)+pow((y1copiay2),2));
perim = perim+d;
if (d<dmin){
dmin = d; lmin = n;
}
printf("Perimetro =%7.3f\n",perim); printf("LadoMenor=L%d\n",lmin);
}
PROGRAMACION DIGITAL - CB412 CICLO 2015-2 38

Lectura
Leer
scanf(formato,&Var);
Var

Especificadores de formato
%c carcter
%d entero
%ld entero largo
%f punto flotante
%lf doble precisin
%g punto flotante o notacin cientfica
con signo, el que sea ms corto
PROGRAMACION DIGITAL - CB412 CICLO 2015-2 39

Ejemplos de Lectura
Leer Leer

n x1,y1

scanf(%d,&n);

scanf(%f,&x1);
scanf(%f,&y1);

scanf(%d %f %f,&n,&x1,&y1);
PROGRAMACION DIGITAL - CB412 CICLO 2015-2 40

Escritura

Escribir
printf(formato,Var);
Var

Secuencias de Escape
\n salto de lnea
\t tabulador
\ doble comilla
\\ diagonal
PROGRAMACION DIGITAL - CB412 CICLO 2015-2 41

Especificadores de Formato

Especificadores Efecto
Adicionales
Ancho Justifica a la derecha
.Precisin Redondea al n de decimales
- Justifica a la izquierda
+ Muestra el signo del valor
0 Llena con ceros segn el ancho
PROGRAMACION DIGITAL - CB412 CICLO 2015-2 42

Ejemplos de Escritura
Escribir Escribir

Perimetro=,perim Lado menor= L,lmin

printf(Perimetro= %f,perim);
printf(Perimetro= %f\n,d);
printf(Perimetro= %.3f\n,d);

printf(Perimetro= %7.3f\n,d);

printf(Lado menor= L%d\n,lmin);


PROGRAMACION DIGITAL - CB412 CICLO 2015-2 43

Decisin

V F
Condicin

V
Sentencias F
Sentencias

if(Condicin){
Sentencias V;
}
else {
Sentencias F;
}
PROGRAMACION DIGITAL - CB412 CICLO 2015-2 44

Ejemplos de Decisin

if (i==2){
dmin = d; lmin = 1;
} else {
if (d<dmin){
dmin = d; lmin = i1;
}
}
PROGRAMACION DIGITAL - CB412 CICLO 2015-2 45

Ejercicios Propuestos

2. Realizar un programa que encuentre el valor de


e con un error menor a 10-4, dado que el valor
del exponencial para un valor de x se puede
expresar mediante la serie:

3. Dadas las coordenadas (x,y) de una poligonal


convexa de n puntos, calcular su rea y el lado
de mayor longitud.

S-ar putea să vă placă și