Sunteți pe pagina 1din 15

SOLUCIÓN TAREA 3

1. Contesta las siguientes preguntas

a. ¿Qué son las estructuras de control? ¿cuántos y cuáles tipos hay?

Acciones que enen como objeto marcar el orden de ejecución de las instrucciones hay tres
pos

Secuencia

Selec vas o condicionales

Simples

Dobles

Múl ples

Repe vas o ciclos

Mientras

Hacer Mientras

b. ¿Cuál es la diferencia entre unas estructura selectiva simple y doble?

La selec va simple solo decide hacer o no una acción o un grupo de acciones, mientras
la selec va doble decide entre cualquiera de dos posibilidades.

c. ¿Qué restricción tiene la estructura selectiva múltiple?

Decide a par r de verifica casos específicos para una expresión, es decir que dicha
expresión tome determinado valor. Dichos valores solo pueden ser enteros.

d. ¿Al codificar las estructuras de control en C cuándo es necesario utilizar llaves?

Para la mayoría de las estructuras de control en C las llaves sólo se requieren cuando se
desea que se ejecute un bloque de instrucciones, excepto en el caso del switch y el do_while,
para las cuales las llaves son obligatoria.

e. ¿Qué significa anidar estructuras?

Meter una dentro de la otra.


2. Dada la definición de los siguientes conjuntos escribir una expresión booleana que determine
cuando un elemento (valor numérico) está en el conjunto.

EL conjunto de todos los números impares n%2≠0 ∧ n>10 ∧ n<100


mayores a 10 y menores a 100
El conjunto de todos los números pares que sean n%5=0 ∧ n%2=0
múltiplos de 5
El conjunto de todos los números enteros que NO n<10 ∨ n>20
estén en el intervalo (10,20)

Análisis:

Datos de entrada:
a: coeficiente a
b: coeficiente b
c: coeficiente c
d: coeficiente d
e: coeficiente e
f: coeficiente f

Datos de salida:
vx: valor de x
vy: valor de y

Proceso:

Si ae=bd no tiene solución


en otro caso
Diseño

Pseudocodigo

Inicio

Escribir "Ingresa el valor de los coeficientes del sistema de ecuaciones"


Escribir "a:"
Leer a
Escribir "b:"
Leer b
Escribir "c:"
Leer c
Escribir "d:"
Leer d
Escribir "e:"
Leer e
Escribir "f:"
Leer f

Si a*e=b*d Entonces
Escribir "El sistema no tiene solución"
SiNo
vx=(c*e-b*f)/(a*e-b*d)
vy=(a*f-c*d)/(a*e-b*d)
Escribir "Solucion: x=",vx,"y=",vy
FinSi

Fin

Diagrama de flujo
Codificación en C

#include <stdio.h>
#include <stdlib.h>

main(){

float a,b,c,d,e,f,vx,vy;

printf("Ingresa el valor de los coeficientes del sistema de ecuaciones\n");


printf("a:");
scanf("%f",&a);
printf("b:");
scanf("%f",&b);
printf("c:");
scanf("%f",&c);
printf("d:");
scanf("%f",&d);
printf("e:");
scanf("%f",&e);
printf("f:");
scanf("%f",&f);

if(a*e==b*d)
printf("El sistema no tiene solución");
else{

vx=(c*e-b*f)/(a*e-b*d);
vy=(a*f-c*d)/(a*e-b*d);
printf("Solucion: x=%.2f y=%.2f\n",vx,vy);
}

}
4. Dado el siguiente diagrama de flujo y suponiendo que se cumplen las condiciones c1, y c3,
indica que instrucciones se ejecutan y su orden, también reescribe el algoritmo en pseudocódigo
y en lenguaje C

Inicio
a1 a1;
a2 a2;
Si c1 entonces if(c1){
a3 a3;
a4 a4;}
sino else{
a5 a5;
Si c2 entonces if(c2)
a6 a6;
sino else
a7 a7;
Fin si_sino }
Fin si_sino
Si c3 entonces if(c3)
a8 a8;
Fin si
a9 a9;
Fin

Secuencia de acciones si C1 y C3 son verdaderas: a1,a2,a3,a4,a8,a9


Análisis

Datos de entradas:

A: coeficiente A
B: coeficiente B
C: coeficiente C

Datos de salida
Tipo de raíces “complejas” “reales”
x1: valor de la primera raíz
x2: valor de la segunda raíz

Proceso:

Si B2 < 4AC entonces se trata de raíces complejas conjugadas

donde la parte real se calcula como: xr= -B/2A


y la parte imaginaria es: xi=(√ |B2 - 4AC |)/2A

y por tanto se debe imprimir “x1=”,xr , ”+”,xi, ” i” y “x2=”,xr,”-”,xi,” i”

En caso contrario x1=-B+(√(B2 - 4AC)) /2A y x2=-B-(√(B2 - 4AC)) /2A


Diseño

Inicio
Imprimir "Ingresa los coeficientes de la ecuación(A,B,C):"
Leer A,B,C
det<-(B*B) - 4*A*C
Si det<0 Entonces
Imprimir "Las raices son complejas"
xr<--B/2*A
xi<-raiz(abs(det))/(2*A)
Imprimir "x1=",xr,"+",xi,"i"
Imprimir "x2=",xr,"-",xi,"i"
SiNo
Imprimir "Las raices reales"
x1=(-B+raiz(det))/(2*A)
x2=(-B-raiz(det))/(2*A)
Imprimir "x1=",x1," x2=",x2
FinSi
Fin
Código C

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

