1. SISTEMA DE PROCESAMIENTO DE LA INFORMACION
Un ordenador es una máquina de procesamiento de información. Es una máquina porque tiene cables, chips,... , procesa porque es capaz de procesar cosas, e información porque maneja conjuntos ordenados de datos.
Para procesar la información está el hardware (microprocesador, RAM,...), y el software (que sirve para manejar el hardware).
2. CONCEPTO DE ALGORITMO
Algoritmo es una formula para resolver un problema. Es un conjunto de acciones o secuencia de operaciones que ejecutadas en un determinado orden resuelven el problema. Existen algoritmos, hay que coger el más efectivo.
El logaritmo; Tiene que ser preciso, estar bien definido, tiene que ser finito
La programación es adaptar el algoritmo al ordenador.
El algoritmo es independiente según donde lo implemente.
3. EL LENGUAJE DE PROGRAMACION
Hay diferentes tipos, de bajo nivel y de alto nivel
•Lenguaje máquina: Todo se programa con 1 y 0, que es lo único que entiende el ordenador.
la ventaja de este es que no necesita ser traducido, el inconveniente: La dificultad, la confusión, para corregir errores, es propia de cada máquina.
•De bajo nivel o ensamblador: Se utilizan mnemotécnicos (abreviaturas).
La ventaja es que no es tan dificil como el lenguaje maquina, inconvenientes: Cada máquina tiene su propio lenguaje, necesitamos un proceso de traducción.
•El programa escrito en ensamblador se llama programa fuente y el programa que se obtiene al ensamblarlo se llama programa objeto.
•Lenguajes de alto nivel: Los más cercanos al lenguaje humano.
la ventaja es que son independientes de cada maquina (los compiladores aceptan las instrucciones estándar, pero también tienen instrucciones propias), el inconveniente es que el proceso de traducción es muy largo y ocupa más recursos. Aprovecha menos los recursos internos
Una instrucción es cada paso de un algoritmo, pero que lo ejecuta el ordenador. Un programa es un conjunto de instrucciones que ejecutadas ordenadamente resuelven un problema.
Tipos de instrucciones:
•E/S: Pasar información del exterior al interior del ordenador y al revés.
•Aritmético-lógicas: Aritméticas: +,-,*,... ; Lógicas: or, and, <, >, ...
•Selectivas: Permiten la selección de una alternativa en función de una condición.
•Repetitivas: Repetición de un número de instrucciones un número finito de veces.
4. DATOS, TIPOS DE DATOS Y OPERACIONES PRIMITIVAS
Dato es un objeto o elemento que tratamos a lo largo de diversas operaciones. Tiene 3 caracteristicas: Un nombre que los diferencia del resto, un tipo que nos determina las operaciones que podemos hacer con ese dato y un valor que puede variar o no a lo largo de la operación.
Los datos pueden ser, simples (un elemento), o compuestos (varios elementos)
tipos de datos:
Los que vienen en el sistema por defecto (estandar), y los que crea el usuario (no estandar)
Los tipos simples más importantes son:
1. Numéricos:
•Entero: Subconjunto finito del conjunto matemático de los numéros enteros. No tiene parte decimal. El rango de los valores depende del tamaño que se les da en memoria.
•Real: Subconjunto finito del conjunto matemático de los números reales. Llevan signo y parte decimal. Se almacenan en 4 Bytes. Si se utilizan números reales muy grandes, se puede usar notación científica que se divide en mantisa, base y exponente; tal que el valor se obtiene multiplicando la mantisa por la base elevada al exponente.
2.Lógicos o booleanos:
Aquel que sólo puede tomar uno de los dos valores, verdadero o falso (1/0).
3.Carácter:
Abarca al conjunto finito y ordenado de caracteres que reconoce la computadora (letras, digitos, caracteres especiales, ASCII).
El propio lenguaje puede añadir más tipos, o se pueden añadir modificadores.
Caracteristicas de los tipos:
•Cada tipo se representa o almacena de forma diferente en la computadora.
Bit:1/0; Byte=8 bits.
•Un tipo agrupa a los valores que hacen las mismas operaciones.
•Si tiene definida una relación de orden es un tipo escalar.
•Cardinalidad de un tipo: Número de valores distintos que puede tomar un tipo.
Pueden ser finitos (caracteres), y si son infinitos el ordenador los toma como finitos porque esta limitado por el tamaño de los bytes en el que la cifra es almacenada.
5. CONSTANTES Y VARIABLES
•Constantes: Tienen un valor fijo que ya no puede ser modificado durante la ejecución.
•Variables: El valor puede cambiar durante la ejecución del algoritmo, pero nunca varia su nombre y su tipo.
Antes de usar una variable hay que definirla, al hacerlo hay que dar su nombre y su tipo. El nombre que le damos tiene que ser un nombre significativo, va a ser un conjunto de caracteres que dependiendo del lenguaje hay restricciones. Tiene que empezar por una letra, y el tamaño depende del lenguaje.
El valor de la variable si al declararla no se la inicializa, en algunos lenguajes toma una por defecto. En cualquier caso el valor de la variable podemos darle uno incial o podemos ir variandolo a lo largo de la ejecución.
Las constantes pueden llevar asociados un nombre o no, si no lo llevan, se llaman literales. Su valor hay que darlo al definir la constante y ya no puede cambiar a lo largo de la ejecución, y en cuanto al tipo, dependiendo de los lenguajes en algunos hay que ponerlo, y en otros no hace falta ponerlo porque toma el tipo del dato que se le asigna. Const PI=3,1416.
Hay que inicializar todas las variables.
Hay que poner algo obligatoriamente.
Puede llevar algo o no llevarlo.
Las constantes sin nombres son de valor constante: 5, 6, `a', “hola”.
Cuando una cadena es de tipo carácter, se encierra entre `' `a'.
Al detectar una variable o una constante con nombre, automaticamente se reserva en memoria espacio para guardar esa variable o constante. El espacio reservado depende del tipo de la variable.
6. EXPRESIONES, TIPOS Y OPERADORES
Una expresión es una combinación de constantes, variables, signos de operación, paréntesis y nombres especiales (nombres de funciones estandar), con un sentido unívoco y definido y de cuya evaluación resulta un único valor.
Numéricas: Operadores aritméticos.
Son los que se utilizan en las expresiones numéricas (una combinación de variables y/o constantes numéricas con operadores aritméticos y que al evaluarla devuelve un valor numérico.
Operación resto: Lo que devuelve es el resto de una división entera.
Mod: Pascal. 5 mod 3 = 2
%: C.
División entera: Nos devuelve el cociente de una división entera (en la que no se sacan decimales).
Div: Pascal. 5 div 3 = 1
\: C.
Potencia: ^ 5^2.
Todos estos operadores son binarios (el operador se situa en medio), el menos tambien puede ser unario (lleva un único operando) y significa signo negativo.
Reglas de precedencia:
El problema es cuando una expresión entera según como la evalue pueda dar diferentes valores.
La solución es aplicar prioridad entre los operadores, de modo que ante la posibilidad de usar varios siempre aplicaremos primero el de mayor prioridad.
Cada lenguaje puede establecer sus propias reglas de prioridad o precedencia de operadores. Si no nos acordamos, siempre podemos poner ( ).
Entre dos operaciones que tienen la misma precedencia para resolver la ambigüedad, hay que usar la regla de la asociatividad. La más normal es la de la asociatividad a izquierdas (primero lo de la izquieda).
Expresiones lógicas:
Una expresión lógica es aquella que sólo puede devolver dos valores (Verdadero o Falso). Los valores que pueden aparecer en una expresión lógica son de 2 tipos: lógicos y relacionales.
La particularidad de las expresiones lógicas es que mientras en una expresión numérica por devolver un valor numérico los operandos solo pueden ser números, en una expresión lógica los operandos no tienen porque ser booleanos aunque se devuelva un valor booleano. Esto es lo que ocurre cuando en la expresión lógica utilizamos operadores relacionales con lo cual se obtienen valores lógicos o booleanos a partir de otros que no lo son.
En cambio cuando los operadores son lógicos los operandos obligatoriamente tambien tienen que ser lógicos.
7. FUNCIONES INTERNAS
Son funciones matemáticas diferentes de las operaciones básicas que se incorporan al lenguaje y que se consideran estandar. Dependen del lenguaje. Normalmente se encuentran en la librería de matemáticas del lenguaje de programación.
Fórmulas:
Abs (x)
Arctan (x)
Cos (x)
Sen (x)
Exp (x)
Ln (x)
Log 10 (x)
Redondeo (x)
Trunc (x)
Cuadrado (x)
Raiz (x)
8.OPERACION DE ASIGNACION
Consiste en atribuir un valor a una variable. El valor sera una expresión (constante, variable,...).
•Otros lenguajes = , :=
Variable a la que se le asigna el valor el valor que le vamos a asignar.
A 5
En C A = = B Comparación
A = B Asignación
En Pascal A:=B Asignación
A=B Comparación
El proceso de asignacion se realiza en 2 fases:
•Se evalúa la expresión de la parte derecha de la asignación obteniendose un único valor.
•Se asigna ese valor a la variable de la parte izquierda.
•En la parte izquierda sólo puede haber una variable.
•La variable a la que se le asigna el valor pierde su valor anterior.
•La variable que aparece en la derecha ya que como se evalua primero la de la derecha cuando se tenga que evaluar el valor de esa variable se tomara su valor antiguo.
A una variable solo se le pueden dar valores del mismo tipo
En Pascal da un error.
En C, no da error porque el compilador trunca el numero.
A: entero
A 2
A 3*A + A = 8
9. ENTRADA Y SALIDA DE LA INFORMACION
Las dos operaciones básicas de cada salida son las de lectura y de escritura. La lectura es equivalente a la asignación en cuanto que va a haber una variable que recibe un valor, pero este valor no resulta de evaluar ninguna expresión, sino que el valor lo vamos a leer de un dispositivo externo de entrada.
Leer (nombre de la variable)
El valor introducido por el dispositivo externo, tiene que ser del mismo tipo del que la variable que se le asigne.
La operación de escritura lo que hace es mostrar el valor de una variable en un dispositivo externo de salida.
Escribir (variable)
La operación de escritura no es una operación destructivo en memoria.