lunes, 29 de abril de 2019

operadores , operandos y extresiones

peradores, Operandos y Expresiones

*Operando:
Referente a la parte de la instrucción de lenguaje máquina de la computadora que designa la dirección de los datos con los que se debe operar.

*Expresion:
Una expresión es una secuencia de operadores y operandos que describe un cálculo. Normalmente una expresión se evalúa en tiempo de ejecución.


*OPERADORES:


operadores: un operador es el símbolo que determina el tipo de operación o relación que habrá que establecerse entre los operandos de una expresión para alcanzar un resultado.
Los operadores se clasifican en tres grupos:
  1. Aritméticos
  2. Relacionales
  3. Lógicos
1.-Operadores aritméticos: son aquellos que permiten la realización de cálculos aritméticos. Utilizan operandos numéricos y proporcionan resultados numéricos.

operadores aritmeticos
+ ------- suma
-------resta
* -------Multiplicación
/ -------División real
Div -----División entera
Mod ----Residuo
^ -------Exponenciación

Ejemplos:

7+3 = 10
7-3 = 4
20 Mod 3 = 2
10/4 = 2.5
2^3 = 8

en la expresión 7+3, los valores 7 y 3 se denominan operandos, que son los valores que se evaluan o relacionan. El valor de la expresión 7 + 3 se conoce como resultado de la expresión , que es el producto de la relacion entre los operandos condicionados por el operador.


*Operadores Relacionales: 

Los operadores relacionales, también denominados operadores binarios lógicos y de comparación, se utilizan para comprobar la veracidad o falsedad de determinadas propuestas de relación (en realidad se trata respuestas a preguntas). Las expresiones que los contienen se denominan expresiones relacionales. Aceptan diversos tipos de argumentos, y el resultado, que es la respuesta a la pregunta, es siempre del tipo cierto/falso, es decir, producen un resultado booleano.
Tabla: Operadores relacionales.
Operador
Acción
>
Mayor que
>=
Mayor o igual que
<
Menor que
<=
Menor o igual que
=
Igual
<>
Distinto
Si la propuesta es cierta, el resultado es true (un valor distinto de cero), si es falsa false (cero).
Ejemplos:
Si a = 10, b = 20, c = 30
a + b > c

Falso
a - b <>

Verdadero
a - b = c

Falso
a * b < > c

Verdadero

*Operadores lógicos
son aquellos que permiten la combinacion de condiciones para formar una sola expresion lógica. Utilizan operandos lógicos y proporcionan resultados lógicos también.

Operadores
not -------------negación (no)
and -------------conjunción (y)
or --------------disyunción (o)
xor -------------disyunción exclusiva (o/solo)

Se obtiene verdadero si:
NOT-----el operando el falso
AND-----ambos operandos son verdaderos
OR------Al menos un operando es verdadero
XOR----solo uno de los operandos es verdadero.

ejemplos: (5+3 and 4-2) > 1 , (5 or 6) < 50

proposicion de asignación

Regla de Asignación

Se llama Regla de Asignación de Pesos a una expresión que tiene la siguiente forma:
ANT->P [+,-] # (W11,W21) ,
V [+,-] # (Va, Vn) donde:
el antecedente ANT expresa las condiciones bajo las cuales tiene sentido la activación de cada componente del sucedente.
Significado de la Regla
"Si se satisface la condición definida en el antecedente "ANT", entonces las proposiciones sucedentes "#i" toman los pesos marcados como W1i , es decir C(#1)=W11 , C(#2)=W12 y así sucesivamente hasta C(#n)=W1n , pero en caso contrario toman los pesos definidos como W2i , sabiendo además que los signos + y - son opcionales y definen si tiene sentido la afirmación y negación para cada caso respectivamente (i=1,...,n), cuando estos signos no aparecen la asignación se realiza independientemente del cumplimiento del antecedente, pues éste es válido para la afirmación y la negación".
Convenios
a) Si se coloca en el sucedente P+23 se está expresando que para la proposición 23 sólo tiene sentido el análisis en caso que se cumpla el antecedente.
b) Si aparece P-23 que por el contrario sólo se ejecutará la asignación en caso que no se cumpla el antecedente.
c) Si aparece P23 entonces será activada la asignación del peso en ambos casos.
Ejemplo
391->P+388( -100, 0), P+389( -100, 0), P+390( -100, 0)
(354 & 388) V (355 & 389)->V+1058( 4, 0)

almacenamiento , direccionamientro y representacion en memoria

4.3.4.- Almacenamiento, direccionamiento y representación en memoria.

Almacenamiento
La computadora posee determinada cantidad de almacenamiento interno denominado memoria principal, memoria RAM o memoria volátil. Esta memoria se activa al encender la computadora y se desactiva al apagarla. Para que un programa se ejecute, debe cargarse en la memoria principal, así como los datos necesarios. Como es más costosa, es un recurso escaso donde sólo se almacenan los datos que se requieren de inmediato, y los demás se relegan a los dispositivos de almacenamiento externo, donde la capacidad de almacenamiento es mayor, pero también el tiempo de recuperación. Por otra parte, el costo del almacenamiento externo es más bajo.
Direccionamiento
La memoria principal de la computadora se divide en pequeñas unidades de tamaño uniforme denominadas palabras, que tienen una dirección única.
Cada una de éstas palabras es capaz de almacenar una unidad de información (como, por ejemplo, resultados numéricos), y determina el número más grande y el más pequeño que puede almacenar.
El tamaño de la palabra depende de la computadora, pero siempre se especifica en múltiplos de 8 bits. Así, existen computadoras con tamaños de palabra de 8, 16, 32 y 64 bits.
Cada palabra de la memoria principal tiene una dirección fija que va de cero hasta el número total de palabras - 1. Las direcciones de memoria sirven para identificar cada palabra individualmente, de tal manera que pueda accederse al dato contenido en ella. A fin de simplificar su comprensión, las memorias se consideran como una hilera de palabras.
Por ejemplo, suponiendo que la memoria principal de una computadora tiene un tamaño de palabra de 8 bits, la cinta de color amarillo que se muestra enseguida podría representar las tres primeras palabras:



Dirección
P a l a b r a
Valor en decimal
0000
0
1
0
0
1
0
1
1
75
0001
0
1
0
0
0
0
0
1
65
0002
0
0
1
1
0
0
1
0
50
Representación en memoria
La representación en memoria de los caracteres no reviste mayor complicación, debido a que los códigos utilizados, como el ASCII (American Standard Code for Information Interchange), les asignan valores enteros positivos.
En el caso de los datos numéricos hay que considerar la distinción entre números negativos y positivos, y la que hay entre números de punto flotante y enteros.
Los signos se manejan normalmente mediante el bit más significativo de la palabra (el situado a la extrema izquierda), y se le denomina bit de signo. Cuando el bit de signo almacena un cero, el número se considera positivo; cuando almacena un uno el número es negativo. Es por esto que, si el tamaño de la palabra es de m bits, quedan m-1 bits para representar la magnitud del número almacenado.
Los números de punto flotante se manejan en formato logarítmico, con un número fijo de bits para la base y otro para la mantisa. El estándar para los números de punto flotante lo fija el IEEE.
Debido al formato logarítmico, los cálculos que se hacen con tipos de punto flotante no son tan precisos como los que se hacen con tipos enteros.




tipos de datos

Un tipo de dato es, en esencia, un espacio en memoria con restricciones. Por ejemplo, el tipo "int" representa, generalmente, un conjunto de enteros de 32 bits cuyo rango va desde el -2.147.483.648 al 2.147.483.647, así como las operaciones que se pueden realizar con los enteros, como son la suma, la resta, y la multiplicación. Los colores, por su parte, se representan como tres bytes denotando la cantidad de rojoverde y azul, y una cadena de caracteres representando el nombre del color (en este caso, las operaciones permitidas incluyen la adición y la sustracción, pero no la multiplicación).
Este es un concepto propio de la informática, y más específicamente de los lenguajes de programación, aunque también se encuentra relacionado con nociones similares de la matemática y la lógica.
En un sentido amplio, un tipo de datos define un conjunto de valores y las operaciones sobre esos valores. Casi todos los lenguajes de programación explícitamente incluyen la notación del tipo de datos, aunque lenguajes diferentes pueden usar terminologías diferentes. La mayor parte de los lenguajes de programación permiten al programador definir tipos de datos adicionales, normalmente combinando múltiples elementos de otros tipos y definiendo las operaciones del nuevo tipo de dato. Por ejemplo, un programador puede crear un nuevo tipo de dato llamado "Persona", contemplando que el dato interpretado como Persona incluiya un nombre y una fecha de nacimiento.
Un tipo de dato puede ser también visto como una limitación impuesta en la interpretación de los datos en un sistema de tipificación, describiendo la representación, la interpretación y la estructura de los valores u objetos almacenados en la memoria del ordenador. El sistema de tipificación usa información de los tipos de datos para comprobar la verificación de los programas que acceden o manipulan los datos.

Tipos compuestos[editar]

Los tipos compuestos se derivan de uno o más datos primitivos. A las distintas maneras de formar o combinar estos datos se les conocen con el nombre de “Estructura de datos”. Al combinarlo podemos crear un nuevo tipo, por ejemplo:
"array-de-enteros" es distinto al tipo "entero".
  • Un Vector (o arreglo del original en inglés array) almacena un número de elementos del mismo tipo en un orden específico. Los arrays pueden ser estáticos (con una medida fija) o dinámicos (crecer durante su ciclo de vida).
  • Un Registro o Tupla.
  • Un Conjunto.

Estructura basica de un progrmacion

PROGRAMACIÓN ESTRUCTURADA La programación estructurada es un estilo con el cual el se busca que el programador elabore programas sencillos y fáciles de entender. Para ello, la programación estructurada hace uso de tres estructuras básicas de control. Éstas son: Estructura Secuencial Estructura Selectiva Estructura Repetitiva (ó Iterativa) La programación estructurada se basa un teorema fundamental, el cual afirma que cualquier programa, no importa el tipo de trabajo que ejecute, puede ser elaborado utilizando únicamente las tres estructuras básicas (secuencia, selección, iteración). DEFINICIÓN DE LAS TRES ESTRUCTURAS BÁSICAS Estructura Secuencial Indica que las instrucciones de un programa se ejecutan una después de la otra, en el mismo orden en el cual aparecen en el programa. Se representa gráficamente como una caja después de otra, ambas con una sola entrada y una única salida. Las cajas A y B pueden ser definidas para ejecutar desde una simple instrucción hasta un módulo o programa completo, siempre y cuando éstos también sean programas apropiados. Programación Instituto Tecnológico de Celaya Ingeniería Química Estructura Selectiva También conocida como la estructura SI-VERDADERO-FALSO, plantea la selección entre dos alternativas con base en el resultado de la evaluación de una condición; equivale a la instrucción IF de todos los lenguajes de programación y se representa gráficamente de la siguiente manera: En el diagrama de flujo anterior, C es una condición que se evalúa; A es la acción que se ejecuta cuando la evaluación de esta condición resulta verdadera y B es la acción ejecutada cuando el resultado de la evaluación indica falso. La estructura también tiene una sola entrada y una sola salida; y las funciones A y B también pueden ser cualquier estructura básica o conjunto de estructuras. Estructura Repetitiva (Iterativa) También llamada la estructura HACER-MIENTRAS-QUE, corresponde a la ejecución repetida de una instrucción mientras que se cumple una determinada condición. El diagrama de flujo para esta estructura es el siguiente: Programación Instituto Tecnológico de Celaya Ingeniería Química Aquí el bloque A se ejecuta repetidamente mientras que la condición C se cumpla o sea cierta. También tiene una sola entrada y una sola salida; igualmente A puede ser cualquier estructura básica o conjunto de estructuras. Ventajas de la Programación Estructurada Con la programación estructurada, elaborar programas de computadora sigue siendo una labor que demanda esfuerzo, creatividad, habilidad y cuidado. Sin embargo, con este nuevo estilo podemos obtener las siguientes ventajas: 1. Los programas son más fáciles de entender. Un programa estructurado puede ser leído en secuencia, de arriba hacia abajo, sin necesidad de estar saltando de un sitio a otro en la lógica, lo cual es típico de otros estilos de programación. 2. Se logra una reducción del esfuerzo en las pruebas. El seguimiento de las fallas o depuración (debugging) se facilita debido a la lógica más visible, de tal forma que los errores se pueden detectar y corregir más fácilmente. 3. Se crean programas más sencillos y más rápidos.
Unidad III: Introducción a la Programación 3.1 Características del lenguaje de programación Un lenguaje de programación es un idioma artificial diseñado para expresar procesos que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le llama programación. También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos: El desarrollo lógico del programa para resolver un problema en particular. Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa). Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina. Prueba y depuración del programa. Desarrollo de la documentación. 3.2 Estructura básica de un programa. Como ya se ha visto, cuando se escribe un programa lo que se trata de hacer es indicarle a la computadora cómo ha de resolver un problema. Estos programas siguen determinada estructuras, que dependen del tipo de lenguaje que usemos y del entorno en el cual lo creemos. Principios generales: Un cargador - todo programa necesita ser cargado en la memoria por el sistema operativo. De esto se encarga el intérprete. Definición de los datos - la mayoría de los programas operan con datos y por lo tanto en el código fuente debemos definir qué tipo de datos vamos a utilizar en el programa. Esto se realiza de manera diferente en los distintos lenguajes. Todos los lenguajes que usaremos tienen la posibilidad de crear una nueva definición de datos simplemente al utilizar los datos. Veremos esto en la próxima sección. Instrucciones - son la parte central del programa. Las instrucciones manipulan los datos que hemos definido, realizan cálculos, muestran los resultados, etc. 3.3 Traducción de un programa: compilación, enlace de un programa, errores en tiempo de compilación Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser un código intermedio (bytecode), o simplemente texto. Este proceso de traducción se conoce como compilación.[] Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a cómo piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora. 3.4 Ejecución de un programa A un programa en ejecución se le suele llamar también proceso. El proceso de ejecución de un programa escrito en un lenguaje de programación y mediante un compilador tiene los siguientes pasos: 1. Escritura del programa fuente con un editor (programa que permite a una computadora actuar de modo similar a una máquina de escribir electrónica) y guardarlo en un dispositivo de almacenamiento. 2. Introducir el programa fuente en memoria. 3. Compilar el programa con el compilador. 4. Verificar y corregir errores de compilación. 5. Obtención del programa objeto 6. El enlazador (linker) obtiene el programa ejecutable. 7. Se ejecuta el programa y, si no existen errores, se tendrá la salida del programa. 3.5 Elementos del lenguaje: datos, literales y constantes, identificadores, variables, parámetros, operadores, entrada y salida de datos TIPOS DE DATOS Todos los lenguajes de programación soportan algún conjunto de diferentes tipos de datos. Un tipo de dato es un conjunto de valores y un conjunto de operaciones definidas para esos valores. Un tipo de dato describe un conjunto de objetos con la misma representación. Existe un número de operaciones asociadas con cada tipo, por ejemplo: es posible realizara aritmética sobre tipos de datos enteros y reales, concatenar con los datos de tipo cadena o recuperar o modificar el valor de un elemento de un arreglo. Un tipo de dato proporciona una descripción de sus instancias que indican al compilador cosas como cuanta memoria se debe asignar para una instancia, cómo representar los datos en memoria y qué operaciones son permisibles sobre esos datos. Los tipos de datos que se construyen en el compilador, se conocen como tipos de datos fundamentales o predefinidos. Cada lenguaje de programación incorpora una colección de tipos de datos fundamentales, que incluyen normalmente enteros, reales, carácter etc. Los lenguajes soportan también un número de constructores de tipos de datos estructurados o compuestos, que son tipos más complejos SIMPLES O PRIMITIVOS (Básicos, Fundamentales o predefinidos): Son aquellos que reconoce directamente el lenguaje, sirven de base para otros tipos de datos (complejos),ocupan solo una localidad de memoria, para el almacenamiento de un valor simple, no de objetos complejos. 3.6 Errores en tiempo de ejecución Los errores en tiempo de ejecución son los que se producen durante la ejecución del programa. Son los más difíciles de encontrar, no son detectados por el compilador, ya que son errores de lógica, no de sintaxis.Aunque al compilar un programa no de errores, el programa puede funcionar incorrectamente y/o a dar errores durante su ejecución. Por ejemplo: • Un programa puede producir resultados erróneos, al equivocarnos (errores lógicos) al programar el algoritmo (sumar en vez de restar, etc.). • Un programa puede interrumpirse bruscamente, por ejemplo si tenemos que hacer una división y el divisor es cero,etc. Los errores que se pueden producir en la fase de compilación son: − Errores fatales: Son raros. Indican errores internos del compilador.Cuando ocurren la compilación se detiene inmediatamente. − Errores de sintaxis: Son los errores típicos de sintaxis. No detienen la compilación sino que al finalizar ésta se mostrará la lista con todos los errores encontrados. Algunos errores suelen ser consecuencia de otros cometidos con anterioridad. Con este tipo de errores no se puede obtener un programa objeto y por lo tanto tampoco el ejecutable. − Advertencias o avisos (warnings): Indican que hay líneas de código sospechosas que a pesar de no infringir ninguna regla sintáctica, el compilador las encuentra susceptibles de provocar un error. Cuando se detecta un warning la compilación no se detiene