Está en la página 1de 27

INFORME DE SCILAB

PROGRAMACIÓN Y COMPUTACIÓN
F.Q.I.Q. E. P. DE INGENIERIA QUIMICA

PROFESOR
Jose O. Calvay Castillo

ALUMNO

Velasquez Valencia Roger Jack

Lima, Perú
ÍNDICE

CONTENIDO
INTRODUCCIÓN............................................................................................................................. 3
DIAGRAMA DE FLUJO ................................................................................................................. 4
EJERCICIO CON CÓDIGO DE SCILAB ..................................................................................... 5
CONCLUSIONES ........................................................................................................................... 16
BIBLIOGRAFÍA ............................................................................................................................. 22
ANEXOS .......................................................................................................................................... 22

2
INTRODUCCIÓN

En 1994 se lanzó la primera versión del software scilab desarrollado por Scilab

Enterprises. Esta es una herramienta de programación con una cantidad de usuarios en

crecimiento ya que cuenta con un lenguaje de alto nivel para el cálculo científico y es de

gran importancia para muchos ingenieros y profesionales relacionados con la ciencia, así

como también para los estudiantes ya que este software es gratuito y de gran versatilidad

porque está disponible para muchos sistemas operativos como Linux, Mac, Windows, etc.

Scilab cuenta con 1700 funciones matemáticas, con lo cual se pueden realizar operaciones y

análisis de datos aplicados a la estadística. También sirve para diseñar sistemas de control,

crear gráficos en 2D y 3D y crear algoritmos que ayuden a resolver problemas de

optimización, además scilab puede actuar como una plataforma en donde se pueden unir

varios lenguajes de programación, unificándola y así permitiendo desarrollar aplicaciones.

3
DIAGRAMA DE FLUJO

Inicio

i=0

j=0

i=1 ; i<=5 ; i++

j=1 ; j<=5 ; j++

v(i,j)=r

a=0

b=0

sump=0

4
1

sump=0

i=0

j=0

i=1 ; i<=5 ; i++

j=1 ; j<=5 ; j++

no si
modulo(v(i,j),2)==0

b=b+1 a=a+1

sumi=sumi+v(i,j) sump=sump+v(i,j)

promp=sump/a

promi=promi/b

5
2

disp(a)

disp.(promp)

disp.(b)

disp(promi)

no
n==1

si

disp(“MENU”)

disp.(“1_buscar un numero”)

disp.(“2_modificar alguna columna”)

disp(“3_modificar alguna fila”)

disp(“4_ modificar fila o columna”)

disp.(“5_eliminar la matriz y salir”)

Profesor para cada una de estas opciones,


el diagrama de flujo es muy parecido a los
bucles de la primera parte

fin

6
ESTRUCTURAS DE CONTROL EN SCILAB

Las estructuras de control en scilab permiten que el flujo de las instrucciones cambien de

dirección, están estructuras pueden se bucles, condicionales, etc. Para este ejercicio se

utilizó el condicional if, el bucle while y principalmente se usó un bucle muy conocido en

casi todos los lenguajes de programación, el cual es For, en este bucle se puede indicar

anticipadamente el número mínimo de iteraciones. Este consta de 4 elementos:

 Variable de control: es la variable del bucle, generalmente se representa con la

letra “i” de iteración.

 condición de control: indica el valor máximo que puede tomar la variable de

control.

 Incremento: es la magnitud del incremento de la variable de control en cada

iteración. Normalmente los lenguajes de programación toman por defecto el valor

de 1, pero este valor puede modificar según lo que se necesite.

 Cuerpo: es lo que se hace en cada iteración, pueden ser una o más operaciones.

Además se hizo uso de matrices y vectores. Una matriz es un conjunto ordenado en una

estructura de filas y columnas. Los elementos de este conjunto pueden ser objetos

matemáticos de muy variados tipos. Normalmente las matrices son designadas por letras

mayúsculas. Los elementos de una matriz se identifican por la fila y la columna que

ocupan. El número de filas y columnas que tiene una matriz se llama dimensión de la

matriz, lo que nos permite hablar de la existencia de matrices multidimensionales, aunque

las más fáciles de imaginar son los de una, dos y tres dimensiones.

7
Además, los vectores son zonas de almacenamiento contiguo y que conforman una matriz.

Estas estructuras de datos son adecuadas para situaciones en las que el acceso a los datos se

realice de forma aleatoria e impredecible. Por el contrario, si los elementos pueden estar

ordenados y se va a utilizar acceso secuencial sería más adecuado utilizar una lista, ya que

esta estructura puede cambiar de tamaño fácilmente durante la ejecución de un programa.

8
EJERCICIO CON CÓDIGO DE SCILAB

EJERCICIO:

Generar una matriz de 5 * 5, luego de ser generada preguntar si deseo saber la cantidad de

números pares que hay, luego preguntar si deseo saber su promedio de los datos pares,

después preguntar si deseo saber la cantidad de números impares, luego preguntar si deseo

saber su promedio de los datos impares. Luego preguntar si deseo salir del programa si es si

sale del programa si es no preguntar si deseo buscar un número de la matriz, luego me debe

mostrar el número de veces que se repite el número indicado. Luego me debe preguntar si

deseo modificarlo. Luego me debe mostrar la matriz modificada y debe guardarme el

número de cambios hechos en la matriz. una vez hecho esto me debe mostrar en un solo

mensaje por columnas los números pares e impares junto a su promedio y el número de

veces que ha sido modificada la matriz.

Luego me debe preguntar si deseo eliminar la matriz, si es si elimina la matriz y salgo del

programa, si es no me pregunta si deseo modificar alguna columna de la matriz una vez

cambiados los datos debe guardar el número de veces que ha sido modificada la matriz y

me debe mostrar en un solo mensaje por columnas los números pares e impares junto a su

promedio y el número de veces que ha sido modificada la matriz.

luego me debe preguntar si deseo eliminar la matriz, si es si elimina la matriz y salgo del

programa, si es no me pregunta si deseo modificar alguna fila de la matriz una vez

cambiados los datos debe guardar el número de veces que ha sido modificada la matriz y

9
me debe mostrar en un solo mensaje por columnas los nros pares e impares junto a su

promedio y el número de veces que ha sido modificada la matriz.

Luego me debe preguntar si deseo eliminar la matriz, si es si elimina la matriz y salgo del

programa, si es no me pregunta si deseo modificar alguna fila o columna de la matriz una

vez cambiados los datos debe guardar el número de veces que ha sido modificada la matriz

y me debe mostrar en un solo mensaje por columnas los números pares e impares junto a su

promedio y el número de veces que ha sido modificada la matriz.

SOLUCION EN CODIGO DE SCILAB:

10
11
12
13
14
PRUBA DE ESCRITORIO CON UN VECTOR DE 4 NÚMEROS

Se creó la matriz y se muestran sus datos.

Como se dio a seguir en el programa, se creó un menú. Se dio también la opción de

eliminar la matriz y finalizar el programa.

15
Se eligió la opción 1, se pidió el número a buscar y se preguntó si se quiere modificar esos datos.
Luego se mostraron los datos de la matriz modificada.

16
Se mostró de nuevo el menú. Se dio también la opción de eliminar la matriz y finalizar el

programa, pero se eligió la opción 2 y se mostró los resultados de la matriz modificada.

17
Se mostró de nuevo el menú. Se dio también la opción de eliminar la matriz y finalizar el

programa, pero se eligió la opción 3 y se mostró los resultados de la matriz modificada.

18
Se mostró de nuevo el menú. Se dio también la opción de eliminar la matriz y finalizar el

programa, pero se eligió la opción 4 y cambiar fila y columna. Luego se mostró los

resultados de la matriz modificada.

19
Luego se mostró de nuevo el menú y se eligió la opción 5 para eliminar la matriz y finalizar el
programa.

20
CONCLUSIONES
Se puede concluir que para resolver ejercicios complejos es necesario mantener el orden y

la lógica de programación, por esto al principio se creó un diagrama de flujo. Luego, este se

transformó en algoritmo usando el software scilab. En este punto se concluye que el

problema presentado no se podía resolver solo con la estructura de control if, puesto que se

necesitó que la dirección de la programación retorne a un punto ya conocido y repita las

instrucciones un determinado número de veces, por lo que se usó el bucle For y while.se.

Además de concluye que las matrices y vectores pueden ser modificados al antojo con la

programación.

21
BIBLIOGRAFÍA

 https://x-engineer.org/graduate-engineering/programming-

languages/scilab/display-data-in-scilab-using-the-disp-function/

 https://es.slideshare.net/DavidCastro72/resolucion-ejercicios-scilab

 https://help.scilab.org/doc/5.3.3/en_US/printf.html

 https://help.scilab.org/docs/6.0.1/en_US/disp.html

ANEXOS

22
CÓDIGO DE SCILAB

clear;
function mat()
for i=1:5
for j=1:5
v(i,j)=input("ingrese el valor de la matriz: ");
end
end
disp("LA MATRIZ MADRE ES: ")
disp(v);
//pares e impares
a=0;
b=0;
sump=0;
sumi=0;
for i=1:5
for j=1:5
if modulo(v(i,j),2)==0 then
a=a+1;
sump=sump+v(i,j);
else
b=b+1;
sumi=sumi+v(i,j);
end
end
end
promp=sump/a;
promi=sumi/b;

disp("el numero de pares es: ");


disp(a);

disp("el promedio de pares es: ");


disp(promp);

disp("el numero de impares es: ");


disp(b);

disp("el promedio de impares es: ");


disp(promi);

disp("¿quiere salir del programa?");

n=input("dijite 1 si desea continuar y 0 si desea finalizar el programa: ")


cambios=0;
if(n==1)then
k=1;
while k==1
disp("-----------------------------------------------------------");
disp("MENU");
disp("1_buscar un valor en la matriz");
disp("2_modificar alguna columna de la matriz");
disp("3_modificar alguna fila de la matriz");
disp("4_modificar alguna fila o columna de la matriz");

