ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
Alguas ideas de estructura de datos
1. 1) ¿Qué es una expresión? ¿Cuáles son sus componentes?
una expresión es una combinación de constantes, variables o funciones, que es
interpretada de acuerdo a las normas particulares de precedencia y asociación
para un lenguaje de programación en particular. Como en matemáticas, la
expresión es su valor evaluado, es decir, la expresión es una representación de
ese valor.
Operador
Propósito
+
suma
resta
*
multiplicación
/
división
%
2)
resto dedivisiónentera
¿Qué es un operador? Describir varios tipos diferentes de operadores de C.
El operador % es a veces denominado el operador módulo.
No hay operador de potenciación en C. Sin embargo, hayunafundón de
biblioteca (pow) que realiza la potenciación (ver secci<'m 3.6).
Nombre del operador
Sintaxis
Sobrecargable
Incluido en C
a < b
Sí
Sí
a <= b
Sí
Sí
a > b
Sí
Sí
Mayor o igual que
a >= b
Sí
Sí
No igual que
a != b
Sí
Sí
Igual que
a == b
Sí
Sí
Menor que
Menor o igual que
Mayor que
3) ¿Qué. es un operando? ¿Cuál es la relación entre operadores y operandos?
2. Todos los operadores listados existen en C++. La tercera columna indica si
también están presentes en C. También hay que tener en cuenta que C no
permite la sobrecarga de operadores.
En los lenguajes de programación de computadora, las definiciones de operador
y operando son casi las mismas que las de matemáticas.
-Adicionalmente, en lenguaje máquina, un operando es un valor (un argumento)
con el cual la instrucción, nombrada por un mnemónico, opera. El operando
puede ser un registro, una dirección de memoria, una constante literal, o una
etiqueta.
Un ejemplo simple en la arquitetura PC es MOV DS, AX donde el valor en el
operando del registro AX debe ser movido al registro DS. Dependiendo de la
instrucción, puede habercero, uno, dos o más operandos.
4) Describir los cinco operadores aritméticos de C. Mencionar las reglas asociadas a
su utilización.
Operadores aritméticos
Operadores de asignación
Operadores de manejo de bits
Operadores lógicos
Operador de preproceso
Aritméticos
Operaciones aritméticas:࠳uma, resta, multiplicación, división y módulo
Asignación
Operadores de asignación simple "=" y compuestos
Manejo de bits
Operadores para manejo de bits (bitwise) entre enteros: complemento,
desplazamientos izquierda y derecha,࠳ND, XOR y OR
Lógicos
Operadores que producen resultados booleanos:࠳ND, OR y NOT
de Preproceso
Directivas # de preprocesado, #define, #line, #pragma, etc.
5) Mencionar las reglas que se aplican a expresiones con operandos de tipos distintos.
Una expresión es una secuencia de uno o más operandos y cero o más operadores que
se pueden evaluar como un valor, objeto, método o espacio de nombres único. Las
expresiones pueden constar de un valor literal, una invocación de método, un operador
y sus operandos o un nombre simple.
Los nombres simples pueden ser el nombre de una variable, miembro de tipo,
parámetro de método, espacio de nombres o tipo.
Las expresiones pueden utilizar operadores que, a su vez, utilizan otras expresiones
como parámetros o llamadas a métodos cuyos parámetros son, a su vez, otras llamadas
a métodos, de modo que pueden variar de simples a muy complejas. A continuación se
muestran dos ejemplos de expresiones:
3. 6) ¿Cómo se puede cambiar el valor de una expresión a un tipo de datos diferente?
¿Cómo se llama a esto?
7) ¿Qué se entiende por precedencia de operadores? ¿Cuáles son las precedencias
relativasde los operadores aritméticos?
La precedencia de operadores es un conjunto de reglas de JScript que controla el orden
en que el compilador realiza las operaciones cuando se evalúa una expresión. Las
operaciones con mayor precedencia se realizan antes que las de menor prioridad. Por
ejemplo, la multiplicación se realiza antes que la suma.
La precedencia de un operador indica qué tan "estrechamente" se unen dos
expresiones juntas. Por ejemplo, en la expresión 1 + 5 * 3 , la respuesta es 16 y
no 18 porque el operador de multiplicación ("*") tiene una precedencia mayor que
el operador de adición ("+"). Los paréntesis pueden ser usados para forzar la
precedencia, si es necesario. Por ejemplo: (1 + 5) * 3 se evalúa como 18.
8) ¿Qué se entiende por asociatividad? ¿Cuál es la asociatividad de los operadores
aritméticos?
Si usted se refiere a "asociatividad de operador" - es cómo un lenguaje determina cómo
se agrupan los operadores de la misma prioridad en ausencia de paréntesis.
-Por ejemplo, el + y - operadores en lenguajes basados en C tienen la misma
precedencia. Cuando se escribe una expresión que utiliza dos de ellos (sin paréntesis),
el compilador debe determinar qué orden evaluarlos en.
-Si escribes 12-5 + 3, las evaluaciones posibles incluyen:(12 - 5) + 3 = 1012-(5 + 3) = 4
9) ¿Cuándo se deben incluir paréntesis en una expresión? ¿Cuándo se debe
evitar el uso de paréntesis?
10) ¿En qué orden se efectúan las operaciones en una expresión que contiene paréntesis
anidados?
Si una expresión contiene paréntesis no anidados, es decir, que dentro de los
paréntesis existen expresiones simples sin paréntesis, se procede a resolver
siguiendo estos pasos:
1. Calcule el valor de la expresión dentro de los paréntesis.
4. 2. Simplifique toda expresión con exponentes.
3. Multiplique y/o divida.
4. Sume y/o reste.
11) ¿Qué es un operador unario? ¿Cuántos operandos van asociados a un operador
unario?
Se define como operación unaria aquella operación matemática, que sólo
necesita el operador y un único operando (argumento) para que se pueda
calcular un valor.
-Por ejemplo, la función valor absoluto «| |» es un operador unario, porque sólo
necesita un argumento.
os operadores son un tipo de tokens que indican una evaluación o computación
para ser realizada en objetos o datos, y en definitiva sobre identificadores o
constantes.
-El valor y tipo que devuelve depende del operador y del tipo de sus operandos.
Por ejemplo, los operadores aritméticos devuelven un número como resultado
de su operación.
12) ¿Describir los seis operadores unarios tratados en este capítulo. ¿Cuál es
el propósito de cada uno de ellos?
13) Describir dos formas distintas de utilizar los operadores de incremento y
decremento. ¿Cuál es la diferencia entre ellas?
Incremento y decrement:
-Estos dos operadores solamente son válidos para las variables numéricas y
se utilizan para incrementar o decrementar en una unidad el valor de una
variable.
Lógicos
-Los operadores lógicos son imprescindibles para realizar aplicaciones
complejas, ya que se utilizan para tomar decisiones sobre las instrucciones
que debería ejecutar el programa en función de ciertas condiciones.
14) ¿Cómo se puede determinar el número de bytes que ocupa cada tipo de
datos en un determinado compilador de C?
15) Describir los cuatro operadores relacionales de C. ¿Con qué tipo de
operandos se pueden utilizar? ¿Qué tipo de expresión se obtiene?
5. os operadores relacionales son símbolos que se usan para comparar dos
valores. Si el resultado de la comparación es correcto la expresión considerada
es verdadera, en caso contrario es falsa
.
-En la primera columna de la tabla, se dan los símbolos de los operadores
relacionales, el la segunda, el nombre de dichos operadores, y a continuación
su significado mediante un ejemplo.
Al igual que C++, C# permite sobrecargar operadores para utilizarlos en clases
propias. Esto hace posible que utilizar un tipo de datos definido por el usuario
parezca tan natural y lógico como utilizar un tipo de datos fundamental.
16) Describir los dos operadores de igualdad de C. ¿En qué se diferencian de
los operadoresrelacionales?
17) Describir los dos operadores lógicos de C. ¿Cuál es el propósito de cada
uno de ellos?¿Con qué tipo de operandos se pueden utilizar? ¿Qué tipo de
expresión se obtiene?
Los operadores lógicos producen un resultado booleano, , y sus operandos son
también valores lógicos o asimilables a ellos (los valores numéricos son
asimilados a cierto o falso según su valor sea cero o distinto de cero). Por
contra, recuerde que las operaciones entre bits producen valores arbitrarios.
-Los operadores lógicos son tres; dos de ellos son binarios, el último (negación)
es unario. Tienen una doble posibilidad de representación en el Estándar C++
actual: la representación tradicional que se indica a continuación, y la natural
introducida recientemente que se detalla más adelante .
Y lógico &&
AND
O lógico ||
OR
Negación lógica ! NOT
18) ¿Cuáles son las precedencias relativas de los operadores relacionales, de
igualdad y lógicos entre sí y respecto a los operadores aritméticos y
unarios? ¿Cuáles son sus asociatividades?
Los operadores de JavaScript tienen un orden establecido de evaluación. Este
orden se denomina orden de precedencia. En la tabla siguiente puedes ver este
orden, teniendo presente que los operadores que aparecen juntos en una
misma fila de la tabla, no tienen prioridad entre ellos, sino que se evaluarán en
el orden en que hayan sido escritos en la expresión a evaluar:
Para hacerse una idea más clara, veamos un ejemplo. Sea la siguiente
expresión: X = 78 * (96 + 3 + 45)
-Como puedes ver, hay cinco operadores en este orden: = * () + +
6. -De acuerdo con su orden de precedencia, se evaluarán en este orden: () *
+ + =
-Y esta sería la forma de operar paso a paso: En primer lugar, se resuelve el
paréntesis: 96 + 3 = 99 y a continuación 99 + 45 = 144
Ahora se multiplica: 78 * 144 = 11232
-Por último se asigna el resultado: X = 11232
19) Describir el operador no lógico (negación lógica). ¿Cuál es su propósito?
¿En qué grupo de precedencia está incluido? ¿Cuántos operandos
requiere? ¿Cuál es su asociatividad?
El NO lógico es el operador de exclusión de conjuntos. El resultado de un NO lógico
entre dos conjuntos, es el conjunto que contiene todos los elementos del primer
conjunto que no pertenezcan también al segundo conjunto.
-Por lo tanto, si A y B son dos términos que representan los dos conjuntos de
documentos indizados con los términos A y B respectivamente, la operación NO lógico
entre A y B, es el conjunto de documentos indizados bajo el término A pero que no
están indizados simultáneamente bajo el término B.
-El símbolo usado para indicar la operación NO lógico es el signo de negación (^).El NO
lógico debe usarse con gran cuidado, ya que puede fácilmente resultar en la pérdida
inadvertida de material relevante.
Los operadores son símbolos que indican cómo se deben manipular los
operandos. Los operadores junto con los operandos forman una expresión, que
es una fórmula que define el cálculo de un valor.Los operandos pueden ser
constantes, variables o llamadas a funciones, siempre que éstas devuelvan
algún valor.
-El compilador evalúa los operadores, algunos de izquierda a derecha, otros de
derecha a izquierda, siguiendo un orden de precedencia. Este orden se puede
alterar utilizando paréntesis para forzar al compilador a evaluar primero las
partes que se deseen.
Cuando una expresión contiene varios operadores, la prioridad de los
operadores controla el orden de evaluación de las expresiones. Por ejemplo, la
expresión x + y * z se evalúa como x + (y * z) porque el operador * tiene una
prioridad más alta que el operador +.
20) Describir los seis operadores de asignación tratados en este capítulo.
¿Cuál es el propósito de cada uno de ellos?
21) ¿Cómo se determina el tipo de una expresión de asignación cuando los
dos operandos sonde tipos diferentes? ¿En qué sentido puede ser esto a
veces una fuente de errores de programación?
7. Cuando una expresión de tipo Single se compara con otra de tipo Double, la
expresión Single se convierte a Double. Este comportamiento es contrario al
que se daba en Visual Basic 6.
-De igual forma, cuando una expresión de tipo Decimal se compara con otra de
tipo Single o Double, la expresión Decimal se convierte a Single o Double. En
las expresiones Decimal, cualquier valor fraccionario menor que 1E-28 podría
perderse. Esta pérdida de valor fraccionario puede provocar que dos valores se
consideren equivalentes sin serlo.
-Por esta razón, deberán extremarse las precauciones cuando se utilice el signo
de igualdad (=) para comparar dos variables de punto flotante. Es más seguro
comprobar si el valor absoluto de la diferencia entre dos números es inferior al
mínimo aceptable.
-Imprecisión de punto flotante
-Cuando trabaje con números en punto flotante, tenga presente que no siempre
tienen una representación precisa en memoria. Esto podría producir que ciertas
operaciones arrojaran resultados inesperados, como una comparación de
valores y el operador Mod (Operador, Visual Basic). Para obtener más
información, vea Solucionar problemas de tipos de datos.
22) ¿Cómo se pueden escribir múltiples asignaciones en C? ¿En qué orden se
efectuarán las asignaciones?
En la selección de los ejemplos y problemas que se incluyen, en los
contenidos, y en la forma de 2.12.10Colas de Retroalimentación de
NivelesMúltiples 6.9.5 Asignación de Recursos por el Algoritmo del
Banquero, como un valor de función; dentro de los parámetros pueden
regresar valores
23) Describir el uso del operador condicional para formar expresiones
condicionales. ¿Cómose evalúa una expresión condicional?
Es un operador ternario, es decir, tiene tres operandos. Su funcionamiento es el
siguiente: para una ejecución c ? e1 : e2 siendo c, e1 y e2 tres expresiones, •
-Se evalúa c o Si el resultado es cierto (es decir, distinto de cero) se evalúa e1 y
éste sera el resultado. o Si no (el resultado es falso o cero) se evalúa e2 y éste
sera el resultado.
Ejemplos. Para x = 4, y = 2, z = 7: • La expresión x >= 5? 1:0 se evalúa a 1 Es
un operador ternario, es decir, tiene tres operandos. Su funcionamiento es el
siguiente: para una ejecución c ? e1 : e2 siendo c, e1 y e2 tres expresiones,
-Se evalúa c o Si el resultado es cierto (es decir, distinto de cero) se evalúa e1 y
éste sera el resultado. o Si no (el resultado es falso o cero) se evalúa e2 y éste
sera el resultado. Ejemplos. Para x = 4, y = 2, z = 7.
8. 24) ¿Cómo se determina el tipo de una expresión condicional cuando sus
operandos son de tipos diferentes?
Una expresión condicional es un tipo de expresión que comprueba los datos
para ver si cumplen con una condición y, a continuación, lleva a cabo una
acción según el resultado.
-Por ejemplo, una expresión puede buscar valores de fecha posteriores a una
fecha inicial dada y, a continuación, mostrar un mensaje de error cuando se
intenta especificar una fecha anterior a la fecha inicial definida. Las expresiones
condicionales tienen el mismo formato y la misma sintaxis básica que otras
expresiones.
25) ¿Cómo se puede combinar el operador condicional con el operador de
asignación para formar una instrucción del tipo «if-else»?
En la gran mayoría de los programas será necesario tomar decisiones sobre
qué acciones realizar. Esas decisiones pueden depender de los datos que
introduzca el usuario, de si se ha producido algún error o de cualquier otra cosa.
-La estructura condicional if ... else es la que nos permite tomar ese tipo de
decisiones. Traducida literalmente del inglés, se la podría llamar la estructura
"si...si no", es decir, "si se cumple la condición, haz esto, y si no, haz esto otro".
Un ejemplo sencillo sería el siguiente (no se trata de un programa.
26) ¿Fonnan realmente parte del lenguaje C las funciones de biblioteca? Explicarlo.
La Memoria se ha dividido en dos partes: la i~itegración multisensorial y la
arquitectura de los demás procesos y tiene las siguientes funciones:
actualización, ecuaciones (3.30> y (3.31>, sino que se utiliza como estima y
varianza lenguajecompleto es realmente potente y permite modelizar sistemas
complejos.
27) ¿Cómo se suelen encontrar agrupadas generalmente las funciones de biblioteca
en un compilador de C?
En general toman ciertos valores de entrada, llamados parámetros y Sin
embargo, las funciones son una herramienta muy valiosa, y como se usan en
todos
y si seincluyen suele ser como documentación y ayuda en la
interpretación y el programador quería ofrecer ciertas funciones agrupadas bajo
una biblioteca.
28) ¿Cómo se accede a las funciones de biblioteca? ¿Cómo se pasa infonnación a
una función de biblioteca desde el punto de acceso?
Los catálogos de la biblioteca, tal como los conocemos actualmente, están la
necesidad de un estudio de las funciones de los elementos bibliográficos
9. funcióndebe llevarse a cabo por medio de puntos de acceso y mecanismos
creados para el catálogo de la biblioteca como el instrumento vital para acceder.
29) ¿Qué es un argumento? ¿Cómo se escriben los argumentos? ¿Cómo se escribe
una llamada a una función de biblioteca si no tiene argumentos?
Es def, y enseguida se escribe el nombre de la función y una lista de
parámetros Nótese, sin embargo, que en la llamada a función se requiere los
paréntesis: Por ejemplo la función de biblioteca pow toma dos argumentos, la
base y el debiblioteca, podemos usar una expresión como argumento para la
función.
30) ¿Cuál es la precedencia de los operadores de asignación en relación con
otros operadores?¿Cuál es su asociatividad?
los operadores de asignación compuestos de Java, y exploramos los ... época),
la cual permite al programador especificar la transferencia de control a uno de
...... La figura 4.17 muestra la precedencia y la asociatividad de los operadores
que .....clases y sus relaciones en un diagrama de clases de UML
.34A lo largo de los años que ha durado la realización de esta investigación numerosas
.....Programa de entrenamiento conjunto en estrategias y conocimientos ..... de lainfonnación
como las estructuras (representaciones que se pueden ..... narrativa”, y las primeras gramáticas
que, a partir de las funciones de Propp, se ...
.
3.24
16 Los operadores aritméticos operador: OperadorAp.java Java tiene cinco operadores
aritméticos cuyo significado se muestra en la tabla adjunta Operador Nombre Ejemplo + Suma
3+4 - Diferencia 3-4 * Producto 3*4 / Cociente 20/7 % Módulo 20%7 El cociente entre dos
enteros da como resultado un entero. Por ejemplo, al dividir 20 entre 7 nos da como resultado
2. El operador módulo da como resultado el resto de la división entera. Por ejemplo 20%7 da
como resultado 6 que es el resto de la división entre 20 y 7. El operador módulo también se
puede emplear con números reales. Por ejemplo, el cociente entre 7.5 y 3.0 es 2.5 y el resto es
cero, es decir, 7.5=3.0 x 2.5+ 0. El operador módulo, funciona de la siguiente forma 7.5=3.0 x
2+1.5, calcula la diferencia entre el dividendo (7.5) y el producto del divisor (3.0) por la parte
entera (2) del cociente, devolviendo 1.5. Así pues, la operación 7.5%3.0 da como resultado 1.5.
El operador asignación Nos habremos dado cuenta que el operador más importante y más
frecuentemente usado es el operador asignación =, que hemos empleado para la inicialización
de las variables. Así, int numero; numero=20; la primera sentencia declara una variable entera
10. de tipo int y le da un nombre (numero). La segunda sentencia usa el operador asignación para
inicializar la variable con el número 20. Consideremos ahora, la siguiente sentencia. a=b; que
asigna a a el valor de b. A la izquierda siempre tendremos una variable tal como a, que recibe
valores, a la derecha otra variable b, o expresión que tiene un valor. Por tanto, tienen sentido
las expresiones a=1234; double area=calculaArea(radio); superficie=ancho*alto; Sin embargo,
no tienen sentido las expresiones 1234=a; calculaArea(radio)=area; Las asignaciones múltiples
son también posibles. Por ejemplo, es válida la sentencia c=a=b; //equivalente a c=(a=b); la
cual puede ser empleada para inicializar en la misma línea varias variables c=a=b=321;
//asigna 321 a a, b y c El operador asignación se puede combinar con los operadores
aritméticos Expresión Significado x+=y x=x+y x-=y x=x-y x*=y x=x*y x/=y x=x/y Así, la sentencia
x=x+23; evalúa la expresión x+23, que es asignada de nuevo a x. El compilador lee primero el
contenido de la porción de memoria nombrada x, realiza la suma, y guarda el resultado en la
misma porción de memoria. Se puede escribir la sentencia anterior de una forma equivalente
más simple
9 El orden en el que deben realizarse las operaciones aritméticas básicas (jerarquía de ...
Cuando una expresión aritmética involucra sumas, restas, ... Si dentro de unos paréntesis
aparecen otras operaciones se sigue la misma jerarquía. ... Si no intentamos evitar que la gente
se líe con cosas sencillas 6 admiten mayúsculas, tal como se estudia en el apartado
correspondiente de este capítulo. ... Con esto se consigue que el programa al compilar sólo
utilice las ...consecutivas. 1.1.2 Imprimiendo datos de diferente tipo con printf ..... En las
asignaciones el tipo de dato de la expresión (R-valor) se convierte al de la variable ...