Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-01-2013
cesar.zapata cesar.zapata is offline
Registrado
NULL
 
Registrado: oct 2012
Posts: 7
Poder: 0
cesar.zapata Va por buen camino
Ayuda con programa de resistencias

Hola soy nuevo en programacion delphi y me han enviado este trabajo para la universidad .
Alguien que me heche una mano ?
Cada semana el jefe de producción decidirá un número máximo de resistencias a
controlar (numMaxRe = S5) y sus valores (en kOhm). Por ejemplo: 1kOhm, 4,7 kOhm,
1000 kOhm (equivalente 1MOhm). En este caso, 3 valores diferentes.
2. Se desea realizar los controles todos los días de la semana (podéis imaginar 1 a 5).
Así, durante la semana, cada día se extraerán muestras de cada una de las resistencias tipo de
la semana y entrarán los valores medidos.
Al final de la semana se suele ∙ licitarán los informes correspondientes.
En definitiva, se trata de hacer una memoria donde se incluya:
1. Diseño de la estructura de datos
2. Definir un tipo tDadesQualitat que incluirá todas del datos de la semana.
3. Diseñar y escribir acciones para:
a. Inicializar la estructura cada semana, admiten "cuántas" resistencias
examinarán esta semana (entre 1 y 5) y sus valores. Acción en forma de
procedure pInicialitzaEstructura. Este procedimiento también inicializará a
cero los contadores de datos entradas de cada resistencia.
b. Acción en forma de procedure para añadir a la estructura global un valor medido
de un tipo de resistencia y un día (por ejemplo valor nominal = 4,7. / día = 3 /
valor medido = 4,9). Si el valor nominal no existe debería dar un MSG
de error. Se trata del procedure pAfegirDada
c. Acción en forma de procedure que recibe una estructura, un día y un valor nominal
y devuelve el valor max, min y promedio. Procedure pDadesDia.
d. Acción en forma de función que dado un día y un valor nominal de resistencia,
llama a pDadesDia y devuelve la tolerancia de esa resistencia en ese día.
fToleranciaDia
Responder Con Cita
  #2  
Antiguo 03-01-2013
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Saludos Cesar,

Cuentame, ¿que es lo que estudias?
Responder Con Cita
  #3  
Antiguo 04-01-2013
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Y la consulta cual es?...

Ya que aquí no se realizan las tareas de nadie...

Date una vuelta por la Guía de estilo

Saludos cordiales
Responder Con Cita
  #4  
Antiguo 04-01-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Muy interesante ese trabajo, supongo que ya lo tienes casi terminado y hay algunas cositas que no van bien, pues pon el código que lo veamos y explica el problema o la duda que tengas, así se te podrá ayudar.
Responder Con Cita
  #5  
Antiguo 06-01-2013
cesar.zapata cesar.zapata is offline
Registrado
NULL
 
Registrado: oct 2012
Posts: 7
Poder: 0
cesar.zapata Va por buen camino
La consulta es que el profesor nos ha pedido que cuando introducimos los datos sean en datos de STRING y cuando estos datos sean validados se conviertan el NUMEROS REALES
seria como una procedure pero no cuando hago la procedure no me responde el programa. Algun consejo ?
Responder Con Cita
  #6  
Antiguo 06-01-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pon el código fuente, que lo veamos.
Responder Con Cita
  #7  
Antiguo 06-01-2013
cesar.zapata cesar.zapata is offline
Registrado
NULL
 
Registrado: oct 2012
Posts: 7
Poder: 0
cesar.zapata Va por buen camino
Esto es lo que tengo avanzado ..
pero aun tengo q organizar lo del tema de la entrada de datos por STRING
En definitiva, es tracta de fer una memòria on s’inclogui:
1. Disseny de l’estructura de dades
2. Definir un tipus tDadesQualitat que ha d’incloure totes del dades de la setmana.
3. Dissenyar i escriure accions per tal de:
a. Inicialitzar l’estructura cada setmana, admeten “quantes” resistències
s’examinaran aquesta setmana (entre 1 i 5) i els seus valors. Acció en forma de
procedure pInicialitzaEstructura. Aquest procediment també inicialitzarà a
zero els comptadors de dades entrades de cada resistència.
b. Acció en forma de procedure per afegir a l’estructura global un valor mesurat**
d’un tipus de resistència**i un dia (per exemple valor nominal = 4,7./ dia = 3/
valor mesurat = 4,9). Si el valor nominal no existeix hauria de donar un MSG
d’error. Es tracta del procedure pAfegirDada
c. Acció en forma de procedure**que rep una estructura, un dia i un valor nominal
i torna el**valor max, min i promig. Procedure pDadesDia.
d. Acció en forma de funció que donat un dia i un valor nominal de resistència,
crida a pDadesDia i torna la tolerància d’aquella resistència en aquell dia.
fToleranciaDia.
PD NO PIDO QUE ME HAGAIS EL DPR , SOLO QUE SI TENEIS TIEMPO ME HECHEIS UNA MANO CON LO DE INTRODUCIR LOS DATOS CON STRINGS.
GRACIAS
Archivos Adjuntos
Tipo de Archivo: zip 1.zip (1,5 KB, 2 visitas)
Responder Con Cita
  #8  
Antiguo 06-01-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Puedes poner aquí el código, no hace falta un un archivo adjunto. Lo copio y lo pego:

Código Delphi [-]
 program eix4s13VERSIONOK; 
 
{$APPTYPE CONSOLE} 
 
uses 
  SysUtils; 
 
CONST 
     nMAx = 100; 
     marca = -1; 
     nominalMax=10000; 
TYPE 
 
    tnumMostres = 1..nMax; 
    tmostres = ARRAY[tnumMostres] OF REAL; 
    tMostradia =  RECORD 
                    nCont: 0..nMax; 
                    dades: tMostres; 
 
                     END; 
    Tindex=1..nominalMax; 
    tLlista=ARRAY [TIndex]of REAL ; 
 
 
 VAR 
      mevaLlista: tMostradia; 
      miLlista:TLlista; 
     tolerancia,max, min: REAL; 
      numNominal:TLlista; 
   // ----------------------------------------- 
    PROCEDURE LlegirLlista( OUT unaLlista:tMostradia); 
     VAR 
            mostres, i: integer; 
      BEGIN 
       i:=0 ; 
           REPEAT 
            Write('- Entri una mostra i premi ENTER: ',i+1:3,'= '); 
            Readln(mostres); 
              IF mostres <> marca 
               THEN 
                BEGIN 
                  i:= i+1; 
                  unaLlista.dades[i]:= mostres; 
                END; 
           UNTIL (mostres = marca) OR (i=nMAx); 
           unaLlista.nCont:=i; 
            writeln('>  Memoria llena presione ENTER   <'); readln; 
 
      END; 
    // ------------------------------------------- 
    PROCEDURE MostrarLlista (unaLlista: tMostradia); 
      VAR i:INTEGER; 
        BEGIN 
           i:=1; 
        FOR i:=1 TO mevaLlista.nCont 
             DO 
               BEGIN 
                    Writeln('Mostra ', i:3, '=', mevaLlista.dades[i]:6:2); 
 
               END; 
               i:= i +1  ; 
 
        END; 
    // --------------------------------------------- 
       FUNCTION fPromig(unaLlista:tMostradia): REAL; 
           VAR 
        i: INTEGER; 
        s: REAL; 
          BEGIN 
            i:=1; 
            s:=0; 
          FOR i:=1 TO unaLlista.nCont 
            DO 
 
             s:= s + unaLlista.dades[i]; 
 
 
            i:=i+1; 
 
           RESULT:=(s/unaLlista.nCont); 
 
    END; 
 
    // --------------------------------------------- 
       PROCEDURE pMaxMin(unaLlista:tMostradia; OUT unMAX, unMIN: REAL); 
          VAR 
            i:INTEGER; 
 
         BEGIN 
            i:=1; 
 
          FOR i:=1 TO unaLlista.nCont 
          DO 
            BEGIN 
             IF unaLlista.dades[i] < unMIN 
            THEN 
              unMIN:= unaLlista.dades[i] 
            ELSE 
             IF unaLlista.dades[i] > unMAX 
              THEN 
               unMAX:= unaLlista.dades[i]; 
 
             END; 
             i:= i+1 ; 
        END; 
 
    // ------------------------------------------ 
 
        FUNCTION fTolerancia (unaLlista:tMostradia):real; 
        var 
          tol, tolmax,tolmin,max,min:real; 
 
 
 
          begin 
 
          pMaxMin(unaLlista,max,min); 
          tolmax:=abs(unaresist-max); 
          tolmin:=abs(unaresist-min); 
          if tolmax > tolmin 
           THEN 
           tol:=tolmax 
           else 
            tol:=tolmin; 
            fTolerancia:=tol; 
            end; 
 
    // --------------------------------------------- 
 // REeordar que "mevaLlista" és una variable GLOBAL (MEVA !!!) 
 
begin 
  Writeln('ALUMNO:CESAR ZAPATA'); 
  Writeln('PROFESOR : FERRAN VIRGOS'); 
  Writeln('GRUPO : T44'); 
  Writeln('                                '); 
  Writeln('Programa que registra muestras y  '); 
  Writeln('da el calculo  promedio, un  maxim i un minimo'); 
  writeln; 
  Writeln('# Introduce las muestras hasta un maximo de ',nMAx,' registros #'); 
  Writeln('# Para finalizar la introduccion de notas poner una nota con el valor: ',marca,' #'); 
  writeln; 
 
  LlegirLlista ( mevaLlista ); 
 
  Writeln; Writeln ('MUESTRAS') ; 
 
  MostrarLlista (  mevaLlista ); 
 
 
  // aqui deixem espai per les crides a funció fpromig i PROCEDURE pMinMax 
 
  Writeln; Writeln('el promedio  es: ' ,fPromig(mevaLlista):6:2); 
 
  pMaxMin(mevaLlista, max, min); 
 
  Writeln ('El Max es: ', max:6:2,' i el Min es: ', min:6:2); 
   
 
   tolerancia:=(ftolerancia(mevaLlista))/100; 
 
  Writeln('Y para finalizar mostramos la tolerancia :',tolerancia:8:4); 
 
 
  // ------------------------------------------ 
 
//  FINAL  ---------------------------------------------------------- 
    Writeln; 
    Writeln; 
    Writeln('GRACIAS POR USAR ESTE PROGRAMA '); Writeln; 
    Write('Prem ENTER per sortir'); 
    Readln; 
end.
Responder Con Cita
  #9  
Antiguo 06-01-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
La verdad es que no he entendido el problema que tienes con lo de "introducir los datos con strings"
Responder Con Cita
  #10  
Antiguo 07-01-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
cesar.zapata,

Cita:
Empezado por cesar.zapata
La consulta es que el profesor nos ha pedido que cuando introducimos los datos sean en datos de STRING y cuando estos datos sean validados se conviertan el NUMEROS REALES
Cita:
Empezado por cesar.zapata
NO PIDO QUE ME HAGAIS EL DPR , SOLO QUE SI TENEIS TIEMPO ME HECHEIS UNA MANO CON LO DE INTRODUCIR LOS DATOS CON STRINGS
Revisa este código:
Código Delphi [-]
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils, Dialogs;

type
   TData = record
      Fecha : Integer;
      Data1 : String;
      Data2 : Integer;
      Data3 : Double;
   end;

var
   Data : Array of TData;
   Input : String;
   CountData : Integer;
   i : Integer;

procedure LoadData;
begin

   Write('Cantidad de Datos a Ingresar: ');
   Readln(Input);
   CountData := StrToInt(Input);

   SetLength(Data,CountData);

   for i := 0 to CountData-1 do
   begin

      Write('Input Fecha en formato AAAAMMDD: ');
      Readln(Input);
      Data[i].Fecha := StrToInt(Input);

      Write('Input Data1 (String): ');
      Readln(Input);
      Data[i].Data1 := Input;

      Write('Input Data2 (Integer): ');
      Readln(Input);
      Data[i].Data2 := StrToInt(Input);

      Write('Input Data3 (Float): ');
      Readln(Input);
      Data[i].Data3 := StrToFloat(Input);

   end;

