Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Manual de Programación en el Lenguaje C (página 2)



Partes: 1, 2, 3

Partes: 1, , 3

Estructuras

Estructuras Secuenciales

Se les denomina así, por que; son estructuras en
un programa, que
después de ejecutar una instrucción o sentencia,
continúan con la otra, hasta llegar al final del programa.
Los ejemplos que hemos visto anteriormente, son ejemplos de
estructuras secuenciales. Veamos otros ejemplos:

Ejemplo 3.3

Diseñe un programa que calcula el cuadrado y el
cubo de tres números introducidos por el
usuario.

#include <stdio.h>

#include <conio.h>

main()

{

int x, x1, x2, y, y1, y2, z, z1, z2;

clrscr();

printf("tPROGRAMA QUE CALCULA EL CUADRADO Y EL CUBO DE
3 NUMEROSnn");

printf("Introduzaca el primer
n£mero:n");

scanf("%d", &x);

printf("Ahora ingrese el siguiente
n£mero:n");

scanf("%d", &y);

printf("Y el tercer n£mero es:n");

scanf("%d", &z);

x1=x*x;

x2=x*x*x;

y1=y*y;

y2=y*y*y;

z1=z*z;

z2=z*z*z;

printf("*********************************n");

printf("**Numero****Cuadrado*****Cubo****n");

printf("**%d **** %d ***** %d ****n", x, x1,
x2);

printf("**%d **** %d ***** %d ****n", y, y1,
y2);

printf("**%d **** %d ***** %d ****n", z, z1,
z2);

printf("*********************************n");

getch();

return 0;

}

Ejemplo 3.4

Una empresa necesita
conocer el sueldo neto a pagar a un empleado. Teniendo como
entrada el salario produzca
una salida de sueldo neto. Los descuentos a aplicar son: ISSS 5%,
AFP 7% y Renta 10%, estos descuentos son sobre el salario, y es
sueldo neto es la diferencia entre el salario y el total de las
retenciones:

#include <stdio.h>

#include <conio.h>

main()

{

float sueldo, afp, isss, renta, sn;

char nombre[50];

clrscr();

printf("Introduzca el Nombre del
empleado:n");

scanf("%s", nombre);

printf("Su sueldo es:n");

scanf("%f", &sueldo);

afp=sueldo*0.07;

isss=sueldo*0.05;

renta=sueldo*0.10;

sn=sueldo-(afp+isss+renta);

printf("El empleado %sn", nombre);

printf("Posee un sueldo neto de %.2fn", sn);

getch();

return 0;

}

Ejemplo 3.5

Diseñe un programa que calcule el promedio y la
suma de tres números ingresados por el usuario:

#include <stdio.h>

#include <conio.h>

main()

{

float x, y, z, sum, prom;

clrscr();

printf("El Primer n£mero es:n");

scanf("%f", &x);

printf("Ahora el segundo n£mero:n");

scanf("%f", &y);

printf("El Ultimo numero es:n");

scanf("%f", &z);

sum=x+y+z;

prom=sum/3;

printf("*****************************************n");

printf("**La suma es %.2f y el promedio es %.2f*n",
sum, prom);

printf("*****************************************n");

getch();

return 0;

}

Estructuras Selectivas

Los pequeños programas que
hemos diseñada hasta el momento, han sido del tipo
secuencial, es decir, una sentencia se ejecuta después de
otra, hasta el final del programa.

Pero en la vida diaria muchas veces debemos elegir entre
un camino y otro para llegar a nuestro destino. Lo mismo pasa en
programación, al realizar alguna actividad,
nuestro programa debe ser capaz de elegir uno u otro camino, a
seguir dependiendo del valor de
alguna condición evaluada.

Para ello C, dispone de tres tipos de 3 tipos de
estructuras selectivas, la cuales son:

  • Estructura Selectiva Simple
  • Estructura Selectiva Doble
  • Estructura Selectiva Múltiple
  • ESTRUCTURA SELECTIVA SIMPLE

Funciona de la siguiente manera: se evalúa una
condición, de ser cierta efectúa una acción,
de lo contrario, continúa con la ejecución normal
del programa.

Su sintaxis es la siguiente:

If(condición)
Acción;

O también:

If(Condición)

Acción;

Donde:

Condición: Es una expresión lógica
que es evaluada por el compilador

Acción: es la Acción o Acciones que
realizará el programa de resultar cierta la
condición

NOTA: En C, no existe la sentencia "End If", como en
otros lenguajes de
programación para indicar que ha terminado el bloque
de selección,
sino que este se especifica con el punto y coma al final.
Además que, después de la condición NO se
escribe un punto y coma. Si son varias acciones, estas deben ir
dentro de llaves {}, para indicarle al compilador que son un solo
bloque de acciones que deben ejecutarse.

Ejemplo 3.6

En una tienda se venden artículos de primera
necesidad, a los cuales se les aplica un descuento del 20%, de la
compra total, si esta es igual o mayor a $50. Diseñe un
programa en C, que a partir del importe total de la compra
muestre lo que debe pagar el cliente.

#include <stdio.h>

#include <conio.h>

main()

{

float compra;

clrscr();

printf("Introduzca el valor de la
compra:n");

scanf("%f", &compra);

if(compra>=50)

compra=compra*0.8;

printf("El Importe de la compra es %.2fnn",
compra);

getch();

return 0;

}

  • ESTRUCTURA SELECTIVA DOBLE

Esta estructura, se
caracteriza por el hecho que ofrece dos caminos a seguir,
dependiendo si al evaluar la condición resulta cierta o
falsa. Su sintaxis es la siguiente:

if(Condición)

Acción 1;

else

Acción 2;

Funciona, de la siguiente manera si
condición, al evaluarla resulta cierta, realiza la
acción 1. de lo contrario, es decir; si al evaluar
la condición resulta falsa, realiza la acción
2.

Se debe tener en cuenta la condición puede ser
compuesta, es decir haciendo uso de los operadores && y
|| ( Y lógico y No lógico), además que
cuando tenemos más de una sentencia por ejecutar ya sea
del lado del cierto o del falso, estas van dentro de
llaves.

Ejemplo 3.7

Se desea saber si un número es par o impar.
Diseñe un programa en el cual el usuario, ingrese el
número y el programa muestre con un mensaje, si
éste es par o no.

#include <stdio.h>

#include <conio.h>

main()

{

int num;

printf("Ingrese el n£mero:n");

scanf("%d", &num);

if(num%2==0)

printf("ES PARnn");

else

printf("ES IMPARnn");

getch();

return 0;

}

Ejemplo 3.8

Diseñe un programa, que dada la nota de alumno,
imprima en la pantalla un comentario sobre esa nota. El criterio
para los comentarios es el siguiente:

Si nota es mayor o igual a 9 "Excelente"

Si nota es mayor o igual a 8 "Muy Bueno"

Si nota es mayor o igual a 7 "Bueno"

Si nota es mayor o igual a 6 "Regular"

Si nota es menor que 6 "Necesita Mejorar"

#include <stdio.h>

#include <conio.h>

main()

{

float nota;

printf("Digite la nota, porfavor:n");

scanf("%f", &nota);

if(nota >= 9.0)

printf("EXCELENTEnn");

else

if(nota >= 8.0)

printf("MUY BUENOnn");

else

if(nota >= 7.0)

printf("BUENOnn");

else

if(nota >=6.0)

printf("REGULARnn");

else

printf("NECESITA MEJORARnn");

getch();

return 0;

}

Este ejemplo, muestra que C,
permite hacer anidamientos, es decir, una selección dentro
de otra, ya sea del lado del cierto, o del falso o de
ambos.

El lector, puede tratar de hacer sus propias
conclusiones, además de buscar otras posibles solucione
para este mismo problema. Por ejemplo, ¿que pasaría
si iniciamos con la condición del 6.0?. ¿Qué
pasaría si el usuario digita una neta negativa?
¿Cómo podrías darle solución a este
problema?. Como programadores, debemos hacernos muchas preguntas
al momento de diseñar nuestros programas, ya que estos No
serán usados por nosotros, sino por otras
personas.

Ejemplo 3.9

Dada el peso, la altura y el sexo, de unos
estudiantes. Determinar la cantidad de vitaminas que
deben consumir estos estudiantes, en base al siguiente
criterio:

>> Si son varones, y su estatura es mayor a 1.60,
y su peso es mayor o igual a 150 lb, su dosis, serán: 20%
de la estatura y 80% de su peso. De lo contrario, la dosis
será la siguiente: 30% de la estatura y 70% de su
peso.

>> Si son mujeres, y su estatura es mayor de a
1.50 m y su peso es mayor o igual a 130 lb, su dosis será:
25% de la estatura y 75% de su peso. De lo contrario, la dosis
será: 35% de la estatura y 65% de su peso. La dosis debe
ser expresada en gramos.

#include <stdio.h>

#include <conio.h>

main()

{

float peso, estatura, dosis;

char sexo;

printf("Introduzca el sexo del
alumno(a)<H/M>:n");

scanf("%c", &sexo);

printf("Peso:n");

scanf("%f", &peso);

printf("La estatura es de:n");

scanf("%f", &estatura);

if(sexo=='H' || sexo=='h')

{

if(estatura>1.60 && peso >=150)

{

dosis=(0.20*estatura)+(0.8*peso);

printf("La dosis de este alumno ser : %.2f
gramosnn", dosis);

}

else

{

dosis=(0.3*estatura)+(0.7*peso);

printf("La dosis de este alumno sera %.2f gramosnn",
dosis);

}

}

else

{

if(estatura>1.50 && peso >=130)

{

dosis=(0.25*estatura)+(0.75*peso);

printf("La dosis de esta alumna debe ser de %.2f
gramosnn", dosis);

}

else

{

dosis=(0.35*estatura)+(0.65*peso);

printf("La dosis de esta alumna debe ser de %.2f
gramosnn", dosis);

}

}

getch();

return 0;

}

  • SELECCIÓN MÚLTIPLE

Como su nombre lo indica, permite seleccionar entre
varios caminos para llegar al final. En este caso se pueden
elegir un camino o acción a ejecutar de entre varios
posibles que se debe de evaluar, llamada selector.
Sintaxis:

switch(selector)

{

case Etiqueta A:

Acción A;

break;

case Etiqueta B:

Acción B;

break;

case Etiqueta n:

Acción n;

break;

default:

Excepción;

break;

}

En donde:

Selector: Variables, expresiones simples de tipo
ordinal, (enteros y caracteres –int y char-)

Etiqueta: Tiene que ser del mismo tipo de
datos de
selecto. Estas deber ser constantes únicas y diferentes de
otras.

Excepción: Es opcional.

Ejemplo 3.10

Diseñe un programa en C, que dado un
número del 1 al 3, muestre en pantalla y en letras, el
mismo número:

#include <stdio.h>

#include <conio.h>

main()

{

int n;

clrscr();

printf("El N£mero es:n");

scanf("%d", &n);

switch(n)

{

case 0: puts("Cero");

break;

case 1: puts("Uno");

break;

case 2: puts("Dos");

break;

case 3: puts("Tres");

break;

default: puts("Dato No valido");

break;

}

getch();

return 0;

}

Cuestionario

  1. Mencione las diferencias entre las expresiones y los
    operadores:________________________________________________________________________________________________
  2. Que tipo de datos son válidos para los
    operadores
    aritméticos:______________________________________________________
  3. Explique, el resultado de los operadores incremento y
    decremento, dependiendo de su
    posición:________________________________________________________________________________________________
  4. ¿Qué son y para que sirven los
    operadores
    unarios?:_____________________________________________________________________________________________
  5. Explique, el funcionamiento de los operadores de
    asignación:__________________________________________________________________________________________

Ejercicios:

  1. Diseñe un programa que dados tres
    números indique cual es el mayor de ellos.
  2. Diseñe un programa que dados tres
    números indique cual de ellos es el menor.
  3. En un cine se
    exhiben, películas para mayores de edad, diseñe
    un programa que dada la edad, indique si la persona puede o
    no ver la película.
  4. En un supermercado, se realizan descuentos por las
    compras a
    partir de unas bolitas de colores. Si el
    cliente saca una bolita color azul,
    tiene un descuento del 20%, si la bolita es roja, se aplica un
    descuento del 30% y si saca una bolita color blanca, no se
    aplica ningún descuento. Diseñe un programa que a
    partir del importe de la compra y el color de la bolita,
    muestre lo que debe pagar dicho cliente.
  5. Se procesan las notas de 5, alumnos, de las cuales se
    desea saber cual es el promedio de esas 5 notas, y cual fue la
    nota mayor y menor, además de imprimir al final el
    nombre y la nota de cada alumno en forma de tabla.
  6. un estudiante desea saber cuál fue su promedio
    en matemática I, para ello dispone de la
    siguiente información: tiene 3 exámenes, con
    una ponderación del 20% cada uno y 2 laboratorios con
    una ponderación del 30% cada uno. Diseñe un
    programa que dadas las notas calcule el promedio del alumno y
    muestre en pantalla si el alumno esta reprobado o no (para
    aprobar esta materia se
    requiere de una nota mayor o igual a 6.00).
  7. En un estacionamiento, se cobra de la siguiente
    manera: los primeros 10 minutos son gratis, los siguientes 30
    minutos tiene un valor de $0.30 y la hora $0.60. diseñe
    un programa que reciba tanto minutos como horas y muestre lo
    que debe cancelar el cliente. Tomando en cuenta que si es
    Martes y Sábado se hace un descuento del 12.56% sobre el
    monto total.
  8. Diseñe un programa que al introducir un
    dígito del 0 a 9, muestre como se lee.
  9. Diseñe un pequeña calculadora que, al
    digitar un código realice una operación
    específica: si el código es 1, la
    operación es la suma, si es 2, Resta. 3,
    multiplicación y 4 división. Si el usuario a
    escrito otro código inválido, mostrar un mensaje
    de error.
  10. Construya un programa que dado el salario de un
    empleado, permita aplicarle un aumento de 10% si el salario es
    inferior a $500, si es mayor se le aumentará un 8%.
    Luego debe aplicar una retención del 0.96% en concepto de
    Renta a ambos casos.
  11. Se desea calcular el sueldo de un trabajador, a
    partir de las horas trabajadas en la semana y la clase a la
    que pertenece: Trabajadores Clase "A", se les paga $7 por hora.
    Trabajadores clase "B", se paga $5 por hora. Trabajadores clase
    "C", se les paga $4 por hora y los de clase "D", $3.5 por
    hora.
  12. Un comerciante se dedica a la venta de
    sillas únicamente. Vende tres tipos de sillas: tipo A,
    tipo B y Tipo C los precios son
    $5.00, $7.00 y $10.00 respectivamente. Por cada cinco sillas
    compradas del tipo A, del tipo B o del tipo C los clientes
    reciben un descuento de 3%, 5% y 7%, las demás se cobran
    a precio
    normal. Diseñe un programa que imprima en forma de
    factura, con
    el nombre, precio unitario, precio total, nombre de la tienda,
    etc lo que debe cancelar cada cliente en concepto de la
    compra.

Descubre donde está el error.

El siguiente código, es de un programa que a
partir de una nota determina si un alumno esta o no reprobado, y
este puede presentar algunos errores de lógica, de
sintaxis o de ejecución. ¿Puedes descubrirlos y
modificarlos?

#Include <stdio.h>

#incluide <conio.h>

main()

{

float nota;

printf("Digite la nota:n")

scanf("%f", nota);

if(nota>=6.00)

printf("Aprobadonn);

else

printf(Reprobadonn);

getch();

return 0;

}

Capitulo IV "Ciclos"

Introducción**

Es muy común encontrar en los programas operaciones que
se deben ejecutar un número repetido de veces en
períodos más o menos espaciados. Si bien las
instrucciones son las mismas, los datos sobre los que operan
varían. A nuestro alrededor, encontramos problemas que
presentan esas características, por ejemplo: el cálculo de
la nota final de los estudiantes de Programación I, se
realizará tantas veces como alumnos hayan inscritos en
dicha asignatura, el cálculo del salario de los empleados
de una empresa, etc.
En estos casos la solución que se diseñe para un
solo grupo de datos
se debe repetir tantas veces como sea necesario (de acuerdo al
número de estudiantes y de empleados para los ejemplos
anteriores).

Los cálculos simples o la manipulación de
pequeños conjuntos de
datos se pueden realizar fácilmente a mano, pero las
tareas grandes o repetitivas son realizadas con mayor eficacia por una
computadora,
ya que estas están especialmente preparadas para
ello.

Para repetir varias veces un proceso
determinado haremos uso de los ciclos repetitivos, a los cuales
se les conoce con el nombre de estructura repetitiva, estructura
iterativa, lazo o bucle.

(Tomado de Los guiones de clase de Introducción a la Informática. Universidad de El
Salvador. Año 2005)

En C, podemos encontrar tres tipos de ciclos:

  • Entrada Asegurada (while)
  • Ciclo Controlado Por Contador (for)
  • Hacer Mientras (do.. while)

Este ultimo, no está lógicamente
estructurado, por tanto no haremos mucho hincapié en
él.

Conceptos Generales

Funcionamiento de Un Ciclo

Un ciclo, funciona de la siguiente manera: Evalúa
una condición de resultar cierta, realiza una
acción o bloque de acciones, luego vuelve a evaluar la
condición y si nuevamente resulta cierta, realiza la (s)
acción (es). Cuando la condición de cómo
resultado falso, se sale del ciclo y continúa con la
ejecución normal del programa.

Acumulador:

Es una variable, que , como su nombre lo indica se
encarga de acumular valores. Esto se vuelve muy
útil, por ejemplo, cuando queremos encontrar la suma de
los números del 0 al 9, en el acumulador, vamos guardando
los valores de
dichas cifras. Puede ser tanto real como entera. Su valor
inicial, en la mayoría de los casos es cero.

Contador:

Es una variable de tipo entero, que nos ayuda, en el
programa a contabilizar el número de ejecuciones de una
misma acción, de un grupo de alumnos etc. Un acumulador
tiene tres valores
distintos:

  • Valor Inicial: es el valor con el cual iniciamos
    nuestro contador. Generalmente es cero. Esta asignación
    puede hacerse cuando se declara la variable.
  • Valor Final: después de la ejecución
    del ciclo, el valor del contador, será distinto a su
    valor inicial, este puede ser mayo o menor que el mismo, todo
    depende si fue una cuenta creciente o decreciente.
  • Valor de Cambio: Es
    el valor Constante, en el cual se irá
    incrementando nuestro contador, este puede ser positivo o
    negativo; es decir, si la cuanta se realiza de manera
    ascendente o descendente.

NOTA: el lector no debe confundirse entre las variables tipo
acumulador y tipo contador, estas se diferencian unas de otras en
que: los contadores, su valor de cambio es una constante, ya que
aumenta y disminuyen en el mismo valor, mientras que los
acumuladores su valor de cambio no es constante. Un acumulador
necesariamente lo inicializamos con cero (o al menos en la
mayoría de los casos). Un contador puede iniciar con
cualquier valor.

Bandera:

Las variables tipo bandera son aquellas que sólo
admiten dos valores: cierto o falso, true o false, hombre o
mujer
etc

Ciclo de Entrada Asegurada

La sintaxis es la siguiente:

while(condición)

Acción;

Funciona de la siguiente manera: primero evalúa
la condición, si da como resultado cierta realiza la
acción, luego vuelve a evaluar la condición, si su
resultado es falso, se sale del ciclo y continúa con la
ejecución del programa.

Hay que tener mucho cuidado, cuando trabajamos con
ciclos, ya que podemos caer en un ciclo infinito, es decir que
nunca se sale de él. Lo cual no es un error de sintaxis
sino de lógica. Por lo cual en las acciones debemos
siempre colocar algo que haga que se modifique el resultado de la
condición, lo cual puede ser una bandera, un contador o un
acumulador.

Ejemplo 4.1

Diseñe un Programa que imprima los primeros 10
números.

#include <stdio.h>

#include <conio.h>

main()

{

int i=1; /*Declaramos nuestro contador con su Valor
Inicial*/

while(i<=10) /*Mientras i sea menor o igual a
10:*/

{

printf("%dt", i);/*Imprimir el valor de i*/

i+=1;/*Aumentar el contador en 1*/

}

getch();

return 0;

}

Ejemplo 4.2

Se desea conocer el promedio de los números
mayores que cero, en una serie de números ingresados por
el usuario. De los cuales no se sabe la cantidad, haciendo uso de
una bandera, diseñe un programa en el cual el usuario
ingrese los números que desee.

#include <stdio.h>

#include <conio.h>

main()

{

int i=0, sum=0, ban=1, n;

float prom;

while(ban==1)

{

printf("Ingrese un n£mero por
Favor:n");

scanf("%d", &n);

if(n>0)

{

i=i+1;

sum+=n;

}

printf("Desea Ingresar Otro N£mero? (Si=1 y
No=0)n");

scanf("%d", &ban);

}

prom=sum/i;

printf("************************************************************n");

printf("*** El Promedio de los numeros mayores que cero
es: %.2f ***n", prom);

printf("************************************************************n");

getch();

return 0;

}

Ejercicio 4.3

En un salón se tienen las notas de 14, alumnos;
de los cuales se desea saber cual fue el promedio de todas las
notas, cual fue la nota mayor y la nota menor. Así como la
cantidad de aprobados en el curso (Para Aprobar la asignatura se
requiere de una nota mayor o igual a 6.0)

#include <stdio.h>

#include <conio.h>

main()

{

float suma=0, prom, menor=11, mayor=-1, nota;

int i=1,j=0;

while(i<=14)

{

printf("Ingrese la Nota del alumno %d:n",
i);

scanf("%f", &nota);

while(nota<0.00 || nota >10.00)

{

printf("ERROR, la nota debe estar entre 0 y
10n");

scanf("%f", &nota);

}

if(nota>=6.00)

j=j+1;

if(nota>mayor)

mayor=nota;

if(nota<menor)

menor=nota;

i=i+1;

suma=suma+nota;

}

prom=suma/14;

printf("El Promedio es %.2fnn", prom);

printf("El total de Aprobados es %dn", j);

printf("La Mayor nota fue %.2fn", mayor);

printf("%.2f corresponde a la nota menorn",
menor);

getch();

return 0;

}

Ciclo Controlado por contador.

En algunas ocasiones, sabemos a ciencia cierta
el número de veces que se tiene que repetir una misma
acción o bloque de acciones. Y para ello es que nos sirve,
esta estructura. Su sintaxis es la siguiente:

for( valor inicial; condición;
incremento)

accion;

Donde:

Valor inicial: es el valor con el cual inicializamos
nuestra variable de control.

Condición: si la cumple, ejecuta la acción
o acciones e incrementa o decrementa la variable de control, sino
la cumple la condición, se sale del ciclo.

Incremento; que puede ser positivo o negativo
(decremento).

Veamos un ejemplo sencillo:

Ejemplo 4.4:

Diseñe un programa que imprima los primeros 10
números:

#include <stdio.h>

#include <conio.h>

main()

{

int i;

for(i=1; i<=10; i++)

printf("%dt", i);

getch();

return 0;

}

Ejemplo 4.5

Diseñe un programa en C, que calcule las compras
totales, realizadas por un grupo de 20 amas de casa. Luego con
esa información obtenga la media.

#include <stdio.h>

#include <conio.h>

main()

{

int i;

float compra, desvia, prom, varinza, sum=0;

for(i=1; i<=10; i++)

{

printf("Ingrese la cantidad que gast¢ la ama de
casa %d:n", i);

scanf("%f", &compra);

while(compra<0)

{

printf("ERROR, la compra debe ser mayor que cero, vuelva
a intentarlo:n");

scanf("%f", &compra);

}

sum=sum+compra;

}

prom=sum/12;

printf("El promedio de las compras es %.2fnna",
prom);

getch();

return 0;

}

Cabe, mencionar que, en el ciclo for, podemos hacer
cuentas
decrecientes, es decir asignarle un valor grande a nuestra
variable de control y luego irla disminuyendo hasta un valor
determinado.

Ejemplo 4.6

En un cine, se tienen 3 diferentes clases de boletos. Se
pide que diseñe un programa en el cual:

  1. se lea el precio de las 3 clase de
    boletos
  2. Se lea el numero de boletos vendidos de cada
    tipo
  3. Calcular cual boleto es el que se vendió
    menos
  4. El total recaudado en taquilla

Además se sabe que durante el día se
realizaron un total de n ventas.

#include <stdio.h>

#include <conio.h>

main()

{

float preciob1, preciob2, preciob3, sum=0, sum1=0,
sum2=0, sum3=0;

int n, i, boletos1, boletos2, boletos3,
boleto;

clrscr();

printf("ttBIENVENIDO(A)nnn");

printf("Ingrese el precio de los boletos
1:n");

scanf("%f", &preciob1);

while(preciob1<0)

{

printf("ERRORn");

scanf("%f", &preciob1);

}

printf("Ingrese el precio de los boletos
2:n");

scanf("%f",&preciob2);

while(preciob2<0)

{

printf("ERRORn");

scanf("%f", &preciob2);

}

printf("Ingrese el precio de los boletos
3:n");

scanf("%f",&preciob3);

while(preciob3<0)

{

printf("ERRORn");

scanf("%f", &preciob3);

}

printf("&uml;Cu ntas ventas se realizaron este
d¡a?:n");

scanf("%d", &n);

while(n<0)

{

printf("ERRORn");

scanf("%d", &n);

}

for(i=1; i<=n; i++)

{

printf("Ingrese el Boleto:n");

scanf("%d", &boleto);

switch(boleto)

{

case 1: printf("Ingrese la cantidad de boletos
vendidos:n");

scanf("%d", &boletos1);

sum1+=boletos1;

sum=sum+(boletos1*preciob1);

break;

case 2: printf("Ingrese la cantidad de boletos
vendidos:n");

scanf("%d", &boletos2);

sum2+=boletos2;

sum=sum+(boletos2*preciob2);

break;

case 3: printf("Ingrese la cantidad de boletos
vendidos:n");

scanf("%d", &boletos3);

sum3+=boletos3;

sum=sum+(boletos3*preciob3);

break;

default: printf("ERROR, Vuelva a
intentarlonn");

break;

}

}

clrscr();

if(sum3<sum2 && sum3<sum1)

printf("Los Boletos que se vendieron menos fueron los
boletos numero UNOnn");

if(sum2<sum3 && sum2<sum1)

printf("Los Boletos que se vendieron menos fueron los
boletos numero DOSnn");

if(sum1<sum2 && sum1<sum3)

printf("Los Boletos que se vendieron menos fueron los
boletos numero TRESnn");

printf("El total recaudado en taquilla, durante este dia
fue: %.2fnn", sum);

getch();

return 0;

}

Ciclo Do… while

Es te ciclo funciona de la siguiente manera, realiza la
acción o conjunto de acciones, luego evalúa una
condición de resultar cierta vuelve a realizar la/s
accion/es. Cuando sea falsa, se sale del ciclo. Esta estructura,
no está lógicamente, estructurada, por ello, no
hablaremos mucho, sin embargo realizaremos un par de ejemplos, de
este ciclo.

Formato :

do {

sentencia;

.

} while(<expL>);

La diferencia fundamental, entre el ciclo while y
do…while, es que en este ultimo, las sentencias se
realizarán por lo menos una vez, en cambio, con while,
solo se cumplirán mientras se cumpla la
condición, lo cual puede ser nunca.

Ejemplo 4.7

Programa que determina si un año es bisiesto o
no. Y un año es bisiesto si es múltiplo de cuatro,
pero excluyendo aquellos que son múltiplos de 100 pero no
de 400

#include <stdio.h>

#include <conio.h>

void main()

{

int anio;

char respuesta;

printf("nnnINICIO DEL PROGRAMAnnn");

printf("nnEl programa te pide un anio y te dice
exactamente si es bisiesto o no");

do

{

/*ENTRADA DE DATOS*/

printf("nnIntroduzca un anio determinado
");

scanf("%d",&anio);

/*PROCESO Y SALIDA DE DATOS*/

if ((anio%4==0 &&
anio%100!=0)||(anio%400==0)) printf("nnEl anio es
bisiesto");

else printf("nnEl anio no es
bisiesto");

printf("nnDesea introducir mas datosnn");

respuesta=getch();

} while(respuesta=='S' ||
respuesta=='s');

printf("nnnFIN DEL PROGRAMAnnn");

}

NOTA: este código ha sido tomado de "Practicas de
Programación en C", de Fernando
Muñoz Ledesma. Practica 3, ejercicio 5.

Cuestionario

  1. ¿qué es y cómo funciona un
    ciclo?____________________________________________________________________________________________________________________
  2. Cuál es la diferencia entre un contador y un
    acumulador:_____________________________________________________________________________________________________________
  3. ¿cuál es la mejor manera de validar
    datos?:_________________________________________________________________________________________________________________
  4. ¿cómo se evita un ciclo
    infinito?:______________________________________________________________________________________________________________
  5. ¿Qué diferencia existe entre un ciclo
    de entrada asegurada y el do…
    while?:______________________________________________________

Descubre donde está el error.

El siguiente código muestra la serie:

1^2+2^2+3^2….n^2

en el cual hay errores de lógica, de sintaxis o
hasta de ejecución, puedes descubrirlos y
corregirlos?

#include <stdio.h>

#include <conio.h>

main()

{

int n i, x, sum=0;

printf("Inrtroduzca el valor de n:n");

scanf("%d", &n);

while(n<0)

{

printf("Error, vuelva a digitar el valor de
n:n");

scanf("%d", n);

}

for(i=1; i<=n, i++)

x=i*i;

sum+=n;

printf("El valor de la suma es:%dnn", sum)

getch();

return 0;

}

Ejercicios

  1. Se desea conocer la suma de los números
    enteros, positivos menores que n, el cual es un dato dado por
    el usuario.
  2. Muestre un programa en c, que imprima en pantalla los
    números desde un valor inicial, hasta un valor final,
    ingresados por el usuario, tanto en forma descendente como
    ascendente.
  3. Diseñe un programa que imprima la serie de
    Fugonacci, así: 0 1 1 2 3 5 8 13…. hasta un
    número n dado por el usuario.
  4. Calcule el promedio de edades de un grupo de
    estudiantes, de los cuales no se conoce la
    cantidad.
  5. Diseñe un programa que obtenga, la
    calificación mayor y la calificación menor, de un
    grupo de 40 estudiantes, además de los nombres de dichos
    alumnos.
  6. En un país hubieron elecciones para elegir al
    presidente. El país consta de 7 provincias o regiones,
    de las cuales se han levantado actas que contiene el total de
    votos obtenidos por los 4 partidos
    políticos en dicha región. Diseñe un
    programa en c, que lea las actas de las 7 provincias, muestre
    que partido ganó las elecciones y en caso de empate, lo
    especifique con un mensaje.
  7. en un supermercado, hay 3 departamentos (de ropa,
    comestibles y perfumería), en lo cuales se realizan un
    descuento de 5%, 3.5% y 8% respectivamente, por las compras
    totales mayores de $100.00. diseñe un programa que dado
    el monto de la compra, realice los descuentos pertinentes por
    departamento, le indique al usuario a cuanto asciende su nuevo
    monto e indique, cuanto fue lo recaudado al final del
    día.
  8. La Empresa, el porvenir s.a de c.v desea conocer lo que
    debe pagar en concepto de horas extras aun grupo de n
    empleados. Se sabe que una hora extra diurna, se paga el
    doble que una hora normal. Y una hora extra nocturna se paga
    el doble de una hora normal más el 25%. Además
    que todos los empleados tiene sueldos diferentes, muestre el
    nuevo sueldo de cada uno de ellos y lo que tendrá que
    pagar la empresa en
    concepto de horas extra.

  9. Una compañía de teléfonos, cobra
    $0.03 por minuto la llamada nacional local, $0.06 por la
    llamada de larga distancia nacional y $0.10 la llamada de larga
    distancia internacional. Diseñe un programa que calcule
    las facturas mensuales de los clientes, sabiendo que, si las
    llamadas fueron realizadas por la mañana tienen un doble
    valor, y si los 10 primeros minutos de llamadas locales son
    gratis, en cualquier horario.

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter