Você está na página 1de 45

ALGORITMO Y ESTRUCTURA DE DATOS

DATO ALGORITMO

Esttico Dinmico Informacin

Dato: Es un mensaje, este mensaje debe ser independiente del medio.

Informacin: Es la interpretacin del mensaje o datos procesados, la informacin es


dependiente del medio, es decir que es subjetiva.

Ejm:

Edad: 2aos
Dato 10 aos

25aos

Reporte de Alumnos

Informacin Cdigo Apellidos y Nombres


------------- --------------------------
------------- --------------------------
------------- --------------------------

TIPOS DE DATOS

Esttico Dinmico

Simples Estructurados
a) Ordinales

Enteros: -3,-2,-1, 0, 1, 2,3

Caracteres: A, B, C,, Z

a, b, c,,z

0, 1, 2,.9

*,/

Nota: Los caracteres estn ordenados mediante el cdigo


ASCII

Carcter: A, B, C

65 66 67

a, b, c

97 98 ..

Lgicos: falso (F) y verdadero (V)

Nota: 5 > 2 (V)

20 > 20 (V)

b) No Ordinales

Reales: , e.

A. OPERADORES ARITMETICOS
OPERADOR: Suma, resta, multiplicacin, division

DIV: Divisin entera

MOD: Resto de la divisin entera

Ejm: 5/3

2 Residuo 1 Cociente

Nota: Si queremos averiguar si un numero entero es par


debemos verificar

Si: (nmero MOD 2 = 0)


B. OPERADORES DE COMPARACIN O RELACIN
.OPERADOR:
< MENOR QUE

MAYOR IGUAL QUE


MENOR IGUAL QUE

>MAYOR QUE

= IGUAL

DIFERENTE

Ejem: 5 < 8 verdadero

(X )

1 + (7 MOD 2) > 3 (7 DIV 2)

2 > 0 = verdadero

C. OPERADORES LGICOS

~ NEGACION

^ CONJUNCION

V DISYUNCION

Si (condicin 1 v condicin 2)

V F

IDENTIFICADORES

Un identificador es un conjunto de caracteres con las siguientes caractersticas:

1. Debe empezar con una letra y no contener el carcter espacio en blanco


( b ) Ejm: num 1 x
Num
2. Solo puede contener los caracteres letras, dgitos y el subrayado (_)

Identificadores validos No validos


X1 1x
X1 Xb1
Max1 Maxb1
Raz_1 Raz-1
Suma_2 Suma*2

3. Debe ser diferente de las palabras reservadas para los algoritmos.


PALABRAS
RESERVADAS

Inicio
Fin
Leer NOTA: los identificadores
Escribir (vlidos) permiten dar nombre a
las variables utilizadas en los
Si algoritmos
Entonces
Repetir
Desde
Mientras
En caso

CONSTANTES

Una constante es un identificador vlido cuyo valor no se puede modificar

Formato:

Const nomb_const = valor


Ejm:

Const PI = 3.141542
NOTA: Las constantes se
N = 40 escribirn en maysculas.

Letra = R / LETRA = R

VARIABLES

Una variable es un identificador vlido, cuyo valor puede variar

Var nomb_var: tipo dato


Ejm: NOTA: Las variables se
escribirn en minsculas
Var x: real

m, n, p: entero

Estado: lgico
D OPERADOR DFE ASIGNACION
Ejm:
Para las variables x, m, n, p, estado
x 1.3
m 1
Estado (p > 8)
n 0
p 2*m+n

ACUMULADOR

Es un valor que permite acumular o sumar

Formato:

nomb_var nomb_var + exp_num

Ejm:

S S + num

s 0

num 20 s 20 + 20

s 20 s 40 s 60

CONTADOR

Es un caso particular del acumulador en donde la expresin numrica es 1

Formato:

Var_cont Var_cont + 1
s 0 ( * acumulador *)

cont 0 ( * contador *)

num 20

s s +num

cont cont + 1

prom s/cont

