Programación estructurada

Informática. Algoritmos. Lenguajes de programación. Códigos. Variables. Datos. Operadores. Conceptos básicos

  • Enviado por: Cristian
  • Idioma: castellano
  • País: México México
  • 29 páginas
publicidad
publicidad

PROGRAMACIÓN ESTRUCTURADA

Tema 0: NOCIONES DE ALGORITMOS

1.- ¿QUIEN TRADUJO LA OBRA DE MOHAMED Y CON QUE PALABRAS LA INICIO?

R. La tradujo Fibonacci y la inicio con las palabras “algoritmi-dici”.

2.- ¿QUE SE REALIZA POR MEDIO DEL LENGUAJE ALGORITMICO?

R. Se realiza un análisis previo del problema a resolver y encontrar un método que pueda resolverlo.

3.- ¿EN QUE SON DIFERENTES LOS LENGUAJES DE ALTO Y BAJO NIVEL?

R. En que el lenguaje de alto nivel es mas cercano a la comprensión humana y el de bajo nivel es mas comprensible por la maquina.

4.- ¿QUE PRETENDE UN ALGORITMO?

R. Pretende sintetizar de alguna forma una tarea, calculo o mecanismo antes de ser transcrito al ordenador.

5.- ¿PORQUE EL LENGUAJE `C' ES TAN POTENTE Y RAPIDO?

R. Porque las funciones principales representan las funciones mas básicas del ordenador.

6.- ¿QUE ES UN ORGANIGRAMA O DIAGRAMA DE FLUJO?

R. Es una representación grafica del algoritmo en cuestión.

7.- ¿A QUE SE LE DENOMINA TRAZA DE UN ALGORITMO?

R. A ejecución manual de un programa obteniendo para cada paso un resultado.

8.- DEFINIR `LA TRAZA DE UN ALGORITMO.

R. Ejecución manual de forma secuencial de las sentencias que lo componen.

Tema 1: COMPOSICION DE ALGORITMOS.

1.- ¿PORQUE LA NOEXISTENCIA DE UA PARTE PROVOCARIA UNA CONFUSION EN LOS ALGORITMOS?

R Porque las diferentes partes van relacionadas íntimamente las unas con las otras.

2.- ¿QUE SE DECLARA EN LA SECCION DE DATOS?

R. Se declara cuales son las variables con las que se va a trabajar y cuales son sus tipos.

3.- ¿QUE DEFINE EL TIPO DE UNA VARIABLE?

R. Define el contenido de esta, es decir, indica cual va a ser el propósito de la variable.

4.- ¿CUAES SON LOS TIPOS DE DATOS ESTANDAR?

-Enteras (contenido numero entero).

-Reales (contenido número real).

-Carácter (contenido carácter alfanumérico).

-Cadena (contenido conjunto de caracteres).

-Lógicas (su valor indica un hecho cierto o falso).

5.- ¿CUALES SON LOS OTROS TIPOS DE VARIABLES QUE EXISTEN?

R. byte, word, dbyte, dword, etc. y son variables mas encaminados a la programación profesional.

6.- ¿PORQUE SE CARACTERIZAN LAS VARIABLES?

R. Porque posee una jerarquía que viene definida por el numero de bytes que se asignan para cada uno.

7.- ¿CUAL ES LA PRINCIPAL DIFERENCIA ENTRE VARIABLES Y CONSTANTES?

R. Las primeras pueden variar a lo largo de la ejecución del programa, mientras que las segundas permanecen constantes siempre.

8.- ¿EN QUE LUGAR SE DECLARAN LAS CONSTANTES?

R. Después de la cabecera y antes de las variables.

Tema 2: SECCION DEL CODIGO.

1.-QUE SE PUEDE ENCONTRAR EN LA SECCION DEL CODIGO?

R. Se encuentran los procedimientos, las funciones y el cuerpo del programa.

2.- ¿QUE SE PUEDE CONTROLAR DESDE EL BLOQUE DEL PROGRAMA?

R. Se controlan las entradas a los procedimientos y funciones principales.

3.- ¿CCUAL ES LA SECCION QUE SE CONSIDERA EL CORAZON DEL ALGORITMO?

R. Seccion del codigo.

4.- ¿COMO ES EL BLOQUE DEL PROGRAMA?

R. Es el centro neurológico del programa

5.- ¿QUE SON LOS PROCEDIMIENTOS Y LAS FUNCIONES?

R. Son los modulos en los que se puede descomponer un algoritmo.

6.- ¿CUALES SON LOS PARAMETROS ACTUALES?

R. Son os que se utilizan el programa padre para relacionarse con una subrutina en concreto.

7.- ¿CUALES SON LOS PARAMETROS FORMALES?

R. Son os que poseen el programa hijo y que lo relaciona con el padre.

8.- ¿DE QUE SE ENCARGAN LOS MODULOS?

R. Se encarga de realizar una operación independiente.

4.3.2 Diseño descendiente (*top-down)

Es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento (stepwise). La metodología descente consiste en efectuar una relación entre las sucesivas etapas de estructuración, de modo que se relacionen unas con otras mediante entradas y salidas de información. Es decir,, se descompone el problema en etapas o estructuras jerárquicas de modo que se puede considerar cada estructura desde 2 puntos de vista:

¿Lo que se hace?

¿Cómo la hace?

Estructura Secuencial

La estructura secuencial en aquella que en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso.

Ejemplo: Calculo de la suma y producto de 2 números.

1. Diagrama de flujo ó algoritmo

El nombre de una variable se puede combinar alfabética o numérica . dos variables deben tener un identificador distinto.

# include <stdio.h> Análisis del problema

main ( ) Entrada: leer A

{ leer B

int A, B, S, P; Proceso: S! A + B

printf (“Introducir el primer numero:”); P! A * B

scanf (“%d” &A); Salida: Escribir A y B

printf (“Introducir el segundo numero:”);

scanf (“%d” &B); Identificar las variables y constantes

a utilizar y de que tipo. int: A, B, S, P

S = A + B

P = A * B

printf ( “La suma es: ” &S);

prinf ( “El producto es:” &P);

getch ( )

}

Llevar el algoritmo (diagrama de flujo) al lenguaje “C” se nombra codificar.

Todo articulo que termine en “h” pertenece a una biblioteca.

2. Hacer un programa que calcule el área de un cuadrado.

Pseudocodigo

Análisis del problema

Entrada: Leer L

Leer L

Proceso: A!L*L

Salida: Escribir A

Identificar la variables; L, L, A,

DIAGRAMA DE FLUJO

# include <stdio.h>

main ( )

{

int L, L, A;

printf(“Introducir el primer numero”);

scanf(“%d” &L);

prinf(“Introducir el segundo numero”);

scanf(“%d” &L);

A=L*L;

printf(“La multiplicación es:”, A);

getch( );

}

3. Hacer un programa que calcule el área de un rectángulo.

Análisis del problema

Entrada: Leer b

Leer h

Proceso: A!b*h

Salida: Escribir A Pseudocodigo

Identificar variables: int A, b, h.

DIAGRAMA DE FLUJO

# include <stdio.h>

main ( )

{

int b, h, A

printf (“Introducir la medidad de la base: ”);

scanf (“%d”, &b);

printf (“Introducir la medida de la altura: “);

scanf (“%d”, &h);

A = b*h

printf (“El area es: ”, &A);

getch ( );

}

4. Hacer un programa que calcule el área del triangulo.

Pseudocodigo

Inicio

Leer b

Leer h

A! (b*h)/2

Escribir A

Fin-Inicio

Análisis del problema

Entrada: Leer b

Leer h

Proceso: A ! (b*h)/2

Salida: Escribir A

Tipo de variables: Int

Variables: B, h, A

# include <stdio.h>

main ( )

{

int b, h, A

printf (“introducir la medida de la base:”);

scanf (“%d”, &b);

printf (“introducir la altura del triangulo:”);

scanf (“%d”, &h);

A = (b*h)/2

printf (“el area es:”,&A);

getch ( );

}

5. Hacer un programa que calcule el área de un trapecio.

Pseudocodigo

Inicio

Leer BN

Leer BY

Leer h

A ! ((BN+BY)*h)/2

Escribir A

Fin-Inicio

Análisis del problema

Entrada: Leer BN

Leer BY

Leer h

Proceso: A ! ((BN+BY)*h)/2

Salida: Escribir A

Tipo de variables:Float

Variables:BN, BY, h, A

# include <stdio.h>

main ( )

float BN, BY, h, A;

printf (“introducir la medida de la base menor:”);

scanf (“%f”, &BN);

printf (“introducir la medida de la base mayor”);

scanf (“%f”, &BY);

printf (“introducir la medida de la altura del trapecio:”);

scanf (“%f”, &h);

A = ((BN+BY)*h)/2

printf (“el area es: = %f”,A);

getch ( )

}

6. Hacer un programa que convierta de moneda nacional a dólares.

Pseudocodigo

Inicio

Leer P

D ! P/10.47

Escribir D

Fin-Inicio

Análisis del problema

Entrada: Leer P

Proceso: D ! P/10.47

Salida: Escribir D

Tipo de variables: float

Variables: D, P

# include <stdio.h>

main ( )

{

float D, P;

printf (introducir los pesos a convertir:”);

scanf (“%f”, &P)

D = P/10.47

printf (“sus dólares son = %f”, D);

getch ( );

}

7. Hacer un programa que convierta de dólares a pesos

Pseudocodigo

Inicio

Leer D

P ! D*10.47

Escribir P

Fin-Inicio

Análisis del problema

Entrada: Leer D

Proceso: P ! D*10.47

Salida: Escribir P

Tipo de variables: float

Variables: D, P

# include <stdio.h>

main ( )

{

float P, D

printf (“introducir los dólares a convertir:”);

scanf (“%f”, &D)

P = D*10.47

printf (“sus pesos son = %f”, P);

getch ( );

}

9. Hacer un programa que convierta de metros a pies.

Pseudocodigo

Inicio

Leer M

P ! M*3.27

Escribir P

Fin-Inicio

Análisis del problema

Entrada: Leer M

Proceso: P ! M*3.27

Salida: Escribir P

Tipo de variables: float

Variables: P, M

# include <stdio.h>

main ( )

{

float P,M

printf (“introduzca los metros a convertir:”);

scanf (“%f”, &M);

P = M*3.27

printf (“los pies son: = %f”, P);

getch ( );

}

10. Hacer un programa que convierta de kilómetros a millas.

Pseudocodigo

Inicio

Leer K

M ! K*0.623

Escribir M

Fin-Inicio

Análisis del problema

Entrada: Leer K

Proceso: M ! K*0.623

Salida: Escribir M

Tipo de variables: float

Variables: K, M

# include <stdio.h>

main ( )

{

float M, K

printf (“introducir los kilometros a convertir:”);

scanf (“%f”, &K);

M ! K*0.623

printf (“las millas son: = %f,” M);

getch ( );

}

11. Programa en “C” un programa que lea el radio de un circulo, calcule el área y escribe el resultado calculado.

# include <stdio.h>

