Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //============================================================================
- // Name : Cartero.cpp
- // Author : Miguel Angel Pau Diaz
- // Version :
- // Copyright : Fundamentos de Programación 2010
- // Description : Algoritmo del cartero: apertura y cierre de buzones
- //============================================================================
- #include <iostream>
- #include <stdio.h>
- #include <iomanip>
- #include <stdlib.h>
- using namespace std;
- void InitBuzones (int Buzones[], int const DimBuzones, int const valor);
- void Buzonea(int Buzones[], int const DimBuzones, int const base);
- int main() {
- int const TBuzon = 150;
- int const sangrado = 20;
- int iBuzones[TBuzon], ini, iVal=0;
- do{
- system("cls");
- cout << "\n EL CARTERO SIEMPRE BUZONEA 'N' VECES" << endl;
- cout << "\n Indica el buzón por el que quieres que empiece (0-149):" << endl;
- cin >> ini;
- }while (ini<0 && ini>149);
- InitBuzones(iBuzones, TBuzon, iVal);
- for (int i=ini; i<150 ; i++){
- Buzonea (iBuzones, TBuzon, i);
- }
- cout <<"\n Estado final de los buzones (0 - abierto / 1 - cerrado):" << endl;
- for (int i=0; i<5; i++){
- cout << endl << setw(sangrado) << setfill(' ') << " ";
- for (int j=0; j<30; j++){
- cout << iBuzones[(i*30)+j];
- }
- }
- cout << endl;
- fflush(stdin);
- cin.get();
- return 0;
- }
- //Inicializa los buzones a "valor" (cero)
- void InitBuzones (int Buzones[], int const DimBuzones, int const valor){
- for (int l=0; l<DimBuzones; l++)
- Buzones[l]=valor;
- }
- void Buzonea(int Buzones[], int const DimBuzones, int const base){
- if (base!=0){
- for (int b=base; b<DimBuzones; b+=base){
- if (Buzones[b]==0)
- Buzones[b]=1;
- else
- Buzones[b]=0;
- }
- }else Buzones[0]=1;
- //Debug
- /*for (int i=1; i<DimBuzones; i++)
- cout<<Buzones[i];
- cout << endl;*/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement