términos algoritmo diseñar algoritmo implementar algoritmo sintaxis (palabras reservadas)...
TRANSCRIPT
Términos
• algoritmo
• diseñar algoritmo
• implementar algoritmo
• sintaxis (palabras reservadas)
• instrucciones
Modelo de programación del ordenador
Una abstracción o simplificación posible del ordenador consiste en considerarlo como un conjunto de elementos o dispositivos formado por un procesador, una memoria (memoria central) y un subsistema de Entrada/Salida principalmente.
Procesador Memoria SubsistemaEntrada/Salida
Procesador
• el procesador comienza a ejecutar cada una de las instrucciones que componen el programa, es decir, las lee y realiza las operaciones especificadas en ellas. El orden de ejecución de instrucciones, cuando se utilizan este tipo de lenguajes de programación llamados imperativos como el C, es siempre el mismo, comienza por la primera y va ejecutándolas una a una consecutivamente según el orden en que aparecen hasta la última.
Instrucciones...
En una instrucción se especifican dos cosas principalmente:– la operación u operaciones que se van a realizar
y– los datos sobre los cuales se van a llevar a cabo
dichas operaciones.
Procesador
Cuando el procesador lee una instrucción a ejecutar, “toma nota” de la operación que tiene que llevar a cabo y de los datos que ha de utilizar. Seguidamente, lee de la memoria los datos y realiza las operaciones especificadas sobre ellos. Por último, vuelca en la memoria (escribe) el resultado de la operación
Memoria• conjunto ordenado de “casillas” susceptibles
de contener datos
vacío
vacío
vacío
vacío
vacío
vacío
Celdillas dememoria
Nombres de lasceldillas
Direcciones de lasceldillas
#35
#36
#37
#34
#33
#38
Cada una de estas casillas está identificada de dos maneras distintas: mediante un nombre y mediante una dirección
• La dirección de una “casilla” o celda de memoria es una identificación predeterminada por el hardware del ordenador y no se puede modificar.
• Por el contrario, el nombre de una celda de memoria lo define el programador cuando escribe el programa y servirá para referirse de manera única a dicha celda.
• Una celda puede tener en principio cualquier tamaño, dependiendo del tipo de dato para el que se va a utilizar la misma. Pero todas las celdas tienen el mismo funcionamiento, actúan como “contenedores de datos”
• El programador, durante la escritura de un progra-ma, reserva celdas de memoria para utilizarlas dentro del programa, a esto se le conoce con el nombre de declaración de variables.
• La variable es lo mismo que la celda de memoria • La declaración de variables supone dos acciones:
– dar un nombre a la variable para su utilización en el programa y
– asignarle un tipo de dato
• Mediante el tipo de dato asignado a la variable se está definiendo la longitud que tendrá la celda que se utilizará para la variable y se están establecien-do implícitamente el tipo de operaciones que se pueden hacer con la variable
Esquema de memoria después de haber definido tres variables
vacío
vacío
vacío
vacío
vacío
vacío
variable1
variable2
variable3
Contenido delas variables
Nombres de lasvariables
Direcciones de lasvariables
#35
#36
#37
#34
#33
#38
Subsistema de Entrada/Salida
• Va a ser posible que se introduzcan datos en celdas de memoria mediante el teclado o se consulte el valor de celdas de memoria y aparezcan en la pantalla.
• Se puede mostrar el dato contenido en una variable en la pantalla y se puede cambiar el valor de una variable introduciendo un valor mediante el teclado
ENTRADASubsistema deEntrada/Salida SALIDA
MEMORIA
Lectura deteclado
Escritura enpantalla
Escritura enmemoria
Lectura dememoria
VariablesNombresDirecc.
Subsistema deEntrada/Salida
Entrada de datos
Salida de datos
#35
#36
#34
#33
Estructura de un programa en C
main()
{
}
main()
{
instruccion 1;
instruccion 2;
instruccion n;
}
Declaración de Variables
Durante el programa, se hará referencia al dato de una variable mediante el nombre que se le ha asignado a la variable, y mediante el tipo de dato asignado a la variable se establecerá:
la longitud que tendrá dicha variable y las operaciones que se pueden realizar con el dato que
contiene.
• La sintaxis de la declaración de variables es la siguiente:tipo_de_dato nombre_de_variable;
• La declaración de una variable ha de tener siempre la forma anterior, terminando con el símbolo ;.
Variables Globales y Locales
Variables GlobalesVariables Locales
main(){
instruccion 1;instruccion n;
}
....
....
/* Estructura de un Programa en lenguaje C */main(){ /* Declaracion de variables */
tipo1 variable1;tipo2 variable2, variable3;
/* Instrucciones del programa */
instruccion 1;instruccion 2;instruccion n;
}
Comentarios:son textos que el programador escribe para su propia información
vacío
vacío
vacío
vacío
vacío
vacío
variable1
variable2
variable3
DireccionesNombres
de variableContenido de las
variables
#35
#36
#37
#34
#33
#38
Tipos de Datos
Mediante la asignación de un tipo de dato a la variable cuando se declara se van a realizar dos cosas muy importantes:– Establecer la longitud de la celda de
memoria destinada a almacenar el dato y,– Establecer el conjunto de operaciones que
se pueden realizar sobre dicho dato.
Tipos de datos
• Numéricos– Enteros: Valores numéricos enteros.– Reales: Subconjunto del conjunto matemático
de los números reales (parte entera y parte real)
• Lógicos– Sólo pueden tomar los valores cierto y falso.
• Carácter– Valores alfanuméricos del código ASCII
Operadores y expresiones• Operador: Símbolo que se asocia a una
determinada operación básica que se realiza con los datos en algún punto del programa.– Binarios u Unarios (uno o dos operandos)
• Expresión: Combinación de variables, constantes, operadores, paréntesis y nombres de función escritas en un determinado orden que tiene la propiedad de ser evaluada y obtener un valor
Operadores en C• Operadores aritméticos: realizan operaciones
aritméticas, por lo que utilizan valores numéricos o variables numéricas.
Binarios: +, -, *, /, % Unarios: -,++, -- Ejem: a+b, -c
• Operadores relacionales o de comparación: Sirven para realizar comparaciones sencillas entre valores, el resultado será un valor lógico.
Binarios: >, >=, <, <=, == y != Ejem: a>b, a!=b
• Operadores lógicos: permiten realizar expresiones relacionales o lógicas más complejas.
Binarios: &&, || Unarios: ! Ejem: a && b
EnterosLas operaciones sobre enteros son:• a) Aritméticas: +, -, *, / y %.• b) De comparación: >, >=, <, <=, == y !=.
Tipo procesador de 16 bits procesador de 32 bits
int 16 bits 32 bits
short int 16 bits 16 bits
long int 32 bits 32 bits
unsigned int 16 bits 32 bits
Reales
Las operaciones sobre reales son:• a) Aritméticas: +, -, *, /.• b) De comparación: >, >=, <, <=, == y !=.
Tipo procesador de 16 bits procesador de 32 bits
float 32 bits 32 bits
double 64 bits 64 bits
Expresiones aritméticas Resultado
6/8 0
3.2/0.4 8.0
-11%3 3.84
(3+2)*(1+1) 10
(i*3)+(i*2) 10
Expresiones relacionales Resultado
(i<2) FALSO
(i<=2) VERDADERO
(i*3)>=(1+2)*i VERDADERO
(2+i)!=(1+i) FALSO
Expresiones lógicas Resultado
(i<2) or (i<10) VERDADERO
(7>=6) and (3= =3) VERDADERO
Not (i<1) FALSO
((i<1) or (i*2>1)) and (i>1) VERDADERO
Expresiones aritméticas Resultado
6/8 0
3.2/0.4 8.0
-11%3 3.84
(3+2)*(1+1) 10
(i*3)+(i*2) 10
Expresiones relacionales Resultado
(i<2) FALSO
(i<=2) VERDADERO
(i*3)>=(1+2)*i VERDADERO
(2+i)!=(1+i) FALSO
Expresiones lógicas Resultado
(i<2) or (i<10) VERDADERO
(7>=6) and (3= =3) VERDADERO
Not (i<1) FALSO
((i<1) or (i*2>1)) and (i>1) VERDADERO
CaracteresDefinición: El tipo de dato carácter es el conjunto finito
y ordenado de caracteres que el ordenador reconoce. Un dato de tipo carácter contiene un sólo carácter. Los caracteres que reconocen los diferentes ordenadores no son estándar; sin embargo, la mayoría reconoce los caracteres alfabéticos y numéricos siguientes:– caracteres alfabéticos: (a,b,…,z,A,B,C, …,Z),– caracteres numéricos: (1,2,…,9), y– caracteres especiales (+,-,*,/,.,<, …), entre los cuales se
encuentran los caracteres llamados no imprimibles como el retorno de carro, el final de cadena, etc
Declaración de variables de tipo carácter en C
La declaración variables de tipo carácter en C se expresa mediante la palabra reservada char:
char variable1, variable2, ...;
El número de bits de este tipo de dato es de 8 y no tiene modificadores tales como los utilizados en las variables numéricas.
Operadores: Aritméticos y de Comparación.Ejem: ‘A’ + 1 daría ‘B’ ‘A’ > ‘B’ daría ....
La instrucción de asignación
Sintaxis:
nombre_variable = expresion;
main() {
int A;A = 25;A = 134;A = 5;
}
vacío
vacío
vacío
A
Nombresde variable.
Contenido de lasvariables
La instrucción de asignación
Sintaxis:
nombre_variable = expresion;
main() {
int A;A = 25;A = 134;A = 5;
}
vacío
25
vacío
A
Nombresde variable.
Contenido de lasvariables
La instrucción de asignación
Sintáxis:
nombre_variable = expresion;
main() {
int A;A = 25;A = 134;A = 5;
}
vacío
134
vacío
A
Nombresde variable.
Contenido de lasvariables
La instrucción de asignación
Sintáxis:
nombre_variable = expresion;
main() {
int A;A = 25;A = 134;A = 5;
}
vacío
5
vacío
A
Nombresde variable.
Contenido de lasvariables
Constantes• Los programas de ordenador contienen ciertos valores
que no deben cambiar durante la ejecución del programa. Tales valores se llaman constantes.
• Constantes Numéricas (0..9) y Simbólicas.• La sintaxis de la definición de constantes simbólicas es
la siguiente:#define IDENTIFICADOR VALOR
Ejem: #define PI 3.1415927...int a,r;r=5;a=2*PI*5;
Constantes
• El lugar donde se coloca la definición de las constantes es al principio del programa fuera de la función main.
#define VERDADERO 1#define FALSO 0main() {
int TEST = VERDADERO;...
}
Expresiones Tema 4Las expresiones son combinaciones de constantes,
variables, símbolos de operación, paréntesis y nombres de funciones especiales. Las mismas ideas son utilizadas en notación matemática tradicional; por ejemplo:
es una expresión matemática que relaciona las variables
matemáticas a, b, c y la constante 3 mediante los operadores *, + y - empleando paréntesis donde corresponde hacerlo para asegurar que el orden de las operaciones es el correcto.
a b c 3
Tipos
• aritméticas: tanto el resultado como las variables de una expresión aritmética es de tipo numérico (int o float y sus derivados).
• relacionales: el resultado de una expresión relacional es de tipo int, pudiendo ser sus variables operandos de varios tipos.
• lógicas: el resultado de una expresión lógica es de tipo int.
Expresión Resultado Expresión Resultado
4 / 8 0 7 + 2.3 9.3
3.2 / 0.4 8.0 7 % 2 1
4.0 / 8.0 0.5 6.0 / 2.0 3.0
30 / 30 1 11 / -3 -3
-11 / 3 -3 11 % -3 2
-11 % 3 -2 4.5 - 0.66 3.84
Aritméticas
Expresión Resultado Expresión Resultado
4 / 8 0 7 + 2.3 9.3
3.2 / 0.4 8.0 7 % 2 1
4.0 / 8.0 0.5 6.0 / 2.0 3.0
30 / 30 1 11 / -3 -3
-11 / 3 -3 11 % -3 2
-11 % 3 -2 4.5 - 0.66 3.84
Reglas de prioridad o precedencia
• Las operaciones que están encerradas entre paréntesis se evalúan primero. Si existen diferentes paréntesis anidados (interiores unos a otros), las expresiones más internas se evalúan primero.
• Los operadores aritméticos dentro de una expresión en C cumplen el siguiente orden de precedencia.
1º /, *, %.
2º + , -.
• Dentro del mismo orden de precedencia se sigue la asociatividad de izquierda a derecha.
Operadores reducidos
La instruccióna = a + 2;
a += 2;La instrucción
a = a * b;a *= b;
La instrucción:a = a + 1; a += 1;a++;
“Este último operador reducido sólo puede utilizarse con variables de tipo entero”
Relacionales
Operador relacional
Significado
< menor que
<= menor o igual que
> mayor que
>= mayor o igual que
== igual que
!= distinto de
Ejemplos
Expresión Resultado Expresión Resultado
1 < 2 1 12.5 < 10 0
(1 + 2) >= 3 1 2 == 2 1
(2+3) > (1+5) 0 6.3 < 3 0
‘A’ < ‘B’ 1 ‘c’ != ‘C’ 1
3 != 3 0 5.5 > 5 1
Ejemplos
Expresión Resultado Expresión Resultado
1 < 2 1 12.5 < 10 0
(1 + 2) >= 3 1 2 == 2 1
(2+3) > (1+5) 0 6.3 < 3 0
‘A’ < ‘B’ 1 ‘c’ != ‘C’ 1
3 != 3 0 5.5 > 5 1
Lógicos
Operador Significado Operador en C
AND Y &&
OR O ||
NOT NO !
Tabla de Verdad
dato1 dato2 ! dato1 dato1 && dato2 dato1 || dato2
0 0 1 0 0
0 1 1 0 1
1 0 0 0 1
1 1 0 1 1
Tabla de Verdad
dato1 dato2 ! dato1 dato1 && dato2 dato1 || dato2
0 0 1 0 0
0 1 1 0 1
1 0 0 0 1
1 1 0 1 1
Tabla de Verdad
dato1 dato2 ! dato1 dato1 && dato2 dato1 || dato2
0 0 1 0 0
0 1 1 0 1
1 0 0 0 1
1 1 0 1 1
Tabla de Verdad
dato1 dato2 ! dato1 dato1 && dato2 dato1 || dato2
0 0 1 0 0
0 1 1 0 1
1 0 0 0 1
1 1 0 1 1
Ejemplos
Expresión Resultado Expresión Resultado
(7 >= 6) && (3 == 3) 1 (3 > 5) || (7<=10) 1
(6 >= 7) && (3 == 3) 0 (5 + 8) <= 10 0
(5.5 < 11) && (1 > 100) 0 !(7 > 5) 0
7 > 5 1 (!( 3 > 2)) || (5 > 8) 0
Ejemplos
Expresión Resultado Expresión Resultado
(7 >= 6) && (3 == 3) 1 (3 > 5) || (7<=10) 1
(6 >= 7) && (3 == 3) 0 (5 + 8) <= 10 0
(5.5 < 11) && (1 > 100) 0 !(7 > 5) 0
7 > 5 1 (!( 3 > 2)) || (5 > 8) 0
Ejemplos
Expresión Resultado Expresión Resultado
(7 >= 6) && (3 == 3) 1 (3 > 5) || (7<=10) 1
(6 >= 7) && (3 == 3) 0 (5 + 8) <= 10 0
(5.5 < 11) && (1 > 100) 0 !(7 > 5) 0
7 > 5 1 (!( 3 > 2)) || (5 > 8) 0