end;

begin
   LoadData;
end.
El código anterior permite cargar N datos por medio de una variable String y posteriormente asignar dichos valores a variables en un arreglo de registros con sus tipos correspondientes por medio de funciones de conversión. Quizás puedas aplicar la idea general a tu proyecto.

Revisa estos links:
Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 07-01-2013 a las 00:40:36.
Responder Con Cita
  #11  
Antiguo 07-01-2013
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Eso es lo otro, ¿que tipos de datos han estudiado o te permiten usar?. Lo pregunto por si no te han pasado el uso de arreglos, no te permitan hacerlo.

Cuando estudiante, nos pidieron harcer un video juego (me toco el Arcanoid...). Como no me pasaron los punteros, tuve que arreglarmelas con registros y arreglos (hasta me hice un editor de niveles).

Lo mismo me ocurrio antes de eso en otro trabajo (un calendario en pantalla). Como no me pasaron arreglos, me las ingeníe usando string como tales (Mes[x] por ejemplo).

La idea fue magistral y funciono a la perfección. Lo malo es que la profesora era muy ignorante, ni siquiera sabia programar, todo lo evaluaba a base de una platilla hecha por otro estudiante y si no calzaba te daba mala calificación. Así fue como me reprobo el trabajo con un "no supe lo que hiciste aquí...).
Responder Con Cita
  #12  
Antiguo 07-01-2013
cesar.zapata cesar.zapata is offline
Registrado
NULL
 
Registrado: oct 2012
Posts: 7
Poder: 0
cesar.zapata Va por buen camino
Muchas gracias ! Señores de verdad a todos los que me habeis aportado algo , estoy terminando de hacer el algoritmo principal , estaremos en contacto.
Responder Con Cita
  #13  
Antiguo 07-01-2013
cesar.zapata cesar.zapata is offline
Registrado
NULL
 
Registrado: oct 2012
Posts: 7
Poder: 0
cesar.zapata Va por buen camino
Alguna WEb con ejemplos de algoritmos ?
Responder Con Cita
  #14  
Antiguo 07-01-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Qué parte no has entendido?
Responder Con Cita
  #15  
Antiguo 07-01-2013
cesar.zapata cesar.zapata is offline
Registrado
NULL
 
Registrado: oct 2012
Posts: 7
Poder: 0
cesar.zapata Va por buen camino
Tengo un problema por que ahora me piden que con lo que tengo hecho , es decir el calculo de maximo , minimo , y promedio , hago un nuevo programa con una serie de lecturas de resistencias , pero a la vez me piden que añada la fecha de cada analitica de esas resistencias .. y ya directamente no se como empezar
Responder Con Cita
  #16  
Antiguo 07-01-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
cesar.zapata,

Cita:
Empezado por cesar.zapata
Alguna WEb con ejemplos de algoritmos ?
Revisa estos links:
Cita:
Empezado por cesar.zapata
Tengo un problema por que ahora me piden que con lo que tengo hecho , es decir el calculo de maximo , minimo , y promedio , hago un nuevo programa con una serie de lecturas de resistencias , pero a la vez me piden que añada la fecha de cada analitica de esas resistencias
Revisa el ejemplo que te sugerí en el Mensaje 10, es una forma general de manejo de data que se puede adaptar a tu proyecto.

Espero sea útil

Nelson.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda Con Un Programa darnnezt Varios 8 16-03-2011 11:33:50
Ayuda con Programa en C++ yelian C++ Builder 34 15-11-2008 01:37:57
Ayuda con un programa kanedor Varios 6 14-05-2008 17:48:53
Ayuda con programa jorgegetafe Varios 4 07-12-2007 12:38:33
Ayuda con programa de C megadanzig C++ Builder 7 19-03-2004 19:26:48


La franja horaria es GMT +2. Ahora son las 22:35:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi