Computer Science

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

Programación Estructurada en C

Juan Espejo1

16 de agosto de 2017

1 Escuela
Profesional de Matemática, Universidad Nacional de Ingenierı́a, R1-325, Av. Túpac
Amaru s/n, Rı́mac, Lima 25, Perú, e-mail: [email protected]
Capı́tulo 1

Estructuras de control selectivas

Al finalizar la presente sesión de laboratorio, el estudiante debe ser capaz de

Modificar el orden de ejecución de las sentencias de un programa a través de


sentencias if

Utilizar la cláusula else de la sentencia if

Resolver problemas implementando instrucciones if

Manejar los operadores de asignación compuestos

1.1. Preliminares
Los operadores de relación son empleados generalmente para construir expresiones
de relación usadas en sentencias selectivas e iterativas.

Las sentencias en C se ejecutan normalmente de arriba hacia abajo conforme aparecen


en el código fuente. Una sentencia de control modifica el orden de ejecución de las
sentencias de un programa.

1.2. La sentencia if
if ( expre )
{
sentencia ;
}
Si expre se evalúa como verdadera, sentencia es ejecutada; caso contrario, no es ejecu-

tada. En cualquier caso, la ejecución continúa con lo que viene después de }.

1
N.B.: Ambas lı́neas: if ( expre ) y sentencia ; se consideran que constituyen la
sentencia if completa. No son sentencias separadas. Una sentecia if puede controlar
la ejecución de múltiples sentencias, a través del uso de una sentecia compuesta o
bloque.

La cláusula else

Una sentencia if puede opcionalmente incluir una cláusula else.


if ( expre )

sentencia1 ;
else
sentencia2 ;
Si expre se evalúa como verdadera, sentencia1 es ejecutada; caso contrario, sentencia2

es ejecutada. Tanto sentencia1 como sentencia2 pueden ser sentencias compuestas o


bloques.

Sentencia if anidada...

1.3. Valores de Verdadero


Se ha visto hasta ahora que se evalúa a 0 para representar falso y a 1 para verdadero.
No obstante, es importante tener en cuenta que cualquier valor numérico es interpreta-
do ya se o bien como verdadero o bien como falso cuando se espera un valor lógico de
él. La regla es que un valor de cero representa falso y cualquier valor diferente de cero
representa verdadero.

Los operadores de asignación compuestos proveen un método abreviado para combi-


nar una operación aritmética binaria con una operación de asignación.

Ejemplo 1.1. x += 5; //es equivalente a


x = x + 5;
x /= 2; //es equivalente a

x = x / 2;
Ejercicio 1.1. Escriba un progama que pida ingresar un número entero y se muestre si
este es par o impar.
Ejercicio 1.2. Cree un programa que pida ingresar un entero positivo y muestre si es
múltiplo de nueve o no.

2
Ejercicio 1.3. Cree un programa que pida ingresar tres números enteros. Luego deter-
mine y muestre el mayor de ellos.

Ejercicio 1.4. Implemente un programa que pida ingresar tres números enteros. Luego
muestre dichos números ordenados de menor a mayor.

Ejercicio 1.5. Desarrolle un programa que pida ingresar un año y muestre si es bisiesto
o no.

Ejercicio 1.6. Implemente un programa que simule a una calculadora elemental: se pide
un número, un operador (+,-,*,/) y otro número, y a continuación se debe imprimir el
resultado de la operación correspondiente. Si en caso se ingresa la división por cero, se
debe mostrar un mensaje de alerta.

Ejercicio 1.7. El pago que recibe un carpintero depende de sus años de experiencia y
del tipo de producto que produce según la siguiente tabla:

S/. por unidad


Años de experiencia sillas mesas
0-5 20 30
6 - 20 35 60
21 - más 25 40

Además, el carpintero recibe una bonificaciı́on especial de acuerdo a la cantidad que


produce según la siguiente tabla:

Total de unidades producidas bonificación ( %)


1-5 0
6 - 20 20
21 - más 50

Cree un programa que muestre el pago de un carpintero al ingresar los años (número
entero) de experiencia de dicho carpintero y la cantidad de sillas y mesas que produce.
Por ejemplo, cuando un carpintero de 8 años de experiencia produce 3 sillas y 4 mesas,
recibe 1,2 (3 × 35 + 4 × 60) Soles.

Ejercicio 1.8. El pago que recibe un técnico de computadoras depende de su catagorı́a


y del tipo de computadora que repara según la siguiente tabla:

S/. por unidad


Categorı́a Desktop Laptop
A 20 30
B 30 50
C 50 100

3
Además, el técnico ofrece descuentos según la cantidad de computadoras que repara
según la siguiente tabla:

Total de unidades reparadas Descuento ( %)


1-2 0
3-5 10
6-9 20
10 - más 25

Implemente un programa que muestre el pago de un técnico de computadoras y el


descuento que da el mismo al ingresar su categorı́a y la cantidad de desktops y laptops
que produce. Por ejemplo, cuando un técnico de computadoras de categorı́a B repara 2
desktops y 3 laptops, su pago es de 189 = 0,9 (2 × 30 + 3 × 50) soles y el descuento fue
de 21 = 0,1 (2 × 30 + 3 × 50) soles.

Ejercicio 1.9. Construir un programa que acepte un número entero en el rango de 1 a


99. Luego, muestre dicho número en romano. Por ejemplo:

Se ingresa : 68
Se obtiene : LXVIII

Ejercicio 1.10. Sobre el siguiente programa:

1 #include <stdio.h>
2

3 void main ()
4 {
5 if (1)
6 printf("uno\n");
7 else
8 if (2)
9 printf("dos\n");
10 else
11 printf("tres\n");
12 }

1. ¿Cuántas sentencias if hay?

2. ¿Qué es lo que se muestra en la pantalla?

3. Si en la lı́nea 5 se cambia el 1 por el 0, ¿qué se muestra en la pantalla?

4. Si en las lı́neas 5 y 8 se cambian dichos números por el 0, ¿qué se muestra en la


pantalla?

4
Ejercicio 1.11. Escriba un programa que pida ingresar un ángulo en sexagesimal y nos
indique por un mensaje si dicho ángulo se encuentra

en el semieje positivo x,

en el primer cuadrante,

en el semieje positivo y,

en el segundo cuadrante,

...

en el cuarto cuadrante.

Ejercicio 1.12. Sobre el siguiente programa:

1 #include <stdio.h>
2

3 int main ( )
4 {
5 if (-2)
6 printf("uno\n");
7 else
8 if (3.14)
9 printf("dos\n");
10 else
11 printf("tres\n");
12 return -2;
13 }

1. ¿Cuántas sentencias if hay? ¿Por qué?

2. ¿Qué es lo que se muestra en la pantalla?

3. Si en la lı́nea 5 se cambia el -2 por el 0, ¿qué se muestra en la pantalla?

4. Si en las lı́neas 5 y 8 se cambian dichos números por el 0, ¿qué se muestra en la


pantalla?

Ejercicio 1.13. El plan postpago de un teléfono celular incluye 100 minutos y 500
mb de internet por 20 soles mensuales. Por cada minuto extra se cobra S/0.20 y por
cada mb adicional S/0.05. Además, el plan incluye un pago por un seguro del equipo de
S/1.50, y toda esta cuenta (incluyendo el pago del seguro) es sujeta al IGV que es del
18 porciento. Escriba un programa que lea la cantidad de minutos y mb usados en un

5
mes por un usuario. Luego, muestre la cuenta básica, la cuenta por minutos adicionales,
la cuenta por mb adicionales, por el seguro, por el impuesto y la cuenta total a pagar.
Todos los montos deben ser mostrados empleando 2 decimales.

Ejercicio 1.14. Según la longitud de sus lados, todo triángulo se clasifica en

equilátero,

isósceles,

escaleno.

Escriba un programa que lea 3 enteros: a, b y c y muestre un mesaje diciendo si dichos


números corresponden o no a los lados de un triángulo y en caso afirmativo muestre su
clasificación (equilátero, isósceles o escaleno).

Ejercicio 1.15. Elaborae un programa que pida ingresar la cantidad de segundos trans-
curridos durante el dı́a y te muestre la hora en el siguiente formato: HH:MM:SS.

Ejercicio 1.16. Sean a, b, c, d ∈ R. La teorı́a nos dice que el conjunto solución del
sistema lineal de dos ecuaciones con una incógnita:
(
a·x=b
(1.1)
c·x=d

puede ser un conjunto vacı́o, unitario o toda la recta. Ingrese los coeficientes a, b, c y d
del sistema (1.1) y muestre su conjunto solución, en caso de ser un conjunto unitario se
debe mostrar dicho conjunto. (Sugerencia: Recuerde que la lógica del algoritmo considera
si los coeficientes son iguales a cero; por ejemplo, si a = b = c = d = 0, el conjunto
solución es R.)

Tarea: Leer páginas 93-109 de [1].

6
Bibliografı́a

[1] Barone, L., Marinari, E., and Giovanni Organtini, F. R. T. Scientific


Programming: C-Language, Algorithms and Models in Science. World Scientific Pu-
blishing Company, 2013.

También podría gustarte