Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Paradigma es un modelo o patrn en cualquier disciplina cientfica. Etimolgicamente significa modelo o ejemplo . A su vez tiene las mismas races que demostrar.
Lgico: est representado por Prolog. La programacin lgica encuentra su hbitat natural en aplicaciones de inteligencia artificial o relacionadas: sistema experto|Sistemas expertos, donde un sistema de informacin imita las recomendaciones de un experto sobre algn dominio de conocimiento.
Orientado a objetos: est representado por Smalltalk, un lenguaje completamente orientado a objetos. La programacin orientada a objetos es un paradigma que utiliza objetos como elementos fundamentales en la construccin de la solucin. Un objeto es una abstraccin de algn hecho o ente del mundo real que tiene atributos que representan sus caractersticas o propiedades y mtodos que representan su comportamiento o acciones que realizan.
Un programa informtico es un conjunto de instrucciones que una vez ejecutadas realizarn una o varias tareas en una computadora
Etapa
Anlisis del problema Diseo de algoritmo y diagramacin
Descripcin
Conducen al diseo detallado por medio un pseudocdigo escrito en forma de un algoritmo y creacin de un diagrama de flujo
Codificacin
Se implementa el algoritmo en un cdigo escrito en un lenguaje de programacin. Refleja las ideas desarrolladas en las etapas de anlisis y diseo
Traduce el programa fuente a programa en cdigo de mquina y lo ejecuta. Busca errores en las etapas anteriores y los elimina. Son comentarios, etiquetas de texto, que facilitan la comprensin del programa
4 5 6 7
Algoritmos de programacin
Concepto de algoritmo Los seres humanos realizamos una serie de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema, esto se repite innumerables veces durante el da. En realidad estamos aplicando un algoritmo para resolver un problema. Definicin de Algoritmo.- secuencia ordenada y cronolgica de pasos que llevan a la solucin de un problema o a la ejecucin de una tarea (o actividad).
Pseudocdigo
La serie de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema a travs de algoritmos, los desarrollamos por medio de pseudocdigo. El pseudocdigo describe un algoritmo utilizando una mezcla de frases en lenguaje comn, instrucciones de programacin y palabras clave que definen las estructuras bsicas. El objetivo del pseudocdigo es permitir que el programador se centre en los aspectos lgicos de la solucin, evitando las reglas de sintaxis de los lenguajes de programacin.
No siendo el pseudocdigo un lenguaje formal, los pseudocdigo varan de un programador a otro, es decir, no hay un pseudocdigo estndar.
La idea es ofrecer un conjunto de tcnicas y herramientas metodolgicas que permitan flexibilizar y estructurar el razonamiento utilizado en la solucin de problemas, esto provocar finalmente la construccin de algoritmos eficientes. A continuacin en la figura podemos observar las etapas que debemos seguir para la solucin de un problema
Problema
Verificacin el algoritmo
Construccin de algoritmos
La secuenciacin es una estructura de control que permite a la computadora ejecutar una accin, despus otra, luego la que sigue y as sucesivamente hasta la ltima. Dichas acciones pueden consistir en operaciones primitivas elementales como declaraciones de variables, leer datos, imprimir datos o calcular alguna expresin. Es conveniente etiquetar cada accin con nmeros desde el uno en forma ascendente de uno en uno, para denotar el orden secuencial. Por lo tanto los elementos bsicos que integran la estructura de un algoritmo son:
Construccin de algoritmos
1. 2. 3. 4. Encabezado.- todo algoritmo debe tener un encabezado como identificacin, el cual debe empezar con la palabra Algoritmo seguida por una descripcin del problema a resolver. Inicio.- todo algoritmo debe empezar con la etiqueta 1, que marca el inicio del mismo. Declaraciones.- despus de marcar el inicio se debe hacer las declaraciones que se necesiten como: variables, constantes, tipos de datos, etc. Leer, calcular e imprimir.- los siguientes pasos pueden consistir en acciones tales como: leer datos, calcular algunas expresiones aritmticas e imprimir datos tantas veces como se requiera y en el orden apropiado para resolver el problema en cuestin. Fin del algoritmo.- el ltimo paso del algoritmo consiste en incluir la indicacin fin.
5.
Diagramas de flujo
Debemos recordar que un diagrama de flujo debe ilustrar grficamente los pasos o procesos a seguir para alcanzar la solucin de un problema. Los smbolos colocados adecuadamente, permiten crear una estructura grfica flexible que ilustra los pasos a seguir para alcanzar un resultado especfico. El diagrama de flujo facilitar ms tarde la escritura del programa en algn lenguaje de programacin
4.
5. 6. 7. 8.
Todo diagrama de flujo debe tener un inicio y un fin. Todas las lneas utilizadas para indicar la direccin del flujo del diagrama deben estar conectadas. La conexin puede ser a un smbolo que exprese lectura, proceso, decisin, impresin, conexin o fin de diagrama. El diagrama de flujo debe ser construido de arriba hacia abajo (top-down) y de izquierda a derecha (right to left). Las lneas utilizadas para indicar la direccin del flujo del diagrama deben ser rectas, verticales y horizontales. La notacin utilizada en el diagrama de flujo debe ser independiente del lenguaje de programacin. Es conveniente cuando realizamos una tarea compleja poner comentarios que expresen o ayuden a entender lo que hicimos. Si el diagrama de flujo requiere ms de una hoja para su construccin, debemos utilizar los conectores adecuados y enumerar las pginas convenientemente. No puede llegar ms de una lnea a un smbolo.
sueldo = ht * pht
cve sueldo
fin
Ejemplo No 2
Desarrollar un algoritmo que permita leer un nmero en radianes e imprima su equivalencia en grados; as mismo, leer un nmero en grados e imprima su equivalencia en radianes. Algoritmo 2: Convierte radianes a grados y grados a radianes 1. Inicio 2. Declaracin de variables: PI = 3.145926536: real (flotante) rad, grad, numrad, numgrad: real (flotante) 3. Leer rad, grad 4. numgrad = rad * (180 / PI) 5. numrad = grad * (PI / 180) 6. Imprimir numgrad, numrad 7. Fin
rad grad
numgrad numrad
fin
Ejemplo No 3
Desarrollar un algoritmo para calcular el promedio de un estudiante, se pedir la matricula del estudiante y cuatro calificaciones de los exmenes. Se imprimir la matricula del estudiante y el promedio. Algoritmo 3: Calcular promedio de un estudiante 1. Inicio 2. Declaracin de variables matest: entero cal1, cal2, cal3, cal4, calfin: real (flotante) 3. Leer matest, cal1, cal2, cal3, cal4 4. calfin = (cal1 + cal2 + cal3 + cal4) / 4 5. Imprimir matest, calfin 6. Fin
matest calfin
fin
Ejemplo 4
Crear un algoritmo y un Diagrama de flujo que encuentra la suma de los primeros N nmeros naturales
1. Inicio 2. Declaracin de variables N, i, suma: entero 3. Leer N 4. suma=0 5. i=1 6. Si i>N al paso 8 7. Si no suma= suma +i i=i+1 pasar al paso 6 8. Imprima suma 9. fin
Inicio
suma=suma + i i = i +1 Fin
Ejemplo 5
Crear un algoritmo y un Diagrama de flujo que permita escribir los 100 primeros pares
1. Inicio 2. Declaracin de variables N, p: entero 3. N=100 p=0 4. Si N>=0 imprima p p=p+2 N=N-1 pasar al paso 4 5. Si no pasar al siguiente 6. fin
INICIO
N=100 p= 0
No N>=0 Fin Si p
p=p + 2 N=N - 1
Ejemplo 6
Crear un algoritmo y un Diagrama de flujo que pida 3 nmeros y diga cual es el mayor
1. Inicio 2. Declaracin de variables a,b,c,mayor: entero 3. Leer a,b,c 4. mayor=a 5. Si mayor>b Si mayor>c 6. imprima a es el mayor pasar 11 7. Si no imprima c es el mayor pasar 11 8. Si no haga mayor=b 9. Si mayor>c imprima b es el mayor pasar 11 10. si no imprima c es el mayor pasa11 11. fin
Ejemplo 7
La sucesin de Fibonacci se define de la siguiente forma: a1=1 a2=1 a3=2 a4=3
an=an-1 + an-2
Para n>2, es decir, los dos primeros son 1 y el resto cada uno es la suma de los dos anteriores, los primeros son: 1, 1, 2, 3, 5, 8, 13, 21, . Hacer un algoritmo y un diagrama de flujo para calcular el N-simo trmino de la sucesin.
Algoritmo 7: Determina el N-simo termino de la sucesin de Fibonacci 1. Inicio 2. Declaracin de variables N,a,b,c: entero 3. Leer N 4. Si N<=2 5. imprimir 1 pasar al paso 10 6. Si no a=1 b=1 7. c=a+b a=b b=c N=N-1 8. Si N=2 imprimir b pasar al paso 10 9. Si no pasar al paso 7
10. fin
Inicio
N Si No N<=2 a=1 b=1 c=a+b a=b b=c N=N-1 1 b Fin Si N=2 No
Ejemplo 8
Hacer un algoritmo y un diagrama de flujo que lea N nmeros y escriba la suma de los pares y el producto de los impares
Algoritmo 8:Determina la suma de pares y producto de impares de N nmeros 1. Inicio 2. Declaracin de variables N,sp,pi, A: entero 3. Leer N 4. sp=0 5. pi=1 6 leer A 7 Si A MOD 2=0 sp=sp+A pasar 9 8.Si no pi=pi*A 9. N=N-1 10. Si N=0 imprimir sp, pi pasar 12 11. Si no pasar al paso 6 12. fin
sp=sp+A
sp,pi
Fin
Ejemplo 9
Hacer un algoritmo y un diagrama de flujo para calcular AB , siendo B un entero, ntese que B puede ser cero o negativo. No se puede emplear logaritmos.
Algoritmo 9: Calcular AB 1. Inicio 2. Declaracin de variables A,B,p: entero 3. Leer A,B 4. p=1 5. Si B=0 pasar 12 6. Si no Si B>0 pasar a 8 7. Si no A=1/A B=-B 8. p=p*A 9. B=B-1 10. Si B=0 pasar 12 11 Si no pasar 8 12.imprimir p 13. fin
Si
p=p*A
B=B-1 No Si p Fin B=0
Ejemplo 10
Hacer un algoritmo y un diagrama de flujo para calcular el factorial de N (N!=1*2*3*.*N)
DIA y DFD
Explicar software para crear diagramas de flujo y correr algoritmos
Este programa lee el tamao N del vector, Almacena los datos En el V(i) y luego los muestra
Matriz(i,j) =
Las matrices se pueden definir por instrucciones para anidadas en DFD como sigue:
Acumulador a cero
Para que genera los valores del vector vf(i) y los presenta por pantalla
Vf
INTRODUCCIN AL SCILAB
Desarrollado por INRIA, Institut Nacional de Recherche en Informatique et Automatica, Instituto francs.
http://www.scilab.org
Consola de trabajo
Los nombres de las variables pueden tener hasta 24 caracteres, el primero debe ser una letra o $. Los otros pueden ser letras, nmeros, #, _, $, !
En una misma lnea puede haber varias ordenes. Estas deben estar separadas por coma o por punto y coma. Ejemplo
FUNCIONES MATEMTICAS
Sintaxis de toda funcin: nombre_funcin(argumento)
abs: valor absoluto
acos: arcoseno
residuo de la divisin
int, fix : redondean a cero log: log10: logaritmo natural logaritmo decimal
max:
min:
devuelve el mximo
devuelve el mnimo
Polinomios Los polinomios se pueden definir por sus coeficientes o por sus races El polinomio: 2 + 3X + 5X^2 + 7X^ 3 p = poly([2 3 5 7] , X , coeff)
Ordenar el polinomio de menor a mayor grado, colocando cero si tiene coeficientes cero
EJERCICIOS
Sacarle las races a las funciones anteriores Evaluar cada funcin X= 7 y=12
VECTORES Y MATRICES
En SCILAB no hay vectores como tal, los vectores se deben asimilar a matrices de una sola fila o vectores fila (1xn) o matrices de una sola columna o vectores columna (nx1)
11 12 13 14 15 21 22 23 24 25 31 32 33 34 35
Se puede definir por medio de: a = [ 11 12 13 14 15 ;21 22 23 24 25;31 32 33 34 35 ] Los elementos se pueden separar por comas o cada fila en diferente lnea como se muestra:
La definicin de la matriz se hace por filas y las filas se separan por punto y coma o por cambio de lnea
ones(4,5)
es equivalente a
Y=2 : 1 : 9
Si x es un vector columna, se puede definir un elemento del vector como x(2) o x(2,1)
Forma general para sacar un submatriz de la matriz a en este caso filas 1 2 3 y columnas 2 4
EJERCICIOS
Generar automticamente una matriz 10x8 y sacar una submatriz formada por las filas 2 4 6 8 y columnas 3 6
Convierta la submatriz anterior en un vector columna
Para matrices y vectores del mismo tamao se pueden hacer multiplicacin elemento a elemento utilizando el
operador
.*
h=p.^3
Para graficar se requieren dos vectores (X Y) Las siguientes instrucciones crean los vectores X=(-2 : 0.01 :3) ; Y= 3 * X . ^ 4 + X . ^ 3 5 * X . * X + 3.14 ;
Elimina el elemento 2 de x
Elimina la columna 2 de a
FUNCIONES ELEMENTALES
rank(a) calcula el rango de a det(c) determinante de una matriz cuadrada c inv(c) inversa de una matriz cuadrada e invertible c diag(c) produce una vector columna con los elementos diagonales de matriz cuadrada c diag(x) produce matriz diagonal con los elementos de x y=gsort(x) ordena el vector x decreciente [y,k]=gsort(x) k es un vector que contiene los ndices de ordenamiento
MAS FUNCIONES
Donde A es una matriz cuadrada e invertible y el sistema de ecuaciones de la forma general A*X=b
GRFICAS EN SCILAB
Para graficar una funcin basta con construir un vector con valores de X en un intervalo [a,b] y otro vector con los valores de la funcin Y evaluada en los puntos del primer vector
Y=sin(X);
plot2d(X,Y) o plot(X,Y)
PROGRAMANDO EN SCILAB En SCILAB hay dos tipos de programas: Los guiones o libretos (scripts) que son simplemente una secuencia de ordenes en SCILAB. No tiene parmetros de entrada y ni salida, las variables definidas en un guin son globales, es decir despus de llamado el guin siguen existiendo. Las funciones tienen parmetros de entrada y salida. Las variables definidas dentro de la funcin dejan de existir una vez finalizada la ejecucin de la funcin, son variables locales.
GUIONES O SCRIPTS Un guin esc simplemente un archivo ASCII en el que hay una sucesin de ordenes en SCILAB. Generalmente tiene extensin .sce SCILAB tiene un editor de programas llamado SciNotes
FUNCIONES Los archivos de funciones tiene extensin .sci El esquema general de una funcin con una salida es: function result=nombrefuncion(par1,par2,) endfunction result es parmetro de salida
Cuando la funcin tiene varias salidas, el esquema es: function [res1, res2, ]=nombrefuncion(par1,par2,) endfunction
EJERCICIO
|
~
o (alt+124)
no
ORDENES Y CONTROL DE FLUJO Las principales estructuras de control de SCILAB son: If select y case for while
end
end
Permite ejecutar de forma repetitiva un comando o grupo de comandos un nmero determinado de veces hasta que se cumpla una condicin lgica determinada
else
end
La orden disp me permite presentar por pantalla el valor de una variable y a su vez enviar mensajes al usuario, el formato general de la instruccin es:
PROGRAMANDO EN SCILAB
sueldo = ht * pht
cve sueldo
fin
rad grad
numgrad numrad
fin
matest calfin
fin
EJEMPLO 5
Crear un algoritmo y un Diagrama de flujo que permita escribir los 100 primeros pares
Ejemplo 6
Crear un algoritmo y un Diagrama de flujo que pida 3 nmeros y diga cual es el mayor