SlideShare una empresa de Scribd logo
1 de 10
INSTITUTO TECNOLOGICO DE TAPACHULA
Nombre Del Alumno:
Sheyla Berenice Martínez Ramos
Lorenzo Eli López Sánchez
Jhony Manuel López Vázquez
Luis Enrique Martínez Martínez
Nombre De La Carrera:
Ingeniería En Sistemas Computacionales
Nombre Del Profesor:
MC. en C. C. Anamim Villarreal Wong
Nombre De La Materia:
Programación Lógica y Funcional
¿POR QUÉ ELEGIMOS LA NOTACIÓN HÚNGARA?
Primeroque nada debemospreguntarnos¿porqué haceruna programaciónde calidad?Porque la
calidadexternadel software guardauna relacióndirectacon la calidadinternadel mismo,esdecir
con su estructura y codificación.
Todos queremos construir software correcto, robusto, extensible y reusable. Debemos ser
conscientes que el mejor camino para lograrlo, está precisamente en hacer una programación de
calidad.
Existen además otras razones de mucha importancia para aplicar técnicas de buena codificación.
Como desarrolladoresnopodemosolvidarque el códigofuente se mantiene yreutiliza,conloque
para facilitar estas tareas debemos cuidar nuestra programación.
El objetivo del presente trabajo es presentar de una forma simple, informal y no demasiada
ordenada, algunas características particulares, así como otras generales, para el ejercicio de una
buena codificación.
Esta notación está basada en parte en CamelCase, específicamente la lowerCamelCase. En su
versiónmásbásica,tenemosvariostiposde datoslosquerecibenunaletra.De esaforma,unstring
recibirála letra s, un int la letra i,un decimal laletra d. Un arreglorecibirápor supuestolaletra a.
Teniendo eso en cuenta, y combinándola con la CamelCase no resulta difícil pensar en qué sigue:
Un nombre cualquiera para nuestra variable siguiendo las reglas del CamelCase.
De estaforma,podemostener:
aIndicadorResultados
iContador
sPrimerNombre
Y así se continúa.De estaforma,consóloun miropodemossaberde qué tipoesnuestravariable,y
mediante CamelCase (asignándole un nombre significativo) podremos saber cuál es su función, lo
cual encuentro ideal enun lenguaje como PHP donde una misma variable puede ser un float o un
bit al momento siguiente.
Elegimos esta convención porque así es más fácil identificar qué tipo de dato es nuestra variable,
dandoasíinformaciónnosolodeltipodedatosinotambiénde sufunción dentrodenuestrocódigo.
NOTACIÓN HUNGARA
En programación,lanotaciónhúngaraesunsistemausadonormalmenteparacrearlosnombresde
variables.Tambiénse utilizaparanombrar las instanciasde objetosenlenguajesde programación
visuales,comoporejemploDelphi.El nombrede lanotaciónprovienedelhechode quesuinventor,
Charles Simonyi, nació en Hungría.
Esta convención es muy poco utilizada en las viejas versiones de Delphi pero es muy utilizada por
los programadores de Microsoft y, en particular, en la programación del sistema operativo
Windows.
Consiste en prefijos en minúsculas que se añaden a los nombres de las variables y que indican su
tipo. El resto del nombre indica, lo más claramente posible, la función que realiza la variable.
A continuaciónse muestraunlistadode losprefijosque se utilizan:
Prefijo Significado
a 'array'. Para vectores/matrices/listasde ndimensionesordenadasescalarmente.
b Booleano(int).Paravariablesque tomensolodostiposde valores.
by BYTE o UCHAR (unsignedchar)
c Carácter (unbyte).Parael tipoprimitivode carácteralfanuméricoindividual.
dw Enterolargo de 32 bitssinsigno (double word)
f Flagsempaquetadosenunenterode 16 bits
h Manipuladorde 16 bits (handle)
i
'int'.Para númerosenterosengeneral,tantoenterosnormalescomoaquellostipos
enterosde máscapacidad (comolong).
l Enterolargo de 32 bits
lbl ObjetoLabel
lp Punteroa enterolargode 32 bits
lpfn Punterolargoa una funciónque devuelve unentero
lpsz Punterolargoa una cadenaterminadaconcero
n Enterode 16 bits
p Punteroa enterode 16 bits
e Enumeración
pt Coordenadas (x,y) empaquetadasenunenterode 32 bits
rgb Valorde color RGB empaquetadoenunenterode 32 bits
sz Cadenaterminadaencero
txt Cajasde texto
w Enterocorto de 16 bitssinsigno (word)
Ejemplode cómoutilizarlanotaciónHúngara:
 nContador: la variable es un entero que se usará como contador.
 szNombre: una cadena terminada con cero la cual almacena un nombre.
 bRespuesta: una variable booleana que almacena una respuesta.
 txtHora: una instancia de un objeto textbox que almacena la hora.
HISTORIA
La notaciónhúngaraoriginal,queahorase llamaría Aplicacioneshúngaro,fueinventadaporCharles
Simonyi, un programador que trabajaba en Xerox PARC circa 1972-1981, y que más tarde se
convirtióenarquitectojefede Microsoft.Puedehabersidoderivadodel principioanteriordeutilizar
la primera letra del nombre de una variable para ajustar su tipo - por ejemplo, las variablescuyos
nombres comenzaron con las letras I a N en FORTRAN son enteros por defecto.
La notaciónes una referenciaa la naciónde Simonyi de origen,nombresde laspersonashúngaras
se "invierten" en comparación con la mayoría de los nombres europeos, el apellido precede al
nombre. Por ejemplo, el nombre anglicismo "Charles Simonyi" en húngaro era originalmente
"Charles Simonyi". De la misma manera el nombre del tipo precede al "nombre" en la notación
húngara en lugar de la más natural, la mayoría europeos, "type última" Smalltalk nombramiento
estiloporejemplounPuntoylastPoint.Este estilode denominaciónestaúltimaeramás comúnen
el Xerox PARC durante el mandato de Simonyi allí.
El nombre Aplicaciones húngaro fue acuñado desde que la convención se utilizó en la división de
aplicaciones de Microsoft. Sistemas húngaro desarrolló más tarde en el equipo de desarrollo de
MicrosoftWindows.El artículode Simonyi se refirióalosprefijosutilizadosparaindicarel "tipo"de
la información que se almacena. Su propuesta fue en gran parte que ver con nombres de
identificadores de decoración en base a la información semántica de lo que almacenan, en
consonancia con aplicaciones húngaro. Sin embargo, sus sugerencias no fueron enteramente
distintode lo que se conoce como Sistemasde Hungría, ya que algunosde susprefijospropuestos
contienen poca o ninguna información semántica.
PRINCIPIOS GENERALES
 La elegancia siempre obtiene su recompensa: se tarda menos en depurar y conseguir que
funcione la práctica.
 Primero hay que hacer que el código funcione; luego, si hace falta, hay que optimizarlo.
 Aplica el principio "divide y vencerás".
 Si el código es difícil de leer, es difícil de mantener, depurar o mejorar.
 Hay que minimizar el número de variables globales: las variables deben declararse en un
ámbito de uso lo más reducido que sea posible.
 Hay que inicializar las variables inmediatamente al declararlas. Por ejemplo:
int nMuescas= 0
 No se debe usar una misma variable para varios propósitos diferentes,porque dificulta la
legibilidad.
TIPO DE IDENTACION EMPLEADA
El estilo K&R es el más usado en el lenguaje C y PHP. El estilo K&R, fue llamado de esta forma
porque fue usado por Kernighan y Ritchies en su libro The C Programming Language.
Se trata de abrir la llave en la misma línea de declaración de la orden, indentando los siguientes
pasos al mismo nivel que la llave y cerrando la llave en el mismo nivel que la declaración.
La ventaja de este estilo es que la llave de apertura no requiere una linea extra y llave de
finalización se alinea conceptualmente a la declaración conceptual a la que pertenece.
Una desventajade este estilo esque lallave final de unbloquetomaunalineaenterf,elcual podría
se parcialmente resuelto en los bloques if/else y do/while
CODIGO
Clase Principal
/*
realizacionde uncubomagico
*/
package Cubo;
importjava.awt.BorderLayout;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.ItemEvent;
importjava.awt.event.ItemListener;
importjavax.swing.JApplet;
importjavax.swing.JButton;
importjavax.swing.JComboBox;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.UIManager;
importjavax.swing.UnsupportedLookAndFeelException;
publicclassPrincipal extendsJApplet{//Declaracionde loscomponentes
JButtonbtnCuadros[] [];
JComboBox comboTamañoCubo;
StringstrTamaño[]={"3","5","7","9","11","13","15","17","19","21"};
JPanel panelCentro;
JButtonbtnIniciar;
@Override
publicvoidinit(){//Se inicializanloscomponentes
colocarSkin();
JPanel panelArriba=new JPanel();
panelArriba.add(newJLabel("Tamaño"));
comboTamañoCubo=newJComboBox(strTamaño);
comboTamañoCubo.addItemListener(new ItemListener(){
@Override
publicvoiditemStateChanged(ItemEvente){//Tamañode lamatriz
if(e.getStateChange()==ItemEvent.SELECTED){
panelCentro.removeAll();
btnCuadros=new
JButton[Integer.parseInt(comboTamañoCubo.getSelectedItem().toString())][Integer.parseInt(c
omboTamañoCubo.getSelectedItem().toString())];
panelCentro.setLayout(new
GridLayout(btnCuadros.length,btnCuadros.length,2,2));
for(inti=0;i<btnCuadros.length;i++){
for(intj=0;j<btnCuadros.length;j++){
btnCuadros[i][j]=new JButton();
panelCentro.add(btnCuadros[i][j]);
}
}
panelCentro.updateUI();
repaint();
}
}
});
panelArriba.add(comboTamañoCubo);
btnIniciar=newJButton("Iniciar");
btnIniciar.addActionListener(new ActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
ProcesoPro=new
Proceso(btnCuadros,Integer.parseInt(comboTamañoCubo.getSelectedItem().toString()));
Pro.start();
}
});
panelArriba.add(btnIniciar);
panelCentro=newJPanel();
add(panelArriba,BorderLayout.NORTH);
add(panelCentro,BorderLayout.CENTER);
}
publicvoidcolocarSkin(){
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
}
catch (ClassNotFoundExceptione) {
e.printStackTrace();
}
catch (InstantiationExceptione) {
e.printStackTrace();
}
catch (IllegalAccessExceptione) {
e.printStackTrace();
}
catch (UnsupportedLookAndFeelExceptione) {
e.printStackTrace();
}
}
}
Proceso
/*
* To change thislicense header,choose License HeadersinProjectProperties.
* To change thistemplate file,choose Tools|Templates
* and openthe template inthe editor.
*/
package Cubo;
importjavax.swing.JButton;
/**
*
* @author manny
*/
classProcesoextendsThread{
JButtonbtnCuadros[][];
int intnumero;
publicProceso(JButtonc[][],intintnumero){
btnCuadros=c;
this.intnumero=intnumero;
}
@Override
publicvoidrun(){
intintCont=1;
intintCuadros=intnumero*intnumero;
intintPosL=0;
intintPosC=intnumero/2;
while (intCont<=intCuadros){
btnCuadros[intPosL][intPosC].setText(""+intCont);
try {
Thread.sleep(500);
}
catch (InterruptedExceptione1){
e1.printStackTrace();
}
if(intCont%intnumero==0){
intPosL++;
}
else{
intPosL--;
if(intPosL<0) intPosL=intnumero-1;
intPosC++;
if(intPosC>intnumero-1) intPosC=0;
}
intCont++;
}
}
}

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

INFOSAN Curso de delphi básico
INFOSAN Curso de delphi básicoINFOSAN Curso de delphi básico
INFOSAN Curso de delphi básico
 
Users c#guia total del programador
Users c#guia total del programadorUsers c#guia total del programador
Users c#guia total del programador
 
El arte de programar prev
El arte de programar prevEl arte de programar prev
El arte de programar prev
 
Principios programacion
Principios programacionPrincipios programacion
Principios programacion
 
Programar
ProgramarProgramar
Programar
 
Urso de pascal por nacho cabanes
Urso de pascal por nacho cabanesUrso de pascal por nacho cabanes
Urso de pascal por nacho cabanes
 
Computacion para ingenieros las variables
Computacion para ingenieros las variablesComputacion para ingenieros las variables
Computacion para ingenieros las variables
 
Unmsm02 2008
Unmsm02 2008Unmsm02 2008
Unmsm02 2008
 
Manual de Programación c/c++ Ricky Bonilla
Manual de Programación c/c++ Ricky BonillaManual de Programación c/c++ Ricky Bonilla
Manual de Programación c/c++ Ricky Bonilla
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Fundamentos de visual basic 6.0.
Fundamentos de visual basic 6.0. Fundamentos de visual basic 6.0.
Fundamentos de visual basic 6.0.
 
1. introducción a c#
1.  introducción a c#1.  introducción a c#
1. introducción a c#
 
Pseudocodigos2
Pseudocodigos2Pseudocodigos2
Pseudocodigos2
 
Semestral prog
Semestral progSemestral prog
Semestral prog
 
Prolog
PrologProlog
Prolog
 
Lenguaje de programacion c#
Lenguaje de programacion c#Lenguaje de programacion c#
Lenguaje de programacion c#
 
Software1
Software1Software1
Software1
 

Similar a Notacion Hungara

Compendio de clean code (robert c. martin)
Compendio de clean code (robert c. martin)Compendio de clean code (robert c. martin)
Compendio de clean code (robert c. martin)Nombre Apellidos
 
Herramientas computacionales
Herramientas computacionales Herramientas computacionales
Herramientas computacionales Andrea6e
 
Computacion alejandro
Computacion alejandroComputacion alejandro
Computacion alejandrojose camara
 
Unidad v sistemas mecanizados ii
Unidad v sistemas mecanizados iiUnidad v sistemas mecanizados ii
Unidad v sistemas mecanizados iinestorgarcia250
 
Unidad v sistemas mecanizados ii
Unidad v sistemas mecanizados iiUnidad v sistemas mecanizados ii
Unidad v sistemas mecanizados iinestorgarcia250
 
Tutorial basico prolog
Tutorial basico prologTutorial basico prolog
Tutorial basico prologAnderipe Pinto
 
Ensayo de programacion c
Ensayo de programacion cEnsayo de programacion c
Ensayo de programacion cChavez Raul
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programaciónOscar Delgado
 
Elian examen-info-
Elian examen-info-Elian examen-info-
Elian examen-info-elian rivas
 
Introducción a los lenguajes de programación( imodulo)
Introducción a los lenguajes de programación( imodulo)Introducción a los lenguajes de programación( imodulo)
Introducción a los lenguajes de programación( imodulo)ROBERT ENRIQUE MARTINEZ GARCIA
 
Lenguajes de programación i
Lenguajes de programación   iLenguajes de programación   i
Lenguajes de programación iOmar Robles
 
Quasi - Introducción al Lenguaje C
Quasi - Introducción al Lenguaje CQuasi - Introducción al Lenguaje C
Quasi - Introducción al Lenguaje Cdegarden
 

Similar a Notacion Hungara (20)

Compendio de clean code (robert c. martin)
Compendio de clean code (robert c. martin)Compendio de clean code (robert c. martin)
Compendio de clean code (robert c. martin)
 
Programacion Php
Programacion PhpProgramacion Php
Programacion Php
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
Herramientas computacionales
Herramientas computacionales Herramientas computacionales
Herramientas computacionales
 
Computacion alejandro
Computacion alejandroComputacion alejandro
Computacion alejandro
 
3
33
3
 
Unidad v sistemas mecanizados ii
Unidad v sistemas mecanizados iiUnidad v sistemas mecanizados ii
Unidad v sistemas mecanizados ii
 
Unidad v sistemas mecanizados ii
Unidad v sistemas mecanizados iiUnidad v sistemas mecanizados ii
Unidad v sistemas mecanizados ii
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Funciones en php
Funciones en phpFunciones en php
Funciones en php
 
Tutorial basico prolog
Tutorial basico prologTutorial basico prolog
Tutorial basico prolog
 
Introduccion actionscript
Introduccion actionscriptIntroduccion actionscript
Introduccion actionscript
 
Ensayo de programacion c
Ensayo de programacion cEnsayo de programacion c
Ensayo de programacion c
 
Lenguaje C
Lenguaje CLenguaje C
Lenguaje C
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Elian examen-info-
Elian examen-info-Elian examen-info-
Elian examen-info-
 
SEBASTIAN QUINTO TORRES.pptx
SEBASTIAN QUINTO TORRES.pptxSEBASTIAN QUINTO TORRES.pptx
SEBASTIAN QUINTO TORRES.pptx
 
Introducción a los lenguajes de programación( imodulo)
Introducción a los lenguajes de programación( imodulo)Introducción a los lenguajes de programación( imodulo)
Introducción a los lenguajes de programación( imodulo)
 
Lenguajes de programación i
Lenguajes de programación   iLenguajes de programación   i
Lenguajes de programación i
 
Quasi - Introducción al Lenguaje C
Quasi - Introducción al Lenguaje CQuasi - Introducción al Lenguaje C
Quasi - Introducción al Lenguaje C
 

Más de Ashley Stronghold Witwicky

Carpeta de investidura para guias mayores (venezuela)
Carpeta de investidura para guias mayores (venezuela)Carpeta de investidura para guias mayores (venezuela)
Carpeta de investidura para guias mayores (venezuela)Ashley Stronghold Witwicky
 
Consecuencias personales y sociales del uso de drogas
Consecuencias personales y sociales del uso de drogasConsecuencias personales y sociales del uso de drogas
Consecuencias personales y sociales del uso de drogasAshley Stronghold Witwicky
 
Derivadas e integrales apunte para principiantes
Derivadas e integrales apunte para principiantesDerivadas e integrales apunte para principiantes
Derivadas e integrales apunte para principiantesAshley Stronghold Witwicky
 
Unidad v paradigma funcional de programacion fiuncional
Unidad v   paradigma funcional de programacion fiuncionalUnidad v   paradigma funcional de programacion fiuncional
Unidad v paradigma funcional de programacion fiuncionalAshley Stronghold Witwicky
 

Más de Ashley Stronghold Witwicky (20)

Clase 0.3 normalizacion. sql server aplicado
Clase 0.3   normalizacion. sql server aplicadoClase 0.3   normalizacion. sql server aplicado
Clase 0.3 normalizacion. sql server aplicado
 
Carpeta de investidura para guias mayores (venezuela)
Carpeta de investidura para guias mayores (venezuela)Carpeta de investidura para guias mayores (venezuela)
Carpeta de investidura para guias mayores (venezuela)
 
Sanson mata un leon con sus manos
Sanson mata un leon con sus manosSanson mata un leon con sus manos
Sanson mata un leon con sus manos
 
Consecuencias personales y sociales del uso de drogas
Consecuencias personales y sociales del uso de drogasConsecuencias personales y sociales del uso de drogas
Consecuencias personales y sociales del uso de drogas
 
Constancia de servicio
Constancia de servicioConstancia de servicio
Constancia de servicio
 
Requisitos para Guia Mayor
Requisitos para Guia MayorRequisitos para Guia Mayor
Requisitos para Guia Mayor
 
Instructivo de llenado carta poder
Instructivo de llenado carta poderInstructivo de llenado carta poder
Instructivo de llenado carta poder
 
Constancia experiencia profesional
Constancia experiencia profesionalConstancia experiencia profesional
Constancia experiencia profesional
 
Ideales ja
Ideales jaIdeales ja
Ideales ja
 
Mysql
MysqlMysql
Mysql
 
Especialidad de insectos desarrollada
Especialidad de insectos desarrolladaEspecialidad de insectos desarrollada
Especialidad de insectos desarrollada
 
Manual basico autocad_2012
Manual basico autocad_2012Manual basico autocad_2012
Manual basico autocad_2012
 
Derivadas e integrales apunte para principiantes
Derivadas e integrales apunte para principiantesDerivadas e integrales apunte para principiantes
Derivadas e integrales apunte para principiantes
 
Ecuaciones primer grado con una incognita
Ecuaciones primer grado con una incognitaEcuaciones primer grado con una incognita
Ecuaciones primer grado con una incognita
 
Conversion de unidades
Conversion de unidadesConversion de unidades
Conversion de unidades
 
Curso de my sql
Curso de my sqlCurso de my sql
Curso de my sql
 
Manual de microsoft publisher 2007
Manual de microsoft publisher 2007Manual de microsoft publisher 2007
Manual de microsoft publisher 2007
 
Unidad v paradigma funcional de programacion fiuncional
Unidad v   paradigma funcional de programacion fiuncionalUnidad v   paradigma funcional de programacion fiuncional
Unidad v paradigma funcional de programacion fiuncional
 
Biblia de publisher 2007
Biblia de publisher 2007Biblia de publisher 2007
Biblia de publisher 2007
 
Ejercicios en microsoft publisher 2007
Ejercicios en microsoft publisher 2007Ejercicios en microsoft publisher 2007
Ejercicios en microsoft publisher 2007
 

Último

tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfs7yl3dr4g0n01
 
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVILClase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVILProblemSolved
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfbcondort
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinosDayanaCarolinaAP
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónXimenaFallaLecca1
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
osciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdfosciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdfIvanRetambay
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdfCristhianZetaNima
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesElianaCceresTorrico
 
clasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesclasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesMIGUELANGEL2658
 
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOCAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOLUISDAVIDVIZARRETARA
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptxBRAYANJOSEPTSANJINEZ
 
Ingeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaIngeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaANACENIMENDEZ1
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOFritz Rebaza Latoche
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 

Último (20)

tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdf
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVILClase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
Clase 7 MECÁNICA DE FLUIDOS 2 INGENIERIA CIVIL
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinos
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
osciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdfosciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdf
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
clasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesclasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias locales
 
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESOCAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
 
Ingeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaIngeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedica
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 

Notacion Hungara

  • 1. INSTITUTO TECNOLOGICO DE TAPACHULA Nombre Del Alumno: Sheyla Berenice Martínez Ramos Lorenzo Eli López Sánchez Jhony Manuel López Vázquez Luis Enrique Martínez Martínez Nombre De La Carrera: Ingeniería En Sistemas Computacionales Nombre Del Profesor: MC. en C. C. Anamim Villarreal Wong Nombre De La Materia: Programación Lógica y Funcional
  • 2. ¿POR QUÉ ELEGIMOS LA NOTACIÓN HÚNGARA? Primeroque nada debemospreguntarnos¿porqué haceruna programaciónde calidad?Porque la calidadexternadel software guardauna relacióndirectacon la calidadinternadel mismo,esdecir con su estructura y codificación. Todos queremos construir software correcto, robusto, extensible y reusable. Debemos ser conscientes que el mejor camino para lograrlo, está precisamente en hacer una programación de calidad. Existen además otras razones de mucha importancia para aplicar técnicas de buena codificación. Como desarrolladoresnopodemosolvidarque el códigofuente se mantiene yreutiliza,conloque para facilitar estas tareas debemos cuidar nuestra programación. El objetivo del presente trabajo es presentar de una forma simple, informal y no demasiada ordenada, algunas características particulares, así como otras generales, para el ejercicio de una buena codificación. Esta notación está basada en parte en CamelCase, específicamente la lowerCamelCase. En su versiónmásbásica,tenemosvariostiposde datoslosquerecibenunaletra.De esaforma,unstring recibirála letra s, un int la letra i,un decimal laletra d. Un arreglorecibirápor supuestolaletra a. Teniendo eso en cuenta, y combinándola con la CamelCase no resulta difícil pensar en qué sigue: Un nombre cualquiera para nuestra variable siguiendo las reglas del CamelCase. De estaforma,podemostener: aIndicadorResultados iContador sPrimerNombre Y así se continúa.De estaforma,consóloun miropodemossaberde qué tipoesnuestravariable,y mediante CamelCase (asignándole un nombre significativo) podremos saber cuál es su función, lo cual encuentro ideal enun lenguaje como PHP donde una misma variable puede ser un float o un bit al momento siguiente. Elegimos esta convención porque así es más fácil identificar qué tipo de dato es nuestra variable, dandoasíinformaciónnosolodeltipodedatosinotambiénde sufunción dentrodenuestrocódigo. NOTACIÓN HUNGARA En programación,lanotaciónhúngaraesunsistemausadonormalmenteparacrearlosnombresde variables.Tambiénse utilizaparanombrar las instanciasde objetosenlenguajesde programación visuales,comoporejemploDelphi.El nombrede lanotaciónprovienedelhechode quesuinventor, Charles Simonyi, nació en Hungría. Esta convención es muy poco utilizada en las viejas versiones de Delphi pero es muy utilizada por los programadores de Microsoft y, en particular, en la programación del sistema operativo Windows.
  • 3. Consiste en prefijos en minúsculas que se añaden a los nombres de las variables y que indican su tipo. El resto del nombre indica, lo más claramente posible, la función que realiza la variable. A continuaciónse muestraunlistadode losprefijosque se utilizan: Prefijo Significado a 'array'. Para vectores/matrices/listasde ndimensionesordenadasescalarmente. b Booleano(int).Paravariablesque tomensolodostiposde valores. by BYTE o UCHAR (unsignedchar) c Carácter (unbyte).Parael tipoprimitivode carácteralfanuméricoindividual. dw Enterolargo de 32 bitssinsigno (double word) f Flagsempaquetadosenunenterode 16 bits h Manipuladorde 16 bits (handle) i 'int'.Para númerosenterosengeneral,tantoenterosnormalescomoaquellostipos enterosde máscapacidad (comolong). l Enterolargo de 32 bits lbl ObjetoLabel lp Punteroa enterolargode 32 bits lpfn Punterolargoa una funciónque devuelve unentero lpsz Punterolargoa una cadenaterminadaconcero n Enterode 16 bits p Punteroa enterode 16 bits e Enumeración pt Coordenadas (x,y) empaquetadasenunenterode 32 bits
  • 4. rgb Valorde color RGB empaquetadoenunenterode 32 bits sz Cadenaterminadaencero txt Cajasde texto w Enterocorto de 16 bitssinsigno (word) Ejemplode cómoutilizarlanotaciónHúngara:  nContador: la variable es un entero que se usará como contador.  szNombre: una cadena terminada con cero la cual almacena un nombre.  bRespuesta: una variable booleana que almacena una respuesta.  txtHora: una instancia de un objeto textbox que almacena la hora. HISTORIA La notaciónhúngaraoriginal,queahorase llamaría Aplicacioneshúngaro,fueinventadaporCharles Simonyi, un programador que trabajaba en Xerox PARC circa 1972-1981, y que más tarde se convirtióenarquitectojefede Microsoft.Puedehabersidoderivadodel principioanteriordeutilizar la primera letra del nombre de una variable para ajustar su tipo - por ejemplo, las variablescuyos nombres comenzaron con las letras I a N en FORTRAN son enteros por defecto. La notaciónes una referenciaa la naciónde Simonyi de origen,nombresde laspersonashúngaras se "invierten" en comparación con la mayoría de los nombres europeos, el apellido precede al nombre. Por ejemplo, el nombre anglicismo "Charles Simonyi" en húngaro era originalmente "Charles Simonyi". De la misma manera el nombre del tipo precede al "nombre" en la notación húngara en lugar de la más natural, la mayoría europeos, "type última" Smalltalk nombramiento estiloporejemplounPuntoylastPoint.Este estilode denominaciónestaúltimaeramás comúnen el Xerox PARC durante el mandato de Simonyi allí. El nombre Aplicaciones húngaro fue acuñado desde que la convención se utilizó en la división de aplicaciones de Microsoft. Sistemas húngaro desarrolló más tarde en el equipo de desarrollo de MicrosoftWindows.El artículode Simonyi se refirióalosprefijosutilizadosparaindicarel "tipo"de la información que se almacena. Su propuesta fue en gran parte que ver con nombres de identificadores de decoración en base a la información semántica de lo que almacenan, en consonancia con aplicaciones húngaro. Sin embargo, sus sugerencias no fueron enteramente distintode lo que se conoce como Sistemasde Hungría, ya que algunosde susprefijospropuestos contienen poca o ninguna información semántica. PRINCIPIOS GENERALES  La elegancia siempre obtiene su recompensa: se tarda menos en depurar y conseguir que funcione la práctica.  Primero hay que hacer que el código funcione; luego, si hace falta, hay que optimizarlo.
  • 5.  Aplica el principio "divide y vencerás".  Si el código es difícil de leer, es difícil de mantener, depurar o mejorar.  Hay que minimizar el número de variables globales: las variables deben declararse en un ámbito de uso lo más reducido que sea posible.  Hay que inicializar las variables inmediatamente al declararlas. Por ejemplo: int nMuescas= 0  No se debe usar una misma variable para varios propósitos diferentes,porque dificulta la legibilidad. TIPO DE IDENTACION EMPLEADA El estilo K&R es el más usado en el lenguaje C y PHP. El estilo K&R, fue llamado de esta forma porque fue usado por Kernighan y Ritchies en su libro The C Programming Language. Se trata de abrir la llave en la misma línea de declaración de la orden, indentando los siguientes pasos al mismo nivel que la llave y cerrando la llave en el mismo nivel que la declaración. La ventaja de este estilo es que la llave de apertura no requiere una linea extra y llave de finalización se alinea conceptualmente a la declaración conceptual a la que pertenece. Una desventajade este estilo esque lallave final de unbloquetomaunalineaenterf,elcual podría se parcialmente resuelto en los bloques if/else y do/while CODIGO Clase Principal /* realizacionde uncubomagico */ package Cubo; importjava.awt.BorderLayout; importjava.awt.GridLayout; importjava.awt.event.ActionEvent; importjava.awt.event.ActionListener; importjava.awt.event.ItemEvent; importjava.awt.event.ItemListener; importjavax.swing.JApplet; importjavax.swing.JButton; importjavax.swing.JComboBox; importjavax.swing.JLabel;
  • 6. importjavax.swing.JPanel; importjavax.swing.UIManager; importjavax.swing.UnsupportedLookAndFeelException; publicclassPrincipal extendsJApplet{//Declaracionde loscomponentes JButtonbtnCuadros[] []; JComboBox comboTamañoCubo; StringstrTamaño[]={"3","5","7","9","11","13","15","17","19","21"}; JPanel panelCentro; JButtonbtnIniciar; @Override publicvoidinit(){//Se inicializanloscomponentes colocarSkin(); JPanel panelArriba=new JPanel(); panelArriba.add(newJLabel("Tamaño")); comboTamañoCubo=newJComboBox(strTamaño); comboTamañoCubo.addItemListener(new ItemListener(){ @Override publicvoiditemStateChanged(ItemEvente){//Tamañode lamatriz if(e.getStateChange()==ItemEvent.SELECTED){ panelCentro.removeAll(); btnCuadros=new JButton[Integer.parseInt(comboTamañoCubo.getSelectedItem().toString())][Integer.parseInt(c omboTamañoCubo.getSelectedItem().toString())]; panelCentro.setLayout(new GridLayout(btnCuadros.length,btnCuadros.length,2,2)); for(inti=0;i<btnCuadros.length;i++){ for(intj=0;j<btnCuadros.length;j++){ btnCuadros[i][j]=new JButton(); panelCentro.add(btnCuadros[i][j]); }
  • 8. e.printStackTrace(); } catch (IllegalAccessExceptione) { e.printStackTrace(); } catch (UnsupportedLookAndFeelExceptione) { e.printStackTrace(); } } } Proceso /* * To change thislicense header,choose License HeadersinProjectProperties. * To change thistemplate file,choose Tools|Templates * and openthe template inthe editor. */ package Cubo; importjavax.swing.JButton; /** * * @author manny */ classProcesoextendsThread{ JButtonbtnCuadros[][]; int intnumero;
  • 10. } }