P. 1
Elementos básicos de la programación estructurada

Elementos básicos de la programación estructurada

|Views: 9.963|Likes:
Publicado por13SCORPIO87
Presentación hecha por el MCC Ochoa Somuano docente de la Universidad del Mar (UMAR).
Presentación hecha por el MCC Ochoa Somuano docente de la Universidad del Mar (UMAR).

More info:

Published by: 13SCORPIO87 on Sep 23, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPS, PDF, TXT or read online from Scribd
See more
See less

07/19/2013

pdf

text

original

PROGRAMACIÓN ESTRUCTURADA

Unidad I. Elementos básicos de la programación estructurada
M. en C. Jorge Ochoa Somuano

1.1. Lenguajes de programación: características básicas
 Los

lenguajes de programación se utilizan para escribir programas.
– – –

Lenguajes máquina Lenguajes de bajo nivel Lenguajes de alto nivel

2

M. en C. Jorge Ochoa Somuano

1.1. Lenguajes de programación: características básicas

 Cada

lenguaje de programación tiene un conjunto de instrucciones que la computadora podrá entender directamente en su código máquina o bien se traducirán a dicho código máquina.

3

M. en C. Jorge Ochoa Somuano

1.1. Lenguajes de programación: características básicas
 Las

instrucciones básicas y comunes en casi todos los lenguajes de programación son:
– – –

Instrucciones de entrada/salida Instrucciones de cálculo Instrucciones de control

4

M. en C. Jorge Ochoa Somuano

1.1. Lenguajes de programación: características básicas
 El

lenguaje C: Historia y características
La popularidad, eficacia y potencia de C, se ha producido porque este lenguaje no está prácticamente asociado a ningún sistema operativo, ni a ninguna máquina en especial. Esta es la razón fundamental, por la cual C, es conocido como el lenguaje de programación de sistemas por excelencia.
M. en C. Jorge Ochoa Somuano

5

1.1. Lenguajes de programación: características básicas
 El
– – – – –

lenguaje C: Historia y características
Nació en 1978 Es un lenguaje de alto nivel Es un lenguaje de programación estructurado de propósito general Potente y Flexible Diferentes tipos de compiladores (UNIX, Linux, MacOS, Solaris, etc.)
M. en C. Jorge Ochoa Somuano

6

1.1. Lenguajes de programación: características básicas
 Ventajas
– – –

de C

– –

Es poderoso y flexible Es utilizado por programadores profesionales Se puede utilizar para desarrollar sistemas operativos, compiladores, sistemas de tiempo real y aplicaciones de comunicaciones Portabilidad Velocidad de ejecución
M. en C. Jorge Ochoa Somuano

7

1.1. Lenguajes de programación: características básicas
 Características
– – – –

técnicas de C

Una nueva sintaxis para declarar funciones Asignación de estructuras y enumeraciones Preprocesador más sofisticado Una nueva definición de biblioteca
 Acceso

al SO  Asignación dinámica de memoria  Manejo de cadenas de caracteres

8

M. en C. Jorge Ochoa Somuano

1.2. Codificación de algoritmos y diseño de programación
 Una

vez que se han realizado el análisis y el diseño del algoritmo, se debe pasar a un lenguaje de programación para su ejecución en una computadora. único que se requiere es el conocimiento de algún lenguaje de programación para una traducción correcta.
M. en C. Jorge Ochoa Somuano

 Lo

9

1.2.1. Estilos de programación
 Un

buen estilo para programar deberá tener una estructura de código fácil de entender.
– – – – – –

Nombres significativos para variables, controles, y procedimientos. Identación (sangrías) y espacios apropiados en el código. Documentar el código (poner comentarios para aclarar). Módulos adaptables. Minimizar el acoplamiento Minimizar alcance de los datos hasta donde sea posible.
M. en C. Jorge Ochoa Somuano

10

1.2.2. Estructura general de un programa

Un programa en C se compone de una o más funciones. Una de las funciones debe ser obligatoriamente main. Una función en C en un grupo de instrucciones que realizan una o más acciones.

11

M. en C. Jorge Ochoa Somuano

1.2.2. Estructura general de un programa

 Así

mismo un programa contendrá una serie de directivas #include que permitirán incluir en el mismo archivos de cabecera que a su vez constarán de funciones y datos predefinidos en ellos.

12

M. en C. Jorge Ochoa Somuano

1.2.2. Estructura general de un programa
#include #define ----Directivas del procesador Macros del procesador

Declaraciones globales prototipos de funciones variables Función principal main main () {
declaraciones locales sentencias

} Definiciones de otras funciones tipo1 func1 (…) {

13

} M. en C. Jorge Ochoa Somuano

1.2.2. Estructura general de un programa
 De
– – – – –

un modo más explicito, un programa en C puede incluir:
Directivas de procesador Declaraciones globales La función main; int main (); Funciones definidas por el usuario Comentarios del programa

14

M. en C. Jorge Ochoa Somuano

1.2.2.1. Tipos de datos y operadores
C

no soporta un gran número de tipos de datos predefinidos, pero tiene la capacidad para crear sus propios tipos de datos.  Todos los tipos de datos simples o básicos de C son, esencialmente números.
– – –

Enteros Números de coma flotante (reales) Caracteres
M. en C. Jorge Ochoa Somuano

15

1.2.2.1. Tipos de datos y operadores
Tipo
char short int unsigned int long float double long double

Ejemplo Tamaño en bytes
‘C’ -15 1024 42325 262144 10.5 0.00045 1e-8 1 2 2 2 4 4 8 8

Rango Mín .. Máx
0 .. 255 -128 .. 127 -32768 .. 32767 0 .. 65535 -214748648 .. 2147483647 3.4*(10-38) .. 3.4*(1038) 1.7*(10-308) .. 1.7*(10308)
M. en C. Jorge Ochoa Somuano

16

igual que double

1.2.2.1. Tipos de datos y operadores
 Operador

de asignación

El operador = asigna el valor de la expresión derecha de la variable situada a su izquierda
 codigo

= 3467;  fahrenheit = 123.456  coordX = 25  coordY = 75

Permite realizar asignaciones múltiples:
a

= b = c = 45;
M. en C. Jorge Ochoa Somuano

17

1.2.2.1. Tipos de datos y operadores
 Operador

de asignación
Sent. Abrev.
a = b; a *= b; a /= b; a %= b; a += b; a -= b;

Proporciona cinco operadores adicionales

Símbolo
= *= /= %= *=

Sent. No abrev.
a = b; a = a * b; a = a / b; a = a % b; a = a + b; a C. Jorge Ochoa Somuano M. en = a - b;

18

-=

1.2.2.1. Tipos de datos y operadores
 Operadores

aritméticos

Sirven para realizar operaciones aritméticas básicas Siguen las reglas algebraicas típicas de jerarquía o prioridad Las expresiones interiores a paréntesis se evalúan primero
M. en C. Jorge Ochoa Somuano

19

1.2.2.1. Tipos de datos y operadores
 Operadores

aritméticos
Operación
+25, -6.75 5 * 5 es 25 25 / 5 es 5 25 % 6 es 1 2 + 3 es 5 2 – 3 es -1

Precedencia de operadores

Operador
+,*, /, %

Nivel de precedencia
1 2 3
M. en C. Jorge Ochoa Somuano

+, -

20

1.2.2.1. Tipos de datos y operadores
 Operadores

aritméticos - Asociatividad

La asociatividad determina el orden en que se agrupan los operadores de igual prioridad. (x – y) + z x = (y = z)

x – y + z se agrupa como
 Tiene

asiciatividad de izquierda a derecha

x = y = z se agrupa como
 Tiene

asociatividad de derecha a izquierda

21

M. en C. Jorge Ochoa Somuano

1.2.2.1. Tipos de datos y operadores
 Operadores

aritméticos – Uso de paréntesis

Se pueden utilizar para cambiar el orden usual de evaluación de una expresión determinada por su prioridad y asociatividad. En caso de existir se evalúan primero los paréntesis más internos. Ejemplo: (7 * (10 – 5) % 3) * 4 + 9
M. en C. Jorge Ochoa Somuano

22

1.2.2.1. Tipos de datos y operadores
 Operadores

de incremento y decremento

Incremento Decremento n++ n += 1 n=n+1 n-n -= 1 n=n-1

Suman o restan 1 a su argumento, respectivamente cada vez que se aplican a una variable.

23

M. en C. Jorge Ochoa Somuano

1.2.2.1. Tipos de datos y operadores
 Operadores

de incremento y decremento

Estos operadores tienen la propiedad de que pueden utilizarse como sufijo o prefijo El resultado de las expresiones puede ser distinto, dependiendo del contexto. m = n++; m = ++n;
M. en C. Jorge Ochoa Somuano

Ejemplo:

24

1.2.2.1. Tipos de datos y operadores
 Operadores

relacionales

C no tiene tipos de datos lógicos para representar los valores verdadero y falso. Se utiliza el tipo int para este propósito, con el valor entero 0 que representa falso y distinto de cero a verdadero.

25

M. en C. Jorge Ochoa Somuano

1.2.2.1. Tipos de datos y operadores
 Operadores

relacionales

Normalmente se utilizan en sentencias de selección o iteración.

Operador
== != > < >=

Significado
Igual a No igual a Mayor que Menor que Mayor o igual que Menor o igual que

Ejemplo
a == b a != b a>b a<b a >= b
M. en C. Jorge Ochoa Somuano

26

<=

a <= b

1.2.2.1. Tipos de datos y operadores
 Operadores
– – –

lógicos

Estos operadores se utilizan con expresiones para devolver un valor verdadero o un valor falso. Los operadores lógicos se denominan también operadores booleanos. Los operadores lógicos de C son:
!

(not)  && (and)  || (or)

27

M. en C. Jorge Ochoa Somuano

1.2.2.2. Constantes, variables y expresiones
 En

C existen cuatro tipos de constantes

Constantes literales Constantes definidas Constantes enumeradas Constantes declaradas
M. en C. Jorge Ochoa Somuano

28

1.2.2.2. Constantes, variables y expresiones
 Constantes

literales
enteras caracteres de coma flotante de cadena

Se clasifican en cuatro grupos
 Constantes  Constantes  Constantes  Constantes

29

M. en C. Jorge Ochoa Somuano

1.2.2.2. Constantes, variables y expresiones

Constantes literales - enteras

Requieren seguir unas determinadas reglas
  

No utilizar nunca comas ni otros signos de puntuación Para forzar un valor al tipo long terminar con una letra l o L

1024

1024L

Para forzar un valor al tipo unsigned, terminarlo con una letra mayúscula U

4253U 0777

 

Para representar un entero en octal, debe estar precedido de 0

Para representar un entero en hexadecimal, debe estar precedido de 0x

0xFF3A 3456UL M. en C. Jorge Ochoa Somuano

Se pueden combinar sufijos

30

1.2.2.2. Constantes, variables y expresiones
 Constantes

literales – reales

Siempre tienen signo y representan aproximaciones en lugar de valores exactos.
 82.345

.87

42e4

3E-5

La notación científica se representa con un exponente positivo o negativo
 2.5E4  5.435E-3

equivale a equivale a double

25000 0.005435 long double
M. en C. Jorge Ochoa Somuano

Existen tres tipos de constantes
 float

31

1.2.2.2. Constantes, variables y expresiones
 Constantes

literales – carácter

Una constante carácter es un carácter del código ASCII encerrado entre apostrofes.
 ‘a’

‘B’

‘c’

Se pueden también representar caracteres que no están en el teclado
 char

sigma = ‘\xE4’;

32

M. en C. Jorge Ochoa Somuano

1.2.2.2. Constantes, variables y expresiones
 Constantes

literales – cadena

– –

Una constante cadena también llamada literal cadena, es una secuencia de caracteres encerrados entre dobles comillas. En memoria, las cadenas se representan por un a serie de caracteres ASCII más un 0 o un nulo. Para representar valores nulos, C define el símbolo NULL como una constante.

33

M. en C. Jorge Ochoa Somuano

1.2.2.2. Constantes, variables y expresiones
 Constantes

definidas (simbólicas)

Las constantes pueden recibir nombres simbólicos mediante la directiva #define
 #define  #define  #define

NUEVALINEA \n PI 3.1416 VALOR 54

Las líneas anteriores no son sentencias.
M. en C. Jorge Ochoa Somuano

34

1.2.2.2. Constantes, variables y expresiones
 Constantes

 enum  enum

enumeradas

Permiten crear listas de elementos afines
Colores {Rojo, Naranja, Amarillo, Verde, Azul}; Boolean { False, True };

Después de declarar un tipo de dato enumerado, se pueden declarar variables de ese tipo.
 enum

Boolean Interruptor = True;
M. en C. Jorge Ochoa Somuano

35

1.2.2.2. Constantes, variables y expresiones
 Constantes

declaradas

La palabra reservada const permite dar nombres a constantes y especifica que el valor de dicha variable no se puede modificar durante el programa. La palabra volatile actúa como const, pero su valor puede ser modificado no solo por el programa, sino también por el HW o SW del sistema.
M. en C. Jorge Ochoa Somuano

36

1.2.2.2. Constantes, variables y expresiones
 Diferencias

entre const y #define

Las definiciones const especifican tipos de datos, terminan con punto y coma y se inicializan como las variables. La directiva #define no especifica tipos de datos, no utiliza el operador de asignación y no termina con punto y coma.

37

M. en C. Jorge Ochoa Somuano

1.2.2.2. Constantes, variables y expresiones
 En

C una variable es una posición con nombre en memoria donde se almacena un valor de un cierto tipo de dato.  Toda variable utilizada en un programa debe ser declarada previamente.  La definición en C debe situarse al principio del bloque, antes de toda sentencia ejecutable.
38
M. en C. Jorge Ochoa Somuano

1.2.2.2. Constantes, variables y expresiones

Una declaración de una variable es una sentencia que proporciona información de la variable al compilador. Sintaxis: – tipo variable tipo es el nombre de un tipo de dato en C variable es un identificador válido en C Ejemplos:
– – –

Long dNumero Double HorasAcumuladas Float NotaMedia
M. en C. Jorge Ochoa Somuano

39

1.2.2.2. Constantes, variables y expresiones
 El

formato general de una declaración de inicialización es:
Tipo nombre_variable = expresión;

expresión es cualquier expresión válida cuyo valor es del mismo tipo que tipo char respuesta = ‘s’; int contador = 1; float peso = 86.3;
40
M. en C. Jorge Ochoa Somuano

1.2.2.2. Constantes, variables y expresiones
 Duración
– –

de una variable

El ámbito o alcance de una variable se extiende hasta los limites de la definición de su bloque. Los tipos básicos de variables en C son:
Variables locales Variables globales Variables dinámicas

41

M. en C. Jorge Ochoa Somuano

1.2.2.2. Constantes, variables y expresiones
 Variables

locales

Son aquellas definidas en el interior de una función y son visibles sólo en esa función específica. Las reglas son:
 No

pueden ser modif. por ninguna sentencia externa nombres no han de ser únicos

 Los  No  Se

existen en memoria hasta que se ejecuta la función liberan automáticamente cuando termina la función

42

M. en C. Jorge Ochoa Somuano

1.2.2.2. Constantes, variables y expresiones

Variables locales - Ejemplo
#include <stdio.h> main () { int a, b, c, suma, numero; /* variables locales */ printf (“Cuantos números a sumar:”); scanf (“%d”, &numero); … suma = a+b+c; … }

43

M. en C. Jorge Ochoa Somuano

1.2.2.2. Constantes, variables y expresiones
 Variables globales – Son aquellas que se declaran fuera de la función y por defecto son visibles a cualquier función, incluyendo main ().
#include <stdio.h> int a, b, c; /* declaración de variables globales */ main () { int valor; /* declaración de una variable local */ printf (“Tres valores: ”); scanf (“%d %d %d”, &a, &b, &c); valor = a+b+c; … }

44

M. en C. Jorge Ochoa Somuano

1.2.2.2. Constantes, variables y expresiones
 Variables

dinámicas

Al igual que una variable local, una variable dinámica se crea y libera durante la ejecución del programa. La diferencia entre una variable local y una dinámica es que la variable dinámica se crea tras su petición. Al igual que una variable global se pueden crear variables dinámicas que son accesibles desde múltiples funciones.
M. en C. Jorge Ochoa Somuano

45

1.2.2.3. Identificadores y palabras reservadas

Un identificador es una secuencia de caracteres, letras, dígitos y subrayados (_). El primer carácter debe ser una letra o _. Las letras mayúsculas y minúsculas son diferentes.
– – – – –

Nombre_clase Indice indice i a

46

M. en C. Jorge Ochoa Somuano

1.2.2.3. Identificadores y palabras reservadas
 Recomendaciones

al escribir identificadores:

Escribir identificadores de variables en letras minúsculas. Escribir constantes en mayúsculas. Escribir funciones con tipo de letra mixto
M. en C. Jorge Ochoa Somuano

47

1.2.2.3. Identificadores y palabras reservadas

Una palabra reservada (keyword) es una característica del lenguaje C asociada con algún significado especial. Una palabra reservada no puede utilizarse como nombre de identificador o función. void void () { … int char; … }

48

M. en C. Jorge Ochoa Somuano

1.2.2.3. Identificadores y palabras reservadas

Palabras reservadas en C
double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
M. en C. Jorge Ochoa Somuano

auto break case char const continue default do

49

1.2.2.4. Sintaxis del lenguaje de programación

Tokens

Identificadores, palabras reservadas, operadores y otros separadores.

literales,

 

Comentarios Signos de puntuación y separadores

!%^&*()-+={}~[]\;‘:<>?,./“

  

Archivos de cabecera Tipos de datos Entradas y salidas
M. en C. Jorge Ochoa Somuano

50

1.2.2.4. Sintaxis del lenguaje de programación
 Salida

La función printf () visualiza en la pantalla datos del programa.

suma = 0; suma = suma + 10; printf (“%s %d”, “Suma= “, suma);

51

M. en C. Jorge Ochoa Somuano

1.2.2.4. Sintaxis del lenguaje de programación
 La

forma general qque tiene la función printf () es:
printf (cadena_de_control, dato1, dato2, …);
cadena_de_control dato1, dato2, … contiene los tipos de los datos y forma de mostrarlos variables, constantes, datos de salida

52

M. en C. Jorge Ochoa Somuano

1.2.2.4. Sintaxis del lenguaje de programación
 Suponiendo

que:
n = 40.791512

i = 11; j = 12; c = ‘A’;

printf (“%x %3d %c %.3f”, i, j, c, n); Visualizaría en pantalla: B 12 A

40.792
M. en C. Jorge Ochoa Somuano

53

1.2.2.4. Sintaxis del lenguaje de programación
 Los
         

códigos de formato más utilizados

%d %o %x %u %c %e %f %g %s %lf

El dato se convierte a entero decimal. El dato entero se convierte a octal. El dato entero se convierte a hexadecimal. El dato entero se convierte a entero sin signo. El dato se considera de tipo carácter. El dato se considera de tipo float. Se convierte a notación científica. El dato se considera de tipo float. Se convierte a notación decimal. El dato se considera de tipo float. Se conv. según el código %e o %f. El dato ha de ser una cadena de caracteres. el dato se considera de tipo double.
M. en C. Jorge Ochoa Somuano

54

1.2.2.4. Sintaxis del lenguaje de programación

            

