En este ejemplo hacemos uso de 5 operadores básicos utilizados en las expresiones matemáticas. Son la base de todas las operaciones matemáticas y de string que se pueden llevar a cabo en PHP.
Estos 5 operadores matemáticos funcionan exactamente igual a como lo hacen en C++ o en Java. Son:
1. Suma (+)
2. Resta (-)
3. Multiplicación (*)
4. División (/)
5. Módulo (%) (el resto de la división por defecto)
Para asignar valores a variables utilizaremos =, que a diferencia de el significado matemático de "A es igual que B", en la mayoría de lenguajes de programación significa "A toma el valor de B". A este símbolo se le llama operador de asignación.
Código $x = 25;
$y = 10;
$z = $x + $y;
echo $z;
echo "\n";
$z = $x / $y;
echo $z;
echo "\n";
$z = $y * $y * $x;
echo $z - 1250;
echo "\n"; ?>
Salida 35
2.5
1250
Operadores Aritméticos:
$a + $b //Suma
$a - $b //Resta
$a * $b //Multiplicación
$a / $b //División
$a % $b //Resto de la división de $a entre $b
$a++ //Incrementa en 1 a $a
$a-- //Resta 1 a $a
Operadores de Cadenas:
El único operador de cadenas que existen es el de concatenación, el punto. Pero no os asustéis, PHP dispone de toda una batería de funciones que os permitirán trabajar cómodamente con las cadenas.
$a = "Hola ";
$b = $a . "Mundo"; // Ahora $b contiene "Hola Mundo"
En este punto hay que hacer una distinción, la interpretación que hace PHP de las simples y dobles comillas. En el segundo caso PHP interpretará el contenido de la cadena.
$a = "Mundo";
echo = 'Hola $a'; //Esto escribirá "Hola $a"
echo = "Hola $a"; //Esto escribirá "Hola Mundo";
Operadores de Comparación:
$a < $b //$a menor que $b
$a > $b //$a mayor que $b
$a <= $b //$a menor o igual que $b
$a >= $b //$a mayor o igual que $b
$a == $b //$a igual que $b
$a != $b //$a distinto que $b
Operadores Lógicos:
$a AND $b //Verdadero si ambos son verdadero
$a && $b //Verdadero si ambos son verdadero
$a OR $b //Verdadero si alguno de los dos es verdadero
$a || $b //Verdadero si alguno de los dos es verdadero
$a XOR $b //Verdadero si sólo uno de los dos es verdadero
!$a //Verdadero si $a es falso, y recíprocamente
Operadores de Asignación:
$a = $b //Asigna a $a el contenido de $b
$a += $b //Asigna a $a la suma de $b + $a
$a -= $b //Asigna a $a la resta de $a - $b
$a *= $b //Asigna a $a la multiplicación de $a por $b
$a /= $b //Asigna a $a la división de $a entre $b
$a .= $b //Asigna a $a la concatenación de $a seguida por $b
GUIA 15
Pseudocódigo
Un pseudocódigo (falso lenguaje), es una serie de normas léxicas y gramaticales parecidas a la mayoría de los lenguajes de programación, pero sin llegar a la rigidez de sintaxis de estos ni a la fluidez del lenguaje coloquial. Esto permite codificar un programa con mayor agilidad que en cualquier lenguaje de programación, con la misma validez semántica, normalmente se utiliza en las fases de análisis o diseño de Software, o en el estudio de un algoritmo. Forma parte de las distintas herramientas de la ingeniería de software.
No hay ningún compilador o intérprete de pseudocódigo informático (en el caso de que lo hubiera serían los lectores de dicho pseudocódigo informático, por ej. una idea de un jefe de programación a su personal), y por tanto no puede ser ejecutado en un ordenador, pero las similitudes con la mayoría de los lenguajes informáticos lo hacen fácilmente convertible.
El pseudocódigo describe un algoritmo utilizando una mezcla de frases en lenguaje común, instrucciones de programación y palabras clave que definen las estructuras básicas. Su objetivo es permitir que el programador se centre en los aspectos lógicos de la solución a un problema.
No siendo el pseudocódigo un lenguaje formal, varían de un programador a otro, es decir, no hay una estructura semántica ni arquitectura estándar. Es una herramienta ágil para el estudio y diseño de aplicaciones, veamos un ejemplo, que podríamos definir como: lenguaje imperativo, de tercera generación, según el método de programación estructurada.
Pseudocódigo = Pseudo (Supuesto) + Código (Instrucción).
Definición de datos del Pseudocódigo [editar]
La definición de datos se da por supuesta, sobre todo en las variables sencillas, si se emplea formaciones: pilas, colas, vectores o registros, se pueden definir en la cabecera del algoritmo, y naturalmente cuando empleemos el pseudocódigo para definir estructuras de datos, esta parte la desarrollaremos adecuadamente.
Definición de estructuras de control [editar]
Como se había mencionado antes, cada autor usa su propio pseudocódigo con sus respectivas convenciones. Por ejemplo, considere la instrucción "Reemplace el valor de la variable x por el valor de la variable y"; algunas de las posibles sintaxis para indicar lo anterior podrían ser:
• asigne a el valor de
•
•
•
Sin embargo, independientemente de estas diferencias, muchos autores consideran tres estructuras de control para desarrollar los procedimientos:
Secuencial [editar]
Las instrucciones se siguen en una secuencia fija que normalmente viene dada por el número de renglón. Es decir que las instrucciones se ejecutan de arriba hacia abajo.
Instrucción1
Instrucción2
Instrucción3
Instrucciónn
Selectiva [editar]
La instrucción selectiva determina si una determinada instrucción se ejecuta o no, según el cumplimiento de una condición P.
Diagrama de flujo que muestra el funcionamiento de la instrucción condicional
si P entonces
Instrucciones1
fin si
La condición P es una variable booleana o una función reducible a booleana (lógica, Verdadero/Falso). Si esta condición es cierta se ejecuta Instrucciones1, si no es así, ésta no se ejecuta.
Selectiva doble (alternativa) [editar]
La instrucción selectiva realiza una instrucción de dos posibles, según el cumplimiento de una condición P.
Diagrama de flujo que muestra el funcionamiento de la instrucción condicional
si P entonces
Instrucciones1
si no
Instrucciones2
fin si
La condición P es una variable booleana o una función reducible a booleana (lógica, Verdadero/Falso). Si esta condición es cierta se ejecuta Instrucciones1, si no es así, entonces se ejecuta Instrucciones2.
Selectiva múltiple [editar]
También es común el uso de una selección múltiple que equivaldría a anidar varias funciones de selección.
si Condición1 entonces
Instrucciones1
si no si Condición2 entonces
Instrucciones2
si no si Condiciónn entonces
Instruccionesn - 1
si no
Instruccionesn
fin si
En este caso hay una serie de condiciones que tienen que ser mutuamente excluyentes, si una de ellas se cumple las demás tienen que ser falsas necesariamente, hay un caso si no que será cierto cuando las demás condiciones sean falsas.
En esta estructura si Condición1 es cierta, entonces se ejecuta sólo Instrucciones1. En general, si Condicióni es verdadera, entonces sólo se ejecuta Instruccionesi
Selectiva múltiple-Casos [editar]
Una construcción similar a la anterior (equivalente en algunos casos) es la que se muestra a continuación.
seleccionar Indicador
caso Valor1:
Instrucciones1
caso Valor2:
Instrucciones2
caso Valorn-1:
Instruccionesn-1
[en otro caso:
Instruccionesn]
Fin seleccionar Indicador
En este caso hay Indicador es una variable o una función cuyo valor es comparado en cada caso con Valori, si en algún caso coinciden ambos valores, entonces se ejecutarán las Instruccionesi correspondientes. La sección en otro caso es análoga a la sección si no del ejemplo anterior.
Iterativa [editar]
Las instrucciones iterativas abren la posibilidad de realizar una secuencia de instrucciones más de una vez.
Diagrama de flujo que muestra el funcionamiento de la instrucción mientras
mientras P hacer
Instrucciones
fin mientras
El bucle se repite mientras la condición P sea cierta, si al llegar por primera vez al bucle mientras la condición es falsa, el cuerpo del bucle no se ejecuta ninguna vez.
Existen otras variantes que se derivan a partir de la anterior. La estructura de control hacer se utiliza cuando es necesario que las instrucciones de una estructura mientras se ejecuten al menos una vez:
hacer
Instrucciones
mientras P
La estructura anterior equivaldría a escribir
Instrucciones
mientras P hacer
Instrucciones
fin mientras
Una estructura de control muy común es el ciclo para, la cual se usa cuando se desea iterar sobre sobre un índice i (por convención se usa i, sin embargo se puede usar cualquier identificador):
para hasta n hacer
Instrucciones
fin para
la cual se define como
mientras hacer
Instrucciones
fin mientras
Por último, también es común usar la estructura de control para cada. Esta sentencia se usa cuando se tiene una lista o un conjunto L y se quiere iterar por cada uno de sus elementos:
para cada hacer
Instrucciones
fin para
Si asumimos que los elementos de L son , entonces esta sentencia equivaldría a
para hasta n hacer
Instrucciones
fin para
sin embargo, en la práctica existen mejores formas de implementar esta instrucción dependiendo del problema.
Es importante recalcar que el pseudocódigo no es un lenguaje estandarizado. Eso significa que diferentes autores podrían dar otras estructuras de control o bien usar estas mismas estructuras, pero con una notación diferente. Sin embargo, las funciones matemáticas y lógicas toman el significado usual que tienen en matemática y lógica, con las mismas expresiones.
El anidamiento [editar]
Cualquier instrucción puede ser sustituida por una estructura de control. El siguiente ejemplo muestra un pseudocódigo de un método de ordenamiento denominado Ordenamiento de burbuja en el cual aparecen varias estructuras anidadas. Este algoritmo ordena una lista L.
procedimiento
// es una lista con n elementos//
hacer
para hasta hacer
si entonces
fin si
fin para
mientras
fin procedimiento
Desarrollo de algoritmos [editar]
Con este pseudocódigo se puede desarrollar cualquier algoritmo que:
• Tenga un único punto de inicio.
• Tenga un número finito de posibles puntos de término.
• Haya un número finito de caminos, entre el punto de inicio y los posibles puntos de término.
Funciones y procedimientos [editar]
Muchas personas prefieren distinguir entre funciones y procedimientos. Una función, al igual que una función matemática, recibe un valor de entrada y regresa una salida mientras que un procedimiento recibe una entrada pero no genera una salida.
En ambos casos es necesario dejar en claro cuáles son las entradas para el algoritmo, esto se hace comunmente colocando estos valores entre paréntesis al principio o bien declarándolo explicitamente con un enunciado. En el caso de las funciones, es necesario colocar una palabra como regresar o devolver para indicar cuál es la salida generada por el algoritmo. Por ejemplo, el pseudocódigo de una función que permite calcular an (un número a elevado a potencia n).
función
//Este algoritmo sirve para calcular an cuando a y n son números naturales//
mientras hacer
si es impar entonces
fin si
fin mientras
devolver
fin función
Ventajas de utilizar un Pseudocódigo a un diagrama de flujo [editar]
1. Permite representar de forma fácil operaciones repetitivas complejas.
2. Es más sencilla la tarea de pasar de pseudocódigo a un lenguaje de programación formal.
3. Si se siguen las reglas de identación se puede observar claramente los niveles en la estructura del programa.
4. En los procesos de aprendizaje de los alumnos de programación, estos están más cerca del paso siguiente (codificación en un lenguaje determinado, que los que se inician en esto con la modalidad Diagramas de Flujo).
5. Mejora la claridad de la solución de un problema.
GUIA 14
MANUAL BASICO DE INSTRUCCIONES Y COMANDOS
SMART DFD 1.0
Smart DFD es un software desarrollado por el grupo Smart, de la Universidad del Magdalena
(Santa Marta, Colombia) para apoyar la enseñanza de la lógica de programación a través de
la utilización de los diagramas de flujo.
Este manual esta elaborado como apoyo a los laboratorios de los estudiantes de la
Asignatura Introducción y programación de los computadores. Es sólo una pequeña
recopilación y explicación de algunos comandos utilizados en Clase.
1. LA VENTANA PRINCIPAL DEL SMART DFD 1.0
La ventana principal de trabajo del Smart DFD 1.0 esta compuesta de los siguientes
elementos:
Barra de• menús
Botones de• Archivo
Botones de• Edición
Botones de• Ejecución
Botones de• Depuración
Botones de• Zoom
Botones de• Objetos
Botones de• Subprogramas
Manual Smart DFD 1.0
1
AREA DE TRABAJO
BARRA DE MENUS
BOTONES
________________________________________
Page 2
FUNDAMENTOS DE PROGRAMACION
Ing. Margarita María Franco López
LA BARRA DE MENUS
Aquí encontramos las siguientes opciones:
A. Archivo: Este menú se encarga del manejo del archivo que estemos trabajando.
Presenta los siguientes comandos:
Nuevo:• Para crear un nuevo diagrama DFD.
Abrir:• Para abrir un diagrama DFD guardado.
Guardar:• Para guardar el diagrama DFD que se está trabajando.
Guardar como:• Para guardar con un nombre diferente el diagrama DFD que se está
utilizando.
Imprimir:• Para imprimir el archivo DFD abierto.
Salir:• Para terminar la sesión en Smart DFD 1.0.
B. Edición: Este menú es el encargado de manejar los comandos de Edición del
diagrama:
Cortar:• Para quitar un bloque del diagrama y guardarlo en el portapapeles.
Copiar:• Para copiar el bloque marcado en el diagrama y guardarlo en el
portapapeles.
Pegar:• Para pegar en el diagrama el bloque guardado en el portapapeles.
Eliminar:• Para borrar el bloque marcado en el diagrama.
Eliminar• Subprograma: Para borrar el diagrama correspondiente a un
subprograma.
Editar Objeto:• Para cambiar las propiedades o valores del bloque marcado en el
diagrama.
C. Objeto: En este menú se establecen todos los comandos para la inserción de bloques
en el diagrama:
Cursor:• Mantiene activa la opción de puntero del mouse, permitiendo desplazarse
dentro del diagrama y marcar bloques.
Asignación:• Permite insertar un bloque de asignación en el diagrama.
Ciclo• Mientras: Permite insertar una estructura repetitiva MIENTRAS en el
diagrama.
Ciclo• Para: Permite insertar una estructura repetitiva PARA en el diagrama.
Decisión:• Permite insertar una estructura CONDICIONAL en el diagrama.
Lectura:• Permite insertar una instrucción de lectura de datos por teclado en el
diagrama.
Llamada:• Para insertar la llamada a un subprograma o subrutina dentro del
diagrama.
Salida:• Para insertar la presentación de datos en la pantalla.
Nuevo• Subprograma: Para abrir la ventana de edición para la elaboración del
diagrama de un subprograma o subrutina.
Manual Smart DFD 1.0
2
________________________________________
Page 3
FUNDAMENTOS DE PROGRAMACION
Ing. Margarita María Franco López
D. Ver: Este menú habilita los siguientes comandos:
Zoom:• Para ampliar o disminuir la vista general del diagrama.
Anterior• Subprograma: Para ver el diagrama del anterior subprograma cuando
estos existan.
Siguiente• Subprograma: Para ver el diagrama del siguiente subprograma cuando
estos existan.
Depurador:• Para evaluación de expresiones y tipos de datos.
E. Ejecución: Este menú activa la ejecución del diagrama, contiene los siguientes
comandos:
Ejecutar:• Para iniciar la ejecución del diagrama.
Pausar:• Para pausar la ejecución del diagrama.
Detener:• Para interrumpir la ejecución del diagrama.
F. Depuración: Controla las actividades de depuración del diagrama. Se compone de los
siguientes comandos:
Paso Simple:• Evalúa cada instrucción y bloque paso a paso e indica por que
camino va el control sobre el diagrama.
Ejecutar• Hasta: Permite marcar un bloque dentro del diagrama y realizar la
ejecución del diagrama solo hasta ese bloque.
Detener:• Para interrumpir la depuración.
Evaluar:• Permite evaluar expresiones y datos.
G. Opciones: controla las opciones de trabajar los ángulos en grados o en radianes.
H. Ayuda: Invoca el manual de ayuda del SmartDfd.
LA BARRA DE BOTONES
SmartDfd se caracteriza por tener botones que activan comandos. Estos botones y
comandos son:
Botón
Comando
Función
Nuevo
Crear un nuevo diagrama DFD.
Abrir
Abrir un diagrama DFD existente.
Guardar
Guardar el diagrama DFD que se está trabajando
Imprimir
Imprimir el diagrama DFD que se está trabajando
Cortar
Quitar un bloque del diagrama y guardarlo en el portapapeles
Copiar
Copiar el bloque marcado en el diagrama y guardarlo en el
portapapeles
Pegar
Pegar en el diagrama el bloque guardado en el portapapeles
Eliminar
Borrar el bloque marcado en el diagrama
Manual Smart DFD 1.0
3
________________________________________
Page 4
FUNDAMENTOS DE PROGRAMACION
Ing. Margarita María Franco López
Botón
Comando
Función
Ejecutar
Iniciar la ejecución del diagrama
Detener
Interrumpir la ejecución del diagrama
Pausar
Pausar la ejecución del diagrama
Paso Simple Evalúa cada instrucción y bloque paso a paso e indica por
que camino va el control sobre el diagrama
Ejecutar
Hasta
Realizar la ejecución del diagrama solo hasta el bloque
marcado
Depurador Activa el depurador del diagrama
Alejar
Reducir la vista del diagrama
Acercar
Ampliar la vista del diagrama
Cursor
Activar el puntero del mouse para desplazarse dentro del
diagrama y marcar bloques
Asignación Insertar un bloque de asignación en el diagrama
Ciclo
Mientras
Insertar una estructura repetitiva MIENTRAS en el diagrama
Ciclo Para
Insertar una estructura repetitiva PARA en el diagrama
Decisión
Insertar una estructura CONDICIONAL en el diagrama
Lectura
Insertar una instrucción de lectura de datos por teclado en el
diagrama
Salida
Insertar la presentación de datos en la pantalla
Llamada
Insertar la llamada a un subprograma o subrutina dentro del
diagrama
Anterior
Subprograma
Ver el diagrama del anterior subprograma cuando estos
existan.
Siguiente
Subprograma
Ver el diagrama del siguiente subprograma cuando estos
existan
Nuevo
Subprograma
Abrir una nueva ventana de edición para la elaboración del
diagrama de un subprograma o subrutina
Eliminar
Subprograma
Borrar el diagrama correspondiente a un subprograma
Manual Smart DFD 1.0
4
________________________________________
Page 5
FUNDAMENTOS DE PROGRAMACION
Ing. Margarita María Franco López
LA CREACIÓN DE DIAGRAMAS DE FLUJO EN DFD
Para crear un diagrama de flujo en Dfd deben escogerse los tipos de bloques a utilizar
pulsando sobre el botón de los siguientes:
Después de seleccionado el botón se desplaza el elemento hasta el lugar en el diagrama en
el que se desea insertar, para editar el objeto se debe pulsar doble clic con el botón del
mouse.
a. Edición de un bloque de lectura (
): Al dar doble clic sobre este bloque aparece la
siguiente ventana:
Dentro de la casilla leer, se deben especificar las variables que van a ser leídas separadas
por coma (, ) y pulsar el botón “Aceptar”.
b. Edición de un bloque de asignación (
): Al dar doble clic sobre este bloque aparece la
siguiente ventana:
En la casilla de la izquierda se coloca la variable que va a recibir la asignación y en la casilla
de la derecha, el valor, la variable o la operación que se va a asignar, y después se pulsa el
botón “Aceptar”. En este ejemplo se tiene una asignación A = 34 + B.
Manual Smart DFD 1.0
5
________________________________________
Page 6
FUNDAMENTOS DE PROGRAMACION
Ing. Margarita María Franco López
c. Edición de un bloque de salida ( ): Al dar doble clic sobre este bloque aparece la
siguiente ventana:
Dentro de la casilla mostrar, se deben especificar las variables que van a ser mostradas en
pantalla separadas por coma (,) y pulsar el botón “Aceptar”. Si desea mostrar mensajes de
texto éstos deben ser encerrados por comillas sencillas (‘).
d. Edición de una decisión (
): Al dar doble clic sobre este bloque aparece la siguiente
ventana:
Dentro de la casilla Condición, se debe escribir la condición que se desea evaluar, indicar si
la condición verdadera va a ser la derecha o la izquierda y pulsar el botón “Aceptar”.
e. Edición de un ciclo mientras (
): Al dar doble clic sobre este bloque aparece la
siguiente ventana:
Manual Smart DFD 1.0
6
________________________________________
Page 7
FUNDAMENTOS DE PROGRAMACION
Ing. Margarita María Franco López
Dentro de la casilla Condición, se debe escribir la condición que se desea evaluar para
realizar la repetición y pulsar el botón “Aceptar”.
f. Edición de un ciclo para (
): Al dar doble clic sobre este bloque aparece la siguiente
ventana:
En la primera casilla (Cont) se debe indica la variable que asume como contador del ciclo, en
la segunda casilla (Vi) se escribe el valor inicial del contador; en la tercera casilla (Vf) se
indica el valor final del contador y en la última casilla (Increm ) se escribe constante del
incremento del contador; al finalizar se pulsa el botón “Aceptar”.
OPERADORES EN DFD
A. OPERADORES ARITMÉTICOS
DFD
FUNCION
SINTAXIS
RESULTADO
+
Suma
A+B
La suma de A y B.
-
Resta
A-B
La resta de A y B.
*
Multiplicación
A*B
El producto de A y B.
/
División Real
A/B
El cociente real de A entre B.
TRUNC(/) División Entera
TRUNC(A/B) El cociente entero de A entre B.
MOD
Residuo Entero
A MOD B
El residuo de A entre B.
^
Exponenciación
A^B
A elevado a la potencia B.
B. OPERADORES RELACIONALES
Manual Smart DFD 1.0
7
________________________________________
Page 8
FUNDAMENTOS DE PROGRAMACION
Ing. Margarita María Franco López
DFD
FUNCION
SINTAXIS
RESULTADO
<
Menor que
X
F (Falso) en caso contrario.
<=
Menor o igual que
X<=Y
V(Verdadero) si X menor o igual
a Y , F (Falso) en caso contrario
=
Igual que
X=Y
V (Verdadero) si X es igual a Y
y F (Falso) en caso contrario
>
Mayor que
X>Y
V (verdadero) si X mayor a Y
F (falso) en caso contrario
>=
Mayor o igual que
X>=Y
V(Verdadero) si X mayor o igual
a Y , F (Falso) en caso contrario
!=
Diferente de
X!=Y
V(Verdadero) si X es diferente
de Y, F(Falso) en caso contrario
C. OPERADORES LOGICOS
DFD
FUNCION
SINTAXIS
RESULTADO
NOT
Negación Lógica
NOT A
NOT V = F
NOT F = V
AND
Conjunción
(Y Lógico)
A AND B
V AND V = V
V AND F = F
F AND V = F
F AND F = F
NAND
Negación del AND
A NAND B
V AND V = F
V AND F = V
F AND V = V
F AND F = V
OR
Disyunción
(O Lógico)
A OR B
V AND V = V
V AND F = V
F AND V = V
F AND F = F
NOR
Negación de OR
A NOR B
V AND V = F
V AND F = F
F AND V = F
F AND F = V
Manual Smart DFD 1.0
8
________________________________________
Page 9
FUNDAMENTOS DE PROGRAMACION
Ing. Margarita María Franco López
EQUIVALENCIA DE ESTRUCTURAS DFD CON LA SIMBOLOGIA ESTANDAR
Estructura
Botón
DFD
Diagramas Estándar
Lectura
A
Escritura
A
A
Asignación
A=5
Condicional
Simple
Condicional
Doble
CONDICION
SI
A = 5
NO
A = 3
Ciclo
Mientras
Manual Smart DFD 1.0
9
CONDICION
CONDICION
A = B
SI
NO
CONDICION
CONDICION
A = 5
SI
NO
________________________________________
Page 10
FUNDAMENTOS DE PROGRAMACION
Ing. Margarita María Franco López
Estructura
Botón
DFD
Diagramas Estándar
Ciclo Para
Manual Smart DFD 1.0
10
i=1; i<=n; i++
i=1; i<=n; i++
A = B
