Comput Ac Ional
Comput Ac Ional
Comput Ac Ional
ESCUELA : FISICA
TEMA :
- DESARROLLO DE PRÁCTICA
6 6
Y= 10>=6 Y= 10-6<=2 Y= 10-(6<=2)
Y= 1 Y= 4<=3 Y= 10-(0)
Y= 0 Y= 10
Datos de entrada: x
Datos de salida: f(x) = y
- Para −6 ≤ 𝑥 ≤ −2
Hacer 𝑦 = 4𝑒 𝑥+2
Mostrar ‘y’.
- Para −2 ≤ 𝑥 ≤ 2,5
Hacer 𝑦 = 𝑥 2
Mostrar ‘y’.
- Para 2,5 < 𝑥 ≤ 6
1
Hacer 𝑦 = (𝑥 + 6,5)3
Mostrar ‘y’.
for x=-6:0.5:-2
y1 = 4*exp(1)^(x+2);
fprintf('%10f %10f\n',x,y1)
end
for x=-1.5:0.5:2.5
y2 = x^2;
fprintf('%10f %10f\n',x,y2)
end
for x=3:0.5:6
y3 = (x+6.5)^(1/3);
fprintf('%10f %10f\n',x,y3)
end
a) ALGORITMO:
Datos de entrada: x
Datos de salida: f(x) = y
- Si −6 ≤ 𝑥 ≤ −2
Hacer 𝑦 = 4𝑒 𝑥+2
Mostrar ‘y’.
- Si −2 ≤ 𝑥 ≤ 2,5
Hacer 𝑦 = 𝑥 2
Mostrar ‘y’.
- Si 2,5 < 𝑥 ≤ 6
1
Hacer 𝑦 = (𝑥 + 6,5)3
Mostrar ‘y’.
function [ y ] = funcion7( x )
x=-6:6;
x=input('Ingrese: x= ');
if x>=-6
if x<=-2
y= 4*(exp(1)^(x+2))
end
end
if x>=-2
if x<=2.5
y = x^2
end
end
if x>2.5
if x<=6
y = (x+6.5)^(1/3)
end
end
end
Solución:
a) 5<=8-3. b) Y=7<3-1+6>2
5<=5 Y= 7<8>2
R= 5<=5 Y= 1>2
R= 1 Y= 0
𝟐𝟎
c) Y= (7<3)-1+(6>2) d) Y= 2*4+5==7+ 𝟒
Y= 0-1+1 Y= 8+5==7+5
Y= 0 Y= 13==12
Y= 0
4) Escriba un programa script que calcule las raíces reales de una
función cuadrática a𝑥 2 + bx + c = 0. Llame al fichero raicescuad.
Cuando el fichero se ejecute, éste debe pedir al usuario que
introduzca los valores de las constantes a, b y c. Para calcular las
raíces de la ecuación, el programa calculará el discriminante D:
D= 𝑏 2 – 4ac
Si D>0, el programa visualizará un mensaje del tipo: ´La ecuación
tiene dos raíces´, y los valores de las raíces se visualizarán en la
línea siguiente.
Si D=0, el programa visualizará un mensaje del tipo: ´La ecuación
tiene una raíz´, y los valores de la raíz se visualizarán en la línea
siguiente.
Si D<0, el programa visualizara un mensaje del tipo ´La ecuación
no tiene raíces reales´.
Ejecute el fichero script en la Ventana de Comandos tres veces para
calcular las soluciones de las siguientes ecuaciones:
a) 2𝑥 2 + 8x -3 = 0
b) 15𝑥 2 + 10x + 5 = 0
c) 18𝑥 2 + 12x + 2 = 0
Solución:
ALGORITMO:
Datos de entrada: a, b y c.
Datos de salida: x (raíces).
- Si 𝐷 < 0
Mostrar ‘La ecuación no tiene raíces reales.’
Solución:
ALGORITMO:
Datos de salida: A = []
A=[];
for k=1:4
for h=1:7
A(k,h) = k+h;
end
end A
6) Utilice bucles y sentencias condicionales para crear una matriz de
dimensión 5x8, en la cual el valor de cada elemento sea igual a la raíz
cuadrada de la suma de los índices de cada elemento, siempre que el
elemento no se encuentre en una columna o fila par. El valor de un
elemento que esté en una fila o columna par será igual a la suma del
cuadrado de los índices. (Los índices de un elemento de una matriz son
el número de fila y el número de columna que le corresponden.)
Solución:
ALGORITMO:
Datos de salida: A = []
A=[];
for k=1:5
for h=1:8
w=mod(k,2)==0;
v=mod(h,2)==0;
if w|v
A(k,h) = k^2 + h^2;
else
A(k,h) = (k+h)^(0.5);
end
end
end
Solución:
ALGORITMO:
Datos de entrada: m.
Datos de salida: S.
(−1)ℎ
- 𝐴= 2ℎ+1
- S = S+A
Paso 4: Fin del bucle.
Paso 5: Hacer x = S
Paso 6: Mostrar x.
A = ((-1)^h)*(1/(2*h+1));
S=S+A;
end
x=S
fprintf('x')
8) Escriba una función que ordene los elementos de una matriz. Utilice la
siguiente línea de definición de función: B = ordenarmatriz(A), donde A
será una matriz de cualquier tamaño, y B será otra matriz del mismo
tamaño de los elementos de A ordenados de manera ascendente, fila
por fila. De esta forma, los elementos B (1,1) y B (m, n) serian,
respectivamente, los elementos menor y mayor de la matriz ordenada.
Pruebe posteriormente esta función en una matriz de dimensión 4x7,
con números enteros generados aleatoriamente y distribuidos entre -30
y 30. Utilice la función rand de MATLAB para general la matriz inicial.
Solución:
ALGORITMO:
Matriz inicial: A = []
Matriz de salida: B = []
if b>a
A = randi([a b],m,n);
B = A;
else
disp('Error... Límite Inferior es mayor o igual al Límite
Superior...')
end
for k=1:n
for i=1:m
for j=1:n-1
if B(i,j)>=B(i,j+1)
aux=B(i,j);
B(i,j)=B(i,j+1);
B(i,j+1)=aux;
end
end
end
end
disp('Matriz ordenada ascendentemente: ')
B
end
B =
-25 13 15 18 18 21 27
-29 -28 -22 -7 20 26 28
-14 -5 -4 9 10 11 12
-28 -28 -20 -11 -7 16 25
9)
Sea el vector x = [1:50]. Escriba un programa en un fichero SCRIPT que
borre del vector x aquellos elementos que son divisibles por 3, 4 ó 5. Al
final, el programa debe mostrar el vector resultante.
Solución:
ALGORITMO:
x = [1:50];
for k=1:50
v=mod(x,3)==0;
pos=find(v);
x(pos)=[];
w=mod(x,4)==0;
pos=find(w);
x(pos)=[];
r=mod(x,5)==0;
pos=find(r);
x(pos)=[]
break
end
10) Escriba una función MATLAB que calcule las coordenadas polares de
un punto correspondiente a un sistema de coordenadas cartesianas, en
un plano de dos dimensiones. Utilice la siguiente línea de definición de
función para ello: [theta radio] = cartesianoAPolar (x, y). Los argumentos
de entrada serán las coordenadas cartesianas x e y del punto, y los
argumentos de salida serán el ángulo 𝜃 y la distancia radial (radio) al
punto de cuestión. El ángulo 𝜃 vendrá dado en grados, y su medida será
relativa al eje x positivo, de tal forma que sea un número positivo en los
cuadrantes I, II y III, y un número negativo en el cuadrante IV. Utilice
posteriormente esta función para calcular las coordenadas polares de
los puntos: (15,3), (-7,12), (-17,-9) y (10,-6.5).
Solución:
ALGORITMO:
Datos de entrada: x, y.
Datos de salida: r, theta.
end
if x<0 & y>0
theta=acos(x/r)*(180/pi)
end
if x<0 & y<0
theta=180+atan(y/x)*(180/pi)
end
if x>0 & y<0
theta=-acos(x/r)*(180/pi)
end
end