*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:
Aritméticos
Relacionales
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.
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.
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.
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 rojo, verde 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.
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).
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