Términos algoritmo diseñar algoritmo implementar algoritmo sintaxis (palabras reservadas)...

Preview:

Citation preview

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