miércoles, 9 de enero de 2013

Lección 4 - Ciclo centinela (contador)

Ciclo Centinela:  Consiste en una estructura de repetición , con una determinada proposición , en la misma , se repetirá un determinado proceso , hasta que el usuario digite un determinado valor y haga verdadera la condición del ciclo.

Estructura principal:

while(variable != valor) 
 {

instrucciones; 

 }

Lo anterior deja en evidencia , que si el usuario no digita el valor , el ciclo se repetirá continuamente hasta que el valor coincida con la condición propuesta. De igual forma , no necesita un contador que aumente durante cada repetición!

A continuación un ejemplo:


Si la variable valor , no es igual a 1 , el ciclo se repite hasta que el usuario cumpla la condición!.

El programa se mostraría así:

-----------------------------------------------------------------------------------------
Digite su letra: A
Digite su numero: 20
Desea insertar mas letras y numeros?(si  =  1 No =  2): 1
A y 20
Digite su letra: Z
Digite su numero: 100
Desea insertar mas letras y numeros?(si  =  1 No =  2): 2
Z y 100
------------------------------------------------------------------------------------------
y así sucesivamente hasta que el usuario digite 2.

Si tienen alguna duda la pueden postear al final de la página !.

17 comentarios:

  1. hola me podria ayudar en este ejercicio. escriba un programa con instruccion for para calcular el promedio . suponga q el ultimo valor leido es el valor centinela 9999, lo q indica q el programa debe calcular el promedio de todos los valores antes de 9999.

    ResponderEliminar
    Respuestas
    1. Hola, lo que ocupa es algo asi:

      int acumulador =0;
      for(int x =0; ; x++){

      if (x<9999){
      acumulador = acumulador+x;// vamos acumulando la cantidad de pasadas
      }
      else{

      double promedio =acumulador/x;
      cout<<"El promedio total es:" <<promedio; //promedio total
      break; //rompemos el ciclo centinela
      }
      }

      Tengo tiempo sin programar en c++, pero eso deberia funcionarte.

      Eliminar
  2. hola me podrías ayudar con este problema ...Se desea crear una cuenta de ahorros con un menú que tenga 2 opciones depósitos y retiros realizar el proceso hasta que ingrese un centinela ya sea en el depósito o en el retiro 999, imprimir el saldo por cada transacción al fina no tomar en cuenta el centinela para el saldo.

    ResponderEliminar
  3. ayuda
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace practica_7
    {
    class Program
    {
    static void Main(string[] args)
    {
    double calif, prom, suma;
    string nombre;
    calif = 0; suma = 0; prom = 0; Console.Clear();
    Console.Clear();
    for (var i= 1; i <= 3; i++)
    {
    Console.Write("nombre del alumno {0}:", i);
    nombre = Console.ReadLine();
    suma = 0;
    for (var j = 1; j <= 4; j++)
    {
    Console.Write("calif {0}: ", j);
    calif = Convert.ToDouble(Console.ReadLine());
    suma = suma + calif;
    }
    prom = suma / 4;
    Console.Write("el alumno {0}, su promedio es {1}\n", nombre, prom);
    }
    Console.ReadKey();
    }
    }
    }
    como utilizo centinela

    ResponderEliminar
    Respuestas
    1. Este comentario ha sido eliminado por el autor.

      Eliminar
    2. hay varias formas: bool condicion_parada = true; while(condicion_parada){

      // tus tareas aca......

      y en algun momento la condicion de parada debera ser "false" para que salgas del ciclo
      }

      y otra puede ser un for(int x=0; ;x++){

      //como se nota, no coloque condicion.. lo que quiere decir que este ciclo en alguna parte del codigo debera tener una condicion de parada...un break;
      }

      Eliminar
  4. Hola me podrías ayudar con este problema gracias:
    A partir de un listado con datos enteros que se introducen por el teclado y que acaba con el valor -200, nos piden que realicemos las siguientes operaciones:
    - Comprobar si los datos están o no ordenados.
    - En caso de que estén ordenados se indicará si están ordenados de forma creciente o decreciente.

    ResponderEliminar
    Respuestas
    1. Suponiendo que obtienes los datos enteros que se introducen en el teclado y los guardas en un arreglo llamado "numeros" (debes crearlo y poblarlo con datos ingresados por el usuario), podrias hacer algo asi:

      #include
      #include
      using namespace std;


      static int numeros [] = { 2, 4, 8, 10, 24};

      int tamanio = sizeof(numeros)/sizeof(numeros[0]);//obtenemos el tamanio del arreglo numeros

      string orden ="todos los numeros son iguales"; //para guardar "creciente", "decreciente"

      static string ordenamiento(){

      for(int x=1; xnumeros[x]){


      if(orden=="creciente"){return "no estan ordenados";} //iba en forma creciente, pero aparecio un numero menor...significa que no estan ordenados

      orden ="decreciente";

      }

      if(numeros[0]<numeros[x]){

      if(orden=="decreciente"){return "no estan ordenados";} //iba en forma decreciente, pero aparecio un numero mayor...significa que no estan ordenados

      orden ="creciente";

      }


      }
      return orden;

      }


      int main()
      {

      cout << "" << ordenamiento() << "!\n";
      }

      Eliminar
    2. http://cpp.sh/9iy4b

      arriba te dejo la prueba

      Eliminar
  5. me ayudan tengo que hacer un programa que lea por teclado dos numeros si el primero es mayor al segundo informar su suma y diferencia en caso contrario inforar el producto y la division del primero respecto al segundo

    ResponderEliminar
  6. Buena tarde..el termo se programo a 35 grados f..estuvo trabajando y se apago el motor..la caratula o pantalla sigue funcionando . la luz verde prendida.. Me comentan que es normal. Ya que la temperatura ambiente es mas fria. Disculpen pero nunca habia trabajado con termos

    ResponderEliminar
  7. hola me podrias ayudar con estos ejercicios
    Ejercicio 1. Realizar un programa que lea el nombre, sexo (M/H) y 2 calificaciones de un alumno
    y calcule el promedio. Después el programa deberá preguntar si desea continuar. En caso
    afirmativo, preguntar los datos de un nuevo alumno hasta que le indiquemos lo contrario. El
    programa deberá indicarnos al final, cuántos alumnos aprobaron (promedio de 60 o más) y
    cuántos reprobaron, así como %de mujeres aprobadas y % hombres aprobados. Utilizar una
    función que calcule el promedio del alumno recibiendo como parámetros las calificaciones.
    1. (40 puntos) En una granja se requiere saber alguna información para determinar el precio de venta por cada kilo de huevo. Es importante determinar el promedio de calidad de las n gallinas que hay en la granja. La calidad de cada gallina se obtiene según la fórmula:



    Finalmente, para fijar el precio del kilo de huevo, se toma como base la siguiente tabla:

    PRECIO TOTAL DE CALIDAD PESO POR KILO DE HUEVO

    mayor o igual que 15 1.2 * promedio de calidad

    mayor que 8 y menor que 15 1.00 * promedio de calidad

    menor o igual que 8 0.80 * promedio de calidad





    El programa deberá preguntar si desea seguir determinando precio del kg. de huevo de otra gallina.

    2. (25 puntos). Realizar un programa que pregunte lea “x” cantidad de números, hasta que la suma sea mayor a 100. El programa deberá imprimir cuántos números se leyeron y cuál es la suma final. Valida que no se ingresen valores negativos.

    ResponderEliminar
  8. Escriba un programa que utilice una estructura for para que calcule y despliegue el promedio de varios
    enteros. Suponga que el último valor leído es el centinela 999. Una típica secuencia de entrada podría ser

    ResponderEliminar
  9. Hola temgo un problema que no entiendo me puedes ayudar
    Inicializar x con el valor -50y fijar la comdicion x < =0

    ResponderEliminar
  10. escribe un programa en c++ que permita manejar una lista de hasta 100 cantidades reales positivas. el programa debe permitir el ingreso de las 100 cantidades de números reales (‐1 como centinela final). a continuación, permitirá al usuario realizar las siguientes acciones con la lista: • insertar una nueva cantidad al final de la lista. • insertar una nueva cantidad al principio de la lista. • eliminar una cantidad dada su posición en la lista. • localizar una cantidad (indicando la posición en que se encuentra). • mostrar la lista de cantidades (una en cada línea precedida de su posición). nota: cada opción se implementará con un subprograma y habrá un menú de opciones. habrá una función que indique si la lista está llena.​

    ResponderEliminar
  11. Escribe un programa en C++ que permita manejar una lista de hasta 100
    cantidades reales positivas. El programa debe permitir el ingreso de las 100 cantidades de
    números reales (‐1 como centinela final). A continuación, permitirá al usuario realizar las
    siguientes acciones con la lista:
     Insertar una nueva cantidad al final de la lista.
     Insertar una nueva cantidad al principio de la lista.
     Eliminar una cantidad dada su posición en la lista.
     Localizar una cantidad (indicando la posición en que se encuentra).
     Mostrar la lista de cantidades (una en cada línea precedida de su posición).

    ResponderEliminar
  12. Escribe un programa en C++ que permita manejar una lista de hasta 100
    cantidades reales positivas. El programa debe permitir el ingreso de las 100 cantidades de
    números reales (‐1 como centinela final). A continuación, permitirá al usuario realizar las
    siguientes acciones con la lista:
     Insertar una nueva cantidad al final de la lista.
     Insertar una nueva cantidad al principio de la lista.
     Eliminar una cantidad dada su posición en la lista.
     Localizar una cantidad (indicando la posición en que se encuentra).
     Mostrar la lista de cantidades (una en cada línea precedida de su posición).
    Nota: Cada opción se implementará con un subprograma y habrá un menú de opciones.
    Habrá una función que indique si la lista está llena.
    me pueden ayudar en este tem

    ResponderEliminar