lunes, 15 de agosto de 2016

Fundamentos de Programación Por Luis Joyanes Aguilar



Un algoritmo es lo siguiente (según el libro):

El objetivo fundamental de este texto es enseñar a resolver problemas mediante una computadora. El programador de computadora es antes que nada una persona que resuelve problemas, por lo que para llegar a ser un programador eficaz se necesita aprender a resolver problemas de un modo riguroso y sistemático. A lo largo de todo este libro nos referiremos a la metodología necesaria para resolver problemas mediante programas, concepto que se denomina metodología de la programación. El eje central de esta metodología es el concepto, ya tratado, de algoritmo. Un algoritmo es un método para resolver un problema. 

La definición de un algoritmo debe describir tres partes:
-Entrada
-Proceso  
-Salida 

En el algoritmo de receta de cocina citado anteriormente se tendrá:
-Entrada: Ingredientes y utensilios empleados.
-Proceso: Elaboración de la receta en la cocina.
-Salida: Terminación del plato (por ejemplo, cordero).


Características de un algoritmo:

Las características fundamentales que debe cumplir todo algoritmo son:
• Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
• Un algoritmo debe estar bien definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo    resultado cada vez.
• Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea, debe tener un número finito de pasos.


Fases de la metodología para la solución de problemas:

El proceso de resolución de un problema con una computadora conduce a la escritura de un programa y a su ejecución en la misma. Aunque el proceso de diseñar programas es, esencialmente, un proceso creativo, se puede considerar una serie de fases o pasos comunes, que generalmente deben seguir todos los programad ores. Las fases de resolución de un problema con computadora son:

• Análisis del problema.
• Diseño del algoritmo.
• Codificación.
• Compilación y ejecución.
• Verificación.
• Depuración.
• Mantenimiento.
• Documentación.

Las características más sobresalientes de la resolución de problemas son:
• Análisis. El problema se analiza teniendo presente la especificación de los requisitos dados por el cliente de la empresa o por la persona que encarga el programa.
• Diseño. Una vez analizado el problema, se diseña una solución que conducirá a un algoritmo que resuelva el problema.
• Codificación (implementación). La solución se escribe en la sintaxis del lenguaje de alto nivel (por ejemplo, Pascal) y se obtiene un programa fuente que se compila a continuación.
• Ejecución, verificación y depuración. El programa se ejecuta, se comprueba rigurosamente y se eliminan todos los errores (denominados “bugs”, en inglés) que puedan aparecer.
• Mantenimiento. El programa se actualiza y modifica, cada vez que sea necesario, de modo que se cumplan todas las necesidades de cambio de sus usuarios.
• Documentación. Escritura de las diferentes fases del ciclo de vida del software, esencialmente el análisis, diseño y codificación, unidos a manuales de usuario y de referencia, así como normas para el mantenimiento.



Operadores Aritméticos:
Los símbolos +, –, *, ^ (↑ o **) y las palabras clave div y mod se conocen como operadores aritméticos.
En la expresión:
      5 + 3
los valores 5 y 3 se denominan operandos. El valor de la expresión 5 + 3 se conoce como resultado de la expresión. Los operadores se utilizan de igual forma que en matemáticas. Por consiguiente, A ∙ B se escribe en un algoritmo como A * B y 1/4 ∙ C como C/4. Al igual que en matemáticas el signo menos juega un doble papel, como resta en A – B y como negación en –A.



Operadores Matemáticos:
Matemáticamente una función es una operación que toma uno o más valores llamados argumentos y produce un valor denominado resultado —valor de la función para los argumentos dados—. Todos los lenguajes de programación tienen funciones incorporadas, intrínsecas o internas, y funciones definidas por el usuario.
Así, por ejemplo:

f (x) =      x    
            1 + x2

Donde f es el nombre de la función y x es el argumento. Obsérvese que ningún valor específico se asocia con x; es un parámetro formal utilizado en la definición de la función. Para evaluar f debemos darle un valor real o actual a x; con este valor se puede calcular el resultado. Con x = 3 se obtiene el valor 0.3 que se expresa escribiendo:

f(3) = 0.3

f(3)     =      3      =     3      = 0.3
               1 + 9         10

Una función puede tener varios argumentos. Por consiguiente,

f (x, y)    =    x – y 
                √ x + √ y

es una función con dos argumentos. Sin embargo, solamente un único valor se asocia con la función para cualquier par de valores dados a los argumentos.



Orden De Prioridad De Operadores:

Los operadores aritméticos seguían un orden específico de prioridad cuando existía más de un operador en las expresiones. De modo similar, los operadores lógicos y relaciones tienen un orden de prioridad.

                             Prioridad de operadores (lenguaje Pascal)

Operador:                                                                                                 Prioridad:
no (not)                                                                                      más alta (primera ejecutada)
/, *, div. mod, y (and)                                                                                       
+, -, o (or)                                                                                                      
<, >, =, <=, >=, <>                                                                     más baja (última ejecutada

                           

                            Prioridad de operadores (lenguajes C, C++, C# y Java)

Operador:                                                                                                  Prioridad:
++ y -- (incremento y decremento en 1), +, –, !                                                       más alta 
*, /, % (módulo de la división entera)                                                            
+, - (suma, resta)                                                                                                
<, <=, >, >=                                                                                                      
== (igual a), != (no igual a)                                                                              
&& (y lógica, AND)                                                                                        
|| (o lógica, or)                                                                                                  
=, +=, -=, *=, /=, %= (operadores de asignación)                                      más baja


Al igual que en las expresiones aritméticas, los paréntesis se pueden utilizar y tendrán prioridad sobre cualquier operación.

Ejemplo:

no 4 > 6                               produce un error, ya que el operador no se aplica a 4
no (4 > 14)                          produce un valor verdadero
(1.0 < x) y (x < z + 7.0)      si x vale 7 y z vale 4, se obtiene un valor verdadero




Expresiones Matemáticas:
Muchas funciones matemáticas se definen recursivamente. Un ejemplo de ello es el factorial de un número entero n.

La función factorial se define como: 


n! = { 1 si   n = 0    0! = 1 
       { nx(n–1)x(n–2)x ... x3x2x1  si n > 0 n. (n–1) . (n–2)....3.2.1

Si se observa la fórmula anterior cuando n > 0, es fácil definir n! en función de (n–1)! Por ejemplo, 5!

5! = 5x4x3x2x1   = 120 
4! = 4x3x2x1      = 24 
3! = 3x2x1          = 6 
2! = 2x1             = 2 
1! = 1x1             = 1 
0! = 1                 = 1

Se pueden transformar las expresiones anteriores en:

5! = 5x4! 
4! = 4x3! 
3! = 3x2! 
2! = 2x1! 
1! = 1x0!

En términos generales sería:
n! =  { 1                  si           n = 0
        { n(n–1)!         si           n > 0

La función FACTORIAL de N expresada en términos recursivos sería:

FACTORIAL ← N * FACTORIAL(N – 1)


La definición de la función sería:
entero: función factorial(E entero: n) 
//calculo recursivo del factorial 
inicio
  si n = 0 entonces
    devolver (1)
  si_no devolver (n * factorial(n – 1))
  fin_si 
fin_función






Constantes:
Los programas de computadora contienen ciertos valores que no deben cambiar durante la ejecución del programa. Tales valores se llaman constantes. Una constante es un dato que permanece sin cambios durante todo el desarrollo del algoritmo o durante la ejecución del programa.

Constantes reales validas                                                      Constantes reales no validas

1.234                                                                                     1,752.63 (comas no permitidas)
–0.1436                                                             82  (normalmente contienen un punto decimal, 
                                                                  aunque existen lenguajes que lo admiten sin punto)                                                                     
+ 54437324


Constantes reales en notación científica

3.374562E   equivale a   3.374562 × 10  2
Una constante tipo carácter o constante de caracteres consiste en un carácter válido encerrado dentro de apóstrofos; por ejemplo,

'B'     '+'     '4'     ';'

Si se desea incluir el apóstrofo en la cadena, entonces debe aparecer como un par de apóstrofos, encerrados dentro de simples comillas.

""
Una secuencia de caracteres se denomina normalmente una cadena y una constante tipo cadena es una cadena encerrada entre apóstrofos. Por consiguiente,

'Juan Minguez'
y
'Pepe Luis Garcia'

son constantes de cadena válidas. Nuevamente, si un apóstrofo es uno de los caracteres en una constante de cadena, debe aparecer como un par de apóstrofos

'John"s'

Constantes lógicas (boolean)
Sólo existen dos constantes lógicas o boolean:
               verdadero  falso


Variables:
Una variable es un objeto o tipo de datos cuyo valor puede cambiar durante el desarrollo del algoritmo o ejecución del programa. Dependiendo del lenguaje, hay diferentes tipos de variables, tales como enteras, reales, carácter, lógicas y de cadena. Una variable que es de un cierto tipo puede tomar únicamente valores de ese tipo. Una variable de carácter, por ejemplo, puede tomar como valor sólo caracteres, mientras que una variable entera puede tomar sólo valores enteros. 

Si se intenta asignar un valor de un tipo a una variable de otro tipo se producirá un error de tipo. Una variable se identifica por los siguientes atributos: nombre que lo asigna y tipo que describe el uso de la variable. 

Los nombres de las variables, a veces conocidos como identificadores, suelen constar de varios caracteres alfanuméricos, de los cuales el primero normalmente es una letra. 

Nombres válidos de variables son:
A510                                            
NOMBRES                                LETRA                   SalarioMes
NOTAS                                      HORAS                 SegundoApellido
NOMBRE_APELLIDOS2            SALARIO               Ciudad

Los nombres de las variables elegidas para el algoritmo o el programa deben ser significativos y tener relación con el objeto que representan, como pueden ser los casos siguientes:

NOMBRE                    para representar nombres de personas 
PRECIOS                    para representar los precios de diferentes artículos 
NOTAS                        para representar las notas de una clase


Normalmente los identificadores de las variables y de las constantes con nombre deben ser declaradas en los programas antes de ser utilizadas. La sintaxis de la declaración de una variable suele ser:

             <tipo_de_dato> <nombre_variable> [=<expresión>]


Ejemplo:
car letra, abreviatura
ent numAlumnos = 25 
real salario = 23.000

Si se desea dar un nombre (identificador) y un valor a una constante de modo que su valor no se pueda modificar posteriormente, su sintaxis puede ser así:

            const <tipo_de_dato> <nombre_constante> =<expresión>





Conclusiones Personales


Operadores Aritméticos:

Son los símbolos: +, -, *, ^ (↑ o **), div y mod.
Utilizados para hacer cualquier operación en un programa, operaciones mas comunes y sencillas.


Operadores Matemáticos:
Los operadores matemáticos son mas extensos que los operadores aritméticos, ya que la aritmética es solo una rama de la matemática.
Estos mas bien podrían ser los signos menos comunes y sirven para hacer operaciones mas dificiles: +, -, /. *, (), x, y, f, etc...
También en los operadores aritméticos, un valor puede tomar el valor de otro signo representándolo de diferente forma, por ejemplo: x=5 y f=9, o haciendo operaciones: f(7), 
y utilizando de esta forma  x – y 
                                     √ x + √ y 



Orden De Prioridad De Operadores:
Estos se dividen en la prioridad de operadores (lenguaje pascal) y prioridad de operadores (lenguajes C, C++,C# y Java), empiezan desde la prioridad mas alta y terminan en la mas baja

Expresiones Matemáticas:
Es la manera en se se representa alguna operación matemática, osea mas bien, como se vera representado el proceso de la ecuación.


Constantes:
Son valores, que mientras se esta ejecutando una programa, ese valor nunca va a cambiar, siempre permanece intacto.

Variables:
Son datos por ejemplo, letras o números, que durante la ejecución de un algoritmo o de un programa, ese valor va a estar cambiando constantemente.









No hay comentarios.:

Publicar un comentario