Mostrando las entradas con la etiqueta londres. Mostrar todas las entradas
Mostrando las entradas con la etiqueta londres. Mostrar todas las entradas

Lenguaje C+ cap2

Tema 2 - Identificadores, tipos de datos, variables
y constantes.
2.1 - Identificadores.
Antes de proceder a explicar los identificadores en C, es necesario resaltar que
C es un lenguaje sensible al contexto, a diferencia por ejemplo de Pascal, por lo cual, C
diferencia entre mayúsculas  y minúsculas,  y por  tanto,  diferencia entre una palabra
escrita  total  o  parcialmente  en  mayúsculas  y  otra  escrita  completamente  en
minúsculas.
En  el  lenguaje  C,  un  identificador  es  cualquier  palabra  no  reservada  que
comience por una letra o por un subrayado,  pudiendo contener en su interior letras,
números  y  subrayados.  La  longitud  máxima  de  un  identificador  depende  del
compilador  que  se  este  usando,  pero,  generalmente,  suelen  ser  de  32  caracteres,
ignorándose todos aquellos caracteres que compongan el identificador y sobrepasen la
longitud  máxima.  Recuérdese,  además,  que  al  ser  C  sensible  al  contexto,  un
identificador escrito como esto_es_un_ident y otra vez como Esto_Es_Un_Ident será
interpretado como dos identificadores completamente distintos.
2.2 - Tipos de datos,  modificadores de tipo y modificadores
de acceso.
En C, toda variable, antes de poder ser usada, debe ser declarada, especificando
con ello el tipo de dato que almacenara. Toda variable en C se declara de la forma:
<tipo de dato> <nombre de variable> [, nombre de variable];
En C existen cinco tipos de datos según puede verse en la tabla siguiente:
Tipo de dato Descripción.
char Carácter o entero pequeño (byte)
int Entero
float Punto flotante
double Punto flotante (mayor rango que
float)
void Sin tipo (uso especial)
Tabla 2.2.1: Tipos de datos en C.
Algunos ejemplos de variables de C serían:
float a;
int b,c;
char caracter,otro_caracter;El lenguaje de programación C
Existen, además, cuatro modificadores de tipo, los cuales se aplican sobre los
tipos de datos anteriormente citados.  Los modificadores de tipo permiten cambiar el
tamaño, etc., de los tipos de datos anteriormente especificados.  Estos modificadores,
que sintácticamente anteceden a la declaración del tipo de dato, son:
Modificador Tipos de actuación Descripción
signed char int Con signo (por defecto)
unsigned char int Sin signo
long int double Largo
short int Corto
Tabla 2.2.2: Modificadores de los tipos de datos en C.
Es por ello, que podemos declarar variables como:
unsigned char a;
long double b;
short int i;
Es posible,  además,  aplicar  dos  modificadores  seguidos  a  un mismo tipo de
datos,  así,  es posible definir una variable de tipo  unsigned long int (entero largo sin
signo). El rango de valores de que permite cada variable depende del sistema operativo
sobre el cual se trabaje (MS-DOS, Windows95/98/NT/2000, UNIX/Linux), por lo cual
conviene referirse  al  manual  del  compilador  para  conocerlo.  De forma general,  los
sistemas operativos de 16 bits (MS-DOS, Windows 16 bits) poseen un rango y los de
32 bits (Windows 32 bits, UNIX/Linux) otro.
Rango de valores posibles en (notación matemática)
Tipo de variable declarada 16 bits 32 bits
char / signed char [-128 , 127] [-128 , 127]
unsigned char [0 , 255] [0 , 255]
int / signed int [-32768 , 32767] [-2147483647 , 2147483648]
unsigned int [0 , 65535] [0 , 4294967295]
short int / signed short
int
[-32768 , 32767] [-32768 , 32767]
unsigned short int [0 , 65535] [0 , 65535]
long  int  /  signed  long
int
[-2147483647 , 2147483648] [-2147483647 , 2147483648]
unsigned long int [0 , 4294967295] [0 , 4294967295]
float [-3.4E+38 , -3.4E-38], 0 ,
[3.4E-38 , 3.4E+38]
[-3.4E+38 , -3.4E-38], 0 ,
[3.4E-38 , 3.4E+38]
double [-1.7E+308 , -1.7E-308], 0 ,
[1.7E-308 , 1.7E+308]
[-1.7E+308 , -1.7E-308], 0 ,
[1.7E-308 , 1.7E+308]
long double [-3.4E+4932 , -1.1E-4932],  0 ,
[3.4E-4932 , 1.1E+4932]
[-3.4E-4932  ,  -1.1E+4932],  0  ,
[3.4E-4932 , 1.1E+4932]
Tabla 2.2.3: Rango de valores de las variables en C.
Además  de los  modificadores  de  tipo existen modificadores  de  acceso.  Los
modificadores  de  acceso  limitan  el  uso  que  puede  realizarse  de  las  variables
declaradas. Los modificadores de acceso anteceden a la declaración del tipo de dato de
la variable y son los siguientes:El lenguaje de programación C
Modificador Efecto
const Variable de valor constante
volatile Variable  cuyo  valor  es  modificado
externamente
Tabla 2.2.4: Modificadores de acceso en C.
La declaración de una variable como const permite asegurarse de que su valor
no será modificado por el programa, excepto en el momento de su declaración, en el
cual debe asignársele un valor inicial. Así, si declaramos la siguiente variable:
const int x=237;
Cualquier  intento  posterior  de  modificar  el  valor  de  x,  tal  como  x=x+5;,
producirá un error en tiempo de compilación.
La declaración de una variable como volatile, indica al  compilador que dicha
variable puede modificarse por  un proceso externo al  propio programa (tal  como la
hora del sistema), y por ello, que no trate de optimizar dicha variable suponiéndole un
valor constante, etc. Ello fuerza a que cada vez que se usa la variable, se realice una
comprobación de su valor.
Los modificadores const y volatile pueden usarse de forma conjunta en ciertos
casos, por lo cual no son excluyentes el uno del otro. Ello es posible si se declara una
variable que actualizara el reloj del sistema, (proceso externo al programa), y que no
queremos pueda modificarse en el interior del programa. Por ello, podremos declarar:
volatile const unsigned long int hora;
2.3 - Declaración de variables y alcance.
En C,  las  variables  pueden ser  declaradas  en cuatro lugares  del  módulo del
programa:
• Fuera de todas las funciones del programa, son las llamadas variables globales,
accesibles desde cualquier parte del programa.
• Dentro de una función, son las llamadas variables locales, accesibles tan solo
por la función en las que se declaran.
• Como parámetros a la función, accesibles de igual forma que si se declararan
dentro de la función.
• Dentro de un bloque de código del  programa,  accesible tan solo dentro del
bloque donde se declara.  Esta forma de declaración puede interpretarse como
una variable local del bloque donde se declara.
Para un mejor comprensión, veamos un pequeño programa de C con variables
declaradas de las cuatro formas posibles:El lenguaje de programación C
#include <stdio.h>
int sum; /* Variable global, accesible desde cualquier parte */
         /* del programa*/
void suma(int x) /* Variable local declarada como parámetro, */
                 /* accesible solo por la función suma*/
{
   sum=sum+x;
return;
}
void intercambio(int *a,int *b)
{
if (*a>*b)
{
      int inter; /* Variable local, accesible solo dentro del */
                 /* bloque donde se declara*/
      inter=*a;
*a=*b;
*b=inter;
}
return;
}
int main(void) /*Función principal del programa*/
{
   int contador,a=9,b=0; /*Variables locales, accesibles solo */
                         /* por main*/
   sum=0;
   intercambio(&a,&b);
   for(contador=a;contador<=b;contador++) suma(contador);
   printf(“%d\n”,suma);
   return(0);
}
2.4  -  Especificadores  de  almacenamiento  de  los  tipos  de
datos.
Una vez explicada la declaración de variables y su alcance, vamos a proceder a
explicar como es posible modificar el alcance del almacenamiento de los datos. Ello es
posible  realizarlo  mediante  los  especificadores  de  almacenamiento.  Existen  cuatro
especificadores de almacenamiento. Estos especificadores de almacenamiento, cuando
se  usan,  deben  preceder  a  la  declaración  del  tipo  de  dato  de  la  variable.  Estos
especificadores de almacenamiento son:
Especificador de
almacenamiento
Efecto
auto Variable  local  (por
defecto)
extern Variable externa
static Variable estática
register Variable registro
Tabla 2.4.1: Especificadores de almacenamiento en C.El lenguaje de programación C
El  especificador  auto se  usa  para  declarar  que  una  variable  local  existe
solamente mientras  estemos dentro de la subrutina  o bloque de programa donde se
declara, pero, dado que por defecto toda variable local es auto, no suele usarse.
El  especificador  extern se usa en el  desarrollo de programas compuestos por
varios módulos. El modificador  extern se usa sobre las variables globales del módulo,
de forma que si una variable global se declara como extern, el compilador no crea un
almacenamiento para ella en memoria,  sino que, tan solo tiene en cuenta que dicha
variable ya ha sido declarada en otro modulo del programa y es del tipo de dato que se
indica.
El especificador static actúa según el alcance de la variable:
• Para variables locales, el especificador static indica que dicha variable local
debe almacenarse de forma permanente en memoria, tal y como si fuera una
variable global, pero su alcance será el que correspondería a una variable local
declarada en la subrutina o bloque. El principal efecto que provoca la
declaración como static de una variable local es el hecho de que la variable
conserva su valor entre llamadas a la función.
• Para variables globales, el especificador static indica que dicha variable global
es local al módulo del programa donde se declara, y, por tanto, no será
conocida por ningún otro módulo del programa.
El especificador  register se aplica solo a variables locales de tipo  char e  int.
Dicho  especificador  indica  al  compilador  que,  caso  de  ser  posible,  mantenga  esa
variable en un registro de la CPU y no cree por ello una variable en la memoria. Se
pueden declarar como register cuantas variables se deseen, pues el compilador ignorara
dicha  declaración  caso  de  no  poder  ser  satisfecha.  El  uso  de  variables  con
especificador  de  almacenamiento  register permite  colocar  en registros  de  la  CPU
variables muy frecuentemente usadas, tales como contadores de bucles, etc.
Algunos ejemplos de uso de los especificadores de almacenamiento son:
register unsigned int a;
static float b;
extern int c;
static const unsigned long int d;
2.5 - Constantes.
En C, las constantes se refieren a los valores fijos que el programa no puede
alterar. Algunos ejemplos de constantes de C son:
Tipo de dato Constantes de ejemplo
char ‘a’ ‘9’ 'Q'
int 1 -34 21000
long int -34 67856L 456
short int 10 -12 1500El lenguaje de programación C
unsigned int 45600U 345 3
float 12.45 4.34e-3 -2.8e9
double -34.657 -2.2e-7 1.0e100
Tabla 2.5.1: Tipos de constantes en C.
Existen, además, algunos tipos de constantes, distintos a los anteriores, que es
necesario resaltar  de forma particular.  Estos  tipos  de constantes  son las  constantes
hexadecimales y octales, las constantes de cadena, y las constantes de barra invertida.
Las constantes hexadecimales y octales son constantes enteras,  pero definidas
en base 16 (constantes hexadecimales) o en base 8 (constantes octales). Las constantes
de tipo hexadecimal comienzan por los caracteres 0x seguidas del número deseado. Las
constantes  de  tipo  octal  comienzan  por  un cero  (0).  Por  ejemplo,  son  constantes
hexadecimales 0x34 (52 decimal),  0xFFFF (65535 decimal); y constantes octales 011
(9 decimal), 0173 (123 decimal)
Las constantes de cadena son conjuntos de caracteres que se encierran entre
comillas  dobles.  Por  ejemplo,  son constantes  de cadena  “Esto es una constante de
cadena”, “Estos son unos apuntes de C”, etc.
Las  constantes  de  caracteres  de  barra  invertida  se  usan  para  introducir
caracteres que es imposible introducir por el teclado (tales como retorno de carro, etc.).
Estas  constantes  son proporcionadas  por  C para  que sea  posible  introducir  dichas
caracteres  como  constantes  en  los  programas  en  los  cuales  sea  necesario.  Estas
constantes de caracteres de barra invertida son:
Código Significado
\b Retroceso
\f Alimentación de hoja
\n Nueva línea
\r Retorno de carro
\t Tabulador horizontal
\” Doble comilla
\’ Simple comilla
\0 Nulo
\\ Barra invertida
\v Tabulador vertical
\a Alerta
\o Constante octal
\x Constante
hexadecimal
Tabla 2.5.2: Constantes de barra invertida en C.
El  uso de las  constantes  de barra invertida es igual  que el  de cualquier  otro
carácter,  así, si  ch es una variable de tipo char, podemos hacer:  ch=‘\t’, o ch=‘\x20’
(carácter espacio), etc., de igual forma que realizaríamos con cualquier otra constante
de carácter. Además, las constantes de barra invertida pueden usarse en el interior de
constantes  de  cadena  como  un  carácter  más,  por  ello,  podemos  poner  escribir  la
constante de cadena: "Esto es una linea\n".

Bridges and Earl Grey tea,yeaah


Hi new readers
I writing blogging inglish ,enojoy!!!
The Tyne Bridge
The Tyne Bridge
This is the beautiful Tyne Bridge. It's the first landmark you see when you arrive in the city from the South by train. When I see that bridge, I know I'm home.
The bridge was opened in 1928. In fact, the city boasts seven bridges altogether (you can see some of them in the photo) and many of them were built by Victorian industrialists. Newcastle is famous for its role in the industrial revolution, and around the city there are many reminders of its industrial heritage. I thought I would share a few of them with you.
Here is a photo I took of the city's monument to George Stephenson, who, together with his son Robert, established the world's first locomotive factory.

The statue of George Stephenson in Newcastle
The statue of George Stephenson in Newcastle
Here's an animation of Stephenson's famous steam locomotive, The Rocket. Click through the animation and you will be challenged to name the parts of the engine - and to build it!
Of course, a bridge had to be built so that the trains could cross the river! It's a split-level bridge, with cars and people using the lower level and trains running on the upper level. Here it is:

The High Level bridge in Newcastle
The High Level bridge in Newcastle
Here's another monument: this one was built in recognition of Charles Earl Grey, who, amongst his other achievements, introduced the British people to a particular blend of tea. Which blend of tea? The clue's in the name: According to legend, the tea was specially blended by a Chinese guest for Earl Grey and his wife, to suit the water at his home. Is it true? I don't know. But I do know that even as I write this, Earl Grey tea is being served to tea-drinkers all over the world.

Earl Grey's monument in Newcastle
Earl Grey's monument in Newcastle
Another place that I'm especially fond of is the Central Arcade. It is over 100 years old, but, as you can see from the photo, it has been beautifully maintained over the years and now hosts coffee shops, boutiques and a music store. It is very well-loved by the people of Newcastle, myself included!
Newcastle Central Arcade
Newcastle Central Arcade
If you ever get the chance to visit Newcastle, I'm sure you'll be very impressed by the city, its people and the architecture. And don't forget to have a cup of Earl Grey tea!
All the best,
Catherine
P. S. Read on if you'd like to do some language exercises about the passive forms I've used in this blog post. I'll give you the answers in my next post!
Language work: the passive.
Exercise 1. Here are some extracts from my blog. All of them are passive forms. But which tense are they? For each one, say whether it is: past simple passive, present perfect passive, present continuous passive, present simple passive, passive infinitive or future passive.
(For a summary of passive tenses, look at this episode of Learn It:)
• The bridge was opened
• many of them were built by Victorian industrialists.
• you will be challenged
• a bridge had to be built
• this one was built
• the tea was specially blended by a Chinese guest
• Earl Grey tea is being served
• it has been beautifully maintained
• It is very well-loved by the people of Newcastle
• you'll be very impressed by the city
Exercise 2. Rewrite these sentences in the passive form. Keep the tense the same (but passive)
1. George Stephenson and his son Robert established the world's first locomotive factory.
2. The city of Rio will host the 2016 Olympic Games.
3. The people of Newcastle love the Tyne Bridge.
4. We are developing a new communications system.
5. Daniel Day-Lewis has won the award for best actor.
6. Charles Earl Grey introduced the British people to a particular blend of tea.
7. They had to wear protective clothing in the museum.
Come back soon to get the answers!
THEMRFRIKI S.A. Con tecnología de Blogger.

About