Expresar en el lenguaje de Dijkstra la ejecución de dos comandos en orden indeterminado. Analizar su wp.
Demostrar si el orden de ejecución altera el efecto de los siguientes pares de comandos:
A:=B; C:=D
A:=A+1; A:=A-1;
A:=B; B:=A;
A que commandos en el lenguaje de Dijkstra corresponden las siguientes construcciones. Justificar:
if fi
do od
Hallar una precondición para que: do A→ B:=B * 2; A:=False od
termine en un ciclo con B positivo.
Itere exactamente dos veces y B sea positivo
cicle más de una vez con B positivo
Hallar la precondición para que:
if X > 1 → X := X + 1 fi con poscondición X par
do X > 0 → X := X - 1 od termine, ciclando más de una vez
Verificar si los siguientes programas son correctos:
programa que halla el mayor entre dos nros
programa que halla el mayor entre tres nros
programa que ordena dos nros
Hallar la propiedad invariante y la función variante de los siguientes ciclos:
programa que halla el cociente entre A y B en función de la resta, donde A pertenece a los Naturales con el cero y B pertenece a los Naturales
programa que halla el producto de A y B en función de la suma, donde A pertenece a los Enteros y B pertenece a los Naturales con cero
programa que halla el máximo común divisor entre dos nros Naturales aplicando el algoritmo de Euclides