main(){

float A,B,C,x1,x2,xr,xi,det;

printf("Ingresa el valor de los coeficientes de la ecuación(A B C): \n");


scanf("%f %f %f",&A,&B,&C);
det=pow(B,2)-4*A*C;
if(det<0){

printf("Las raices son complejas\n");


xr=-B/(2*A);
xi=sqrt(abs(det))/(2*A);
printf("x1=%.2f + %.2f i\n", xr,xi);
printf("x2=%.2f - %.2f i\n", xr,xi);}
else{
printf("Las raices son reales\n");
x1=(-B+sqrt(det))/(2*A);
x2=(-B-sqrt(det))/(2*A);

printf(" x=%.2f y=%.2f\n",x1,x2);


}

}
Análisis
Datos de entrada:
a: lado a
b: lado b
c: lado c

Datos de salida
tipo de triángulo
A: angulo formado por los lados a y b
B: ángulo formado por los lados b y c
C: ángulo formado por los lados a y c

Proceso

Si a=b y b=c entonces es “equilatero”

Si a=b o b=c o c=a entonces es “isoceles”

Si a≠b y a≠c y c≠b entonces es “escaleno”

A=arccos(( a2+b2-c2 )/2ba) * (180/ π)


B=arccos(( c2+b2-a2 )/2bc) * (180/ π)
C=180-A+B
Diseño

Imprimir "Ingresa los lados del triángulo(a,b,c):"


Leer a,b,c
Si a+b>c y a+c >b y b+a>c entonces
Si a=b Entonces
Si b=c Entonces
Imprimir "El triángulo es equilatero"
SiNo
Imprimir "El triángulo es isoceles"
FinSi

SiNo
Si a=c Entonces
Imprimir "El triángulo es isoceles"
SiNo
Si c=b Entonces
Imprimir "El triángulo es isoceles"
SiNo
Imprimir "El triángulo es escaleno"
FinSi

FinSi
FinSi
Imprimir ( a*a+b*b-c*c )/(2*b*a)

A<-acos(( a*a+b*b-c*c )/(2*b*a)) * (180/ 3.1416)

Imprimir ( c*c+b*b-a*a )/(2*b*c)


B<-acos(( c*c+b*b-a*a )/(2*b*c)) * (180/ 3.1416)
C<-180-A-B

Imprimir "Los angulos del triángulo son: A=",A,"B=",B, "y C=",C


SiNo
Imprimir "No es un triángulo"
FinSi
Código C

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

main(){

float A,B,C,a,b,c;

printf("Ingresa los lados del triángulo(a b c): \n");


scanf("%f %f %f",&a,&b,&c);

if(a+b>c && b+c>a && c+a>b) {

if(a==b)
if(b==c) printf("Triángulo equilátero\n");
else
printf("Triángulo isoceles\n");
else
if(a==c) printf("Triángulo isoceles\n");
else
if(c==b) printf("Triángulo isoceles\n");
else printf("Triángulo escaleno\n");

A=acos((pow(a,2)+pow(b,2)-pow(c,2))/(2*b*a))*(180/M_PI);

B =acos((pow(c,2)+pow(b,2)-pow(a,2))/(2*b*c))*(180/M_PI);

C =180-A-B;
printf("Angulos internos en grados\n A=%.2f B=%.2f C=%.2f",A,B,C);

}else

printf("No es un triángulo\n");

7. Realiza un programa que muestre un menú con las opciones: 1) Calcular la Fuerza, 2) Calcular la
Aceleración, 3) Calcular la Masa. Y de acuerdo con la opción elegida realiza el conjunto de
instrucciones correspondiente.

Análisis

Datos de entrada
op: opción del menú

Si op es 1
a: aceleración
m: masa

Si op es 2
F: fuerza
m: masa

Si op es 3
a: aceleración
F: fuerza

Datos de salida

Si op es 1
F: fuerza

Si op es 2
a: aceleración

Si op es 3
m: masa

Proceso: F=m*a m=F/a a=F/m


Diseño
Inicio
Imprimir "1)Fuerza"
Imprimir "2)Aceleración"
Imprimir "3)Masa"

Imprimir "¿Qué deseas calcular?:"


Leer op

Segun op Hacer
1:
Imprimir "a="
leer a
Imprimir "m="
leer m
F=m*a
Imprimir "La Fuerza es:",F
2:
Imprimir "F="
leer F
Imprimir "m="
leer m
a=F/m
Imprimir "La aceleraciones es:",a
3:
Imprimir "F="
leer F
Imprimir "a="
leer a
m=F/a
Imprimir "La masa es:",m
De Otro Modo:
Imprimir "La opción no fue valida"
Fin Segun
Fin

Código C

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

main(){

float F,m,a;
int op;

printf(" 1)Fuerza\n 2)Aceleración \n 3)Masa\n");


printf("¿Qué deseas calcular?:");
scanf("%d",&op);

switch(op){
case 1: printf("a=");
scanf("%f",&a);
printf("m=");
scanf("%f",&m);
F=m*a;
printf("La Fuerza es:%.2f\n",F);
break;
case 2: printf("F=");
scanf("%f",&F);
printf("m=");
scanf("%f",&m);
a=F/m;
printf("La aceleración es:%.2f\n",a);
break;
case 3: printf("F=");
scanf("%f",&F);
printf("a=");
scanf("%f",&a);
m=F/a;
printf("La masa es:%.2f\n",m);
break;
default:
printf("La opción no fue valida\n");
}

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