Considere el siguiente ciclo:
Considere el siguiente segmento de código escrito en lenguaje C.
{Q: x >= 0, y > 0}
q = 0; r = x;
while r >= y do
r = r - y;
q = q+1;
end
{Q: x =?}
Determine el invariante y la Poscondición requeridas.
Respuestas a la pregunta
Respuesta:En la asignatura “Fundamentos de Programacion”, del Grado en Inform ´ atica de la Uni- ´
versidad de Jaen, se estudian una serie de conceptos y mecanismos b ´ asicos de programaci ´ on´
comunes a cualquier lenguaje de programacion. El objetivo de estos apuntes es aprender a ´
utilizar estos conceptos y mecanismos en un lenguaje de programacion concreto: el lenguaje ´
C++. Estos apuntes constituyen un punto de partida para el estudio de C++, limitandose ´
al analisis de estos conceptos b ´ asicos. Concretamente, no se analizar ´ an las caracter ´ ´ısticas
orientadas a objetos de C++, estas se estudiar ´ an en la asignatura “Programaci ´ on orientada ´
a objetos”.
C++ deriva del lenguaje C. El lenguaje C ha sido, y sigue siendo, uno de los lenguajes
de programacion m ´ as utilizados. Al existir una gran cantidad de c ´ odigo escrito en C se ´
considero interesante que C++ fuera compatible con C, en el sentido de que se pudiera ´
utilizar cualquier codigo C previo en un programa escrito en C++. Esta compatibilidad se ´
ha conseguido casi al cien por cien. Sin embargo, C++ es mas moderno y mejor que C, ´
permitiendo un estilo de programacion m ´ as sencillo y seguro que el estilo de C. En aquellos ´
aspectos en los que C++ ofrece alternativas mas elegantes que C—como en la entrada y ´
salida, en los flujos o en las cadenas de caracteres—se ha preferido estudiar unicamente la ´
interfaz de programacion de C++. Si el lector necesita trabajar y entender c ´ odigo escrito en C, ´
entonces necesitara estudiar todas las caracter ´ ´ısticas de programacion de C. Mientras tanto ´
le recomendamos que estudie solamente las caracter ´ ´ısticas de C++, pues son mas sencillas ´
y seguras.
A lo largo de estos apuntes se estudia como expresar en C++ una serie de caracter ´ ´ısticas
comunes a cualquier lenguaje de programacion: los tipos de datos b ´ asicos y estructurados, ´
las variables, la entrada y salida, las expresiones aritmeticas y l ´ ogicas, las sentencias condi- ´
cionales e iterativas, las funciones, la recursividad y los flujos de tipo texto. La sintaxis de
C++ utilizada en estos apuntes sigue el estandar C++98. ´
El codigo C++ que aparece en estos apuntes est ´ a resaltado sint ´ actimente. El resaltado ´
de sintaxis es una caracter´ıstica visual que se aplica al codigo para facilitar su lectura, por ´
ejemplo, visualizando en negrita las palabras reservadas del lenguaje. Cuando usted escriba
el codigo en un editor de texto es posible que estas palabras reservadas no se visualicen en ´
negrita en su editor, no se preocupe, dependera de la configuraci ´ on del editor de texto.
Explicación: