====== Correción de programas ====== - 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