Sie sind auf Seite 1von 20

Ejemplo 1.1 Programa que lee dos datos y los muestra.

// algoritmo 1.1 Mostrar la edad y estatura

entero: edad
real: est

inicio
escribir (“teclea tu edad”)
leer (edad)
escribir (“teclea tu estatura”)
leer (est)
escribir (“tienes”, edad , ” mides”, est, ”mts”)
fin

Ejemplo 2.1 Se muestran expresiones válidas y se comenta la solución

Expresión Reglas
a) 3 + 4 – 5 Cuando en una expresión se
encuentran operadores con la
7 – 5 misma prioridad como en este caso
la suma y la resta, las
2 operaciones se realizan de
izquierda a derecha.
b) 8+5*9–6 Aunque la suma está primero, el
operador de mayor jerarquía es la
8 + 45 – 6 multiplicación, posteriormente se
lleva a cabo la suma, es decir,
53 – 6 nuevamente se evalúan de izquierda
a derecha.
47
6/2+4*(5–2) En este ejemplo se evalúa en
R primer lugar, la división y la
3 + 4 *(5–2) suma, se realiza la división,
después se evalua la suma y la
3 + 4 * 3 multiplicación se hace primero la
multiplicación y como tiene
15 paréntesis se resuelve el
paréntesis, después la
multiplicación y finalmente la
suma.
d) 6+7*((3–1)%2) Cuando en una expresión existan
paréntesis anidados, se evaluarán
6+7*(2%2) de adentro hacia afuera, luego se
evalúan los demás operadores de
6 + 7 * 0 acuerdo a su precedencia.

6 + 0

6
Ejemplo 2.2 Diga el resultado de la siguiente expresión.

X= 3*a+(--a)-(-a-2)*2/3
Para a=4 se resolverá así:

X ← 12+(--a)-(-a-2)*2/3
X ← 12+(3)-(-a-2)*2/3
X ← 15-(-3-2)*2/3
X ← 15- -5*2/3
X ← 15- -10/3
X ← 15- -3.333
X ← 18.333
Ejemplo 3.1 Estructura mínima de un programa en lenguaje C, version 1.

//algoritmo 3.1 estructura de un programa en C.

inicio
escribir (“ Mi primer programa ”)
fin

Ejemplo 3.2 Estructura mínima de un programa en lenguaje C, version 2.

//algoritmo 3.2estructura de un programa en C.

inicio
escribir (“ Mi primer programa ”)
fin

Ejemplo 4.1 Determinar si un alumno aprobó un curso a partir del promedio que obtuvo en sus tres
calificaciones de los parciales que se hicieron durante el semestre.

//algoritmo 4.1 promedio

real: cal1, cal2, cal3, prom

inicio
escribir (“Dame la calificación del primer examen parcial”)
leer(cal1)
escribir(“Dame la calificación del segundo examen parcial”)
leer(cal2)
escribir(“Dame la calificación del tercer examen parcial”)
leer(cal3)
prom ← (cal1 + cal2 + cal3) / 3
si (prom >= 60)
escribir (“Aprobó”)
fin_si
fin

Ejemplo 4.2 Imprimir si un numero es positivo, negativo o es cero.

//algoritmo 4.2 Imprimir si un numero es positivo, negativo o cero

entero: num

inicio
escribir("Indica si el numero es positivo, negativo o cero")
escribir("Dame el número)
leer(num)
si(num=0)
escribir("Es cero”)
fin_si
si(num>0)
escribir("Es positivo")
fin_si
si(num<0)
escribir("Es negativo)
fin_si
fin

Ejemplo 4.3 Determinar si un alumno aprobó o reprobó un curso a partir del promedio que obtuvo en sus tres
calificaciones de exámenes parciales que hizo durante el semestre y mostrar la calificación.

//algoritmo 4.3 Aprobo o reprobo

real: cal1, cal2, cal3, prom

inicio
escribir(“Dame la calificación del primer examen parcial”)
leer(cal1)
escribir(“Dame la calificación del segundo examen parcial”)
leer(cal2)
escribir(“Dame la calificación del tercer examen parcial”)
leer(cal3)
prom ← (cal1 + cal2 + cal3) / 3
si (prom >= 60)
escribir (“Aprobó con ”, prom)
si_no
escribir (“Reprobó con ”, prom)
fin_si
fin

Ejemplo 4.4 Convertir kilómetros a metros.

//algoritmo 4.4 Elegir cual conversión realizar si de Kilómetros a metros


ó viceversa

real: z,y
entero: op

inicio
escribir("Conversión de Kms a mts o mts a kms")
escribir("Si deseas hacer la conversión de kms a mts elige la
opción 1 y de mts a kms elige la opción 2")
leer(op)
si(op=1)
escribir("Dame los kilometros a convertir")
leer(z)
y ← z*1000
escribir(" la conversión a metros es ", y)
si_no
escribir("Dame los metros a convertir\n")
leer(y)
z ← y/1000
escribir("La conversión a kilometros es ",z)
fin_si
fin
Ejemplo 4.5 Indica si el número leído es positivo o es negativo o es cero.

//algoritmo 4.5 Positivo, negativo o cero

entero: num
inicio
escribir("Indica si el numero es positivo, negativo o cero")
escribir("Dame el numero")
leer(num)
si(num=0)
escribir("Es cero")
si_no
si(num>0)
escribir("Es positivo")
si_no
escribir("Es negativo")
fin_si
fin_si
fin

Ejemplo 4.6 Leer 2 números y si son iguales que los multiplique, si el primero es mayor que el segundo que los
reste y si no que los sume.

//algoritmo 4.6 Operaciones

entero: num1,num2,resul
inicio
escribir(“Dame el primer ”)
leer(num1)
escribir (“Dame el segundo ”)
leer(num2)
si (num1=num2)
resul ← num1 * num2
escribir (“La multiplicación de los números es ”,resul)
si_no
si (num1 > num2)
resul ← num1 – num2
escribir (“La resta de los números es ”, resul)
si_no
resul ← num1 + num2
escribir (“La suma de los números es ”, resul)
fin_si
fin_si
fin

Ejemplo 4.7 Indica un día de la semana y el programa escribirá el número de día que le corresponde.

//algoritmo 4.7 Dias de la semana

caracter: dia
inicio
escribir(“Elige un día de la semana: Lunes = L Martes = M
Miércoles = I Jueves = J Viernes = V Sábado
= S Domingo = D”)
leer(dia)
según_sea(dia)hacer
caso ‘L’: escribir (“# 1”)
caso ‘M’: escribir (“# 2”)
caso ‘I’: escribir (“# 3”)
caso ‘J’: escribir (“# 4”)
caso ‘V’: escribir (“# 5”)
caso ‘S’: escribir (“# 6”)
caso ‘D’: escribir (“# 7”)
fin_segun
fin

Ejemplo 4.8 Realiza la operación que se elige del menú visualizado.

//algoritmo 4.8 Calculadora

entero: x,y,op
real: z
entero: x,y,op
real: z
inicio
escribir("Calculadora básica elige la operación a realizar")
escribir("1=Suma, 2=Resta, 3=Multiplicación, 4=División")
leer(op)
segun_sea(op)
caso 1:escribir("Suma")
escribir("Teclea el primer número ")
leer(x)
escribir("Teclea el segundo número ")
leer(y)
z ← x+y
escribir("La suma es ",z)
caso 2:escribir("Resta")
escribir("Teclea el primer número ")
leer(x)
escribir("Teclea el segundo número ")
leer(y)
z ← x-y
escribir("la resta es ",z)
caso 3:escribir("Multiplicación")
escribir("Teclea el primer número ")
leer(x)
escribir("Teclea el segundo número ")
leer(y)
z ← x*y
escribir("La multiplicación es ",z)
caso 4:escribir("Division")
escribir("Teclea el primer número ")
leer(x)
escribir("Teclea el segundo número ")
leer (y)
z ← x/y
escribir("La división es ",z)
fin_segun
fin
Ejemplo 5.1 Imprimir los números enteros del 1 al 10.

// Algoritmo 5.1 Imprimir los números enteros del 1 al 10.

entero c
inicio
c ← 1
mientras (c<=10)
escribir (c)
c ← c+1
fin_mientras
fin

Ejemplo 5.2 Sumar los números enteros del 1 al 5, e imprimir el resultado

//algoritmo 5.1 Sumar los números enteros del 1 al 5, e imprimir el


resultado.

entero: I,S
Inicio
I ← 1
S ← 0
mientras (I<=5)
S ← S+I
I ← I+1
Fin_mientras
escribir (“la suma de los numeros del 1 al 15 es” ,S)
fin

Ejemplo 5.3 Hallar el producto de varios números positivos introducidos por teclado y el proceso termina
cuando se contesta con una letra diferente a ‘s’.

//algoritmo 5.3 producto de numeros

entero: p,num
caracter resp
inicio
resp ←’s’
p ← 1
escribir(" Dame un numero")
leer(num)
mientras(resp=’s’)
p ← p*num
escribir(" dame otro numero ")
leer(num)
escribir(" Ingresar otro numero s/n ")
leer(resp)
fin_mientras
escribir(" el total de la multiplicación es ",p)
fin

Ejemplo 5.4 Producir una tabla de multiplicar e imprimirla en la pantalla utilizando la estructura de control while.

//algoritmo 5.4 tabla de multiplicar

entero: i,n
inicio
escribir ("DAME EL NUMERO DE TABLA : ")
leer(n)
i ← 1
mientras(i<=10)
escribir(n,i,n*i)
i++
fin_mientras
fin

Ejemplo 5.5 Tabla de multiplicar con un error de lógica.

//algortimo 5.5 tabla de multiplicar con error de logica

entero:i,n
inicio
escribir("DAME EL NUMERO DE TABLA DE MULTIPLICAR: ")
leer(n)
i ← 1
mientras(i<=10);
printf(n,i,n*i)
i++
fin_mientras
fin

Ejemplo 5.6 Sumar los numeros pares y multiplicar los numeros impares
hasta que la suma sea mayor que 50 y el producto sea mayor a 150.

// algoritmo 5.6 sumar numeros pares y multiplicar números impares

entero: num,suma,prod
inicio
suma ← 0,prod ← 1
mientras (suma<=50 o prod<=150)
escribir (" DAME EL NUMERO ENTERO: ")
leer(num)
si(num mod 2=0) entonces
suma ← suma+num
sino
prod ← prod*num
fin_mientras
escribir (" LA SUMA ES: " ,suma)
escribir(" EL PRODUCTO ES: ",prod)
fin
Ejemplo 5.7 Obtener el promedio de una determinada cantidad de números leídos del teclado.

// algoritmo 5.7 promedio

real num, cuenta, sum


inicio
sum ← 0, cuenta ← 0
repetir
escribir (“Dame un numero (para detener -1)”)
leer num
sum ← sum + num
cuenta ← cuenta + 1
hasta_que (num <> -1)
escribir (“El promedio es” cuenta-1, sum-num /(cuenta-1))
fin

Ejemplo 5.8 Cálcula el pago a realizar según los litros de gasolina.

//algoritmo 5.8 calcula pago de gasolina

constante precio 5
real l
caracter R
inicio
repetir
escribir (“ Cuantos litros son”)
leer (l)
escribir (“el pago es de “ ,l* precio)
escribir (“otro calculo”)
leer (R)
hasta_que (R <>’s’)
fin

Ejemplo 5.9 Imprimir en pantalla la tabla de multiplicar de un tecleado por el usuario, utilizando la estructura de
control do-while.

//algoritmo 5.9 tabla de multiplicar con do-while

entero: i,n
inicio
escribir ("DAME EL NUMERO DE TABLA DE MULTIPLICAR: ")
leer(n)
i ← 1
repetir
escribir(n,i,n*i)
i++
hasta_que(i>=10)
fin

Ejemplo 5.10 Imprimir en pantalla los primeros 15 números positivos enteros en orden decreciente.

//algoritmo 5.10 imprimir los primeros 15 numeros decrecientemente

entero i
inicio
desde i ← hasta i=15 decrementa i
escribir (i)
fin_desde
fin

Ejemplo 5.11 Imprimir todas las letras del alfabeto de forma invertida.

//algoritmo 5.11 imprimir el alfabeto invertido.

char Letra
inicio
escribir("Estas son las letras del alfabeto: ")
desde Letra='Z' hasta Letra='A' decremento Letra
escribir(Letra)
fin_desde
fin

Ejemplo 5.12 Imprimir en la pantalla la tabla de multiplicar de un número , utilizando la estructura de control
for.

//algoritmo 5.12 tabla de multiplicar con desde

entero i,n
inicio
escribir("DAME EL NUMERO DE TABLA DE MULTIPLICAR : ")
leer(n)
desde i ← 1 hasta i>=10 incrementa i
escribir(n,i,n*i)
fin_desde
fin

Ejemplo 6.1 Leer y almacenar 7 estaturas, mostrarlas en forma tabular.

//algoritmo 6.1 Leer y mostrar 7 estaturas

constante TAMANO 7
real estatura[TAMANO]
entero i
inicio
desde i hasta i=6 incremento i
escribir (“ dame la estatura “)
leer(estatura[i])
fin_desde
escribir(“ num estatura ”)
desde i ← 0 hasta i=TAMAÑO incrementa i
escribir (“ i+1, estatura[i])
fin_desde
fin

Ejemplo 6.2 Este programa cuenta el número de ocasiones que aparece la letra ‘a’ en una línea.

//algoritmo 6.2 cuenta a

entero CuentaCar
caracter Cadena
inicio
CuentaCar ←0
mientras (Cadena<> EOF
Cadena ← getchar()
si (Cadena=’a’)
++CuentaCar
fin_mientras
escribir (“Aparecieron”,CuentaCar,”veces la letra ‘a’ ”)
fin
Ejemplo 6.3 Imprimir en pantalla un nombre en letras mayúsculas, que fue leído en letras minúsculas.

//algoritmo 6.3 mostrar un nombre en mayúsculas

caracter Cadena
inicio
escribir (“Escriba su nombre: “)
mientras (Cadena <> ’\0’)
Cadena ← getchar()
putchar(toupper(Cadena))
fin_mientras
fin
Ejemplo 6.4 Almacenar un nombre en el arreglo denominado Mi Nombre.

//algoritmo 6.4 almacenar un nombre

caracter MiNombre[50]
inicio
escribir (“ Escriba su nombre: “)
leer (MiNombre)
escribir (“Hola Mi nombre es ”)
escribir (MiNombre)
fin

Ejemplo 7.1 Leer y mostrar los datos de un alumno y de un profesor, el ejemplo es utilizando la definición de
estructura como una variable local.

//algoritmo 7.1 estructuras como variables locales.

inicio
registro: agenda
caracter nombre[30]
entero: edad
fin_registro
registro agenda: alumno,profesor

/*inicializar */
alumno.nombre[0] ← '0'
alumno.edad ← 0
profesor.nombre[0] ← '0'
profesor.edad ← 0

/*asignación */
escribir(" dame el nombre del alumno ")
leer(alumno.nombre[0])
escribir (" dime la edad ")
leer (alumno.edad)
escribir (" dame el nombre del profesor ")
leer (profesor.nombre)
escribir (" dime la edad ")
leer (profesor.edad)

/*imprimir */
escribir ("nombre edad");
escribir (alumno.nombre,alumno.edad);
escribir (profesor.nombre,profesor.edad);
fin

Ejemplo 7.2 Muestra el nombre y la estatura de un alumno, (manejo de una estructura como variable global).

//algoritmo 7.2 estructuras y variables globales

registro: agenda
caracter nombre[30]
real estatura
fin_registro

inicio
registro agenda: alumno

/* inicializar */
alumno.nombre[0] ← '0'
alumno.estatura ← 0

/* asignación */
escribir (" dame el nombre del alumno ")
leer (alumno.nombre[0])
escribir (" dime la estatura ")
leer (alumno.estatura)

/* imprimir */
escribir ("nombre")
escribir (alumno.nombre,alumno.estatura);
fin

Ejemplo 7.3 Solicita y muestra nombre y tres calificaciones para cada alumno, pueden ser hasta diez alumnos.
(arreglo de estructuras).

// algoritmo 7.3 arreglo de estructuras

constante MAX 10
inicio
registro:
caracter nombre[30]
entero calificacion[3]
fin_registro:alumno[MAX]

entero i,j,n

/* inicializar */
desde i ← 0 hasta i<MAX incremento i
alumno[i].nombre[0] ← '\0'
desde j ← 0 hasta j<3 incremento j
alumno[i].calificacion[j] ← 0
fin_desde
fin_desde

/* agregar elementos */
i ← 0
escribir (" \n cuantos elementos se insertaran \t");
leer (n)
mientras (i<n)
escribir (" dame el nombre ",i+1)
leer (alumno[i].nombre[0])
desde j ← 0 hasta j<3 incremento j
escribir (" dame la calificacion ",j+1)
leer (alumno[i].calificacion[j])
fin_desde
i++
fin_mientras
/* imprimir */
escribir ("nombre calificacion 1 calificacion 2 calificacion ")
desde i ← 0 hasta i<n increment i
escribir (alumno[i].nombre)
desde j ← 0 hasta j<3 incremento j
escribir (alumno[i].calificacion[j])
fin_desde
fin_desde
fin

Ejemplo 7.4 Muestra nombre, tres calificaciones y estatura para un alumno, el nombre esta separado por
nombre, apellido paterno y apellido materno.

//algoritmo 7.4 manejo de estructuras anidadas

inicio
entero j
registro: nombre_com
caracter nombre[30]
caracter apellidopat[15]
caracter apellidomat[15]
fin_registro

registro: agenda
registro nombre_com: nombrec
entero calificacion[3]
real estatura
fin_registro: alumno

/* inicializar */
alumno.nombrec.nombre[0] ← '\0'
alumno.nombrec.apellidopat[0] ← '\0'
alumno.nombrec.apellidomat[0] ← '\0'
desde j ← 0 hasta j<3 incremento j
alumno.calificacion[j] ← 0
fin_desde
alumno.estatura ← 0

/* agregar un elemento */
escribir ("dame el nombre ")
leer (alumno.nombrec.nombre)
escribir (" apellido paterno ")
leer (alumno.nombrec.apellidopat)
escribir (" apellido materno ")
leer (alumno.nombrec.apellidomat)
desde (j ← 0 hasta j<3 incremento j
escribir (" dame la calificacion ",j+1)
leer (alumno.calificacion[j])
fin_desde
escribir (" dame la estatura")
leer (alumno.estatura)

/* imprimir */
escribir ("nombre calificacion 1 calificacion 2 calificacion 3
estatura")
escribir (alumno.nombrec.nombre)
escribir (alumno.nombrec.apellidopat)
escribir (alumno.nombrec.apellidomat)
desde j ← 0 hasta j<3 incremento j
escribir (alumno.calificacion[j])
fin_desde
escribir (alumno.estatura)
fin

Ejemplo 7.5 Usando un nuevo tipo de dato, almacenar en una estructura un dato de tipo int y otro de tipo float,
mostrar en pantalla.

//algoritmo 7.5 manejo de un Nuevo tipo de dato

definirtipo entero entero


definirtipo registro
real numReal
entero n
fin_registro: tipo

inicio
entero a
tipo b
a ← 10
b.n ← 1
b.numReal ← 1.10
escribir (a,b.n,b.numReal)
fin

Ejemplo 7.6. Definir dos variables y dos apuntadores a esas variables, asignar valor a las variables usando los
apuntadores.

//algoritmo 7.6 manejo de apuntadores

entero dato1
puntero_a entero apint

real dato2
puntero_a real apfloat

inicio
escribir (" Manejo de apuntadores 1")
// Asignando la direccion a los apuntadores
apint ← dato1
apfloat ← dato2

// Asignando valores a las variables


apint ← 3
apfloat ← 3.2

escribir (" dato1”,dato1,“dirección dato 1”, dato1, “contenido


apuntador “,apint)
escribir (" dato2”, dato2, “direccion dato 2”, dato2, “contenido
apuntador”, apfloat)
// modificando las variables
apint ← 45
apfloat ← 51.3
escribir (" dato1”,dato1, “direccion dato 1 “, dato1,”contenido
apuntador”,apint)
escribir (" dato2 “,dato2,” direccion dato 2 “, dato2,” contenido
apuntador”,apfloat)
fin
Ejemplo 7.7 Realizar operaciones aritméticas con apuntadores y mostrar el resultado, la primera variable
inicializa con el valor de 3, luego se obtiene el residuo de dividir entre 2 y finalmente se incremente en 1. La
segunda variable de tipo float, inicia con el valor 3.2, después se le suma 10 y finalmente se decrementa en uno.

// algoritmo 7.7 aritmetica de apuntadores

inicio
// declaracion de variables y apuntador a ese tipo de variable
entero dato1
puntero_a entero apint

real dato2
puntero_a real apfloat

escribir (“ Aritmetica de apuntadores 2")

// Asignando la direccion a los apuntadores


apint ← dato1
apfloat = dato2

// Asignado valores a las variables y aplicando residuo y suma


apint ← 3
apfloat ← 3.2

escribir (" dato1 valor inicial ", apint)


escribir (" dato2 valor inicial ", apfloat)

apint ← apint residuo 2


apfloat ← apfloat + 10

escribir (" dato1 residuo 2 ", apint)


escribir (" dato2 sumado 10 ", apfloat)

// operador de incremento y decremento


apint ← ++(apint)
apfloat ← --(apfloat)

escribir (" dato1 incrementado ", apint)


escribir (" dato2 decrementado ", apfloat)
fin

Ejemplo 7.8 En una estructura anidada, leer los datos del nombre completo y la edad, accediendo mediante un
apuntador a estructura.

// algoritmo 7.8 manejo de estructuras con apuntadores

registro: t_nombre
caracter nom[10]
caracter apem[10]
caracter apep[10]
fin_registro

registro: t_datos
registro t_nombre nombrec
entero edad
fin_registro

puntero_a registro t_datos nn


registro t_datos n
nn=n

inicio
escribir (" Leer datos ")
escribir (" nombre ")
leer ( nnombrec.nom)
escribir (" apell mat ")
leer ( nnnombrec.apem)
escribir (" apellido paterno ")
leer ( nnnombrec.apep)
escribir (" edad ")
leer ( nnedad)
escribir (" Mostrar datos ")
escribir (" nombre “,nnnombrec.nom)
escribir (" ap paterno: ",nnnombrec.apep)
escribir (" ap materno: ",nnnombrec.apem)
escribir (" edad: ",nnedad)
fin

Ejemplo 8.1 Pasos para resolver el simple problema de la suma de dos numeros, mediante una función sin paso
de parámetros y sin devolver valor.

//algoritmo 8.1 funcion suma sin parámetros

ninguno funcion: suma1()


real a,b,c
escribir (“teclea el primer número”)
leer (a)
escribir (“teclea el segundo número”)
leer(b)
c ← a+b
escribir(c)
fin_funcion

inicio
suma1()
fin

Ejemplo 8.2 Programa que calcule el promedio individual de un conjunto de alumnos.

//algoritmo 8.2 calculo del promedio individual de un conjunto de


alumnos.
ninguno funcion: prom( )
entero n, i
real c, p ← 0
escribir(“¿Cuántas materias se le van a promediar al alumno?”)
leer(n)
desde i ← 1 hasta i<=n incrementoi
escribir(“Teclea la calificación”)
leer(c)
p ← p+c
fin_desde
p ← p/n
escribir (p)
fin_funcion

inicio
entero resp
hacer
prom()
escribir(“Si deseas promediar otro alumno teclea 1”)
leer(resp)
hasta_que(resp=1)
fin

Ejemplo 8.3 Diseñaremos la solución para el caso de la suma de dos numeros, mediante una función que
regresa un valor, por supuesto lo que regresa es el resultado del cálculo de la suma.

// algoritmo 8.3 con algunas variaciones

real funcion: suma1()


real a,b,c
escribir(“teclea el primer ”)
leer(a)
escribir(“teclea el segundo ”)
leer(b)
c ← a+b
devolver c
fin_funcion

inicio
real res
res ← suma1()
escribir(res)
fin

Ejemplo 8.4 Retomando el ejemplo de la función que calcula el promedio, ahora se diseñará un programa donde
la función regrese un valor y ese valor se acumule en una variable en main para luego obtener el promedio
grupal de n alumnos.

//Algoritmo 8.4 diseño de la función prom() con regreso de valor

real funcion: prom()


entero n, i
real c,p ← 0
escribir(“Cuántas materias se le van a promediar al alumno?”)
leer(n)
desde i ← 1 hasta incremento i
escribir(“Teclea la calificación”)
leer(c)
p ← p+c
fin_desde
p ← p/n
devolver p
fin_prom

inicio
entero resp, c ← 0
real promg ← 0
hacer
promg ←promg + prom()
escribir(“Si deseas promediar otro alumno teclea 1”)
leer(resp)
si(resp)
c ← c+1
hasta_que (resp=1)
escribir(“El promedio general de los alumnos es, promg/c )
fin

Ejemplo 8.5 Calcular el área de un trapecio.

//Algoritmo 8.5 calculo del área de un trapecio

real sumabases ()
real bm,BM
escribir(“Dame la base menor ”)
leer((bm)
escribir(“Dame la base mayor”)
leer((Bm)
devolver (bm+BM)
fin_funcion

real funcion: area ()


real h
escribir(“Dame la altura ”)
leer((h)
devolver sumabases () * h/2
fin_funcion

inicio
escribir(area() )
fin

Ejemplo 8.6 Se analizará el siguiente ejemplo, en el cual se resuelve nuevamente el problema de la suma de dos
numeros, pero ahora mediante una función con paso de parámetros por valor.

//Algoritmo 8.6 diseño de la función que suma dos números, con paso de
parámetros

real suma3(real a, real b)


devolver a+b
fin_funcion
inicio
real n1, n2, c
escribir(“Dame el primer valor”)
leer(n1)
escribir(“Dame el segundo valor”)
leer(n2)
c ← suma3(n1,n2)
escribir(“La suma es ”, c)
fin

Ejemplo 8.7 Retomando la función para sumar dos numeros, hagamos unos ligeros cambios a main para que el
programa calcule la suma de cuatro numeros.

//Algoritmo 8.7 suma de cuatro números utilizando la función suma3 con


paso de parámetros.

real funcion: suma3(real a, real b)


devolver a+b
fin_funcion

inicio
real n1, n2, n3, n4, c
escribir(“Dame el primer valor”)
leer(n1)
escribir(“Dame el segundo valor”)
leer(n2)
escribir(“Dame el tercer valor”)
leer(n3)
escribir(“Dame el cuarto valor”)
leer(n4)
c ← suma3(suma3(n1,n2),suma3(n3,n4))
escribir(“La suma es ”, c)
fin

Ejemplo 8.8 Programa con dos funciones, una que calcule el cuadrado de un número y la segunda calcule el
cubo, ambas regresan el resultado.

//Algoritmo 8.8 calcula el cuadrado o el cubo de un número que elija el


usuario.

entero funcion:cuadrado(entero x)
regresa(x * x)
fin_funcion

entero funcion:cubo(entero y)
regresa cuadrado(y)*y
fin_funcion

inicio
entero opc, n
escribir(“Elige una opción 1) CUADRADO\n 2) CUBO\n”)
leer((opc)
escribir(“Dame el numero a elevar”)
leer(n)
según_sea(opc)
caso 1: escribir(cuadrado(n))
caso 2: escribir(cubo(n))
si_no : escribir(“ERROR”)
fin_según_sea
fin

Ejemplo 8.9 Realizar una función que intercambia dos valores entre si.

//Algoritmo 8.9 Función que intercambia dos valores entre si.

ninguno funcion: intercambio(entero x, entero y)


entero aux
aux ← x
x ← y
y ← aux
fin_funcion

inicio
entero n1,n2
leer(n1,n2)
intercambio(n1,n2)
escribir(“Los valores son n1 = y n2 = ”, n1,n2)
fin

Ejemplo 8.10 Realizar una función que intercambia dos valores entre si, utilizando parametros por referencia.

//Algoritmo 8.10 Funcion que intercambia dos valores entre si, utilizando
parametros por referencia.

ninguno funcion: intercambio(puntero_a entero x, puntero_a entero y)


entero aux
aux ← x
x ← y
y ← aux
fin_ funcion

inicio
entero n1,n2
leer(n1,n2)
intercambio( n1, n2)
escribir(“Los nuevos valores son n1 = y n2 = ”, n1,n2)
fin

Ejemplo 8.11 Realizar una función que intercambia dos valores entre números, utilizando parámetros uno por
valor y otro por referencia.

//Algoritmo 8.11 funcion que intercambia dos valores entre si, utilizando
un parametro valor y otro por referencia.

ninguno func(entero a, puntero_a entero b)


a ← a+5
b ← b+2
fin_funcion

funcion principal ()
entero x,y
leer (x,y)
func(x,y)
escribir (“El valor de x es de”,x, “ y el de y es de ”,y)
fin_funcion

Das könnte Ihnen auch gefallen