• Jueves 25 de Abril de 2024, 13:53

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - badyalberto

Páginas: [1] 2
1
SQL Server / Contador
« en: Domingo 4 de Abril de 2010, 20:46 »
Código: SQL
  1.  
  2. CREATE PROCEDURE nou_usuari @nomuser VARCHAR(50),@cognomuser VARCHAR(50),@loginuser VARCHAR(50)
  3. AS
  4.     IF ( @loginuser = '' )
  5.     BEGIN
  6.         SET @loginuser = LOWER(SUBSTRING(@nomuser,1,1)) + @cognomuser
  7.         INSERT INTO usuaris VALUES (@nomuser,@cognomuser,@loginuser)
  8.     END
  9.     ELSE
  10.         INSERT INTO usuaris VALUES (@nomuser,@cognomuser,@loginuser)
  11.    
  12. GO
  13.  
  14. EXEC nou_usuari 'Anna','Jimenez',''
  15.  
  16.  

Como poner un contador para que compare si esta el login, y si esta sucede que le ponga un numero detras ?

2
C# / Array de string a Array de Int
« en: Jueves 7 de Enero de 2010, 20:38 »
Como puedo convertir una array de string a una array de int?

string[] nummac = mac.Split(separador);
            
foreach (string a in nummac)
   int[] valores = Convert.ToInt32(a);

Yo hago una cosa asi, pero me da error :S

3
C# / Diccionarios
« en: Martes 29 de Diciembre de 2009, 16:06 »
Código: C#
  1.  
  2. using System;
  3. using System.Collections.Generic;
  4. using System.IO;
  5.  
  6. public class Dato
  7. {
  8.     public string mac;
  9.     public string ip;
  10. }
  11.  
  12. public class Treball
  13. {
  14.     static SortedDictionary<string,Dato> dic = new SortedDictionary<string,Dato>();
  15.    
  16.     public static void Main()
  17.     {
  18.         string clave,dir;
  19.        
  20.         dir=SeleccionarCarpeta();
  21.         StreamReader sr = new StreamReader(dir);
  22.         string linia = sr.ReadLine();
  23.         char[] separador = { ' ' };
  24.        
  25.         bool guardamaccorrect=false,guardaipcorrect=false,clavecorrect=false;
  26.         Dato dato = new Dato();
  27.        
  28.         while ( linia != null )
  29.         {
  30.             if ( linia.Contains("host") || linia.Contains("ethernet") || linia.Contains("fixed-address"))
  31.             {
  32.                     string[] palabras = linia.Split(separador);
  33.                
  34.                     foreach ( string p in palabras )
  35.                     {
  36.                         if (!p.Contains(":") && !p.Contains("{") && !p.Contains("hardware") && !p.Contains("ethernet") && !p.Contains("fixed-address") && !p.Contains("."))
  37.                         {
  38.                             if (p != "host")
  39.                             {
  40.                                 clave=p;
  41.                                 Console.WriteLine(clave);
  42.                                 clavecorrect=true;
  43.                             }
  44.                         }
  45.                         if ( p.Contains(":"))
  46.                         {
  47.                             dato.mac=p;
  48.                             guardamaccorrect=true;
  49.                         }
  50.                         if (p.Contains("."))
  51.                         {
  52.                             dato.ip=p;
  53.                             guardaipcorrect=true;
  54.                         }
  55.                     }
  56.             }
  57.             if (clavecorrect == true && guardaipcorrect == true && guardamaccorrect == true)
  58.             {
  59.                 dic.Add(clave,dato);
  60.             }
  61.             linia = sr.ReadLine();  
  62.         }
  63.         menu();
  64.         Console.ReadKey();
  65.     }
  66.     public static string SeleccionarCarpeta()
  67.     {
  68.         string dir;
  69.        
  70.         do
  71.         {
  72.             Console.Clear();
  73.             Console.WriteLine("Introdueix la direccio on esta ubicat el fitxer dchp.conf (Direccio Completa):");
  74.             dir=Console.ReadLine();
  75.             if (!File.Exists(dir))
  76.             {
  77.                 Console.WriteLine("El Fitxer no existeix");
  78.                 Console.WriteLine("Pulsi una tecla ...");
  79.                 Console.ReadKey();
  80.             }
  81.                
  82.         }while(!File.Exists(dir));
  83.        
  84.         Console.WriteLine("Direccio Correcte.");
  85.         Console.WriteLine("Presioni una tecla ...");
  86.         return dir;
  87.     }
  88.     public static void consultes()
  89.     {
  90.         string consult;
  91.        
  92.         Console.WriteLine("Introdueix el nom del host,la ip o la mac que vols consultar:");
  93.         consult=Console.ReadLine();
  94.        
  95.         if (consult.Contains("."))
  96.         {
  97.             foreach ( KeyValuePair<string,Dato> par in dic)
  98.             {
  99.                 if ( par.Value == consult )
  100.                 {
  101.                     Console.WriteLine("{0} -> {1}", par.Key,par.Value);
  102.                 }
  103.             }
  104.         }
  105.         else if (consult.Contains(":"))
  106.         {
  107.             foreach ( KeyValuePair<string,Dato> par in dic)
  108.             {
  109.                 if ( par.Value == consult )
  110.                 {
  111.                     Console.WriteLine("{0} -> {1}", par.Key,par.Value);
  112.                 }
  113.             }
  114.         }
  115.         else
  116.         {
  117.             foreach ( KeyValuePair<string,Dato> par in dic) //segunda forma
  118.             {
  119.                 if ( par.key == consult )
  120.                 {
  121.                     Console.WriteLine("{0} -> {1}", par.Key,par.Value);
  122.                 }
  123.             }
  124.         }
  125.     }
  126.     public static void modificar()
  127.     {
  128.     }
  129.     public static void afegir()
  130.     {
  131.     }
  132.     public static void eliminar()
  133.     {
  134.     }
  135.     public static void guardar()
  136.     {
  137.     }
  138.     public static void menu()
  139.     {
  140.         bool salir = false;
  141.  
  142.         while (!salir)
  143.         {
  144.             Console.Clear();
  145.             Console.WriteLine("Escull una opcio:");
  146.        
  147.             Console.WriteLine("1) Fer consultes sobre el diccionari.");
  148.             Console.WriteLine("2) Modificar les dades d'un host existent en el diccionari.");
  149.             Console.WriteLine("3) Afegir un host al diccionari.");
  150.             Console.WriteLine("4) Eliminar un host del diccionari.");
  151.             Console.WriteLine("5) Guardar el contingut del diccionari reemplaçant la secció corresponent del fitxer dhcp.conf");
  152.             Console.WriteLine("6) Salir.");
  153.             ConsoleKeyInfo ck = Console.ReadKey();
  154.  
  155.             switch(ck.KeyChar)
  156.             {  
  157.                 case '1':
  158.                     consultes();
  159.                     break;
  160.                 case '2':
  161.                     modificar();
  162.                     break;
  163.                 case '3':
  164.                     afegir();
  165.                     break;
  166.                 case '4':
  167.                     eliminar();
  168.                     break;
  169.                 case '5':
  170.                     guardar();
  171.                     break;
  172.                 case '6':
  173.                     salir = true;
  174.                     Console.WriteLine("nPresione una tecla para salir ...");
  175.                     break;
  176.             }
  177.         }
  178.     }
  179. }
  180.  
  181.  

Pq me dice uso de la variable local clave no asignada ?
Y luego en el apartado de consultas no se como se compararia los valores si el tipo dato tiene dos variables ?

4
C# / Dictionary
« en: Miércoles 16 de Diciembre de 2009, 20:23 »
Código: C#
  1.  
  2. /*
  3. Contar las veces que aparece cada palabra en una frase.
  4. */
  5.  
  6. using System;
  7. using System.Collections.Generic;
  8.  
  9. public class ContarPalabras
  10. {
  11.     public static void Main()
  12.     {
  13.         Dictionary<string,int> dic = new Dictionary<string,int>();
  14.        
  15.         int cont1=0,cont2=0,cont3=0,cont4=0;
  16.         string frase = "un dos tres dos cuatro un un";
  17.         char[] delimiterChars = { ' ' };
  18.         string[] words = frase.Split(delimiterChars);
  19.        
  20.         for (int i=0;i<words.Length;i++)
  21.         {
  22.             if ( words[i] == "un" )
  23.             {
  24.                 if ( cont1 == 0 )
  25.                     dic.Add(words[i],cont1);
  26.             cont1++;    
  27.             }
  28.             if ( words[i] == "dos" )
  29.             {
  30.                 if ( cont2 == 0 )
  31.                     dic.Add(words[i],cont2);
  32.             cont2++;    
  33.             }
  34.             if ( words[i] == "tres" )
  35.             {
  36.                 if ( cont3 == 0 )
  37.                     dic.Add(words[i],cont3);
  38.             cont3++;    
  39.             }
  40.             if ( words[i] == "cuatro" )
  41.             {
  42.                 if ( cont4 == 0 )
  43.                     dic.Add(words[i],cont4);
  44.             cont4++;    
  45.             }
  46.         }
  47.        
  48.         Console.WriteLine("{0}{1}{2}{3}",cont1,cont2,cont3,cont4);
  49.        
  50.         foreach ( KeyValuePair<string,int> par in dic) //segunda forma
  51.         {
  52.             Console.WriteLine(" Clave          Contador ");
  53.             Console.WriteLine("=========================");
  54.             Console.WriteLine("{0,6}         {1,5}      ",par.Key,par.Value);
  55.             Console.WriteLine();
  56.         }
  57.         Console.ReadKey();
  58.     }
  59.  
  60. }
  61.  
  62.  