23
disp("5_eliminar matriz y salir del programa");
disp("-----------------------------------------------------------");
p=input("ingrese la accion a realizar: ");

select p
case 1
//buscar un numero
c=0;
y=input("ingrese el numero a buscar: ");
for i=1:5
for j=1:5
if(v(i,j)==y)then
c=c+1;
end
end
end
disp("el numero de veces que se repite el numero es:");
disp(c);
disp("¿quiere modificar este numero?");
n=input("dijite 1 si desea hacerlo y 0 si desea finalizar el programa: ")
if(n==1)then
for i=1:5
for j=1:5
if(v(i,j)==y)then
v(i,j)=input("ingrese un nuevo dato: ");
cambios=cambios+1;
end
end
end
disp("LA MATRIZ MODIFICADA ES: ")
disp(v);
a=0;
b=0;
sump=0;
sumi=0;
for i=1:5
for j=1:5
if modulo(v(i,j),2)==0 then
a=a+1;
sump=sump+v(i,j);
u1(a)=v(i,j);
else
b=b+1;
sumi=sumi+v(i,j);
z1(b)=v(i,j);
end
end
end
promp=sump/a;
promi=sumi/b;
disp("DATOS DE LA NUEVA MATRIZ");
disp("numeros pares");
disp(u1);
disp("promedio de numeros pares");
disp(promp);

24
disp("numeros impares");
disp(z1);
disp("promedio de numeros impares");
disp(promi);
disp("numero de modificaciones");
disp(cambios);
else
k=0;
end

case 2
//modificar una columna
cambios=0;
d=input("ingrese el numero de la columna a modificar: ");
for j=d
for i=1:5
v(i,j)=input("ingrese un valor para reemplazar: ");
cambios=cambios+1
end
end
disp("LA MATRIZ MODIFICADA ES: ");
disp(v);
a=0;
b=0;
sump=0;
sumi=0;
for i=1:5
for j=1:5
if modulo(v(i,j),2)==0 then
a=a+1;
sump=sump+v(i,j);
u2(a)=v(i,j);
else
b=b+1;
sumi=sumi+v(i,j);
z2(b)=v(i,j);
end
end
end
promp=sump/a;
promi=sumi/b;
disp("DATOS DE LA NUEVA MATRIZ");
disp("numeros pares");
disp(u2);
disp("promedio de numeros pares");
disp(promp);
disp("numeros impares");
disp(z2);
disp("promedio de numeros impares");
disp(promi);
disp("numero de modificaciones");
disp(cambios);
case 3
//modificar fila
cambios=0;
d=input("ingrese la fila a modificar: ");

25
for i=d
for j=1:5
v(i,j)=input("ingrese un valor para reemplazar: ");
cambios=cambios+1;
end
end
disp("LA MATRIZ MODIFICADA ES: ");
disp(v);
a=0;
b=0;
sump=0;
sumi=0;
for i=1:5
for j=1:5
if modulo(v(i,j),2)==0 then
a=a+1;
sump=sump+v(i,j);
u3(a)=v(i,j);
else
b=b+1;
sumi=sumi+v(i,j);
z3(b)=v(i,j);
end
end
end
promp=sump/a;
promi=sumi/b;
disp("DATOS DE LA NUEVA MATRIZ");
disp("numeros pares");
disp(u3);
disp("promedio de numeros pares");
disp(promp);
disp("numeros impares");
disp(z3);
disp("promedio de numeros impares");
disp(promi);
disp("numero de modificaciones");
disp(cambios);
case 4
//modificar fila o columna
d=0;
e=0;
d=input("si desea modificar alguna columna introduzca el numero de la columna, caso contrario dijite 0: ");
e=input("si desea modificar alguna fila introduzca el numero de la fila, caso contrario dijite 0: ");
if(d>0)then
//modificar una columna
cambios=0;
for j=d
for i=1:5
v(i,j)=input("ingrese un valor de columna para reemplazar: ");
cambios=cambios+1
end
end
end

if(e>0)then

26
//modificar fila
for i=e
for j=1:5
v(i,j)=input("ingrese un valor de fila para reemplazar: ");
cambios=cambios+1;
end
end
end

disp("LA MATRIZ MODIFICADA ES: ");


disp(v);
a=0;
b=0;
sump=0;
sumi=0;
for i=1:5
for j=1:5
if modulo(v(i,j),2)==0 then
a=a+1;
sump=sump+v(i,j);
u4(a)=v(i,j);
else
b=b+1;
sumi=sumi+v(i,j);
z4(b)=v(i,j);
end
end
end
promp=sump/a;
promi=sumi/b;
disp("DATOS DE LA NUEVA MATRIZ");
disp("numeros pares");
disp(u4);
disp("promedio de numeros pares");
disp(promp);
disp("numeros impares");
disp(z4);
disp("promedio de numeros impares");
disp(promi);
disp("numero de modificaciones");
disp(cambios);
case 5
k=0;
end
end
end
endfunction

27

También podría gustarte