14
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. Operad or Propósito + suma resta * multiplica ción / división % resto dedivisiónenter a 2) ¿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 Menor que a < b Menor o igual que a <= b Mayor que a > b

Alguas ideas de estructura de datos

Embed Size (px)

Citation preview

Page 1: Alguas ideas de estructura de datos

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

% resto dedivisiónentera

2) ¿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

Menor que a < b  Sí  Sí

Menor o igual que a <= b  Sí  Sí

Mayor que 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í

Page 2: Alguas ideas de estructura de datos

3) ¿Qué. es un operando? ¿Cuál es la relación entre operadores y operandos?

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 haber cero, 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.

Page 3: Alguas ideas de estructura de datos

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:

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 relativas de 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 = 10 12-(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:

Page 4: Alguas ideas de estructura de datos

1. Calcule el valor de la expresión dentro de los paréntesis.

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?

Page 5: Alguas ideas de estructura de datos

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 operadores relacionales?

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: = * () + +

Page 6: Alguas ideas de estructura de datos

-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 = 144Ahora 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 son de tipos diferentes? ¿En qué sentido puede ser esto a veces una fuente de errores de programación?

Page 7: Alguas ideas de estructura de datos

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ómo se 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.

Page 8: Alguas ideas de estructura de datos

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 lenguaje completo 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

Page 9: Alguas ideas de estructura de datos

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

Page 10: Alguas ideas de estructura de datos

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 ...