2. Contenido
3. Variables y Constantes 4. Entrada y salida de datos 5. Operadores de comparacin y L gicos 6. Estructuras de control: Condicionales e Iterativas 7. Arreglos: Vectores y matrices 8. Funciones 9. Cadena de Caracteres 10. Estructuras 11. Archivos 12. IntroduccinScilabes un programa desarrollado por INRIA y ENPCde Franciapara el clculo numrico, programacin y grficos. Es similar aMATLAB y Octave , es utilizado enWindows , Linux, Unix, etc. Caractersticas principales
13. Permite operaciones diversas operaciones matriciales. 14. Posee capacidades de generacin de grficos en dos y tres dimensiones. Links de descarga :http://www.scilab.org/ http://scilabsoft.inria.fr . 15.
16. Variables En Scilab las variables no son nunca declaradas: su tipo y su tamao cambian de forma dinmica de acuerdo con los valores que le son asignados.As, una misma variable puede ser utilizada, por ejemplo, para almacenar un nmero complejo, luego una matriz de nmeros enteros y luego para almacenar un texto.Las variables se crean automticamente al asignarles un contenido. Asimismo, es posible eliminar una variable de la memoria si ya no se utiliza. Var=5 Var=9.2 Var=[1 3 6 7] var=Mensaje de texto Tipo entero Tipo real (float) Tipo vector Tipo cadena(string) 17.
18. Constantes
19. %irepresenta la parte imaginaria. 20. %pirepresenta el valor 3,1416. 21. %erepresenta el valor de euler 2,7182. 22. Para valores lgicos: 23. %trepresenta verdadero. 24. %frepresenta falso. 25. Comentarios 26. Descripciones colocadas por el programador, son omitidas por el interprete de scilab. 27. //Esto es un comentario 28. Entrada y salida de datos
29.
30. disp ( nombre_variableo'texto' ); 31. printf:Muestra los datos de salida formateados. 32. Sintaxis: 33. printf ( 'T exto:%s numero:%dn' ,varCad,varNum); Formato para Variables %sMuestra contenido de variables tipo cadena de caracteres. %dMuestra contenido de variables tipo numricas.%cMuestra el contenido de variables tipo carcternCaracter de salto de lnea(un enter) . 34.
35. Un texto cualquiera va con comillas simples. 36. Uso de printf 37. Operador Descripcin xy x es mayor que y. x>=y x es mayor o igual que y. x~=yxy x no es igual a y. Operadores de comparacin 38. Operadores Lgicos Operador Descripcin x&y Retorna T si x y y son verdaderos caso contrario retorna F. x|y Retorna F si x y y son falsos caso contrario retorna T. ~ xRetorna el valor F si x vale T o T si x vale F. 39.
40. Se usan en estructuras for. 41. Se pueden crear vectores filas.
Ejemplos: 42.
43. Se suele denominar contador cuando el incremento de la variable es de uno en uno. 44. Sintaxis: 45. variable = variable + 1;
46. Variable cuyo valor se incrementa o decrementa en un valor fijo (en cada iteracin de un bucle). 47. Sintaxis: 48. variable=variable +valor 49. variable=variable -valor 50. variable=variable *valor 51. variable=variable /valor Nota:Los contadores y acumuladores son variables que se necesitaninicializarcon algn valor y son muy utilizados en los lazos de repeticin. 52.
53.
for i=1:10 aleatorio= 5 +fix(rand()*( 23 - 5 +1)); disp(aleatorio); end Genera un nmero aleatorio entre 5 y 23. Estructuraforque se repite10veces y va generando en cada repeticin un nmero aleatorio entre5y23y lo va mostrando con la funcindisp. Muestra cada nmero aleatorio generado. 54. Funcin Descripcin sqrt(x) Devuelve la raz cuadrada. abs(x) Devuelve el valor absoluto. modulo(x,y) Devuelve el resto de dividir x por y. sin(x) Devuelve el seno, x en radianes. cos(x) Devuelve el coseno, x en radianes. tan(x) Devuelve la tan, x en radianes.
55. Estructuras de ControlCondicionales
if condicin[then] Instrucciones; else Instrucciones; end if condicin[then] Instrucciones; end if condicin1[then] Instrucciones; elseif condicin2 Instrucciones; else Instrucciones; end Nota:t hen es opcional, puede ser reemplazada por un salto de lnea . 56.
select variable case valor1 [ then] Instruciones1; case valor2 [ then] Instruciones2; case valor3 [ then] Instruciones3; .. .. else Instruciones; end
57. Los valores de case pueden ser enteros o strings. 58.
disp('Control de Estudiantes'); disp('1. Registrar estudiante'); disp('2. Consultar estudiante'); disp('3. Salir'); opc=input('Ingrese una opcion: '); selectopc case1 disp('Ha ingresado en Opcion 1'); case2 disp('Ha ingresado en Opcion 2'); case3 disp('Fin del Programa'); else disp('Otra opcion');end disp('Control de Estudiantes'); disp('1. Registrar estudiante'); disp('2. Consultar estudiante'); disp('3. Salir'); opc=input('Ingrese una opcion: '); ifopc==1 disp('Ha ingresado en Opcion 1'); elseifopc==2disp('Ha ingresado en Opcion 2'); elseifopc==3 disp('Fin del Programa'); else disp('Otra opcion');end 59. Estructuras de ControlIterativas
for ndice=rango Instrucciones; end while condicin Instrucciones ; end Estructura for Estructura while Estructura que repiteinstrucciones hasta llegar al fin delrango . Estructura que repiteinstrucciones mientras la condicin seaverdadera . 60.
Realice un programa que muestre los cinco primeros nmeros naturales y la suma. usando while. Solucin : veces=0; numero=1; suma=0; whileveces 764 disp('Numero Invertido'); numero=input('Ingrese un numero:'); invertido=0; whilenumero~=0digito= modulo (numero,10); invertido=(invertido*10)+digito; numero=fix(numero/10); end printf('El numero invertido es:%dn',invertido); Solucin : modulo(m,n) , funcin que extrae el ltimo dgito del nmero.invertido almacena el nuevo nmero invertido yfix(n)es una funcin que redondea al entero ms cercano a cero 62. suma=0; fortermino=1:n suma=suma+termino^2; end printf('La suma de la serie es: %dn',suma); Acumulador de la suma Realice un programa que dado un nmero de n trminos genere la suma de la siguiente serie: 1 2 +2 2 +3 2 +... +n 2 Solucin : for que se repite n veces desde 1a n. 63. Arreglos de una dimensin oVectores
Contenido del bloque n del vector. Tamao del vector(length). Elndice de un vectores unnmero nicoque se asigna a cada bloque del vector, el cual permite acceder a la informacin de dicho bloque(Ejemplo: A(2)=7). Eltamao de un vectores el nmero de bloques que lo conforman. La funcin length(A) permite conocer ese tamao. A 7 1 n . . . . .2 3 Indices del vector 64.
Se agrupan los elementos de forma vertical. Se lo define como: [a1 ;a2 ;a3 ;; an] Se agrupan los elementos de forma horizontal. Se lo define como: [a1 ,a2 ,a3 ,, an] o [a1 a2 a3 an] Ejemplo : Ejemplo : 1 2 3 4 1234 65.
Primera forma de crear y llenar un vector n=input('Ingrese n terminos: '); fori=1:n aleatorio= 1+fix(rand()*n);// Genera un aleatorio v(i)=aleatorio; // Llena el vector de aleatorios end disp(v);// Muestra el vector Segunda forma de crear y llenar un vector v=[];// Se define un vector vaco n=input('Ingrese n terminos: '); for i=1:n aleatorio= 1+fix(rand()*n); v=[v;aleatorio];//Llena el vector de aleatorios end disp(v);// Muestra el vector 66.
Solucin
Unos=0;// se inicializa el contador de 1's // for que recorre todo el arreglo A fori=1:length(A) // verifica si existe 1's y los cuenta ifA(i)==1 unos=unos+1; end end printf('La cantidad de unos es:%dn',unos);// Muestra # de 1's 67. Arreglo de dos dimensiones oMatrices
123456 1 2 3 4 5 6 Fila A A(3,3)=5 Columna 5 68.
69. Ejemplo: Se necesita transmitir una matriz de 7 filas y 7 columnas conteniendo bits (ceros o unos). Antes de transmitirla se debe agregar una columna conteniendo ceros o unos de tal manera que las 7 filas tengan paridad par, es decir que la cantidad de unos en cada fila sea par. Este cero o uno adicional se denomina bit de paridad. Genere aleatoriamente la matriz de 7x7 llena con ceros y unos, agregue el bit de paridad en cada fila y muestre la matriz resultante. 70.
end end 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 71. fori=1:7 forj=1:7 if matriz (i,j)==1 unos=unos+1;//cuenta el numero de 1's por fila end end ifmodulo(unos,2)==0//verifica si unos(contador) es par vparidad(i)=0;else vparidad(i)=1;//Agrega bit de paridad end end matrizBits=[matriz,vparidad];// Se agrega el vector vparidad a matriz disp( matrizBits );//Se muestra la matrizBits 72. FUNCIN DESCRIPCIN eye(m,n) Crea una matriz identidad cuadrada de tamao n. ones(m,n) Crea una matriz de 1's. zeros(m,n) Crea una matriz de 0's. rand(m,n) Crea una matriz de aleatorios entre 0 y menor a 1.
Funcin de importante bsqueda intersect(vector, valor):Funcin que retorna el mismo valorque se esta buscando en el vector. 73. FUNCIN DESCRIPCIN det(A) Retorna el determinante. sum(A) Retorna la suma de los elementos de A prod(A) Retorna el producto de los elementos de A max(A) Retorna el elemento mximo de A. min(A) Retorna el elemento mnimo de A. trace(A) Retorna suma de los elementos de la diagonal p. conj(A) Retorna la conjugada de una matriz A. inv(A) Retorna la inversa de una matriz cuadrada A. size(A) Retorna el # de filas y # de columnas de una matriz A. length(A) Retorna la dimensin mxima de un vector A.
74. Cadena de caracteres(strings)
75. Se las define entrecomillas simplesodobles . 76. Ejemplos: 'Software Libre' Fundamentos de programacin 77.
Posicin en la cadenaCadenas(vector) Retornao 78.
79. Dada una cadena de texto mustrela invertida. str=input('Ingresa una cadena: ','s'); invertida=[]; fori=length(str):-1:1//recorre delfinal al inicio de la cadena letra= part (str,i);//extrae una letra de la cadena invertida=invertida + letra;//+operador que une las letras end disp(invertida);// Muestra el texto invertido 80.
FUNCIN DESCRIPCIN strcmp(str1,srt2) Retorna 0 si las cadenas son iguales. strcat([str1,str2]) Retorna la concatenacin de strings, ej: strcat([hola,mundo])strindex(str,c) Retorna un vector de posiciones del carcter c en str. part(str,n) Retorna el elemento n de str. convstr (str,'modo') Convierte los caracteres de str de mayscula a minscula o viceversa, segn el modo:
81. l convierte a minscula, ej :convstr ('HOLA','l') length(str) Retorna la longitud de str. 82. FUNCIONES
83. Sintaxis de funcin con valor de retorno : functionvariable_retornada =nombre_funcion(lista_argumentos) cuerpo_de_funcin endfunction Se pueden retornar ms de una variable e inclusive un vector o matriz: function [var1,var2,vector,matriz]=nombre_funcion (lista_argumentos)cuerpo_de_funcin endfunction
function nombre_funcion(lista_argumentos ovacio ) cuerpo_de_funcin endfunction 84.
85. functions=suma(a,b)
endfunction 86. Ejemplo2:Funcin que muestra un men, no recibe argumentos y no retorna valores. 87. functionmenu()
88. disp('Opcion2'); 89. disp('Opcion3'); endfunction 90.
Retorna 1 si se encuentra en la lista. 91. Cargar funciones de un archivo.sci.
ProgramaPrincipal.sce funciones.sci carga Mismo directorio exec('funciones.sci') instrucciones1 Instrucciones2 Instrucciones3 . . . . Instruccionesn 92. Funciones Recursivas
93. Ejemplo: Escriba lafuncin recursiva NumeroDigitos (n)cual recibe un nmerony retorne el nmero de dgitos que lo conforman. Ejemplos: 3054, la funcinNumeroDigitosretorna 4. 34790, la funcinNumeroDigitosretorna 5. function r=NumeroDigitos(n) if n
Top Related