Caracteres de secuencias de escape
\a \b \f \n \r \t \v \\ \? \” \000 \xhh \0 alarma Retroceso de espacio Avance de página Retorno de carro y avance de línea Retorno de carro Tabulación Tabulación vertical Barra invertida Signo de interrogación Comillas dobles Número octal Número hexadecimal Cero o nulo
M. en C. Jorge Ochoa Somuano

55

1.2.2.4. Sintaxis del lenguaje de programación
 Ejemplos

printf (“\n”); printf (“\n Tabla de números \n”); printf (“\nNum1 \t Num2 \t Num3 \n”); printf (“%c”, ‘\a’);

56

M. en C. Jorge Ochoa Somuano

1.2.2.4. Sintaxis del lenguaje de programación

Funcionamiento de las secuencias de escape.
#include <stdio.h> main () { char sonidos = ‘\a’; char bs = ‘\b’; printf (“%c%c”, sonidos, sonidos); printf (“ZZ”); printf (“%c%c”, bs, bs); getch (); }

57

M. en C. Jorge Ochoa Somuano

1.2.2.4. Sintaxis del lenguaje de programación
 Entrada
– –

La función scanf () acepta información del teclado. La forma general que tiene la función scanf () es:
scanf (cadena_de_control, var1, var2, var3, …);
cadena_de_control contiene los tipos de los datos y si se desea su anchura var1, var2, var3, … variables del tipo de los códigos de control.

Los argumentos var1, var2, … necesitan el operador de dirección &.

58

M. en C. Jorge Ochoa Somuano

1.2.2.4. Sintaxis del lenguaje de programación
 Ejemplos

printf (“Introduzca v1 y v2: “); scanf (“%d %f”, &v1, &v2); /*lectura de valores*/ printf (“Precio de venta al público”); scanf (“%f”, &precio_venta); printf (“Base y altura: ”); scanf (“%f %f”, &b, &h);

59

M. en C. Jorge Ochoa Somuano

1.2.2.4. Sintaxis del lenguaje de programación

Funcionamiento
#include <stdio.h> main () { char primero, ultimo; printf (“Introduzca su primera y última inicial: ”); scanf (“%c %c”, &primero, &ultimo); printf (“Hola, %c. %c. \n”, primero, ultimo); getch (); }

60

M. en C. Jorge Ochoa Somuano

1.2.2.4. Sintaxis del lenguaje de programación
 Salida

de cadena de caracteres

La función puts () escribe una cadena de caracteres en la salida estándar y añade el fin de línea. Sólo tiene un argumento. Ejemplo: puts (nombre); printf (“%s\n”, nombre);

61

M. en C. Jorge Ochoa Somuano

1.2.2.4. Sintaxis del lenguaje de programación
 Entrada

de cadena de caracteres

La función gets () capta una cadena de caracteres del dispositivo estándar de entrada. Termina la entrada con un retorno de carro. Ejemplo: gets (nombre); scanf (“%s”, &nombre);

62

M. en C. Jorge Ochoa Somuano

Temas vistos sin diapositivas
1.3 Captura de programas
1.3.1. Entorno de edición

1.4 Compilación y ejecución
1.4.1. Corrección de errores 1.4.2. Depuración y puesta a punto del programa

63

M. en C. Jorge Ochoa Somuano

1.5. Documentación de programas
 Interna

Se incluye dentro del código del programa fuente mediante comentarios que ayudan a la comprensión del código. Se recomienda que se incluya el mayor número de comentarios posibles, pero, que sean significativos.

64

M. en C. Jorge Ochoa Somuano

1.5. Documentación de programas
 Comentarios

Los comentarios se encierran entre /* y */ /* Titulo: Ejemplo de un comentario */ /* Este es un ejemplo con varias líneas de texto para el comentario */

65

M. en C. Jorge Ochoa Somuano

1.5. Documentación de programas
 Encabezado

para sus programas

/*-------------------------------------------Archivo: Nombre: Fecha: Descripción: ----------------------------------------------*/

66

M. en C. Jorge Ochoa Somuano

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->