PDF de programación - Modularización en lenguaje C

Imágen de pdf Modularización en lenguaje C

Modularización en lenguaje Cgráfica de visualizaciones

Publicado el 22 de Junio del 2018
837 visualizaciones desde el 22 de Junio del 2018
3,1 MB
38 paginas
Creado hace 7a (01/01/2017)
Modularización en lenguaje C

Funciones

Primer Cuatrimestre 2017

F. de la Informática- Int.a la Computación - Int.a la Programación

1

Ejercicio: Dado el siguiente algoritmo incompleto codificado en Lenguaje de Diseño,
complételo y modifíquelo de manera tal que el nuevo algoritmo cumpla con todas las
siguientes condiciones:

a) Defina el subalgoritmo Ingreso que permita ingresar datos en UN arreglo de enteros.
El ingreso de los datos a los arreglos NUM1 y NUM2, deberá hacerse mediate las
correspondientes invocaciones del subalgoritmo Ingreso.

b) Defina, además, el subalgoritmo Multiplos que permita determinar la cantidad de

números que no sean múltiplos de un determinado número.

c) Utilice el subalgoritmo Multiplos para desarrollar las tareas 3 y 4

ALGORITMO "ALGO"
COMENZAR
NUM1: arreglo [1 a 30] entero
NUM2: arreglo [1 a 20] entero

I: entero

FINPARA
Determinar cantidad de números que no sean múltiplos de siete del arreglo
NUM1
Determinar cantidad de números que no sean múltiplos de 4 del arreglo
NUM2
4
FIN

F. de la Informática - Int.a la Computación - Int.a la Programación - 2017

2

PARA I DESDE 1 HASTA 30 CON PASO 1 HACER

FINPARA
PARA I DESDE 20 HASTA 1 CON PASO -1 HACER

LEER NUM1[I]

LEER NUM2[I]

1

2

3

I: entero
Escribir: “ingrese datos enteros al primer arreglo ”
Para I desde inicio hasta final con paso FE hacer
Leer NUM[I]
Fin para
Escribir: “ingrese datos enteros al segundo arreglo ”
Para I desde inicio2 hasta final2 con paso FE hacer
Leer NUM[I]
Fin para


Fin

F. de la Informática - Int.a la Computación - Int.a la Programación - 2017
Solución 1
Subalgoritmo “Ingreso” (inout NUM1: arreglo entero ,in inicio, final, FE: entero
inout NUM2: arreglo entero ,in inicio2, final2, FE2: entero)

Modularización

Comenzar


Algoritmo "ALGO”
Comenzar
NUM1: arreglo [1…30] de entero
NUM2: arreglo [1…20] de entero
I: entero
Ingreso (NUM1,1,30,1, NUM2, 20,1,-1)
. . .
Fin



3

Solución 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


F. de la Informática - Int.a la Computación - Int.a la Programación - 2017

4

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 - 2017

5

Modularización

Subalgoritmo “Multiplo” (inout NUM1: arreglo de entero, in Li: entero, in Lo, in P,



in Mul, out Cant)

¿Cómo
invocarlo?

Comenzar

I: entero
Cant <-0
Para I desde Li hasta Lo con paso P hacer

Si NUM1 [I]//Mul <>0 entonces
Cant<-Cant +1
Finsi
Fin para

Fin

¿Es posible determinar con el subalgoritmo Multiplo la

cantidad de valores que son múltiplos de 6?

6

F. de la Informática - Int.a la Computación - Int.a la Programación - 2017

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 - 2017

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 que invoca (puede ser el M. 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 - 2017

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 - 2017

9

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 - 2017

10

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 - 2017

11

Gráficamente

FUNCIONES

invocación

retorno

Programa Principal

Factorial

F. de la Informática - Int.a la Computación - Int.a la Programación - 2017

12

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

13

F. de la Informática - Int.a la Computación - Int.a la Programación - 2017

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 - 2017

F. de la Informática - Int.a la Computación - Int.a la Programación

14

Cuerpo del
Programa
Ppal.

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

Cuerpo de la
Función.

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 - 2017

15

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 - 2017

16

Á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 - 2017

Ámbito para n,
aux

17

Ámbito de una variable / constante


FUNCIONES

Ámbito para i, fact



int Factorial(){
int i;
int fact;

fact = 1;
for (i =1; i <= n; i=i+1 ){
fact = fact * i;
}
printf(“El fact. es: %d\n”, fact);
return(0);
}



?

F. de la Informática - Int.a la Computación - Int.a la Programación - 2017

18

Toda variable definida dentro del cuerpo del Prog. Ppal. o de una función
se denomina LOCAL al Prog. Ppal. o función.

Programa Ppal. (main)

n, aux

Función (Factorial)

i, fact

‘n, aux’ son
LOCALES al
Prog. Ppal.

‘i, fact’ son
LOCALES a
Factorial.

F
U
N
C
I
O
N
E
S
Problema:

La variable n NO EXISTE dentro del cuerpo de la función Factorial.

19

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 - 2017

Solución 1
Mediante el uso de PARÁMETROS

FUNCIONES

Programa Ppal. (main)

n, aux

Invocación

n

Retorno

Función (Factorial)

i, fact

F. de la Informática - Int.a la Computación - Int.a la Programación -
  • Links de descarga
http://lwp-l.com/pdf12060

Comentarios de: Modularización en lenguaje C (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad