*Fundamentos de la Programación*
Fundamentos de la Programación
El objetivo de este material es mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones con el fin de conocer el tipo de datos que maneja, variables, sentencias y cuales operadores son los que se utilizan.
A continuación se dará una definición de los siguientes temas a tratar:
1. El Software
2. Lenguajes de programación
3. Resolución de problemas con computadora
4. Entorno de programación
5. Tipos de Datos
6. Variables y Constantes
7. Sentencias
8. Operadores y Expresiones
9. Estructuras Básicas de Control
10. Procedimientos y Funciones
11. Visibilidad de variables
12. Bibliotecas
13. Arrays
14. El Estilo de Programación
1.-El Software
La palabra «software» se refiere al equipamiento lógico o soporte lógico de un computador digital, y comprende el conjunto de los componentes lógicos necesarios para hacer posible la realización de una tarea específica, en contraposición a los componentes físicos del sistema (hardware).
Existen dos grandes grupos de software que son:
1) El Software de sistema, en algunas ocasiones también denominado software de base, consiste en un software que sirve para controlar e interactuar con el sistema, proporcionando control sobre el hardware y dando soporte a otros programas. Por lo tanto es indispensable para que la máquina funcione y poder escribir programas de aplicación
2) El software de Aplicación es aquel que hace que el computador coopere con el usuario en la realización de tareas típicamente humanas, tales como gestionar una contabilidad o escribir un texto. Es en este software de Aplicación donde se aprecia en forma más clara la ayuda que puede suponer un computador en las actividades humanas, ya que la máquina se convierte en un auxiliar del hombre, liberándole de las tareas repetitivas. Por lo cual realizan tareas concretas que tienen utilidad para ciertos usuarios
_______________________________________________________
2.-Lenguajes de programación
Un lenguaje de programación es un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Es utilizado para controlar el comportamiento físico y lógico de una máquina.
Los Lenguajes de Programación se clasifican en tres grandes categorías que son:
Lenguajes de máquina:
El lenguaje máquina es el único que entiende directamente la computadora, utiliza el alfabeto binario que consta de los dos únicos símbolos 0 y 1, denominados bits (abreviatura inglesa de dígitos binarios).
Lenguajes de bajo nivel:
Un lenguaje de programación de bajo nivel es el que proporciona poca o ninguna abstracción del microprocesador de un ordenador. Consecuentemente es fácilmente trasladado a lenguaje de máquina.
Lenguajes de alto nivel:
Los lenguajes de alto nivel logran la independencia del tipo de máquina y se aproximan al lenguaje natural. Se puede decir que el principal problema que presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen actualmente en uso.
Existen diversos tipos:
Estructurados
Orientados a Objetos
Declarativos
Funcionales
3.- Resolución de problemas con computadora
Aunque el proceso de diseñar programas es un proceso creativo, se pueden considerar una serie de fases o pasos comunes, que generalmente deben seguir todos los programadores.
Sin embargo, hay una serie de pasos comunes a seguir:
Análisis del problema
Diseño del algoritmo solución
Codificación
Compilación y Ejecución
Verificación
Depuración
Documentación
_______________________________________________________________
4.- Entorno de programación
Un entorno de programación es un programa que contiene, además del compilador, utilitarios y herramientas. Estos elementos están integrados, de modo que pueden llamarse fácilmente unos a otros durante el proceso de programación
Un entorno de programación típico contiene:
Un editor, que proporciona el medio para introducir el texto y los símbolos que constituyen el código fuente
Un intérprete o un compilador, que convierte el código fuente en instrucciones que la computadora puede comprender y ejecutar.
Un depurador (o debugger), que ayuda a analizar y corregir errores en tiempo de ejecución.
Ayuda (manuales, tutórales, ejemplos, etc.) integrada
5.- Tipos de Datos
Datos: piezas de información con las que un programa trabaja
Todos los datos tienen un “tipo” asociado con ellos, que determina la naturaleza del conjunto de valores que aquel puede tomar. Por ejemplo, un dato puede ser un simple carácter, tal como ‘B’, un valor entero como 35, un número real como 1,4142 o una cadena de caracteres como “Hola Mundo”, entre otras cosas. Una operación de suma no tiene sentido con caracteres de texto, sólo con números.
El Tipo de Dato determina la naturaleza del conjunto de valores que un dato puede tomar y unos ejemplos son:
Número Entero
Número Real
Cadena de Caracteres
Valor Lógico (Verdadero o Falso)
La asignación de tipos a los datos tiene dos objetivos principales:
1- Detectar errores de operaciones en los programas durante la fase de codificación.
2- Determinar cómo se ejecutarán las operaciones entre datos.
6.-Variables y Constantes
Todos los programas necesitan almacenar datos temporalmente para poder procesarlos y generar así la salida esperada. Estos datos, a grandes rasgos y existen dos grupos principales de datos:
Constantes: su valor no puede cambiar durante la ejecución de un programa
Variables: su valor puede cambiar durante la ejecución de un programa
7.- Sentencias
Las sentencias describen acciones algorítmicas que pueden ser ejecutadas. En general, las sentencias se clasifican en ejecutables (especifican, por ejemplo, operaciones de cálculos aritméticos y entradas/salidas de datos) y no ejecutables (no realizan acciones concretas ni afectan a la ejecución del programa, sino que ayudan a su legibilidad).
Cada sentencia ejecutable se traduce por el compilador en una o más instrucciones de lenguaje máquina, que se copian en el archivo objeto y posteriormente se ejecutan. Las declaraciones, por su parte, describen el propósito y el significado de cada identificador definido por el programador; no se traducen a instrucciones en lenguaje máquina y no aparecen en el archivo objeto.
Se clasifican en dos:
Ejecutables / No ejecutables
Simples / Estructuradas
8.- Operadores y Expresiones
Una expresión es una combinación de operadores y operando de cuya evaluación se obtiene un valor. Los operando pueden ser nombres que denoten objetos variables o constantes, funciones, literales de cualquier tipo adecuado de acuerdo con los operadores u otras expresiones más simples. La evaluación de una expresión da lugar a un valor de algún tipo, una expresión se dice que es del tipo de su resultado. Ejemplos de expresiones:
_____________________.
a + 5*b
(a >= 0) and ((b+5) > 10)
a
-a * 2 + b
-b + sqrt(b**2 - 4*a*c)
length(s) > 0
____________________.
Un operador permite relacionar dos datos en una expresión y evaluar el resultado de una operación.
Tipos:
Aritméticos
De asignación
De comparación
Lógicos
Aritméticos
Manipulan datos numéricos. Son los siguientes:
Suma +
Resta -
Producto *
División /
Resto de la división entera o módulo %
Incremento unitario ++
Decremento unitario -
Incremento de cien en cien +=100
Decremento de cien en cien -=100
Existen diversos tipos
Aritméticos: suma, resta, multiplicación, etc.
De relación: igual, mayor, menor, distinto, etc.
Lógicos: and, or, not, etc.
9.- Estructuras Básicas de Control
El concepto de flujo de control a través de un programa se refiere al orden en que se ejecutan las acciones individuales de un programa. Aunque un flujo normal de un programa estructurado es lineal, existen métodos que permiten salir del flujo lineal a través del uso de las llamadas estructuras de control.
Las estructuras de control de un lenguaje de programación son métodos para especificar el orden en que las instrucciones de un algoritmo se ejecutarán. Estas estructuras son, por consiguiente, fundamentales en los lenguajes de programación y en los diseños de los algoritmos.
Existen dos tipos básicos de estructuras de control, que se explicarán a continuación:
De Selección
De Repetición o Iteración
Estructuras de Control Selectivas
Dirigen el flujo de ejecución según el resultado de evaluación de expresiones
IF
si expresion_logica
entonces hacer acción A
sino hacer acción B
fin_si
Switch (c)
{
case ‘A’:
printf ("\nUD. SELECCIONO UMSA") ;
break ;
case 'B' :
printf("\nUD. SELECCIONO UCB") ;
break ;
case 'C' :
printf("\nUD. SELECCIONO EMI") ;
break ;
case 'D' :
printf("\nUD. SELECCIONO UNIVALLE") ;
break ;
case '\n':
printf("\n¡ UD. NO HA SELECCIONADO NADA !" ) ;
break ;
default :
printf("\n\a\aUD. APRETO UN CARACTER ILEGAL" ) ;
break ;
}
Estructuras de Control Repetitivas
10.- Procedimientos y Funciones
Los procedimientos y funciones se comunican con su invocador a través de parámetros.
Los parámetros son un medio para pasar información, implementados a través de variables con valor.
Ejemplo: Método Asignar Nombre
public class Alumno {
void setNombre(String n) {
nombre = n;
}
String getNombre(){
return nombre;
}
}
Invocacion desde la clase main
public static void main (String []args) {
Alumno a = new Alumno();
a.getNombre
}
11.- Visibilidad de variables
Variables Locales: Se declaran en el cuerpo de un método y tienen que ser inicializadas.
Variables Instancia: Se declaran en el cuerpo de la clase.
12.- Bibliotecas
Archivo independiente que contiene un conjunto de subprogramas.
Pueden ser incluidas y referenciadas en el desarrollo de múltiples programas.
En Java se encuentra lo que es API, que es la biblioteca en la cual se encuentrar varias clases en paquetes, pero para poderlas utilizar tienes que saber en cual de los paquetes se encuentra la clase e importarla para poder hacer uso de ella.
Ejemplo: Se utiliza para GUI (Interfaces Graficas de Usuarios)
import java.awt.event.*;
import java.awt.*;
13.- Arrays
El tipo llamado arreglo o array, es el tipo más conocido y en muchos lenguajes, el único tipo d datos estructurados que se ha implementado. Un tipo arreglo es una lista de datos con un número fijo de componentes, todos del mismo tipo denominado tipo base; los que son referenciados o calificados mediante índices o expresiones ordinales encerradas en corchetes, que actúan como prefijo al identificador del arreglo, siendo su tipo denominado tipo índice.
Algunas de sus características más importantes de los arrays son las siguientes:
<!--[if !supportLists]-->
<!--[endif]-->Los arrays se crean con el operador new seguido del tipo y número de elementos.
<!--[if !supportLists]-->
<!--[endif]-->Se puede acceder al número de elementos de un arraycon la variable miembro implícita length (por ejemplo, vect.length).
<!--[if !supportLists]-->
<!--[endif]-->Se accede a los elementos de un array con los corchetes [] y un índice que varía de 0 a length-1.
<!--[if !supportLists]-->
<!--[endif]-->Se pueden crear arrays de objetos de cualquier tipo. En principio un array de objetos es un array de referencias que hay que completar llamando al operador new.
<!--[if !supportLists]-->
<!--[endif]-->Los elementos de un array se inicializan al valor por defecto del tipo correspondiente (cero para valores numéricos, la cadena vacía para Strings, false para boolean, null para referencias).
class TestArrays {
public static void main(String []args) {
int[] index = new int[4];
index[0] = 1;
index[1] = 3;
index[2] = 0;
index[3] = 2;
String[] islands = new String[4];
islands[0] = “Bermuda”;
islands[1] = “Fiji”;
islands[2] = “Azores”;
islands[3] = “Cozumel”;
int y = 0;
int ref;
while (y < 4) {
ref = index[y];
System.out.print(”island = “);
System.out.println(islands[ref]);
y = y + 1;
}
}
}
14.- El Estilo de Programación
Comentarios: Se refiere a un texto mas o menos largo en el cual se explica que es lo que se esta siendo con cierta parte del código están representados por //.
Elección de nombres significativos: Esto es con el fin de tener un mejor control sobre lo que se esta manejando en las variables o los métodos que uno crea.
- Identación: La identación es usada para tener una mejor visibilidad en el diseño de un programa. La identación muestra las líneas que están subordinadas a otras líneas.
- Espacios y Líneas en Blanco: Dejar espacios y líneas en blanco con el fin de hacer más legible la lectura del proyecto.
- Validación usando datos de prueba: los programas no pueden considerarse correctos hasta que han sido validados utilizando un rango amplio de datos de prueba para contemplar todas las posibles direcciones que el flujo de control puede tomar en tiempo de ejecución.







