|
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
1
« en: Domingo 4 de Abril de 2010, 20:46 »
CREATE PROCEDURE nou_usuari @nomuser VARCHAR(50),@cognomuser VARCHAR(50),@loginuser VARCHAR(50) AS IF ( @loginuser = '' ) BEGIN SET @loginuser = LOWER(SUBSTRING(@nomuser,1,1)) + @cognomuser INSERT INTO usuaris VALUES (@nomuser,@cognomuser,@loginuser) END ELSE INSERT INTO usuaris VALUES (@nomuser,@cognomuser,@loginuser) GO EXEC nou_usuari 'Anna','Jimenez',''
Como poner un contador para que compare si esta el login, y si esta sucede que le ponga un numero detras ?
2
« 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
« en: Martes 29 de Diciembre de 2009, 16:06 »
using System; using System.Collections.Generic; using System.IO; public class Dato { public string mac; public string ip; } public class Treball { static SortedDictionary <string,Dato > dic = new SortedDictionary <string,Dato >(); public static void Main() { string clave,dir; dir=SeleccionarCarpeta(); StreamReader sr = new StreamReader (dir ); string linia = sr.ReadLine(); char[] separador = { ' ' }; bool guardamaccorrect=false,guardaipcorrect=false,clavecorrect=false; while ( linia != null ) { if ( linia.Contains("host") || linia.Contains("ethernet") || linia.Contains("fixed-address")) { string[] palabras = linia.Split(separador); foreach ( string p in palabras ) { if (!p.Contains(":") && !p.Contains("{") && !p.Contains("hardware") && !p.Contains("ethernet") && !p.Contains("fixed-address") && !p.Contains(".")) { if (p != "host") { clave=p; Console.WriteLine(clave); clavecorrect=true; } } if ( p.Contains(":")) { dato.mac=p; guardamaccorrect=true; } if (p.Contains(".")) { dato.ip=p; guardaipcorrect=true; } } } if (clavecorrect == true && guardaipcorrect == true && guardamaccorrect == true) { dic.Add(clave,dato); } linia = sr.ReadLine(); } menu(); Console.ReadKey(); } public static string SeleccionarCarpeta() { string dir; do { Console.Clear(); Console.WriteLine("Introdueix la direccio on esta ubicat el fitxer dchp.conf (Direccio Completa):"); dir=Console.ReadLine(); if (!File.Exists(dir)) { Console.WriteLine("El Fitxer no existeix"); Console.WriteLine("Pulsi una tecla ..."); Console.ReadKey(); } }while(!File.Exists(dir)); Console.WriteLine("Direccio Correcte."); Console.WriteLine("Presioni una tecla ..."); return dir; } public static void consultes() { string consult; Console.WriteLine("Introdueix el nom del host,la ip o la mac que vols consultar:"); consult=Console.ReadLine(); if (consult.Contains(".")) { foreach ( KeyValuePair<string,Dato> par in dic) { if ( par.Value == consult ) { Console.WriteLine("{0} -> {1}", par.Key,par.Value); } } } else if (consult.Contains(":")) { foreach ( KeyValuePair<string,Dato> par in dic) { if ( par.Value == consult ) { Console.WriteLine("{0} -> {1}", par.Key,par.Value); } } } else { foreach ( KeyValuePair<string,Dato> par in dic) //segunda forma { if ( par.key == consult ) { Console.WriteLine("{0} -> {1}", par.Key,par.Value); } } } } public static void modificar() { } public static void afegir() { } public static void eliminar() { } public static void guardar() { } public static void menu() { bool salir = false; while (!salir) { Console.Clear(); Console.WriteLine("Escull una opcio:"); Console.WriteLine("1) Fer consultes sobre el diccionari."); Console.WriteLine("2) Modificar les dades d'un host existent en el diccionari."); Console.WriteLine("3) Afegir un host al diccionari."); Console.WriteLine("4) Eliminar un host del diccionari."); Console.WriteLine("5) Guardar el contingut del diccionari reemplaçant la secció corresponent del fitxer dhcp.conf"); Console.WriteLine("6) Salir."); ConsoleKeyInfo ck = Console.ReadKey(); switch(ck.KeyChar) { case '1': consultes(); break; case '2': modificar(); break; case '3': afegir(); break; case '4': eliminar(); break; case '5': guardar(); break; case '6': salir = true; Console.WriteLine("nPresione una tecla para salir ..."); break; } } } }
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
« en: Miércoles 16 de Diciembre de 2009, 20:23 »
/* Contar las veces que aparece cada palabra en una frase. */ using System; using System.Collections.Generic; public class ContarPalabras { public static void Main() { Dictionary <string, int> dic = new Dictionary <string, int>(); int cont1=0,cont2=0,cont3=0,cont4=0; string frase = "un dos tres dos cuatro un un"; char[] delimiterChars = { ' ' }; string[] words = frase.Split(delimiterChars); for (int i=0;i<words.Length;i++) { if ( words[i] == "un" ) { if ( cont1 == 0 ) dic.Add(words[i],cont1); cont1++; } if ( words[i] == "dos" ) { if ( cont2 == 0 ) dic.Add(words[i],cont2); cont2++; } if ( words[i] == "tres" ) { if ( cont3 == 0 ) dic.Add(words[i],cont3); cont3++; } if ( words[i] == "cuatro" ) { if ( cont4 == 0 ) dic.Add(words[i],cont4); cont4++; } } Console.WriteLine("{0}{1}{2}{3}",cont1,cont2,cont3,cont4); foreach ( KeyValuePair<string,int> par in dic) //segunda forma { Console.WriteLine(" Clave Contador "); Console.WriteLine("========================="); Console.WriteLine("{0,6} {1,5} ",par.Key,par.Value); Console.WriteLine(); } Console.ReadKey(); } }
Alguien sabe pq antes de entrar al foreach me printa los cont y despues al entrar me los printa con un 0 ?
5
« en: Sábado 12 de Diciembre de 2009, 16:24 »
/* Escriu un programa que busqui en una carpeta ( i subcarpetas ) tots els fitxers amb mida 0 bytes. Una vegada fet això ha de mostrar quants s'han trobat i un per un fer aquesta pregunta : "Vols eliminar el fitxer #####.### ? (Si,No,Cap,Tots) ?" L'opció "Cap" significa no fer res amb els que queden, l'opció "Tots" significa eliminar tots els que queden. Nota : Els fitxers s'eliminen amb el mètode File.Delete(path) */ using System; using System.Collections.Generic; using System.IO; public class Fitxers { public static void Main() { string dire; Console.WriteLine("Introdueix la direcció de la carpeta:"); dire=Console.ReadLine(); while (Directory.Exists(dire) == false)//para saber si el directorio existe { Console.WriteLine("Este directorio no existe, vuelve a escribirlon"); dire=Console.ReadLine(); } fitxers(dire); Console.WriteLine("Presione una tecla para salir."); Console.ReadKey(); } public static void fitxers(string dire) { string[] dirs = Directory.GetDirectories(dire); foreach(string d in dirs) { fitxers(d); } string[] fils = Directory.GetFiles(dire); foreach (string f in fils) { dadesfi(f); } } public static void dadesfi(string d ) { Queue <string> cola = new Queue <string>(); FileInfo fi = new FileInfo (d ); long mida = fi.Length; string res; if (mida != 0) { cola.Enqueue(d); Console.WriteLine(d); } while ( cola.Count > 0 ) //Saber el numero de elementos de la cola. { //Console.Clear(); bool cap=false; string n = cola.Dequeue(); //Sacar de la cola elementos. Console.WriteLine("Vols Elimnar el fitxer {0} ?",n); res=Console.ReadLine(); if (res == "si") { File.Delete(n); //Console.WriteLine("El fitxer s'ha eliminat correctament"); } else if ( res == "no" ) { //Console.WriteLine("El fitxer no s'ha eliminat"); } else if ( res == "cap") { Console.WriteLine("Prueba cap"); while ( cola.Count > 0 ) { Console.WriteLine(n); n = cola.Dequeue(); } Console.WriteLine("No s'ha eliminat cap fitxer"); //break; } else if ( res == "tots") { Console.WriteLine("Prueba tots"); while ( cola.Count > 0 ) { File.Delete(n); n = cola.Dequeue(); } Console.WriteLine("S'han eliminat tots els fitxers"); } else Console.WriteLine("No has escrit la paraula correcta"); } } }
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
« en: Martes 8 de Diciembre de 2009, 16:14 »
/* 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 , amb la seva nota, pero mantenint en cada llista l'ordre d'introducció. */ using System; using System.Collections.Generic; using System.IO; public class Dato { public string nombre; public int nota; } public class Colas { static void Main() { Queue <Dato > alumne = new Queue <Dato >(); Dato alumno = new alumno (); string nombre1; int nota1; Console.WriteLine("Introdueix el nom de l'alumne:"); nombre1=Console.ReadLine(); nombre.alumne.Enqueue(nombre1); Console.WriteLine("Introdueix la nota de l'alumne:"); nota1=Console.ReadLine(); nota1=Convert.ToInt32(nota1); alumno.nota=nota1; // alumne.nota.Enqueue(alumno.nota); while ( alumno.nombre == null ) { //alumne=Console.ReadLine(); } Console.ReadKey(); } }
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
« en: Domingo 1 de Noviembre de 2009, 21:07 »
// Programa que lee un fichero de texto y llena una lista con las palabras que contiene sin repetirlas. Despues mostraslas por pantalla. using System; using System.IO; public class Ejercicio { public static void Main() { StreamReader sr = new StreamReader ("J:\ASI2\EDD\palabras.txt"); // declaracion de la variable sr de lectura char[] delimiterChars = { ' ', ',', '.', ':', 't' }; string linia = sr.ReadLine(); while ( linia != null ) // lee la linia { string[] words = linia.Split(delimiterChars); Console.WriteLine("{0} words in text:", words.Length); Array.Sort(words); //foreach (string s in words) for( int i=0;i<=words.Length;i++) { Console.WriteLine(words[i]); if ( words[i] != words[i+1]){ i++; } Console.ReadKey(); } linia = sr.ReadLine(); } sr.Close(); Console.ReadKey(); } }
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
« en: Viernes 23 de Octubre de 2009, 21:43 »
//EJERCICIO : Buscar los ficheros HTML y eliminar las lineas que contengan la cadena <codigo del virus> using System; using System.IO; class Programa { static void ListadoDirectorio (string dire) { string[] dirs = Directory.GetDirectories(dire); //devuelve una array de string con los subdirectorios que hay dentro. foreach ( string d in dirs ) //coje los caracteres de la array dirs { Console.WriteLine(d); ListadoDirectorio(d); } string[] fils = Directory.GetFiles(dire); foreach (string f in fils) { Console.WriteLine(f,"*.html"); Limpia(f); } } static void Limpia(string f) { //Aqui comprobamos si el fichero contiene el codigo del virus y lo eliminamos StreamReader sr = new StreamReader (f ); // declaracion de la variable sr de lectura StreamWriter sw = new StreamWriter ("temp.html"); //declaracion de la variable sw de escritura string linia = sr.ReadLine(); while ( linia != null ) // lee la linia { linia = sr.ReadLine(); if ( linia != "<codigo del virus>" ) { sw.WriteLine(linia); //Console.WriteLine(error1); } else { //Console.WriteLine("error2"); Console.WriteLine("El fitxer {0} te un virus.",f); } linia = sr.ReadLine(); } sw.Close(); sr.Close(); File.Delete(f); File.Move("temp.html",f); //origen,destino } static void Main() { try { string dir = "c:\tools"; ListadoDirectorio(dir); } catch ( Exception e ) { Console.WriteLine(e.ToString()); } Console.ReadKey(); } }
Pq cuando intenta entrar en el archivo me mide acceso denegado ?
9
« 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
« en: Martes 26 de Mayo de 2009, 23:46 »
void elimina_soci(Tclient client[],int *numclient,FILE *a){ int num,i=0,trobat=0; char res; FILE *b; a=fopen("socis.txt","r"); b=fopen("socis2.txt","w"); printf("Introdueix el numero de soci que vols eliminarn"); scanf("%d", &num); while ((i<*numclient) && (trobat==0)){ if (num==client[i].numsoci){ printf("Usuari Trobat.n"); trobat=1; } else{ 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); i++; } } if (trobat==0) printf("El numero d'usuari no es validn"); else{ do{ printf("Estas segur que vols eliminar aquest alumne[S/N]: n"); fflush(stdin); scanf("%c",&res); }while ((res!='S') && (res!='s') && (res!='N') && (res!='n')); } if ((res=='S') || (res=='s')){ *numclient=*numclient-1; while (i<*numclient){ 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); i++; } } fclose(a); fclose(b); remove("socis.txt"); rename("socis2.txt","socis.txt"); }
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
« en: Domingo 17 de Mayo de 2009, 15:44 »
#include<stdio.h> int main(){ FILE *a,*b,*c; char cadena1[100],cadena2[100]; char carac1,carac2; a=fopen("ordenat1.txt","r"); b=fopen("ordenat2.txt","r"); c=fopen("conjunt.txt","w"); while (fgets(cadena1,100,a) && fgets(cadena2,100,b)){ if (strcmp(cadena1,cadena2)<0){ fputs(cadena1,c); printf("%s",cadena1); } if (strcmp(cadena1,cadena2)>0){ fputs(cadena2,c); printf("%s",cadena2); } } fclose(a); fclose(b); fclose(c); getchar(); getchar(); }
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
« en: Jueves 23 de Abril de 2009, 22:03 »
#include<stdio.h> #include<string.h> typedef struct { char nommes[10]; int numdia; }Tvector; typedef struct { int dia; int mes; }Tfecha; Tfecha novaData(); void calcula(Tfecha data1,Tfecha data2,Tvector elements[]); int main(){ Tvector elements[12]={ {"Gener",31}, {"Febrer",28}, {"Marc",31}, {"Abril",30}, {"Maig",31}, {"Juny",30}, {"Juliol",31}, {"Agost",31}, {"Septembre",30}, {"Octubre",31}, {"Novembre",30}, {"Desembre",31} }; Tfecha data1,data2; printf("Dades de la data actual[Mateix Any]:n"); data1=novaData(); printf("Dades de la data posterior[Mateix Any]:n"); data2=novaData(); calcula(data1,data2,elements); getchar(); getchar(); } Tfecha novaData(){ Tfecha data; printf("Introdueix el dia:n"); scanf("%d",&data.dia); printf("Introdueix el mes en numero:n"); scanf("%d",&data.mes); return data; } void calcula(Tfecha data1,Tfecha data2,Tvector elements[]){ int cont=0,cont1=0,conttotal=0; char mes[10]; if (data1.mes<data2.mes){ do{ cont1=cont1+elements[data1.mes-1].numdia; mes[]=elements[data1.mes-1].nommes+1; }while(mes[]==data2.mes); } else if(data1.mes>data2.mes) printf("Error: La data segona te que se posterior a la primera.n"); else{ if (data1.dia==data2.dia) printf("Les dues dates son igualesn"); else cont } conttotal=cont1+cont; 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); }
Alguien me puede ayudar acabar esto de calcula, es q no se como hacerlo para q me sume los dias :S
13
« en: Jueves 9 de Abril de 2009, 16:08 »
#include<stdio.h> #include<stdlib.h> #include<time.h> #define LONGITUD 50 #define TEMPS 60 #define TOP 5 char *paraules[]={"llibre","mantega","carrer","pernil","pilota"}; char top_noms[TOP][LONGITUD]; int top_punts[TOP]; int main() { int i,n,num; int encerts; char resposta[LONGITUD]; time_t t; srand(time(NULL)); for(i=0;i<TOP;i++) top_punts[i]=-1; n=sizeof(paraules)/sizeof(char*); do { printf("nnEntra les paraules que van sortintn"); t=time(NULL); while(difftime(time(NULL),t)<TEMPS) { num=rand()%num; puts(paraules[num]); gets(resposta); if(strcmp(resposta,paraules[num])==0) { if(difftime(time(NULL),t)<TEMPS) { encerts++; puts("OKn"); } else puts("Fora de Tempsn"); } else puts("Errorn"); } printf("Continuar(si/no)?n"); gets(resposta); }while(strcmp(resposta,"si")==0); getchar(); getchar(); }
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
« en: Miércoles 8 de Abril de 2009, 18:32 »
#include <stdio.h> #include <string.h> void ordenar(int n,char cad[50][30]); void printa (int n,char cad[50][30]); int main() { int n=0; char cad[50][30]; puts("Introdueix cadenas(. para terminar):n"); do { printf("Cadena %d: ", n+1); gets(cad[n]); fflush(stdin); }while((0!=strcmp(cad[n++],".")) || (n>50)); n--; //elimino la ultima cadena ordenar(n,cad); printa(n,cad); getchar(); getchar(); } void ordenar(int n,char cad[50][30]) { char *temp[30],i,elem; for(elem=0; elem<n-1; elem++){ for(i=elem+1; i<n; i++){ if(strcmp(cad[elem],cad[i])>0) { *temp=*cad[elem]; *cad[elem]=*cad[i]; *cad[i]=*temp; } } } } void printa (int n,char cad[50][30]) { int i; printf("nLes cadenes ordenades alfabeticament son:n"); for(i=0; i<n; i++){ printf("nCadena %d: %s", i+1, cad[i]); } }
Pq me intercambio la primera letra de las palabras y no la palabra entera ?
15
« en: Lunes 6 de Abril de 2009, 18:48 »
#include<stdio.h> #include<time.h> #define FILES 7 #define COLUMNES 5 int menu(); void mostrarhorari(int horari[FILES][COLUMNES],char dies[6][20]); void dieshorescredit(int horari[FILES][COLUMNES]); void totalhores(int horari[FILES][COLUMNES]); void inicialitza_matriu(int horari[FILES][COLUMNES]); void printa_dia(int); void printa_hora(int); int main() { char horari[FILES][COLUMNES]; char dies[6][20]={"Hores ", "Dilluns ", "Dimarts ", "Dimecre ", "Dijous ", "Divendres n"}; int fin,opcio; inicialitza_matriu(horari); do { opcio=menu(); fin=0; switch(opcio) { case 1: mostrarhorari(horari,dies); break; case 2: dieshorescredit(horari); break; case 3: totalhores(horari); break; case 4: fin=1; default: printf("Opcio Incorrecte n"); } if(fin==0) { printf("nn"); getchar(); getchar(); } }while(fin==0); } int menu() { int op; printf("Programa per a la creacio de un horari n"); printf("1) Mostrar Horarin"); printf("2) Dies i Hores d'un determinat creditn"); printf("3) Hores setmanals d'un determinat creditn"); printf("4) Sortir n"); do { printf("Escull una opción: "); scanf("%d", &op); if ((op != 1) && (op !=2) && (op != 3) && (op != 4)) { printf("Opcio incorrecte n"); } }while (op < 1 || op > 4); return op; } void mostrarhorari(int horari[FILES][COLUMNES],char dies[6][20]) { int i,j,h; for(h=0;h<=6;h++){ printf("%s",dies[h]); } for(i=0;i<FILES;i++) { printf("%d:00",15+i); for(j=0;j<COLUMNES;j++) { printf(" %s ",horari[i][j]); h++; } printf("n"); } } void dieshorescredit(int horari[FILES][COLUMNES]) { int i,j; char credit[10]; printf("nnDies i hores que s'imparteix un credit n"); do { printf("nnEscull el credit (Introdueix la primera lletra en mayuscula): n"); printf("-Matesn-Cataln-Socian-Fisicn-Casten"); fflush(stdin); scanf("%s", &credit); printf("%s",credit); 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"); }while((credit!='Mates') || (credit!='Catal') || (credit!='Socia') || (credit!='Fisic') || (credit!='Caste')); for(i=0;i<FILES;i++) { for(j=0;j<COLUMNES;j++) { if (credit==horari[i][j]) { printa_dia(j); printa_hora(i); } } } } void totalhores(int horari[FILES][COLUMNES]) { int i,j,hora1=0,hora2=0,hora3=0,hora4=0,hora5=0; printf("nnSuma d'hores setmanals de cada credit: nn"); for(i=0;i<FILES;i++) { for(j=0;j<COLUMNES;j++) { if (horari[i][j]=='Mates') hora1=hora1+1; if (horari[i][j]== 'Catal') hora2=hora2+1; if (horari[i][j]=='Socia') hora3=hora3+1; if (horari[i][j]=='Fisic') hora4=hora4+1; if (horari[i][j]== 'Caste') hora5=hora5+1; } } printf("El numero de hores setmanals de Matematiques es: %d horesn",hora1); printf("El numero de hores setmanals de Catala es: %d horesn",hora2); printf("El numero de hores setmanals de Socials es: %d horesn",hora3); printf("El numero de hores setmanals de Fisica es: %d horesn",hora4); printf("El numero de hores setmanals de Castella es: %d horesn",hora5); } void inicialitza_matriu(int horari[FILES][COLUMNES]) { int i,j; srand(time(NULL)); for(i=0;i<FILES;i++) { for(j=0;j<COLUMNES;j++) { horari[i][j]=rand()%5+1; switch(horari[i][j]) { case 1: horari[i][j]=("Mates");; break; case 2: horari[i][j]=("Catal"); break; case 3: horari[i][j]=("Socia"); break; case 4: horari[i][j]=("Fisic"); break; case 5: horari[i][j]=("Caste"); break; } } } } void printa_dia(int dia) { switch(dia) { case 0: printf("Dilluns "); break; case 1: printf("Dimarts "); break; case 2: printf("Dimecres "); break; case 3: printf("Dijous "); break; case 4: printf("Divendres "); break; } } void printa_hora(int hora) { switch(hora) { case 0: printf("15:00n"); break; case 1: printf("16:00n"); break; case 2: printf("17:00n"); break; case 3: printf("18:00n"); break; case 4: printf("19:00n"); break; case 5: printf("20:00n"); break; case 6: printf("21:00n"); break; } }
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
« en: Domingo 29 de Marzo de 2009, 20:06 »
#include<stdio.h> #include<string.h> int remplazar(char frase[],char sub[]); int main() { char frase[100]; char sub[100]; char nou[100]; int indice,i,longnou=0; printf("Introdueix una frase: n"); gets(frase); printf("Que vols substituir: n"); gets(sub); printf("Que hi vols posar en el seu lloc: n"); gets(nou); i=remplazar(frase,sub); longnou=strlen(nou); printf("%d",i); for (i=indice; i<indice+longnou;i++) frase[i]=nou[i-indice]; printf("Resultado: %s n",frase); getchar(); getchar(); } int remplazar(char frase[],char sub[]) { int longfrase=0,i,j=0,longsub=0; longfrase=strlen(frase); longsub=strlen(sub); for (i=0;i<longfrase;i++) { if (frase[i]==sub[0]) { for (j=0;j<longsub;j++) { if(frase[i+j]!=sub[j]) { break; } return i; } } } }
No entiendo pq me sustuye la posicion numero 9, ponga la letra que ponga :S
17
« en: Viernes 27 de Marzo de 2009, 11:16 »
#include<stdio.h> #include<string.h> int inverteix(char *ini, char *fi); int main() { char frase[100]; char *fi; printf("Introdueix una frase n"); gets(frase); fi=frase; while(*fi!=' ') fi++; inverteix(frase,fi); puts(frase); getchar(); getchar(); } int inverteix(char *ini,char *fi) { char aux1,aux2; while (ini<=fi) { aux1=*ini; aux2=*fi; *ini=aux2; *fi=aux1; ini++; fi--; } return fi; }
Pq no me devuelve el resultado de fi, y no me printa nada :S
18
« en: Sábado 21 de Marzo de 2009, 12:53 »
#include<stdio.h> #include<string.h> int mostramenu(); void adivina_paraula(char paraula[longitud]); int main() { int aleatori,fi,longitud=0; char paraula[longitud]; do { fi=0; aleatori=mostra_menu(); switch(aleatori) { case 1: adivina_paraula(paraula); break; case 2: adivina_paraula(paraula); break; case 3: adivina_paraula(paraula); break; case 4: adivina_paraula(paraula); break; case 5: fi=1; break; default: } }while(!fi); } int mostra_menu() { int aleatori; printf("nJuego del ahorcadonn"); do { printf("Per escullir una paraula,digues una opcio de la 1 a la 4.n"); printf("Si per el contrari vols sortir digues la opcio 5.n"); if ((aleatori != 1) && (aleatori != 2) && (aleatori != 3) && (aleatori != 4) && (aleatori != 5)) }while(aleatori<1 || aleatori>5); return aleatori; } void adivina_paraula(char paraula[longitud]) { int i,errors=0,j,longitud; char lletra,lletresintro[i],lletraerror[i]; printf("Introdueix una lletran"); for (i=0; i<longitud; i++); { lletresintro[i]=lletra; printf("Les lletres introdueides fins aquest moment son: %c,n",lletresintro [i ]); if (paraula[i] == lletra) printf("La lletra %c es correcten"); else { printf("Error la lletra %c no esta en la paraula n"); for (j=0; j<=errors;j++) { if(lletresintro[i]!=lletraerror[j]) { errors++; lletraerror[i]=lletresintro[i]; } } j=0; } printf("Les lletres introdueides que han sigut erronies son %c, n",lletraerror [i ]); printf("El numero de errors es: %d n",errors ); } }
pq me dice 27 incompatible type for argument 1 of `adivina_paraula' ?
19
« en: Domingo 8 de Febrero de 2009, 17:45 »
#include<stdio.h> #define LONG 100 int afegirvalor(float *); void borrarvalor(float *); void modificarvalor(float *); void mostrarvalor(float *,int); void mitjaaritmetica(); void valorspersobre(); void maximiminin(); int mostrarmenu(); int main() { int fin=0; int op,i; float vector[LONG]; do { op = mostrarmenu(); switch(op) { case 1: i=afegirvalor(vector); break; case 2: borrarvalor(vector); break; case 3: modificarvalor(vector); break; case 4: mostrarvalor(vector,i); break; case 5: mitjaaritmetica(); break; case 6: valorspersobre(); break; case 7: maximiminin(); break; case 8: fin=1; break; default: printf("Opcio incorrecte n"); } if (!fin) { printf("nn"); getchar(); getchar(); } }while(!fin); } int mostrarmenu () { int op; printf("Programa de estadisticas: n"); printf("n"); printf("n"); printf("1) Afegir un valor: n"); printf("2) Esborrar un valor: n"); printf("3) Modificar un valor existent: n"); printf("4) Mostrar tots el valors: n"); printf("5) Mitja aritmetica: n"); printf("6) Valors per sobre la mitja aritmetica: n"); printf("7) Maxim y minin: n"); printf("8) Salir n"); do { printf("Escull una opcio: "); scanf("%d", &op); if ((op != 1) && (op !=2) && (op != 3) && (op != 4) && (op != 5) && (op != 6) && (op != 7) && (op != 8)) { printf("Opcio incorrecte n"); } }while (op < 1 || op > 8); return op; } int afegirvalor(float *vector) { int i=0; if (i<100) { printf("Introdueix un numero: n"); scanf("%f", &vector[i]); i++; } else { printf("Ya has posat el maxim de numeros posible. n"); } return i; } void borrarvalor(float *vector) { int pos; printf("Quina posicio vols borrar [0-99]: n"); scanf("%d", &pos); vector[pos]=0; printf("El numero de pos %d del vector a sigut esborrat correctament n"); } void modificarvalor(float *vector) { int pos; float num; printf("Quina posicio vols modificar [0-99]: n"); scanf("%d", &pos); printf("Indica el numero que vols posar: n"); scanf("%f", &num); vector[pos]=num; printf("El numero ha sigut modificat correctament. n"); } void mostrarvalor(float *vector, int i) { int j; printf("El numeros son:"); for (j=0; j<i;j++) { printf("%0.2f,",vector[j]); } } void mitjaaritmetica() { } void valorspersobre() { } void maximiminin() { }
alguien sabe pq solo me muestra el ultimo valor introducido en mostrarvalor.
20
« en: Lunes 26 de Enero de 2009, 23:45 »
#include<stdio.h> int mostrarmenu(); int calculrectangle(int,int,char); int calculrectanglebuit(int,int,char); int calculquadrat(int,char); int calculquadratbuit(int,char); int calcultriangle(int,char); int calcultrianglebuit(int,char); int main() { int fin=0; int op,m,n; char carac; do { op = mostrarmenu(); switch(op) { case 1: printf("Introdueix el tamany de un costat: n"); scanf("%d", &m); printf("Introduiex el tamany de l'altre costat: n"); scanf("%d", &n); fflush(stdin); printf("Introdueix el caracter per fer la figura: n"); scanf ("%c", &carac); calculrectangle(m,n,carac); break; case 2: printf("Introdueix el tamany de un costat: n"); scanf("%d", &m); printf("Introduiex el tamany de l'altre costat: n"); scanf("%d", &n); fflush(stdin); printf("Introdueix el caracter per fer la figura: n"); scanf ("%c", &carac); calculrectanglebuit(m,n,carac); break; case 3: printf("Introdueix el tamany del costat: n"); scanf("%d", &m); fflush(stdin); printf("Introdueix el caracter per fer la figura: n"); scanf ("%c", &carac); calculquadrat(m,carac); break; case 4: printf("Introdueix el tamany del costat: n"); scanf("%d", &m); fflush(stdin); printf("Introdueix el caracter per fer la figura: n"); scanf ("%c", &carac); calculquadratbuit(m,carac); break; case 5: printf("Introdueix l'alcada: n"); scanf("%d", &m); fflush(stdin); printf("Introdueix el caracter per fer la figura: n"); scanf ("%c", &carac); calcultriangle(m,carac); break; case 6: printf("Introdueix l' alcada: n"); scanf("%d", &m); fflush(stdin); printf("Introdueix el caracter per fer la figura: n"); scanf ("%c", &carac); calcultrianglebuit(m,carac); break; case 7: fin=1; break; default: printf("Opcio incorrecten"); } if (!fin) { printf("nn"); getchar(); getchar(); } }while(!fin); } int mostrarmenu () { int op; printf("Programa que dibuixa la figura que has escollit: n"); printf("n"); printf("n"); printf("1) Rectangle: n"); printf("2) Rectangle buit: n"); printf("3) Quadrat: n"); printf("4) Quadrat buit: n"); printf("5) Triangle: n"); printf("6) Trinangle buit: n"); printf("7) Salir: n"); do { printf("Escull una opcio: "); scanf("%d", &op); if ((op != 1) && (op !=2) && (op != 3) && (op != 4) && (op != 5) && (op != 6) && (op != 7)) { printf("Opcio incorrecte n"); } }while (op < 1 || op > 7); return op; } int calculrectangle (int m, int n, char carac) { int i,j; for(i=1;i<=n;i++) { for(j=1;i<=m;j++) { printf("%c",carac); } printf("n"); } } int calcurrectanglebuit(int m, int n, char carac) { int i,j,espai; for (i=1;i<=n;i++) { if (i==1 || i==n) { for(j=1;j<=m;j++) { printf("%c",carac); } } else { printf("%c",carac); for (espai=1;espai<=n-2;espai++) { printf(" "); } printf("%c",carac); } } } int calculquadrat(int m, char carac) { int i,j; for (i=1; i<=m;i++) { for (j=1;j<=m;j++) { printf("%c",carac); } printf("n"); } } int calculquadratbuit(int m, char carac) { int i,j,espai; for (i=1; i<=m;i++) { if(i==1 || i==m) { for (j=1;j<=m;j++); { printf("%c",carac); } } else { printf("%c",carac); for( espai=1;espai<=m-2;espai++) { printf(" "); } printf("%c",carac); } printf("n"); } } int calcultriangle(int m, char carac) { int i,j,espai; for (i=1;i<=m;i++) { for(espai=1;espai<=m-i;espai++) { printf(" "); } for (j=1;j<=i*2-1;j++) { printf("%c",carac); } printf("n"); } } int calcultrianglebuit (int m, char carac) { int i,j,espai; for (i=1; i<=m;i++); { for (espai=1; espai<=m-i;espai++); { printf(" "); } for (j=1;j<=m*2-1;j++); { if (i==1 || i==m) { printf("%c",carac); } else { printf(" "); } } printf("n"); } }
El calcul trianglebuit no me printa nada :S
21
« en: Miércoles 21 de Enero de 2009, 22:42 »
#include<stdio.h> void suma(int num1, int num2); void calculden(int, int, int *resul); void calculnum(int num1, int num2,int resulden,int den1,int den2, int *sumnumtotal); void mcd(int dividendo, int divisor, int *resul); void mcm(int dividendo, int divisor, int resul, int *resulmcm); int main() { int num1,num2,den1,den2,resul,resulden,resulmcm,sumnumtotal; printf("Programa que cacula el resultat de la suma de dues fracciones. n"); printf("n"); printf("n"); printf("Introdueix el numerador de la primera fraccio: n"); scanf("%d", &num1); printf("Introdueix el denomirador de la primera fraccio: n"); scanf("%d", &den1); printf("Ahora la segona fraccio. n"); printf("Introdueix el numerador de la segona fraccio: n"); scanf("%d", &num2); printf("Introdueix el denominador de la segona fraccio: n"); scanf("%d", &den2); if (den1 == den2) { printf("La suma de les fraccions dona com a resultat: %d/%d n", num1+num2,den1); getchar(); getchar(); } else { calculden(den1,den2, &resul); calculnum(num1,num2,resulmcm,den1,den2,&sumnumtotal); printf("La suma de les fracciones dona com a resultat: %d/%d n", sumnumtotal,resul); getchar(); getchar(); } } void calculden(int den1, int den2, int *resulmcm) { int dividendo1; if (den1 > den2) { mcd(den1,den2,*dividendo1); mcm(den1,den2,dividendo1,*resulmcm); } else { mcd(den2,den1,*dividendo1); mcm(den2,den1,dividendo1,*resulmcm); } } void mcd(int dividendo1, int divisor, int *resul) { int aux; do { aux = divisor; divisor = dividendo1 % divisor; dividendo1 = aux; }while (divisor != 0); *resul=dividendo1; } void mcm(int dividendo, int divisor, int resul,int *resulmcm) { *resulmcm=(dividendo*divisor)/resul; } void calculnum(int num1,int num2, int resulden, int den1, int den2, int *sumnumtotal) { int sumnum1,sumnum2; sumnum1=num1*resulden/den1; sumnum2=num2*resulden/den2; *sumnumtotal=sumnum1+sumnum2; }
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
« en: Lunes 19 de Enero de 2009, 22:45 »
#include<stdio.h> int suma(int num1, int num2); int calculden(); int calculnum(int num1, int num2,int resulden,int den1,int den2); int mcd(int dividendo,int divisor); int mcm(int dividendo,int divisor,int dividendo1); int main() { int num1,num2,den1,den2,resul,resulden,resulnum; printf("Programa que cacula el resultat de la suma de dues fracciones. n"); printf("n"); printf("n"); printf("Introdueix el numerador de la primera fraccio: n"); scanf("%d", &num1); printf("Introdueix el denomirador de la primera fraccio: n"); scanf("%d", &den1); printf("Ahora la segona fraccio. n"); printf("Introdueix el numerador de la segona fraccio: n"); scanf("%d", &num2); printf("Introdueix el denominador de la segona fraccio: n"); scanf("%d", &den2); if (den1 == den2) { printf("La suma de les fraccions dona com a resultat: %d/%d n", num1+num2,den1); getchar(); getchar(); } else { resulden=calculden(); resulnum=calculnum(num1,num2,resulden,den1,den2); printf("La suma de les fracciones dona com a resultat: %d/%d n", resulnum,resulden); getchar(); getchar(); } } int calculden() { int num,i,resulmcm,dividendo1; int dividendo=num, divisor=num; printf("Introduce el primer denominador: n"); scanf("%d", &num); for (i = 1; i <= 2; i++) { if (num > dividendo) { dividendo = num; printf("Introduce el segundo denominador: n"); scanf("%d", &num); } else if (num < dividendo) { divisor = num; } } dividendo1=mcd(dividendo,divisor); resulmcm=mcm(dividendo,divisor,dividendo1); return resulmcm; } int mcd(int dividendo1, int divisor) { int aux; do { aux = divisor; divisor = dividendo1 % divisor; dividendo1=aux; }while (divisor != 0); return dividendo1; } int mcm(int dividendo, int divisor, int dividendo1) { int resulmcm; resulmcm=(dividendo*divisor)/dividendo1; return resulmcm; } int calculnum(int num1,int num2, int resulden, int den1, int den2) { int sumnumtotal,sumnum1,sumnum2; sumnum1=num1*resulden/den1; sumnum2=num2*resulden/den2; sumnumtotal=sumnum1+sumnum2; return sumnumtotal; }
Queria saber como puedo arreglar el calculden para que no me tenga q introducir de nuevo los denominadores.
23
« en: Sábado 17 de Enero de 2009, 12:28 »
#include<stdio.h> float velocitat(); float distancia(); float temps(); int menu(); int main() { int opcion; int fin; float resultat; fin = 0; do { opcion = menu(); switch (opcion) { case 1: resultat=velocitat(); printf("La velocitat es %0.2f Km/h n", resultat); break; case 2: resultat=distancia(); printf("La distancia que a recorregut el tren es: %0.2f Km n", resultat); break; case 3: resultat=temps(); printf("El temps que a trigat el tren en fer %0.2f kilomtres es: %0.2f hores n", distancia,resultat); break; case 4: fin=1; break; default: printf("Opcio incorrecta n"); break; } if (!fin) { printf("nn"); getchar(); getchar(); } }while (!fin); } int menu() { int op; printf("Indica quina es l'incognita que vols saber:n"); printf("1) Velocitat del tren n"); printf("2) Distancia entre A i B n"); printf("3) Temps de recorregut n"); printf("4) Salir n"); do { printf("Elija una opción: "); scanf("%d", &op); if ((op != 1) && (op !=2) && (op != 3) && (op != 4)) { printf("Opcio incorrecte n"); } }while (op < 1 || op > 4); return op; } float velocitat() { float distancia,temps,resultat; printf("Programa que calcula la velocitat del tren n"); printf("n"); printf("n"); printf("Digues la distancia en kilometres: n"); scanf("%f", &distancia); printf("Digues el temps en hores: n"); scanf("%f", &temps); resultat=distancia*temps; return resultat; } float distancia() { float velocitat,temps,resultat; printf("Programa que calcula la distancia que a recorregut el tren n"); printf("n"); printf("n"); printf("A quina velocitat anaba el tren: n"); scanf("%f", &velocitat); printf("Quant de temps a trigat: n"); scanf("%f", &temps); resultat=velocitat*temps; return resultat; float temps() { float distancia,velocitat,resultat; printf("Programa que calcula el temps a trigat el tren en realitzar un recorregut: n"); printf("n"); printf("n"); printf("Quina distancia a recorregut el tren: n"); scanf("%f", &distancia); printf("A quina velocitat anaba el tren: n"); scanf("%f", &velocitat); resultat=distancia/velocitat; return resultat; }
Alguien sabe pq en la linea 98 float temps(), me dice que espera un ; antes de float
24
« 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
« en: Martes 6 de Enero de 2009, 20:16 »
#include<stdio.h> int dibuixa_piramide(int alcada); int linea(char caracter, int alcada); int main() { int alcada,p; printf("Programa que dibuixa una piramide de asterics depenent de l'alcada que fiqui l'usuari.n"); printf("n"); printf("n"); printf("Introdueix l'alcada:n"); scanf("%d", &alcada); p=dibuixa_piramide(alcada); getchar(); getchar(); } int dibuixa_piramide(int alcada) { int files,simbols,espai,l; char caracter; printf("Introdueix el caracter que vols utilitzar: n"); fflush(stdin); scanf("%c", &caracter); for (files = 1; files<=alcada; files++) l=linea(caracter,alcada); } int linea(char caracter, int alcada) { int espai,files,simbols; for (espai=1; espai<=alcada-files; espai++) { printf(" "); } for (simbols = 1; simbols<=files*2-1; simbols++) { printf("%c",caracter); } printf("n"); }
Alguien sabe pq una vez introduzco el caracter, se me cierra el programa.
|
|
|