Está en la página 1de 5

Universidad Centroamericana

Jos Simen Caas


Gua de Laboratorio 7
Ciclo 02/2014

Mtodos Numricos y Programacin

Entrada y salidas de archivos

Manejo de archivos binarios (.sod)
Save es un comando en Scilab que permite guardar una o varias variables en un archivo binario, con
extensin SOD (Scilab Open Data). Que as como lo describen sus siglas es un tipo de extensin
nicamente para Scilab.
Sintaxis:
save(nombre_archivo.sod,var_1,,var_n)
Load es un comando en Scilab que permite la lectura de los archivo binarios (.sod), para as obtener los
datos en las variables guardadas y que puedan ser utilizadas posteriormente en cualquier programa.
Sintaxis:
load(nombre_archivo.sod)
Ejemplo: Se desea guardar 2 matrices para luego ser recuperadas, y multiplicarlas entre si.
//Se definen 2 matrices
a=[1 2 3;4 5 7;9 7 2];
b=[3;4;1];
//Se guardan las matrices
save('matrices.sod','a','b')
//Se borrar todas las variables
clear
//Se recuperan matrices
load('matrices.sod')
c=a*b;
disp(c,'respuesta')


Manejo de documentos textos.
write es un comando que permite la escritura de una o varias variables en un archivo de texto que
puede ser con extensin txt o doc.
Sintaxis:
write('nombre_archivo.doc',var_unica)
Ejemplo: Se desea mostrar como salida una matriz en un archivo .txt y otro en .doc.
a=[1 2 3; 4 5 6; 7 8 9];
disp('2.txt','1.doc','Elija el formato')
Universidad Centroamericana
Jos Simen Caas
Gua de Laboratorio 7
Ciclo 02/2014

Mtodos Numricos y Programacin

opc=input('opcion: ');
nom=input('ingrese nombre del archivo: ','s');
if opc==1 then
nombre=strcat([nom,'.doc']);
write(nombre,a)
else
nombre=strcat([nom,'.txt']);
write(nombre,a)
end
disp('Documento creado y guardado en mis documentos')


Manejo de documentos de Excel.
csvWrite es un comando de escritura para crear archivo que Excel es capaz de leer, es de mencionar que
la extensin .csv no es la caracterstica de Excel.
Sintaxis:
csvWrite(variable,'nombre_archivo.csv',espaciado)
csvRead es la contraposicin del comando scvWrite, este permite leer todo archivo con extensin .csv y
a la vez es capaz de leer tambin la extensin xls. En la variable en donde almacenara los datos de la
lectura del archivo, este diferenciara si se encuentra con variables string o doubl, en el caso de las
doubl pondr un indeterminado (NaN).
Sintaxis:
var=csvRead(nombre_archivo.csv)
Ejemplo:
a=[1 2 3; 4 5 6; 7 8 9];
nom=input('ingrese nombre: ','s');
nombre=strcat([nom,'.csv']);
csvWrite(a,nombre,ascii(44));
disp('Documento creado y guardado en mis documentos')


Espaciamiento en commando csvWrite
ASCII (American Standard Code for Information Interchange) es el estndar para Computadoras, ya que
ellas nicamente pueden entender nmeros, as que un cdigo ASCII es la representacin numrica de
un caracteres como 'a' o '@' o una accin especfica.
Universidad Centroamericana
Jos Simen Caas
Gua de Laboratorio 7
Ciclo 02/2014

Mtodos Numricos y Programacin

Para trminos de la prctica, solo se utilizaran 2 cdigos ASCII que se muestran en la tabla 1, pero es de
mencionar de que la lista de cdigos ASCII es muy amplia y muchos de ellos pueden ser tiles para casos
particulares.
Tabla 1. Muestra los cdigos ascii utilizados en la prctica.
Cdigo ascii Carcter
44 , (coma)
13 Enter

Ejemplo:
Se desea calcular la poblacin en el ao de 1945, utilizando un polinomio de newton
a) Procedimiento a mano

- Datos:
aos = [1930 1950 1960 1970]
= [123203,131669,150697,179323]

- Formulas a utilizar
(, ) =
(, 1) ( 1, 1)
() ( +1 )


() = 1 +2( 1) +3( 1)( 2) ++( 1)( 2) (
1
)

- Solucin numrica:
[
123203

131669 846.6

150697
179323
1902.8
2862.6
52.81
47.99 0.1606
]
() = 123203 +846.6( 1930) +52.81( 1930)( 1940)
+(0.1606)( 1930)( 1940)( 1950)

- Se evala en el ao de 1945
(1945) = 139923

b) a partir de un programa siguiendo los pasos que se muestran a continuacin:

- Definir las variables de inters (datos a utilizar).
= [1930 1950 1960 1970]
Universidad Centroamericana
Jos Simen Caas
Gua de Laboratorio 7
Ciclo 02/2014

Mtodos Numricos y Programacin

= [123203,131669,150697,179323]
- Guardar las variables en un documento llamado datos.sod, que es la abreviacin de polinomio
de Newton.
(. ,

)

- Se crean 2 funciones, una dependiente de la otra para calcular las diferencias divididas de
newton y el otro para calcular el polinomio de newton en un punto determinado segn se
muestra en la Tabla 2.
Tabla 2. Funciones para calcular el polinomio de newton.
Funcin para calcular polinomio de Newton. Funcin para calcular las diferencias
divididas de Newton.
function [pol]=pol_newton(x, xi, C)
grado=length(xi)-1;
term=1; pol=0;
for j=2:grado+1
for k=1:j-1
term=term*(x-xi(k));
end
pol=pol+C(j,j)*term;
term=1;
end
pol=pol+C(1)
endfunction

function [C]=dif_newton(xi, fi)
n=length(fi);
Q=zeros(n,n-1)
Q=[fi',Q];
for j=2:n
for i=2:n
if i>=j
Q(i,j)=(Q(i,j-1)-Q(i-1,j-
1))/(xi(i)-xi(i+1-j))
end
end
end
C=Q
endfunction


- Se desarrolla el programa principal, en donde se interactuara con el usuario.
disp('desea calcular la poblacin entre 1930 a 1960?');
y=input('ingrese ao: ');

load('datos.sod')

[C]=dif_newton(x,fx)
[pol]=pol_newton(y,x,C)

disp('2. Excel','1.Word','En que lugar desea la respuesta:');
opc=input('ingrese opcion: ');
nom=input('ingrese nombre del documento (sin espacios): ','s');
select opc
case 1
// preparando datos para mostrarlos en word
Universidad Centroamericana
Jos Simen Caas
Gua de Laboratorio 7
Ciclo 02/2014

Mtodos Numricos y Programacin

year=['ao',string(x)];
pob=['poblacion',string(fx)];
write(strcat({nom,'.doc'}),[year,ascii(13),pob,
ascii(13),'respuesta',ascii(13),string(y),string(pol)])
case 2
//Preparando datos para mostrarlos en excel
// Se preparan los datos para mostrarse y se agrega al final la
respuesta
// se convierten todas las variables a string para homogenizar el
tipo de variables
year=['ao',string(x),'respuesta',string(y)];
pob=['poblacion',string(fx),'-',string(pol)];
dat=[year',pob'];
csvWrite(dat,strcat([nom,'.csv']),ascii(44))
else
disp('error')
return
end
disp('Documento creado y guardado en mis documentos')




Bibliografa
Enterprises, S. (2014). Scilab. Obtenido de http://help.scilab.org/docs/5.3.0/en_US/write.html
Enterprises, S. (2014). Scilab. Obtenido de https://help.scilab.org/docs/5.3.0/en_US/write_csv.html
Enterprises, S. (2014). Scilab. Obtenido de https://help.scilab.org/docs/5.4.0/en_US/csvWrite.html
Enterprises, S. (2014). Scilab. Obtenido de https://help.scilab.org/docs/5.4.0/en_US/csvRead.html
Table, A. (2010). Ascii table. Obtenido de http://www.asciitable.com/

También podría gustarte