Upload
diego
View
212
Download
0
Embed Size (px)
DESCRIPTION
INFORMATICA PARA UNIVERSITARIOS.
Citation preview
Objetivos:
Operadoreslgicos
Estructuradedecisinmltiple
EstructuraRepetitivaHagaPara
Operadoreslgicos
Losoperadoreslgicospermitenformularcondicionescomplejasapartirdecondicionessimples,(realizarmsdeunacomparacin)
Losoperadoreslgicosnospermitenagruparcondicionessimplesen una estructura condicional, esto nos facilita laimplementacindealgoritmosmscompactosycomprensibles.
Losoperadoreslgicossonlossiguientes:
(y) (o) (not)
Lastablasdeverdaddelosconectivoslgicosson:(PyQsonenunciados)
P NOT(P)
V FF V
P PyQ QV V VV F FF V FF F F
P POQ QV V VV F VF V VF F F
El resultado de una expresin lgica puede ser guardado en una
variable de tipo boolean. TRUE y FALSE son constantes querepresentan los valores verdadero y falso respectivamente. Si unointenta imprimir con la instruccin escribir el contenido de unavariable de tipo boolean es TRUE o FALSE como resultado en lapantalla.
Nota:Esimportanteentenderbienelsignificadodecadaunodelosoperadores lgicos. Estos conceptos sern requeridos a lo largo detodoelcurso.
Ejemplosconexpresioneslgicas:
1.
a=(8>=8)escribir'Elvalordeaes:',a
{elresultadoes:TRUE}
2.
a=(8=8)y(2>1)escribir'Elvalordeaes:',a
{elresultadoes:TRUE}
3.
a=(8=8)b=(2>1)c=(aANDb)escribir'Elvalordeaes:',a
{elresultadoes:TRUE}
4.a=(8=8)b=(2>1)c=aAND(NOT(b))escribir'Elvalordeces:',c
{elresultadoes:FALSE}
Cuandounimosdoscondicionessimplesconeloperadorlgico'y'ambas condiciones deben verificarse como verdaderas para que lacondicincompuestaseverifiqueverdadera.Porejempositenemosquemostrarunmensajesilaedaddeunapersonaestcomprendidaentre12y18aospodemosplantearlaconunanicaestructuracondicional:
siedad>=12yedad=12:siedad
x2=entero(leer('Digaelnmero2:'))x3=entero(leer('Digaelnmero3:'))escribir'Elmayores:'six1>x2yx1>x3:escribirx1sinosix2>x3yx2>x3:printx2sinoprintx3
EstructuradedecisinMultiple
Enlaltimaclaseaprendimoscmotratarunadicotoma:siunacondicinsecumplehazesto;encasocontrario,hazestootro.
Pero,ysidebemosgestionardiversasopciones?
Laclasulasinosidentrodelaestructurasinospermiteresolveresteproblema.
Observasuutilizacinenelsiguienteejemplo:
valor=entero(leer('Introduceunnmerodel1al6:'))sivalor==1:
escribir'Eldadorueda...,hasalidoelUNO'sinosivalor==2:escribir'Lasuerteestechada...,hasalidoelDOS'sinosivalor==3:
escribir'Eldadonosmuestra...unTRES'sinosivalor==4:
escribir'Increbleperocierto...hasalidounCUATRO'sinosivalor==5:
escribir'Siestofueraelparchssacarasficha.HasalidoelCINCO')sinosivalor==6:
escribir'Enhorabuena,hassacadoelvalormsaltodeldado,elSEIS')sino:
escribir'Losiento,eldadonopuededevolveresevalor')
Elejemploesilustrativoporssolo:nossolicitalaintroduccindeunnmerodel1al6yenfuncindelvalorquehayamosfacilitadorealizarunatareauotra.
Observaelusodesino,alfinal,paraelcasocontrariogeneralenelquenosehayacumplidoningunadelasotrascondiciones(por
haberintroducidounvalorfueradelrangoindicado).
EjercicioResuelto:
Leer la nota de un alumno, luego mostrar un mensaje si estpromocionado(nota>=9),regular(nota>=4)oreprobado(nota=9:
escribir'Promocionado'
sinosinota>=4:
escribir'Regular'
sino:
escribir'Reprobado'
OperadoresAritmeticos
OPERADOR OPERACIN OPERANDOS
RESULTADO
+ Suma enterooreal enterooreal Resta enterooreal enterooreal* Multiplicacin enterooreal enterooreal/ Divisin enterooreal real// Divisinentera entero entero% Modulo (resto
entero)entero entero
// devuelve como resultado el cociente de la divisin entera entredosnmeros.Ejemplo:
numero:=5//2;{asigna2alavariablenumero}numero:=15//5;{asigna3alavariablenumero}
%devuelvecomoresultadoelrestodeladivisinenteraentredosnmeros.Ejemplo:
numero:=5%2;{asigna1alavariablenumero}
numero:=15%5;{asigna0alavariablenumero}
EstructurasRepetitivas
Las estructuras de control repetitivas se utilizan para resolverproblemasdondeseanecesariorepetirundeterminadonmerodevecesunconjuntodeinstruccionesllamadosbucle.
Lasestructurasrepetitivasseclasificanen: Hagapara Hagamientras Repitahasta
Paratrabajarconestasestructurasesimportanteconocerelconceptode:Contador:Recordemosqueunavariableesunespaciodememoriaquesereservaenelcomputadorcuyocontenidopuedevariaralolargodelaejecucindelprograma,aspues,uncontadoresuntipodevariablequeincrementaodecrementasucontenidoenvalordeunaconstante
contador=contador+constanteEjemplo:contador=contador+1
Acumulador:esunavariablequeincrementaodecrementasucontenidoencantidadesvariables
acumulador=acumulador+variables
Ejemplo:nomina=nomina+sueldototal=totaldeuda
Es importante que inicialicemos siempre nuestros contadores yacumuladores:Ejemplo:contador=1
Elvalorconelqueseinicieelcontadoroacumulador,dependerdelproblemaaresolver.
EstructurarepetitivaHagaPara:Engeneral,unaestructurarepetitivaesunaestructuradecontrolquerepiteunbloquedeinstrucciones.Laestrucutrarepetitivahagapararepiteelbloquedeinstruccionesunnmeroprederminadodeveces.Elbloquedeinstruccionesqueserepitesesuelellamarcuerpoycadarepeticinsesuelellamariteracin.
Lasintaxiseslasiguiente:
hagaparavariableinrango(valorInicial,valorFinal+1):cuerpo...
Escribaunprogramaquemuestrelatablademultiplicardel1al10delnmeroingresadoporelusuario:
num=entero(leer("Ingreseunnumero:"))hagaparanenrango(1,11):
escribir num,"x",n,"=",num* n#Muestraelresultadodec/multiplicacion.
Escribaunprogramaquegeneretodaslaspotenciasde2,desdela0simahastalaingresadaporelusuario:
ult_pot=entero(leer("Ingresenumero:"))hagaparayenrango(ult_pot+1):
escribir2**y
Escribaunprogramaquepidaalusuariodosnmerosenteros,yluegoentreguelasumadetodoslosnmerosqueestnentreellos.Porejemplo,silosnmerosson1y7,debeentregarcomoresultado2+3+4+5+6=20.
num1=entero(leer("Ingresenumero:"))num2=entero(leer("Ingresenumero:"))suma=0hagaparanenrango(num1+1,num2):
suma+=nescribir"Lasumaes",suma
Escribaunprogramaquemuestreunatablademultiplicarcomola
siguiente:
12345678910246810121416182036912151821242730481216202428323640
51015202530354045506121824303642485460714212835424956637081624324048566472809182736455463728190102030405060708090100
nota:el#esuncomentario
hagapara nen rango(1,11):#Lavariable'n'tomavaloresenterosentre1y10
hagaparamenrango(1,11):escribirn*m
escribir#Provocaunsaltodelineaparacrearlaproximafiladelatabla.
Escriba un programa que entregue todos los divisores del nmero
enteroingresado:
Ingresenumero:200124581020254050100200
num=entero(leer("Ingresenumero:"))hagaparanenrango(1,num+1): #'n' toma valores desde 1 alnumeroingresado.
si(num%n)==0: #Sielrestodedividirelnumeropornescero,escribirn, #nesdivisordelnumeroingresado.Esmostradoporpantalla.
Imprimirlosnmerosparesdesdeel1al25,ambosinclusive
hagaparanenrango(1,26):sin%2==0:escribirn
Calculareimprimirlasuma1+2+3+4+5++50
suma=0hagaparanenrango(1,51):
suma=suma+n#tambiensepuedesumardelasiguientemanera,suma+=nescribir'Lasumaes:',suma
Evaluarlafuncinf(x)=x+1/xparacadaunodelos100primerosnmerosnaturalesymltiplosde7.Contarlacantidaddenmerosmltiplosde7consiguiysumarlosvaloresdelafuncinf(x)
escribir"Comienzo"
cuenta=0
suma=0
hagaparaienrango(1,1001):
sii%7==0:
cuenta=cuenta+1
suma=suma+(i+1/i)
escribe"Desde1hasta1000hay",cuenta,"mltiplosde7"
escribeLasumaes:,suma
OPERADOROPERACINOPERANDOS