Programar en Mac 01: Un programa es una serie de instrucciones (II)

Programar en Mac 01: Un programa es una serie de instrucciones (II)

23 marzo, 2010 |  by  |  Programar en Mac

Seguimos con la Lección 01 de Programar en Mac:

Enteros (integers) y decimales (floats)

Ahora, echa un vistazo al ejemplo [5] y en particular a las dos primeras líneas:

// [5]

pictureWidth = 8;

pictureHeight = 4.5;

pictureSurfaceArea = pictureWidth * pictureHeight;

Los números en general se pueden clasificar en dos categorías: números enteros y con decimales (números racionales). Aquí puedes ver un ejemplo de ambos casos respectivamente. Los enteros se usan para contar o enumerar, como cuando tenemos que repetir una serie de instrucciones un número determinado de veces (ver capítulo 7).

El código del ejemplo [5] no funcionaría. El problema está en que el compilador quiere que le digas en adelante que tipo de nombre de variables vas a utilizar en tu programa y a qué tipo de dato se refieren. Por ejemplo, números enteros o números con decimales. Esto en lenguaje friki se denomina “declarar la variable”.

// [6]

int pictureWidth;

float pictureHeight, pictureSurfaceArea;

pictureWidth = 8;

pictureHeight = 4.5;

pictureSurfaceArea = pictureWidth * pictureHeight;

En la línea [6.1] “int” indica que la variable pictureWidth es un número entero (integer). En la línea siguiente, estamos declarando dos variables separándolas con una coma. Más específicamente, la línea [6.2] dice que ambas variables son del tipo decimal, por ejemplo, los números que contienen son decimales. En este caso es un poco tonto que pictureWidth es de un tipo diferente que las otras dos variables. Pero lo que puedes ver es que si multiplicas un “int” por un “float” el resultado es un “float”, que es la razón por la que debes declarar la variable pictureSurfaceArea como un “float”.

¿Por qué el compilador quiere que le digas si una variable representa un número entero o decimal? Bien, un programa necesitará parte de la memoria del ordenador. El compilador reserva memoria (bytes) para cada variable que encuentra. Cada diferente tipo de datos (en este caso “int” y “float”) requiere diferentes cantidades de memoria y una diferente representación, y por este motivo el compilador necesitará reservar la cantidad adecuaa de memoria y la representación más oportuna.

¿Qué ocurre si estamos trabajando con números grandes o una gran precisión decimal? ¿Servirá la cantidad de memoria que haya reservado el compilador? Exacto. Hay dos respuestas para esto: en primer lugar, tanto “int” como “float” contienen contadores que pueden almacenar números muy grandes (o de una gran precisión decimal). En muchos sistemas éstos son “long long” y “double”, respectivamente. Y esto nos lleva a la segunda respuesta: como programador, será tarea tuya estar al tanto de los problemas. En cualquier caso, no se trata de un problema que deba ser discutido en el primer capítulo de un manual de introducción.

En cualquier caso, tanto los números enteros como los decimales pueden ser negativos, como por ejemplo la cuenta de un banco. Si sbes con certeza que el valor de una variable nunca será negativa, puedes acotar el rango de la variables para que el compilador ajuste la memoria disponible.

// [7]

unsigned int chocolateBarsInStock;

No hay posibilidad de que en este caso pueda ser un número negativo. El “unsigned int” representa a todos los números mayores o iguales a cero.

Declarando una variable

Es posible declarar una variable y asignarla un valor en un solo código [8].

// [8]

int x = 10;

float y = 3.5, z = 4.2;

Tipos de datos

Como acabamos de ver, los daros almacenados en una variable pueden ser de determinados tipos, como por ejemplo “int” o “float”.

En Objective-C, los tipos simples como los que acabamos de ver son conocidos como datos escalares. Aquí hay una lista de los tipos de datos escalares más comunes que están disponibles en Objective-C:

void: Vacío (nada)

int: Número entero (…, -1, 0, 1, 2, …)

unsigned: Número entero positivo / Naturales (0, 1, 2, …)

float: Número decimal / Racionales

double: Número decimal con doble precisión

char: Caracteres / letras (hola)

BOOL: variables de dos opciones: 1, 0; Verdadero, Falso; Sí, No.


 

6 Comments


  1. Como veis, estamos dando unas pinceladas prácticas al Lenguaje C para pasar al Objective-C y a Cocoa.

    Todos los manuales sobre la Programación en Mac dan por hecho que sabemos programar en C y Objective-C (lo que hace mucho más complejo el tema para los que empiezan) y por eso hemos querido empezar por le principio.

    ¿Qué os parece?

  2. gracias por los tutoriales son muy buenos porque empiesan de cero, espero que sigan asi.

  3. Me parece muy bien justo lo que necesitaba, desde el mero principio, muchas gracias.

  4. Me parece fantástico cómo lo estáis haciendo. Y lo de ir despacito explicándolo todo, me parece genial, porque a los que no sabemos nada o aprendimos algo hace mucho tiempo pero lo hemos olvidado, nos viene de miedo. Lo que echo de menos es más capítulos para seguir leyendo más deprisa!!! Me he quedado con las ganas de seguir leyendo más para empezar a teclear!!! jajaja.

    Millones de gracias y enhorabuena por vuestro trabajo. Sois fantásticos explicando cosas

  5. Gracias !! justo lo que buscaba los felicito!! muy bueno los tutoriales !!

Leave a Reply