/* programa para calcular el área de un circulo

main ( )

{

float radio, area;

printf (“Radio = ?”);

scanf (“ %f ”, & radio);

area = 3.14159*radio*radio;

printf (“Área = %f ”,área);

}

Análisis del problema

Entrada: Leer radio

Pseudocodigo

Inicio

Leer radio

Area ! 3.14159*radio*radio

Escribir area

Fin-inicio

Proceso: Area !3.14159*radio*radio

Salida: Escribir Área

Tipo de variables: float

Variables:

Radio, area

Tipos de datos.

Tipo de sistema

Descripción

Requerimientos

Tipico de memoria

Int

Cantidad entera

2 bytes a una palabra

Varia de un compilador a otro

Char

Carácter

1 byte

Float

Numero de coma flotante (un numero que incluye punto decimal y/o exponente).

1 Palabra (4 bytes)

Double

Numero de coma flotante doble precision (mas cifras significativas y mayor valor posible del exponente).

2 palabras (8 bytes)

Determinar lo mejor posible el propósito de cada uno de los programas en “C”.

  • Identificar todas las variables de cada problema.

  • Identificar las sentencias de entrada/salida, todas las sentencias de asignación y cualquier otra característica importante, se deberá realizar el analisis y el algoritmo (diagrama de flujo y Pseudocodigo) de cada uno de los siguientes programas.

  • 11. main ( )

    {

    pritnf( “¡Bienvenido al maravilloso mundo de las computadoras!/n”)

    Análisis

    Entrada: Leer ¡Bienvenidos al maravilloso mundo de las computadoras!

    Proceso: ¡Bienvenido al maravilloso mundo de las computadoras!

    Salida: Escribir ¡Bienvenido al maravilloso mundo de las computadoras!

    Variables del tipo carácter.

    Pseudocodigo

    Inicio

    Leer ¡Bienvenido al maravilloso mundo de las computadoras!

    Escribir ¡Bienvenido al maravilloso mundo de las computadoras!

    Fin

    12. # define MENSAJE “¡Bienvenido al maravilloso mundo de las computadoras!\n”

    main ( )

    {

    printf (MENSAJE);

    }

    13.

    main ( )

    {

    float base, altura, area;

    printf (“Base:”);

    scanf (“%f”, &base);

    printf (“Altura:”);

    scanf (“%f”, &altura);

    area = (base*altura)/2;

    printf (“Area:%F”, area);

    }

    14.

    main ( )

    {

    float bruto, impuesto neto;

    printf (“Salario bruto:”);

    scanf (“%f”, &bruto);

    impuesto = 0.14*bruto;

    neto = bruto - impuesto;

    printf (“Impuestos: %.2f\n”, impuesto);

    printf (“Salario neto: %.2f”, neto);

    }

    15.

    main ( )

    {

    int a, b, min;

    int menor (int a, int b);

    printf (“Introduzca el primer numero:”);

    scanf (“%d”, &a);

    printf (“Introduzca el segundo numero:”);

    scanf (“%d”, &b);

    min = menor (a, b);

    printf (“\n El numero menor es:%d”, min);

    }

    menor (int a, int b)

    {

    if (a <= b)

    return (a);

    else

    return (b);

    }

    16.

    main ( )

    {

    int cont, n, a, b, min;

    int menor (int a, int b);

    printf (“¿Cuantos pares de numeros?”);

    scanf (“%d”, &n);

    for (cont = 1; cont <=n; ++ cont) {

    printf (“\n Introduzca el primer numero:”);

    scanf (“%d”, &a);

    printf (“Introduzca el segundo numero:”);

    scanf (“%d”, &b);

    min = menor (a, b);

    printf (“\n El numero menor es: %d \n” min); }

    {

    menor (int a, int b);

    }

    {

    if (a <= b);

    return (a);

    else

    return (b);

    }

    17. main ( )

    { {

    int a, b, min; if (a<= b)

    int menor (int a, int b); return (a);

    printf (“PARA PARAR, Introducir 0 en cada numero\n”); else

    printf (“Introduzca el primer numero:”); return (b);

    scanf (“%d”, &a); }

    printf (“Introduzca el segundo numero:”);

    scanf (“%d”, &b);

    while (a !=0 b !=0) {

    min = menor (a, b);

    printf (“\n El numero menor es: %d\n”, min);

    printf (“\n Introduzca el primer numero:”);

    scanf (“%d”, &a);

    prinft (“Introduzaca el segundo nuemro:”);

    scanf (“%d”, &b);

    }

    menor (int a, int b)

    18.main ( )

    {

    int n, I = 0;

    int a [100], b [100], min [100];

    int menor (int, int);

    printf ( Para PARAR, introducir 0 en cada numero \n”);

    printf (\n Introduzca el primer numero”);

    scanf (“%d”, &a [i]);

    printf (“introduzca el segundo numero:”);

    while (a [i] !=0 b [i] !=0) {

    min [i] = menor (a [i], b [i];

    printf (“\n introduzca el primer numero:”);

    scanf (%d”, &a [++i];

    printf (“Introduzca el segundo numero:”);

    scanf (“%d”, &b [i]);

    {

    n = --I

    printf (“\n Relacion de resultados \n\n”);

    for (i=0; i<=n; ++i)

    printf (a=%d b=%d min=%d\n”, a [i] b[i] min[i];

    }

    menor (int a, int b)

    {

    if (a <= b)

    return (a);

    else

    return (b);

    }

    Tipos de datos.

    Tipo de sistema

    Descripción

    Requerimientos

    Tipico de memoria

    Int

    Cantidad entera

    2 bytes a una palabra

    Varia de un compi- lador a otro

    Char

    Carácter

    1 byte

    Float

    Numero de coma flotante (un numero que incluye punto decimal y/o exponente).

    1 Palabra (4 bytes)

    Double

    Numero de coma flotante doble precision (mas cifras significativas y mayor valor posible del exponente).

    2 palabras (8 bytes)

    Identificadores.

    Los identificares son nombres que se les da a varios elementos de un programa, como variables, funciones, y arreglos (array). Un identificador esta formado por letras y digitos, en cualquier orden, exepto el primer carácter, que debe ser una letra.

    El carácter de subrayado (_) se puede incluir tambien y es considerado como una letra.

    Los signos nombres son identificadores validos:

    X, Y12, suma_1, temperatura, nombres, area, porcentaje, TABLA.

    Secuencias de escape.

    Secuencias de escape.

    Carácter

    Secuencia de escape

    Valor ASCII

    Sonido (beld)

    \a

    007

    Backspace

    \b

    008

    Tabhorizontal

    \+

    009

    Tabvertical

    \v

    011

    Nuevalinea

    \n

    010

    Form feed

    \f

    012

    Retorno de carro

    \r

    013

    Comillas (“)

    \”

    034

    Apostrofo (/)

    \,

    063

    Signo de interrogación (¿)

    \?

    092

    Bacaslash (\)

    \\

    000

    Hulo

    \0

    006

    Declaraciones.

    Una declaración asocia a un tipo de datos determinados a un grupo de variables antes que aparezcan de variables. Se deben declarar todas las variables todas las variables antes de que aparezcan sentencias ejecutables.

    Una declaración consiste en un tipo de datos, seguido de uno o mas nombres de variables, finalizando con un punto y coma (;).

    Ejemplos:

    Un programa en C contiene las siguientes declaraciones de tipos:

    Int a,b,c;

    Float raiz1, raiz2;

    Char indicador, texto [8];

    De esta forma se declaran a, b, c como variables enteras raiz1, raiz2 son variables de coma flotante, indicador una variable tipo carácter y texto un array de tipo carácter de 80 elementos. Y nótese los corchetes encerrando la especificación de tamaño de texto.

    Tambien se podria haber escrito las anteriores como sigue:

    Int a;

    Int b;

    Float raiz1;

    Float raiz2;

    Char indicador;

    Char texto [8];

    Expresiones.

    Una expresión representa una cantidad de datos simple, tal como un numero o un carácter. La expresión puede consistir en una entidad simple, como una constante, una variable, un elemento de un array o una referencia a una funcion. Tambien puede consistir en alguna combinación de tales identidades interconectadas por uno o mas operadores. El uso de expresiones involucrando operadores es especialmente frecuente en C como en muchos otros lenguajes de programación.

    Las expresiones tambien pueden representar condiciones cierto o falso se representa, por valores 1 y 0, respectivamente. Por tanto, las expresiones logicas representan en realidad cantidades numéricas.

    Ejemplos. A continuación se presenta una serie de expresiones sencillas.

    a + b

    x = = y

    x = y

    ++ i

    c = a + b

    x <= y

    Existen 5 operadores aritméticos en C.

    Operador

    Proposito

    +

    Adicion

    "

    Sustracción

    *

    Multiplicación

    /

    División

    %

    Resto de división entera

    El operador % es a veces denominado “operador modulo”

    Ejemplos:

    Expresión

    Valor

    A + b

    13

    A " b

    7

    A * b

    30

    A / b

    3

    A % b

    1

    Expresion

    Valor

    C1

    80

    C1 + c2

    164

    C1 + c2 + 5

    16

    C1 + c2 + 5´

    217

    Expresión

    Valor

    A + b

    8

    A " b

    14

    A * b

    "33

    A / b

    "3

    A % b

    2

    Expresion

    Valor

    V1 + v2

    14.5

    V1 " v2

    10.5

    V1 * v2

    25.0

    V1 / v2

    6.25

    Expresión

    Valor

    R1 + r2

    3.84

    R1 " r2

    "5.16

    R1 * r2

    "2.47

    R1 / r2

    "0.146667

    Expresión

    Valor

    Tipo

    I + f

    12.5

    Doble precision

    I + c

    126

    Entero

    I + c " 0

    78

    Entero

    (I + c) " (2*f/5)

    123.8

    Doble precisión

    Entero

    Acc. 1

    Acc. 2

    Acc. 3

    INICIO

    Leer A

    Leer B

    S A + B

    P A* B

    FIN

    Pseudocodigo

    Inicio

    Leer un numero A

    Leer un numero B

    Sumar S, S ! A + B

    Producto P, P ! A * B

    Escribir S; P

    Fin

    Inicio

    Leer un numero L

    Leer un numero L

    Producto A!L*L

    Escribir A

    Fin

    FIN

    Escribir A

    A!b*h

    Leer h

    Leer b

    Inicio

    Leer un numero b

    Leer un numero h

    Producto A!b*h

    Escribir A

    Fin

    FIN

    Escribir A

    A!L*L

    Leer L

    Leer L

    Inicio

    Inicio

    FIN

    Escribir A

    A!b*h/2

    Leer h

    Leer b

    Inicio

    FIN

    main ( )

    {

    printf(“¡Bienvenidos al maravilloso mundo de las computadoras!/n”);

    }

    Leer h

    Leer BY

    Leer BN

    Inicio

    Inicio

    Fin

    FIN

    Escribir D

    D!P/10.47

    FIN

    Escribir A

    A!((BN+BY)*h)/2

    Leer P

    Inicio

    Escribir P

    P!D*10.47

    Leer D

    Inicio

    FIN

    Escribir P

    P!M*3.27

    Leer M

    Inicio

    FIN

    Escribir M

    M!K*0.623

    Leer K

    Inicio

    Leer ¡Bienvenido al maravilloso mundo de las computadoras!

    ¡Bienvenido al maravilloso mundo de las computadoras!

    Leer ¡Bienvenido al maravilloso mundo de las computadoras!