Anda di halaman 1dari 9

ANALIZANDO DIFERENTES ESTILOS DE PROGRAMACION

Estilo de programación (también llamado estándares de código o convención de código) es un


término que describe convenciones para escribir código fuente en ciertos lenguajes de
programación.

FORTAN

Hay muchos estilos diferentes de programación, pero se intentará dar algunas guías generales que
son de aceptación general.

Portabilidad
Para asegurar la portabilidad del código, se recomienda usar sólo el estándar de Fortran 77. La
única excepción que se ha hecho en este manual es usar letras minúsculas.
Estructura del Programa
La estructura total del programa deberá ser modular. Cada subprograma deberá resolver una tarea
bien definida. Mucha gente prefiere escribir cada subprograma en un archivo por separado.
Comentarios
Se repite lo que se había indicado previamente: Escriba código legible, pero también agregue
comentarios al código fuente para explicar lo que se está haciendo. Es especialmente importante
tener una buena cabecera para cada subprograma que explique cada argumento de entrada/salida
y que hace el subprograma.
Sangrado
Se debe siempre usar el sangrado apropiado para bloques de ciclos y sentencias if como se mostro
en el tutorial.
Variables
Declarar siempre todas las variables. No se recomienda la declaración implícita. Intentar compactar
a 6 caracteres como máximo para nombres de variables, o asegurarse que los primeros 6 caracteres
son únicos.
Subprogramas
Nunca se debe permitir que las funciones tengan "efectos laterales", por ejemplo no se deben
cambiar los valores de los parámetros de entrada. Usar subrutinas en tales casos.
En las declaraciones separar los parámetros, bloques comunes y variables locales.
Minimizar el uso de bloques comunes.
Goto
Minimizar el uso de la sentencia goto. Desafortunadamente se requiere usar goto en algunos ciclos,
ya que el ciclo while no es estándar en Fortran.
Arreglos

En muchos casos es mejor declarar todos los arreglos grandes en el programa principal y entonces
pasarlos como argumentos a las distintas subrutinas. De esta forma toda la asignación de espacio
es hecha en un sólo lugar. Recordar que se deben pasar también las dimensiones principales. Evitar
el innecesario "redimensionamiento de matrices".
Asuntos de Eficiencia
Cuando se tenga un ciclo doble que esta accediendo a un arreglo bidimensional, es usualmente
mejor tener el primer índice (renglón) dentro del arreglo más interno. Lo anterior por el esquema
de almacenamiento en Fortran.
Cuando se tengan sentencias if-then-elseif con condiciones múltiples, intentar colocar primero
aquellas condiciones que vayan a ser las más frecuentes que ocurran.

C
No existen un conjunto de reglas fijas para programar con legibilidad, ya que cada programador
tiene su modo y sus manías y le gusta escribir de una forma determinada. Lo que sí existen son un
conjunto de reglas generales, que aplicándolas, en mayor o menor medida, se consiguen programas
bastante legibles. Aquí intentaremos resumir estas reglas.
Identificadores significativos
Un identificador es un nombre asociado a un objeto de programa, que puede ser una variable,
función, constante, tipo de datos... El nombre de cada identificador debe identificar lo más
claramente posible al objeto que identifica (valga la redundancia). Normalmente los
identificadores deben empezar por una letra, no pueden contener espacios (ni símbolos raros) y
suelen tener una longitud máxima que puede variar, pero que no debería superar los 10-20
caracteres para evitar lecturas muy pesadas.
Un identificador debe indicar lo más breve y claramente posible el objeto al que referencia. Por
ejemplo, si una variable contiene la nota de un alumno de informática, la variable se puede llamar
nota_informatica. Observe que no ponemos los acentos, los cuales pueden dar problemas de
compatibilidad en algunos sistemas. El carácter '_' es muy usado para separar palabras en los
identificadores.

Constantes simbólicas
En un programa es muy normal usar constantes (numéricas, cadenas...). Si estas constantes las
usamos directamente en el programa, el programa funcionará, pero es más recomendable usar
constantes simbólicas, de forma que las definimos al principio del programa y luego las usamos
cuando haga falta.
Comentarios, comentarios...
El uso de comentarios en un programa escrito en un lenguaje de alto nivel es una de las ventajas
más importantes con respecto a los lenguajes máquina, además de otras más obvias. Los
comentarios sirven para aumentar la claridad de un programa, ayudan para la documentación y
bien utilizados nos pueden ahorrar mucho tiempo.
No se debe abusar de comentarista, ya que esto puede causar una larga y tediosa lectura del
programa, pero en caso de duda es mejor poner comentarios de más.
Estructura del programa
Un programa debe ser claro, estar bien organizado y que sea fácil de leer y entender. Casi todos
los lenguajes de programación son de formato libre, de manera que los espacios no importan, y
podemos organizar el código del programa como más nos interese.
Para aumentar la claridad no se deben escribir líneas muy largas que se salgan de la pantalla y
funciones con muchas líneas de código (especialmente la función principal). Una función demasiado
grande demuestra, en general, una programación descuidada y un análisis del problema poco
estudiado. Se deberá, en tal caso, dividir el bloque en varias llamadas a otras funciones más
simples, para que su lectura sea más agradable. En general se debe modularizar siempre que se
pueda, de forma que el programa principal llame a las funciones más generales, y estas vayan
llamando a otras, hasta llegar a las funciones primitivas más simples. Esto sigue el principio de
divide y vencerás, mediante el cual es más fácil solucionar un problema dividiéndolo en
subproblemas (funciones) más simples.

Indentación o sangrado
La indentación o sangrado consiste en marginar hacia la derecha todas las sentencias de una misma
función o bloque, de forma que se vea rápidamente cuales pertenecen al bloque y cuáles no.
Algunos estudios indican que el indentado debe hacerse con 2, 3 ó 4 espacios. Usar más espacios
no aumenta la claridad y puede originar que las líneas se salgan de la pantalla, complicando su
lectura.
La indentación es muy importante para que el lector/programador no pierda la estructura del
programa debido a los posibles anidamientos.

Presentación
Al hacer un programa debemos tener en cuenta quien o quienes van a usarlo o pueden llegar a
usarlo, de forma que el intercambio de información entre dichos usuarios y el programa sea de la
forma más cómoda, clara y eficaz posible.
En general, se debe suponer que el usuario no es un experto en la materia, por lo que se debe
implementar un interfaz que sea fácil de usar y de aprender, intuitivo y que permita efectuar la
ejecución de la forma más rápida posible.
JAVA
Para lograr la legibilidad de un programa es importante considerar aspectos tales como el nombre
de los identificadores, escribir el código con cierta alineación y líneas en blanco en lugares
apropiados así como realizar una buena documentación.
Identificadores
Los identificadores deben ser elegidos de tal manera que el solo nombre describa el uso que se
dará dentro del programa, por tanto no es recomendable usar identificadores de una letra, excepto
en el for, ni abreviaturas raras o ambiguas.
Además de eso es recomendable que se escriban:
Empezando con mayúscula si se trata del nombre de una clase o interfaz, y empezando cada palabra
en identificador con mayúscula. CírculoColoreado
Sólo con mayúsculas si es el nombre de una constante. DIAS_HABILES
Empezando con minúscula si es el nombre de cualquier otro identificador. De preferencia el nombre
de cualquier método debe ser un verbo en infinitivo y el de todo atributo un sustantivo.
primerJugador, asignarSueldo().
Archivos fuente
Cada programa en Java es una colección de uno o más archivos. El programa ejecutable se obtiene
compilando estos archivos. En cada archivo especifica su contenido como sigue:
Los paquetes (instrucción package).
Los archivos de biblioteca (Instrucciones import).
Un comentario explicando el objetivo del archivo.
Las clases que defines en ese archivo.
Clases
Cada clase debe ir precedida por un comentario que explique su objetivo. Es recomendable
especificar sus elementos como sigue:
Estructura de los objetos. Primero las variables y luego las constantes.
Elementos estáticos.
Constructores.
Métodos públicos y privados.
Métodos estáticos.
Clases internas.
Deja una línea en blanco después de cada método.
Todos los elementos deben estar precedidos por public, private o protected. Las variables deben
ser privadas. Los métodos y las constantes pueden ser privados o públicos, según se requiera.
Métodos
Todo método excepto main debe empezar con un comentario en formato javadoc
El cuerpo de un método no debe exceder 30 líneas de código. Esto te obligará a dividir un método
complejo en varios más sencillos.
Variables y Constantes
NO definas más de una variable por línea:
int horas = 0, minutos = 0; //Mal
es mejor:
int horas = 0,
minutos = 0;
Alineación y espacios en blanco
La alineación de instrucciones, se puede hacer de manera automática si se emplea el editor emacs
(es recomendable modificar los tabuladores para que dejen sólo tres espacios en blanco).

Usa líneas en blanco para separar partes de un método que son lógicamente distintas.

1.2. Evaluación de expresiones


Una expresión es una combinación de operadores y operandos de cuya evaluación se obtiene un
valor. Los operandos 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

Las expresiones se evalúan de acuerdo con la precedencia de los operadores. Ante una secuencia
de operadores de igual precedencia, la evaluación se realiza según el orden de escritura, de
izquierda a derecha. El orden de evaluación puede modificarse usando paréntesis.
Tipos de expresiones
Dentro de las expresiones distinguimos dos clases según el tipo de datos que devuelven al
evaluarlas:
Aritméticas: las que devuelven un valor numérico
Lógicas: las que devuelven true o false

Las expresiones se utilizan fundamentalmente en las asignaciones y en las partes condicionales de


las sentencias if, while y repeat.

1.3. Definición de funciones en distintos lenguajes de programación.


FORTRAN
Las funciones en Fortran son bastante similares a las funciones matemáticas: ambas toman un
conjunto de variables de entrada (parámetros) y regresan un valor de algún tipo. Al inicio de la
sección se comento de los subprogramas definidas por el usuario, pero Fortran 77 tiene también
funciones incorporadas.
Un ejemplo simple muestra cómo usar una función:
x = cos(pi/3.0)
En este caso la función coseno cos de 60º, asignará a la variable x el valor de 0.5 (si pi ha sido
definido correctamente; Fortran 77 no tiene constantes incorporadas). Hay varias funciones
incorporadas en Fortran 77. Algunas de las más comunes son:
abs valor absoluto
min valor mínimo
max valor máximo
sqrt raíz cuadrada
sin seno
cos coseno
tan tangente
atan arco tangente
exp exponencial (natural)
log logaritmo (natural)

En general, una función siempre tiene un tipo. Varias de las funciones incorporadas mencionadas
anteriormente son sin embargo genéricas. Por lo tanto en el ejemplo anterior pi y x podrían ser del
tipo real o del tipo double precisión. El compilador revisará los tipos y usará la versión correcta de
la función cos (real o double precisión). Desafortunadamente, Fortran no es un lenguaje
polimórfico, por lo que en general, el programador debe hacer coincidir los tipos de las variables
y las funciones.
Se revisa a continuación como implementar las funciones escritas por el usuario. Supongamos el
siguiente problema: un meteorólogo ha estudiado los niveles de precipitación en el área de una
bahía y ha obtenido un modelo (función) ll (m,t) donde ll es la cantidad de lluvia, m es el mes, y t
es un parámetro escalar que depende de la localidad. Dada la fórmula para ll y el valor de t,
calcular la precipitación anual.
La forma obvia de resolver el problema es escribir un ciclo que corra sobre todos los meses y sume
los valores de ll. Como el cálculo del valor de ll es un subproblema independiente, es conveniente
implementarlo como una función. El siguiente programa principal puede ser usado:
program lluvia
real r, t, suma
integer m
read (*,*) t
suma = 0.0
do m = 1, 12
suma = suma + ll(m, t)
end do
write (*,*) 'La precipitación Anual es ', suma, 'pulgadas'
stop
end

C
Una función es un fragmento de código que realiza una tarea bien definida. Por ejemplo, la función
printf imprime por la salida estándar los argumentos que le pasamos. Al igual que esta función,
existen otras funciones que realizan diversas tareas ya definidas en el estándar ANSI C y que pueden
ser utilizadas por el programador. Este tipo de funciones predefinidas son denominadas funciones
de biblioteca. Sin embargo, cada programador puede definir sus propias funciones de acuerdo a sus
necesidades. Las funciones que define el programador son conocidas como funciones de usuario.
La utilización de funciones nos permite dividir un programa extenso en pequeños segmentos que
realizan tareas concretas. Probablemente, dentro de un mismo programa se realicen las mismas
tareas varias veces, lo que se facilita mediante la utilización de funciones. . Sin embargo, es
probable que ciertas funciones no sean reutilizables, pero al usarlas se mejora la legibilidad del
programa.
Con el propósito de permitir un manejo eficiente de los datos, las funciones en C no se
pueden anidar. En otras palabras, una función no se puede declarar dentro de otra función , por lo
que todas las funciones son globales o externas, lo que hace que puedan llamarse desde cualquier
parte de un programa.
Cuando se accede a una función desde un determinado punto del programa, se le puede pasar
información mediante unos identificadores especiales conocidos como argumentos (también
denominados parámetros). Una vez que la función procesa esta información, devuelve un valor
mediante la instrucción return.
La estructura general de una función en C es la siguiente:
tipo_de_retorno nombre_de_la_función (lista_de_parámetros)
{
cuerpo_de_la_función
return expresión
}
Donde:
• tipo_de_retorno: es el tipo del valor devuelto por la función, o, en caso de que la función no
devuelva valor alguno, la palabra reservada void.
• nombre_de_la_función: es el nombre o identificador asignado a la función.
• lista_de_parámetros: es la lista de declaración de los parámetros que son pasados a la función.
Éstos se separan por comas. Debemos tener en cuenta que pueden existir funciones que no utilicen
parámetros.
• cuerpo_de_la_función: está compuesto por un conjunto de sentencias que llevan a cabo la tarea
específica para la cual ha sido creada la función.
• return expresión: mediante la palabra reservada return, se devuelve el valor de la función, en
este caso representado por expresión

C++
Una función es un conjunto de líneas de código que realizan una tarea específica y puede retornar
un valor. Las funciones pueden tomar parámetros que modifiquen su funcionamiento. Las funciones
son utilizadas para descomponer grandes problemas en tareas simples y para implementar
operaciones que son comúnmente utilizadas durante un programa y de esta manera reducir la
cantidad de código. Cuando una función es invocada se le pasa el control a la misma, una vez que
esta finalizó con su tarea el control es devuelto al punto desde el cual la función fue llamada.
<tipo> [clase::] <nombre> ( [Parámetros] )
{
cuerpo;
}
Ejemplo de una función
Para comenzar, vamos a considerar el caso en el cual se desea crear la función cuadrado(), que
deberá devolver el cuadrado de un número real (de punto flotante), es decir, cuadrado() aceptará
números de punto flotante y regresará una respuesta como número flotante.
Nota: aunque para la función que veremos el tipo de retorno coincide con el tipo de parámetro
pasado, algunas veces las cosas pueden cambiar, es decir, no es obligatorio que una función reciba
un parámetro de un tipo y que tenga que regresar una respuesta de dicho tipo.
// regresar el cuadrado de un número
double Cuadrado(double n)
{
return n*n;
}

JAVA
En Java una función es un modulo de un programa separado del cuerpo principal, que realiza una
tarea específica y que puede regresar un valor a la parte principal del programa u otra función o
procedimiento que la invoque.
La forma general de una función es:

tipodatoregresa Nom_fun(parametros)
{ cuerpo de instrucciones;
intruccion return;
}
El tipo especifica el tipo de valor que la función regresara utilizando la instrucción return.
Si no se especifica un tipo se asume de default que el tipo regresado es int.
La lista de parametros formales es una lista de variables separadas por comas (,) que almacenaran
los valores que reciba la función, estas variables actúan como locales dentro del cuerpo de la
función.
Aunque no se ocupen parametros los paréntesis son requeridos.
La declaración de parametros es la especificación de cada tipo de parámetro recibido.

INSTRUCCION RETURN
Dentro del cuerpo de la función deber haber una instrucción return cuando menos, para regresar
el valor, esta instrucción permite regresar datos.
Prog.java ejemplo:
import java.io.*; import javax.servlet.*;
import javax.servlet.http.*;
public class prog26 extends HttpServlet
{ public void doPost (HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{ int x=10;
x = funcion1(x,20);
PrintWriter pagina;
response.setContentType("text/html");
pagina = response.getWriter();
pagina.println("<HTML>");
pagina.println("x="+x);
pagina.println("</HTML>");
pagina.close();
}; // termina dopost
public int funcion1(int a, int b){return a+b;};

public void destroy(){super.destroy();};

}// termina class

1.4. Disciplina de tipos en distintos lenguajes de programación.


La programación funcional es un paradigma de programación declarativa basado en la utilización
de funciones aritméticas que no maneja datos mutables o de estado. Enfatiza la aplicación de
funciones, en contraste con el estilo de programación imperativa, que enfatiza los cambios de
estado. La programación funcional tiene sus raíces en el cálculo lambda, un sistema formal
desarrollado en los 1930s para investigar la definición de función, la aplicación de las funciones y
la recursión. Muchos lenguajes de programación funcionales pueden ser vistos como elaboraciones
del cálculo lambda.

1.5. Tipos de datos en distintos lenguajes de programación.


FORTRAN
Los tipos de datos permitidos son los siguientes:
Logical: Las variables lógicas solo pueden tener dos valores verdadero y falso.
Integer: Valores enteros guardados en 4 bytes. Se indican como números sin punto decimal: 1, 2,
-3, 25, etc.
Real: Valores reales guardados en 4 bytes y con 8 cifras significativas. Se indican con punto decimal,
y de ser necesario el exponente de la potencia de 10 después de una E: 1., -3.1416, 6.25E-10, etc.
Doublé: Valores reales de doble precisión guardados en 8 bytes y con 16 cifras significativas,
también se denotan por real (8). Se indican con punto decimal y el exponente de la potencia de 10
después de una D: 1.D0, -3.1416D0, 6.25D-10, etc. Son muy útiles en cálculos numéricos largos,
donde los errores de redondeo pueden hacer que las ultimas 4 o 5 cifras significativas de un numero
real sean basura.
Cuádruple: Valores reales de cuádruple precisión guardados en 16 bytes y con 32cifras
significativas, también se denotan por real (16). Se indican con punto decimal y el exponente de la
potencia de 10 después de una Q: 1.Q0, -3.1416Q0, 6.25Q-10, etc.
Complex: Dos valores reales formando un par y que en operaciones matemáticas
Se tratan como la parte real e imaginaria de un numero complejo: (1.,-2.), (1.0E0,-2.0E0). También
existen versiones de doble y cuádruple precisión.
Character: Variables que corresponden a cadenas de caracteres. Al declarar una variable de este
tipo se debe especificar cuantos caracteres puede tener. Estas variables deben estar contenidas en
comillas: ’hola’, ’abcdfe’, ’Me llamo Luis’, ’128.3’, etc.

C
Hay dos clases de tipos de datos: tipos fundamentales y tipos derivados.
Únicamente vamos a ver los tipos de datos fundamentales.
Tipo entero: representa números enteros con o sin signo, que estarán compuestos por los dígitos
del 0 al 9, pudiendo ser precedidos por los signos + o -.
Algunos ejemplo de datos enteros son: 0, 23, -176, -1, etc.
Tipo real: Se emplean para representar números reales (con decimales).
Para definir datos reales se antepone la palabra reservada float al identificador de la variable.
float identificador = valor;
Por ejemplo: float numero1, numero2;
float numero3 = 123.43;
float numero3;
Tipo carácter: Este tipo de datos se emplea para representar un carácter perteneciente a un
determinado código utilizado por el ordenador (normalmente el código ASCII).
Para representar este tipo de dato se antepone la palabra reservada char al identificador de la
variable.
Char identificador = ‘valor’;
Una constante tipo char se representa como un solo carácter encerrado entre comillas simples.
Tipo cadena de caracteres: una cadena de caracteres es un número de caracteres consecutivos
(incluso ninguno) encerrado entre unos delimitadores determinados, que en el lenguaje C son las
comillas dobles.
Para definir variables de tipo cadena, estas se definen como vectores de caracteres, esto es,
anteponiendo la palabra reservadachar al identificador de la variable, y después entre corchetes la
longitud máxima de cadena.
Char identificador[cantidad] = “ mensaje ”;

C++
Los tipos de datos que maneja C++ son:
•Enteros
Dentro de los enteros están los tipos: short, int, long, los cuales varían en rango de acuerdo al
compilador que se utilice, siendo long rango mayor y short el de menor.
•Flotantes
Dentro de los flotantes C++ tiene los tipos: float, double y long double donde al igual que los enteros
varía el rango de cada uno de acuerdo al compilador que se utilice. De igual forma el float es el de
menor rango siendo long double el de rango mayor
•Caracteres
Se utiliza el tipo char. Para representar un caracter en C++ se utilizan apóstrofes.
Ejemplos: ‘a’, ‘b’ , ‘5’
Para representar una cadena de caracteres se utilizan las comillas.
Ejemplo: “soy una cadena”

JAVA
Los tipos de datos primitivos que soporta Java son:

Tipo de Representación Tamaño Rango de Valores Valor Clase


dato (Bytes) por Asociada
defecto

byte Numérico Entero 1 -128 a 127 0 Byte


con signo

short Numérico Entero 2 -32768 a 32767 0 Short


con signo

Int Numérico Entero 4 -2147483648 0 Integer


con signo a 2147483647
long Numérico Entero 8 -9223372036854775808 0 Long
con signo a
9223372036854775807

float Numérico 4  3.4x10-38 a  3.4x1038 0.0 Float


en Coma flotante
de precisión
simple Norma
IEEE 754

double Numérico 8  1.8x10- 0.0 Double


en Coma flotante 308
a  1.8x10308
de precisión
doble Norma
IEEE 754

char Carácter Unicode 2 \u0000 a \uFFFF \u0000 Character

boolean Dato lógico - true ó false false Boolean

void - - - - Void

Anda mungkin juga menyukai