Algoritmo
Es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia. Los algoritmos se pueden expresar por: Un algoritmo es el conjunto de operaciones y procedimientos que deben seguirse para resolver un problema.
Tipos de algoritmos
-Algorítmico
Utiliza un algoritmo y puede ser implementado en una computadora
• Instrucciones para manejar un vehículo
• Instrucciones para secar grano a granel
• Instrucciones para resolver ecuación de segundo grado
-Heurística:
Se apoya en el resultado obtenido en un análisis de alternativas de experiencias anteriores similares. De las mismas, a se deducen una serie de reglas empíricas o heurísticas que de ser seguidas, conducen a la selección de la mejor alternativa en todas o la mayoría de las veces.
Formulas ej.
Diagramas de flujo ej. Norte-Sur, Top-Down
Pseudocódigo ej. inicio
Leer a, b, c
Calcular
Algoritmo: es un método para resolver un problema mediante una serie de pasos definidos, precisos y finitos.
Preciso: implica el orden de realización de cada uno de los pasos
Definido: si se sigue dos veces, se obtiene el mismo resultado.
Finito: Tiene un número determinado de pasos, implica que tiene un fin,
Variable
una variable es un espacio de memoria reservado para almacenar un valor que corresponde a un tipo de dato soportado por el lenguaje de programación. Una variable es representada y usada a través de una etiqueta (un nombre) que le asigna un programador o que ya viene predefinida.
Por ejemplo, en la variable de nombre "núm.", se almacena el número8 (de tipo entero). De forma genérica, para utilizarla y sumarle un uno se debería programar: núm. = núm. + 1.
Una variable puede ser del tipo boleano, entero, decimal de coma flotante, carácter, cadena de texto, arreglo, matriz, tipo definido por el usuario, etc. Estos son tipos de datos.
Una variable, por lo general, como su nombre lo indica, puede variar su valor durante la ejecución del programa. Dependiendo del lenguaje de programación usado, también puede cambiar el tipo de dato que almacena.
Tipos de datos
Artículo principal: Tipo de dato
Debido a que las variables contienen o apuntan a valores de tipos determinados, las operaciones sobre las mismas y el dominio de sus propios valores están determinadas por el tipo de datos en cuestión. Algunos tipos de datos usados:
• Tipo de dato lógico.
• Tipo de dato entero.
• Tipo de dato de coma flotante (real, con decimales).
• Tipo de dato carácter.
• Tipo de dato cadena
Variables y paso de parámetros a subalgoritmos
Las variables pueden ser intercambiadas entre rutinas, por valor y por referencia:
• Por valor.- Se copia el valor (el dato) de la variable en la zona de la pila de llamadas —de ámbito local— que corresponde a la nueva subrutina llamada. Por tanto, esta subrutina obtiene dicho valor pero no puede modificar la variable original. Esto significa que si la variable sufre alteraciones dentro de esta rutina, para poder acceder a dichas modificaciones al finalizar, deberá devolver el nuevo valor de la misma. Si no se realiza esta operación, el valor de la variable será exactamente el mismo que tenía antes de pasar por la función.
• Por referencia.- No se pasa el valor directamente de la variable, si no una referencia o puntero a la misma —que contiene la dirección de la zona de memoria donde se aloja el contenido—, de tal modo que se opera directamente sobre la zona de memoria que la contiene, lo cual implica que las modificaciones que sufra serán accesibles a posteriori.
Constante
Una constante es un valor que no puede ser alterado durante la ejecución de un programa.
Una constante corresponde a una longitud fija de un área reservada en la memoria principal del ordenador, donde el programa almacena valores fijos.
Por ejemplo:
El valor de pi = 3.1416
Por conveniencia, el nombre de las constantes suele escribirse en mayúsculas en la mayoría de lenguajes.
Ciclo
Es una estructura que te permite repetir una operación o varias una determinada cantidad de veces en función de las condiciones que le impongas.
Las instrucciones que estén dentro del loop se repetirán una cierta cantidad de veces mientras se cumpla una condición.
Es una sentencia que se realiza repetidas veces a un trozo aislado de código, hasta que la condición asignada a dicho bucle deje de cumplirse.
Generalmente, un bucle es utilizado para hacer una acción repetida sin tener que escribir varias veces el mismo código, lo que ahorra tiempo, deja el código más claro y facilita su modificación en el futuro.
El bucle y los condicionales representan la base de la programación estructurada. Es una evolución del código ensamblador, donde la única posibilidad de iterar un código era establecer una sentencia jump (que en los lenguajes de programación fue sustituida por el "ir a" o GOTO).
Tipos de ciclos
>> while(mientras)este tipo de ciclos repite las instrucciones "mientras" se cumpla la condicion que le indiques
la sintaxis utilizada en la mayoria de los lenguajes se ve algo asi
while(condicion a evaluar){
instrucciones a repetir
}
>>do-while (hacer mientras)
a diferencia de nuestra estructura anterior (while) esta no evalua la condicion al principio sino al final, por lo que con eso te aseguras de que AL MENOS UNA VEZ(pueden ser mas, dependiendo de la condicion, pero una vez seguro) se van a ejecutar las instrucciones que esten dentro del ciclo.
la sintaxis sería algo parecido a:
do{
instrucciones a repetir
}while(condicion)
acordarte, la diferencia importante q hay con el while, es que acá si o si va a dar POR LO MENOS una vuelta el ciclo, se cumpla o no la condicion,
supongamos que la condicion antes de entrar al ciclo ya es falsa, se ejecutan las instrucciones y luego al evaluar se corta el ciclo, en cambio en While, al tener la evaluación de la condicion al comienzo, si la condicion desde el principio es falsa, ninguna de las instrucciones de él se ejecutaran
Por lo general tanto While como do-while, se utilizan cuando no sabes la cantidad de veces que se tiene/n que repetir la/s instrucción/es
>>for(para)
este tipo de estructuras repetitivas, es la más simple desde mi punto de vista, esta repite las instrucciones un DETERMINADO número de veces; desde un inicio hasta un fin, se utiliza cuando tenes plena certeza de cuantas veces se tiene que repetir el ciclo, por ejemplo cuando queres trabajar con algo sobre lo que ya sabes la cantidad, no sé, alumnos de un curso ponerle, sabes con certeza que son 30 (ejemplo), entonces usas un for que valla de 0 a <30 (30 veces),
o cuando tenes que recorrer un vector de tamaño conocido, (o quizás no como el caso de lenguajes mas orientados a objetos donde los vectores tienen otro tipo de métodos como "lenta" que sabe cuál es el largo de sí mismo)
la sintaxis seria asi:
for(inicio;fin;incremento){
instrucciones a repetir
}
donde "inicio" es el valor inicial desde donde deberá comenzar el ciclo, "fin" es el valor final, hasta donde deberá correr el ciclo
"incremento" parámetro que se utiliza para indicarle al ciclo de cuanto en cuanto deberá saltar,
ejemplo para que entiendas lo de incremento:
supongamos que queres hacer un ciclo for q ejecute 3 veces algo:
int i;
for(i = 0; i<3; i+1){
algo a repetir
}
acordate que en programación se acostumbra a q cuando son X cantidad de valores, el 0 se cuenta como primero y el ultimo seria X-1, por eso en el ejemplo va de 0 a 2 (i<3)
en este caso coloque "i+1" para indicarle que sume i en 1 cada vez que dé una vuelta, por lo tanto la secuencia seria 0, 1, 2. Si hubiese colocado i+2 la i saltaría de dos en dos.
(En algunos lenguajes se permite abreviación de eso, por lo que puede que encuentres "i++" en lugar de "i+1")
bueno espero que sea lo que estabas necesitando y que te haya sido de ayuda
un saludo
Contador
En programación, se llama contador a una variable cuyo valor se incrementa o decrementa en un valor fijo (en cada iteración de un bucle).
Un contador suele utilizarse para contar el número de veces que itera un bucle. Pero, a veces, se utiliza para contar, solamente, aquellas iteraciones de un bucle en las que se cumpla una determinada condición.
Acumulador
Las variables acumuladoras tienen la misión de almacenar resultados sucesivos, es decir, de acumular resultados, de ahí su nombre.
Las variables acumuladores también deben ser inicializadas. Si llamamos “acum” a un acumulador, escribiremos antes de iniciar el bucle algo como esto:
acum = 0
Por supuesto, el valor inicial puede cambiar, dependiendo de la naturaleza del problema. Más tarde, en el cuerpo del bucle, la forma en la que nos la solemos encontrar es:
acum = acum + N
…siendo N otra variable. Si esta instrucción va seguida de otras:
acum = acum + M
acum = acum + P
… estaremos acumulando en la variable “acum” los valores de las variables M, N, P, etc., lo cual resulta a veces muy útil para resolver ciertos problemas repetitivos.
Ejemplo: Escribir un algoritmo que pida 10 números por el teclado y los sume, escribiendo el resultado
algoritmo sumar10
variables
cont es entero
suma es entero
N es entero
inicio
suma = 0
para cont desde 1 hasta 10 hacer
inicio
leer (N)
suma = suma + N
fin
escribir (suma)
fin
En este algoritmo, cont es una variable contador típica de bucle. Se ha usado un bucle “para”, que es lo más sencillo cuando conocemos previamente el número de repeticiones (10 en este caso). La variable Nsuma es el acumulador, donde se van sumando los diferentes valores que toma N en cada repetición. se usa para cada uno de los números introducidos por el teclado, y la variable
Observe como, al principio del algoritmo, se le asigna al acumulador el valor 0. Esta es una precaución importante que se debe tomar siempre porque el valor que tenga una variable que no haya sido usada antes es desconocido (no tiene por qué ser 0)
Condicional
Es una instrucción o grupo de instrucciones que se pueden ejecutar o no en función del valor de una condición.
Los tipos más conocidos de sentencias condicionales son el SI...ENTONCES (if...then), el SI...ENTONCES...SI NO (if...then...else) y el SEGÚN (case o switch), aunque también podríamos mencionar al lanzamiento de errores como una alternativa más moderna para evitar el "anidamiento" de sentencias condicionales.
Las sentencias condicionales constituyen, junto con los bucles, los pilares de la programación estructurada, y su uso es una evolución de una sentencia en lenguaje ensamblador que ejecutaba la siguiente línea o no en función del valor de una condición.
Lógica proposicional (negación, conjunción y disyunción)
En lógica(matemática), la lógica proposicional es un sistema formal diseñado para analizar ciertos tipos de argumentos. En lógica proposicional, las fórmulas representan proposiciones y las conectivas lógicas son operaciones sobre dichas fórmulas, capaces de formar otras fórmulas de mayor complejidad.1 Como otros sistemas lógicos, la lógica proposicional intenta esclarecer nuestra comprensión de la noción de consecuencia lógica para el rango de argumentos que analiza.
Considérese el siguiente argumento:
1. Mañana es miércoles o mañana es jueves.
2. Mañana no es jueves.
3. Por lo tanto, mañana es miércoles.
Es un argumento válido. Quiere decir que es imposible que las premisas sean verdaderas y la conclusión falsa. Esto no quiere decir que la conclusión sea verdadera. Si las premisas son falsas, entonces la conclusión también podría serlo. Pero si las premisas son verdaderas, entonces la conclusión también lo es. La validez de este argumento no se debe al significado de las expresiones "mañana es miércoles" y "mañana es jueves", porque éstas podrían cambiarse por otras y el argumento permanecer válida. Por ejemplo:
1. Está soleado o está nublado.
2. No está nublado.
3. Por lo tanto, está soleado.
En cambio, la validez de estos dos argumentos depende del significado de las expresiones "o" y "no". Si alguna de estas expresiones se cambiara por otra, entonces podría ser que los argumentos dejaran de ser válidos. Por ejemplo:
1. Ni está soleado ni está nublado.
2. No está nublado.
3. Por lo tanto, está soleado.
Las expresiones de las que depende la validez de los argumentos se llaman conectivas lógicas. La lógica proposicional estudia el comportamiento de una variedad de estas expresiones. En cuanto a las expresiones como "está nublado" o "mañana es jueves", lo único que importa de ellas es que tengan un valor de verdad. Es por esto que se las reemplaza por simples letras, cuya intención es simbolizar una expresión con valor de verdad cualquiera. A estas letras se las llama variables proposicionales, y en general se toman del alfabeto latino, empezando por la letra p, luego q, r, s, etc. Así, los dos primeros argumentos de esta sección podrían reescribirse así:
1. p o q
2. No q
3. Por lo tanto, p
Y el tercer argumento, a pesar de no ser válido, puede reescribirse así:
1. Ni p ni q
2. No q
3. Por lo tanto, p
Conectivas lógicas
Artículo principal: Conectiva lógica
A continuación hay una tabla que despliega todas las conectivas lógicas que ocupan a la lógica proposicional, incluyendo ejemplos de su uso en el lenguaje natural y los símbolos que se utilizan para representarlas.
Conectiva Expresión en el
lenguaje natural Ejemplo Símbolo en
este artículo Símbolos
alternativos
Negación no No está lloviendo.
Conjunción
y Está lloviendo y está nublado.
Disyunción
o Está lloviendo o está soleado.
Condicional material
si... entonces Si está soleado, entonces es de día.
Incondicional
si y sólo si Está nublado si y sólo si hay nubes visibles.
Negación conjunta ni... ni Ni está soleado ni está nublado.
Disyunción excluyente o bien... o bien O bien está soleado, o bien está nublado.
En la lógica proposicional (semántica bivalorada), las conectivas lógicas son tratadas con funciones de verdad. Es decir, como funciones que toman conjuntos de valores de verdad y devuelven valores de verdad. Por ejemplo, el símbolo lógico "no" es una función que si toma el valor de verdad 1, devuelve 0, y si toma el valor de verdad 0, devuelve 1. Por lo tanto, si se aplica la función "no" a una letra que represente una proposición falsa, el resultado será algo verdadero. Si es falso que "está lloviendo", entonces será verdadero que "no está lloviendo".
El significado de las conectivas lógicas no es nada más que su comportamiento como funciones de verdad. Cada conectiva lógica se distingue de las otras por los valores de verdad que devuelve frente a las distintas combinaciones de valores de verdad que puede recibir. Esto quiere decir que el significado de cada conectiva lógica puede ilustrarse mediante una tabla que despliegue los valores de verdad que la función devuelve frente a todas las combinaciones posibles de valores de verdad que puede recibir.
Negación Conjunción Disyunción Condicional Bicondicional
Límites de la lógica proposicional
La maquinaria de la lógica proposicional permite formalizar y teorizar sobre la validez de una gran cantidad de argumentos. Sin embargo, también existen argumentos que son intuitivamente válidos, pero cuya validez no puede ser probada por la lógica proposicional. Por ejemplo, considérese el siguiente argumento:
1. Todos los hombres son mortales.
2. Sócrates es un hombre.
3. Por lo tanto, Sócrates es mortal.
Pero esta es una forma de argumento inválida, y eso contradice nuestra intuición de que el argumento es válido. Para teorizar sobre la validez de este tipo de argumentos, se necesita investigar la estructura interna de las variables proposicionales. De esto se ocupa la lógica de primer orden. Otros sistemas formales permiten teorizar sobre otros tipos de argumentos. Por ejemplo la lógica de segundo orden, la lógica modal y la lógica temporal.
Dos sistemas formales de lógica proposicional
A continuación se presentan dos sistemas formales estándar para la lógica proposicional. El primero es un sistema axiomático simple, y el segundo es un sistema sin axiomas, de deducción natural.
Sistema axiomático
Alfabeto
El alfabeto de un sistema formal es el conjunto de símbolos que pertenecen al lenguaje del sistema. Si L es el nombre de este sistema axiomático de lógica proposicional, entonces el alfabeto de L consiste en:
• Una cantidad finita pero arbitrariamente grande de variables proposicionales. En general se las toma del alfabeto latino, empezando por la letra p, luego q, r, etc., y utilizando subíndices cuando es necesario o conveniente. Las variables proposicionales representan proposiciones como "está lloviendo" o "los metales se expanden con el calor".
• Un conjunto de operadores lógicos:
• Dos signos de puntuación: los paréntesis izquierdos y derecho. Su única función es desambiguar ciertas expresiones ambiguas, en exactamente el mismo sentido en que desambiguan la expresión 2 + 2 ÷ 2, que puede significar tanto (2 + 2) ÷ 2, como 2 + (2 ÷ 2).
Gramática
Una vez definido el alfabeto, el siguiente paso es determinar qué combinaciones de símbolos pertenecen al lenguaje del sistema. Esto se logra mediante una gramática formal. La misma consiste en un conjunto de reglas que definen recursivamente las cadenas de caracteres que pertenecen al lenguaje. A las cadenas de caracteres construidas según estas reglas se las llama fórmulas bien formadas. Las reglas del sistema L son:
1. Las variables proposicionales del alfabeto de L son fórmulas bien formadas.
2. Si es una fórmula bien formada de L, entonces también lo es.
3. Si y son fórmulas bien formadas de L, entonces , , y también lo son.
4. Sólo las expresiones que pueden ser generadas mediante las cláusulas 1 a 3 en un número finito de pasos son fórmulas bien formadas de L.
Axiomas
Los axiomas de un sistema formal son un conjunto de fórmulas bien formadas que se toman como punto de partida para demostraciones ulteriores. Un conjunto de axiomas estándar es el que descubrió Jan
Reglas de inferencia
Una regla de inferencia es una función que va de conjuntos de fórmulas a fórmulas. Al conjunto de fórmulas que la función toma como argumento se lo llama premisas, mientras que a la fórmula que devuelve como valor se la llama conclusión. En general se busca que las reglas de inferencia transmitan la verdad de las premisas a la conclusión. Es decir, que sea imposible que las premisas sean verdaderas y la conclusión falsa. En el caso de L, la única regla de inferencia es el modus ponen, el cual dice:
Recordando que y no son fórmulas, sino meta variables que pueden ser reemplazadas por cualquier fórmula bien formada.
Artículo principal: Deducción natural
Un sistema de lógica proposicional también puede construirse a partir de un conjunto vacío de axiomas. Para ello se especifican una serie de reglas de inferencia que intentan capturar el modo en que naturalmente razonamos acerca de las conectivas lógicas.
Tablas de verdad

Artículo principal: Tablas de verdad
La tabla de verdad de una fórmula es una tabla en la que se presentan todas las posibles interpretaciones de las variables proposicionales que constituyen la fórmula y el valor de verdad de la fórmula completa para cada interpretación. Por ejemplo, la tabla de verdad para la fórmula sería:
Como se ve, esta fórmula tiene 2n interpretaciones posibles —una por cada línea de la tabla—, donde n es el numero de variables proposicionales (en este caso 3, es decir p, q, r), y resulta ser una tautología, es decir que bajo todas las interpretaciones posibles de las variables proposicionales, el valor de verdad de la fórmula completa termina siendo 1. Dependiendo de los valores de verdad que resulten de hacer la tabla las expresión lógicas pueden definirse como tautología o valida en la cual para todos los valores de verdad de p, q y r da verdadero, además existe la contingencia o satisfacerle, en la cual los valores de verdad de la expresión pueden ser verdaderos o falso, pero no todas falsas pues eso es una contradicción o insatifasible, y si habláramos de un conjunto de expresiones, se llaman valido, consistente o inconsistente. En base a esto se puede hablar de equivalencias lógicas en las cuales se cumple que son tautologías.
Operador
Los operadores son expresiones que nos permiten manipular los datos que les pasamos, cada uno de los datos que se le pasa a un operador se llama operando, y según el número de operandos de que disponga un operador estaremos hablando de un operador unario (un operando), binario (dos operandos), ternario...
Los operadores no los utilizamos aisladamente, sino que solemos utilizar más de uno en una misma expresión compleja, en este caso tendremos que tener en cuenta las normas de preferencia para no encontrarnos con resultados no deseados.
Arriba Tabla de contenido
• • Normas de preferencia
• • Tipos de operadores
Arriba Normas de preferencia
Las operaciones no se realizarán de izquierda a derecha sino que se realizarán siguiendo un orden de preferencia que PHP asigna a cada operando, estas son las preferencias de PHP en cuanto a los operadores:
new
[
! ~ ++ -- (int) (float) (string) (array) (object) @
* / %
+ - .
<< >>
< <= > >=
== != === !==
&
^
|
&&
||
? :
= += -= *= /= .= %= &= |= ^= <<= >>=
and
xor
or
,
Para cambiar el orden en que se realizan las operaciones utilizaremos los paréntesis (), consiguiendo que se realicen primero las operaciones del interior del paréntesis y, acto seguido, el resto de operaciones siguiendo en cada caso el mismo orden de preferencia anteriormente citado:
000
001
002
003
004 <?php
// el operador de multiplicación es l signo asterisco ( * )
$a = 2 + 4 * 2; // El resultado es 10
$a = (2+4) * 2; // el resultado es 12
?> </CODE< code>
Maximizar Seleccionar PHP
ArribaTipos de operadores
PHP dispone de una gran cantidad de operadores que podríamos organizar en las siguientes categorías:
Operadores de Aritmética
Operadores de Asignación
Operadores Bit a Bit
Operadores de Comparación
Operadores de Control de Errores
Operadores de ejecución
Operadores de Incremento
Operadores de Lógica
Operadores de Cadena
Operadores de Matrices
Operadores de Tipo
Estos operadores en su mayor parte son para trabajar con valores numéricos, a excepción de los 4 últimos de la lista anterior, y se explicaran uno a uno en el curso de operadores PH
Estructuras secuenciales
La estructura secuencial es aquella en la que una acción sigue a otra en secuencia. Las operaciones se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. La asignación de esto consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma:
1. Simples: Consiste en pasar un valor constante a una variable (a <= 15)
2. Contador: Consiste en usarla como un verificador del número de veces que se realiza un proceso (a <= a + 1)
3. Acumulador: Consiste en usarla como un sumador en un proceso (a <= a + b)
4. De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a <= c + b*2/4).
Un ejemplo de estructura secuencial es el pseudocódigo, como obtener el área de un triángulo:
Inicio
...
int b, h, a;
printf("Diga la base", b);
scanf(%i, b);
printf("Diga la altura", h);
scanf(%i, h)
a := (b*h)/2
printf("El área del triangulo es de", a)
...
Comentarios
Publicar un comentario