• Ir al contenido
  • Ir a la navegación
  • Ir al buscador
 
Portada Boludo
ING English
Directorio WAP para móvil, Tablet, iPhone o Smartphone

Centro de Noticias de la Universidad de Oriente

Categorías

 

Inicio  |  Contacto  |  Posts  |  TIENDA PUBLISHOP  |  Sobre nosotros  |  Registro y Planes  |  Pagos  |  Donaciones

Ver Código QR de esta página

Campaña #AyudemosaYuli  |  Campaña #AyudemosaStephany.  |  ¿Interesado(a) en cursos y resolución de ejercicios de materias prácticas? Para más información, contáctenos por: Teléfono: +58 (412) - 8226575. WhatsApp y Telegram: +58 (426) - 6836955 o escriba al correo: [email protected]. Únete al grupo: SISTEMAS (UDOMO).

[»] **Musica para tu celular

WEB TRANSLATOR

LINK for English Language

Use this link for translate into English


+ Buscar en BolUDO

 

Estructura repetitiva do while

Tweet
 

lunes julio 11, 2016

La estructura do while es otra estructura repetitiva, la cual ejecuta al menos una vez su bloque repetitivo, a diferencia del while o del for que podían no ejecutar el bloque.

Esta estructura repetitiva se utiliza cuando conocemos de antemano que por lo menos una vez se ejecutará el bloque repetitivo. La condición de la estructura está abajo del bloque a repetir, a diferencia del while o del for que está en la parte superior.

Representación gráfica:

estructura repetitiva do while

El bloque de operaciones se repite MIENTRAS la condición sea Verdadera.

Si la condición retorna Falso el ciclo se detiene. En C++, todos los ciclos repiten por verdadero y cortan por falso. Es importante analizar y ver que las operaciones se ejecutan como mínimo una vez.

Problema 1:

Escribir un programa que solicite la carga de un número entre 0 y 999, y nos muestre un mensaje de cuántos dígitos tiene el mismo. Finalizar el programa cuando se cargue el valor 0.

Diagrama de flujo:

estructura repetitiva do while

No hay que confundir los rombos de las estructuras condicionales con los de las estructuras repetitivas do while.

En este problema por lo menos se carga un valor. Si se carga un valor mayor o igual a 100 se trata de un número de tres cifras, si es mayor o igual a 10 se trata de un valor de dos dígitos, en caso contrario se trata de un valor de un dígito. Este bloque se repite hasta que se ingresa en la variable valor el número 0 con lo que la condición de la estructura do while retorna falso y sale del bloque repetitivo finalizando el programa.

Programa:

#include<iostream>

using namespace std;

void main()
{
     int valor;
     do {
         cout <<"Ingrese un valor entre 0 y 999 (0 finaliza):";
         cin >>valor;
         if (valor >= 100) 
         {
             cout <<"Tiene 3 dígitos.";
         } 
         else
         {
             if (valor >= 10) 
             {
                 cout <<"Tiene 2 dígitos.";
             } 
             else 
             {
                 cout <<"Tiene 1 dígito.";
             }
         }
         cout <<"";
     } while (valor != 0);
}

Este proyecto lo puede descargar en un zip desde este enlace :

DoWhileCantidadDigitos

Problema 2:

Escribir un programa que solicite la carga de números por teclado, obtener su promedio. Finalizar la carga de valores cuando se cargue el valor 0.

Cuando la finalización depende de algún valor ingresado por el operador conviene el empleo de la estructura do while, por lo menos se cargará un valor (en el caso más extremo se carga 0, que indica la finalización de la carga de valores)

Diagrama de flujo:

estructura repetitiva do while

Es importante analizar este diagrama de flujo.

Definimos un contador cant que cuenta la cantidad de valores ingresados por el operador (no lo incrementa si ingresamos 0) El valor 0 no es parte de la serie de valores que se deben sumar. Definimos el acumulador suma que almacena todos los valores ingresados por teclado. La estructura repetitiva do while se repite hasta que ingresamos el valor 0. Con dicho valor la condición del ciclo retorna falso y continúa con el flujo del diagrama. Disponemos por último una estructura condicional para el caso que el operador cargue únicamente un 0 y por lo tanto no podemos calcular el promedio ya que no existe la división por 0. En caso que el contador cant tenga un valor distinto a 0 el promedio se obtiene dividiendo el acumulador suma por el contador cant que tiene la cantidad de valores ingresados antes de introducir el 0.

Programa:

#include<iostream>

using namespace std;

void main()
{
    int suma,cant,valor,promedio;
    suma=0;
    cant=0;
    do {
        cout <<"Ingrese un valor (0 para finalizar):";
        cin >>valor;
        if (valor !=0 ) 
        {
            suma=suma+valor;
            cant++;
        }
    } while (valor != 0);
    if (cant !=0 ) 
    {
        promedio=suma/cant;
        cout <<"El promedio de los valores ingresados es:";
        cout <<promedio;
    }
    else
    {
        cout <<"No se ingresaron valores.";
    }
    cin.get();
    cin.get();
}

El contador cant DEBE inicializarse antes del ciclo, lo mismo que el acumulador suma.

El promedio se calcula siempre y cuando el contador cant sea distinto a 0.

Este proyecto lo puede descargar en un zip desde este enlace :

DoWhileCalculoPromedio

Problema 3:

Realizar un programa que permita ingresar el peso (en kilogramos) de piezas. El proceso termina cuando ingresamos el valor 0. Se debe informar:

a) Cuántas piezas tienen un peso entre 9.8 Kg. y 10.2 Kg.?, cuántas con más de 10.2 Kg.? y cuántas con menos de 9.8 Kg.? b) La cantidad total de piezas procesadas.

Diagrama de flujo:

estructura repetitiva do while

Los tres contadores cont1, cont2, y cont3 se inicializan en 0 antes de entrar a la estructura repetitiva.

A la variable suma no se la inicializa en 0 porque no es un acumulador, sino que guarda la suma del contenido de las variables cont1, cont2 y cont3. La estructura se repite hasta que se ingresa el valor 0 en la variable peso. Este valor no se lo considera un peso menor a 9.8 Kg., sino que indica que ha finalizado la carga de valores por teclado.

Programa:

#include<iostream>

using namespace std;

void main()
{
    int cant1,cant2,cant3,suma;
    float peso;
    cant1=0;
    cant2=0;
    cant3=0;
    do {
        cout <<"Ingrese el peso de la pieza (0 pera finalizar):";
        cin >>peso;
        if (peso > 10.2) 
        {
            cant1++;
        }
        else 
        {
            if (peso >= 9.8)
            {
                cant2++;
            }
            else 
            {
                if (peso > 0) 
                {
                    cant3++;
                }
            }
        }
    } while(peso!=0);
    suma=cant1+cant2+cant3;
    cout <<"Piezas aptas:";
    cout <<cant2;
    cout <<"";
    cout <<"Piezas con un peso superior a 10.2:";
    cout <<cant1;
    cout <<"";
    cout <<"Piezas con un peso inferior a 9.8:";
    cout <<cant3;
    cin.get();
    cin.get();
}

Este proyecto lo puede descargar en un zip desde este enlace :

DoWhilePesoPiezas
  1. Realizar un programa que acumule (sume) valores ingresados por teclado hasta ingresar el 9999 (no sumar dicho valor, indica que ha finalizado la carga). Imprimir el valor acumulado e informar si dicho valor es cero, mayor a cero o menor a cero.
  2. En un banco se procesan datos de las cuentas corrientes de sus clientes. De cada cuenta corriente se conoce: número de cuenta y saldo actual. El ingreso de datos debe finalizar al ingresar un valor negativo en el número de cuenta. Se pide confeccionar un programa que lea los datos de las cuentas corrientes e informe: a)De cada cuenta: número de cuenta y estado de la cuenta según su saldo, sabiendo que:
    Estado de la cuenta	'Acreedor' si el saldo es >0.
    			'Deudor' si el saldo es <0.
    			'Nulo' si el saldo es =0.
    
    b) La suma total de los saldos acreedores.
Solución
#include<iostream>

using namespace std;

void main()
{
    int suma,valor;
    suma=0;
    do {
        cout <<"Ingrese un valor:";
        cin >>valor;
        if (valor != 9999) 
        {
            suma=suma+valor;
        }
    }while (valor != 9999);
    cout <<"El valor acumulado es ";
    cout <<suma;
    cout <<"";
    if (suma == 0) 
    {
        cout <<"El valor acumulado es cero.";
    }
    else 
    {
        if (suma > 0) 
        {
            cout <<"El valor acumulado es positivo.";
        } 
        else 
        {
            cout <<"El valor acumulado es negativo";
        }
    }
    cin.get();
    cin.get();
}

Este proyecto lo puede descargar en un zip desde este enlace :DoWhileSumar

#include<iostream> using namespace std; void main() { int cuenta; float saldo,suma; suma=0; do { cout <<"Ingrese número de cuenta:"; cin >>cuenta; if (cuenta >= 0) { cout <<"Ingrese saldo:"; cin >>saldo; if (saldo >0 ) { cout <<"Saldo Acreedor."; suma=suma+saldo; } else { if (saldo < 0) { cout <<"Saldo Deudor."; } else { cout <<"Saldo Nulo."; } } cout <<""; } } while(cuenta>=0); cout <<"Total de saldos Acreedores:"; cout <<suma; cin.get(); cin.get(); }

Este proyecto lo puede descargar en un zip desde este enlace :DoWhileCuentasBanco

— @bolUDOoficial

— Síguenos en Twitter@bolUDOoficial

Categorías: #C++, #


[0] Atrás | Directorio
« Inicio
Apps Infoudo
Apps Infoudo ¡Descarga el icono directo en el menú de tu equipo!
[»] Las mejores Apps para tu celular
[»] Imágenes Gratis


Comenta o lee lo que otros opinan

COMPÁRTELO:

Indica que te gusta y comparte

Me Gusta :)Facebook Tuiteame :)Twitter .WhatsApp .Telegram . LinkedIn

También te puede interesar:

NOCIONES BÁSICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS.
Material de Apoyo del Curso de Programación - Lenguaje C++ - Periodo (Feb - May) del año en curso
Parámetros por valor y por referencia de objetos
Parámetros por valor y por referencia de datos simples
Métodos constantes (const)
Parámetros de un método constante (const)
Definición de constantes (const)
Directiva #define
Puntero this
Métodos estáticos de una clase


« Estructura repetitiva for  |  Cadena de caracteres mediante vectores »
 
Apps Infoudo
 
Buscador:
Powered by Google:


Web móvil
Imágenes
La Web

 

Síguenos por RSS


Puedes leerlos mediante el navegador Firefox, lectores de noticias en la computadora o el móvil o usando el servicio de Feedburner de Google para recibir las notificaciones por correo electrónico.
RSS - Suscribirse usando Feedburner de Google

email Recibir las nuevas publicaciones de Boludo por email

Atom


»Ir a URL
.....
Registra Gratis Tu Negocio
....
Sugerir un nuevo sitio WAP

...
¡Bloguea Ya!

..
Registro de Profesionales(Abogados, escritores, doctores, licenciados, ingenieros, etc.)
.
Soporte

Síguenos en las redes sociales

Síguenos en Facebook facebook.com/boludooficial Síguenos en Twitter @bolUDOoficial Síguenos en Instagram @boludooficial Síguenos en Telegram t.me/Boludooficial
Síguenos en WhatsApp BolUDOoficial Síguenos en YouTube youtube.com/channel/UCJDooTJmROzAkBcbRrryvGA
Síguenos en Facebook facebook.com/SergioAlemanFans Síguenos en Twitter @SergioAleman1 Síguenos en Instagram @sergioalemanfans
Síguenos en WhatsApp wa.me/qr/Y7Q232VLZPR5O1 Síguenos en Tiktok @sergioalemanoficial Síguenos en Tiktok @sergioalemanfans
Síguenos en Telegram t.me/SergioAlemanOficial Síguenos en YouTube youtube.com/channel/UCqcLSYCKx9pamla68nFMDkw
Síguenos en Facebook facebook.com/INFOUDO.OFICIAL Síguenos en Twitter @infoudomon Síguenos en Instagram @infoudooficial Síguenos en Telegram t.me/Infoudooficial
Síguenos en Facebook facebook.com/tuinfou Síguenos en Twitter @infoudomonagas
Síguenos en WhatsApp INFO UDO Síguenos en YouTube youtube.com/channel/UCuicPxpqv3C0p1qwaO1XSSQ

Mis cuentas sociales

FB
Twitter
Pinterest
Instagram
Otras

Móvil: (0426 683 6955) - E-mail: [email protected] - [email protected] - WhatsApp: +58 (0426) 683.69.55


Copyscape
Volver arriba

Protocolo  |  Mapa del Sitio  |  Report Abuse - DMCA  |  Términos y Condiciones  |  Ayuda  |  Privacidad de Datos  |  Política de Cookies  |  Reportar un bug  |  Licencia: CC BY-NC-ND 3.0

Copyright ©2023 Boludo. Todos los derechos reservados. Diseñado y Desarrollado por Sergio Alemán Mi perfil en GitHub


SUBIR