Publicado el 26 de Junio del 2018
468 visualizaciones desde el 26 de Junio del 2018
2,6 MB
38 paginas
Creado hace 10a (01/01/2015)
Modularización en lenguaje C
Funciones
PrimerCuatrimestre 2015
F. de la Informática- Int.a la Computación - Int.a la Programación
1
Modularización
F. de la Informática - Int.a la Computación - Int.a la Programación - 2015
2
Subalgoritmo “Ingreso” (inout NUM: arreglo entero ,in inicio, final, FE: entero)
Comenzar
Modularización
I: entero
Escribir: “ingrese datos enteros”
Para I desde inicio hasta final con paso FE hacer
Leer NUM[I]
Fin para
Fin
Algoritmo "ALGO”
Comenzar
NUM1: arreglo [1…30] de entero
NUM2: arreglo [1…20] de entero
I: entero
Ingreso (NUM1 ,1,30,1)
Ingreso (NUM2 ,20,1,-1)
. . .
Fin
3
Modularización
Subalgoritmo “Multiplo” (inout NUM1: arreglo entero,
inout NUM2: arreglo entero)
Comenzar
I: entero
Cant: entero
Cant2: entero
Cant <-0
Para I desde 1 hasta 30 con paso 1 hacer
Si NUM1 [I]//7 <>0 entonces
Cant<-cant +1
Fin si
Fin para
Cant2<-0
Para I desde 20 hasta 1 con paso -1 hacer
Si NUM2 [I] //4 <>0 entonces
Cant 2 <- cant2 +1
Fin si
Fin para
Fin
F. de la Informática - Int.a la Computación - Int.a la Programación - 2015
4
Introducción
#include
<stdio.h>
int
main(){
int
resultado=1;
/*
valor
fibonacci
*/
int
numero;
/*
numero
a
introducir
por
el
usuario
*/
int
p;
printf(
"Introduzca
un
entero:
"
);
scanf(
"%d",
&numero);
/*
obtiene
un
entero
del
usuario
*/
getchar();
/*
calcula
el
valor
fibonacci
del
numero
ingresado*/
if
(
numero
==
0
||
numero
==
1
)
{
resultado
=
numero;}
/*
fin
de
if
*/
else
{
for
(p=1;
p<numero;
p++){
resultado
=
resultado+
(p+1);}
}
printf(
"Fibonacci(
%d
)
=
%d",
numero,
resultado
);
/*
muestra
el
resultado
*/
return
(0);
/*
indica
terminacion
exitosa
*/
}
/*
fin
de
main
*/
5
F. de la Informática - Int.a la Computación - Int.a la Programación - 2015
printf(
"Introduzca
un
entero:
"
);
scanf(
"%d",
&numero);
/*
obtiene
un
entero
del
usuario
*/
getchar();
/*
calcula
el
valor
fibonacci
del
numero
ingresado*/
if
(
numero
==
0
||
numero
==
1
)
{
resultado
=
numero;}
/*
fin
de
if
*/
else
{
for
(p=1;
p<numero;
p++){
resultado
=
resultado+
(p+1);}
}
printf(
"Fibonacci(
%d
)
=
%d",
numero,
resultado
);
/*
muestra
el
resultado
*/
6
F. de la Informática - Int.a la Computación - Int.a la Programación - 2015
printf(
"Fibonacci(
%d
)
=
%d",
numero,
resultado
);
/*
muestra
el
resultado
*/
printf(
"Introduzca
otro
entero:
"
);
scanf(
"%d",
&numero);
/*
obtiene
segundo
entero
del
usuario
*/
getchar();
/*
calcula
el
valor
fibonacci
del
numero
ingresado*/
if
(
numero
==
0
||
numero
==
1
)
{
resultado
=
numero;}
/*
fin
de
if
*/
else
{
for
(p=1;
p<numero;
p++){
resultado
=
resultado+
(p+1);}
}
Objetivo:
Una vez que definimos un método que
resuelva un problema
concreto, se pretende ser capaces de
usarlo tantas veces como sea necesario
sin
tener que reescribirlo.
L. de Diseño
C
Subalgoritmos
Funciones
Modularización
F. de la Informática - Int.a la Computación - Int.a la Programación - 2015
7
Una función (subalgoritmo) es un conjunto de
instrucciones que realizan una tarea en
particular.
FUNCIONES
La modularización determina como mínimo dos módulos bien definidos de la
solución: el Módulo Principal y el Módulo que realiza la Tarea Específica.
El módulo principal es el algoritmo que soluciona el problema general planteado y
que invoca a la/s función/es. Usualmente es el Programa Principal.
Módulo que Invoca
Módulo Invocado
Programa Principal
Función de Tarea Específica
F. de la Informática - Int.a la Computación - Int.a la Programación - 2015
8
Una función (subalgoritmo) es un conjunto de
instrucciones que realizan una tarea en
particular.
FUNCIONES
La modularización determina como mínimo dos módulos bien definidos de la
solución: el Módulo que Invoca y el Módulo Invocado.
Módulo que Invoca
Módulo Invocado
F. de la Informática - Int.a la Computación - Int.a la Programación - 2015
9
Una función (subalgoritmo) es un conjunto de
instrucciones que realizan una tarea en
particular.
FUNCIONES
La modularización determina como mínimo dos módulos bien definidos de la
solución: el Módulo que Invoca y el Módulo Invocado.
Módulo que Invoca
Módulo Invocado
F. de la Informática - Int.a la Computación - Int.a la Programación
F. de la Informática - Int.a la Computación - Int.a la Programación - 2015
10
Lenguaje C
FUNCIONES
Ejemplo:
Dado
un
número
n
entero
posi0vo,
se
desea
calcular
e
imprimir
el
factorial
de
n,
n2
y
de
n3.
Definir
un
módulo
(función)
para
el
cálculo
del
factorial.
(Ejemplo
visto
en
Lenguaje
de
Diseño)
F. de la Informática - Int.a la Computación - Int.a la Programación - 2015
11
ALGORITMO
Calculo
Factoriales
COMENZAR
FACTORIAL
FACTORIAL
FACTORIAL
FIN
Programa Principal
SUBALGORITMO
“Factorial”
COMENZAR
N,
FACT,
I:
entero
LEER
N
FACT
PARA
I
DESDE
1
HASTA
N
CON
PASO
1
HACER
1
FACT
FACT
*
I
Función
F
U
N
C
I
O
N
E
S
FINPARA
ESCRIBIR
FACT
FIN
F. de la Informática - Int.a la Computación - Int.a la Programación
F. de la Informática - Int.a la Computación - Int.a la Programación - 2015
12
Gráficamente
FUNCIONES
invocación
retorno
Programa Principal
Factorial
F. de la Informática - Int.a la Computación - Int.a la Programación - 2015
13
Solución General (en Leng. de Diseño)
FUNCIONES
Cuerpo del
Programa Ppal.
ALGORITMO Calculo Factoriales
COMENZAR
N, AUX: entero
LEER AUX
N
AUX
N
FACTORIAL
N
N
FACTORIAL
N
N
FACTORIAL
FIN
AUX^2
AUX^3
Cuerpo de la
Función.
Queda por resolver
?
SUBALGORITMO Factorial
COMENZAR
FACT, I: entero
FACT 1
PARA I DESDE 1 HASTA N CON PASO 1
HACER
FACT
FACT * I
FINPARA
ESCRIBIR FACT
FIN
14
F. de la Informática - Int.a la Computación - Int.a la Programación - 2015
Solución General (en Leng. C)
FUNCIONES
El programa principal
conserva el nombre main
#include <stdio.h>
int main() {
int n;
int aux;
printf(Ingrese el número);
scanf(%d, &aux);
getchar();
n = aux;
Factorial(); /* 1er Fact. */
n = aux * aux;
Factorial(); /* 2do Fact. */
n = aux * aux * aux;
Factorial(); /* 3er Fact. */
return(0);
}
F. de la Informática - Int.a la Computación - Int.a la Programación
F. de la Informática - Int.a la Computación - Int.a la Programación - 2015
15
Cuerpo del
Programa
Ppal.
Cuerpo de la
Función.
FUNCIONES
La función adquiere
nombre propio.
int Factorial(){
int i;
int fact;
?
fact = 1;
for (i =1; i <= n; i=i+1 ){
fact = fact * i;
}
printf(El factorial es: %d\n, fact);
return(0);
}
Que valores toma
F. de la Informática - Int.a la Computación - Int.a la Programación
F. de la Informática - Int.a la Computación - Int.a la Programación - 2015
16
F
U
N
C
I
O
N
E
S
#include <stdio.h>
int Factorial(){
int i;
int fact;
fact = 1;
for (i =1; i <= n; i=i+1 ){
fact = fact * i;
}
printf(El factorial es: %d\n, fact);
return(0);}
int main() {
int n;
int aux;
printf(Ingrese el número);
scanf(%d, &aux);
getchar();
n = aux;
Factorial(); /* 1er Fact. */
n = aux * aux;
Factorial(); /* 2do Fact. */
n = aux * aux * aux;
Factorial(); /* 3er Fact. */
return(0);}
F. de la Informática - Int.a la Computación - Int.a la Programación
F. de la Informática - Int.a la Computación - Int.a la Programación - 2015
17
Ámbito de una variable / constante
FUNCIONES
El ámbito de una variable es el bloque
de código en el cual una variable existe
y puede ser utilizada para procesar.
#include <stdio.h>
int main() {
int n;
int aux;
printf(Ingrese el número);
scanf(%d, &aux);
getchar();
n = aux;
Factorial(); /* 1er Fact. */
n = aux * aux;
Factorial(); /* 2do Fact. */
n = aux * aux * aux;
Factorial(); /* 3er Fact. */
return(0);
}
F. de la Informática - Int.a la Computación - Int.a la Programación
F. de la Informática - Int.a la Computación - Int.a la Programación - 2015
Ámbito para n,
aux
18
Ámbito de una variable / constante
FUNCIONES
Ámbito para i, fact
Comentarios de: Modularización en lenguaje C - Funciones (0)
No hay comentarios