Skip to content

Latest commit

 

History

History
200 lines (116 loc) · 13.1 KB

selectiva.md

File metadata and controls

200 lines (116 loc) · 13.1 KB

Programación estructurada. Selectiva

La estructura de secuencia se trató en el capítulo anterior. Por defecto, las instrucciones de un programa se ejecutan secuencialmente. Sin embargo, al describir la resolución de un problema, es normal que tengamos que tener en cuenta condiciones que influyen sobre la secuencia de pasos que hay que dar para resolver el problema. Estas selectivas se utilizan para tomar decisiones lógicas; de ahí que se suelan denominar también estructuras de decisión o alternativas y son utilizadas en todos lenguajesde programación. Las estructuras selectivas son aquellas que dirigen la ejecución de un programa hacia urupo de senencias del resultado de la condición. Respondiendo a la necesidad der:

 Si condición
 entonces
    hacer acción X ...
    sino
      hacer acción Y ...

Problemas donde se necesita el uso de la estructura de selección/decisión

Exceso de velocidad

Construir un programa que lea por teclado un valor de velocidad y que escriba en pantalla un mensaje si la velocidad supera los 120 Km/h y en cuanta cantidad los supera

    excesoVelocidad.psc Ver     excesoVelocidad.c

Calcular la temperatura máxima

Construir un programa que lea por teclado dos valores de temperatura en grados centígrados y que determine e imprima en pantalla el mayor valor

    temperaturaMaximaSelectivaSimple.psc Ver     temperaturaMaximaSelectivaSimple.c

Identificar el nivel del huracan

Construir un programa que lea por teclado el nivel de un huracán y que presente en pantalla la categoría (daño) asociada al mismo, según la clasificación de Saffir-Simpson

    huracanes.psc Ver     huracanes1.c     huracanesalternativa.c

Calcular el área de un triangulo

La fórmula de Herón halla el área de un triángulo del cual se conocen todos sus lados. El área se calcula a partir del semiperímetro del triángulo s y de la longitud de los lados (l_1, l_2 y l_3)

    calcularAreaTriangulo.psc Ver     calcularAreaTriangulo.c    

Raices de una ecuación de segundo grado

Construir un programa que calcule e imprima en pantalla las raíces de la ecuación de segundo grado: , dados por teclado los coeficientes A, B y C

    raicesEcuacionSegundoGrado.psc Ver     raicesEcuacionSegundoGrado.c    

Mayor de tres temperaturas

Construir un programa que calcule e imprima la mayor de tres temperaturas (Centígrados) introducidas por teclado.

    tresTemperaturas.psc Ver     tresTemperaturas.c    

Calcular la tarifa de taxi

La tarifa de un taxi es la siguiente:

  • Una cantidad fija de 30 € si no se sobrepasan los 30 km de recorrido.
    
  • Para más de 30 km se consideran los siguientes supuestos:
    
    •  Si no se sobrepasan los 100 km, 15 € por km que exceda de los 30, además de los 30 €.
      
    •  Si se sobrepasan los 100 km, 10 € por km que exceda de los 100, 15 € por km desde los 30 a los 100, y los 30 €.
      

    taxi.psc Ver     taxi.c    

Intersección de dos segmentos en el plano

Construir un programa que determine si dos segmentos de línea recta en el plano XY se cruzan e imprima en pantalla el punto/segmento de intersección o un mensaje de texto en caso de que no se crucen, dados por teclado las coordenadas cartesianas (x,y) de dos parejas de puntos diferentes que definen cada uno de los segmentos.

    interseccion.psc Ver     interseccion.c    

Calculo de autovectores

Construir un programa en C que calcule e imprima en pantalla el autovector (o autovectores) asociado(s) a un autovalor, dados por teclado los coeficientes del sistema lineal homogéneo de ecuaciones a resolver:

    a_11*x+a_12*y+a_13*z=0
    a_21*x+a_22*y+a_23*z=0$
    a_31*x+a_32*y+a_33*z=0$

El sistema debe de ser compatible indeterminado y los autovectores son soluciones no nulas, linealmente independientes. Para la determinación de los autovectores hay que analizar el rango de la matriz de coeficientes M:

  • Rango=3

Determinante(M) <> 0 Sistema compatible determinado. La única solución es (0,0,0) que no es un autovector, el sistema lineal de ecuaciones no se corresponde con ningún autovalor

  • Rango =2

    a_ij * a_kl-a_il * a_kj <> 0 Hay dos ecuaciones linealmente independientes (i y k): a * x + b * y + c * z=0 d * x + e * y + f * z=0 Las variables de las columnas j y l se pueden expresar en función de la tercera variable. Hay un autovector asociado al autovalor que se puede calcular asignando el valor 1 a la tercera variable, calculando los valores de las otras variables, y normalizando el vector resultante.

  • Rango =1

a_ij <> 0 Solo hay una ecuación linealmente independiente (i): a * x + b * y + c * z=0 La variable j se puede expresar en función de las otras dos. Hay dos autovectores asociados al autovalor, que se pueden calcular asignando alternativamente los valores 0 y 1 a las dos variables libres, calculando la tercera variable, y normalizando los dos vectores resultantes

  • Rango 0

a_ij=0, Hay tres autovectores asociados al autovalor: (1,0,0), (0,1,0)$ y $(0,0,1).

    autovectores.psc Ver     autovectores.c    

Coincidencia de temperaturas

Diseñar un programa que lea por teclado tres temperaturas e imprima un mensaje en pantalla indicando si los tres valores coinciden, si al menos dos ellos coinciden o si los tres son diferentes.

    tresTemperaturas.psc Ver     tresTemperaturas.c    

Lectura de datos de sensor de temperatura

Un indicador de temperatura de un automóvil normalmente lee temperaturas en el intervalo -30º a 120º y el voltaje que proporciona el sensor a la salida del motor está comprendido entre 5 y 10 voltios. Suponiendo que la relación es lineal, diseñar un programa que calcule e imprima en pantalla la temperatura a partir de un valor del voltaje introducido previamente por teclado. Para valores de voltaje fuera del rango considerado, imprimir un mensaje de error en la lectura de la temperatura

    temperaturaSensor.psc Ver     temperaturaSensor.c    

Trasformación de coordenadas polares a coordenadas cartesianas

Diseñar un programa que permita pasar de coordenadas cartesianas bidimensionales a coordenadas polares. El programa leerá por teclado las coordenadas cartesianas e imprimirá en pantalla las coordenadas polares correspondientes.

    cartesianasPolares.psc Ver     cartesianasPolares.c    

Juego de adivinar un número

Diseñar un programa para adivinar e imprimir en pantalla un número de un solo dígito teniendo como información de entrada por teclado un carácter que indique si el número es par ('p') o impar ('i') y el resto de la división del número entre 5.

    adivinarNumero.psc Ver     adivinarNumero.c    

Sumar dos ángulos

Construir un programa que lea por teclado dos ángulos y calcule e imprima en pantalla su suma. Cada ángulo vendrá dado en grados, minutos y segundos, los cuales serán leídos separadamente por teclado y adecuadamente validados (0<=grados<360, 0<=minutos<60, 0<=segundos<60). El resultado de la suma se presentará en pantalla con el mismo formato

    sumarAngulos.psc Ver     sumarAngulos.c    

Calculadora para vectores

Construir un algoritmo que pida por teclado dos vectores y un símbolo de operador (“+”: suma, “-”: resta, “.”: producto escalar, “x”: producto vectorial), realice la operación seleccionada y escriba el resultado en la pantalla

    calculoVectorial.psc Ver     calculoVectorial.c    

Ecuacion por reducción

Diseñar un programa que resuelva un sistema lineal de tres ecuaciones con tres incógnitas mediante el método de reducción, dados por teclado los coeficientes de las incógnitas y los términos independientes de cada ecuación, y que presente en pantalla las soluciones del mismo o un mensaje de error en el caso de que el sistema no tenga solución única (sistema incompatible o compatible indeterminado)

    ecuacionReduccion.psc Ver     ecuacionReduccion.c    


Capítulo anterior. Secuencia | Capítulo siguiente. Iterativa