• Sábado 20 de Abril de 2024, 05:36

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.


Mensajes - party_metal

Páginas: [1]
1
Pascal / Re: Contar palabras
« en: Martes 10 de Marzo de 2009, 22:49 »
Ya lo he solucionado.

Gracias!

2
Pascal / Contar palabras
« en: Lunes 9 de Marzo de 2009, 00:33 »
Hola estoy haciendo un programa que pida una frase al usuario y cuente las palabras que hay.
He hecho esto pero me doy cuento que si dan mas de 1 espacio entre las palabras me las cuenta mal...
¿Alguién sabe que tengo que añadir para capar eso?

Gracias

Código: Pascal
  1.  
  2. program palabras;
  3. var
  4.  texto:string;
  5. function contarpalabras (cad:string):integer;
  6. var
  7.  cont,i:integer;
  8. begin
  9.  cont:=0;
  10.  for i:=1 to length(cad) do
  11.   if (cad[i]<>' ') then
  12.    read(cad[i])
  13.    else
  14.     if (cad[i]=' ') then
  15.     begin
  16.      cont:=cont+1;
  17.      read(cad[i]);
  18.     end;
  19.  contarpalabras:=cont+1;
  20. end;
  21. begin
  22. writeln('dame la frase');
  23. readln(texto);
  24. writeln('son',contarpalabras(texto),'palabras');
  25. readln;
  26. end.
  27.  
  28.  

3
Pascal / Re: Numeros combinatorios
« en: Viernes 6 de Marzo de 2009, 02:02 »
Hola?
Lógico porque yo no estoy metiendo numeros reales porque evidentemente todo está hecho con integers y aparte cuando puse que meto 8,1 quiere decir n=8 y k=1...
De todas maneras gracias pero ya he solucionado el problema. Lo que pasa es que al ser un factorial tan grande poniendo las varibles como integer se excede de rango y me salen cosas raras... :)

4
Pascal / Numeros combinatorios
« en: Miércoles 4 de Marzo de 2009, 22:04 »
Hola estoy programando que dados n y k introducidos por el usuario te devuelve el numero combinatorio con la formula (n,k)=n!/k!(n-k)!
He hecho esto que funciona pero para numeros en plan 8,1 o 9,3 osea con n>=8 no me funciona...
¿Alguna pista?
Gracias!
Código: Pascal
  1.  
  2. program lost;
  3. var
  4.  g,h,resul2:integer;
  5.  esValido:boolean;
  6. procedure opcion_user_combinatorio( var n:integer; var k:integer);
  7.  {Datos:Se introduce la n y k del numero combinatorio}
  8.  {Devuelve:}
  9.   begin
  10.    writeln('Introduce un numero entero que ser  la n del numero combinatorio');
  11.    readln(n);
  12.    writeln('Introduce un numero entero que ser  la k del numero combinatorio');
  13.    readln(k);
  14.   end;
  15.  
  16.  function validar_dato_combinatorio(n,k:integer):boolean;
  17.   {Datos:n y k}
  18.   {Devuelve:La validaci¢n de n y k con un booleano}
  19.    begin
  20.   validar_dato_combinatorio:=(n >= k);
  21.    end;
  22.  
  23.  function evaluar_numero_combinatorio( n,k :integer):integer;
  24.   var
  25.    numerador,denominador:integer;
  26.    function factorial(n:integer):integer;
  27.     var
  28.      aux,i:integer;
  29.     begin
  30.      aux:=1;
  31.      for i:=n downto 1 do
  32.       aux:=aux*i;
  33.      factorial:=aux;
  34.     end;
  35.    begin
  36.     numerador:=factorial(n);
  37.     denominador:=factorial(k)*factorial(n-k);
  38.     evaluar_numero_combinatorio:=numerador div denominador;
  39.    end;
  40.  procedure mostrar_combinatorio(evaluar_numero_combinatorio:integer);
  41.   begin
  42.    writeln('El resultado es',evaluar_numero_combinatorio);
  43.   end;
  44. {programa principal}
  45. begin
  46.       opcion_user_combinatorio(g,h);
  47.       esValido:=validar_dato_combinatorio(g,h);
  48.       if esValido then
  49.        begin
  50.         resul2:=evaluar_numero_combinatorio(g,h);
  51.         mostrar_combinatorio(resul2);
  52.        end
  53.       else
  54.        writeln('Datos introducidos incorrectos');
  55. readln;
  56. end.
  57.  
  58.  

5
Pascal / Re: Subprograma nombre de cartas de la baraja española
« en: Miércoles 4 de Marzo de 2009, 13:24 »
Cierto es!! :o
Muchas gracias!!

6
Pascal / Subprograma nombre de cartas de la baraja española
« en: Martes 3 de Marzo de 2009, 21:52 »
Hola soy nuevo y estoy programando el siguiente ejercicio.
Las cartas de la baraja española pueden representarse mediante un nú-
mero entre uno y cuarenta. En esta representación, las cartas del palo de
oros tendrán sus valores entre 1 y 10. Las del de copas entre 11 y 20, espadas
entre 21 y 30, y las de bastos entre 31 y 40. Dentro de cada palo, el primer
número corresponderá al as, el segundo al dos, y así sucesivamente hasta el
último que representa al rey.
Con esta representación, al seis de copas le corresponderá el 16, al caballo
de espadas el 29 y a la sota de bastos el 38.
Implementar un subprograma que pregunte al usuario un número entre 1
y 40 y escriba por pantalla la carta de la baraja y el palo al que corresponde
Código: Pascal
  1.  
  2. function devuelveCarta(n:integer):string;
  3.    var
  4.     aux:string;
  5.     unidad:integer;
  6.    begin
  7.      unidad:=n mod 10;
  8.      case unidad of
  9.       1:aux:='El As de';
  10.       8:aux:='La Sota de';
  11.       9:aux:='El Caballo de';
  12.       0:aux:='El Rey de';
  13.      else
  14.       aux:='El n de';
  15.      end;{end case}
  16.  
  17.     case n of
  18.      1..10: devuelveCarta:=aux+'Oros';
  19.      11..20:devuelveCarta:=aux+'Copas';
  20.      21..30:devuelveCarta:=aux+'Espadas';
  21.      31..40:devuelveCarta:=aux+'Bastos';
  22.     end;{end case}
  23.  end;
  24.  
  25.  
Centrandome en la función en sí y de momento no validando la entrada y mostrando la salida, llevo esto, pero me acabo de dar cuenta de que en el primer case cuando entra al else realmente me escribre "El n de" y no si fuera n=8 "El 8 de" y nose como puedo luego concatenarlo con el 2ºcase sin ponerlo como una variable...
¿Alguíen me puede ayudar o dar alguna pista?
Gracias!

Páginas: [1]