mooc de introducción a sage. variables numéricas ... filemooc de introducci on a sage. variables...

25
MOOC de Introducci´on a sage. Variables num´ ericas, condicionales y ciclos while MOOC de Introducci´ on a sage. Variables num´ ericas, condicionales y ciclos while Leandro Mar´ ın

Upload: others

Post on 20-Sep-2019

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

MOOC de Introduccion a sage.Variables numericas, condicionales y ciclos while

Leandro Marın

Page 2: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

1 Variables Numericas

2 Variables y Operaciones Booleanas

3 Ciclos while

4 Condicionales

Page 3: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Variables Numericas

Los numeros enteros I

Las variables enteras utilizan las notaciones habituales para lasuma, resta y multiplicacion.

a = 10

b = 35

print a+b

print a-b

print a*b

Nos dara como resultado

45

-25

350

En el caso de la division con resto debemos utilizar el sımbolo// para el cociente y % para el resto.

Page 4: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Variables Numericas

Los numeros enteros II

a = -10

b = 15

c = 10

print a //b

print a%b

print c //b

print c%b

Nos dara como resultado

-1

5

0

10

Notemos que se aplica la regla de que si el resto no es 0, eldivisor y el resto tienen el mismo signo.

Page 5: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Variables Numericas

Los numeros enteros III

Si utilizamos / en lugar de // lo que calcularemos es elnumero racional a

b , no el cociente de los dos numeros.

No existe problema por el tamano de los numeros, podemosoperar con numeros grandes de forma natural

print 2^1024

nos dara

17976931348623159077293051907890247336179769789423

06572734300811577326758055009631327084773224075360

21120113879871393357658789768814416622492847430639

47412437776789342486548527630221960124609411945308

29520850057688381506823424628814739131105408272371

63350510684586298239947245938479716304835356329624

224137216

Page 6: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Variables Numericas

Los numeros enteros IV

El sımbolo de exponenciacion puede ser ^ o tambien **. Enesto es diferente de otros lenguajes porque el sımbolo ^ norepresenta la operacion logica XOR que se escribira ^^.

Page 7: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Variables Numericas

Numeros Racionales I

Tal y como hemos mencionado antes, si utilizamos la notaciona/b lo que tenemos es el numero racional a

b que podemosoperar con las notaciones usuales:

a = 3/5

b = 4/6

print a+b

print a*b

print a-b

nos dara

19/15

2/5

-1/15

En este caso tampoco tenemos limitaciones de tamano.

Page 8: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Variables Numericas

Numeros Racionales II

El resultado nos aparecera simplificado (es decir, connumerador y denominador sin factores comunes).

Page 9: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Variables Numericas

Expresiones con radicales I

Podemos operar tambien con radicales

a = 1+sqrt(2)

b = 1-sqrt(2)

print a*b

print a^10

obtendremos

-(sqrt(2) + 1)*(sqrt(2) - 1)

(sqrt(2) + 1)^10

A diferencia de lo que pasaba con los numeros racionales, lasexpresiones no se simplifican. Si queremos expandir elresultado, tenemos que pedirlo explıcitamente

Page 10: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Variables Numericas

Expresiones con radicales II

print expand(a*b)

print expand(a^10)

nos dara

-1

2378*sqrt(2) + 3363

Page 11: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Variables Numericas

Numeros Complejos I

Podemos operar con la unidad compleja i =√−1 como con

los demas radicales. La unidad compleja se denotara I.

print 1/(1+I)

print (1+I)^10

nos dara

-1/2*I + 1/2

32*I

Notemos que en este caso la simplificacion si se hace de formaautomatica.

Page 12: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Variables Numericas

Valor Numerico

Cuando lo que queremos no es una expresion algebraica sinoel valor numerico de la misma, podemos utilizar el operador n.

print n(34/19)

print n((1+sqrt(2))/(1-sqrt(3)))

print n(1/(1+I))

nos dara

1.78947368421053

-3.29787705636258

0.500000000000000 - 0.500000000000000*I

Page 13: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Variables y Operaciones Booleanas

Valores Booleanos

Los dos valores booleanos son True y False.

print 7<19

print 7>19

Nos dara

True

False

Estos valores se pueden comparar o asignar a variables.

a = 7<19

print a

print a == False

Nos dara

True

False

Page 14: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Variables y Operaciones Booleanas

Valores Booleanos

Los dos valores booleanos son True y False.

print 7<19

print 7>19

Nos dara

True

False

Estos valores se pueden comparar o asignar a variables.

a = 7<19

print a

print a == False

Nos dara

True

False

Page 15: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Variables y Operaciones Booleanas

Operadores Booleanos

Los operadores booleanos se escriben con la correspondientepalabra en ingles, es decir and, or y not.

Se pueden combinar de la forma habitual resultando frasescasi legibles, por ejemplo

x = 3

y = 4

a = x < y and not x == y-7

print a

Nos dara True.

Podemos agrupar con parentesis las expresiones complejas.

Page 16: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Variables y Operaciones Booleanas

Operadores Booleanos

Los operadores booleanos se escriben con la correspondientepalabra en ingles, es decir and, or y not.

Se pueden combinar de la forma habitual resultando frasescasi legibles, por ejemplo

x = 3

y = 4

a = x < y and not x == y-7

print a

Nos dara True.

Podemos agrupar con parentesis las expresiones complejas.

Page 17: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Variables y Operaciones Booleanas

Operadores Booleanos

Los operadores booleanos se escriben con la correspondientepalabra en ingles, es decir and, or y not.

Se pueden combinar de la forma habitual resultando frasescasi legibles, por ejemplo

x = 3

y = 4

a = x < y and not x == y-7

print a

Nos dara True.

Podemos agrupar con parentesis las expresiones complejas.

Page 18: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Ciclos while

Planteamiento I

Supongamos que queremos repetir un cierto codigo hasta quese cumpla una condicion.

Por ejemplo, supongamos que queremos escribir los numerospositivos tales que su cuadrado es menor que 39.

Como en muchos otros lenguajes, esto se puede hacer con unciclo while que consiste en dar un valor inicial a una variable,por ejemplo a = 1 y mientras que a^2<39 escribir el valor de a

e incrementar su valor para calcular el siguiente.

Page 19: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Ciclos while

Planteamiento I

Supongamos que queremos repetir un cierto codigo hasta quese cumpla una condicion.

Por ejemplo, supongamos que queremos escribir los numerospositivos tales que su cuadrado es menor que 39.

Como en muchos otros lenguajes, esto se puede hacer con unciclo while que consiste en dar un valor inicial a una variable,por ejemplo a = 1 y mientras que a^2<39 escribir el valor de a

e incrementar su valor para calcular el siguiente.

Page 20: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Ciclos while

Planteamiento I

Supongamos que queremos repetir un cierto codigo hasta quese cumpla una condicion.

Por ejemplo, supongamos que queremos escribir los numerospositivos tales que su cuadrado es menor que 39.

Como en muchos otros lenguajes, esto se puede hacer con unciclo while que consiste en dar un valor inicial a una variable,por ejemplo a = 1 y mientras que a^2<39 escribir el valor de a

e incrementar su valor para calcular el siguiente.

Page 21: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Ciclos while

Planteamiento II

El codigo se podrıa escribir del siguiente modo:

a = 1

while a^2<39:

print a

a = a+1

El resultado serıan los numeros

1

2

3

4

5

6

Page 22: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Ciclos while

Bloques de Codigo e Indentacion

En el codigo anterior podemos ver la estructura de un ciclowhile, que es la siguiente:

while expresion_booleana :

linea 1

linea 2

...

linea k

Fijemonos que las distintas lıneas de codigo que se debenrepetir en el ciclo estan todas indentadas una cantidad fija deespacios. Esta es la forma como se sabe que lıneas pertenecenal ciclo y cuales no.

El inicio de un bloque de codigo indentado siempre vieneprecedido por un lınea que termina con : .

Page 23: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Ciclos while

Bloques de Codigo e Indentacion

En el codigo anterior podemos ver la estructura de un ciclowhile, que es la siguiente:

while expresion_booleana :

linea 1

linea 2

...

linea k

Fijemonos que las distintas lıneas de codigo que se debenrepetir en el ciclo estan todas indentadas una cantidad fija deespacios. Esta es la forma como se sabe que lıneas pertenecenal ciclo y cuales no.

El inicio de un bloque de codigo indentado siempre vieneprecedido por un lınea que termina con : .

Page 24: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Ciclos while

Bloques de Codigo e Indentacion

En el codigo anterior podemos ver la estructura de un ciclowhile, que es la siguiente:

while expresion_booleana :

linea 1

linea 2

...

linea k

Fijemonos que las distintas lıneas de codigo que se debenrepetir en el ciclo estan todas indentadas una cantidad fija deespacios. Esta es la forma como se sabe que lıneas pertenecenal ciclo y cuales no.

El inicio de un bloque de codigo indentado siempre vieneprecedido por un lınea que termina con : .

Page 25: MOOC de Introducción a sage. Variables numéricas ... fileMOOC de Introducci on a sage. Variables num ericas, condicionales y ciclos while Variables Num ericas Los numeros enterosI

MOOC de Introduccion a sage. Variables numericas, condicionales y ciclos while

Condicionales

Condicionales

Si en lugar de repetir una accion mientras se cumpla unacondicion lo que queremos es hacerla una unica vez si secumple una condicion o no hacerla en caso contrario, debemosutilizar if.

if expresion_booleana :

linea 1

...

linea k

else:

linea k+1

...

linea n

el bloque else se ejecutara si la condicion booleana es False.Si no existe este bloque, no se hace nada.