ALGORITMO

UN ALGORITMO ES UN CONJUNTO DE PASOS QUE PERMITEN RESOLVER


UN PROBLEMA. PRESENTA LAS SIGUIENTES CARACTERISTICAS:
DEBE SER FINITO DEBE
SER ORDENADO DEBE
SER BIEN DEFINIDO
DEBE SER
CONCISO EJM:
1. Leer variable
2. Procesar
3. Escribir
EJEMPLO:

Mostrar el promedio de tres notas


1) Datos de entrada:
Nota1, nota2,
nota3
2) Proceso:
Promedio (nota1 + nota2 + nota3)/3
3) Salida
Escribir
(promedio)

DATOS PROCESO PROMEDIO


DE
ENTRAD
A

nota1, nota2, nota3


REPRESENTACION DE LOS
ALGORITMOS

1. DIAGRAMA DE FLUJO
2. PSEUDOCODIGO

DIAGRAMA DE FLUJO

Es la representacin grfica del algoritmo mediante los siguientes smbolos.


Smbolo:

INICIO / FIN

LEER / ESCRIBIR

PROCESO

CONDICION
Ejemplo 1

Para un total de minutos indicar cuantas semana, das, horas y minutos hay

Total de minutos = 57678


Sol: Diagrama de flujo

INICIO

LEER

TMIN

min tmin MOD 60


tmin tmin DIV 60
horas tmin MOD 24
tmin tmin DIV 24
das tmin MOD 7
semanas tmin DIV 7

LEER

SEMANAS, DIAS, HORAS, MIN

FIN
PSEUDOCODIG
O VAR

tmin, min, horas, das, semanas: Entero

INICIO

min = tmin MOD 60


tmin = tmin DIV 60

Horas = tmin MOD 24

tmin = tmin DIV 24

dias = tmin MOD 7


semanas = tmin DIV 7
Escribir (semanas, das, horas, min)
FIN
EJEMPLO 2

Dada una nota de la pc02 del curso de algoritmo y estructura de datos se desea agregar 2
puntos a la nota si es par, y quitar un punto si la nota es impar.

18 20

13 12

num = 0

num_par = n

num_par = numpar + 2

num_impar=numpar +1

0+2

2+2
INICIO

LEER

nota

nota_m = nota (nota MOD 2)+2(1-nota MOD 2)

ESCRIBIR

nota_m

FIN

PSEUDOCODIG
O VAR

Nota, nota_m: Real

INICIO

nota_m = nota (nota MOD 2) + 2 (1-nota MOD 2)


Escribir (nota_m)
FIN
EJEMPLO
3
Dado un ao averiguar si es bisiesto

2000: 4 (bisiesto)

2020: 4 (bisiesto)

1980: 4 (bisiesto)

2100: 4 (no bisiesto)

Ao
4
EJEMPLO 3:
Dado un ao averiguar si es bisiesto o no
2000 4(bisi)

2020 4(bisi)
4 100: condicin 1
1980 4(bisi)
Ao 400 condicin 2
2100 4(no bisi)

SOL:

IINNIICCIIOO

LLeeeerr

aannnniioo

Annio MODM ODD110000 00))vv((aannnniioo


^^((aannnniioo MO
MO
ODD440000=0

AAoobbiissiieessttoo AAoonnoobbiissiieessttoo

Escribir

Mensaje

FIN
PSEUDOCODIGO

Var annio: Entero

Mensaje: Cadena

INICIO

SI ((annio MOD 4 = 0) ^ (annio MOD 100 0) v (annio MOD 400 = 0))


Mensaje (Ao Bisiesto)
SINO

Mensaje (Ao no Bisiesto)


FIN SI
Escribir (Mensaje)
FIN

EJEMPLO 4:

Del ejemplo anterior, dado un mes imprimir el nmero de das

Annio=2000

Mes=3

Dias=31

1, 3, 5, 7, 8, 10, 12 = 31

4, 6, 9, 11 = 30

2 = 28, 29

INSTRUCCIONES DE CONTROL

Las instrucciones de control permiten controlar el flujo de datos en el algoritmo. Las


instrucciones de control se clasifican en:
1. SECUENCIAL: Son aquellas que se ejecutan en el orden en que aparecen
2. SELECTIVAS: Son aquellas que permiten elegir o seleccionar hacia dnde va el flujo
de datos
3. REPETITIVAS: Son aquellas que permiten repetir un conjunto de instrucciones

INSTRUCCIONES SELECTIVAS

a) SELECTIVA SIMPLE

CONDICION

SON: V SON:
PSEUDOCODIGO

SI (condicion) entonces FUNCIONAMIENTO


Sent V *SI la condicin es verdadera
SINO ejecuta sent V, en caso contrario
sent F
Sent F

FIN SI

NO:

F V SI (condicin) entonces
CONDICION
sent V

FIN SI

EJEMPLO 5:

Determinar el mayor elemento de tres nmeros

Leer: 18, 20, 25

INICIO

a,b,c

a<c
Max = a Max
=c

Max = b

Escribir Max

FIN
EJEMPLO 6:

Determinar en forma decreciente tres nmeros reales

SOL:
INICIO

SI (a < b) entonces

SI (b < c) entonces

Escribir (c, b, a)
SINO (* c b *)
SI (a < c) entonces

Escribir (b, c, a)

SINO (* c a *)

Escribir (b, a, c)
FIN SI
FIN SI

SINO (* b a *)

SI (a < c) entonces

Escribir (c, a, b)

SINO (* c a *)

SI (b < c) entonces

Escribir (a, c, b)

SINO (* c b *)

Escribir (a, b, c)
FIN SI

FIN SI

FIN SI
FIN
INICIO

Leer a,b,c

FALSE TRUE
a<b
F T F T

a<c

F T F
T
ESCRIBI
R

a<c

Escribir Escribir Escribir Escribir

FIN

EJEMPLO 7:

Dado 4 numeros reales se desea ordenarlos en forma creciente

X, y, z, w x=2 y=4

X=4 y=2

Caso

Aux=x aux=2

X=y x=4

Y=aux y=2
Var a, b, c, d, aux: Real

INICIO

SI (a > d) entonces
aux = a

a=d

d = aux

FIN SI

SI (b > c) entonces
aux = b

b=c

c = aux

FIN SI

SI (a > b) entonces
aux = a

a=b

b = aux

FIN SI

SI (c > d) entonces
aux = c
c=d

d = aux

FIN SI

SI (b > c) entonces
aux = b
b=c

c = aux
FIN SI
Escribir (a, b, c, d)
FIN
EJEMPLO
8:

Dado dos fechas se desean averiguar la ms reciente

20/01/2017

18/03/2015
Var d1,m1,a1,d2,m2,a2

Leer (d1,m1,a1)
Leer (d2,m2,a2)
INICIO
N1=a1 * 10000 + m1 *100 + d1

N2=a2 * 10000 + m2 * 100 + d2

SI (n1 > n2) entonces


Escribir (a1,m1,d1)
SINO
Escribir (a2,m2,d2)
FIN SI

FIN

INICIO

Leer
d1,m1,a1,d2,m2,a2

F V
EJEMPLO 9:

Dado 6 nmeros ordenados en forma ascendente

A,b,c,d,e,f

SELECCCION MULTIPLE

DF

SELECTOR

CASO 1 CASO 2 CASO


3

SENT 1 SENT 2 SENT

PSEUDOCODIG
O En caso
(selector) Caso 1:
sent 1

Caso 2: sent 2

Caso 3: sent 3

Caso n: sent n

Fin caso break

FUNCIONAMIENT

El selector compara con cada uno de los casos, si hay coincidencia se realiza la sentencia
correspondiente y continua con el resto del algoritmo.

NOTA:

Selector, caso 1, caso 2,.caso n: Son datos ordinales

-2,-1,0, 1, 2
a,b,c,d,.
A,B,C,D,.
EJEMPLO
10:

Dado un ao y un mes mostrar el nmero de das

1, 3, 5, 7, 8, 10, 12 = 31
4, 6, 9, 11 =30 2 =28 y 29
Var annio, mes, n_dias: Entero

INICIO

Leer (annio)
Leer (mes)

En caso (mes)

Caso 1,3,5,7,8,10,12: n_dias = 31

Caso 4,6,9,11: n_dias = 30

Caso 2

SI ((annio MOD 4 = 0) ^(annio MOD 100 0)v(annio MOD 400 = 0)) entonces

n_dias = 29

SINO

n_dias = 28

FIN SI
FIN CASO

Escribir (n_dias)

FIN

INICIO

Leer annio,mes

1,3,5,7,8,10,12 mes 4,6,9,11

(4^100)^400
n_dias = 31 n_dias = 30
INTRUCCIONES REPETITIVAS

Bucles con el nmero de repeticiones pre_establecidas


PSEUDOCODIGO

Desde cont = V0 hasta Vf

SENTENCI
SENTENCIA

Fin desde
CONT

FUNCIONAMIENT
O

La sentencia repite desde que cont tiene el valor inicial (V0) hasta el valor final (Vf)
Ejem:

Desde i = 1 hasta 10

Escribir i

Fin desde

Desde i = 1 hasta 100

Si (i MOD 2 <>0) entonces


Escribir (i)
Fin si
Fin desde

EJEMPLO 11:

Empleando solo instruccin selectiva mltiple determine el mayor de 3 nmeros enteros

A,b,c

Var a,b,c: Entero

En caso (numero)

Caso: (a > b) ^ (a > c)


Si a = verdadero
Mayor
Fin si
Caso: (b > a) ^ (b > c)
B = mayor
Caso 2:
C = mayor
Fin caso
EJEMPLO 12:
Para n edades se desea determinar la menor y la mayor edad
Var cant_edad,edad,may,men: Entero
INICIO
Leer (cant_edad)
Desde i = 1 hasta cant_edad
Leer (edad)
Si (i=1) entonces
may = edad
men = edad
Sino
Si (edad > may) entonces
may=edad
Fin si
Si (edad < men) entonces
men=edad
Fin si
Fin si
Fin desde

Escribir (may,men)
Fin
EJEMPLO
13:

Empleando solo instruccin mltiple determinar el mayor de 3 nmeros enteros


INICIO
Leer (a,b,c)
En caso (a > b)
Caso: true
max = a
Caso: false
max =b
Fin caso
En caso (c > max)
max = c
Fin caso
Escribir (max)

Fin

EJEMPLO 14:
La empresa x y z soft SAC maneja las siguientes tablas para calcular el sueldo de empleado, se
multiplica el nmero de horas trabajadas, por el pago por hora
El pago por hora depende del turno (maana, tarde, noche). Y de la categora del empleado (1,
2, 3, 4,5)
PSEUDOCODIG
O
Var turno: Carcter
Cat, nhoras: Entero
Sueldo: Real
INICIO
En caso (turno)
Caso M: sueldo = nhoras * 25,5
Caso T: sueldo = nhoras * 26,2
Caso N: sueldo = nhoras * 30,2
En caso (cat)
Caso 1,2: sueldo = sueldo * 1.1
Caso 3: sueldo = sueldo * 1.15
Caso 4,5: sueldo = sueldo * 1.2
Fin caso
Escribir (sueldo)

Fin

EJEMPLO 15:
El curso de algoritmo cuenta con las secciones u, v, w, x e y, se desea determinar la mayor nota
por cada seccin y cuantas veces aparece, adems indicar la nota promedio por seccin

U: 18, 17, 17, 15, 19, 15, 18


V: 10, 10, 19, 20, 20, 20, 19
W: 05, 07, 19, 17, 17, 17 ,17
X: 01,05, 19, 20, 20, 19, 20
Y: 09, 10, 20, 19, 17, 17, 16

Var secc: Carcter


Nota,s,max: Real
N,i,cant: Entero
INICIO
Desde secc = u hasta y
Escribir (secc: + secc)
Leer (n)
S=0
Si (n > 0)entonces
Desde i = 1 hasta n
Leer (nota)
S = s + nota
Si (i = 1) entonces
max = nota
cont =1
Sino
Si (nota > max)
Cont = 1
Max =nota
Sino
Si (nota = max)
Cont = cont + 1
Fin si
Fin si
Fin si

Fin desde
Escribir (Max= + max)
Escribir (NRep= + cont)
Escribir (Promedio= + s/n)
Sino
Escribir (Seccion sin notas)

Fin si
EJEMPLO 16:
Para un conjunto de n nmeros reales determinar el nmero de veces que aparece el mayor
de los negativos y cuales
NOTA: Utilizar por los menos una variable de tipo lgico
Var l: lgico
INICIO Leer
(n)
L=verdadero
Desde i = 1 hasta n
Leer (num)
x
Si num > max_neg entonces Y
Max_neg = num
Cont = 1 Si ( l) entonces

Sino
Escribir (max_neg, cont)
Si (max_neg = num) entonces
Cont = cont + 1 Sino
Fin si
Fin si Escribir (No existen
Fin desde numeros negativos)

Fin si
Fin

BUCLE CON ENTRADA CONTROLADA


PSEUDOCODIGO

Mientras (condicin) hacer


DF:
SENTENCI
CONDICION F

Fin mientras

FUNCIONAMIENTO:

Mientras la condicin sea verdadera, se repite la sentencia, termina la repeticin


cuando la condicin es falsa
Esta instruccin repite la sentencia de 0 a ms veces
Evitar bucle infinitos
EJEMPLO 17:

Dado un numero entero positivo se desea averiguar si es capica

NOTA:

Var num, resul, d1, d2, d3, cnum: Entero

INICIO

Escribir (Digite el nmero)


Leer (num)
Cnum = num

D3 = cnum / 10

Cnum = num/10

D2 = cnum / 10
Cnum = num / 10

D1 = cnum / 10

Resul = d1 + d2 * 10 + d3 * 10 ^2

Si (resul = num) entonces


Escribir (El nmero es capica)
Sino

Escribir (El nmero no es capica)

Fin si
Fin
BUCLE CON SALIDA
CONTROLADA PSEUDOCODIG
DF: O: REPETIR:
SENTENCIA
SENTENCIA
F

CONDICIO HASTA QUE (CONDICION)


N

V
FUNCIONAMIENTO:

Primero, realiza la sentencia y luego verifica la condicin, si esta es verdadera termina el bucle,
en caso contrario vuelve a repetir la sentencia.
NOTA:

El nmero de repeticiones es de1 a mas


Esta instruccin permite validar entradas(nmeros, letras, secciones, niveles,
categoras, etc)
EJEMPLO:

1. Validar una nota de 0 a 20

Repetir

Leer (nota)

Hasta que (0 < = nota ^ nota < = 20)

2. Validar una seccin A, B, C


Repetir

Leer (secc)

Hasta que (secc = A v secc = B v secc = C)


Ejemplo 018

1210 base 2

12 2
0 3 2
6 2 11002=1x2 + 1x2 + 0x2+0

0
3 2 8 + 4 0

1 1 12

Pscudocodigo

VAR; NUMa;NUMb

Inicio

Leer num a

Leer num b
Inicio
Repetir

Leer (num)
HASTA QUE (num
>0) Repetir

Leer (b)

Hasta que (b>0^b<9)

P 1
Num_b 0

X num

Mientras
Mientras (x>o)
(x>o) entonces
Mientras (x>o) entonces
dentonces d xx MODMOD b b
d x MOD b
xx x DIV
x DIV b b
x x DIV b
num_b
num_b num_b+d
num_b+d *b*b
num_b num_b+d *b
Fin
Fin mientras
mientras
FinEscribir
mientras(num_b)
Fin
Practica

Var num 1,num 2,a ,b ,rest: Entero

Inicio
Leer num1
Leer num2
Si (num1>num2) entonces
A num1
b num2
Sino
B num1
A num2

Fin si

Leer (resto)

Hasta que /rest o

Mientras b!=o hacer

VAR a,b,MCD,MCM,aux,r Entero.

Inicio

Repetir

Leer (a, b)

Hasta que (a>o^b>o)

MCD a

Aux b

Repetir

R MCD, MOD aux

MCD aux

Aux r

Hasta que (r=o)

MCM a*b

MC
O

Escribir (MCO, MCM)


2. Pseudocodigo

Var hum, Entero

Inicio

Leer num

Mientras (<num ^ num MOD <>O) hacer

+1

Fin mientras

Si (num )

Escribir Numero es primo +,num.

Sino

Escribir nmero no es primo t,num.

Fin si

FIN

Inicio

Repetir

Leer (n)

Hasta que (n>o)

D 2

Primo verdadero

Mientras (d*d<= n ^ primo)

Si n MOD D=o

Primo false

Sino

D=d+1

Fin si

Fin mientras
Si (primo^ n>I) entonces

Escribir es primo

Sino
Escribir no es primo
Fin si
FIN

Ejemplo 021

Para un conjunto no determinado de valores enteros, se desea lleer hasta encontrar un


negativo. Luego indicar cuantos de los valores ingresados son impares.

2, 7, 11, 1,-3

Pseudocodigo

Var x, n : entero

Inicio

X o

Repetir

Leer (n)

Si (n.mad 2=1)

X x+1

Fin si

Hasta que (n<o)

Escribir (n, x)

FIN

Ejemplo 022

Para un conjunto de n empleados de la empresa X y Z soft. , se tiene la siguiente informacin:

Fecha de ingreso (d/m/a)


Sueldo

Para los empleados con la fecha de ingreso ms antigua, determine el menor sueldo y cuantas
veces aparece.
FECHA SUELDO NMEROS

12/10/1990 1500 19901012


19/06/2001 700 20010614
12/10/1990 1800 19901012
13/10/1990 1000 19901013
15702/2005 800 20050215
1271071990 1500 19001012

Fecha ms antigua: 12/10/1990

Menor sueldo: 1500

ARREGLOS

Definicin de un tipo de dato arreglo

Tipo tipo_arreg= Arreglo [dim, dimz,.. dim N] de tipo_dato.

Dnde:

dim,dim2..dim N:son datos ordinales

Con el siguiente formato: dim_inf.dim_sup

Limite Lmite
Inferior Superior

tipo_dato: Indicar de que tipo sern los elementos del arreglo.

Ejemplo:

Tipo vector=Arreglo [1..10] de entero.

Matriz =Arreglo [-55, AF] de real.

Declaracin de variables del tipo arreglo

Var var_array: Arreglo^dimi,.dim N] de tipo_dato

var_array:tipo_arreg.
Ejemplo:

Var a: vector

X: arreglo [o..10] de real

Y, z; matriz

X: vector Z

a[]: variable entero

1 2 . . . . . .
. 10

A:

Variable arreglo
A B F

-5

-4

Y: .

. Y [, J]:
variable real

Variable Arreglo

X []: variable
entero
10
X:

0 1 . . . . . . . . . . . . . . . .

Variable arreglo

Ejemplo 023

Para un conjunto de 50 personas se desean almacenar su edad. Cul ser la variable?

Var edad: Arreglo [150] de de entero

Cmo sera el ingreso de datos?

Desde 1 to
50

Leer (edad

[] Fin-desde
Cul es la menor edad?

Menor edad

[] Desde 2

hasta 50

Si (edad [] <menor) entonces

Menor edad

[] Fin si

Fin desde escribir (menor)

Cuntas veces se repite la menor edad?

cont 0

Desde 1 hasta 50

Si (edad []=menor)

entonces cont cont

t1

Fin si

Fin desde

Ejemplo 24

Para un conjunto de n(n 100) empleados se desean almacenar la siguiente informacin

Cdigo

(entero)

Sueldo (real)

Cules seran las

variables? Var cdigo

[1..100] de entero
Sueldo: arreglo [110] de real.
Cdigo sueldo

1 1
1
2
. .
3
. . . .
. .
. .
. .
. . . .

100 10
0
Cmo sera el ingreso de datos?

Repetir

Leer (n)

Hasta que (n>=1 ^

n<=100) Desde 1

hasta n Leer (cdigo [])

Leer (sueldo

[]) Fin desde

Cul es el mayor

sueldo? Max

sueldo [] Desde

1 hasta n

Si (sueldo []>max)entonces

Escribir cdigo

[] Fin si

Fin desde escribir (max)

Cules son los cdigos de los empleados con mayor sueldo?

Desde 1 hasta n

Si (sueldo []=max) entonces

Escribir cdigo

[] Fin si

Fin desde

Ejemplo 25

Para un conjunto de 20 alumnos se desea almacenar las notas de sus 4 prcticas calificadas del
curso de algoritmos y estructura de datos.

Cul ser la variable?

1 2 3 4

VAR nota: Arreglo [1.20, 1..4] de real

NOTAS: 15 20
Cul sera el ingreso de datos?

Desde 1 hasta 20

Desde J 1 hasta
4

Leer (nota

[J] Fin desde

Cmo presentara el promedio por alumno, eliminando 1 ra nota ms baja?

S 0

Desde 1 hasta 20

Menor nota [,1]

S nota

[,1]

Desde J 2 HASTA 4

SI (NOTA [, J] <menor)entonces

Menor nota [,J]

Fin si

S S+nota
[1,J]

Fin desde

Escribir (s-menor)/3

Fin desde

Ejemplo 26

Una empresa cuenta con 5 reas, cada rea esta dividida en 10 departamentos,cada
departamento consta de 4 secciones y en cada seccin laboran 10 empleados.

Cul seria la variable para almacenar los sueldos de todos los

empleados? Var sueldo=arreglo[15,1.10,1.4,1.10]de real

Cmo seria el ingreso de datos?


Desde I 1 hasta 5

Desde j 1 hasta 10

Desde k 1 hasta 4

Desde L 1 HASTA 10

LEER(SUELDO[,J,

K,L]) Fin desde

Fin desde

Fin desde

Fin desde

Ejemplo 27

Var cant Arreglo [15.40] de


entero,edad,,n:entero

Inicio

Repetir

Leer(n

) Hasta que

(n>O)

Desde edad 15 hasta 40

Cant [edad]

O Fin desde

Desde l to n

Leer (edad)

Can+[] cant[] +1

Can+[edad] can +[edad]+1

Fin desde edad

Desde 15 to 40

(edad++: + can +

[] Escribir

(edad + :+ can

+[edad] Otra forma

Fin desde

Fin
Tcnicas

ordenamiento
eliminacin
insercin

Ordenamiento

8 8 8 8 8 8

9 9 9 9 9 9 8

10 10 10 10 10 10 9

15 15 15 15 15 15 10

7 7 7 7 7 15
7

3 3 7
3 3 3 3

2 2 2 2 2 3
2
2

=1 Desde i 1 hasta n-
1
J +1 TO 7 Desde J +1 hasta n

=6

*Ordenamiento creciente o ascendente

Desde i = 1 hasta n - 1

Desde j = i + 1 hasta
n

Si (a [i] > a [j]) entonces

Aux=a [i]

a [i] = a [j]

a [j] = aux

Fin si

Fin desde

Fin desde
EJEMPLO 28:

Para un conjunto de n (n 40) notas se desea ordenar en forma decreciente

12 19
/* SALIDA*/
15 18
Desde i = 1 hasta n
18 15
Escribir (nota[i])
07 12
Fin desde
19 07

/* ORDENAMIENTO*/
Desde i = 1 hasta n-1

Desde j = i + 1 hasta n

Si (nota[i] < nota[j]) entonces


aux = nota[i]
nota[i] = nota[j]
nota[j] = aux

Fin si

Fin desde

Fin desde

/* LECTURA DE LAS
NOTAS*/ Desde i = 1 hasta n

Repetir

Leer (nota[i])

Hasta que (nota[i] >= 0 ^ nota[i] <= 20)

Fin desde

ELIMINACION
1 2 x x-1

Posicin a eliminar

NOTA:

1. Conocer la posicin K del elemento a eliminar


2. Desplazar los datos a partir de la posicin (K + 1) hasta n una posicin anterior
3. Disminuir al nmero de datos en 1
NOTA:
I) 1 2 3 4 5
II)
1. 2 3 4 8 7 1. m
10 2 7 7 3 2
K=4
1 2 3 4 5 6
2.
2 3 4 7
K=3

2. m
3. m= n-1
10 2 7 3 2 2

1 2 3 4 5
4

K=3

3. m

10 2 3 2 2 2

J=k

Mientras (j < n) hacer


n[j] = a [j + 1]

j=j+1

Fin mientras n = n 1

a [j] = a [j + 1] J =j+1
INSERCION DE UN ELEMENTO EN UN VECTOR

K K+1 n

Posicin de Insercin

Nota:

1. Averiguar si hay espacio en el arreglo para insertar, en caso afirmativo, ir al paso (2)
caso contrario termina.
2. Buscar la posicin de insercin
3. Desplazar todos los elementos desde la posicin K hasta n a la siguiente posicin.
4. Insertar en la posicin k el nuevo elemento.

A[K] Nuevo elemento

5. Incrementar la cantidad de elementos.

J n

Mientras (J >= K)

a [J+1] a [J+1]

J J-1

fin mientras

a [K] a [x]

n n+1

Ejemplo 029:

Para un conjunto de n alumnos (n <= 50) se desea almacenar por cada uno un cdigo y una nota.
Para los datos de un nuevo alumno (cod y nota) insertar en el arreglo si el cdigo no existe.
Pseudocdigo: Ejemplo 029

Var cdigo, nota : arreglo [1,..,50] de entero


Inicio validar n
Repetir
Leer n
Hasta (n<= 50)
// Validar cdigo y la nota
Desde i hasta n
Leer (codigo)
Repetir
Leer (nota)
Hasta(nota>=0 ^ nota <= 20)

SUBPROGRAMAS:
Un subprograma es una rutina o trazo de cdigo que permite organizar y optimizar un algoritmo.

Problema 1
Problema 2_1
Problema Problema 2
Problema 2_2
Problema 3

Diseo descendente o diseo top Down o de descomposicin.


Solucin 1
Solucin 2-1

Solucin 2 Solucin
Solucin 2-2
Diseo Ascendente o diseo
Solucin 3
Button up o de Interpretacin
Pseudocodigo
Pseudocodigo Tipo
Tipo Const
Const
Var
Var
Inicio
Inicio
. SubPrograma 1 F1
. SubPrograma 1 F2
.
. SubPrograma 1 F3
fin fin

Los subprogramas se divide en


Funciones y procedimientos

Funcin:

Rutina que retorna va valor


Se utiliza para obtener un valor

Ejm:

El valor Max, Min, promedio, etc.

Procedimiento:

Rutina que realiza una tarea de proceso


Se utiliza para
Ordenar
Insertar
Eliminar
Mostrar mensaje etc

Funcin:
Formato
Funcin nomb_func(Lista_parametros):Tipo: dato
< Zona local para tipos, const, var>

Inicio
.
.
Nomb_func valor_retorno Cuerpo de la funcin
.
fin
Procedimientos:
Formato:

Proceso nomb_proc (lista_Param)


<Local_tipo datos, const,var>

Inicio

Cuerpo del procedimiento

fin

Você também pode gostar