Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.80 KB | None | 0 0
  1. //============================================================================
  2. // Name        : Cartero.cpp
  3. // Author      : Miguel Angel Pau Diaz
  4. // Version     :
  5. // Copyright   : Fundamentos de Programación 2010
  6. // Description : Algoritmo del cartero: apertura y cierre de buzones
  7. //============================================================================
  8.  
  9. #include <iostream>
  10. #include <stdio.h>
  11. #include <iomanip>
  12. #include <stdlib.h>
  13.  
  14. using namespace std;
  15.  
  16. void InitBuzones (int Buzones[], int const DimBuzones, int const valor);
  17. void Buzonea(int Buzones[], int const DimBuzones, int const base);
  18.  
  19. int main() {
  20.     int const TBuzon = 150;
  21.     int const sangrado = 20;
  22.     int iBuzones[TBuzon], ini, iVal=0;
  23.  
  24.     do{
  25.         system("cls");
  26.         cout << "\n EL CARTERO SIEMPRE BUZONEA 'N' VECES" << endl;
  27.         cout << "\n Indica el buzón por el que quieres que empiece (0-149):" << endl;
  28.         cin >> ini;
  29.     }while (ini<0 && ini>149);
  30.  
  31.     InitBuzones(iBuzones, TBuzon, iVal);
  32.  
  33.     for (int i=ini; i<150 ; i++){
  34.         Buzonea (iBuzones, TBuzon, i);
  35.     }
  36.  
  37.     cout <<"\n Estado final de los buzones (0 - abierto / 1 - cerrado):" << endl;
  38.     for (int i=0; i<5; i++){
  39.         cout << endl << setw(sangrado) << setfill(' ') << " ";
  40.         for (int j=0; j<30; j++){
  41.             cout << iBuzones[(i*30)+j];
  42.         }
  43.     }
  44.     cout << endl;
  45.     fflush(stdin);
  46.     cin.get();
  47.  
  48.     return 0;
  49. }
  50.  
  51. //Inicializa los buzones a "valor" (cero)
  52. void InitBuzones (int Buzones[], int const DimBuzones, int const valor){
  53.  
  54.     for (int l=0; l<DimBuzones; l++)
  55.         Buzones[l]=valor;
  56. }
  57.  
  58. void Buzonea(int Buzones[], int const DimBuzones, int const base){
  59.  
  60.     if (base!=0){
  61.         for (int b=base; b<DimBuzones; b+=base){
  62.         if (Buzones[b]==0)
  63.             Buzones[b]=1;
  64.         else
  65.             Buzones[b]=0;
  66.         }
  67.     }else Buzones[0]=1;
  68.     //Debug
  69.     /*for (int i=1; i<DimBuzones; i++)
  70.         cout<<Buzones[i];
  71.     cout << endl;*/
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement