Práctico 3: estructuras condicionales, expresiones aritméticas

Parte 1: Expresiones aritméticas

cantidad de participantes 1 o 2 participantes.

  1. Escribí un programa rectangulo.c que permita ingresar dos valores numéricos, que representan la base y la altura de un rectángulo, luego calcula y publica su perímetro y superficie.

  2. Necesitamos hacer un mueble de madera, para eso necesitamos listones de pino de tamaño adecuado. Conocemos un negocio de maderas solo vende listones de 244 cm de longitud.

    Escribir un programa llamado madera.c que pide al usuario el tamaño de los listones que necesita para su mueble, en cm. El programa tiene que imprimir cuantos listones se pueden hacer con uno de 244 cm, y el tamaño del sobrante.

    Por ejemplo si el usuario ingresa 40 (cm), el programa tiene que imprimir:

    Ud. va a poder cortar 6 listones de 40 cm, y tendra un sobrante de 4 cm.

Parte 2: sentencias condicionales

2.1. Comparaciones

cantidad de participantes 1 o 2 participantes.

En un programa nuevo comparar.c:

Si x es una expresión aritmetica, abs(x) nos da su valor absoluto.

2.2. getchar, comparaciones y estructuras condicionales

cantidad de participantes 1 o 2 participantes.

  1. Escribir un progama que pida al usuario un carácter, luego si el carácter es 'a' imprime “Hola!”, sino imprime “Buen dia.”, y luego imprime (en todos casos) “Adios!”.

  2. Escribir un programa que imprima primero “Ingrese una letra, mayuscula o minuscula”. Pedir un carácter con getchar. Luego, usando un solo operador relacional, si el carácter es una mayúscula imprimir “Es una mayuscula!”, sino es imprimir “Es una minúscula!”. (Estamos suponiendo que el usuario ingresa o una mayúscula o una minúscula, ninguna otra cosa).

2.3. Condiciones con operadores lógicos, else if

cantidad de participantes 1 o 2 participantes.

  1. Escribir un programa que pida al usuario un carácter. Si el carácter es 'a', 'e', 'i', 'o' o 'u', imprime “Es una vocal minuscula.”, sino, imprime “No es una vocal minuscula”.

  2. Escribir un programa que imprime primero “Ingrese un numero, o una letra mayuscula o minuscula.”. Luego, pida al usuario un carácter. Si es un número, imprimir “Es un número!”. Si no, si es una letra mayuscula imprimir “Es una letra mayuscula!”. Sino, si es una letra minuscula imprimir “Es una letra minuscula!”. Sino, imprimir “No se lo que es!”. (Ahora estamos suponiendo que el usuario puede ingresar cualquier carácter.) Para cada condición usar el operador lógico && y operadores relacionales para comprobar que el carácter dado es parte de un rango de carácteres.

2.4. Ingreso de valores con scanf, estructuras condicionales anidadas

cantidad de participantes 1 o 2 participantes.

  1. Crear un programa llamado scanf.c con el contenido siguiente:

    En la llamada a la función scanf, observar el uso del operador &.

  2. Agregar una estructura condicional tal que si el número ingresado es estrictamente mayor a 100, se imprime “Este numero es mayor a 100.”, sino se imprime “Este numero es menor que 100”.

  3. Solo en el caso que el número es mayor que 100, agregar una estructura condicional tal que si el número es par, se imprime “Este numero es par.” , sino se imprime “Este número es impar.”

Parte 3: Problemas

Contestar cada problema en un programa distinto.

  1. Realizá un programa que pida cargar tres números distintos, luego imprime el mayor de ellos.
  2. Realizá un programa que pida cargar una fecha (primero el día, luego el mes), y luego verifica si dicha fecha corresponde a Navidad (imprime un mensaje según sea Navidad o no).

Parte 4: Ejercicios no obligatorios

4.1. El primer parámetro de la función main: argc

cantidad de participantes 1 o 2 participantes.

Hacer lo siguiente en un programa llamado argc.c.

  1. Escribir así el esqueleto de su programa:

  2. Mostrar el valor del entero argc usando printf. argc representa la cantidad de parametros que recibe el ejecutable. Probar de las siguientes maneras:

    O si compilan el programa con tcc argc.c:

    Estamos variando la cantidad de argumentos que le pasamos a nuestro programa. Podemos ver que el valor de la variable argc cambia en función de eso.

  3. Agregar al programa lo necesario para que imprima “No diste ningun argumento.” si no se dio ningun argumento al programa, sino, “Diste 1 argumento” si se dio un argumento, sino “Diste x argumentos” (con “x” reemplazado por el número, y la palabra “argumentos” en plural) si se dio 2 o más argumentos.

  4. Este programa ya es un poco más largo que el resto, ¿no?

    Para descargarlo desde JSLinux, hacer lo siguiente desde la línea de comandos:

4.2. El operador &, mostrar las direcciones en memoria de las variables

cantidad de participantes 1 o 2 participantes.

  1. Crear un programa llamado direccion.c. Declarar una variable de tipo char con nombre c, y otra de tipo int con nombre x, sin asignarles valores iniciales. Mostrar su dirección en memoria, usando printf, el especificador de conversión %p y el operador &.

  2. Ejecutar el programa varias veces y observar la salida.