9
Objetivos: Operadores lógicos Estructura de decisión múltiple Estructura Repetitiva Haga Para Operadores lógicos Los operadores lógicos permiten formular condiciones complejas a partir de condiciones simples, (realizar más de una comparación) Los operadores lógicos nos permiten agrupar condiciones simples en una estructura condicional, esto nos facilita la implementación de algoritmos más compactos y comprensibles. Los operadores lógicos son los siguientes: (y) (o) (not) Las tablas de verdad de los conectivos lógicos son: (P y Q son enunciados) P NOT( P ) V F F V P P y Q Q V V V V F F F V F F F F P P O Q Q V V V V F V F V V F F F El resultado de una expresión lógica puede ser guardado en una

claseinformatica28-01-15

  • 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