Lenguajes de
Programación
ALGORITMOS Y LENGUAJE DE PROGRAMACION
XXXX XXXXXXXX XXXXXXXXX XXXXXXX 4A
INSITUTO TECNOLOGICO DE TEPIC | ROF: ING. EPIGMENIO XXXXX XXXXXX
INSTITUTO TECNOLOGICO DE TEPIC
Tabla de contenido
1.- Introducción y estructura del entorno de un lenguaje de programación. .................................. 2
Estructura básica de un programa .................................................................................................. 2
Ejecución del programa................................................................................................................... 3
2.- Estructura básica de un programa ................................................................................................ 4
1.- Estructura secuencial ................................................................................................................. 4
2.- Estructura selectiva o de selección ............................................................................................ 4
3.-Estructura de control cíclica o repetitiva .................................................................................... 4
3.- Tipos de datos ............................................................................................................................... 5
Números reales ............................................................................................................................... 6
Números complejos ........................................................................................................................ 7
Valores lógicos................................................................................................................................. 7
Texto................................................................................................................................................ 7
Nulo ................................................................................................................................................. 8
4.- Identificadores............................................................................................................................... 8
Identificadores en lenguajes informáticos ...................................................................................... 9
Identificadores C++ ....................................................................................................................... 10
Tipos de identificadores ................................................................................................................ 11
Reglas de estilo.............................................................................................................................. 11
5.-Almacenamiento, direccionamiento y representación en memoria.......................................... 12
Almacenamiento ........................................................................................................................... 12
Direccionamiento .......................................................................................................................... 13
Representación en memoria ......................................................................................................... 13
6.- Proposición de asignación ........................................................................................................... 14
7.- Operadores, operandos y expresiones ....................................................................................... 14
Operadores aritméticos ................................................................................................................ 15
Operadores relacionales ............................................................................................................... 15
Operadores lógicos ................................................................................................................... 16
8.- Pruebas y depuración .................................................................................................................. 17
Codificación. .................................................................................................................................. 18
Documentación. ............................................................................................................................ 18
JOSE EDUARDO MORALES GARCIA ING. INDUSTRIAL 4A
INSTITUTO TECNOLOGICO DE TEPIC
1.- Introducción y estructura del entorno de un 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.
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 determinadas 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
JOSE EDUARDO MORALES GARCIA ING. INDUSTRIAL 4A
INSTITUTO TECNOLOGICO DE TEPIC
lenguajes. Todos los lenguajes que usaremos tienen la posibilidad de crear
una nueva definición de datos simplemente al utilizar los datos.
Instrucciones son la parte central del programa. Las instrucciones manipulan
los datos que hemos definido, realizan cálculos, muestran los resultados, etc.
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.
Ejecución del 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:
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.
1. Introducir el programa fuente en memoria.
2. Compilar el programa con el compilador.
3. Verificar y corregir errores de compilación.
4. Obtención del programa objeto
5. El enlazador (linker) obtiene el programa ejecutable.
6. Se ejecuta el programa y, si no existen errores, se tendrá la salida del
programa.
JOSE EDUARDO MORALES GARCIA ING. INDUSTRIAL 4A
INSTITUTO TECNOLOGICO DE TEPIC
2.- Estructura básica de un programa
Las partes principales de un programa están relacionadas con dos bloques:
declaraciones e instrucciones.
En las instrucciones podemos diferenciar tres partes fundamentales
Entrada de Datos: La constituyen todas las instrucciones que toman los datos de
entrada desde un dispositivo externo y los almacena en la memoria principal para
que puedan ser procesados.
Proceso o algoritmo: Está formado por las instrucciones que modifican los objetos
a partir de su estado inicial (datos de entrada) hasta el estado final (resultados)
dejando los objetos que lo contiene disponibles en la memoria principal.
Salida de resultados: Conjunto de instrucciones que toman los datos finales
(resultado) de la memoria principal y los envían a los dispositivos externos.
El teorema de Böhm y Jacopini (1966) dice que un programa propio puede ser
escrito utilizando sólo tres tipos de estructuras de control:
1.- Estructura secuencial
Una estructura de programa es secuencial si las instrucciones se ejecutan una tras
otra, a modo de secuencia lineal, es decir que una instrucción no se ejecuta hasta
que finaliza la anterior, ni se bifurca el flujo del programa.
2.- Estructura selectiva o de selección
La estructura selectiva permite que la ejecución del programa se bifurque a una
instrucción (o conjunto) u otra/s, según un criterio o condición lógica establecida,
sólo uno de los caminos en la bifurcación será el tomado para ejecutarse.
Estructura de control selectiva simple
Estructura de control selectiva doble
Estructura de control selectiva múltiple
3.-Estructura de control cíclica o repetitiva
Estructura de control desde
Estructura de control mientras
Para estas estructuras son necesarios los operadores lógicos y de relación.
JOSE EDUARDO MORALES GARCIA ING. INDUSTRIAL 4A
INSTITUTO TECNOLOGICO DE TEPIC
Operadores Operadores logicos
Mayor a Y (and)
Menor a O (or)
Mayor o igual a No (not)
Menor o igual a Menor o igual a
Diferente a Exclusivo o (or)
Con el uso de los operadores de relación se construyen las condiciones simples y
con el uso de los operadores de relación y lógicos se construyen las condiciones
compuestas.
Anidamiento: El cuerpo de cualquier estructura puede ser instrucciones simples u
otras estructuras, que a su vez pueden contener a otras.
3.- Tipos de datos
Un tipo de datos es la propiedad de un valor que determina su dominio (qué
valores puede tomar), qué operaciones se le pueden aplicar y cómo es
representado internamente por el computador.
Todos los valores que aparecen en un programa tienen un tipo.
A continuación revisaremos los tipos de datos elementales de Python. Además de
éstos, existen muchos otros, y más adelante aprenderemos a crear nuestros
propios tipos de datos.
Números enteros
JOSE EDUARDO MORALES GARCIA ING. INDUSTRIAL 4A
INSTITUTO TECNOLOGICO DE TEPIC
El tipo int (del inglés integer, que significa «entero») permite representar números
enteros.
Los valores que puede tomar un int son todos los números enteros: ... -3, -2, -
1, 0, 1, 2, 3, ...
Los números enteros literales se escriben con un signo opcional seguido por una
secuencia de dígitos:
1570
+4591
-12
Números reales
El tipo float permite representar números reales.
El nombre float viene del término punto flotante, que es la manera en que el
computador representa internamente los números reales.
Hay que tener mucho cuidado, porque los números reales no se pueden
representar de manera exacta en un computador. Por ejemplo, el número decimal
0.7 es representado internamente por el computador mediante la aproximación
0.69999999999999996. Todas las operaciones entre valores float son
aproximaciones. Esto puede conducir a resultados algo sorpresivos:
>>> 1/7 + 1/7 + 1/7 + 1/7 + 1/7 + 1/7 + 1/7
0.9999999999999998
Los números reales literales se escriben separando la parte entera de la decimal
con un punto. Las partes entera y decimal pueden ser omitidas si alguna de ellas
es cero:
>>> 881.9843000
881.9843
>>> -3.14159
-3.14159
>>> 1024.
1024.0
>>> .22
0.22
Otra representación es la notación científica, en la que se escribe un factor y una
potencia de diez separados por una letra e. Por ejemplo:
JOSE EDUARDO MORALES GARCIA ING. INDUSTRIAL 4A
INSTITUTO TECNOLOGICO DE TEPIC
>>> -2.45E4
-24500.0
>>> 7e-2
0.07
>>> 6.02e23
6.02e+23
>>> 9.1094E-31
9.1094e-31
Los dos últimos valores del ejemplo son iguales, respectivamente,
a 6.02×10236.02×1023 (la constante de Avogadro)
y 9.1094×10−319.1094×10−31 (la masa del electrón).
Números complejos
El tipo complex permite representar números complejos.
Los números complejos tienen una parte real y una imaginaria. La parte imaginaria
es denotada agregando una j inmediatamente después de su valor:
3 + 9j
-1.4 + 2.7j
Valores lógicos
Los valores lógicos True y False (verdadero y falso) son de tipo bool, que
representa valores lógicos.
El nombre bool viene del matemático George Boole, quien creó un sistema
algebraico para la lógica binaria. Por lo mismo, a True y False también se les
llama valores booleanos. El nombre no es muy intuitivo, pero es el que se usa en
informática, así que hay que conocerlo.
Texto
A los valores que representan texto se les llama strings, y tienen el tipo str.
Los strings literales pueden ser representados con texto entre comillas simples o
comillas dobles:
"ejemplo 1"
'ejemplo 2'
JOSE EDUARDO MORALES GARCIA ING. INDUSTRIAL 4A
INSTITUTO TECNOLOGICO DE TEPIC
La ventaja de tener dos tipos de comillas es que se puede usar uno de ellos
cuando el otro aparece como parte del texto:
"Let's go!"
'Ella dijo "hola"'
Es importante entender que los strings no son lo mismo que los valores que en él
pueden estar representados:
>>> 5 == '5'
False
>>> True == 'True'
False
Los strings que difieren en mayúsculas y minúsculas, o en espacios también son
distintos:
>>> 'mesa' == 'Mesa'
False
>>> ' mesa' == 'mesa '
False
Nulo
Existe un valor llamado None (en inglés, «ninguno») que es utilizado para
representar casos en que ningún valor es válido, o para indicar que una variable
todavía no tiene un valor que tenga sentido.
El valor None tiene su propio tipo, llamado NoneType, que es diferente al de todos
los demás valores.
4.- Identificadores
Un identificador es un conjunto de caracteres alfanuméricos de cualquier longitud
que sirve para identificar las entidades del programa (clases, funciones, variables,
tipos compuestos) Los identificadores pueden ser combinaciones de letras y
números. Cada lenguaje tiene sus propias reglas que definen como pueden estar
construidos. Cuando un identificador se asocia a una entidad concreta, entonces es
el "nombre" de dicha entidad, y en adelante la representa en el programa. Nombrar
las entidades hace posible referirse a las mismas, lo cual es esencial para cualquier
tipo de procesamiento simbólico.
JOSE EDUARDO MORALES GARCIA ING. INDUSTRIAL 4A
INSTITUTO TECNOLOGICO DE TEPIC
Identificadores en lenguajes informáticos
En los lenguajes informáticos, los identificadores son elementos textuales (también
llamados símbolos) que nombran entidades del lenguaje. Algunas de las de
entidades que un identificador puede denotar son las variables, las constantes, los
tipos de dato, las etiquetas, las subrutinas (procedimientos y funciones) y los
paquetes.
En muchos lenguajes algunas secuencias tienen la forma léxica de un identificador
pero son conocidos como palabras clave (o palabras reservadas). Lo habitual es
que si un identificador se corresponde con una palabra clave o reservada, éste ya
no pueda utilizarse para referirse a otro tipo de entidades como variables o
constantes (en unos pocos lenguajes, como PL/1, esta distinción no está del todo
clara).
Los lenguajes informáticos normalmente ponen restricciones en qué caracteres
pueden aparecer en un identificador. Por ejemplo, en las primeras versiones de C y
C++, los identificadores están restringidos para que sean una secuencia de una o
más letras ASCII, dígitos numéricos (que en ningún caso deben aparecer como
primer carácter) y barras bajas. Las versiones posteriores de estos lenguajes, así
como otros muchos más lenguajes modernos soportan casi todos los caracteres
Unicode en un identificador. Una restricción común es que no está permitido el uso
de espacios en blanco ni operadores del lenguaje.
En lenguajes de programación compilados, los identificadores generalmente son
entidades en tiempo de compilación, es decir, en tiempo de ejecución el programa
compilado contiene referencias a direcciones de memoria y offsets más que
identificadores textuales (estas direcciones de memoria u offsets, han sido
asignadas por el compilador a cada identificador).
En lenguajes interpretados los identificadores están frecuentemente en tiempo de
ejecución, a veces incluso como objetos de primera clase que pueden ser
manipulados y evaluados libremente. En Lisp, éstos se llaman símbolos.
Los compiladores e intérpretes normalmente no asignan ningún significado
semántico a un identificador basado en la secuencia de caracteres actual. Sin
embargo, hay excepciones. Por ejemplo:
En Perl una variable se indica utilizando un prefijo llamado sigil, que
especifica aspectos de cómo se interpreta la variable en las expresiones.
En Ruby una variable se considera automáticamente como inmutable si su
identificador empieza con una letra mayúscula.
En Fortran, la primera letra de una variable indica si por defecto es creada
como entero o como flotante.
JOSE EDUARDO MORALES GARCIA ING. INDUSTRIAL 4A
INSTITUTO TECNOLOGICO DE TEPIC
Identificadores C++
Los identificadores C++ pueden contener las letras a a z y A a Z, el guión bajo "_"
("Underscore") y los dígitos 0 a 9.
Caracteres permitidos:
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Dígitos permitidos:
0123456789
Solo hay dos restricciones en cuanto a la composición:
El primer carácter debe ser una letra o el guión bajo. El Estándar establece que los
identificadores comenzando con guión bajo y mayúscula no deben ser utilizados.
Este tipo de nombres se reserva para los compiladores y las Librerías Estándar.
Tampoco se permite la utilización de nombres que contengan dos guiones bajos
seguidos.
El estándar ANSI establece que como mínimo serán significativos los 31 primeros
caracteres, aunque pueden ser más, según la implementación. Es decir, para que
un compilador se adhiera al estándar ANSI, debe considerar como significativos, al
menos, los 31 primeros caracteres.
Los identificadores distinguen mayúsculas y minúsculas, así que Sum, sum y suM
son distintos para el compilador. Sin embargo, C++Builder ofrece la opción de
suspender la sensibilidad a mayúsculas / minúsculas, lo que permite la
compatibilidad con lenguajes insensibles a esta cuestión, en este caso, las variables
globales Sum, sum y suM serían consideradas idénticas, aunque podría resultar un
mensaje de aviso "Duplicate symbol" durante el enlazado.
Con los identificadores del tipo pascal hay una excepción a esta regla, ya que son
convertidos siempre a mayúsculas con vistas al enlazado.
Los identificadores globales importados desde otros módulos siguen las mismas
reglas que los identificadores normales.
Aunque los nombres de los identificadores pueden ser arbitrarios (dentro de las
reglas señaladas), se produce un error si se utiliza el mismo identificador dentro del
mismo ámbito compartiendo el mismo espacio de nombres. Los nombres duplicados
son legales en diferentes espacios de nombres con independencia de las reglas de
ámbito.
Un identificador no puede coincidir con una palabra clave o con el de ninguna
función de biblioteca.
JOSE EDUARDO MORALES GARCIA ING. INDUSTRIAL 4A
INSTITUTO TECNOLOGICO DE TEPIC
Tipos de identificadores
El estándar ANSI distingue dos tipos de identificadores:
Identificadores internos; los nombres de macros de preprocesado y todas las
que no tengan enlazado externo. El estándar establece que serán
significativos, al menos, los primeros 31 caracteres.
Identificadores externos; los que corresponden a elementos que tengan
enlazado externo. En este caso el estándar es más permisivo. Se acepta que
el compilador identifique solo seis caracteres significativos y pueda ignorar la
distinción mayúscula/minúscula
Reglas de estilo
Es bastante frecuente que en la enseñanza de C++ (y de cualquier otro lenguaje de
programación) no se subraye suficientemente la importancia de la elección de los
identificadores. En este sentido, los textos se suelen limitar a señalar las reglas
formales que impone el lenguaje para la declaración de nombres. Sin embargo,
como todos los que tienen que ver con la legibilidad del código, el asunto es de
capital importancia. Sobre todo, si se trata de algo más que del consabido
programita "Hola mundo", y desde luego resulta crítico en proyectos medianamente
grandes en los que puedan trabajar más de un programador y/o deba ser mantenido
por personas distintas de su creador original (lo que antes o después acaba
ocurriendo en la informática empresarial).
C y C++ tienen sus propias reglas no escritas, sancionadas por la costumbre, en
cuanto a ciertas formas concretas de usar los identificadores. Por ejemplo: Es
costumbre utilizar minúsculas para los nombres de variables y funciones (con
frecuencia se utilizan combinaciones minúsculas/Mayúsculas - por ejemplo
getRvalue o rColor-, aunque la inicial suele ser minúscula). Los identificadores de
variables automáticas lo más cortos posibles; los de estáticas y globales más largos
y descriptivos. Los nombres de constantes simbólicas normalmente en mayúsculas.
Ejemplo:
void someFunc (int numero, char clave, int* puntero_a_clase); //
static tipoCliente = 0; //
enum formaPago { CONTADO, CREDITO }; //
...
someFunc(int n, char k, int *ptr) { // int z, y, z = 2; // }
Aparte de las manías o hábitos particulares que pueda tener cada programador, la
mayoría de empresas de software medianamente serias disponen de sus propios
"Manuales de estilo" o "Reglas de uso", en los que se recogen las convenciones
JOSE EDUARDO MORALES GARCIA ING. INDUSTRIAL 4A
INSTITUTO TECNOLOGICO DE TEPIC
que deben utilizarse para los identificadores, de forma que se mantenga la máxima
homogeneidad posible en el código, lo que a la postre redunda en una mayor
legibilidad y facilidad de mantenimiento. En este sentido cabría señalar que, dentro
de ciertos límites, no es tan importante cuales sean estas reglas, sino que existan y
se respeten.
En determinados entornos existen reglas consagradas por el uso. Por ejemplo, en
la programación C/C++ para las plataformas Windows suelen seguirse
determinadas convenciones conocidas como Notación Húngara, en la que el
identificador de cada variable comienza con una o varias letras (minúsculas) que
señalan el tipo de la variable. Por ejemplo, nValor.
Los nombres de clases se preceden siempre con una "C" mayúscula, y la siguiente
letra también es mayúscula. Por ejemplo: CAboutDlg, CAprenderApp, CMainFrame,
etc. Los nombres de variables comienzan por letras fijas según su tipo, pero cuando
se refieren a una propiedad de clase, los dos primeros caracteres son "m_" (ejemplo
m_nValor, m_wndStatusBar, etc). Los nombres de funciones miembro de clase
comienzan siempre con mayúscula, pero la siguiente letra es minúscula. Por
ejemplo: DoDataExchange(), InitInstance(), OnAppAbout(), etc.
Este tipo de notación presenta la ventaja de con un poco de práctica es mucha la
información que puede extraerse de la simple lectura del código.
5.-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.
JOSE EDUARDO MORALES GARCIA ING. INDUSTRIAL 4A
INSTITUTO TECNOLOGICO DE TEPIC
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:
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.
JOSE EDUARDO MORALES GARCIA ING. INDUSTRIAL 4A
INSTITUTO TECNOLOGICO DE TEPIC
6.- Proposición de asignación
La forma de una proposición de asignación es: a = b donde b es una expresión
permitida, y a es el nombre de la variable donde se dejará el valor resultante de
evaluar b.
Por expresión permitida se entiende a aquella expresión matemática que ocupa
las operaciones y funciones nombradas como existentes, y escritas de la forma
que para ellas se señala, respetando así la sintaxis en cada instrucción.
El signo igual, " = ", de a = b tiene el sentido de asignar a la variable a el valor que
resulte de evaluar la expresión permitida b. Es decir, a = b. Que no es la misma
definición usada en matemáticas para el signo: = .
El computador, al ejecutar una proposición de asignación evalúa la expresión del
lado derecho del signo igual con los valores que en ese momento tengan las
variables ahí ocupadas. Así, la expresión entregará valores probablemente
distintos en las diversas ocasiones que por programa se evalúe esa expresión.
Las siguientes son proposiciones de asignación correctas, A = 2.5 TO = 1 + XT I =
I + 1 Y no son correctas las siguientes:
A + B = C 20 = 16.2 + 3.8 AL = (AT+3.4) / 110.302
7.- Operadores, operandos y expresiones
Operadores: es el símbolo que asigna ya sea una operación o una relación entre
los operandos, de los cuales hablaremos mas tarde, los operandos se clasifican
en 3 grupos distintos:
A. Aritméticos
B. Relaciones
C. Lógicos
JOSE EDUARDO MORALES GARCIA ING. INDUSTRIAL 4A
INSTITUTO TECNOLOGICO DE TEPIC
Operadores aritméticos
Como su nombre lo indica son aquellos que realizan operaciones o cálculos
aritméticos, los cuales son: suma(+), resta(-), multiplicación(*), división real(/),
división entera(div), residuo(mod), exponenciación(^). Por ejemplo:
A) 15+7=22
B) 77-76=1
C) 2*1=2
D) 4 div 2=2
E) 10 mod 2=0
Operadores relacionales
Estas te permiten hacer comparaciones de valores de tipo numérico y de tipo
carácter, sirven para expresar las condiciones en los algoritmos para asi
proporcionar resultados lógicos.
Tipos de operadores relacionales
> mayor que
< menor que
> = mayor o igual que
< = menor o igual que
< > diferente
= igual
Ejemplos:
si a = 10, b = 20, c = 30
A+b>c Falso
A-b<c Verdadero
A-b=c Falso
A*b<>c Verdadero
ejemplos no lógicos:
a < b < c
10 < 20 < 30
t > 5 < 30
(no es lógico porque tiene diferentes operandos)
JOSE EDUARDO MORALES GARCIA ING. INDUSTRIAL 4A
INSTITUTO TECNOLOGICO DE TEPIC
Operadores lógicos
Estos operadores se utilizan para establecer relaciones entre valores
lógicos. Estos valores pueden ser resultado de una expresión relacional.
Tipos de operadores lógicos
and y
or o
not negación
ejemplo:
para los siguientes ejemplos t significa verdadero y f falso.
operador not operador not
Operando Resultado
T F
F T
operador and operador and
Operando1 Operador Operando2 Resultado
T And T T
T F F
F T F
F F F
operador or operador or
Operando1 Operador Operando2 Resultado
T Or T T
T F T
F T T
F F F
prioridad de los operadores lógicos
1. Not
2. And
3. Or
JOSE EDUARDO MORALES GARCIA ING. INDUSTRIAL 4A
INSTITUTO TECNOLOGICO DE TEPIC
Prioridad de los operadores en general
1. ()
2. ^
3. *, /, mod, not
4. +, -, and
5. >, <, > =, < =, < >, =, or
8.- Pruebas y depuración
Las prácticas de codificación y diseño le ayudan a crear programas de calidad y
deben ir seguidas de pruebas exhaustivas de los programas. Tiene que prestar
especial atención a la fase de prueba de desarrollo para que:
Su programa sea completamente operativo tras el menos número posible de
ejecuciones de prueba, minimizando el tiempo y el coste del desarrollo del
programa.
Su programa cumpla todos los objetivos de diseño antes de lanzarse al trabajo de
producción.
Su programa incluya comentarios suficientes permitir a quienes utilizan y se
encargan del mantenimiento del programa realizar tareas sin ayuda adicional.
El proceso de prueba suele desvelar bugs (o errores), un término genérico que
abarca todo lo que hace su programa que no se esperaba que hiciese. El proceso
de suprimir estos errores del programa se conoce como depuración.
Los errores humanos dentro de la programación de computadoras son muchos y
aumentan considerablemente con la complejidad del problema. El proceso de
identificar y eliminar errores, para dar paso a una solución sin errores se le llama
Depuración.
La Depuración o prueba resulta una tarea tan creativa como el mismo desarrollo de
la solución, por ello se debe considerar con el mismo interés y entusiasmo.
Resulta conveniente observar los siguientes principios al realizar una depuración,
ya que de este trabajo depende el éxito de nuestra solución.
JOSE EDUARDO MORALES GARCIA ING. INDUSTRIAL 4A
INSTITUTO TECNOLOGICO DE TEPIC
a. Trate de iniciar la prueba de un programa con una mentalidad
saboteadora, casi disfrutando la tarea de encontrar algún error.
b. Sospeche de todos los resultados que le arroje la solución, con lo cual
deberá verificar todos.
c. Considerar todas las situaciones posibles normales y aún algunas de
las anormales.
Codificación.
La codificación es la operación de escribir la solución del problema (de acuerdo a la
lógica del diagrama de flujo o pseudocódigo), en una serie de instrucciones
detalladas en un código reconocible por la computadora, la serie de instrucciones
detalladas se le conoce como programa fuente, el cual se escribe en un lenguaje de
programación o lenguaje alto nivel.
Existen diversos tipos de lenguaje de alto nivel, de acuerdo al tipo de problema que
se desea resolver, clasificándose en problemas: matemáticos, científicos,
administrativos o comerciales.
Documentación.
Es la guía o comunicación escrita en sus variadas formas, ya sean en enunciados,
procedimientos, dibujos o diagramas. A menudo un programa escrito por una
persona, es usado por muchas otras. Por ello la documentación sirve para ayudar
a comprender o usar un programa o para facilitar futuras modificaciones
(mantenimiento).
La documentación debe presentarse en tres formas, externa, interna y al usuario
final. La primera debe estar integrada por los siguientes elementos:
a) Descripción del problema.
b) Nombre del autor.
c) Diagrama de flujo y/o pseudocódigo.
d) Lista de variables y constantes.
e) Codificación del programa.
En lo referente a la documentación interna, ésta lo constituyen los comentarios o
mensajes que agregan al código, para hacer más claro el entendimiento del
proceso. A la documentación para el usuario se le conoce como manual del usuario.
En este manual no existe información de tipo técnico, sino la descripción del
funcionamiento del programa.
JOSE EDUARDO MORALES GARCIA ING. INDUSTRIAL 4A