Introducción a la programación

Conceptos básicos

    1. Escriba (en lenguaje natural) un algoritmo adecuado para la elaboración de su receta de cocina favorita. Analice las características de su algoritmo (especialmente, su precisión).

    2. Elabore, en lenguaje natural, dos algoritmos que permitan calcular el máximo común divisor de dos números enteros positivos. Analice las características de los algoritmos propuestos (precisión, finitud y eficiencia).

      1. NOTA: Busque información sobre el algoritmo de Euclides.

Datos, tipos de datos y expresiones

    1. Traduzca las siguientes fórmulas a expresiones escritas en C, declarando para ello las variables que considere necesarias:

    1. ¿Cuál es el resultado de evaluar las siguientes expresiones si suponemos que, inicialmente, x vale 1?

    • (x > 1) & (x++ < 10)

    • (1 > x) && ( 1 > x++)

    • (1 == x) | (10 > x++)

    • (1 == x) || (10 > x++)

    • (++x) + x;

    • x + (++x)

    1. Realice un programa que calcule el espacio que ocupan en memoria los distintos tipos de datos estudiados. Para ello, utilice la función sizeof(tipo) declarada en <stdlib.h>.

Programas

    1. Diseñe un programa que lea los coeficientes de una ecuación de segundo grado ax2+bx+c=0 y calcule sus dos soluciones. Se supone que la ecuación tiene soluciones reales.

    2. Diseñe un programa que lea los coeficientes de un sistema de dos ecuaciones lineales con dos incógnitas y calcule su solución. Se supone que el sistema de ecuaciones es compatible determinado.

      1. ax+by=c

      2. dx+ey=f

    3. Implemente un programa que, dados los tres vértices de un triángulo, calcule el área del mismo. Puede aplicar la siguiente fórmula:

    1. donde S1, S2 y S3 son las longitudes de los tres lados del triángulo y T es la mitad de su perímetro.

    2. Dada una medida de tiempo expresada en horas, minutos y segundos con valores arbitrarios, elabore un programa que transforme dicha medida en una expresión correcta. Por ejemplo, dada la medida 3h 118m 195s, el programa deberá obtener como resultado 5h 1m 15s.

    3. Escriba un programa en C que nos calcule el cambio que debe dar la caja de un supermercado: Dado un precio y una cantidad de dinero, el programa nos dirá cuántas monedas deben darse como cambio de tal forma que el número total de monedas sea mínimo.

    4. El precio final de un producto para un comprador es la suma total del coste del producto, un porcentaje de beneficios que obtiene el vendedor y el I.V.A. Diseñe un algoritmo para obtener el precio final de un producto sabiendo su coste, el porcentaje de beneficios y el I.V.A. aplicable. Obtenga el resultado redondeando a los cinco céntimos (p.ej. 5.94€ pasa a ser 5.95€).

    5. Un banco recibe del Banco Mundial una lista de cómo está el cambio de las divisas del mundo respecto del dólar americano (USD). Diseñe un algoritmo que, a partir de una cantidad de dólares que deseamos comprar, nos devuelva la cantidad en euros (y en pesetas) que nos costarían esos dólares. Suponga que el banco obtiene en el cambio un tanto por ciento variable de comisión.

      1. NOTA: 1 euro = 166.386 pesetas.