Programacion 2 Uapa
Programacion 2 Uapa
Programacion 2 Uapa
PRESENTACION
Nombre:
Apellidos:
Materia: Programación I
Universidad: UAPA
Matrícula:
Investiga en la web y elabora un informe acerca de las sentencias
en lenguaje C.
Definición
Una expresión es una secuencia de operadores; operandos; elementos de
puntuación y palabras clave, que especifican una computación. Tiene sentido
computacional en sí misma y equivale a una frase en el lenguaje normal. Entre
sus características distintivas están las de poder producir un resultado y
posibles efectos laterales. Ejemplo:
Clasificación
Dada la definición anterior, resulta evidente que pueden existir infinitas
sentencias distintas, e innumerables criterios para su clasificación. Una de las
posibles, que además coincide con la clasificación del Estándar, distingue las
siguientes clases de sentencia:
De etiqueta
De expresión
Compuestas
De selección
De iteración
De salto
De declaración
Bloques de intento
Además de las anteriores, por sus características especiales podríamos
considerar las siguientes clases adicionales:
Sentencias de preproceso
Sentencias ensamblador
Sentencias de etiqueta
Existen tres clases de sentencias etiquetadas: las etiquetas directas, las
sentencias case y las default, estas últimas se utilizan en conjunción con las
sentencias switch.
Sentencias de expresión
Podríamos decir que son las que no pertenecen a ninguno de los otros grupos
y que, en la práctica, son las más abundantes. Generalmente son asignaciones
o invocaciones de funciones. Ejemplo:
pint = &x;
foo(c);
Sentencias compuestas
Las sentencias compuestas, también denominadas bloques se utilizan en
aquellas situaciones en que la sintaxis espera una sentencia pero se necesita
usar varias. Ejemplo:
if (first) ++x;
else {
--x; z = a;
}
En caso de cumplirse la condición hay que incrementar x, lo que puede
hacerse en una sola sentencia, pero si la condición resulta falsa, se precisan
dos computaciones. Para que se comporten como una sola frente a else, se
recurre a englobarlas en un bloque entre llaves { ... }. Las sentencias dentro del
bloque se comportan como una sola y constituyen un ámbito léxico. Los
identificadores definidos en su interior eclipsan a los exteriores y las variables
automáticas creadas en él son destruidas al salir del ámbito.
Sentencias de selección
Las sentencias de selección o de control de flujo, pueden decidir entre varios
cursos de acción distintos en función de ciertos valores. Existen dos tipos de
estas sentencias de selección: if...else y switch. Ejemplo:
switch ( foo() ) {
case 0: case 1:
if (first) break;
else ++x;
case 2:
...
default:
break;
}
Sentencias de iteración
Las sentencias de iteración permiten repetir un conjunto de sentencias
ejecutando un bucle. En C++ existen tres formas de iteraciones: los bucles
while, do…while y for. Ejemplo:
while (first) {
...
for (int x = 1; x < y; ++x) {
...
do { // begin second
...
...
} while (second); // end second
...
} // end for
...
} // end first
Sentencias de salto
Las sentencias de salto permiten transferir el control del programa de forma
incondicional. Existen cuatro de estas sentencias: break, continue, y return.
Ejemplo:
while (foo) {
start:
if (some) break;
...
if (first) goto start;
...
if (second) continue;
...
if (! any) return;
...
}
Sentencias de declaración
Este tipo de sentencias introducen uno o más identificadores en un bloque.
Ejemplo:
try {
...
}
Sentencias de preproceso
Constituyen un tipo muy especial, tanto en su sintaxis como en su
comportamiento. No representan una computación en tiempo de ejecución
(runtime), sino de compilación, ya que su efecto es realizar modificaciones
sobre el código fuente. Su sintaxis también es especial; no requieren el punto y
coma de terminación y comienzan siempre con el símbolo #.
Sentencias ensamblador
C++ dispone de la opción de poder escribir directamente instrucciones en
lenguaje ensamblador junto con el resto del código fuente. Para esto dispone
de una palabra clave específica: asm. La palabra asm indica que la cadena
literal que sigue será incluida en el código objeto en la posición indicada. La
sintaxis empleada depende del compilador. En el caso de C++ Builder, es la
siguiente: asm <opcode> <operandos> <; o NL> Ejemplo
asm {
mov ax, 0x0e07;
xor bx, bx;
int 0x10;
}
La sintaxis empleada por el compilador C++ GNU para Windows utilizado por
Dev-C++ no utiliza la sintaxis de Intel, sino la de AT&T. Ejemplo: