2.2_-_presentacion

Upload: ivana-korze

Post on 07-Jul-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/19/2019 2.2_-_Presentacion

    1/29

    CLASE 2

    EXPRESIONES

    MATEMÁTICAS

  • 8/19/2019 2.2_-_Presentacion

    2/29

    INTRODUCCIÓN

    El objetivo del curso es aprender las nociones básicasde programación

    Programar signifca escriir ór!enes oins"r#cciones para que un computador puedaejecutarlas

    Como los computadores no son máquinas inteligentes,necesitamos escribir estas instrucciones en un$eng#a%e que este pueda compren!er

    Para ello usaremos….

  • 8/19/2019 2.2_-_Presentacion

    3/29

    EXPRESIONESMATEMÁTICAS

    Uno de los primeros pasos para aprender unlenguaje de programación es el uso de este pararea$i&ar ari"m'"ica (sica

    Para ello Pyton nos provee de los operadoresmatemáticos inarios básicos!

    S#ma (+) → 2 + 2 = 4

    Res"a (-) → 4 – 5 = -1 M#$"ip$icación (*) → 3 * 4 = 12 Di)isión (/) → 8 / 2 = 4

     " otros un poco más complejos…

  • 8/19/2019 2.2_-_Presentacion

    4/29

    EXPRESIONESMATEMÁTICAS

    Como los operadores #narios #se les llama as$porque requieren sólo #n arg#men"o%!

    I!en"i!a! (+) → + 1 = 1 Camio !e signo (-) → - 6 = -6

     " los operadores inarios #requieren dosargumentos para entregar el resultado% !

    E*ponenciación #potencia% #&&% → 2 ** 4 = 16 Mó!#$o #&% #resto de la división entera% → 6% 4 = 2

    'evisemos un ejemplo sólo con los operadores

  • 8/19/2019 2.2_-_Presentacion

    5/29

    EXPRESIONESMATEMÁTICAS

    (upongamos que tenemos la e)presión!

    *ue, aparentemente, escrita en Pyton ser$a algocomo!

    2 + 2 / 4 * 9 – 12 * 3

    +*u resultado obtendr$amos si calculamos lae)presión en una calculadora-

    +*u resultado entregar$a el intrprete de Pyton-

  • 8/19/2019 2.2_-_Presentacion

    6/29

    EXPRESIONESMATEMÁTICAS

    os resultados calculados por nosotrosy por Pyton son distintos por dosmotivos!

    a prece!encia !e opera!ores, es decir,el or!en en que Pyton resuelve laoperación

    El "ipo !e !a"o, que corresponde alcon%#n"o !e n+meros en donde Pyton

    entrega el resultado

  • 8/19/2019 2.2_-_Presentacion

    7/29

    PRECEDENCIA DEOPERADORES

  • 8/19/2019 2.2_-_Presentacion

    8/29

    PRECEDENCIA DEOPERADORES

    Para a$"erar $as reg$as !e prece!encia, podemosutili/ar parntesis, al igual que en matemáticas

    Por ejemplo, la operación anterior!

    2 + 2 / 4 * 9 – 12 * 3

    Podemos escribirla de la siguiente 0orma para quetenga la misma precedencia de la e)presión

    matemática!

    2 + 2 / (4 * 9) – 12 * 3

    Pero seguimos sin obtener el resultado deseado

  • 8/19/2019 2.2_-_Presentacion

    9/29

    TIPOS DE DATOS Esto ocurre porque en la e)presión todos los

    n1meros con los que se opera son en"eros Para Pyton, si una e*presión sólo tiene n1meros

    enteros, entonces se asume que el usuario quiereuna respuesta del mismo "ipo

    Es com1n en los lenguajes de programación indicarel tipo de dato, pues no sólo se trabaja con n1meros,sino tambin con letras, booleanos #verdadero y0also% y otros tipos de datos más complejos

    2eamos aora las distintas representaciones quePyton o0rece para los n1meros

  • 8/19/2019 2.2_-_Presentacion

    10/29

    TIPOS DE DATOS En Pyton e)isten tres clases de n1meros!

    Enteros #int%! para enteros en el intervalo 34

    567879:;79, 567879:;78<

    Enteros largos #long%! para enteros 0uera del rangode los enteros de 7 bytes #ej! =>:?7>:7?7>>:5%

    @lotantes o float! para n1meros no enteros, no son

    ig#a$es a $os n+meros rea$es #ej! 5.=7%

  • 8/19/2019 2.2_-_Presentacion

    11/29

    11

    Como Pyton prefere man"ener e$ "ipo!e !a"o (i se operan !os en"eros, entonces Pyton

    intentará devolver un resultado en"ero Pero si se cominan tipos numricos en unae)presión aritmtica, Pyton genera$i&a todos los valores involucrados en la

    sube)presiones a evaluar antes de operarlosEnteros largos son más generales que los

    enteros os ,o"an"es son m(s genera$es que los

    enteros largos y los enteros

    TIPOS DE DATOS

  • 8/19/2019 2.2_-_Presentacion

    12/29

    12

    (i escribimos el ejemplo de esta 0orma!

    2 + 2 / (4.0 * 9) - 12 * 3

    Aos entrega el mismo resultado que la calculadora,debido a que! Bemos mo!i-ca!o $a prece!encia para que

    calcule la multiplicación previo a la división

    a primera operación (4.0 * 9), resulta en unotante, por lo que toda la e)presión se va"rans.orman!o a ,o"an"e paso a paso

    TIPOS DE DATOS

  • 8/19/2019 2.2_-_Presentacion

    13/29

    13

    2 + 2 / (4.0 * 9) - 12 * 3

    2 + 2 / 36.0 – 12 * 3

    2 + 0.05555555555555555 – 12 * 3

    2 + 0.05555555555555555 – 36

    2.05555555555555555 – 36

    -33.944444444444443

    TIPOS DE DATOS

  • 8/19/2019 2.2_-_Presentacion

    14/29

    14

    2.0 + 2 /(4 * 9) - 12 * 3

    2.0 + 2 / 36 - 12 * 3

    2.0 + 0 - 12 * 3

    2.0 + 0 – 36

    2.0 – 36

    34.0

    TIPOS DE DATOS

    Aótese que si ponemosel otante en otra partede la e)presión elres#$"a!o sig#esien!o erra!o

    Debido a que el cambiode tipo no a0ecta a lae)presión

     2 / 4 * 9

    Por lo que Pyton laeval1a como unae)presión entera y sólo

  • 8/19/2019 2.2_-_Presentacion

    15/29

    RECORDANDO /ALORES

    (upongamos que el resultado de la e)presión anteriores parte de una e)presión más grande, por ejemplo!

    Donde el resultado de la e)presión anterior es sólo esel e)ponente de con 6; decimales#:.676=?5;=:=9?8?:6%

    Escribir la e)presión completa podr$a signifcarnos unerror y tendr$amos que volver a escribirla completa

    (in embargo, Pyton nos provee de una 0orma para

    almacenar valores para no tener que escribirlos enre etidas ocasiones  15

  • 8/19/2019 2.2_-_Presentacion

    16/29

    ASI0NACIÓN

    Para ello podemos usar la asignación, que es unasentencia con la siguiente estructura!

     Por ejemploresultao = 2 + 2 / (4!" * 9) - 12 * 3

    Con la asignación se defnen variables y constantes 

    para almacenar valores   16

    =

    ¡Recuerden que no es una comparacin niuna equi!a"encia ma#em$#ica%

  • 8/19/2019 2.2_-_Presentacion

    17/29

    17

    Una asignación es una sentencia con la siguienteestructura!

    • 'eglas de unidentifcador! – El primer carácter no

    puede ser un d$gito – Puede llevar letras, d$gitos

    y el carácter subrayado # F% – Ao puede coincidir con

    palabras reservadas!• an!1 asser"1 rea1

    c$ass1 con"in#e1 !e.1

    !e$1 e$i.1 e$se1 e*cep"1e*ec1 -na$$31 .or1 .rom1

    • Puede ser – un valor constante #un

    n1mero o te)to% – una operación entre

    n1meros – una operación entre

    variables y constantespreviamentedeclaradas

     – Ge/cla entre

    operaciones, variables

    =

    H(IJAHCIKA

  • 8/19/2019 2.2_-_Presentacion

    18/29

    18

    Entonces, para la e)presión anterior, podemos defnir!

    &'R, 3.1419239931

    epresion 2 + 2 / (4.0 * 9) - 12 * 3

    resu"#adoina" &'R, ** epresion

    *ue es equivalente a!

    3.1419239931 ** (2 + 2 / (4.0 * 9) - 12 * 3)

    Aótese que escribimos los nombres de losidentifcadores usando distintas reglas, esto no es

    arbitrario

    ASI0NACIÓN

    CO S S

  • 8/19/2019 2.2_-_Presentacion

    19/29

    19

    El valor de 0ue asignado al identi0icador AUGE'LFPI,el cual está escrito en may1sculas, esto ocurre porquees una cons"an"e

    as constantes se escriben con ma3+sc#$as y

    separando las palabras con guiones bajos #F% yrepresentan valores que no camian en elprograma

    En cambio tanto e)presion como resultado@inal seescriben con min1sculas, debido a que son )aria$es

    as variables se escriben en min+sc#$as ycapi"a$i&an!o $a primera $e"ra !e $a seg#n!a

    pa$ara si tiene más de una y representan valoresue ueden camiar o soreescriirse en un

    CONSTANTES 6/ARIA7LES

  • 8/19/2019 2.2_-_Presentacion

    20/29

    20

    Para ver el contenido de una variable oconstante, !e-ni!a pre)iamen"e, podemosusar el comando print

    #rint resu"#adoina"

    (i queremos mostrar te)to, podemos utili/arcomillas para indicar que se trata de te)to

    #rint 5 678 '& :

     Mambin se pueden me/clar con más de unargumento usando comas!

    #rint 5" resu"#ado ;ue< 5= resu"#adoina"= 5= con ,

    COMANDO PRINT

  • 8/19/2019 2.2_-_Presentacion

    21/29

    E2HNE H( EOP'E(ILAE(

     

  • 8/19/2019 2.2_-_Presentacion

    22/29

    E2HUHADL EOP'E(ILAE(

    *u resulta si intentamos evaluar enPyton las siguientes e)presiones! – 2 + 4/( - 2**3)

     – 2(4 + ** 3 – 3 * 2 +) – 2 –(4 *( / 4) + + (2 ** (4 + 2) - 3)

  • 8/19/2019 2.2_-_Presentacion

    23/29

    E2HUHADL EOP'E(ILAE(

    *u resulta si intentamos evaluar enPyton las siguientes e)presiones! – 2 + 4/( - 2**3)

     – 2(4 + ** 3 – 3 * 2 +) – 2 –(4 *( / 4) + + (2 ** (4 + 2) -

    3)))

    Pyton no entrega una solución, sinoun error

  • 8/19/2019 2.2_-_Presentacion

    24/29

    E2HUHADL EOP'E(ILAE(

    *u resulta si intentamos evaluar enPyton las siguientes e)presiones!1) 2 + 4/( - 2**3)

    2) 2(4 + ** 3 – 3 * 2 +)3) 2 –(4 *( / 4) + + (2 ** (4 + 2) -

    3)))

    Pyton no entrega una solución, sinoun error

  • 8/19/2019 2.2_-_Presentacion

    25/29

    E''L'E(

    Cuándo Pyton encuentra algo queno ace sentido, nos lo notifca atravs de la indicación de un error,

    por ejemplo para el primer caso!2 + 4/( - 2**3)

    >eroi!isionrror< in#e?er di!ision ormodu"o @A Bero

    Este mensaje generado por Pyton,nos indica que el error se aproducido por intentar dividir algopor cero

  • 8/19/2019 2.2_-_Presentacion

    26/29

    E''L'E(

    Hlgunos errores, no se notifcan contanto detalle, como por ejemploaquellos que Pyton indicó como!

    CAn#arror< in!a"id sAn#a

    En este caso, Pyton no intentóejecutar lo solicitado, pues encontróun error antes de ello, en la sin"a*is del código

  • 8/19/2019 2.2_-_Presentacion

    27/29

    E''L'E(

    @inalmente, si evaluamos la 1ltimae)presión y le quitamos dos parntesis alfnal2 -(4 *( / 4) + + (2 ** (4 + 2) - 3)

    Pyton no detecta el error, pues se quedaesperando a que cerremos los parntesis

    Del mismo modo Pyton no detectarácomo error si queremos un resultado enotante y le entregamos solamente

    n1mero enteros o enteros largos

  • 8/19/2019 2.2_-_Presentacion

    28/29

    28

    Lperadores matemáticosPrecedencia de operadores2ariables y constantesErrores en Pyton

    Comando print

    CONTENIDOS DE 8O6 

  • 8/19/2019 2.2_-_Presentacion

    29/29

    29

    9:

    CONSULTAS