Você está na página 1de 11

ITC

G. BLADIMIR SARMIENTA RAMOS


ALGORITMOS Y PROGRAMACION
LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO

La programación estructurada es una teoría de programación que consiste en construir


programas de fácil comprensión.
La programación estructurada es especialmente útil, cuando se necesitan realizar correcciones o
modificaciones después de haber concluido un programa o aplicación. Al haberse utilizado la
programación estructurada, es mucho más sencillo entender la codificación del programa, que se
habrá hecho en diferentes secciones.

La programación estructurada se basa en una metodología de desarrollo de programas llamada


refinamiento sucesivo: Se plantea una operación como un todo y se divide en segmentos más
sencillos o de menor complejidad. Una vez terminado todos los segmentos del programa, se procede
a unificar las aplicaciones realizadas por el pool de programadores. Si se ha utilizado
adecuadamente la programación estructurada, esta integración debe ser sencilla y no presentar
problemas al integrar la misma, y de presentar algún problema, será rápidamente detectable para
su corrección.
La representación grafica de la programación estructurada se realiza a través de diagramas de
flujo o flow chart, el cual representa el programa con sus entradas, procesos y salidas.
La programación estructurada propone segregar los procesos en estructuras lo más simple posibles,
las cuales se conocen como secuencia, selección e interacción. Ellas están disponibles en todos los
lenguajes modernos de programación imperativa en forma de sentencias. Combinando esquemas
sencillos se pueden llegar a construir sistemas amplios y complejos pero de fácil entendimiento.

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
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:

>>> -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'
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.

IDENTIFICADORES
En los lenguajes informáticos, los identificadores son elementos textuales (también llamados símbolos)
que nombran entidades del lenguaje. Algunas de las 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 caracter) 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.

JERARQUÍA (PRIORIDAD) DE OPERADORES


¿Qué es la jerarquía de operadores?
Consiste en el orden por el cual el ordenador interpreta las operaciones a realizar, determinando
cuales tienen más prioridad que las otras, la jerarquía de los operadores son las siguientes:
1) Multiplicación
2) División
3) Suma
4) Resta
Partiendo de este principio se podrá apreciar en el siguiente ejemplo el desarrollo de la jerarquía:
5*3+12-14/2
Se opera 5*3 ya que la multiplicación es la primera en la jerarquía
Después se opera 14/2 pues sigue después de la multiplicación quedando así
15+12-7
Ahora se procede a operar la suma y la resta pues son las últimas en la jerarquía. Dando como
resultado:
20
También hay jerarquía en las agrupaciones de operaciones esta lleva el siguiente orden:
1) () paréntesis
2) [] corchetes
3) {} llaves
Ejemplo:
{5[7(5-3)+12]-2}
Primero procedemos a despejar los paréntesis ya que son los primeros en la jerarquía no importa
que operación tenga adentro.
{5[7[2]+12]-2}
Ahora despejamos los corchetes y realizamos las operaciones respectivas.
{5[26]-2}
Y por ultimo las llaves
120

OPERANDOS, OPERADORES 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.

*Expresión:
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 aritméticos
+ ------- 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 evalúan
o relacionan. El valor de la expresión 7 + 3 se conoce como resultado de la expresión, que es el
producto de la relación 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 combinación de condiciones para formar una sola expresión 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


EVALUACIÓN DE EXPRESIONES
¿QUE SON LAS EXPRESIONES?

 Son el método fundamental que tiene el programador de expresar computaciones.


 Las expresiones están compuestas de operadores, operandos, paréntesis y llamadas a
funciones. Los operadores pueden ser:
 Unarios: Cuando tan solo tienen un operando. Son operadores prefijos.
 Binarios: 2 Operandos. Son operadores infijos.
 Ternarios: 3 operandos.
ORDEN DE LA EVALUACIÓN DE LOS OPERADORES.

 El orden en que se evalúan los operandos viene dado por unas reglas:
 Reglas de procedencia
 Reglas de asociatividad
 Uso de paréntesis

EVALUACIÓN DE EXPRESIONES

Toda expresión regresa un valor. Si hay más de un operador, se evalúan primero operadores
mayor precedencia, en caso de empate, se aplica regla asociatividad

Para evaluar una expresión no hay que hacer nada del otro mundo, pues es bien sencillo. Sólo hay
que saber sumar, restar, si un número es mayor que otro

Hay tres reglas de prioridad a seguir para evaluar una expresión:

 Primero, los paréntesis (si tiene)


 Después, seguir el orden de prioridad de operadores
 Por último, si aparecen dos o más operadores iguales, se evalúan de izquierda a derecha.
Las expresiones son secuencias de constantes y/o variables separadas por operadores válidos.

Se puede construir una expresión válida por medio de :

1. Una sola constante o variable, la cual puede estar precedida por un signo + ó – .

2. Una secuencia de términos (constantes, variables, funciones) separados por operadores.

Además debe considerarse que:

Toda variable utilizada en una expresión debe tener un valor almacenado para que la expresión,
al ser evaluada, dé como resultado un valor.
Cualquier constante o variable puede ser reemplazada por una llamada a una función.

Como en las expresiones matemáticas, una expresión en Pascal se evalúa de acuerdo a la


precedencia de operadores

JERARQUÍA DE OPERADORES

El orden general de evaluación de los operadores de una expresión va de izquierda a derecha, con
la excepción de las asignaciones que lo hacen de derecha a izquierda.

Podemos seguir las siguientes tres reglas de evaluación de expresiones:

(Regla 1) En todas las expresiones se evalúan primero las expresiones de los paréntesis más
anidados (interiores unos a otros); y éstos modifican la prioridad según la cantidad de éstos, los
cuales tienen que estar balanceados (el mismo número de paréntesis que abren debe ser igual al
número de los paréntesis que cierran).

(Regla 2) Todas las expresiones se evalúan tomando en cuenta la jerarquía de los operadores.

(Regla 3) Todas las expresiones se evalúan de izquierda a derecha.

¿QUÉ HACEN LOS LENGUAJES DE PROGRAMACIÓN AL RESPECTO?

C permite evaluación de circuito corto con los operadores booleanos.

PASCAL no permite evaluación de circuito corto. No se pueden usar sentencias del siguiente tipo:

A:array[1..10] of integer;

If (i<=10) and (a[i]>0) then

Porque se accede a una posición no válida de un array.

ADA: “and”, “or” no son operaciones de circuito corto y “or them” y “and them” si son operaciones
de circuito corto.

If (i<=10) and them (a[i]>0) them

Tabla de evaluación de C++


Tabla de evaluación de Java

Você também pode gostar