Você está na página 1de 45

Fundamentos de

Programación
Tema 2
Metodología de la Programación

Administración de Sistemas Informáticos 17/10/08 13:16


Tema 2
Metodología de la Programación
1. Objetos de un programa
2. Tipos de datos
3. Expresiones
4. Partes principales de un programa
5. Pseudocódigo
6. Estructura de un algoritmo expresado en
pseudocódigo/C
7. Identificadores estándar de tipos de datos
8. Clasificación de las instrucciones
9. Instrucciones primitivas
10. Instrucciones de control alternativas
11. Instrucciones de control repetitivas
12. Elementos auxiliares de un programa
Administración de Sistemas Informáticos 17/10/08 13:16
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)

Administración de Sistemas Informáticos 17/10/08 13:16


1. Objetos de un programa
 Constante.

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.

Administración de Sistemas Informáticos 17/10/08 13:16


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.

Administración de Sistemas Informáticos 17/10/08 13:16


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.

Administración de Sistemas Informáticos 17/10/08 13:16


// Programa: Circulo [PSEUDOCÓDIGO]
Entorno:
Constantes
PI = 3.141592
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
// Programa: Circulo [C]

#include <stdio.h>
int main(void)
{
float const PI=3.141592;
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();
}
Administración de Sistemas Informáticos 17/10/08 13:16
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.

Administración de Sistemas Informáticos 17/10/08 13:16


2. Tipos de datos.
T i p o s d e d a to s

S im p le s E s t r u c tu ra d o s

N u m é ri c o s N o n u m é ri c o s I n te rn o s E xte rn o s

E n te ro R eal C a rá c te r B o o le a n o E s tá ti c o s D in á m ic o s F i c h e ro s B a s e s d e d a to s

C a d e n a V e c to r M a tri z P o l i e d ro L i s ta s P ila s C o l a s Á rb o l e s
Administración de Sistemas Informáticos 17/10/08 13:16
2. Tipos de datos
 Tipos de datos simples. Ejemplos.
Entero (int) 3 -35000
Real (float o double) -1.5 2x10-4 (2E-4)
Carácter (char) ‘a’ ‘?’ ‘Y’ ‘8’
Lógico Falso o Verdadero (0/1)
Puntero Una dirección de memoria

Administración de Sistemas Informáticos 17/10/08 13:16


2. Tipos de datos
Rango. Tipos numéricos enteros Desde Hasta

Entero corto 1 byte sin signo (binario puro) 0 28 – 1 = 255


(char)
con signo (compl. a 2) -27 = -128 27 – 1 = 127

Entero 2 bytes sin signo (binario puro) 0 216 – 1 = 65535


(short int)
con signo (compl. a 2) -215 = -32768 215 – 1 = 32767

Entero largo 4 bytes sin signo (binario puro) 0 232 – 1 = 4*109


(int)
con signo (compl. a 2) -231 = -2147*106 231 –1 = 2147*106 –1

Administración de Sistemas Informáticos 17/10/08 13:16


2. Tipos de datos
Desde Hasta
Rango. Tipos
numéricos reales
Real simple precisión 32 bits 3.4E-38 3.4E+38
(float)

Real doble precisión 64 bits 1.7E-308 1.7E+308


(double)

Real doble precisión 80 bits 3.4E-4932 1.1E+4932


“largo” (long double)

Administración de Sistemas Informáticos 17/10/08 13:16


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:
... 0 1 ... 9 ... A B ... Z ... a b c ... z ... ñ Ñ ...
– Se representan, en un programa, encerrados entre
apóstrofes. (ej. ‘H’)
– Unidos forman cadenas de caracteres.
Administración de Sistemas Informáticos 17/10/08 13:16
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 (0000 0000) para el
valor FALSO, y cualquier otro valor
(por ejemplo, 0000 0001) para el valor
CIERTO.
Administración de Sistemas Informáticos 17/10/08 13: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.

Administración de Sistemas Informáticos 17/10/08 13:16


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.
Administración de Sistemas Informáticos 17/10/08 13:16
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.

Administración de Sistemas Informáticos 17/10/08 13:16


3. Expresiones
Operadores (C)

Aritméticos Relacionales Lógicos Alfanuméricos

+  <  ! (not)  + (en


-  >  && (and) algunos
lenguaj
*
 <=  || (or)
es
 >= como
/
 == Java o
% Pascal)
 !=

Administración de Sistemas Informáticos 17/10/08 13:16


3. Expresiones
Orden de prioridad de operadores (en la mayoría de
lenguajes de programación)
1. Paréntesis (comenzando por los más internos).
2. Signo.
3. Potencias (si existe este operador).
4. Productos y divisiones.
5. Sumas y restas.
6. Concatenación (de cadenas, si existe).
7. Relacionales.
8. Negación (NOT).
9. Conjunción (AND).
10. Disyunción (OR).
Administración de Sistemas Informáticos 17/10/08 13:16
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.

Administración de Sistemas Informáticos 17/10/08 13:16


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.

Administración de Sistemas Informáticos 17/10/08 13:16


5. Pseudocódigo
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.

Administración de Sistemas Informáticos 17/10/08 13:16


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

Administración de Sistemas Informáticos 17/10/08 13:16


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
Administración de Sistemas Informáticos 17/10/08 13:16
Reglas para la construcción de identificadores

1. Deben comenzar por un carácter de subrayado o por un


carácter alfabético en mayúscula o en minúscula.
2. Resto de caracteres: letras, números o símbolos de
subrayado.
3. Longitud variable dependiente del lenguaje
4. En C, las mayúsculas y las minúsculas tienen un
tratamiento diferente.
5. No puede coincidir con una palabra reservada.
6. No debe tener el mismo nombre que una función.

Administración de Sistemas Informáticos 17/10/08 13:16


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
Administración de Sistemas Informáticos 17/10/08 13:16
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();
}
Administración de Sistemas Informáticos 17/10/08 13:16
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

Administración de Sistemas Informáticos 17/10/08 13:16


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

Administración de Sistemas Informáticos 17/10/08 13:16


9. Instruccione s primitivas
Asignación Lectura Escritura

scanf
printf(<lista de expresiones-
<vble> = <expresion>; (“especificador_tipo
con_especificadores_de_tipo>);
”,&<vble>);

Administración de Sistemas Informáticos 17/10/08 13:16


9. Instrucciones primitivas
Asignación Suponiendo la declaración int a,b;
Valor de a

sin 25
14
valor a=14;
b=3;
Valor de b
a=b*8+1;
sin valor
23
b--;
Administración de Sistemas Informáticos 17/10/08 13:16
9. Instrucciones primitivas
Lectura / Escritura
a
47
9 25
47 scanf(“%d”,&a);
Dispositivo E scanf(“%d”,&b);
1 b
printf(“%d”,b%2);
47;9 Bye 92 printf(“%d;%d%s”,a,b,“Bye”);

Dispositivo S
Administración de Sistemas Informáticos 17/10/08 13:16
10. Instrucciones alternativas
Alternativa Simple

V
<expresión lógica>

<lista de instrucciones>

Administración de Sistemas Informáticos 17/10/08 13:16


10. Instrucciones alternativas
Alternativa simple (if ...)
a
1
if (b == 9 && a < 0)
47
b += 10;

b
if (a > b)
9
printf (“1”);

Administración de Sistemas Informáticos 17/10/08 13:16


10. Instrucciones alternativas
Alternativa Doble

F V
<expresión lógica>

<lista de instrucciones 2> <lista de instrucciones 1>

Administración de Sistemas Informáticos 17/10/08 13:16


10. Instrucciones alternativas
Alternativa doble (if... else ...)
a
2 if (a – 40 == 7)
47
{
b += 10;
b
printf(“2”);
19
9 }
else
printf(“1”);
Administración de Sistemas Informáticos 17/10/08 13:16
10. Instrucciones alternativas
Alternativa múltiple (switch ...)
switch (a)
a
1 {
47
case 1: b++; break;
case 20:
b case 40: b--; break;
19
29 default:
b += 10;
printf(“1”)
Administración de Sistemas Informáticos 17/10/08 13:16
}
11. Instrucciones repetitivas
Testeo antes de la iteración (while)

<cuerpo del bucle>

<expresión lógica>
V

Administración de Sistemas Informáticos 17/10/08 13:16


11. Instrucciones repetitivas
Repetitiva while

36
-2
0
a
scanf(“%d”,&a);
47
36
-2
0
while (a != 0)
{
-72 printf(“%d”,a*(-2));
4 scanf(“%d”,&a);

Administración de Sistemas Informáticos 17/10/08 13:16


11. Instrucciones repetitivas
Testeo después de la iteración (do … while)

<cuerpo del bucle>

V
<expresión lógica>

Administración de Sistemas Informáticos 17/10/08 13:16


11. Instrucciones repetitivas
Repetitiva do … while

36
-2
0
a
do
47
36
-2
0
{
scanf(“%d”,&a);
-72 printf(“%d”,a*(-2));
4 }

0 while (a!=0);

Administración de Sistemas Informáticos 17/10/08 13:16


11. Instrucciones repetitivas
Repetitiva Para
a
for (a=1;a<=3;a++)
47
123 printf(“%d”,a * 5);

5
10
15

Administración de Sistemas Informáticos 17/10/08 13:16


12. Elementos auxiliares
• Contador
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;

Administración de Sistemas Informáticos 17/10/08 13:16


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.
Administración de Sistemas Informáticos 17/10/08 13:16

Você também pode gostar