Vous êtes sur la page 1sur 65

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja


Curso-ONLINE
Programacin Bsica
Ing. Informtico Daniel Irene

CAPITULO #3:
ESTUDIO DE ALGORITMOS

Programa
Conjunto instrucciones = resultados

inicio

lectura

VARIABLES Y
CONSTANTES
//Pseudocdigo en PSeInt
Proceso sin_titulo
edad <-0;
anoNac <-0;
anoAct <-0;
Leer anoNac ;
FinProceso

asignacin
Dim edad, anoNac, anoAct As Integer
anoNac = Console.ReadLine()
escritura

fin

Const anoAct As Integer = 2009


Const PI As Double = 3.1416

Programa
Conjunto instrucciones = resultados

inicio

lectura

asignacin

OPERADORES
Aritmticos
^, *, /, div, \, mod, +, -, &
Relacionales
=, <>, <, >, <=, >=

escritura

fin

Lgicos
no (not), y (and), o (or)

Programa
Conjunto instrucciones = resultados

inicio

lectura

asignacin

EXPRESIONES O TRAS
FUNC.
Expresiones
(5 > 10) o (A < B)
(10 > 5) y (5 < 10+Num)

escritura

fin

Otras funciones
abs(x), arctan(x), sqr(x)

Programacin
Estructurada
Flujos

Secuenciales

Estructuras
SECUENCIALES

Son aquellas en las que una accin (instruccin) sigue a otra en secuencia.

comienzo
Inicio del programa

Cabecera del
programa. Seccin
de declaracin

lectura
Entrada de datos
asignacin
escritura

fin

Proceso de datos

Cuerpo del programa

Salida de datos
Fin del programa

Finalizacin

Estructuras de SELECCIN
comienzo
Inicio del programa
lectura
NO

SI

Cabecera del
programa. Seccin
de declaracin

Entrada de datos

condicin
Condicin
asignacin
escritura
fin

Proceso de datos

Cuerpo del
programa

Salida de datos
Fin del programa

Finalizacin

Estructuras REPETITIVAS
Estructuras que repiten una secuencia de instrucciones

NO
condicin

acciones
SI

SI

condicin

acciones

NO

MIENTRAS, WHILE

HACER MIENTRAS, DO - WHILE


i=1

acciones

condicin

i <= 50

NO

SI
REPETIR HASTA QUE, REPEAT

SI
proceso
i = i +1

DESDE PARA, FOR

NO

Programacin
Estructurada
Flujos

Secuenciales

Estructuras SECUENCIALES
Son

//Pseudocdigo en PSeInt
comienzo

lectura
asignacin
escritura
fin

Proceso SumarDosNumeros
intNum1 <- 0;
intNum2 <- 0;
intSumatoria <- 0;
Escribir "Deme dos numeros";
Leer intNum1, intNum2;
intSumatoria <- intNum1 + intNum2;
Escribir "La suma es = ", intSumatoria;
FinProceso

Estructuras SECUENCIALES
Son

comienzo

lectura
asignacin
escritura
fin

'Codificado en Visual Basic


Module SumarDosNumeros
Public Sub Main()
Dim intNum1, intNum2, intSumatoria As Integer
Console.WriteLine("Deme dos numeros")
intNum1 = Console.ReadLine()
intNum2 = Console.ReadLine()
intSumatoria = intNum1 + intNum2
Console.WriteLine("La suma es = " & intSumatoria)
Console.ReadLine()
End Sub
End Module

Programacin
Estructurada
Flujos

Secuenciales

Programacin
Estructurada
Flujos

Seleccin

Estructuras de SELECCIN

Pseudocdigo en espaol

condicin
NO

SI

Si {expresion_logica} Entoces
{acciones_por_verdadero}

Sentencia(s)

FinSi

Pseudocdigo en ingles

If {expresion_logica} Then
{acciones_por_verdadero}

End If

Estructuras de SELECCIN
Pseudocdigo en espaol

Si {expresion_logica} Entoces
{acciones_por_verdadero}
NO

condicin

SI

Sino
{acciones_por_falso

FinSi
Sentencia(s)
POR EL NO

Sentencia(s)
POR EL SI

Pseudocdigo en Ingles

If {expresion_logica} Then
{acciones_por_verdadero}

Else
{acciones_por_falso}

End If

Estructuras de SELECCIN
O de decisin:

comienzo
lectura
NO

CONDICIONES
SI

x Mod y

condicin

(5 > 10) o (A < B)


asignacin
escritura

(10 > 5) y (5 < 10)


cos (a) >= 0
no (40 > 2)

fin

Estructuras de SELECCIN
O de decisin:

comienzo
lectura
NO

CONDICIONES
SI

x Mod y

asignacin
escritura
fin

x Mod y
(5 > 10) o (A < B)
(10 > 5) y (5 < 10)
cos (a) >= 0
no (40 > 2)

Estructuras de SELECCIN
O de decisin:

comienzo
lectura
NO

CONDICIONES
SI

x Mod y

(5 > 10) o (A < B)

asignacin
escritura
fin

(5 > 10) o (A < B)


(10 > 5) y (5 < 10)
cos (a) >= 0
no (40 > 2)

Estructuras de SELECCIN
O de decisin:

comienzo
lectura
NO

CONDICIONES
SI

x Mod y

(10 > 5) y (5 < 10)

(5 > 10) o (A < B)


asignacin
escritura
fin

(10 > 5) y (5 < 10)


cos (a) >= 0
no (40 > 2)

Estructuras de SELECCIN
O de decisin:

comienzo
lectura
NO

CONDICIONES
SI

x Mod y

cos (a) > 0

(5 > 10) o (A < B)


asignacin
escritura
fin

(10 > 5) y (5 < 10)

cos (a) >= 0


no (40 > 2)

Estructuras de SELECCIN
O de decisin:

comienzo
lectura
NO

CONDICIONES
SI

x Mod y

no (40 > 2)

(5 > 10) o (A < B)


asignacin
escritura
fin

(10 > 5) y (5 < 10)


cos (a) >= 90

no (40 > 2)

Estructuras de SELECCIN

//Pseudocdigo en PSeInt
Proceso Modulo_MOD
x<-0;
z<-0;
Escribir "Ingrese valores para X y Z";
Leer x,z;
Si (x Mod z) = 0 Entonces
Escribir x, " ES exactamente divisible para ", z;
Sino
Escribir x, " NO es exactamente divisible para ", z;
FinSi
FinProceso

Estructuras de SELECCIN

'Codificado en Visual Basic


Module Modulo_MOD
Public Sub Main()
Dim x, z As Integer
x=0
z=0
Console.WriteLine("Ingrese valores para X y Z")
x = Console.ReadLine
z = Console.ReadLine
If (x Mod z) = 0 Then
Console.WriteLine(x & " ES exactamente divisible para " & z)
Else
Console.WriteLine(x & " NO es exactamente divisible para " & z)
End If
Console.ReadLine()
End Sub
End Module

Estructuras de decisin anidadas

Son estructuras en las que si la evaluacin de la expresin lgica resulta ser verd

V
condicin 1

Pseudocdigo en ingles
Sentencia(s) 1

F
condicin 2

F
condicin n

F
Sentencia(s) N+1

Sentencia(s) 2

Sentencia(s) N + 1

if {expresion_logica} then
<accin(es) SI 1>
else
if {expresion_logica} then
<accin(es) SI 2>
else
if {expresion_logica} then
<accin(es) SI n+1>
else
.
endif
.

endif

Estructuras de decisin anidadas

//Pseudocdigo en PSeInt
Proceso Mayor_TresNum
a<-0;
b<-0;
c<-0;
mayor<-0;
Escribir "Ingrese tres numero";
Leer a,b,c;
Si a>b Entonces
Si a>c Entonces
mayor<-a;
Sino
Si c>b Entonces
mayor<-c;
FinSi
FinSi
FinSi
Escribir "El mayor es A = ,mayor;
FinProceso

Estructuras de decisin
anidadas
'Codificado en Visual Basic
Module Mayor_TresNum
Public Sub Main()
Dim a, b, c, mayor As Integer
a=0
b=0
c=0
mayor = 0
Console.WriteLine("Ingrese tres numero")
a = Console.ReadLine()
b = Console.ReadLine()
c = Console.ReadLine()
If a > b Then
If a > c Then
mayor = a
Else
If c > b Then
mayor = c
End If
End If
End If
Console.WriteLine("El mayor es = " & mayor)
Console.ReadLine()
End Sub
End Module

Estructuras de decisin mltiple


A veces es necesario que existan mas de dos elecciones posibles. La estructura

Pseudocdigo en espaol
Segn_sea {variable_numerica} hacer
condicin

1
Sentencia(s)
S1

n
Sentencia(s)
S2

Sentencia(s)
Sn

{opcion_1}:
{secuencia_de_acciones_1}
{opcion_2}:
{secuencia_de_acciones_2}
{opcion_3}:
{secuencia_de_acciones_3}
De Otro Modo:
{secuencia_de_acciones_dom}
FinSegun

Estructuras de decisin mltiple


A veces es necesario que existan mas de dos elecciones posibles. La estructura

Pseudocdigo en Ingles

Select [ Case ] testexpression


Case expresin constante:

condicin

<accin(es)>
1
Sentencia(s)
S1

n
Sentencia(s)
S2

Sentencia(s)
Sn

Case expresin constante:


<accin(es)>
Case expresin constante:
<accin(es)>
[Case Else]
[<accin(es)>] ]
End Select

Estructuras de decisin mltiple


Ejemplo de estructuras de decisin mltiple:

//Pseudocdigo en PSeInt
Proceso Segun_ParesImpares
Escribir "deme un nmero del 1 al 10";
Leer num;
Segun num hacer
2, 4, 6, 8, 10:
Escribir "El nmero es PAR";
1, 3, 5, 7, 9:
Escribir "El nmero es IMPAR";
De Otro Modo:
Escribir "Nmero fuera de rango de entre el 1 al 10";
FinSegun
FinProceso

Estructuras de decisin mltiple


Ejemplo de estructuras de decisin mltiple:

'Codificado en Visual Basic


Module Segun_ParesImpares
Public Sub Main()
Dim num As Integer
Console.WriteLine("deme un nmero del 1 al 10")
num = Console.ReadLine
Select Case num
Case 2, 4, 6, 8, 10 :
Console.WriteLine("El nmero es PAR")
Case 1, 3, 5, 7, 9 :
Console.WriteLine("El nmero es IMPAR")
Case Else
Console.WriteLine("Fuera de rango de 1 al 10")
End Select
Console.ReadLine()
End Sub
End Module

Programacin
Estructurada
Flujos

Simples
If Then End If
Anidados

Seleccin

Dobles
If Then- Else End If

Mltiples
Select Case Case Else End Select

Programacin
Estructurada
Flujos

Secuenciales

Programacin
Estructurada
Flujos

Repetitivas

Estructuras REPETITIVAS

Estructuras que repiten una secuencia de instrucciones (iteraciones) un nmero d

NO
condicin

acciones
SI

SI

condicin

acciones

NO

MIENTRAS, WHILE

HACER MIENTRAS, DO - WHILE


i=1

acciones

condicin

i <= 50

NO

SI
REPETIR HASTA QUE, REPEAT

SI
proceso
i = i +1

DESDE PARA, FOR

NO

Estructuras REPETITIVAS
Mientras,

Pseudocdigo en espaol

comienzo

lectura

condicin
SI
acciones

fin

MIENTRAS - WHILE

NO

Mientras {expresion_logica} Hacer


{secuencia_de_acciones}
FinMientras
Pseudocdigo en ingls

While condition
[ statements ]
[ Exit While ]
[ statements ]
End While

Estructuras REPETITIVAS

//Pseudocdigo en PSeInt
Proceso Mientras_SumaPares
intSumaPares <- 0;
intContador <- 0;
intPar <- 0;
Mientras (intContador < 10) Hacer
intPar <- intPar + 2;
intContador <- intContador + 1;
Escribir intContador, " Par = [",intPar, "]";
intSumaPares <- intSumaPares + intPar;
FinMientras
Escribir "Suma 10 primeros pares es ", intSumaPares;
FinProceso

Estructuras REPETITIVAS
'Codificado en Visual Basic
Module Segun_ParesImpares
Public Sub Main()
Console.WriteLine("ESTRUCTURA REPETITIVA WHILE")
Dim intSumaPares, intContador, intPar As Integer
intSumaPares = 0
intContador = 0
intPar = 0
While (intContador < 10)
intPar = intPar + 2
intContador = intContador + 1
Console.WriteLine(intContador & " Par = [" & intPar & "]")
intSumaPares = intSumaPares + intPar
End While
Console.WriteLine("Suma 10 primeros pares es " & _
intSumaPares)
Console.ReadLine()
End Sub

Estructuras REPETITIVAS

Estructuras que repiten una secuencia de instrucciones (iteraciones) un nmero d

NO
condicin

acciones
SI

SI

condicin

acciones

NO

MIENTRAS, WHILE

HACER MIENTRAS, DO - WHILE


i=1

acciones

condicin

i <= 50

NO

SI
REPETIR HASTA QUE, REPEAT

SI
proceso
i = i +1

DESDE PARA, FOR

NO

Estructuras REPETITIVAS
Hacer-Mientras, Do

comienzo

lectura

acciones
SI
condicin
NO
fin

HACER MIENTRAS
DO - WHILE

Pseudocdigo en espaol
Hacer
<accin S1>

<accin Sn>
Mientras <condicin>
Pseudocdigo en ingls
Do
[ statements ]
[ Exit Do ]
[ statements ]
Loop { While } condition

Estructuras REPETITIVAS
Hacer-Mientras, Do

Codificado en Visual Basic


Module HacerMientras_SumaPares
Public Sub Main()
Console.WriteLine("ESTRUCTURA REPETITIVA & _
HACER-MIENTRAS")
Dim intPar, intContador, intSumaPares As Integer
intPar = 0
intContador = 0
intSumaPares = 0
Do
intPar = intPar + 2
intContador = intContador + 1
Console.WriteLine(intContador & " Par = [" & intPar & "]")
intSumaPares = intSumaPares + intPar
Loop While (intContador < 10)
Console.WriteLine("Suma 10 primeros pares es " & intSumaPares)
End Sub
End Module

Estructuras REPETITIVAS

Estructuras que repiten una secuencia de instrucciones (iteraciones) un nmero d

NO
condicin

acciones
SI

SI

condicin

acciones

NO

MIENTRAS, WHILE

HACER MIENTRAS, DO - WHILE


i=1

acciones

condicin

i <= 50

NO

SI
REPETIR HASTA QUE, REPEAT

SI
proceso
i = i +1

DESDE PARA, FOR

NO

Estructuras REPETITIVAS
Repetir Hasta-Que, Do

comienzo

lectura

Pseudocdigo en espaol
Repetir
{secuencia_de_acciones}
Hasta Que {expresion_logica}

acciones

Pseudocdigo en ingls

NO
condicin
SI
fin

REPETIR HASTA QUE


REPEAT

Do
[ statements ]
[ Exit Do ]
[ statements ]
Loop { Until } condition

Estructuras REPETITIVAS
Repetir Hasta-Que, Do

//Pseudocdigo en PSeInt
Proceso Repetir_SumaPares
intSumaPares <- 0;
intContador <- 0;
intPar <- 0;
Repetir
intPar <- intPar + 2;
intContador <- intContador + 1;
Escribir intContador, " Par = [",intPar, "]";
intSumaPares <- intSumaPares + intPar;
Hasta Que (intContador >= 10)
Escribir "Suma 10 primeros pares es ", intSumaPares;
FinProceso

Estructuras REPETITIVAS
Repetir Hasta-Que, Do

'Codificado en Visual Basic


Module Repetir_SumaPares
Public Sub Main()
Console.WriteLine("ESTRUCTURA REPETITIVA " & _
"REPETIR HASTA-QUE")
Dim intSumaPares, intContador, intPar As Integer
intSumaPares = 0
intContador = 0
intPar = 0
Do
intPar = intPar + 2
intContador = intContador + 1
Console.WriteLine(intContador & " Par = [" & intPar & "]")
intSumaPares = intSumaPares + intPar
Loop Until (intContador >= 10)
Console.WriteLine("Suma 10 primeros pares es " & intSumaPares)
Console.ReadLine()
End Sub
End Module

Estructuras REPETITIVAS

Estructuras que repiten una secuencia de instrucciones (iteraciones) un nmero d

NO
condicin

acciones
SI

SI

condicin

acciones

NO

MIENTRAS, WHILE

HACER MIENTRAS, DO - WHILE


i=1

acciones

condicin

i <= 50

NO

SI
REPETIR HASTA QUE, REPEAT

SI
proceso
i = i +1

DESDE PARA, FOR

NO

Estructuras REPETITIVAS
Desde-Para,

comienzo

Pseudocdigo en espaol

lectura

Para {variable_numerica}<-{valor_inicial} Hasta {valor_final} Con Paso {paso} Hacer


{secuencia_de_acciones}
FinPara

i=1
F
i <= 50
V

Pseudocdigo en ingls

proceso
i = i +1

fin

DESDE PARA
FOR

For counter [ As datatype ] = start To end [ Step step ]


[ statements ]
[ Exit For ]
[ statements ]
Next [ counter ]

Estructuras REPETITIVAS
Desde-Para,

DESDE contador = 0 HASTA limite [incremento decremento] HACER


<acciones>
FIN_DESDE

For counter [ As datatype ] = 0 To end [ Step step ]


[ statements ]
[ Exit For ]
[ statements ]
Next [ counter ]

Estructuras REPETITIVAS

//Pseudocdigo en PSeInt
Proceso Para_SumaPares
intSumaPares <- 0;
intContador <- 0;
intPar <- 0;
Para intContador<-1 Hasta 10 Con Paso 1 Hacer
intPar <- intPar + 2;
intSumaPares <- intSumaPares + intPar;
Escribir intContador, " Par = [",intPar, "]";
FinPara
Escribir "Suma 10 primeros pares es ", intSumaPares;
FinProceso

Estructuras REPETITIVAS
'Codificado en Visual Basic
Module Para_SumaPares
Public Sub Main()
Console.WriteLine("ESTRUCTURA REPETITIVA FOR")
Dim intSumaPares, intPar As Integer
intSumaPares = 0
intPar = 0
For intContador As Integer = 1 To 10
intPar = intPar + 2
Console.WriteLine(intContador & " Par = [" & intPar & "]")
intSumaPares = intSumaPares + intPar
Next
Console.WriteLine("Suma 10 primeros pares es " & intSumaPares)
Console.ReadLine()
End Sub
End Module

Estructuras REPETITIVAS
Presentar la suma de N nmeros
ANLISIS
Leer <nmero1> y sumarlo en <sumatoria>, leer <nmero2> y sumarlo en <sumatoria>, leer
<nmeron>y sumarlo en <sumatoria>.
DISEO
Proceso SumarN_Numeros
numero <- 0;
sumatoria <- 0;
contador <- 1;
Escribir "deme el limite de num a sumar";
Leer limite;
Mientras (limite >= contador) Hacer
Escribir "deme num ", contador ;
Leer numero;
sumatoria <- sumatoria + numero;
contador <- contador + 1;
FinMientras
Escribir "La sumatoria es: " ,sumatoria;
FinProceso

Programacin
Estructurada
Flujos

Secuenciales

Programacin
Estructurada
Flujos

F. C.
SECUENCIALES

Programacin
Estructurada
Flujos

F. C.
SELECTIVOS

Programacin
Estructurada
Flujos

F. C.
REPETITIVOS

Programacin
Estructurada
Flujos

R E T O
Repetitivas

Estructuras REPETITIVAS
RETO
Presentar la serie del Fibinacci = 0, 1, 1, 2, 3, 5, 8, 13, 21,
ANLISIS
Los primeros nmeros inicializados deberan ser. CERO 0 y UNO 1
El siguiente nmero es la suma de un par de nmeros anteriores, es decir 1 = 0+1, 2 = 1 + 1
Presento 0 (cero)
Fibo = 0 + 1 = 1
Fibo = 1 + 0 = 1
Fibo = 1 + 1 = 2
Fibo = 2 + 1 = 3
Fibo = 3 + 2 = 5
Fibo = 5 + 3 = 8
Fibo = 8 + 5 = 13

Estructuras REPETITIVAS
RETO

Valor
inicial = 0

Valor
inicial = 1

FIBO

FIBO

NUMERO

AUX = FIBO

FIBO

FIBO

NUMERO

AUX = FIBO

FIBO

FIBO

NUMERO

Presento 0 (cero)
Fibo = 0 + 1 = 1
Fibo = 1 + 0 = 1
Fibo = 1 + 1 = 2
Fibo = 2 + 1 = 3
Fibo = 3 + 2 = 5
Fibo = 5 + 3 = 8
Fibo = 8 + 5 = 13

aux = fibo
fibo = numero
numero = aux

Resumen
CAPITULO #3:
ESTUDIO DE ALGORITMOS

Conceptos Claves:

Bucles infinitos: Aquellos en los que por la condicin especificada por el program

Conceptos Claves:

Un programa sin ninguna sentencia de bifurcacin o iteracin (selectiva o repetiti

Tipos bsicos de bucles

Tipos bsicos de bucles


<
Los

Referencias:
Bibliogrficas

LUS, JOYANES AGUILAR. (2003): Fundamentos de Programacin,


Algoritmos, Estructuras de Datos y Objetos. Mc-Graw Hill. Madrid.
Pginas 131 y siguientes (Cap# 4 y Cap#5).
Direcciones electrnicas

Instalador del [pseint]: http://pseint.sourceforge.net/

Video, manejo del [pseint]: http://monje.oneble.com/tag/pseint/

El algoritmo, una iniciacin a la programacin


http://www.scribd.com/doc/6686520/Manual-Algoritmo
Otros medios

Microsoft Corporation (2008): Microsoft Document Explore Version


8.0.50727.42, actualizado 06 de diciembre de 2007 (citado 25 de Marzo
del 2009). Disponible a travs de: MSDN Library para Visual Studio 2005
(US).

MATRICULATE AL CURSO

Vous aimerez peut-être aussi