Alguien sabe pq antes de entrar al foreach me printa los cont y despues al entrar me los printa con un 0 ?

5
C# / Eliminar ficheros
« en: Sábado 12 de Diciembre de 2009, 16:24 »
Código: C#
  1.  
  2. /* Escriu un programa que busqui en una carpeta ( i subcarpetas ) tots els fitxers amb mida 0 bytes.
  3. Una vegada fet això ha de mostrar quants s'han trobat i un per un fer aquesta pregunta :
  4.  
  5. "Vols eliminar el fitxer #####.### ? (Si,No,Cap,Tots) ?"
  6.  
  7. L'opció "Cap" significa no fer res amb els que queden,
  8. l'opció "Tots" significa eliminar tots els que queden.
  9.  
  10. Nota : Els fitxers s'eliminen amb el mètode File.Delete(path) */
  11.  
  12.  
  13. using System;
  14. using System.Collections.Generic;
  15. using System.IO;
  16.  
  17. public class Fitxers
  18. {
  19.     public static void Main()
  20.     {
  21.         string dire;
  22.        
  23.         Console.WriteLine("Introdueix la direcció de la carpeta:");
  24.         dire=Console.ReadLine();
  25.        
  26.         while (Directory.Exists(dire) == false)//para saber si el directorio existe
  27.         {
  28.             Console.WriteLine("Este directorio no existe, vuelve a escribirlon");
  29.             dire=Console.ReadLine();
  30.         }
  31.         fitxers(dire);
  32.        
  33.     Console.WriteLine("Presione una tecla para salir.");
  34.     Console.ReadKey();
  35.     }
  36.    
  37.     public static void fitxers(string dire)
  38.     {
  39.        
  40.         string[] dirs = Directory.GetDirectories(dire);
  41.         foreach(string d in dirs)
  42.         {
  43.             fitxers(d);
  44.         }
  45.        
  46.         string[] fils = Directory.GetFiles(dire);
  47.        
  48.         foreach (string f in fils)
  49.         {
  50.             dadesfi(f);
  51.         }
  52.     }
  53.     public static void dadesfi(string d )
  54.     {
  55.         Queue<string> cola = new Queue<string>();
  56.         FileInfo fi = new FileInfo (d);
  57.         long mida = fi.Length;
  58.         string res;
  59.            
  60.         if (mida != 0)
  61.         {
  62.             cola.Enqueue(d);
  63.             Console.WriteLine(d);
  64.         }
  65.         while ( cola.Count > 0 ) //Saber el numero de elementos de la cola.
  66.         {  
  67.             //Console.Clear();
  68.             bool cap=false;
  69.             string n = cola.Dequeue(); //Sacar de la cola elementos.
  70.            
  71.             Console.WriteLine("Vols Elimnar el fitxer {0} ?",n);
  72.             res=Console.ReadLine();
  73.            
  74.             if (res == "si")
  75.             {
  76.                 File.Delete(n);
  77.                 //Console.WriteLine("El fitxer s'ha eliminat correctament");
  78.             }
  79.             else if ( res == "no" )
  80.             {
  81.                 //Console.WriteLine("El fitxer no s'ha eliminat");
  82.             }
  83.             else if ( res == "cap")
  84.             {
  85.                 Console.WriteLine("Prueba cap");
  86.                 while ( cola.Count > 0 )
  87.                 {
  88.                     Console.WriteLine(n);
  89.                     n = cola.Dequeue();
  90.                 }
  91.                 Console.WriteLine("No s'ha eliminat cap fitxer");
  92.                 //break;
  93.             }
  94.             else if ( res == "tots")
  95.             {
  96.                 Console.WriteLine("Prueba tots");
  97.                 while ( cola.Count > 0 )
  98.                 {
  99.                     File.Delete(n);
  100.                     n = cola.Dequeue();
  101.                 }
  102.                 Console.WriteLine("S'han eliminat tots els fitxers");
  103.             }
  104.             else
  105.                 Console.WriteLine("No has escrit la paraula correcta");
  106.            
  107.         }
  108.     }
  109. }
  110.  
  111.  

Tengo un problema a la hora de eliminar tots o cap.
Cuando escribo tots no me deberia volver a preguntar si quiere eliminar el siguiente fichero,sino eliminarlos ya todos, y me lo vuelve a preguntar.
Lo mismo pasa con el cap q no deberia preguntarme si quiero eliminar el siguente, sino no eliminar ninguno.

6
C# / Colas
« en: Martes 8 de Diciembre de 2009, 16:14 »
Código: C#
  1.  
  2. /* Escriu un programa que demani nom d'alumnes i nota obtinguda en un examen fins entrar una linea buida. Finalment mostra els alumnes suspesos i el aprovats en llistes separades
  3. , amb la seva nota, pero mantenint en cada llista l'ordre d'introducció. */
  4.  
  5. using System;
  6. using System.Collections.Generic;
  7. using System.IO;
  8.  
  9. public class Dato
  10.     {
  11.         public string nombre;
  12.         public int nota;
  13.     }
  14.  
  15. public class Colas
  16. {
  17.     static void Main()
  18.     {
  19.         Queue <Dato> alumne = new Queue <Dato>();
  20.         Dato alumno = new alumno();
  21.         string nombre1;
  22.         int nota1;
  23.        
  24.         Console.WriteLine("Introdueix el nom de l'alumne:");
  25.         nombre1=Console.ReadLine();
  26.         nombre.alumne.Enqueue(nombre1);
  27.         Console.WriteLine("Introdueix la nota de l'alumne:");
  28.         nota1=Console.ReadLine();
  29.         nota1=Convert.ToInt32(nota1);
  30.         alumno.nota=nota1;
  31. //      alumne.nota.Enqueue(alumno.nota);
  32.        
  33.         while ( alumno.nombre == null )
  34.         {
  35.             //alumne=Console.ReadLine();
  36.         }
  37.         Console.ReadKey();
  38.     }
  39.  
  40. }
  41.  
  42.  

Tengo un lio con las colas, como puedo hacer para meter el nombre y la nota del alumno q es de tipo dato, dentro de la cola?

7
C# / Eliminar palabras repetidas
« en: Domingo 1 de Noviembre de 2009, 21:07 »
Código: C#
  1.  
  2. // Programa que lee un fichero de texto y llena una lista con las palabras que contiene sin repetirlas. Despues mostraslas por pantalla.
  3.  
  4. using System;
  5. using System.IO;
  6.  
  7. public class Ejercicio
  8. {
  9.    
  10.     public static void Main()
  11.     {
  12.  
  13.         StreamReader sr = new StreamReader("J:\ASI2\EDD\palabras.txt"); // declaracion de la variable sr de lectura
  14.        
  15.         char[] delimiterChars = { ' ', ',', '.', ':', 't' };
  16.        
  17.         string linia = sr.ReadLine();
  18.  
  19.         while ( linia != null ) // lee la linia
  20.         {
  21.             string[] words = linia.Split(delimiterChars);
  22.            
  23.             Console.WriteLine("{0} words in text:", words.Length);
  24.            
  25.             Array.Sort(words);
  26.             //foreach (string s in words)
  27.             for( int i=0;i<=words.Length;i++)
  28.             {  
  29.                 Console.WriteLine(words[i]);
  30.                 if ( words[i] != words[i+1]){
  31.                  
  32.                     i++;
  33.                 }
  34.                 Console.ReadKey(); 
  35.             }
  36.             linia = sr.ReadLine();
  37.         }
  38.         sr.Close();
  39.        
  40.         Console.ReadKey(); 
  41.     }
  42.    
  43. }
  44.  
  45.  

Como puedo hacer para que no se me cierre el programa, al final de leer las palabras,pero es q ahora tengo q estar dandole al enter con cada palabra.
Y otra cosa, si pongo las palabras una detras de la otra va bien, pero a la q las pongo en varias linias ya solo me lee la primera :S

8
C# / Error al escribir
« en: Viernes 23 de Octubre de 2009, 21:43 »
Código: C#
  1.  
  2. //EJERCICIO : Buscar los ficheros HTML y eliminar las lineas que contengan la cadena <codigo del virus>
  3.  
  4. using System;
  5. using System.IO;
  6.  
  7. class Programa
  8. {
  9.     static void ListadoDirectorio (string dire)
  10.     {
  11.         string[] dirs = Directory.GetDirectories(dire); //devuelve una array de string con los subdirectorios que hay dentro.
  12.        
  13.  
  14.         foreach ( string d in dirs ) //coje los caracteres de la array dirs
  15.         {
  16.             Console.WriteLine(d);
  17.             ListadoDirectorio(d);
  18.         }
  19.        
  20.         string[] fils = Directory.GetFiles(dire);
  21.        
  22.         foreach (string f in fils)
  23.         {
  24.             Console.WriteLine(f,"*.html");
  25.             Limpia(f);
  26.         }
  27.     }
  28.    
  29.     static void Limpia(string f)
  30.     {
  31.         //Aqui comprobamos si el fichero contiene el codigo del virus y lo eliminamos
  32.         StreamReader sr = new StreamReader(f); // declaracion de la variable sr de lectura
  33.         StreamWriter sw = new StreamWriter("temp.html"); //declaracion de la variable sw de escritura
  34.        
  35.            
  36.         string linia = sr.ReadLine();
  37.         while ( linia != null ) // lee la linia
  38.         {
  39.            
  40.             linia = sr.ReadLine();
  41.             if ( linia != "<codigo del virus>" )
  42.             {
  43.                 sw.WriteLine(linia);
  44.                 //Console.WriteLine(error1);
  45.             }
  46.             else
  47.             {
  48.                 //Console.WriteLine("error2");
  49.                 Console.WriteLine("El fitxer {0} te un virus.",f);
  50.             }
  51.             linia = sr.ReadLine();
  52.         }
  53.         sw.Close();
  54.         sr.Close();
  55.    
  56.         File.Delete(f);
  57.         File.Move("temp.html",f); //origen,destino
  58.        
  59.     }
  60.    
  61.    
  62.    
  63.     static void Main()
  64.     {
  65.         try
  66.         {
  67.             string dir = "c:\tools";
  68.             ListadoDirectorio(dir);
  69.         }
  70.         catch ( Exception e )
  71.         {
  72.             Console.WriteLine(e.ToString());
  73.         }
  74.     Console.ReadKey();  
  75.     }
  76.    
  77. }
  78.  
  79.  

Pq cuando intenta entrar en el archivo me mide acceso denegado ?

9
GNU/Linux / Leer fichero caracter por caracter
« en: Domingo 18 de Octubre de 2009, 14:18 »
Como puedo leer de un fichero de texto caracter por caracter ?
Estoy haciendo un script en bash que necesito que lea los caracteres de un fichero y me cambie una vocales por otra.
Yo lo que utilizo es:

while read linea
do
         caracter=${linea:0:1}
# luego aqui dentro hago un case para q dependiendo de q letra lea la cambie por una o otra.
done
Pero asi solo me lee un caracter de una linea, las lineas no son del mismo tamaño ni tienen los mismo campos :S

10
C/C++ / remove
« en: Martes 26 de Mayo de 2009, 23:46 »
Código: C++
  1.  
  2. void elimina_soci(Tclient client[],int *numclient,FILE *a){
  3.      int num,i=0,trobat=0;
  4.      char res;
  5.      FILE *b;
  6.      a=fopen("socis.txt","r");
  7.      b=fopen("socis2.txt","w");
  8.      printf("Introdueix el numero de soci que vols eliminarn");
  9.      scanf("%d", &num);
  10.      while ((i<*numclient) && (trobat==0)){
  11.            if (num==client[i].numsoci){
  12.                printf("Usuari Trobat.n");
  13.                trobat=1;
  14.            }
  15.            else{
  16.               fprintf(b,"%d %s %s %s %c %dn",client[i].numsoci,client[i].dni,client[i].nom,client[i].cognom,client[i].cat,client[i].preu);
  17.               i++;
  18.            }
  19.      }
  20.      if (trobat==0)
  21.         printf("El numero d'usuari no es validn");
  22.      else{    
  23.              do{
  24.                 printf("Estas segur que vols eliminar aquest alumne[S/N]: n");
  25.                 fflush(stdin);
  26.                 scanf("%c",&res);
  27.              }while ((res!='S') && (res!='s') && (res!='N') && (res!='n'));      
  28.      }
  29.      
  30.      if ((res=='S') || (res=='s')){
  31.            *numclient=*numclient-1;
  32.            while (i<*numclient){
  33.               fprintf(b,"%d %s %s %s %c %dn",client[i+1].numsoci,client[i+1].dni,client[i+1].nom,client[i+1].cognom,client[i+1].cat,client[i+1].preu);
  34.               i++;
  35.            }
  36.            
  37.      }
  38.      fclose(a);
  39.      fclose(b);
  40.      remove("socis.txt");
  41.      rename("socis2.txt","socis.txt");
  42.      
  43. }
  44.  
  45.  
  46.  
Tengo esta funcion pero no se pq el remove y el rename no me funcionan, si no q me crea dos archivos y no me borra el otro ni cambia el nombre :S

11
C/C++ / Ficheros
« en: Domingo 17 de Mayo de 2009, 15:44 »
Código: C++
  1.  
  2. #include<stdio.h>
  3.  
  4. int main(){
  5.     FILE *a,*b,*c;
  6.     char cadena1[100],cadena2[100];
  7.     char carac1,carac2;
  8.     a=fopen("ordenat1.txt","r");
  9.     b=fopen("ordenat2.txt","r");
  10.     c=fopen("conjunt.txt","w");
  11.    
  12.     while (fgets(cadena1,100,a) && fgets(cadena2,100,b)){
  13.           if (strcmp(cadena1,cadena2)<0){
  14.              fputs(cadena1,c);
  15.              printf("%s",cadena1);
  16.           }
  17.           if (strcmp(cadena1,cadena2)>0){
  18.              fputs(cadena2,c);
  19.              printf("%s",cadena2);
  20.              
  21.           }
  22.     }
  23.     fclose(a);
  24.     fclose(b);
  25.     fclose(c);
  26. getchar();
  27. getchar();
  28. }
  29.  
  30.  
Este programa tiene q leer de dos ficheros de texto unas palabras(una palabra por linea) y copiarlas a otro en orden alfabetico.
Pero no se como puedo hacer para q me vuelva a leer la palabra anterior, si no la a copiado en el fichero?
Pq ahora me copia una de las dos palabras de uno de los ficheros y me pasa a leer la siguiente.No se si me explico :S

12
C/C++ / Registros
« en: Jueves 23 de Abril de 2009, 22:03 »
Código: C++
  1.  
  2. #include<stdio.h>
  3. #include<string.h>
  4.  
  5. typedef struct {
  6.        char nommes[10];
  7.        int numdia;      
  8. }Tvector;
  9. typedef struct {        
  10.        int dia;
  11.        int mes;
  12. }Tfecha;
  13.  
  14. Tfecha novaData();
  15. void calcula(Tfecha data1,Tfecha data2,Tvector elements[]);
  16.  
  17. int main(){
  18. Tvector elements[12]={
  19.        {"Gener",31},
  20.        {"Febrer",28},
  21.        {"Marc",31},
  22.        {"Abril",30},
  23.        {"Maig",31},
  24.        {"Juny",30},
  25.        {"Juliol",31},
  26.        {"Agost",31},
  27.        {"Septembre",30},
  28.        {"Octubre",31},
  29.        {"Novembre",30},
  30.        {"Desembre",31}
  31. };
  32.     Tfecha data1,data2;
  33.     printf("Dades de la data actual[Mateix Any]:n");
  34.     data1=novaData();      
  35.     printf("Dades de la data posterior[Mateix Any]:n");
  36.     data2=novaData();
  37.     calcula(data1,data2,elements);
  38.      
  39. getchar();
  40. getchar();
  41. }
  42. Tfecha novaData(){
  43.        Tfecha data;
  44.        printf("Introdueix el dia:n");
  45.        scanf("%d",&data.dia);
  46.        printf("Introdueix el mes en numero:n");
  47.        scanf("%d",&data.mes);
  48.        return data;
  49. }
  50. void calcula(Tfecha data1,Tfecha data2,Tvector elements[]){
  51.      int cont=0,cont1=0,conttotal=0;
  52.      char mes[10];
  53.      if (data1.mes<data2.mes){
  54.         do{
  55.            cont1=cont1+elements[data1.mes-1].numdia;
  56.            mes[]=elements[data1.mes-1].nommes+1;
  57.         }while(mes[]==data2.mes);
  58.      }
  59.      else if(data1.mes>data2.mes)
  60.           printf("Error: La data segona te que se posterior a la primera.n");
  61.      else{
  62.         if (data1.dia==data2.dia)
  63.            printf("Les dues dates son igualesn");
  64.         else
  65.              cont
  66.      }
  67.      conttotal=cont1+cont;
  68.      
  69.      printf("Estem a %d de %s,fins al %d de %s falten %d diesn",data1.dia,elements[data1.mes-1].nommes,data2.dia,elements[data2.mes-1].nommes,conttotal);
  70. }
  71.  
  72.  
  73.  
  74.  

Alguien me puede ayudar acabar esto de calcula, es q no se como hacerlo para q me sume los dias :S

13
C/C++ / Juego de palabras
« en: Jueves 9 de Abril de 2009, 16:08 »
Código: C++
  1.  
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #include<time.h>
  5.  
  6. #define LONGITUD 50
  7. #define TEMPS 60
  8. #define TOP 5
  9.  
  10. char *paraules[]={"llibre","mantega","carrer","pernil","pilota"};
  11.  
  12. char top_noms[TOP][LONGITUD];
  13. int top_punts[TOP];
  14.  
  15. int main()
  16. {
  17.     int i,n,num;
  18.     int encerts;
  19.    
  20.     char resposta[LONGITUD];
  21.     time_t t;
  22.    
  23.     srand(time(NULL));
  24.     for(i=0;i<TOP;i++)
  25.         top_punts[i]=-1;
  26.     n=sizeof(paraules)/sizeof(char*);
  27.     do
  28.     {
  29.          printf("nnEntra les paraules que van sortintn");
  30.          t=time(NULL);
  31.          while(difftime(time(NULL),t)<TEMPS)
  32.          {
  33.                num=rand()%num;
  34.                puts(paraules[num]);
  35.                gets(resposta);
  36.                if(strcmp(resposta,paraules[num])==0)
  37.                {
  38.                     if(difftime(time(NULL),t)<TEMPS)
  39.                     {
  40.                          encerts++;
  41.                          puts("OKn");
  42.                     }
  43.                     else
  44.                         puts("Fora de Tempsn");
  45.                }
  46.                else
  47.                    puts("Errorn");
  48.          }
  49.          printf("Continuar(si/no)?n");
  50.          gets(resposta);
  51.     }while(strcmp(resposta,"si")==0);
  52.    
  53. getchar();
  54. getchar();
  55. }
  56.  
  57.  

Alguien sabe pq al ejecutarlo se me cierra.
Este codigo no lo e hecho yo, sino que lo colgado la profe y nosotros tenemos q añadirle dos funciones: una crea el ranking, la otra lo printa.-

14
C/C++ / Punteros
« en: Miércoles 8 de Abril de 2009, 18:32 »
Código: C++
  1.  
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. void ordenar(int n,char cad[50][30]);
  6. void printa (int n,char cad[50][30]);
  7.  
  8. int main()
  9. {
  10.       int n=0;
  11.       char cad[50][30];
  12.      
  13.       puts("Introdueix cadenas(. para terminar):n");
  14.       do
  15.       {
  16.       printf("Cadena %d: ", n+1);
  17.       gets(cad[n]);
  18.       fflush(stdin);
  19.       }while((0!=strcmp(cad[n++],".")) || (n>50));
  20.  
  21.       n--; //elimino la ultima cadena
  22.      
  23.       ordenar(n,cad);
  24.       printa(n,cad);
  25.      
  26. getchar();
  27. getchar();
  28. }
  29. void ordenar(int n,char cad[50][30])
  30. {
  31.      char *temp[30],i,elem;
  32.      
  33.       for(elem=0; elem<n-1; elem++){
  34.              for(i=elem+1; i<n; i++){
  35.                   if(strcmp(cad[elem],cad[i])>0)
  36.                   {
  37.                       *temp=*cad[elem];
  38.                       *cad[elem]=*cad[i];
  39.                       *cad[i]=*temp;
  40.                   }            
  41.              }
  42.       }
  43. }
  44. void printa (int n,char cad[50][30])
  45. {
  46.      int i;
  47.      
  48.       printf("nLes cadenes ordenades alfabeticament son:n");
  49.       for(i=0; i<n; i++){
  50.           printf("nCadena %d: %s", i+1, cad[i]);
  51.       }
  52.  
  53. }
  54.  
  55.  
  56.  

Pq me intercambio la primera letra de las palabras y no la palabra entera ?

15
C/C++ / 2 Dudas
« en: Lunes 6 de Abril de 2009, 18:48 »
Código: C++
  1.  
  2. #include<stdio.h>
  3. #include<time.h>
  4. #define FILES 7
  5. #define COLUMNES 5
  6.  
  7. int menu();
  8. void mostrarhorari(int horari[FILES][COLUMNES],char dies[6][20]);
  9. void dieshorescredit(int horari[FILES][COLUMNES]);
  10. void totalhores(int horari[FILES][COLUMNES]);
  11. void inicialitza_matriu(int horari[FILES][COLUMNES]);
  12. void printa_dia(int);
  13. void printa_hora(int);
  14.  
  15. int main()
  16. {
  17.     char horari[FILES][COLUMNES];
  18.     char dies[6][20]={"Hores ", "Dilluns ", "Dimarts ", "Dimecre ", "Dijous ", "Divendres n"};
  19.     int fin,opcio;
  20.    
  21.     inicialitza_matriu(horari);
  22.     do
  23.     {
  24.         opcio=menu();
  25.         fin=0;
  26.        
  27.         switch(opcio)
  28.         {
  29.               case 1:
  30.                    mostrarhorari(horari,dies);
  31.                    break;
  32.               case 2:
  33.                    dieshorescredit(horari);
  34.                    break;
  35.               case 3:
  36.                    totalhores(horari);
  37.                    break;
  38.               case 4:
  39.                    fin=1;
  40.               default:
  41.                       printf("Opcio Incorrecte n");
  42.         }        
  43.               if(fin==0)
  44.               {
  45.                   printf("nn");
  46.                   getchar();
  47.                   getchar();
  48.               }
  49.     }while(fin==0);
  50. }
  51. int menu()
  52. {
  53.     int op;
  54.  
  55.     printf("Programa per a la creacio de un horari n");
  56.     printf("1) Mostrar Horarin");
  57.     printf("2) Dies i Hores d'un determinat creditn");
  58.     printf("3) Hores setmanals d'un determinat creditn");
  59.     printf("4) Sortir n");
  60.    
  61.      do
  62.      {
  63.         printf("Escull una opción: ");
  64.         scanf("%d", &op);
  65.         if ((op != 1) && (op !=2) && (op != 3) && (op != 4))
  66.         {
  67.                 printf("Opcio incorrecte n");
  68.         }              
  69.      }while (op < 1 || op > 4);
  70.      return op;
  71. }
  72. void mostrarhorari(int horari[FILES][COLUMNES],char dies[6][20])
  73. {
  74.      
  75.     int i,j,h;
  76.     for(h=0;h<=6;h++){
  77.           printf("%s",dies[h]);
  78.     }
  79.     for(i=0;i<FILES;i++)
  80.     {      
  81.           printf("%d:00",15+i);
  82.           for(j=0;j<COLUMNES;j++)
  83.           {
  84.                      
  85.               printf(" %s  ",horari[i][j]);
  86.               h++;
  87.           }
  88.           printf("n");
  89.     }
  90. }
  91. void dieshorescredit(int horari[FILES][COLUMNES])
  92. {
  93.      int i,j;
  94.      char credit[10];
  95.      
  96.      printf("nnDies i hores que s'imparteix un credit n");
  97.      do
  98.      {
  99.           printf("nnEscull el credit (Introdueix la primera lletra en mayuscula): n");
  100.           printf("-Matesn-Cataln-Socian-Fisicn-Casten");  
  101.           fflush(stdin);
  102.           scanf("%s", &credit);
  103.           printf("%s",credit);
  104.               if((credit!='Mates') || (credit!='Catal') || (credit!='Socia') || (credit!='Fisic') || (credit!='Caste'))
  105.                   printf("Error no has escollit una opcio correcte.n RECORDA: La primera lletra te que se mayuscula.n");
  106.      }while((credit!='Mates') || (credit!='Catal') || (credit!='Socia') || (credit!='Fisic') || (credit!='Caste'));
  107.      
  108.     for(i=0;i<FILES;i++)
  109.     {
  110.           for(j=0;j<COLUMNES;j++)
  111.           {
  112.                 if (credit==horari[i][j])
  113.                 {
  114.                    printa_dia(j);
  115.                    printa_hora(i);
  116.                 }
  117.           }
  118.     }
  119.      
  120. }
  121. void totalhores(int horari[FILES][COLUMNES])
  122. {
  123.      int i,j,hora1=0,hora2=0,hora3=0,hora4=0,hora5=0;
  124.      
  125.      printf("nnSuma d'hores setmanals de cada credit: nn");
  126.      
  127.      for(i=0;i<FILES;i++)
  128.      {
  129.           for(j=0;j<COLUMNES;j++)
  130.           {
  131.                     if (horari[i][j]=='Mates')
  132.                         hora1=hora1+1;
  133.                    if (horari[i][j]== 'Catal')
  134.                         hora2=hora2+1;
  135.                    if (horari[i][j]=='Socia')
  136.                         hora3=hora3+1;
  137.                    if (horari[i][j]=='Fisic')
  138.                         hora4=hora4+1;
  139.                    if (horari[i][j]== 'Caste')
  140.                         hora5=hora5+1;
  141.           }
  142.     }
  143.     printf("El numero de hores setmanals de Matematiques es: %d horesn",hora1);
  144.     printf("El numero de hores setmanals de Catala es: %d horesn",hora2);
  145.     printf("El numero de hores setmanals de Socials es: %d horesn",hora3);
  146.     printf("El numero de hores setmanals de Fisica es: %d horesn",hora4);
  147.     printf("El numero de hores setmanals de Castella es: %d horesn",hora5);
  148. }
  149. void inicialitza_matriu(int horari[FILES][COLUMNES])
  150. {
  151.      int i,j;
  152.      
  153.      srand(time(NULL));
  154.      for(i=0;i<FILES;i++)
  155.      {
  156.           for(j=0;j<COLUMNES;j++)
  157.           {
  158.               horari[i][j]=rand()%5+1;
  159.               switch(horari[i][j])
  160.               {
  161.                    case 1:
  162.                         horari[i][j]=("Mates");;
  163.                         break;
  164.                    case 2:
  165.                         horari[i][j]=("Catal");
  166.                         break;
  167.                    case 3:
  168.                         horari[i][j]=("Socia");
  169.                         break;
  170.                    case 4:
  171.                         horari[i][j]=("Fisic");
  172.                         break;
  173.                    case 5:
  174.                         horari[i][j]=("Caste");
  175.                         break;
  176.               }
  177.           }
  178.     }
  179. }
  180. void printa_dia(int dia)
  181. {
  182.      switch(dia)
  183.      {
  184.                 case 0:
  185.                      printf("Dilluns ");
  186.                      break;
  187.                 case 1:
  188.                      printf("Dimarts ");
  189.                      break;
  190.                 case 2:
  191.                      printf("Dimecres ");
  192.                      break;
  193.                 case 3:
  194.                      printf("Dijous ");
  195.                      break;
  196.                 case 4:
  197.                      printf("Divendres ");
  198.                      break;
  199.      }
  200. }
  201. void printa_hora(int hora)
  202. {
  203.      switch(hora)
  204.      {
  205.                  case 0:
  206.                       printf("15:00n");
  207.                       break;
  208.                  case 1:
  209.                       printf("16:00n");
  210.                       break;
  211.                  case 2:
  212.                       printf("17:00n");
  213.                       break;
  214.                  case 3:
  215.                       printf("18:00n");
  216.                       break;
  217.                  case 4:
  218.                       printf("19:00n");
  219.                       break;
  220.                  case 5:
  221.                       printf("20:00n");
  222.                       break;
  223.                  case 6:
  224.                       printf("21:00n");
  225.                       break;
  226.      }
  227.                      
  228. }
  229.  
  230.  

