Вы находитесь на странице: 1из 29

Tema 2

Algoritmos y programas
Ejemplos
Informtica
Grado en Fsica
Universitat de Valncia

Francisco.Grimaldo@uv.es
Ariadna.Fuertes@uv.es
1
Programa: Nota final (1/4)
Realizar un programa que solicite las notas
obtenidas por un estudiante en cada una de las
partes de una asignatura y calcule su nota final
segn los siguientes porcentajes:
a)Nota del examen final: 40 %
b)Nota de los exmenes parciales: 40 %
c)Nota de prcticas: 20 %

La nota final del estudiante se calcula realizando


la media ponderada si ha obtenido una nota
mnima de 4 en cada una de las partes, o
tomando mnimo entre 4 y la media ponderada en
caso contrario.
2
Programa: Nota final (2/4)

1.- Anlisis del problema:


Datos de entrada: 3 notas (necesito 3 variables reales
para almacenarlas)
Datos de salida: nota final (otra variable real)

2.-Diseo/bsqueda del algoritmo


Procesado de la informacin: ver si la nota es la media
ponderada o si es el mnimo entre ese valor y 4.

3.-Programacin del algoritmo


Pseudocdigo u Organigrama

4.-Traduccin/ejecucin/comprobacin (en lab.)


3
Programa: Nota final (3/4)
Pseudocdigo: Variables:
a, b, c, m, n : reales
Inicio
Leer(a)
Leer(b)
Leer(c)
m (0.4*a+0.4*b+0.2*c)
Si1 a>4 AND b>4 AND c>4 entonces
nm
sino1
Si m<4 entonces
2
nm
sino
2
n4
Fin_si
2
Fin_si1
Escribir(n)
FIN 4
Programa: Nota final (4/4)
Organigrama: I

leer (a)

leer (b)

leer (c)

m(0.4*a+0.4*b+0.2*c)

No No
a>4 AND b>4 AND c>4? m<4?
S S
nm nm n4

escribir (n)

F 5
Programa: Calificacin (1/3)
Escribid un programa que pida al usuario la nota
de teora y de prcticas de un alumno y muestre
por pantalla la nota final y la calificacin, teniendo
en cuenta que:
La nota final corresponde al 60% de la nota de teora y
el 40% de la nota de prcticas.
La calificacin podr ser:
Sobresaliente, que es 9 o ms,
Notable, que va desde 7 hasta 9,
Aprobado, que es mayor a 5 y menor a 7,
Suspenso, cuando sea menor a 5.

6
Programa: Calificacin (2/3)
Pseudocdigo: Variables:
a, b, n : reales
Inicio
Leer(a)
Leer(b)
n (0.6*a+0.4*b)
Escribir(n)
Si1 n>=9 entonces
Escribir(Sobresaliente)
sino1
Si n>=7 entonces
2
Escribir(Notable)
sino
2
Si3 n>=5 entonces
Escribir(Aprobado)
sino3
Escribir(suspenso)
Fin_si3
Fin_si
2
Fin_si1
7
FIN
Programa: Calificacin (3/3)
Organigrama: I

leer (a)

leer (b)

n(0.6*a+0.4*b)

escribir (n)
S
n>=9? escribir (Sobresaliente)
No
S
n>=7? escribir (Notable)
No
S
n>=5? escribir (Aprobado)
No
escribir (Suspenso)

F 8
Programa: Ordenacin (1/3)
Escribid un programa que pida tres nmeros por
teclado y diga:
Si estn Ordenados de manera ascendente,
Si estn Ordenados de manera descendente,
o si estn Desordenados.

9
Programa: Ordenacin (2/3)
Inicio
Pseudocdigo: Leer(a)
Leer(b)
Leer(c)
Si1 a>b entonces
Variables: Si2 b>=c entonces
a, b, c : reales
Escribir(Descendente)
sino2
Escribir(No ordenados)
Fin_si2
Nota: Al ser reales, no
podemos comparar con el sino1
operador =, es decir, no Si3 a<b entonces
son exactamente Si4 b<=c entonces
iguales Escribir(Ascendente)
sino4
Escribir(No ordenados)
Fin_si4
sino3
Si5 b>c entonces
Escribir(Descendente)
sino5
Si6 b< c entonces
Escribir(Ascendente)
sino6
Escribir(Son todos iguales)
Fin_si6
Fin_si5
Fin_si3
Fin_si1
FIN
10
Programa: Ordenacin (3/3)
Organigrama: I

leer (a)

leer (b)

leer (c)
S
a>b? No
S No
a<b?
No No S
b>=c? b<=c? b>c? No
S S b<c?
S
escribir (Des) escribir (Asc) No
escribir (Asc)
escribir (No) escribir (No) escribir (Desc) escribir (Igual)

F 11
Programa: Tringulo (1/3)
Un tringulo cumple siempre la siguiente regla:
La suma de las longitudes de dos lados
cualesquiera es estrictamente mayor que la
longitud del tercer lado.
Cuando los tres lados son diferentes decimos que
el tringulo es escaleno, cuando los tres son
iguales lo llamamos equiltero y cuando al menos
dos lados son iguales el tringulo es issceles.
Cread un programa que pida al usuario la longitud
de tres lados y compruebe si a partir de ellos se
puede formar un tringulo y de qu tipo sera.

12
Programa: Tringulo (2/3)
Organigrama: I

leer (a)
Comprobar primero si
se puede construir o
no el tringulo leer (b)
leer (c)
S No
a+b>c AND a+c>b
AND b+c>a? escribir (No es)
a=b AND a=c? No

S ab AND ac No
AND bc?
escribir (Equi) S
escribir (Iss)
escribir (Esca)

F 13
Programa: Tringulo (3/3)
Pseudocdigo: Variables:
a, b, c : enteros
Inicio
Leer(a)
Leer(b)
Leer(c)
Si1 a+b>c AND a+c>b AND b+c>a entonces
Si a=b AND a=c entonces
2
Escribir(Equilatero)
sino
2
Si3 ab AND ac AND bc entonces
Escribir(Escaleno)
sino3
Escribir(Isosceles)
Fin_si3
Fin_si
2
sino1
Escribir(No se puede construir un triangulo)
Fin_si1
FIN
14
Programa: Sumar cifras (1/2)
Realizar un programa que devuelva la suma de
las cifras de un nmero entero positivo.

1.- Anlisis del problema:


Datos de entrada: 1 nmero entero positivo (necesito
1 variable entera para almacenarlo)
Datos de salida: suma de las cifras (otra variable
entera)
2.-Diseo/bsqueda del algoritmo
No permitir que se introduzca un nmero negativo.
Cuando sea positivo, extraer cada una de las cifras
dividiendo sucesivamente por 10 y quedndonos con
el resto (que es la cifra que buscamos) hasta que no
se pueda dividir ms.
3.-Programacin del algoritmo
15
Programa: Sumar cifras (2/2)
Organigrama: Pseudocdigo:
I Variables:
n, s : enteras
Leer (n) Inicio
Hacer
n<0? S Leer(n)
No Mientras1 (n<0)
s0 s0
Hacer
ss+n%10 ss+n%10
nn/10
nn/10 Mientras2 (n>0)
S Escribir(s)
n>0? FIN
No
escribir (s)

F
16
Programa: Secuencia numrica (1/3)

Escribir un programa que solicite al usuario un


nmero entero positivo n (si se introduce un valor
negativo se volver a pedir otro nmero hasta que
este sea positivo) y muestre una secuencia de
salida similar a (para n=6):

123456
12345
1234
123
12
1

17
Programa: Secuencia numrica (2/3)
Organigrama: I

Hacer...Mientras leer (n)

n<0? S
No
i1

S
i<n+1? escribir (i) ii+1
No
escribir (\n)

nn-1
S
n>0?
No
F 18
Programa: Secuencia numrica (3/5)
Pseudocdigo:
Variables:
Hacer...Mientras n, i : enteras
Inicio
Hacer
Leer(n)
Mientras1 (n<0)
Hacer
Desde i1 hasta n hacer
Escribir(i)
i i+1
fin_desde
Escribir(\n)
nn-1
Mientras2 (n>0)
FIN

19
Programa: Secuencia numrica (4/5)
Organigrama: I

Mientras...Hacer leer (n)

n<0? S
No
nn-1

escribir (\n)
No
i<n+1? S
escribir (i)

ii+1

i1
S
n>0?
No
F 20
Programa: Secuencia numrica (5/5)
Pseudocdigo: Variables:
n, i : enteras

Mientras...Hacer Inicio
Hacer
Leer(n)
Mientras1 (n<0)
Mientras2 (n>0) hacer
Desde i1 hasta n hacer
Escribir (i)
i i+1
fin_desde
Escribir(\n)
nn-1
Fin_mientras2
FIN

21
Programa: Cuenta nmeros (1/5)
Escribir un programa que lea nmeros enteros
positivos hasta que el usuario introduzca un 0
(valor centinela).

Adems, el programa mostrar por pantalla la


cantidad de nmeros ledos, el mayor, el menor y
el valor medio de los nmeros ledos.

22
Programa: Cuenta nmeros (2/5)
...
Organigrama:
1 aproximacin: Inicializar el
mnimo a algo muy pequeo y leer (i)
el mximo a algo muy grande
n n+1
I
avgavg+i
max INT_MIN
maxi No
min INT_MAX S i>max?

avg 0
mini No
i<min?
n 0 S S
i0?
No
leer (i)
avgavg/n

... escribir (n,max,min,avg)

F 23
Programa: Cuenta nmeros (3/5)
Pseudocdigo: Inicio
maxINT_MIN
minINT_MAX
Variables: avg0
n, max, min, i : enteros n0
avg : real Leer(i)
Mientras (i0) hacer
Si1 i<min entonces
min i
fin_si1
Si2 i>max entonces
max i
fin_si2
avg avg + i
nn+1
Leer(i)
Fin_mientras
avgavg/n
Escribir(n,max,min,avg)
FIN
24
Programa: Cuenta nmeros (4/5)
Organigrama:
2 aproximacin: Inicializar los n 1
valores mximo y mnimo al
primer dato
I n n+1
leer (i)
avgavg+i
leer (i)
maxi No
max i S i>max?

min i
mini No
avg i i<min?
S S
S i0?
i0?
No
No avgavg/n
escribir (No hay nmeros)
escribir (n,max,min,avg)
... F 25
Programa: Cuenta nmeros (5/5)
Inicio
Pseudocdigo: Leer(i)
max i
min i
avgi
Si i0 entonces
Variables: n1
n, max, min, i : enteros
Leer(i)
avg : real
Mientras (i0) hacer
Si1 i<min entonces
min i
fin_si1
Si2 i>max entonces
max i
fin_si2
avg avg + i
nn+1
Leer(i)
Fin_mientras
avgavg/n
Escribir(n,max,min,avg)
Si_no
Escribir(No hay nmeros)
Fin_si 26
Programa: Fibonacci (1/3)
La sucesin de Fibonacci es una secuencia
infinita en la cual el primer elemento es un 0, el
segundo es un 1 y el resto de elementos se
pueden expresar como la suma de los dos
elementos anteriores.

Escribir un programa que muestre por pantalla los


primeros n trminos de la sucesin de Fibonacci,
donde n es un nmero obtenido desde teclado.

27
Programa: Fibonacci (2/3)
Organigrama:
I ...
leer (n) i3

S ii+1
n<1?
No
f2f3
escribir (0)
f1f2
n>1? No
S escribir (f3)
escribir (1)
f3f1+f2
f10 i<n+1? S
No
f21

... F
28
Programa: Fibonacci (3/3)
Pseudocdigo: Variables:
n, i, f1, f2, f3 : enteras
Inicio
Hacer
Leer(n)
Mientras1 (n<1) hacer
Escribir(0)
Si n > 1 entonces
Escribir(1)
f1 0
f2 1
Desde i3 hasta n hacer
f3 f2+f1
Escribir(f3)
f1f2
f2f3
i i+1
Fin_desde
Fin_si
FIN 29

Вам также может понравиться