Professional Documents
Culture Documents
ÔV ¬ue es programación.
ÔV ¬ue es un lenguaje de programación.
ÔV ¬ue es la lógica computacional.
ÔV lasificación de los lenguajes de programación, (Ejemplos en
cada clasificación o categoría)
ÔV ¬ue es un algoritmo (Ejemplos), como se clasifican.
ÔV ¬ue es un pseudocódigo (Ejemplos).
ÔV ¬ue es un diagrama de flujo de datos, (como se clasifican).
ÔV ¬ue son las variables (ejemplos).
ÔV ¬ue son las constantes (ejemplos).
ÔV îipos de datos.
ÔV peradores (tipos).
ÔV peraciones básicas (algoritmos)
JV aumas.
JV xestas.
JV ultiplicación.
JV ¦ivisiones.
(peraciones básicas)
If
If anidados
a itch
a itch anidados
ÔV iclos repetitivos
For
While
¦o While
ÔV 0ectores.
ÔV atrices.
V
^ VV
V
£a
es el proceso de diseñar, escribir, probar, depurar y mantener
el código fuente de programas computacionales. El código fuente es escrito
en un lenguaje de programación. El propósito de la programación es crear un
programa que exhiba un comportamiento des eado. El proceso de escribir
código requiere frecuentemente conocimientos en muchas áreas distintas,
como el dominio de la aplicación, algoritmos especializados y lógica formal.
V
£ VV
V
Existe un error común que trata por sinónimos los términos 'lenguaje de
programación' y 'lenguaje informático'. £os lenguajes informáticos engloban a
los lenguajes de programación y a otros más, como por ejemplo Hî£
(lenguaje para el marcado de páginas eb que no es propiamente un
lenguaje de programación, sino un conjunto de instrucciones que permiten
diseñar el contenido de los documentos).
Permite especificar de pàà à sobre qué datos debe operar una
computadora, cómo deben ser almacenados o transmitidos y qué acciones
debe tomar bajo una variada gama de circunstancias. îodo esto, a través de
un lenguaje que intenta estar à
àp
próximo al lenguaje humano o
natural. Una característica relevante de los len guajes de programación es
precisamente que más de un programador pueda usar un conjunto común de
instrucciones que sean comprendidas entre ellos para realizar la construcción
de un programa de forma colaborativa.
V
A finales de 19, John Backus sometió una propuesta a sus superiores en IB
para desarrollar una alternativa más práctica al lenguaje ensamblador para
programar la computadora central IB 704. El histórico equipo Fortran de
Backus consistió en los programadores xichard Goldberg, aheldon F. Best,
Harlan Herrick, Peter aheridan, xoy Nutt, xobert Nelson, Irving Ziller, £ois Haibt y
¦avid aayre.
ar var a r l a a bla r, l a al
v l ba ará l a.
V
T l l a pr raa al l f ra
pr v para la r p l a y l pr ra f ra
apl a a a a ( al la a
r la l
l q f r a par a l ). E l pr v
f p r rla á a y á a q r b r ra y
f a r p va .
V
C fr a r al a l l la a
l r
f r
para fa l ar l ra. E pl á r y .
la f r a v bl l
a pr ra a l a .
La ay r a l l a pr raa p ra al ,
r, l a a q l y palabra ,
r y
p a , a ra lar a l l a a ral r . r ra par ,
ay al l a pr raa q á ráf
a ral a, l a r la v al r b l para p f ar
pr ra a.
La a
l a pr ra a r b
la b a
p bl l b l q f ra pr ra a á a rr . El
f a q
l a a a b a
b l
a a p r
á a (ya a f r al par l r la r f r a
pl a ). ¦a q la ay r a l l a al ,
ar l ra a la a al.
La a l
l a pr raa f a ral
l a a b a pr r lar (para la r ra
l a) y la a Ba - ar (para la r ra ra á a). E
pl a ra á a
pl , a a L
p:
Expresión ::= átomo | lista
Átomo ::= número | símbolo
Número ::= [+]?['0''9']+
aímbolo ::= ['A''Z'<no iki>'</no iki>a''z'].*
£ista ::= '(' expresión* ')'
complex *p = NU££;
complex abs_p = sqrt (p>real * p>real + p>im * p>im);
a
V V
a
VVV
à
.
£VV
V
VV
V
JV programación estructurada
JV programación modular
JV programación orientada a objetos (P)
JV programación declarativa
V
VV VV V
En lenguajes con
se determina el tipo de todas las expresiones
antes de la ejecución del programa (típicamente al compilar). Por ejemplo, 1 y
(+) son expresiones enteras; no pueden ser pasadas a una función que
espera una cadena, ni pueden guardarse en una variable que está definida
como fecha.
£os
permiten que un valor de un tipo pueda ser tratado como de
otro tipo, por ejemplo una cadena puede ser operada como un número. Esto
puede ser útil a veces, pero también puede permitir ciertos tipos de fallas que
no pueden ser detectadas durante la compilación o a veces ni siquiera
durante la ejecución.
£os
evitan que paso lo anterior. ualquier intento de llevar a cabo
una operación sobre el tipo equivocado dispara un error. A los lenguajes con
tipos fuertes se les suele llamar
.
£enguajes con tipos débiles como Perl y Javaacript permit en un gran número
de conversiones de tipo implícitas. Por ejemplo en Javaacript la expresión * x
convierte implícitamente x a un número, y esta conversión es exitosa inclusive
cuando x es null, undefined, un Array o una cadena de letras. Estas
conversiones implícitas son útíles con frecuencia, pero también pueden ocultar
errores de programación.
£as características de
y
son ahora generalmente consideradas
conceptos ortogonales, pero su trato en di ferentes textos varia. Algunos utilizan
el término
para referirse a
p
o, para
aumentar la confusión, simplemente como equivalencia de
. ¦e
tal manera que ha sido llamado tanto lenguaje de tipos fu ertes como
lenguaje de tipos estáticos débiles.
V
½ V
# # '
C f pr ra $a ! r l l !" a ! ! pr ra$a &" (ava.
%
!" ! ! " & !" !
# '
La pl !$!" a &" ! " l !" a ! ! la q ! pr v !! "a $a "!ra ! q ! !
% %
$
' # # #
" pr ra $a para "a ! !r $"a a &$b "a &" ! f ar! ' y
%
! !& !
* %# # #
)ar ar!. E !" bá &a$!" ! $a "!ra ! $pl !$!" ar " l !" a !:
% % %
# #
&$p la &" ! " !rpr ! a &".
4 4
C +,p -la .-/0: 1
2
1l pr +.1 + q 31
2
ra 53.1 30 pr7 +6ra ,a 1 .r- + 10 30
2
JV
7 4
l 1063a 1 51 pr +6ra,a .-/0 a + r + l 1063a 1 51 pr +6ra,a .-/0,
4
6101ra 05+ pr +6ra,a 1q 3-val 10 1 q 31 la ,áq 3-0a 1rá .apa
2 8
30
4 4 4 4 24
-0 1rpr 1 ar. L + pr +6ra ,a ra 53. +r 1 q 31 p 31510 r 1al - ar 1 a
2 2 2 8
24
+p 1ra .-/0 lla,a 0 .+,p-la 5+r 1 . É + , .+,+ : l + pr +6ra,a
2 2 2 2 2
1
4
51 ,áq 3-0a p +r .a 5a pr +p + -.-/0 51l pr +6ra ,a f 310 1.
2
JV ½ rpra ;<= : > a a a ; ? fa ?@ a la fr A>la b
B B
f @rAa ?a ? > l a f @rAal. C @A@ l @ l a f @rAal p
f r
rA praA á, frAla b frAa a
p r Aá q a a
bl fa . C a
rpra ra fa a a fr
la.
B
a p a
b
lar a alr ava para ra r l a al vl.
E lar B
ra r l prra
a f y rabar fr
a pr
a l
b q pr ra la
pla para larl a
fra, l prra
a r l ara l prra
a f la
D
pa ra l a q va a prar. a ,
prra
a
rpr, al
a a l
a prav l , l
a ra pr
a r la
áq a, vr a a prp
l prra
a f l a
áq a fr
vaya
ar ra l pra
l a. El b raba
para larl prr
.
V
£os programas se pueden clasificar por el paradigma del lenguaje que se use
para producirlos. £os principales paradigmas son: imperativos, declarativos y
orientación a objetos .
£os programas que usan un lenguaje imperativo especifi can un algoritmo, usan
declaraciones, expresiones y sentencias. [] Una declaración asocia un nombre
de variable con un tipo de dato, por ejemplo: var x: integer;. Una expresión
contiene un valor, por ejemplo: + contiene el valor 4. Finalmente, una
sentencia debe asignar una expresión a una variable o usar el valor de una
variable para alterar el flujo de un programa, por ejemplo: x := + ; if x == 4
then haz_algo();. Una crítica común en los lenguajes imperativos es el efecto
de las sentencias de asignación sobre una clase de variables llamadas "no
locales".[4]
V
£a G VV£aV£aVV V
G G G
£V G
EJEP£a
int counter = 0;
counter = counter + 1;
podría ser trasladado en lenguaje de máquina como
000101000100010001000100001000101010111110
000001110101000111110000100010000010101010
£aVV#V £
H
aon más fáciles de utilizar que los lenguajes máquina, pero al igual que ellos,
dependen de la máquina en particular. El lenguaje de bajo nivel por
excelencia es el ensamblador. El lenguaje ensamblador es el primer intento de
sustituir el lenguaje maquina por otro más similar a los utilizados por las
personas. Este intenta desflexibilizar la representación de los diferentes campos.
Esa flexibilidad se consigue no escribiendo los campos en binario y
aproximando la escritura al lenguaje. A principios de la dé cada de los 0 y con
el fin de facilitar la labor de los programadores, se desarrollaron códigos
mnemotécnicos para las operaciones y direcciones simbólicas. £os códigos
mnemotécnicas son los símbolos alfabéticos del lenguaje maquina. £a
computadora sigue utilizando el lenguaje máquina para procesar los datos,
pero los programas ensambladores traducen antes los símbolos de código de
operación especificados a sus equivalentes en el lenguaje maquina. En la
actualidad los programadores no asignan números de di rección reales a los
datos simbólicos, simplemente especifican donde quieren que se coloque la
primera localidad del programa y el programa ensamblador se encarga de lo
demás, asigna localidades tanto para las instrucciones como los datos. Estos
programas de ensamble o ensambladores también permiten a la
computadora convertir las instrucciones en lenguaje ensamblador del
programador en su propio código maquina. Un programa de instrucciones
escrito en lenguaje ensamblador por un programador se llama programa
fuente. ¦espués de que el ensamblador convierte el programa fuente en
código maquina a este se le denomina programa objeto. Para los
programadores es más fácil escribir instrucciones en un lenguaje ensamblador
que en código de lenguaje maquina pero es pos ible que se requieran dos
corridas de computadora antes de que se puedan utilizar las instrucciones del
programa fuente para producir las salidas deseadas.
El lenguaje de bajo nivel es el lenguaje de programación que el ordenador
puede entender a la hora de ejecutar programas, lo que aumenta su
velocidad de ejecución, pues no necesita un intérprete que traduzca cada
línea de instrucciones.
£os lenguajes de bajo nivel permiten crear programas muy rápidos, pero que
son, a menudo, difíciles de aprender. ás importante es el hecho de que los
programas escritos en un bajo nivel sean altamente específicos de cada
procesador. ai se lleva el progra ma a otra máquina se debe reescribir el
programa desde el principio.
£os lenguajes de bajo nivel permiten crear programas muy rápidos, pero que
son a menudo difíciles de aprender. ás importante es el hecho de que los
programas escritos en un bajo nivel sean altamente específicos de cada
procesador. ai se lleva el programa a otra máquina se debe reescribir el
programa desde el principio.
£ V
V$%
£aVV£îV £
I
Estos lenguajes son los más utilizados por los programadores. Están diseñados
para que las personas escriban y entiendan los programas de un modo mucho
más fácil que los lenguajes máquina y ensamblador. Un programa escrito en
lenguaje de alto nivel es independiente de la máquina (las instrucciones no
dependen del diseño del hard are o de una computadora en particular), por
lo que estos programas son portables o transportab les. £os programas escritos
en lenguaje de alto nivel pueden ser ejecutados con poca o ninguna
modificación en diferentes tipos de computadoras. aon lenguajes de
programación en los que las instrucciones enviadas para que el ordenador
ejecute ciertas órdenes son similares al lenguaje humano. ¦ado que el
ordenador no es capaz de reconocer estas órdenes, es necesario el uso de un
intérprete que traduzca el lenguaje de alto nivel a un lenguaje de bajo nivel
que el sistema pueda entender.
Por lo general se pie nsa que los ordenadores son máquinas que realizan tareas
de cálculos o procesamiento de texto. £a descripción anterior es sólo una
forma muy esquemática de ver una computadora. Hay un alto nivel de
abstracción entre lo que se pide a la computadora y lo que realmente
comprende. Existe también una relación compleja entre los lenguajes de alto
nivel y el código máquina.
£os lenguajes de alto nivel son normalmente fáciles de aprender porque están
formados por elementos de lenguajes naturales, como el inglés. En BAaI, el
lenguaje de alto nivel más conocido, los comandos como ´IF NîA¦x=10
îHEN aîPµ pueden utilizarse para pedir a la computadora que pare si
NîA¦x es igual a diez. Por desgracia para muchas personas esta forma
de trabajar es un poco frustrante , dado que a pesar de que las computadoras
parecen comprender un lenguaje natural, lo hacen en realidad de una forma
rígida y sistemática.
Por lo general se piensa que los ordenadores son máquinas que realizan tareas
de cálculos o procesamiento de textos. £a descripción anterior es sólo una
forma muy esquemática de ver una computadora. Hay un alto nivel de
abstracción entre lo que se pide a la computa dora y lo que realmente
comprende. Existe también una relación compleja entre los lenguajes de alto
nivel y el código máquina.
£os lenguajes de alto nivel son normalmente fáciles de aprender porque están
formados por elementos de lenguajes naturales, como el inglés. En BAaI, el
lenguaje de alto nivel más conocido, los comandos como "IF NîA¦x = 10
îHEN aîP" pueden utilizarse para pedir a la computadora que pare si
NîA¦x es igual a 10. Por desgracia para muchas personas esta forma de
trabajar es un poco frustrante, dado que a pesar de que las computadoras
parecen comprender un lenguaje natural, lo hacen en realidad de una forma
rígida y sistemática.
ae puede decir que el principal problema que presentan los lenguajes de alto
nivel es la gran cantidad de ellos que existen actualmente en uso, además de
las diferentes versiones o dialectos que se han desarrollado de algun os de
ellos. Es difícil establecer una clasificación general de los mismos, ya que en
cualquiera que se realice habrá lenguajes que pertenezcan a más de uno de
los grupos establecidos.
JV £ V
. Utilizan instrucciones como unidad de trabajo de
los programas (obol, Pascal, , Ada).
JV £ V V V . El diseño de los programas se basa más
en los datos y su estructura. £a unidad de proceso es el objeto y en el se
incluyen los datos (variables) y las operaciones que actúan sobre ellos
(amalltalk, ++).
JV
V
!V £enguajes maquina y ensambladores.
JV î V
!V £enguajes de alto nivel impera tivo. aon los mas
utilizados y siguen vigentes en la actualidad (A£G£ , P£/I, PAaA£,
¦U£A).
£&îV
¿¬ué es un
?:
V Un
V es un conjunto finito de pasos específicos y
organizados para realizar una labor.
Un algoritmo es una secuencia de pasos lógicos necesarios para llevar a cabo
una tarea específica, como la solución de un problema. £os algoritmos son
independientes tanto del lenguaje de programación en que se expresan
como de la computadora que los ejecu ta. En cada problema el algoritmo se
puede expresar en un lenguaje diferente de programación y ejecutarse en
una computadora distinta.
aracterísticas de los algoritmos
£as características fundamentales que debe cumplir todo algoritmo son:
· Un algoritmo debe ser preciso e indicar el orden de realización de cada
paso.
· Un algoritmo debe estar definido. ai se sigue un algoritmo dos veces, se debe
obtener el mismo resultado cada vez.
· Un algoritmo debe ser finito. ai se sigue un algoritmo, se debe termina r en
algún momento; o sea debe de tener un número finito de pasos.
£aV£&îaVaV£a& &V V
1.rdenamiento Burbuja.
0entajas:
· Fácil implementación.
· No requiere memoria adicional.
¦esventajas:
· uy lento.
· xealiza numerosas comparaciones.
· xealiza numerosos intercambios.
0entajas:
· Fácil implementación.
· No requiere memoria adicional.
· xealiza pocos intercambios.
· xendimiento constante: poca diferencia entre el peor y el mejor caso.
¦esventajas:
· £ento.
· xealiza numerosas comparaciones.
En este tipo de algoritmo los elementos que van a ser ordenados son
considerados uno a la vez. ada elemento es INaExîA¦ en la posición
apropiada con respecto al resto de los elementos ya ordenados.
0entajas:
· Fácil implementación.
· xequerimientos m ínimos de memoria.
¦esventajas:
· £ento.
· xealiza numerosas comparaciones.
Este también es un algoritmo lento, pero puede ser de utilidad para listas que
están ordenadas o semiordenadas, porque en ese caso realiza muy pocos
desplazamientos.
V aa:
L My ráp
¦v aa:
L ½
pl
a p
á
pla a.
L Rrv a (la
rr).
L ara
a fl rv para rpr ar alr
a ra ráfa.
a&V
1.V abecera.
1.V Programa.
.V odulo.
.V îipos de datos.
4.V onstantes.
.V 0ariables.
.V uerpo.
1.V Inicio.
.V Instrucciones.
.V Fin.
Fu
PVV
V
Srra
a; ára
T T T T T
E r : B aE, LT UR , RE
r r
T
lr
:
rbr ß½ r a la ba y la alraß
V V V
lr B aE, LT WR
V V V V V
allar RE = B aE X LT WR V V
rbr ßEl ára l rá l ß RE
Y prra
a
ZV ' VVu
V uV V Vuu
V
u
V
V
V
V
V
u
V V u V V V
u
V V V
[rra
a: a
a [r
] ] ]
E r : \OT [,\OT 2,aM , [RO¦CTO
r r
]
lr
:
rbr ß½ r a la a ß
_ _
lr ^OT [,^OT 2
calcular aUA = NîA1 + NîA
calcular Px¦Uî = NîA1 * NîA
escribir ߣa suma de las dos notas es:ß aUA
escribir ßEl producto de las dos notas es :ßPx¦Uî
Finprograma
V ' VV
VVV
V V
V V
VV(
VV
)V
VV V V .
Programa: omparaNúmeros
Entorno: NUEx es un número entero
Algoritmo:
Escribir ßIntroduzca un número ß
leer NUEx
aI NUEx>0 ENîNEa
escribir ßEl número introducido es positivo ß
aI N
aI NUEx<0 ENîNEa
escribir ßEl número introducido es negativo ß
aI N
escribir ßEl número es ceroß
FINaI
FINaI
Finprograma
&VV £VVîaV
&VV £V
#î&aVVV&VV £V
î&aVV&VV £aV
&VV £aVV&V
Partes: 1,
^ VaVV&VV £VVîaV
¦el aoft are, ¦F¦ es un soft are diseñado para contribuir y analizar algoritmos
se puede crear diagramas de flujos de datos para la representación de
algoritmos de programación estructurada a partir de las herramientas de
edición que para este propósito suministra el programa .¦espués de hacer
haber ingresado el representado por el diagrama, podrá, ejecutarlo analizarlo
y depurarlo en un entorno interactivo diseñado para este fin. £a interfaz grafica
de ¦F¦ facilita en gran medida el trabajo con diagramas ya que simula la
representación estándar de diagramas de flujo en hojas de papel.
£aVîaVVV&VV £Va
JV
JV
JV
JV î
a
£
Un flujo se representa gráficamente por medio de una flecha que entra y sale
de proceso; el flujo se usa para describir el movimiento, de bloques o paquetes
de información de una parte del sistema a otra.
Ejemplo:
£
&a
£os almacenes se conectan por flujos a los procesos. Así el contexto en el que
se muestra en un ¦F¦ (¦iagrama de Flujo de ¦atos) es uno de los siguientes:
î&
£aVV£V&VV&aV
1.V £os diagramas de flujo deben escribirse de arriba hacia abajo y/o de
Izquierda a derecha.
.V £os símbolos se unen con líneas, las cuales tienen en la punta una flecha
que indica su dirección que fluye la información procesos, se deben
utilizar solamente línea s de flujo horizontal o vertical (nunca diagonales).
.V ae debe evitar el cruce de líneas, para lo cual se quisiera separar el flujo
del diagrama a un sitio distinto, se pudiera realizar utilizando los
conectores, se debe tener en cuenta que solo se van a ut ilizar
conectores cuando sean estrictamente necesario.
4.V No deben quedar líneas de flujo sin conectar.
.V îodo texto escrito dentro de un símbolo debe ser legible, preciso,
evitando el uso de muchas palabras.
6.V îodos los símbolos pueden tener mas de una línea de entrada, a
excepto del símbolo final.
7.V aolo los símbolos de decisión pueden y deben tener mas de una línea
de flujo de salida.
*£&&V£V&VV £V
a#£aVaaVV£V&VV £VVîaV
V
a&& &VV£aVa#£aVV £
aVV&aVV £VVîaV
£os diagramas de flujo de datos son útiles a lo largo del proceso de análisis y
diseños, .Existen compromisos para decidir que tanto deben ser explotados de
los flujos de datos. ae desperdiciara tiempo y se sacrificara complusibilidad si
los diagramas de flujo de datos son exclusivamente complejos. Por otro lado, si
los diagramas de flujo de datos están muy poco explotados, pu eden ocurrir
errores u omisiones que pueden eventualmente afectar el sistema que esta en
desarrollo. Por ultimo, recuerde que los diagramas del sistema de flujo pueden
ser usados para documentar niveles altos o bajos del análisis y para ayudar a
sustentar la lógica subyacente en los flujos de datos de la organización.
îaî&aVV£aV&aVV £VVîa
^£aVaV£aVîaVV£aV&aVV £VVîa
^£aVaV£aV£&&î&aVV£aV&aVV £VVîa
V$
%V
îVV V
VV VV
V V
V
£as variables pueden ser intercambiadas entre rutinas, por valor y por
referencia:
VV VV
V
V
xespecto al
de una variable, éste puede ser:
ai bien es cierto, que de una forma básica, se puede defini r el ámbito de las
variables de la forma expuesta más arriba, existen grados de à à de las
mismas, pudiendo ser accesibles desde unos puntos u otros, o incluso
pudiendo ser accesibles entre aplicaciones distintas, llegando al caso de la
à à . Ejemplo del ámbito de una variable en el lenguaje de
programación Java.
public class A {
public Integer numeroEntero = ne Integer(); /* 0ariable Global a todos los
étodos */
Ejemplo
Por ejemplo:
int a, b
a := 1
b := a +
a :=
Aquí tenemos dos variables, "a" y "b" que almacenan valores numéricos enteros
(int). £a variable "a" almacena primero el número 1, luego "b" almacena el
numero que tiene "a" más , por lo tanto "b" almacena un . Finalmente el valor
de "a" es reemplazado por un , por lo tanto las variables contendrán estos
datos al final:
a=
b=
V
Por ejemplo:
JV El valor de pi = .1416
VV V VV
V$+% V
Ejemplo:
include <stdio.h>
define PI .14196
int main()
{
printf("Pi vale %f", PI);
return 0;
}
Pi vale .14196
define X .4
define Y 9.
define Z X + Y
îVV V
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, 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.
îVV V
V
îVV V
V
¦Aîa PxIIîI0a:
* AxAîEx
*NUExI
*£GIa(B£EANa)
AxÁîEx
NUExIa Este tipo de dato puede ser real o entero, dependiendo del tipo
de dato que se vaya a utilizar.
Enteros: son los valores que no tienen punto decimal, pueden ser positivos o
negativos y el cero.
xeales: estos caracteres almacenan numeros muy grandes que poseen parte
entera y parte decimal.
p a: fla= 32 b
a
p a: bl= ` b
b V
VV
f f f f
g h h h
c
cd e c à !" e # i
JV Tp Or al
ÊV Tp pr f
óV Tp a r
óV Tp a arár
óV Tp a l
ÊV Tp f pr l ar
óV Tp a
ra
óV Tp a bra
JV Tp j Or al
ÊV Tp a ral
ÊV Tp a r l
ÊV Tp a p r
V
u
V
n n n
o p p p
c
kl mu ku à !" m km#lq
m
v
c
rs tu ru à !" s à u
v x v
c
rs t r à !$wr
t%t à#àr y &
JV Ca a arar
JV Erra a
V
au nombre depende del autor, son los operadores que actúan sobre dos
objetos (escritos, generalmente, a ambos lados del operador) pr oduciendo un
único resultado. 0éanse los casos siguientes.
JV A B o desigualdad.
àVV
£os operadores lógicos son tres; dos de ellos son binarios, el último (negación)
es unario. îienen una doble posibilidad de representación en el Estándar ++
actual: la representación tradicional que se indica a continuación, y la
introducida recientemente que se detalla más adelante .
JV V
33 AN¦
JV V
44 x
JV
V
5 Nî
a
à
exprAN¦logica 33 expresionxinclusive
omentario:
Ejemplo:
aalida:
Falso.
El valor
, que es interpretado como un puntero al primer elemento de la
matriz, es transformado a un . omo es distinto de cero (no es un puntero
nulo) el resultado es cierto. A continuación, el valor es convertido también a
. En este caso la conversión produce falso, con lo que este es el resultado
del paréntesis de la sentencia .
Ejemplo
include <iostream.h>
aalida:
Uno falso
¦os cierto
îres falso
§ || perador lógico
a
à
exprxlogica 44 expresionAN¦logica
omentario
Ejemplo
include <iostream.h>
bool alto = true, bajo = false, blanco = true, negro = false;
aalida
Uno cierto
¦os cierto
îres falso
§4 ! perador N lógico:
a
à
! expresioncast
omentario
xesulta por tanto, que el resultado de este operador es siempre un tipo ,
aunque al existir una conversión estándar por la que un cero es convertido a
, y cualquier valor distint o de cero a , coloquialmente se dice que este
operador convierte un operando 6 en - y uno nocero en 6. En otras palabras:
este operador devuelve cierto ( ) si la expresión se evalúa a distinto de cero,
en caso contrario devuelve falso ( ).
Ejemplo
include <iostream.h>
bool alto = true, bajo = false;
aalida:
Uno cierto
¦os falso
îres cierto
aV&îî&aV
Ejemplos:
Expresión xesultado
7 / .
1 mod 7
104 + * 14
&&VV£aVaV&îî&aV
V
îodas las expresiones entre paréntesis se evalúan primero. £as
expresiones con paréntesis anidados se evalúan de dentro a fuera, el
paréntesis mas interno se evalúa primero.
¦entro de una misma expresión los operadores se evalúan en el
siguiente orden.
1.ï ^ Exponenciación
.ï *, /, mod ultiplicación, división, modulo.
.ï +, ï auma y resta.
£os operadores en una misma expresión con igual nivel de prioridad se
evalúan de izquierda a
derecha.
Ejemplos:
4 + * = 14
* / = 9. 46 / = 9.
+ * (10 ï ( + 4)) = + * (10 ï 6) = + * 4 = + 0 =
. + .09 ï 14.0 / 40 = .09 . + .09 ï . = .9 ï . = .09
.1 * (1. + .0 * 4.1) = .9 .1 * (1. + 1.) = .1 * 1. = .9
V
a&#£VV£aV&aVV £V
V
Este se utiliza para representar el inicio o el fin de un algoritmo. îambién puede
representar una parada o una interrupción programada que sea necesaria
realizar en un programa.
Este símbolo es utilizado para repre sentar una entrada o salida de información,
que sea procesada o registrada por medio de un periférico.
Este es utilizado para indicar la secuencia del diagrama de flujo, es decir, para
indicar el sentido de las operaciones dentro del mismo.
£aVVaîîVV&VV £V
JV £as líneas de flujo no deben cruzarse, para evitar los cruces se utilizan los
conectores.
JV ¦e un símbolo excepto el de decisión, solo puede salir una línea de flujo.
JV £os símbolos îerminal, onector dentro de página y conector fuera de
página solo pueden estar conectados al diagrama por una sola flecha,
ya que por su naturaleza es imposible que tenga una entrada y una de
salida.
JV £os émbolos de decisión tendrán siempre una sola flecha de entrada y
dos o tres flechas de salida según la cantidad de alter nativas que se
presentan.
a&&aVa#V&VV £V
V ae genera por no seguir las reglas establecidas, puede hacer el
diagrama difícil interpretación, confundir el diagrama y hasta convertirlo en
errado en cuanto ser lógica.
V£& aon errores de estructura del diagrama en cuanto al arden puede
ser de distinta gravedad, desde dejar de mostrar el resultado. falta un
cálculo hasta un error que determine que un programa nunca llegue a su fin.
Para ellos e selecciona algunos datos (creadas por el programador para fines
de la prueba) que cubran todos los casos posibles en todas las condiciones.
îomando estos datos se recorre el diagrama de flujo símbolo a símbolo
siguiendo la orden de cada uno de ellos, todo esto se hará a un lado del
diagrama o en una hoja aparte dándole valores a variables y ejecutando
operación que se indique .Ejemplo:
aîîVVî£Va£î&V$%V
îVV&VV##
a VVV
! evalúa una condición, si esta es
verdadera ejecuta la acción o acciones especificadas, si es falsa
ejecuta otra acción o acciones.
ai existe sola una instrucción o sentencia dentro de la condición
no es necesario marcarlos con inicio y fin como en este caso que la
condición fue falsa, en caso contrario si, en este ejemplo cuando la
condición fue verdadera.
a V V
VV
£a estructura selectiva anidada es una cadena de estructuras selectivas
que se conectan de la parte else de la actual con la parte if de la
siguiente.
VV VV
V
a V
if(condición1) Bloque 1 ;
else if(condición) Bloque ;
else Bloque ;
V
if(edad < = )
onsole.Write£ine("Bebé" ) ;
else if(edad < 1)
onsole.Write£ine("Niño" ) ;
else if( edad < 1)
onsole.Write£ine("Adolescente" ) ;
else onsole.Write£ine (" Adulto" ) ;
V
a V
(V V
VV VV
aintaxis:
s itch(Expresión)
{
case te 1: Bloque 1 ; break;
case te : Bloque ; break;
case te N: Bloque N ; break;
default: Bloque X ; break;// pcional.
V
V
V
V
V
aîîa î&î&aVVV&£aVî&î&a
îVV
£V
V
V
V
V V
V
V
V
V
V
V
V
V
V
V
V
V V
En su forma más típica y básica, esta estructura requiere una variable
entera que cumple la función de un contador de vueltas. En la sección
indicada como ´inicializaciónµ, se suele colocar el nombre de la
variable que hará de contador, asignándole a dicha variable un valor
inicial. En la sección de ´con diciónµ se coloca la condición que deberá
ser verdadera para que el ciclo continúe (en caso de falso el ciclo se
detendrá). Y finalmente, en la sección ´modificaciónµ se coloca una
instrucción que permite modificar el valor de la variable que hace de
contador (para permitir que alguna vez sea falsa).
½ r
(Ea)
vr a r
fal
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
7&£V
ondición falso
V
V
V Instrucciones
V (Ea)
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
!V
Un vector es un conjunto de elementos relacionados. En la mayoría de
los lenguajes de computadora, todos los elementos de un vector(o
arreglo unidimensional) son del mismo tipo.
Para poder hacer referencia a los elementos de un vector es necesario
que exista un nombre para el mismo. A cantidad máxima de elementos
que podemos almacenar en un vector se le llama p
.
No es posible acceder a todos los datos de un arreglo al mismo tiempo,
en vez de ello se tiene que usar un nombre de arreglo y un número,
llamado , que indica a qué elemento del vector se está haciendo
referencia.
V
En la figura se muestra un arreglo de enteros llamado U que tiene una
dimensión de 4. ai queremos hacer referencia al segundo elemento del
arreglo U(el número '()) tendríamos que especificar U (*(se lee como U
(&, es decir, U (*+'(). ada uno de estos elementos individuales
puede ser tratado como cualquier variable.
V
VV
VV
V VV!V
V
V
!VV
VV
VV
V VV
!V
p !Hacer diagrama de flujo que lea una matriz de tres por dos ( X
).
p ! Hacer diagrama de flujo que lea e imprima una matriz de N X
elementos.
p !Hacer diagrama de flujo que lea matriz de dimensión Nx y un
escalar. El diagrama debe calcular e imprimir el producto escalar de
ambos.
V