El if((credit!='Mates') || (credit!='Catal') || (credit!='Socia') || (credit!='Fisic') || (credit!='Caste'))
                  printf("Error no has escollit una opcio correcte.n RECORDA: La primera lletra te que se mayuscula.n");
esta bien escrito, quiero decir va con comilla simple o como pq es q lo e probado con dos tb, y siempre me entra aqui, y veo que le bien la array.
Y luego en los ifs de totalhores,tp me entra en ningun caso :s, lo iba hacer con switch pero segun e leido no se puede utilizar cadena de caracteres en el switch :S

16
C/C++ / Substituir cadena
« en: Domingo 29 de Marzo de 2009, 20:06 »
Código: C++
  1.  
  2. #include<stdio.h>
  3. #include<string.h>
  4.  
  5. int remplazar(char frase[],char sub[]);
  6.  
  7. int main()
  8. {
  9.     char frase[100];
  10.     char sub[100];
  11.     char nou[100];
  12.     int indice,i,longnou=0;
  13.    
  14.     printf("Introdueix una frase: n");
  15.     gets(frase);
  16.     printf("Que vols substituir: n");
  17.     gets(sub);
  18.     printf("Que hi vols posar en el seu lloc: n");
  19.     gets(nou);
  20.     i=remplazar(frase,sub);
  21.     longnou=strlen(nou);
  22.     printf("%d",i);
  23.     for (i=indice; i<indice+longnou;i++)
  24.         frase[i]=nou[i-indice];
  25.     printf("Resultado: %s n",frase);
  26. getchar();
  27. getchar();
  28. }
  29. int remplazar(char frase[],char sub[])
  30. {
  31.     int longfrase=0,i,j=0,longsub=0;
  32.    
  33.     longfrase=strlen(frase);
  34.     longsub=strlen(sub);
  35.    
  36.     for (i=0;i<longfrase;i++)
  37.     {
  38.         if (frase[i]==sub[0])
  39.         {
  40.             for (j=0;j<longsub;j++)
  41.             {
  42.                 if(frase[i+j]!=sub[j])
  43.                 {
  44.                      break;
  45.                 }
  46.                 return i;
  47.             }
  48.         }
  49.     }
  50. }
  51.  
  52.  

No entiendo pq me sustuye la posicion numero 9, ponga la letra que ponga :S

17
C/C++ / Puntero a una cadena.
« en: Viernes 27 de Marzo de 2009, 11:16 »
Código: C++
  1.  
  2. #include<stdio.h>
  3. #include<string.h>
  4.  
  5. int inverteix(char *ini, char *fi);
  6.  
  7. int main()
  8. {
  9.     char frase[100];
  10.     char *fi;
  11.    
  12.     printf("Introdueix una frase n");
  13.     gets(frase);
  14.     fi=frase;
  15.     while(*fi!='')
  16.         fi++;
  17.     inverteix(frase,fi);
  18.     puts(frase);
  19.  
  20. getchar();
  21. getchar();
  22. }
  23. int inverteix(char *ini,char *fi)
  24. {
  25.      char aux1,aux2;
  26.      
  27.      while (ini<=fi)
  28.      {
  29.            aux1=*ini;
  30.            aux2=*fi;
  31.            *ini=aux2;
  32.            *fi=aux1;
  33.            ini++;
  34.            fi--;
  35.      }
  36.      return fi;
  37. }      
  38.  
  39.  

Pq no me devuelve el resultado de fi, y no me printa nada :S

18
C/C++ / Ahorcado en C
« en: Sábado 21 de Marzo de 2009, 12:53 »
Código: C
  1.  
  2. #include<stdio.h>
  3. #include<string.h>
  4.  
  5. int mostramenu();
  6. void adivina_paraula(char paraula[longitud]);
  7.  
  8. int main()
  9. {
  10.     int aleatori,fi,longitud=0;
  11.     char paraula[longitud];
  12.    
  13.     do
  14.     {    
  15.           fi=0;
  16.           aleatori=mostra_menu();
  17.          
  18.           switch(aleatori)
  19.           {
  20.                case 1:
  21.                     strcat(paraula,"ordenador");
  22.                     longitud=strlen(paraula);
  23.                     adivina_paraula(paraula);
  24.                     break;
  25.                case 2:
  26.                     strcat(paraula,"software");
  27.                     longitud=strlen(paraula);
  28.                     adivina_paraula(paraula);
  29.                     break;
  30.                case 3:
  31.                     strcat(paraula,"videojuego");
  32.                     longitud=strlen(paraula);
  33.                     adivina_paraula(paraula);
  34.                     break;
  35.                case 4:
  36.                     strcat(paraula,"teclado");
  37.                     longitud=strlen(paraula);
  38.                     adivina_paraula(paraula);
  39.                     break;
  40.                case 5:
  41.                     fi=1;
  42.                     break;
  43.                default:
  44.                         printf("Opcio Incorrecte n");
  45.           }
  46.     }while(!fi);
  47.    
  48. }
  49. int mostra_menu()
  50. {
  51.     int aleatori;
  52.    
  53.     printf("nJuego del ahorcadonn");
  54.     do
  55.     {
  56.           printf("Per escullir una paraula,digues una opcio de la 1 a la 4.n");
  57.           printf("Si per el contrari vols sortir digues la opcio 5.n");
  58.           scanf("%d", &aleatori);
  59.          
  60.           if ((aleatori != 1) && (aleatori != 2) && (aleatori != 3) && (aleatori != 4) && (aleatori != 5))
  61.              printf("Opcio Incorrecte n");
  62.     }while(aleatori<1 || aleatori>5);
  63.    
  64.     return aleatori;
  65. }
  66. void adivina_paraula(char paraula[longitud])
  67. {
  68.      int i,errors=0,j,longitud;
  69.      char lletra,lletresintro[i],lletraerror[i];
  70.      printf("Introdueix una lletran");
  71.      fflush(stdin);
  72.      scanf("%c",&lletra);
  73.      
  74.  
  75.      
  76.      for (i=0; i<longitud; i++);
  77.      {
  78.          lletresintro[i]=lletra;
  79.          printf("Les lletres introdueides fins aquest moment son: %c,n",lletresintro[i]);
  80.          if (paraula[i] == lletra)
  81.             printf("La lletra %c es correcten");
  82.          else
  83.          {
  84.              printf("Error la lletra %c no esta en la paraula n");
  85.              for (j=0; j<=errors;j++)
  86.              {
  87.                  if(lletresintro[i]!=lletraerror[j])
  88.                  {
  89.                       errors++;
  90.                       lletraerror[i]=lletresintro[i];
  91.                  }
  92.              }
  93.              j=0;
  94.          }
  95.          printf("Les lletres introdueides que han sigut erronies son %c, n",lletraerror[i]);
  96.          printf("El numero de errors es: %d n",errors);
  97.      }
  98. }
  99.      
  100.    
  101.      
  102.  
  103.  

pq me dice 27 incompatible type for argument 1 of `adivina_paraula'  ?

19
C/C++ / Arrays
« en: Domingo 8 de Febrero de 2009, 17:45 »
Código: Text
  1. #include<stdio.h>
  2. #define LONG 100
  3. int afegirvalor(float *);
  4. void borrarvalor(float *);
  5. void modificarvalor(float *);
  6. void mostrarvalor(float *,int);
  7. void mitjaaritmetica();
  8. void valorspersobre();
  9. void maximiminin();
  10. int mostrarmenu();
  11.  
  12. int main()
  13. {
  14.     int fin=0;
  15.     int op,i;
  16.     float vector[LONG];
  17.    
  18.    
  19.     do
  20.     {
  21.                op = mostrarmenu();
  22.               switch(op)
  23.               {
  24.               case 1:
  25.                     i=afegirvalor(vector);
  26.                     break;
  27.               case 2:
  28.                     borrarvalor(vector);
  29.                     break;
  30.               case 3:
  31.                    modificarvalor(vector);
  32.                     break;
  33.               case 4:
  34.                    mostrarvalor(vector,i);
  35.                    break;
  36.               case 5:
  37.                    mitjaaritmetica();
  38.                    break;
  39.               case 6:
  40.                    valorspersobre();
  41.                    break;
  42.               case 7:
  43.                    maximiminin();
  44.                    break;
  45.               case 8:
  46.                    fin=1;
  47.                    break;
  48.               default:
  49.                       printf("Opcio incorrecte n");
  50.               }      
  51.               if (!fin)
  52.               {
  53.               printf("nn");
  54.               getchar();
  55.               getchar();
  56.               }
  57.     }while(!fin);
  58.  
  59. }
  60. int mostrarmenu ()
  61. {
  62.     int op;
  63.    
  64.     printf("Programa de estadisticas: n");
  65.     printf("n");
  66.     printf("n");
  67.     printf("1) Afegir un valor: n");
  68.     printf("2) Esborrar un valor: n");
  69.     printf("3) Modificar un valor existent: n");
  70.     printf("4) Mostrar tots el valors: n");
  71.     printf("5) Mitja aritmetica: n");
  72.     printf("6) Valors per sobre la mitja aritmetica: n");
  73.     printf("7) Maxim y minin: n");
  74.     printf("8) Salir n");
  75.    
  76.     do
  77.      {
  78.         printf("Escull una opcio: ");
  79.         scanf("%d", &op);
  80.         if ((op != 1) && (op !=2) && (op != 3) && (op != 4) && (op != 5) && (op != 6) && (op != 7) && (op != 8))
  81.         {
  82.                 printf("Opcio incorrecte n");
  83.         }              
  84.      }while (op < 1 || op > 8);
  85.      return op;
  86. }
  87. int afegirvalor(float *vector)
  88. {
  89.      int i=0;
  90.      
  91.           if (i<100)
  92.           {
  93.                    printf("Introdueix un numero: n");
  94.                    scanf("%f", &vector[i]);
  95.                    i++;
  96.           }
  97.           else
  98.           {
  99.                printf("Ya has posat el maxim de numeros posible. n");
  100.           }
  101.        return i;
  102.      
  103.      
  104. }
  105. void borrarvalor(float *vector)
  106. {
  107.      int pos;
  108.      
  109.      printf("Quina posicio vols borrar [0-99]: n");
  110.      scanf("%d", &pos);
  111.      vector[pos]=0;
  112.      printf("El numero de pos %d del vector a sigut esborrat correctament n");
  113. }
  114. void modificarvalor(float *vector)
  115. {
  116.      int pos;
  117.      float num;
  118.      
  119.      printf("Quina posicio vols modificar [0-99]: n");
  120.      scanf("%d", &pos);
  121.      printf("Indica el numero que vols posar: n");
  122.      scanf("%f", &num);
  123.      vector[pos]=num;
  124.      printf("El numero ha sigut modificat correctament. n");
  125.      
  126. }
  127. void mostrarvalor(float *vector, int i)
  128. {
  129.      int j;
  130.      
  131.      printf("El numeros son:");
  132.      for (j=0; j<i;j++)
  133.      {
  134.            printf("%0.2f,",vector[j]);
  135.      }
  136. }
  137. void mitjaaritmetica()
  138. {
  139. }
  140. void valorspersobre()
  141. {
  142. }
  143. void maximiminin()
  144. {
  145. }
  146.  
  147.  
alguien sabe pq solo me muestra el ultimo valor introducido en mostrarvalor.

20
C/C++ / Error
« en: Lunes 26 de Enero de 2009, 23:45 »
Código: Text
  1.  
  2. #include<stdio.h>
  3.  
  4. int mostrarmenu();
  5. int calculrectangle(int,int,char);
  6. int calculrectanglebuit(int,int,char);
  7. int calculquadrat(int,char);
  8. int calculquadratbuit(int,char);
  9. int calcultriangle(int,char);
  10. int calcultrianglebuit(int,char);
  11.  
  12. int main()
  13. {
  14.     int fin=0;
  15.     int op,m,n;
  16.     char carac;
  17.    
  18.     do
  19.     {
  20.                op = mostrarmenu();
  21.                switch(op)
  22.               {
  23.               case 1:
  24.                     printf("Introdueix el tamany de un costat: n");
  25.                     scanf("%d", &m);
  26.                     printf("Introduiex el tamany de l'altre costat: n");
  27.                     scanf("%d", &n);
  28.                     fflush(stdin);
  29.                     printf("Introdueix el caracter per fer la figura: n");
  30.                     scanf ("%c", &carac);
  31.                     calculrectangle(m,n,carac);
  32.                     break;
  33.               case 2:
  34.                     printf("Introdueix el tamany de un costat: n");
  35.                     scanf("%d", &m);
  36.                     printf("Introduiex el tamany de l'altre costat: n");
  37.                     scanf("%d", &n);
  38.                     fflush(stdin);
  39.                     printf("Introdueix el caracter per fer la figura: n");
  40.                     scanf ("%c", &carac);
  41.                     calculrectanglebuit(m,n,carac);
  42.                     break;
  43.               case 3:
  44.                     printf("Introdueix el tamany del costat: n");
  45.                     scanf("%d", &m);
  46.                     fflush(stdin);
  47.                     printf("Introdueix el caracter per fer la figura: n");
  48.                     scanf ("%c", &carac);
  49.                     calculquadrat(m,carac);
  50.                     break;
  51.               case 4:
  52.                    printf("Introdueix el tamany del costat: n");
  53.                    scanf("%d", &m);
  54.                    fflush(stdin);
  55.                    printf("Introdueix el caracter per fer la figura: n");
  56.                    scanf ("%c", &carac);
  57.                    calculquadratbuit(m,carac);
  58.                    break;
  59.               case 5:
  60.                    printf("Introdueix l'alcada: n");
  61.                    scanf("%d", &m);
  62.                    fflush(stdin);
  63.                    printf("Introdueix el caracter per fer la figura: n");
  64.                    scanf ("%c", &carac);
  65.                    calcultriangle(m,carac);
  66.                    break;
  67.               case 6:
  68.                    printf("Introdueix l' alcada: n");
  69.                    scanf("%d", &m);
  70.                    fflush(stdin);
  71.                    printf("Introdueix el caracter per fer la figura: n");
  72.                    scanf ("%c", &carac);
  73.                    calcultrianglebuit(m,carac);
  74.                    break;
  75.               case 7:
  76.                    fin=1;
  77.                    break;
  78.               default:
  79.                       printf("Opcio incorrecten");
  80.               }      
  81.               if (!fin)
  82.               {
  83.               printf("nn");
  84.               getchar();
  85.               getchar();
  86.               }
  87.     }while(!fin);
  88. }
  89. int mostrarmenu ()
  90. {
  91.     int op;
  92.    
  93.     printf("Programa que dibuixa la figura que has escollit: n");
  94.     printf("n");
  95.     printf("n");
  96.     printf("1) Rectangle: n");
  97.     printf("2) Rectangle buit: n");
  98.     printf("3) Quadrat: n");
  99.     printf("4) Quadrat buit: n");
  100.     printf("5) Triangle: n");
  101.     printf("6) Trinangle buit: n");
  102.     printf("7) Salir: n");
  103.    
  104.     do
  105.      {
  106.         printf("Escull una opcio: ");
  107.         scanf("%d", &op);
  108.         if ((op != 1) && (op !=2) && (op != 3) && (op != 4) && (op != 5) && (op != 6) && (op != 7))
  109.         {
  110.                 printf("Opcio incorrecte n");
  111.         }              
  112.      }while (op < 1 || op > 7);
  113.      return op;
  114. }
  115. int calculrectangle (int m, int n, char carac)
  116. {
  117.     int i,j;
  118.    
  119.     for(i=1;i<=n;i++)
  120.     {
  121.         for(j=1;i<=m;j++)
  122.         {
  123.               printf("%c",carac);
  124.         }
  125.         printf("n");
  126.     }
  127. }
  128. int calcurrectanglebuit(int m, int n, char carac)
  129. {
  130.     int i,j,espai;
  131.    
  132.     for (i=1;i<=n;i++)
  133.     {
  134.         if (i==1 || i==n)
  135.         {
  136.                  for(j=1;j<=m;j++)
  137.                  {
  138.                        printf("%c",carac);
  139.                  }
  140.         }
  141.         else
  142.         {
  143.             printf("%c",carac);
  144.            
  145.             for (espai=1;espai<=n-2;espai++)
  146.             {
  147.                 printf(" ");
  148.             }
  149.             printf("%c",carac);
  150.         }
  151.     }
  152. }
  153. int calculquadrat(int m, char carac)
  154. {
  155.     int i,j;
  156.    
  157.     for (i=1; i<=m;i++)
  158.     {
  159.         for (j=1;j<=m;j++)
  160.         {
  161.             printf("%c",carac);
  162.         }
  163.         printf("n");
  164.     }
  165. }
  166. int calculquadratbuit(int m, char carac)
  167. {
  168.     int i,j,espai;
  169.    
  170.     for (i=1; i<=m;i++)
  171.     {
  172.         if(i==1 || i==m)
  173.         {
  174.                 for (j=1;j<=m;j++);
  175.                 {
  176.                     printf("%c",carac);
  177.                 }
  178.         }
  179.         else
  180.         {
  181.             printf("%c",carac);
  182.             for( espai=1;espai<=m-2;espai++)
  183.             {
  184.                  printf(" ");
  185.             }
  186.             printf("%c",carac);
  187.         }
  188.         printf("n");
  189.     }
  190. }
  191. int calcultriangle(int m, char carac)
  192. {
  193.     int i,j,espai;
  194.    
  195.     for (i=1;i<=m;i++)
  196.     {
  197.           for(espai=1;espai<=m-i;espai++)
  198.           {
  199.                 printf(" ");
  200.           }
  201.           for (j=1;j<=i*2-1;j++)
  202.           {
  203.               printf("%c",carac);
  204.           }
  205.           printf("n");
  206.     }
  207. }
  208. int calcultrianglebuit (int m, char carac)
  209. {
  210.     int i,j,espai;
  211.    
  212.     for (i=1; i<=m;i++);
  213.     {
  214.         for (espai=1; espai<=m-i;espai++);
  215.         {
  216.             printf(" ");
  217.         }
  218.         for (j=1;j<=m*2-1;j++);
  219.         {
  220.             if (i==1 || i==m)
  221.             {
  222.                      printf("%c",carac);
  223.             }
  224.             else
  225.             {
  226.                 printf(" ");
  227.             }
  228.         }
  229.         printf("n");
  230.     }
  231. }
  232.                      
  233.  
  234.  
El calcul trianglebuit no me printa nada :S

21
C/C++ / Problemas con puntero
« en: Miércoles 21 de Enero de 2009, 22:42 »
Código: Text
  1.  
  2. #include<stdio.h>
  3.  
  4. void suma(int num1, int num2);
  5. void calculden(int, int, int *resul);
  6. void calculnum(int num1, int num2,int resulden,int den1,int den2, int *sumnumtotal);
  7. void mcd(int dividendo, int divisor, int *resul);
  8. void mcm(int dividendo, int divisor, int resul, int *resulmcm);
  9.  
  10. int main()
  11. {
  12.     int num1,num2,den1,den2,resul,resulden,resulmcm,sumnumtotal;
  13.    
  14.     printf("Programa que cacula el resultat de la suma de dues fracciones. n");
  15.     printf("n");
  16.     printf("n");
  17.     printf("Introdueix el numerador de la primera fraccio: n");
  18.     scanf("%d", &num1);
  19.     printf("Introdueix el denomirador de la primera fraccio: n");
  20.     scanf("%d", &den1);
  21.     printf("Ahora la segona fraccio. n");
  22.     printf("Introdueix el numerador de la segona fraccio: n");
  23.     scanf("%d", &num2);
  24.     printf("Introdueix el denominador de la segona fraccio: n");
  25.     scanf("%d", &den2);
  26.    
  27.     if (den1 == den2)
  28.     {  
  29.              printf("La suma de les fraccions dona com a resultat: %d/%d n", num1+num2,den1);
  30.              getchar();
  31.              getchar();
  32.     }
  33.     else
  34.     {
  35.         calculden(den1,den2, &resul);
  36.         calculnum(num1,num2,resulmcm,den1,den2,&sumnumtotal);
  37.         printf("La suma de les fracciones dona com a resultat: %d/%d n", sumnumtotal,resul);
  38.         getchar();
  39.         getchar();
  40.     }
  41. }
  42.  
  43. void calculden(int den1, int den2, int *resulmcm)
  44. {
  45.     int dividendo1;
  46.      
  47.    if (den1 > den2)
  48.    {
  49.         mcd(den1,den2,*dividendo1);
  50.         mcm(den1,den2,dividendo1,*resulmcm);
  51.    }
  52.    else
  53.    {
  54.        mcd(den2,den1,*dividendo1);
  55.        mcm(den2,den1,dividendo1,*resulmcm);
  56.    }
  57. }
  58.  
  59. void mcd(int dividendo1, int divisor, int *resul)
  60. {
  61.     int aux;
  62.    
  63.     do
  64.     {
  65.     aux = divisor;
  66.     divisor = dividendo1 % divisor;
  67.     dividendo1 = aux;
  68.     }while (divisor != 0);
  69.     *resul=dividendo1;
  70.  
  71. }
  72. void mcm(int dividendo, int divisor, int resul,int *resulmcm)
  73. {
  74.    
  75.     *resulmcm=(dividendo*divisor)/resul;
  76. }
  77. void calculnum(int num1,int num2, int resulden, int den1, int den2, int *sumnumtotal)
  78. {
  79.     int sumnum1,sumnum2;
  80.    
  81.     sumnum1=num1*resulden/den1;
  82.     sumnum2=num2*resulden/den2;
  83.     *sumnumtotal=sumnum1+sumnum2;
  84. }
  85.  
  86.  

Tengo este codigo pero no se donde falla, pq al haber una funcion dentro de otra me lia mucho :s
Siempre me falla dentro del calculden

22
C/C++ / Problema
« en: Lunes 19 de Enero de 2009, 22:45 »
Código: Text
  1.  
  2. #include<stdio.h>
  3.  
  4. int suma(int num1, int num2);
  5. int calculden();
  6. int calculnum(int num1, int num2,int resulden,int den1,int den2);
  7. int mcd(int dividendo,int divisor);
  8. int mcm(int dividendo,int divisor,int dividendo1);
  9.  
  10. int main()
  11. {
  12.     int num1,num2,den1,den2,resul,resulden,resulnum;
  13.    
  14.     printf("Programa que cacula el resultat de la suma de dues fracciones. n");
  15.     printf("n");
  16.     printf("n");
  17.     printf("Introdueix el numerador de la primera fraccio: n");
  18.     scanf("%d", &num1);
  19.     printf("Introdueix el denomirador de la primera fraccio: n");
  20.     scanf("%d", &den1);
  21.     printf("Ahora la segona fraccio. n");
  22.     printf("Introdueix el numerador de la segona fraccio: n");
  23.     scanf("%d", &num2);
  24.     printf("Introdueix el denominador de la segona fraccio: n");
  25.     scanf("%d", &den2);
  26.    
  27.     if (den1 == den2)
  28.     {  
  29.              printf("La suma de les fraccions dona com a resultat: %d/%d n", num1+num2,den1);
  30.              getchar();
  31.              getchar();
  32.     }
  33.     else
  34.     {
  35.         resulden=calculden();
  36.         resulnum=calculnum(num1,num2,resulden,den1,den2);
  37.         printf("La suma de les fracciones dona com a resultat: %d/%d n", resulnum,resulden);
  38.         getchar();
  39.         getchar();
  40.     }
  41. }
  42. int calculden()
  43. {
  44.     int num,i,resulmcm,dividendo1;
  45.     int dividendo=num, divisor=num;
  46.    
  47.         printf("Introduce el primer denominador: n");
  48.         scanf("%d", &num);
  49.        
  50.        for (i = 1; i <= 2; i++)
  51.        {
  52.          
  53.          
  54.                      if (num > dividendo)
  55.                      {  
  56.                            dividendo = num;
  57.                            printf("Introduce el segundo denominador: n");
  58.                            scanf("%d", &num);
  59.                      }  
  60.                      else if (num < dividendo)
  61.                      {
  62.                           divisor = num;
  63.                      }
  64.          }
  65.      dividendo1=mcd(dividendo,divisor);
  66.      resulmcm=mcm(dividendo,divisor,dividendo1);
  67.      
  68.      return resulmcm;
  69.  
  70. }
  71. int mcd(int dividendo1, int divisor)
  72. {
  73.     int aux;
  74.    
  75.     do
  76.     {
  77.     aux = divisor;
  78.     divisor = dividendo1 % divisor;
  79.     dividendo1=aux;
  80.     }while (divisor != 0);
  81.  
  82. return dividendo1;
  83. }
  84. int mcm(int dividendo, int divisor, int dividendo1)
  85. {
  86.     int resulmcm;
  87.    
  88.     resulmcm=(dividendo*divisor)/dividendo1;
  89.     return resulmcm;
  90. }
  91.  
  92.    
  93. int calculnum(int num1,int num2, int resulden, int den1, int den2)
  94. {
  95.     int sumnumtotal,sumnum1,sumnum2;
  96.    
  97.     sumnum1=num1*resulden/den1;
  98.     sumnum2=num2*resulden/den2;
  99.     sumnumtotal=sumnum1+sumnum2;
  100.     return sumnumtotal;
  101. }
  102.  
  103.  
  104.  
  105.  

Queria saber como puedo arreglar el calculden para que no me tenga q introducir de nuevo los denominadores.

23
C/C++ / Error compilacion
« en: Sábado 17 de Enero de 2009, 12:28 »
Código: Text
  1.  
  2. #include<stdio.h>
  3.  
  4. float velocitat();
  5. float distancia();
  6. float temps();
  7. int menu();
  8.  
  9. int main()
  10. {
  11.    
  12.     int opcion;
  13.     int fin;
  14.     float resultat;
  15.  
  16.     fin = 0;
  17.     do
  18.     {
  19.         opcion = menu();
  20.         switch (opcion)
  21.         {
  22.         case 1:
  23.             resultat=velocitat();
  24.             printf("La velocitat es %0.2f Km/h n", resultat);
  25.             break;
  26.         case 2:
  27.             resultat=distancia();
  28.             printf("La distancia que a recorregut el tren es: %0.2f Km n", resultat);
  29.             break;
  30.         case 3:
  31.              resultat=temps();
  32.              printf("El temps que a trigat el tren en fer %0.2f kilomtres es: %0.2f hores n", distancia,resultat);
  33.              break;
  34.         case 4:
  35.              fin=1;
  36.              break;
  37.         default:
  38.                 printf("Opcio incorrecta n");
  39.                 break;    
  40.         }
  41.          if (!fin)
  42.         {
  43.             printf("nn");
  44.             getchar();
  45.             getchar();
  46.         }
  47.     }while (!fin);
  48. }
  49. int menu()
  50. {
  51.     int op;
  52.  
  53.     printf("Indica quina es l'incognita que vols saber:n");
  54.     printf("1) Velocitat del tren n");
  55.     printf("2) Distancia entre A i B n");
  56.     printf("3) Temps de recorregut n");
  57.     printf("4) Salir n");
  58.    
  59.      do
  60.      {
  61.         printf("Elija una opción: ");
  62.         scanf("%d", &op);
  63.         if ((op != 1) && (op !=2) && (op != 3) && (op != 4))
  64.         {
  65.                 printf("Opcio incorrecte n");
  66.         }              
  67.      }while (op < 1 || op > 4);
  68.      return op;
  69. }
  70. float velocitat()
  71. {
  72.       float distancia,temps,resultat;
  73.      
  74.       printf("Programa que calcula la velocitat del tren n");
  75.       printf("n");
  76.       printf("n");
  77.       printf("Digues la distancia en kilometres: n");
  78.       scanf("%f", &distancia);
  79.       printf("Digues el temps en hores: n");
  80.       scanf("%f", &temps);
  81.       resultat=distancia*temps;
  82.       return resultat;
  83.      
  84. }
  85. float distancia()
  86. {
  87.       float velocitat,temps,resultat;
  88.      
  89.       printf("Programa que calcula la distancia que a recorregut el tren n");
  90.       printf("n");
  91.       printf("n");
  92.       printf("A quina velocitat anaba el tren: n");
  93.       scanf("%f", &velocitat);
  94.       printf("Quant de temps a trigat: n");
  95.       scanf("%f", &temps);
  96.       resultat=velocitat*temps;
  97.       return resultat;
  98.      
  99. float temps()
  100. {
  101.       float distancia,velocitat,resultat;
  102.        
  103.       printf("Programa que calcula el temps a trigat el tren en realitzar un recorregut: n");
  104.       printf("n");
  105.       printf("n");
  106.       printf("Quina distancia a recorregut el tren: n");
  107.       scanf("%f", &distancia);
  108.       printf("A quina velocitat anaba el tren: n");
  109.       scanf("%f", &velocitat);
  110.       resultat=distancia/velocitat;
  111.       return resultat;
  112.      
  113. }      
  114.  
  115.  

Alguien sabe pq en la linea 98 float temps(), me dice que espera un ; antes de float

24
GNU/Linux / Script en bash
« en: Lunes 12 de Enero de 2009, 23:16 »
Alguien me podria decir como hacer un script que me validara un dni, vamos que me detecta q son 8 numeros, y q todos son numeros.

25
C/C++ / Piramide
« en: Martes 6 de Enero de 2009, 20:16 »
Código: Text
  1.  
  2. #include<stdio.h>
  3.  
  4. int dibuixa_piramide(int alcada);
  5. int linea(char caracter, int alcada);
  6.  
  7. int main()
  8. {
  9.     int alcada,p;
  10.    
  11.     printf("Programa que dibuixa una piramide de asterics depenent de l'alcada que fiqui l'usuari.n");
  12.     printf("n");
  13.     printf("n");
  14.    
  15.     printf("Introdueix l'alcada:n");
  16.     scanf("%d", &alcada);
  17.    
  18.     p=dibuixa_piramide(alcada);
  19.    
  20.     getchar();
  21.     getchar();
  22. }
  23. int dibuixa_piramide(int alcada)
  24. {
  25.       int files,simbols,espai,l;
  26.       char caracter;
  27.      
  28.       printf("Introdueix el caracter que vols utilitzar: n");
  29.       fflush(stdin);
  30.       scanf("%c", &caracter);
  31.      
  32.       for (files = 1; files<=alcada; files++)
  33.      
  34.       l=linea(caracter,alcada);
  35. }        
  36. int linea(char caracter, int alcada)
  37. {
  38.     int espai,files,simbols;
  39.    
  40.           for (espai=1; espai<=alcada-files; espai++)
  41.           {
  42.               printf(" ");
  43.           }
  44.               for (simbols = 1; simbols<=files*2-1; simbols++)
  45.               {
  46.                   printf("%c",caracter);
  47.               }
  48.        printf("n");          
  49. }
  50.  
  51.  

Alguien sabe pq una vez introduzco el caracter, se me cierra el programa.

Páginas: [1] 2