Documente Academic
Documente Profesional
Documente Cultură
PROGRAMACIÓN Y COMPUTACIÓN
F.Q.I.Q. E. P. DE INGENIERIA QUIMICA
PROFESOR
Jose O. Calvay Castillo
ALUMNO
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
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,
optimización, además scilab puede actuar como una plataforma en donde se pueden unir
3
DIAGRAMA DE FLUJO
Inicio
i=0
j=0
v(i,j)=r
a=0
b=0
sump=0
4
1
sump=0
i=0
j=0
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”)
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
control.
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
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
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
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
Luego me debe preguntar si deseo eliminar la matriz, si es si elimina la matriz y salgo del
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
luego me debe preguntar si deseo eliminar la matriz, si es si elimina la matriz y salgo del
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
Luego me debe preguntar si deseo eliminar la matriz, si es si elimina la matriz y salgo del
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
10
11
12
13
14
PRUBA DE ESCRITORIO CON UN VECTOR DE 4 NÚMEROS
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
17
Se mostró de nuevo el menú. Se dio también la opción de eliminar la matriz y finalizar el
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
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
problema presentado no se podía resolver solo con la estructura de control if, puesto que se
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;
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
27