Bienvenida

Hola, bienvenidos a un espacio donde podrán ver los programas básicos que te han provocado más de un dolor de cabeza. Los programas están hechos mediante dos editores de textos de programación, uno es C++ y el otro es PythonG, éstos son conocidos por su simplicidad y facilidad para poder entrar al mundo de la programación. También agregaremos comentarios explicativos para cada programa con el fin de dejar más comprensible la lectura de éstos.

Esperamos les sea de utilidad y puedan despejar todas sus dudas.

sábado, 14 de agosto de 2010

Borrar espacios de una frase c++

#include <stdio.h>
#include <stdlib.h>

#define MAX 10000 // ahora al colocar max va valer 10000

void drop_blanks( char frase[MAX] )
{
     int i, j;
     // se copia esta frase en un nuevo arreglo sin espacios
     for( i = 0 ; frase[i] != '\0' ; i++ )
     {
          if( frase[i] == ' ' )
          {
              for( j = i+1 ; frase[j] != '\0' ; j++ )
              {
                   frase[j-1] = frase[j];
              }
              frase[j-1] = '\0';
             
          }
     }
}


main()
{
      char texto[MAX];
      printf ("\n\tBorra espacios\n\n escribe la frase:");
      gets( texto );
     
      drop_blanks( texto ); //se llama la funcion
     
      printf( "Sin espacios : %s\n" , texto );
      system( "pause" );
}

viernes, 13 de agosto de 2010

Matriz, saltos de una rana en una habitacion

Aquí veremos la creación de una matriz y a la vez el cambio de los datos de cada matriz.
La rana, se mueve de forma vertical y horizontal, donde los movimientos son al azar, también se consideran los saltos que se dirigen contra la pared de la habitación.


from random import randint
from time import sleep
def salto(i,j,habitacion):
  x=randint(1,4)
  if x==1:
    i=i+1
  if x==2:
    i=i-1
  if x==3:
    j=j+1
  if x==4:
    j=j-1
  if i<0:
    i=i+1
  if j>len(habitacion[0])-1:
    j=j-1
  if j<0:
    j=j+1
  if i>len(habitacion)-1:
    i=i-1
  return i,j
def listo(habitacion):
  j=0
  sum=0
  while j!=len(habitacion):
    i=0
    while i!=len(habitacion[0]):
      sum=sum+habitacion[j][i]
      i=i+1
    j=j+1
  return sum
def imprime_matriz(m):
  i=0
  while i<len(m):
    print m[i]
    i+=1
m=int(raw_input("columnas:"))
n=int(raw_input("filas:"))
h=0
habitacion=[]
while h!=n:
  habitacion.append([0]*m)
  h=h+1
saltos=0
baldosas=0
j=0
i=0
while listo(habitacion)!=m*n:
  if habitacion[i][j]==0:
    baldosas=baldosas+1
    habitacion[i][j]=1
  i,j=salto(i,j,habitacion)
  saltos=saltos+1
  imprime_matriz(habitacion)
  sleep(0.1)
  clear_output()
  
print "saltos:%d\nbaldosas:%d"%(saltos,baldosas)

Cuantos Tiket sodexo y vuelto?

      #include <stdio.h>
      #include <stdlib.h>
      #include <math.h>
    
      main()
      {
            int T,C,V,A;
            printf("Ingrese el Total de su compra");
            scanf( "%d" , &T );
            A = (1300);
            C = ( T/A);
            V = ( T%1300);
            printf( "LOS TIKET SODEXOS SON:%d\n" , C);
            printf( "Y SU VUELTO ES:%d\n" , V);
            system("pause");
      }

Triangulo rectangulo C++



#include <stdio.h>
#include <stdlib.h>

main ()
{
     int i,j,h;
     printf ("ingrese la altura del triangulo rectangulo: ");
     scanf ("%d",&h);
    
     for(i=1;i<=h;i++)
     {
        for (j=0;j<i;j++)
            {
            printf ("*"); // cada linea imprime * y suma el cont.
            }
        printf ("\n"); // cuando llegue cada linea se salta una
     }
system ("\n\npause");
}

Juego: Toque y Fama c++

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

main ()
{
     srand (time(NULL));
       
     int clave,numero,c1,c2,c3,n1,n2,n3,i=1,toque,fama,menu2,opc;
     int menu,opc2;
     printf ("Toque y Fama\n");
     clave = (rand ()%899+100);
    
     printf ("\n\n\nIntenta adivinar mi numero!\nIngrese un numero de tres cifras: ");
     scanf ("%d",&numero);
     if ((numero<99)||(numero>1000))
      
        printf ("error, el numero ingresado no es de tres cifras");
   
     else
     {   
          while (numero!=clave)
          {     
                 c1= clave/100;
                 c2= (clave%100-clave%100%10)/10;
                 c3= clave%100%10;
               
                 n1= numero/100;
                 n2= (numero%100-numero%100%10)/10;
                 n3= numero%100%10;
                
                 toque = 0;
                 fama  = 0;
         
          if ((n1==c1)||(n2==c2)||(n3==c3)||(n1==c2)||(n1==c3)||(n2==c1)||(n2==c3)||(n3==c1)||(n3==c2))
         
          {            
          if (n1==c1)
             fama++;                    
          if (n2==c2)
             fama++;       
          if (n3==c3)
             fama++;         
          if (n1==c2)
             toque++;     
          if (n1==c3)
             toque++;        
          if (n2==c1)
             toque++;           
          if (n2==c3)
             toque++;           
          if (n3==c1)
             toque++;
          if (n3==c2)
             toque++;
                                   
          if (toque==1)
             printf ("Tu tienes un toque\n");
         
          if (toque==2||toque==3)
              printf ("Tu tienes %d toques\n",toque);
         
         
          if (fama==1)
             printf ("tu tienes una fama\n");
         
          if (fama==2||fama==3)
              printf ("tu tienes %d famas\n",fama);        
          }
         
          else
               {
               printf ("\nNo tienes ningun acierto intentalo nuevamente");}
        
          printf ("\n\nIngresa un nuevo numero: ");
          scanf ("%d",&numero); 
         
          i++;      
          }
      }
      printf ("has acertado\nTe demoraste %d Turnos\n",i);
      system ("pause");
     }

Funciones de Moda y Promedio aplicadas a una lista de datos

Estos operadores son utilizados para sacar conclusiones de una encuesta, con el fin de saber resultados objetivos de cantidad de gustos o preferencias de cualquier tipo.
En el programa se agrega al final un ejemplo de 3 listas de las cuales se calcula de cada una el promedio y la moda:


def moda(x):
  a=0
  b=0
  c=0
  d=0
  while a!=len(x):
    while b!=len(x):
      if x[a]==x[b]:
        c=c+1
      b=b+1
    b=0
    if c>d:
      d=c
      e=x[a]
    c=0
    a=a+1
  return e
def prom(x):
  i=0
  prom=0
  while i!=len(x):
    prom=prom+x[i]
    i=i+1
  i=float(i)
  prom=prom/i
  return prom
a=29,29,28,27,25,25,25,24,22,18,18,18,18,18#estan ahi
b=29,28,28,27,27,25,25,25,25,25,24,18,18#no les gusta
c=29,28,27,26,25,25,24,22,21,21,21#no tan ni ahi
print prom(a),prom(b),prom(c),moda(a),moda(b),moda(c)

Juego: Toque y Fama PythonG

 En este juego, el computador genera 4 números al azar entre el 0 y el 9, entonces, nosotros probaremos con 4 números que elegiremos para comprobar si existen coincidencias de posición o de existencia. Las coincidencias de existencia, se llaman toques, y las de posición son las famas, la idea es encontrar el orden de los números que generó el ordenador de forma que todos sean famas. Es muy parecido al estilo de batalla naval, en donde se dice una posiciones y si le dio a algún buque o a alguna flota enemiga.


from random import randint
def fama(x,y):
  if x==y:
    return 1
  else:
    return 0
def azar():
    a=randint(0,9)
    b=randint(0,9)
    c=randint(0,9)
    d=randint(0,9)
    while a==b or a==c or a==d or b==c or b==d or c==d:
      a=randint(0,9)
      b=randint(0,9)
      c=randint(0,9)
      d=randint(0,9)
    return a,b,c,d
def casi(a,x,y,z):
  if a==x or a==y or a==z:
    return 1
  else:
    return 0
a,b,c,d=azar()
w=-1
x=-1
y=-1
z=-1
while a!=w or b!=x or c!=y or d!=z:
  print "número a elegir(0-9):"
  w=int(raw_input())
  x=int(raw_input())
  y=int(raw_input())
  z=int(raw_input())
  while -1<w>10:
    w=int(raw_input())
  while -1<x>10:
    x=int(raw_input())
  while -1<y>10:
    y=int(raw_input())
  while -1<z>10:
    z=int(raw_input())
  while w==x or w==y or w==z:
    print "existe coincidencia,ingresa los nº de nuevo..."
    w=int(raw_input())
    x=int(raw_input())
    y=int(raw_input())
    z=int(raw_input())
    while -1<w>10:
      w=int(raw_input())
    while -1<x>10:
      x=int(raw_input())
    while -1<y>10:
      y=int(raw_input())
    while -1<z>10:
      z=int(raw_input())
  h=fama(a,w)
  i=fama(b,x)
  j=fama(c,y)
  k=fama(d,z)
  l=casi(a,x,y,z)
  m=casi(b,w,y,z)
  o=casi(c,w,x,z)
  p=casi(d,w,x,y)
  n=h+i+j+k
  q=l+n+o+p
  q=q-n
  print w,x,y,z
  print "famas:%d"%n
  print "casi coinsidencias:%d"%q
print "GANASTE!!!"