lunes, 8 de mayo de 2017

Atributos Heredados y Atributos sintetizados

Atributos heredados

La gramática de atributos se extiende con información del contexto ( parte no inferior del árbol sintáctico atribuido)  Principio de composicionalidad generalizado: La “sentencia significado” asociada a cada categoría sintáctica dependerá de las “sentencias significado” de sus subcategorías sintácticas y de las categorías sintácticas que formen parte de su contexto.

Todos los atributos que se calculan según el principio de composicionalidad generalizado (usando al menos un atributo del contexto) se llaman atributos heredados

Atributos sintetizados

Estos atributos obtener los valores de los atributos de sus nodos secundarios. Para ilustrar, asumir las siguientes producciones:
S  ABC
Si S es tomar los valores de sus nodos secundarios (A,B,C), entonces se dice que es un atributo sintetizado, como los valores de ABC se sintetizan para S.
Como en nuestro ejemplo anterior (E → E + T), el nodo padre E obtiene su valor de su nodo hijo. Sintetiza los atributos nunca tomar valores entre sus nodos padres o cualquier nodos relacionados.

Herencia

Herencia

Después de la agregación o composición, el mecanismo más utilizado para alcanzar algunos de los objetivos más preciados en el desarrollo de software como lo son la reutilización y la extensibilidad. A través de ella los diseñadores pueden crear nuevas clases partiendo de una clase o de una jerarquía de clases preexistente (ya comprobadas y verificadas) evitando con ello el rediseño, la modificación y verificación de la parte ya implementada.

Programa

package javaapplication2;
import java.io.*;
import java.lang.*;
public class JavaApplication2 {

   
    public static void main(String[] args)throws IOException {
        BufferedReader a=new BufferedReader(new InputStreamReader(System.in));
        int b;
        System.out.println("hola ingresa tu numero");
       double res=0;
int option;

do{
System.out.println("Escoja el articulo a meter");
System.out.println("1.-Celular");
System.out.println("2.-Tablet");
System.out.println("3.-Cuaderno");
System.out.println("4.-Calculadora");
System.out.println("5.-libro");
option=Integer.parseInt(a.readLine());
switch(option){

case 1: {
   System.out.println("Ha escogido celular");
res= res+0.5;
System.out.println("Usted lleva "+res);
break;
}
case 2:{
System.out.println("Ha escogido Tablet");
res= res+0.8;
System.out.println("Usted lleva "+res);
break;
}
case 3:{
System.out.println("Ha escogido Cuaderno");
res= res+0.7;
System.out.println("Usted lleva "+res);
break;
}
case 4:{
System.out.println("Ha escogido Calculadora");
res= res+0.2;
System.out.println("Usted lleva "+res);
break;
}
case 5:{
System.out.println("Ha escogido libro");
res= res+1;
System.out.println("Usted lleva "+res);
break;
}
}
}
while(res<=20);
if(res>=20);
System.out.println("Su mochila se ha excedido de peso");

}
}

Explicacion

este programa te va guardando el valor correspondiente que le vas dando a la suma para poder llenar una caja o lo que quieres llenar