Sei sulla pagina 1di 10

PROGRAMACIÓN ESTRUCTURADA

Lenguaje de Programación

TÉCNICAS DE PROGRAMACIÓN

Descripción Programación Clásica Programación Moderna

Objetivo Programas de pequeña Programas de alta


y mediana complejidad complejidad

Herramienta de Diagrama de flujo Diagrama de flujo


apoyo ● Programa ● General

● Por módulo

Producto Programa Fuente Programas Fuente


● Principal

● Módulos

1/10
PROGRAMACIÓN ESTRUCTURADA
Lenguaje de Programación

ESTRUCTURA GENERAL

Módulo
principal

Módulo 1 Módulo 2 Módulo 3 Módulo n

Módulo 3.1
Módulo 1.1 Módulo 1.2 Módulo n.1

Módulo 3.1.1 Módulo 3.1.2


Módulo n.1.1

Módulo 3.1.2.1

2/10
PROGRAMACIÓN ESTRUCTURADA
Lenguaje de Programación

CARACTERÍSTICAS

- Método flexible y potente para mejorar la productividad de programación

- El programa se divide en módulos independientes

- Los módulos se analizan, codifican, verifican en forma separada

- Los resultados de los módulos pueden ser utilizados por cualquier


módulo cuando estos entran en ejecución

3/10
PROGRAMACIÓN ESTRUCTURADA
Lenguaje de Programación

MÓDULOS

Conjunto de instrucciones que realizan una tarea específica.

Puede ser llamado por un programa principal u otro módulo

Un módulo siempre devuelve el control al módulo que lo llamó.

En lenguaje MATLAB los módulo se denominan: función

Comunicación:
- Variables globales y locales

- Argumentos de llamada

4/10
PROGRAMACIÓN ESTRUCTURADA
Lenguaje de Programación

NOMBRE DE MÓDULOS

Se recomienda construir módulos de entre 30 y 40 instrucciones

Los nombre dependen del lenguaje:

C++ Funciones

Basic, Fortran Subrutinas

Pascal Procedimientos

Cobol Secciones

Matlab Funciones

5/10
PROGRAMACIÓN ESTRUCTURADA
Lenguaje de Programación

MÓDULO: Llamada con argumentos

Programa o función que hace el llamado


a=input('.........');
........
d1=20*sin(2*pi*a);
........
........
[r1,r2,...,rn]=nombre_función(d1,d2,...dm)
area=r1*r2;
........
........

Función
function [s1,s2,...sn]=nombre_función(e1,e2,...em)
........
s1=e1*e2*pi/10.4;
........
........
sn=s2/cos(pi/2*e4);
........
........
return

6/10
PROGRAMACIÓN ESTRUCTURADA
Lenguaje de Programación

MÓDULO: Llamada con argumentos

Programa.m romano.m
clc; function romano(d,z1,z2,z3)
clear all; if(d == 9)
n=input('Ingrese número: '); fprintf(1,'%s%s',z1,z3);
fprintf(1,'Equivalente romano = '); else
r=n; if(d > 4)
% Miles fprintf(1,'%s',z2);
digito=fix(r/1000); for j=1:d-5
r=rem(r,1000); fprintf(1,'%s',z1);
romano(digito,'M',' ',' '); end
% Centenas else
digito=fix(r/100); if(d == 4)
r=rem(r,100); fprintf(1,'%s%s',z1,z2);
romano(digito,'C','D','M'); else
% Decenas for j=1:d
digito=fix(r/10); fprintf(1,'%s',z1);
r=rem(r,10); end
romano(digito,'X','L','C'); end
% Unidades end
digito=r; end
romano(digito,'I','V','X'); return
close all

7/10
PROGRAMACIÓN ESTRUCTURADA
Lenguaje de Programación

MÓDULO: Llamada con argumentos


3 5 7
x x x
Calcular seno(x) utilizando la serie: sen( x) = x− + −
3! 5! 7!

Programa.m seno.m
clc; function [s] = seno(a)
clear all; x=pi/180;
resp='s'; s=x;
while(resp == 's' || resp == 'S') for i=2:4
ang=input('Ingrese ángulo (grados) = '); n=2*i-1
[X]=seno(ang); [p]=pot(x,n);
fprintf(1,'\n Seno(%0.1f)=%0.4f',ang,X); [f]=fact(n);
resp=input('Desea ingresar otro valor [s/n]: ','s'); if(rem(i,2) == 0)
end s=s-p/f;
else
s=s+p/f;
end
end
pot.m fact.m return
function [p] = pot(x,n) function [f] = fact(n)
p=1; f=1;
for i=1:n for i=1:n
p=p*x; f=f*i;
end end
return return

8/10
PROGRAMACIÓN ESTRUCTURADA
Lenguaje de Programación

MÓDULO: Llamada con variables globales

Programa o función que


hace el llamado Función
a=input('.........'); function nombre_función
global r1 r2 ... rn global r1 r2 ... rn
global d1 d2 ... dm global d1 d2 ... dm
d1=20*sin(2*pi*a); ........
........ r1=d1*d2*pi/10.4;
........ ........
nombre_función ........
area=r1*r2; rn=r2/cos(pi/2*e4);
........ ........
........ ........
return

9/10
PROGRAMACIÓN ESTRUCTURADA
Lenguaje de Programación

MÓDULO: Llamada con variables globales


3 5 7
x x x
Calcular seno(x) utilizando la serie: sen( x) = x− + −
3! 5! 7!

Programa.m seno.m
clc; function seno
clear all; global ang s x n p f
global ang s x=pi/180;
resp='s'; s=x;
while(resp == 's' || resp == 'S') for i=2:4
ang=input('Ingrese ángulo (grados) = '); n=2*i-1
seno pot
fprintf(1,'\n Seno(%0.1f)=%0.4f',ang,X); fact
resp=input('Desea ingresar otro valor [s/n]: ','s'); if(rem(i,2) == 0)
end s=s-p/f;
else
s=s+p/f;
end
end
pot.m fact.m return
function pot function fact
global x p global n f
p=1; f=1;
for i=1:n for i=1:n
p=p*x; f=f*i;
end end
return return

10/10

Potrebbero piacerti anche