Tecnología de la Información
Programación estructurada
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!
Descargar
Enviado por: | Cristian |
Idioma: | castellano |
País: | México |