martes, 20 de septiembre de 2016

La transpuesta de una matriz NxN

la   transpuesta   se   consigue intercambiando filas por columnas y viceversa
por ejemplo:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
using namespace std;

int main(){
 int matriz[100][100],t_matriz[100][100];
 int uni[100];
 int fila,columna,i,j;
 cout<<"Tamano de filas: ";cin>>fila;
 cout<<"Tamano de columnas: ";cin>>columna;
 cout<<"Rellene la matriz"<<endl<<endl;
 for(i=0;i<fila;i++){
  for(j=0;j<columna;j++){
   cout<<"Valor # "<<j+1<<" ";cin>>matriz[i][j];
   if(j==columna-1)
   cout<<endl;
  }
 }
 //mostrar matriz
 cout<<"MATRIZ:"<<endl<<endl;
 for(i=0;i<fila;i++){
  for(j=0;j<columna;j++){
   cout<<matriz[i][j]<<" ";
   if(j==columna-1)
   cout<<endl;
  }
 }
 
 cout<<"\n\nTRANSPUESTA DE LA MATRIZ:"<<endl<<endl;
 //guardo todo los valores en una matriz unimensional
 int k=0;
 for(i=0;i<fila;i++){
  for(j=0;j<columna;j++){
   uni[k]=matriz[i][j];
   k++;
  }
 }
 //luego pongo los valores en una matriz multidimensuonal (con la fila y columna cambiado )
 k=0;
 for(i=0;i<columna;i++){
  for(j=0;j<fila;j++){
   t_matriz[i][j]=uni[k];
   k++;
  }
 }
 //y lo muestro
 for(i=0;i<columna;i++){
  for(j=0;j<fila;j++){
   cout<<t_matriz[i][j]<<" ";
   if(j==fila-1)
   cout<<endl;
  }
 }
}

jueves, 15 de septiembre de 2016

Numero Armstrong en C++

Un número  Armstrong es  un  cubo  perfecto  si  sumados  los  cubos  de  sus  dígitos  nos  da  el mismo  número.

Ejemplo:
he realizido una operación muy simple para hallar un número Armstrong , la cual ustedes pueden utilizar su imaginacíon para complementar alguna operacion al algoritmo. por  ejemplo poner una restrinción de 1 al 9999 numeros, y etc. espero que les ayude. 




 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
using namespace std;


int main(){
 int numero,num,unidad,operacion=0;
 
 cout<<"Digite un numero entero para analizar si es un numero Armstrong: ";cin>>numero;
 //declaremos otra variable entero para las operaciones
 num=numero;
 
 do{
  //para hallar cada digito del numero:
  unidad=num%10;
  num=num/10;
  //realizar la operacion :
  operacion=operacion+unidad*unidad*unidad;
 }while(!(num==0));//si la divición termina en 0 , salir del bucle repetitivo.
 
 if(operacion==numero)
 cout<<"Es un numero Armostrong";
 else
 cout<<"No es un numero Armostrong";
 
 return 0;
}

jueves, 1 de septiembre de 2016

Como utilizar la librería ctime (Fecha y hora)

bueno me parecio interesante los siguentes videos , las cuales nos va enseñar como emplear la librería ctime a nuestra programmación.

El siguente video observaremos de una forma mas sencilla , como se utiliza algunos de la funciones


struct tm {
  int tm_sec;   // segundos del segundo desde 0 hasta 61
  int tm_min;   // minutos de la hora  desde 0 hasta 59
  int tm_hour;  // horas del dia desde 0 hasta 24
  int tm_mday;  // dias del mes desde 1 hasta 31
  int tm_mon;   // mes del año desde 0 hasta 11
  int tm_year;  // año año 1900
  int tm_wday;  // dias desde domingo
  int tm_yday;  // dias desde enero 1ro
  int tm_isdst; // horas de la hora de verano
}
Ejemplo 1. Calcular la edad de una persona ingresando su fecha de nacimiento y la fecha actual (día, mes y año)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <ctime>

using namespace std;

int main(){
 int dia,mes,ano,edad;
 time_t now;
 
 struct tm nowLocal;
 
 now=time(0);
 
 nowLocal=*localtime(&now);
 
 cout<<"Ingrese fecha de nacimiento:"<<endl;
    cout<<"DIA:";cin>>dia;
    cout<<"MES:";cin>>mes;
    cout<<"ANO:";cin>>ano;
    
     if (mes<nowLocal.tm_mon+1)
      {
        edad = (1900+nowLocal.tm_year)-ano;
        cout<<nowLocal.tm_mon+1;
      }
     else
      {
        if(mes>nowLocal.tm_mon+1)
         {
            edad = (1900+nowLocal.tm_year)-ano-1;
                   cout<<"edad2"<<edad;
         }
        else
         {
            if (dia <= nowLocal.tm_mday){
                           edad = (1900+nowLocal.tm_year)-ano;
                     cout<<"edad3"<<edad;
   }

            else{
                           edad = (1900+nowLocal.tm_year)-ano - 1;
                     cout<<"edad4"<<edad;
   }

         }
      }

    cout<<"La edad es "<<edad<<endl;
 system("PAUSE");
 return 0;
}
Ejemplo 2. Representa una fecha corta (día, mes y año) en el formato de fecha larga. Por ejemplo:

Fecha corta: 12/08/2016
Fecha larga: 12 de agosto de 2016


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <ctime>
#include <vector>
using namespace std;

void fecha(int a);

int main(){
 time_t now=time(NULL);
 struct tm nowLocal;
 nowLocal= *localtime(&now);
 int dia,mes,ano;
 
 dia=nowLocal.tm_mday;
 mes=nowLocal.tm_mon+1;
 ano=nowLocal.tm_year+1900;
 
 vector<string> month;
 month.push_back("Enero");
 month.push_back("Febrero");
 month.push_back("Marzo");
 month.push_back("Abril");
 month.push_back("Mayo");
 month.push_back("Junio");
 month.push_back("Julio");
 month.push_back("Agosto");
 month.push_back("Septiembre");
 month.push_back("Octubre");
 month.push_back("Noviembre");
 month.push_back("Diciembre");
 
 cout<<"Fecha corta: ";fecha(dia);cout<<"/";fecha(mes);cout<<"/"<<ano<<endl;
 cout<<"Fecha larga: ";fecha(dia);cout<<" de "<<month[mes-1]<<" de "<<ano;
}
void fecha(int a){
 if(a<10){
  cout<<"0"<<a;
 }
} 

Estructuras de control secuenciales y selectivas

Aqui observaremos una serie de ejercios simples para las estructuras de control secuenciales y selectivas



credito.Robert Espinoza Domínguez