La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Fundamentos de Programación

Presentaciones similares


Presentación del tema: "Fundamentos de Programación"— Transcripción de la presentación:

1 Fundamentos de Programación
Metodología de la Programación 09/11/2018 5:22

2 Tema 2 Metodología de la Programación
Objetos de un programa Tipos de datos Expresiones Partes principales de un programa Pseudocódigo Estructura de un algoritmo expresado en pseudocódigo/C Identificadores estándar de tipos de datos Clasificación de las instrucciones Instrucciones primitivas Instrucciones de control alternativas Instrucciones de control repetitivas Elementos auxiliares de un programa 09/11/2018 5:22

3 1. Objetos de un programa Un objeto es
Cualquier dato o código que ocupa memoria direccionable. Se caracteriza por Nombre. Palabra creada por el programador (ej. edad_1) Tipo. Valores que puede tomar, operaciones que se permiten realizar y ocupación de memoria (ej. numérico entero) Valor. Elemento que se le asigna (ej. 21) 09/11/2018 5:22

4 1. Objetos de un programa Constante. Variable.
Objeto cuyo valor permanece invariable a lo largo de la ejecución de un programa. Variable. Objeto cuyo valor puede ser modificado a lo largo de la ejecución de un programa. 09/11/2018 5:22

5 1. Objetos de un programa Variables.
El concepto de variable es una abstracción del concepto de celda de memoria. Sus atributos son: Nombre o identificador Hace referencia al área de memoria ligada a la variable. Los caracteres permitidos para la construcción de este nombre dependen del lenguaje de programación usado. Tipo Conjunto de valores que puede tomar, así como las operaciones permitidas. Ámbito Conjunto de instrucciones en el que aparece la variable. Tiempo de vida Intervalo en el que el área de memoria está ligado a la variable. Valor Información almacenada en el área de memoria ligada a la variable. 09/11/2018 5:22

6 1. Objetos de un programa Ejemplo.
El siguiente algoritmo calcula el área de un círculo (en metros cuadrados) y la longitud de la circunferencia (en metros) conociendo el radio expresado en milímetros. 09/11/2018 5:22

7 // Programa: Circulo [PSEUDOCÓDIGO]
Entorno: Constantes PI = Variables radio: real longitud, area : real Algoritmo: Escribir(“Introducir radio (en milímetros): “) Leer (radio) radio  radio / 1000 longitud  2 * PI * radio area  PI * radio * radio Escribir(“Área(metros cuadrados): “,area) Escribir(“Longitud(metros): “, longitud) FinAlgoritmo

8 // Programa: Circulo [C] #include <stdio.h> int main(void) {
float const PI= ; float radio, longitud, area; // ***************************************************** printf(“Introducir radio (en milímetros): “); scanf(“%f”,&radio); radio /= 1000; longitud = 2 * PI * radio; area = PI * radio * radio; printf(“Área(metros cuadrados): %f“,area); printf(“Longitud(metros): %.2f“, longitud); getchar(); } 09/11/2018 5:22

9 2. Tipos de datos. El tipo de un objeto especifica la clase de valores o caracteres que pueden asignarse al objeto. El rango de un tipo de datos numérico es el conjunto formado por todas sus cantidades representables, y viene determinado por el formato de representación en memoria. 09/11/2018 5:22

10 2. Tipos de datos. 09/11/2018 5:22

11 2. Tipos de datos Tipos de datos simples. Ejemplos.
Entero (int) Real (float o double) x10-4 (2E-4) Carácter (char) ‘a’ ‘?’ ‘Y’ ‘8’ Lógico Falso o Verdadero (0/1) Puntero Una dirección de memoria 09/11/2018 5:22

12 2. Tipos de datos Rango. Tipos numéricos enteros Desde Hasta
Desde Hasta Entero corto (char) 1 byte sin signo (binario puro) 28 – 1 = 255 con signo (compl. a 2) -27 = -128 27 – 1 = 127 Entero (short int) 2 bytes 216 – 1 = 65535 -215 = 215 – 1 = 32767 Entero largo (int) 4 bytes 232 – 1 = 4*109 -231 = -2147*106 231 –1 = 2147*106 –1 Rango. Tipos numéricos enteros 09/11/2018 5:22

13 Real doble precisión “largo” (long double)
2. Tipos de datos Desde Hasta Real simple precisión (float) 32 bits 3.4E-38 3.4E+38 Real doble precisión (double) 64 bits 1.7E-308 1.7E+308 Real doble precisión “largo” (long double) 80 bits 3.4E-4932 1.1E+4932 Rango. Tipos numéricos reales 09/11/2018 5:22

14 2. Tipos de datos Alfanuméricos.
El conjunto de caracteres representado depende del código que utilice la computadora, generalmente el ASCII (código estándar americano para intercambio de información) de 8 bits, por lo que se almacenan en un byte u octeto. Siguen un orden: A B Z a b c z ñ Ñ ... Se representan, en un programa, encerrados entre apóstrofes. (ej. ‘H’) Unidos forman cadenas de caracteres. 09/11/2018 5:22

15 2. Tipos de datos Lógicos. Es un tipo de datos que sólo puede tener dos valores o estados: verdadero o falso. Se almacena en memoria mediante un octeto de ceros ( ) para el valor FALSO, y cualquier otro valor (por ejemplo, ) para el valor CIERTO. 09/11/2018 5:22

16 2. Tipos de datos Punteros.
Es un tipo de datos que sólo puede almacenar la dirección de memoria de otro objeto. En C es imprescindible su uso para el paso por referencia a funciones. 09/11/2018 5:22

17 3. Expresiones Una expresión es la representación de un cálculo necesario para la obtención de un resultado, es decir, devuelve un valor como resultado de evaluarse. Una expresión consta de operadores (símbolos que denotan las operaciones) y operandos (objetos sobre los que actúan los operadores) y toma un valor que será el resultado de la ejecución de las operaciones indicadas. 09/11/2018 5:22

18 3. Expresiones Tipos de expresiones:
Aritméticas Si el resultado es de tipo numérico. Lógicas o booleanas Si el resultado es de tipo lógico (Verdadero o Falso). Carácter o alfanuméricas Si el resultado es de tipo carácter. 09/11/2018 5:22

19 3. Expresiones + - * / % Operadores (C) < > <= >= == ! =
Aritméticos Relacionales Lógicos Alfanuméricos + - * / % < > <= >= == ! = ! (not) && (and) || (or) + (en algunos lenguajes como Java o Pascal) 09/11/2018 5:22

20 3. Expresiones Orden de prioridad de operadores (en la mayoría de lenguajes de programación) Paréntesis (comenzando por los más internos). Signo. Potencias (si existe este operador). Productos y divisiones. Sumas y restas. Concatenación (de cadenas, si existe). Relacionales. Negación (NOT). Conjunción (AND). Disyunción (OR). 09/11/2018 5:22

21 4. Partes principales de un programa
Un programa puede considerarse como una secuencia lógica de acciones (instrucciones) que manipulan un conjunto de objetos (datos) para obtener unos resultados. Bloque de declaraciones (Entorno del programa) Identificación y características de los objetos del programa (constantes, variables, tablas, registros, ...) necesarios para almacenar información. Bloque de instrucciones (Especificación del algoritmo) Conjunto de operaciones que se han de realizar para la obtención de los resultados deseados. Estas operaciones (instrucciones) se ejecutarán, desde la primera a la última, de una en una, salvo que determinadas instrucciones de control indiquen lo contrario. 09/11/2018 5:22

22 5. Pseudocódigo Lenguaje de especificación de algoritmos.
Lenguaje intermedio entre el lenguaje natural y el lenguaje de programación de alto nivel. Permite el diseño del programa sin depender de ningún lenguaje de programación. 09/11/2018 5:22

23 5. Pseudocódigo Instrucciones de entrada/salida.
Todo pseudocódigo debe posibilitar: Descripción de tipos de datos, constantes, variables, expresiones, archivos y otros objetos. Instrucciones de entrada/salida. Instrucciones de proceso. Sentencias de control del flujo de ejecución. Acciones compuestas. 09/11/2018 5:22

24 6. Estructura de un algoritmo representado en pseudocódigo
En líneas generales ... Programa <nombre del programa> Entorno <descripción de los objetos> Algoritmo <lista de instrucciones> FinAlgoritmo 09/11/2018 5:22

25 De forma detallada ... Programa <nombre del programa> Entorno
Constantes <identificador de constante> = <valor> ... Tipos <tipo definido por el usuario> = <tipo (simple | estructurado | de usuario)> Variables <identificador de variable> : <tipo (simple | estructurado | definido por el usuario)> Algoritmo <instrucción 1> <instrucción 2> ... FinAlgoritmo 09/11/2018 5:22

26 Reglas para la construcción de identificadores
Deben comenzar por un carácter de subrayado o por un carácter alfabético en mayúscula o en minúscula. Resto de caracteres: letras, números o símbolos de subrayado. Longitud variable dependiente del lenguaje   En C, las mayúsculas y las minúsculas tienen un tratamiento diferente. No puede coincidir con una palabra reservada. No debe tener el mismo nombre que una función. 09/11/2018 5:22

27 Ejemplo [PSEUDOCÓDIGO]
Programa MiPrimerPrograma Entorno /*Bloque de declaraciones*/ Constantes IVA = 0.16 Variables base_imponible : entero total_factura : real Algoritmo /*Bloque de instrucciones*/ Escribir (“Introduzca la base imponible: “) Leer (base_imponible) total_factura  base_imponible + base_imponible * IVA Escribir (“TOTAL FACTURA: “, total_factura) FinAlgoritmo 09/11/2018 5:22

28 Ejemplo [C] #include <stdio.h> #define IVA 0.16 int main(void) {
/*Bloque de declaraciones*/ int base_imponible; float total_factura;; /*Bloque de instrucciones*/ printf(“Introduzca la base imponible: “); scanf(“%d”,&base_imponible); total_factura = base_imponible + base_imponible * IVA; printf (“TOTAL FACTURA: %f“, total_factura); getchar(); } 09/11/2018 5:22

29 7. Identificadores estándar de tipos de datos
Tipos de Datos Simples Identificador de Tipo ( C ) numérico entero int, short int, long int, char numérico real float, double, long double lógico no existe en C, sí en C++ (bool) un sólo carácter char 09/11/2018 5:22

30 8. Clasificación de las instrucciones
Instrucciones primitivas. Se ejecutan de forma inmediata De asignación De entrada De salida Instrucciones de control. Controlan el orden de ejecución de otras instrucciones Alternativas Repetitivas 09/11/2018 5:22

31 9. Instruccione s primitivas
Asignación Lectura Escritura scanf (“especificador_tipo”,&<vble>); printf(<lista de expresiones-con_especificadores_de_tipo>); <vble> = <expresion>; 09/11/2018 5:22

32 9. Instrucciones primitivas
Asignación Suponiendo la declaración int a,b; Valor de a a=14; 25 14 sin valor b=3; Valor de b a=b*8+1; 2 3 sin valor b--; 09/11/2018 5:22

33 9. Instrucciones primitivas
Lectura / Escritura a 47 9 47 25 scanf(“%d”,&a); Dispositivo E scanf(“%d”,&b); b 1 47;9 Bye 1 printf(“%d”,b%2); 2 9 printf(“%d;%d%s”,a,b,“Bye”); Dispositivo S 09/11/2018 5:22

34 10. Instrucciones alternativas
Alternativa Simple <expresión lógica> V <lista de instrucciones> 09/11/2018 5:22

35 10. Instrucciones alternativas
Alternativa simple (if ...) a 47 b 9 1 if (b == 9 && a < 0) b += 10; if (a > b) printf (“1”); 09/11/2018 5:22

36 10. Instrucciones alternativas
Alternativa Doble F <expresión lógica> V <lista de instrucciones 1> <lista de instrucciones 2> 09/11/2018 5:22

37 10. Instrucciones alternativas
Alternativa doble (if... else ...) a 47 b 9 2 if (a – 40 == 7) { b += 10; printf(“2”); } else printf(“1”); 19 09/11/2018 5:22

38 10. Instrucciones alternativas
Alternativa múltiple (switch ...) a switch (a) { case 1: b++; break; case 20: case 40: b--; break; default: b += 10; printf(“1”) } 1 47 b 29 19 09/11/2018 5:22

39 11. Instrucciones repetitivas
Testeo antes de la iteración (while) <cuerpo del bucle> <expresión lógica> V 09/11/2018 5:22

40 11. Instrucciones repetitivas
Repetitiva while a -2 36 scanf(“%d”,&a); while (a != 0) { printf(“%d”,a*(-2)); } -2 36 47 -72 -72 4 09/11/2018 5:22

41 11. Instrucciones repetitivas
Testeo después de la iteración (do … while) <cuerpo del bucle> V <expresión lógica> 09/11/2018 5:22

42 11. Instrucciones repetitivas
Repetitiva do … while a 36 -2 do { scanf(“%d”,&a); printf(“%d”,a*(-2)); } while (a!=0); 36 47 -2 -72 4 -72 4 -72 09/11/2018 5:22

43 11. Instrucciones repetitivas
Repetitiva Para a for (a=1;a<=3;a++) printf(“%d”,a * 5); 1 2 3 47 5 10 15 5 5 10 09/11/2018 5:22

44 12. Elementos auxiliares Contador Acumulador Interruptor
a = 0; // Inicialización a = a + 1; // Incremento (a++; ++a;) Acumulador a = 0; // Inicialización acum. sumas a = a + valor; // Acumulación suma (a+=valor) a = 1; // Inicialización acum. producto a = a * valor; // Acumulación producto (a*=valor) Interruptor b = 1; // O cualquier valor distinto de 0 if (a > 0) b = 0; // O tb. b = !b; 09/11/2018 5:22

45 12. Elementos auxiliares Sangría
if (a > 0) b = 1; else { b = 2; c = 9; } Comentarios /* Esto es un comentario */ Acciones compuestas Una acción compuesta es aquella que ha de ser realizada dentro del algoritmo, pero que aún no está resuelta en términos de acciones simples y sentencias de control. 09/11/2018 5:22


Descargar ppt "Fundamentos de Programación"

Presentaciones similares


Anuncios Google