Mostrando las entradas con la etiqueta blogger inglish. Mostrar todas las entradas
Mostrando las entradas con la etiqueta blogger inglish. Mostrar todas las entradas

C++ cap 4

Tema 4 - Conversión de tipos de datos.
4.1 - Conversión automática de tipos de datos.
El lenguaje C permite que en una misma expresión aparezcan diferentes tipos
de datos, encargándose el compilador de realizar las operaciones de forma correcta. El
compilador del lenguaje C, cuando en una misma expresión aparecen dos o más tipos
de datos,  convierte todos los operandos al tipo del operando más grande existente de
acuerdo con las dos reglas siguientes:
• Todos los char y short int se convierten a int. Todos los float a double.
• Para todo par de operandos, lo siguiente ocurre en secuencia:
o Si uno de los operandos es un long double, el otro se convierte en long
double.
o Si uno de los operandos es double, el otro se convierte a double.
o Si uno de los operandos es long, el otro se convierte a long.
o Si uno de los operandos es unsigned, el otro se convierte a unsigned.
Después de que el compilador aplique estas reglas de conversión, cada par de
operandos será del mismo tipo, y el resultado será del tipo de los operandos. Veamos
un ejemplo:
char ch;
int i;
float f;
double d;
(  ch  /  i  )  +  (  f  *  d  )  -  (  f  +  i  );
  char   int        float double      float  int
Debido a  que  en la  operación existen  diferentes  tipos  se  aplica  la  primera
conversión:
ch de char pasa a int.
f de float pasa a double.
(  ch  /  i  )  +  (  f  *  d  )  -  (  f  +  i  );
  int    int       double double     double  int
Al ser los dos operandos de igual tipo, realizamos la primera operación, (ch / i),
y el resultado es de tipo int. De igual forma, para la segunda operación,  (f * d), y el
resultado es de tipo double.
Para la tercera operación, y dado que las variables no son del mismo tipo, se
aplica la segunda regla,  convirtiéndose el  int en double, realizándose la suma  (f + i)
como dos datos de tipo double, y siendo por tanto el resultado un double.El lenguaje de programación C
Ahora procedemos a realizar la suma de los dos primeros resultados (ch / i) + (f
* d), como uno de ellos es de tipo int, y el otro de tipo double, el  int se convierte en
double por la segunda regla, y el resultado es un double.
Y por último, realizamos la resta final, siendo los dos operandos de tipo double
y el resultado final, por tanto, de tipo double.
4.2 - Conversión forzada de tipos datos.
En  C,  existe,  además,  de  la  conversión  automática  de  tipos  de  datos,  la
posibilidad de forzar  la conversión de un tipo de datos  en otro tipo de datos.  Esta
conversión de un tipo de datos en otro se llama “casts”, y su sintaxis es:
(tipo)expresión
Su utilidad queda claramente expresada en el ejemplo siguiente:
int a=3,b=2;
float c;
c=a/b;
La operación asigna a c el valor 1.0 en vez de el valor 1.5, ello se debe a que al
ser a y b variables de tipo entero, se realiza una división entre enteros, y el resultado de
3/2 es  1.  A continuación ese valor  1 se convierte a un valor  en coma flotante para
realizar la asignación (valor 1.0), y se asigna a c. Si lo que se desea es que la división
se realice en punto flotante, debe escribirse la operación de la siguiente forma:
c=(float)a/b;
Esta conversión forzada obliga a convertir  la variable  a en  float, y entonces,
aplicando las reglas de conversión automática de tipos, se realiza la división en coma
flotante. Este proceso da lugar a que el resultado de la operación sea 1.5, y dicho valor
sea el asignado a la variable c.

C++ cap 3

Tema 3 - Operadores aritméticos, relaciónales y
lógicos; operador asignación; operador sizeof y
operadores avanzados (operadores sobre bits y
operador ?).
3.1 - Operadores aritméticos.
Los operadores aritméticos existentes en C son, ordenados de mayor a menor
precedencia:
Operador Operador Operador
++ Incremento -- Decremento
- Menos unario
* Multiplicación. / División % Módulo
+ Suma - Resta
Tabla 3.1.1: Operadores aritméticos en C.
Los operadores ++,  -- y % solo pueden usarse con datos de tipo int o char. El
operador incremento (++), incrementa en una unidad el valor de la variable sobre la
que se aplica,  el operador  decremento (--),  decrementa en una unidad el  valor  de la
variable, y el operador módulo (%), calcula el resto de una división de dos variables de
tipo entero o carácter.
Un aspecto que conviene explicar es el hecho de que los operadores incremento
y decremento pueden preceder o posceder a su operando, lo cual permite escribir, si  x
es una variable de tipo  int,  las  expresiones  ++x o  x++.  Usado de forma aislada  no
presenta ninguna diferencia, sin embargo, cuando se usa en una expresión existe una
diferencia  en el  orden de  ejecución del  mismo.  Cuando el  operador  incremento (o
decremento) precede al  operando, C primero realiza el incremento (o decremento), y
después usa el valor del operando, realizándose la operación al contrario si el operador
poscede al operando. Así, considérense el siguiente código de un programa:
int var1=10,var2;
var2=++var1; /* Pone 11 en var2, pues primero incrementa var1,*/
             /* y luego asigna su valor a var2 */
Mientras que el siguiente código funciona de forma distinta:
int var1=10,var2;
var2=var1++; /* Pone 10 en var2, pues primero asigna su valor */
             /* a var2, y luego incrementa var1 */El lenguaje de programación C
3.2 - Operadores relaciónales y lógicos.
Los  operadores  relaciónales  y  lógicos  de  C,  ordenados  de  mayor  a  menor
prioridad son:
Operador Operador Operador Operador
! Not
> Mayor
que
>= Mayor o
igual
que
< Menor
que
<= Menor
o  igual
que
== Igual != No igual
&& And
|| Or
Tabla 3.2.1: Operadores relacionales y lógicos en C.
Los operadores relaciónales y lógicos tiene menor prioridad que los operadores
aritméticos antes descritos, así , escribir 10>3+9 es equivalente a escribir 10>(3+9).
3.3 - Operador asignación.
El lenguaje C, a diferencia de otros lenguajes tales como Pascal, no diferencia
la  asignación de cualquier  otro operador  del  lenguaje.  Para  C,  la  asignación es un
operador, el llamado operador asignación (=), el cual  posee la prioridad más baja de
todos los operadores. Es por ello que en C podemos escribir expresiones del tipo:
if ((c=a*b)<0) /* if es la comprobación condicional de C, que */
               /* se vera con posterioridad */
Esta expresión asigna a la variable c el valor de a*b y devuelve su valor para
compararlo con el valor constante  0. Los paréntesis son necesarios pues el operador
asignación tiene la prioridad mas baja de todos los operadores.
3.4 - Operador sizeof.
El operador sizeof es un operador en tiempo de compilación. El operador sizeof
devuelve el tamaño de una variable o tipo de dato durante la compilación, no durante la
ejecución del programa. Veamos algunos ejemplos:
sizeof(int) devuelve el valor 2 en los sistemas operativos de 16 bits y 4 en los de
32 bits.
Si tenemos char a[20],  sizeof(a) devuelve el valor 20, y si tenemos float a[6],
sizeof(a) devuelve el valor 24 (4*6).
3.5 - Operadores sobre bits.El lenguaje de programación C
El lenguaje C posee operadores que actúan a nivel de bits sobre los datos, estos
operadores son:
Operador Nombre Operación
∼ Not Complemento a uno (NOT)
<< Desplazamiento izquierda Desplazamiento izquierda
>> Desplazamiento derecha Desplazamiento derecha
& And Y
^ Xor O exclusivo (XOR)
| Or O
Tabla 3.5.1: Operadores sobre bits en C.
Los operadores  &,  | y ^ actúan sobre dos operandos, mientras que ∼ ,<< y >>
actúan sobre un solo operando. Veamos su actuación sobre dos valores cualquiera:
Operador Operando 1 Operando 2 Resultado
∼ 0xB2 0x4D
<<3 0xB2 0x90
>>2 0xB2 0x2C
& 0xB2 0x79 0x30
^ 0xB2 0x79 0xCB
| 0xB2 0x79 0xFB
Tabla 3.5.2: Ejemplos de operaciones sobre bits en C.
Donde los números que acompañan a los operadores  << y >> indican cuantas
posiciones se desplaza el operando. La prioridad de los operadores sobre bits es:
• El operador ∼ tiene la misma prioridad que los operadores ++ y .--.
• Los  operadores  << y  >> tienen  la  prioridad  situada  entre  los  operadores
aritméticos y los operadores relaciónales y lógicos.
• Los  operadores  &,  ^  y  | tienen  la  prioridad  situada  entre  los  operadores
relaciónales y los operadores lógicos (&& y ||).
3.6 - El operador ?.
El operador  ? se usa para reemplazar  las sentencias  if/else (que veremos con
posterioridad) de formato general:
if (condición)
   expresión;
else
   expresión;
Donde expresión debe ser una expresión sencilla y no otra sentencia de C.
El operador ? es un operador ternario cuyo formato general es:El lenguaje de programación C
Exp1 ? Exp2 : Exp3;
Donde Exp1,  Exp2 y Exp3 son expresiones. El operador  ? evalúa la expresión
Exp1,  si  es  cierta  se  evalúa  Exp2 y  si  es  falsa  se  evalúa  Exp3.  Veamos  algunos
ejemplos:
int x,y;
y=(x>10) ? 100 : 200;
Asignara el valor 100 a y si x es mayor de 10, y el valor 200 en caso contrario.
int t;
(t) ? f1(t)+f2() : printf(“t vale cero”);
Ejecutara las funciones f1() y f2() si t es distinto de cero, y la función printf si t
vale cero.

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