BINARIO → ENSAMBLADOR → C(necesitamos SDK) → Alto nivel (C#, Java, Visual Basic
PROGRAMACIÓN ESTRUCTURADA
- Secuencia de comandos / linea de trabajo / sentencia. Ej. : A=B+C
- Palabras clave. Ej. If
- Literales. numéricos y de texto. A=4+5, “texto entre comillas” NO CAMBIAN
- Variables.
- Constantes. Es un literal con un nombre.
- Operadores. Ej. =, +, -, >=, MOD,
VARIABLES
Se almacenan en direcciones de memoria.
OPERADORES
- Aritméticos: + (suma), - (resta, * (producto), / división), \ división entera), % o MOD (módulo o resto de una división). Son operadores binarios. Los operadores unarios son los siguientes: ++ (incremento, --(decremento) ej. A=B+(C++) y A=B+(++C) en el segundo caso el valor de C se incrementa una unidad antes de hacer la operación.
- Asignación: asignan valores a algo. operando1=operando2 aqui el valor de operando2 se le asigna a operando1. Mas tipos de operadores de asignación (porque los informáticos con vagos, pero vagos, vagos). += → A=A+B → A+=B ; -= → A=A-B → A-=B; %= → A=A%B → A%=B; *= → A=A*B → A*=B; /= → A=A/B → A/=B; \= → A=A\B → A\=B
- Operadores lógicos: AND (Y) tb. &, OR (o) tb. |, XOR (o excluyente), NOT negación) tb. !. Aquí vemos las tablas de verdad según el operador. estas operaciones siempre devuelven Verdadero (True) o Falso (False), es decir 1 ó 0.
Operador AND | T | F |
T | T | F |
F | F | F |
Operador OR | T | F |
T | T | T |
F | T | F |
Operador XOR | T | F |
T | F | T |
F | T | F |
- Operadores relacionales o de comparación: siempre devuelven un valor lógico. Se tienen que poder realizar la comparación. Son los siguientes: >, <, >=, <=, == (igual a), != (distinto de) tb. <> Ej. (A>B) AND (B>C)
- Otros: - (cambio de signo). () para hacer agrupaciones. * y / se hacen antes que la + y la -.
El orden es el siguiente:
* y / → + y - → Operadores de comparación → Operadores lógicos
VARIABLES
1º Declarar. Tipos:
- Explícitas. Tenemos que escribir la sentencia para declararla.
- Implícitas. El primera vez que la usamos el lenguaje la usa automáticamente. Se complica a la hora de localizar errores.
2º Inicialización: cuando les asignamos un valor. (meteremos un valor en ese trozo de memoria) La mayoría de lenguajes permiten declarar e inicializar al mismo tiempo.
DECLARO nombreVariable=0
NOMENCLATURA
- Las variables no pueden empezar nunca por números.
- No utilizar caracteres raros, acentos, ñ, cerillas, etc...
- No utilizar espacios (el espacio significa separación). Se usan guiones bajos ( _ ) o la “tecnica del camello”, es decir, todo con minúsculas excepto la primera letra de cada palabra. Ej. operadorInicial.
- La primera letra del nombre será en minúsculas.
- Las constantes todas con mayúsculas y cada palabra separada con un guión bajo. ( _ ).
- ¿qué nombre le ponemos? si tenemos una variable que es un sumando pues la llamamos sumando.
- SIEMPRE usamos tabulaciones.
COMENTARIOS
- El compilador siempre los pasa por alto.
// el comentario va después de dos contrabarras. No hay que aclarar cosas obvias.
SINTAXIS DE SENTENCIAS
Una sentencia es una línea: A=B+C
ESTRUCTURAS CONDICIONALES O DE DECISIÓN
Condicionales simples
SI: Evalua una condición. Si es cierta hacen una condición, si es falsa otra.
SI (condición que devuelve un valor lógico)
Si se cumple se hace esto
FIN SI //es importante para saber a dónde llega este bloque
Si no se cumple se hace esto
CONDICIONAL DOBLE
SI (condición que devuelve un valor lógico)
Si se cumple se hace esto
SI NO
Si no se cumple se hace esto
FIN SI
CONDICIONAL MÚLTIPLE o COMPUESTO. Se utilizan para discriminar distintos rangos o evaluarlos.
SI (>18)
Si se cumple se hace esto
SI NO SI (>12)
Si se cumple se hace esto
SI NO SI (>5)
Si se cumple se hace esto
SI NO
Si no se cumple hace esto
FIN SI
CONDICIONAL MULTIPLE. Para evaluar datos concretos. A cada caso en concreto hay que ponerle FIN o BREAK para salir del bloque una vez cumplida la condición, si no, se seguiría ejecutando el siguiente. Sirve para aplicar líneas de código a distintos casos.
EN CASO DE (edad)
CASO (18)
Si se cumple se hace esto
BREAK
CASO (15)
Si se cumple se hace esto
BREAK
….
….….
EN OTRO CASO
Si no se cumplen las anteriores se hace esto
FIN CASO
ESTRUCTURAS DE REPETICIÓN o BUCLES
- DETERMINADOS. cuando el bucle empieza sabemos el número de veces que se va a repetir.
si se cumple la condición segunda se ejecuta el cuerpo del bucle
FIN PARA
la comparación lógica puede ser con un número u otra expresión (como una variable) (evitaremos usar el comparador de igualdad ==), el contador que usaremos por convenio será i, que no es necesario declararlo si esa variable sólo la vamos a utilizar para el bucle, al terminar el bucle, la variable i desaparecerá de la memoria si no la hemos declarado e inicializado en la parte DECLARO, por ejemplo DECLARO i=0 en un programa hará que la variable i permanezca en memoria todo el tiempo del programa.
- INDETERMINADOS. cuando el bucle empieza no sabemos cuantas veces se va a repetir. Usaremos tipo MIENTRAS.
1. MIENTRAS (condición inicial) cuerpo del bucle FIN MIENTRAS | 3. HASTA (condición inicial) cuerpo del bucle FIN HASTA |
2. HAZ cuerpo del bucle MIENTRAS (condición final) | 4. HASTA cuerpo del bucle HASTA (condición final) |
En el tipo 1. (Mientras → Fin Mientras) Entramos si la condición se cumple (es VERDADERO). La única pega es que hay que hacer algo dentro del bucle que modifique aquello que evaluamos en la condición para salir.
En el tipo 2. (Haz → Mientras) El campo del bucle se ejecuta al menos una vez.
En el tipo 3. (Hasta → Fin hasta) Entramos si la condición es FALSA.
En el tipo 4. (Haz → Hasta) Se ejecuta el bucle una vez y se repite si la condición es FALSA.
CUATRO REGLAS QUE SIEMPRE OCURREN
1. ley de murphy.
2. K.I.S.S. keep It Simple Stupid
3. Se adoptará la explicación más sencilla. Navaja de Ockham.
4. Newton, Hazlo lo más simple posible, pero no más.
ACUMULADORES
Tienen que permitir acumular, luego las variables hay que inicializarlas siempre al elemento neutro de la operación a realizar. (0 para la suma, 1 para la multiplicación)
CICLO DE VIDA DE LAS VARIABLES
Las variables mueren cuando termina el bloque donde están declaradas, excepto las declaradas fuera o al inicio del programa.
MATRICES O ARRAYS
variable[i] es una variable tipo array con i elementos. Es unidimensional.
variable[i,j] es una variable tipo arrat con i*j elementos. Es bidimensional.
...y así sucesivamente.
el primer elemento siempre es el CERO (la primera posición por decirlo así)
Tipos:
Estáticos: con número definido de elementos. NO se pueden dimensionar.
Dinámicos: Se puede modificar el número de elementos (estos no los usaremos ahora)
DECLARO nombre [n]={n0, n1, n2, n3,...nn}
Se recomienda nombrarlos en PLURAL.
Lo declaramos pero no lo inicializamos.
DECLARO nombre[] //para unidimensional
DECLARO nombre[,] //para bidimensional