Nota: 100 Universidad de Costa Rica | Facultad de Ingeniería Escuela de Ingeniería Eléctrica | Programación Bajo Plataformas Abiertas Modulo Python | Laboratorio #13 Erick Carvajal Barboza | B01395 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C Escriba un programa que solicite al usuario las coordenadas x y y de dos puntos y calcule, a partir de esta información, la pendiente y el punto de intersección con el eje y de la recta que pasa por estos puntos. Se implemento el siguiente programa: #include <stdio.h> //Se define el main int main() { //Se definen las variables de entrada float x1, x2, y1, y2; //Se definen las variables de salida float m, b; //Se piden los valores printf("Ingrese el valor de x1: "); scanf("%f", &x1); printf("Ingrese el valor de y1: "); scanf("%f", &y1); printf("Ingrese el valor de x2: "); scanf("%f", &x2); printf("Ingrese el valor de y2: "); scanf("%f", &y2); //Se hacen los calculos m = (y1 - y2)/(x1 - x2); b = y1 - m * x1; //Se imprime el resultado printf ("La recta es: %f * x + %f \n", m, b); //Termina el programa return 0; } Modifique el programa anterior, de forma que el cálculo de la pendiente y la intersección sea realizado por dos funciones independientes. Se hace los mismo que en el programa anterior pero se calculan la pendiente y la intersección con métodos, tal y como se presenta a continuación: #include <stdio.h> //Se define el metodo que calcula la pendiente y se llevan a cabo los calculos float pendiente(float x1, float y1, float x2, float y2) { float m; m = (y1 - y2)/(x1 - x2); return m; } //Se define el metodo que calcula la interseccion y se llevan a cabo los calculos float interseccion(float x1, float y1, float m) { float b; b = y1 - m * x1; return b; } //Se define el main int main() { //Se definen las variables de entrada float x1, x2, y1, y2; //Se definen las vaiables de salida float m, b; //Se piden los datos printf("Ingrese el valor de x1: "); scanf("%f", &x1); printf("Ingrese el valor de y1: "); scanf("%f", &y1); printf("Ingrese el valor de x2: "); scanf("%f", &x2); printf("Ingrese el valor de y2: "); scanf("%f", &y2); //Se llama a las funciones para calcula la pendiente y la interseccion m = pendiente(x1, x2, y1, y2); b = interseccion(x1, y1, m); //Se imprime el resultado printf ("La recta es: %f * x + %f \n", m, b); //Termina el programa return 0; } Escriba un programa que solicite al usuario un número e imprima todos los divisores de este número. El programa debe continuar realizando esta operación hasta que el usuario introduzca un cero. Se presenta a continuación el programa implementado: #include <stdio.h> #include <math.h> //Se define el main int main() { //Se definen variables importantes int contador, numero, resto; numero = 1; //Se utiliza un do - while porque se quiere que la acciòn de pedir numero se realice al menos 1 vez do { contador = 1; //Se pide el número printf("Ingrese el digito para conocer sus divisore, 0 para salir "); scanf("%d", &numero); //Mientras que el contador sea menor al numero se buscarán los numeros para los cuales el resto es cero, esos son los divisores while (contador <= numero) { resto = numero%contador; if (resto == 0) { printf ("%d es un divisor de %d \n", contador, numero); } contador++; } } while (numero != 0); return 0; } Escriba un programa que calcule el máximo común divisor (MCD) de dos números x y y. Puede utilizar la siguiente fórmula para realizar el cálculo: x si y = 0 MCD(x, y) = { MCD(y, x mod y) si x ≥ y y y > 0 Para este programa se utilizo un algoritmo recursivo, tal y como se muestra a continuación #include <stdio.h> #include <math.h> //Metodo que calcula el MCD de forma recursiva, con la definicion otorgada en el laboratorio int MaxComDiv(int numero1, int numero2) { int mcd, y; if (numero2 == 0){ mcd = numero1; } if ((numero1 >= numero2) && (numero2 > 0)){ y = numero1 % numero2; mcd = MaxComDiv(numero2, y); } return mcd; } int main() { //Se definen las variables de entrada y salida int numero1, numero2, mcd; printf("Este programa calcula el MCD de dos numeros, digite el primer numero: "); scanf("%d", &numero1); printf("Digite el segundo numero: "); scanf("%d", &numero2); //Si el primer numero es menor al segundo, el metodo MaxComDiv no funcionara adecuadamente, por eso se llaman de forma que el primero sea mayor if (numero1 >= numero2) { mcd = MaxComDiv(numero1, numero2); } else { mcd = MaxComDiv(numero2, numero1); } //Se imprime el resultado printf ("El MCD es: %d", mcd); return 0; }