23. april 2004 - 19:57Der er
19 kommentarer og 2 løsninger
BMI program
Jeg skal have lavet et lille program på programmeres i alle sprog. Det kan være lige fra en hjemmesige til et program.
Programmet handler om BMI og skal bruges i skole sammenhæng. Som bruger af det skal man kunne indtaste sin højde og så indtaste en vægt et n antal gange. Programmet skal så regne en bmi ud og vise det på skærmen, samt vise en graf, hvos man kan se om man er steget eller faldet.
kan kun give point ( er ikke sikker på kategorien )
BMI: Body Mass Index Det er vist vægten delt med (højden*højden), hvis jeg husker ret. Vægten skal måles i kg og højden i meter.
Du skriver: "Man skal kunne indtaste sin vægt mange gange Betyder det, at man over lang tid indtaster sin vægt, og programmet gemmer så løbende det indtastede? Man kan hele tiden få vist en graf over sit BMI som funktion af tiden?
Hvis det skal være en hjemmeside, vil det ikke være så let at få gemt de indtastede data, med mindre der benyttes ASP. Det grafiske skulle så laves ved at benytte noget Java-grafik. Hvis du vil opgive, at data gemmes, kan det være en hjemmeside med Java-grafik.
Det ville også være ret let, at lave et lille Visual Basic program, der gjorde det ønskede.
Kan du selv programmere lidt, eller skal du have det hele serveret på "et sølvfad" fikst og færdigt?
Har du adgang til f.eks. regnearket Excel fra Microsoft? Her vil du både kunne gemme dine data samt få lavet en graf af dine data.
Jeg kan også let lave et lille VBscript, hvor du kan indtaste dine data og efterfølgende få udskrevet BMI. Men det ville være uden grafik. Nu er jeg ved at smutte for i aften, men i morgen kan jeg have et sådant program klar. F.eks. kunne man gemme dato og vægt, og når man bad om det fik man vist dato, vægt og BMI for de forskellige indlæsninger. Ville det have din interesse?
nej, kan man ikke lave det sådan, at hvis du laver det i excel. Skal man bare kunne give flere mennesker filen også kan de bruge det på deres computer. Deres data kan jo så bare gemmes p deres computer.
Nå, jeg fik ikke lavet noget i dag. Jeg har været ude at nyde det gode vejr. :o) Men i morgen vil jeg komme med et forslag baseret på VBscript. Jeg er gået bort fra et excel-regneark.
Her er så et forslag. Du skal gemme al teksten i mit svar i en tekstfil. Brug notepad.exe. Kald filen BMI.vbs Gem den i et katalog (mappe)efter eget valg. Hvis du klikker på filen BMI.vbs, vil du første gang, du gør det, blive bedt om at indtaste dit navn og derefter din højde i centimeter. Derefter bliver du spurgt om, du vil indlæse din vægt. Når det er sket vil der blive vist en liste, der viser datoen, samt vægten og BMI-indexet den pågældende dato. Næste gang vil du kun blive bedt om at indtaste din vægt.
function FileExists() if fso.FileExists("BMIdata.txt") then FileExists=True else FileExists=False end if end function
sub CreateFile() dim name, height, ok name=InputBox("Indlæs dit navn: ") ok=false do height=InputBox("Indlæs din højde i centimeter: ") if isNumeric(height) then height=CInt(height) if height<250 and height>50 then ok=true else MsgBox "Højden skal være et tal mellem 50cm og 250cm" end if else MsgBox "Fejl! Højden skal være et tal mellem 50 og 250" end if loop until ok set stream=fso.OpenTextFile("BMIdata.txt",8,true) stream.writeline(name) stream.writeline(height) stream.close end sub
sub Getweight() dim ok, weight ok=InputBox("Ønsker du at indlæse din vægt? (j/n) ")="j" if ok then do ok=false weight=InputBox("Indlæs din vægt i kg: ") if isNumeric(weight) then weight=Csng(weight) if weight<250 and weight>10 then ok=true else MsgBox "Vægten skal være et tal 10kg og 250kg" end if else MsgBox "Fejl! Vægten skal være et tal mellem 10 og 250" end if loop until ok set stream=fso.OpenTextFile("BMIdata.txt",8,true) stream.writeline(date & ";" & formatnumber(weight,1)) stream.close end if end sub
sub ShowBMI() dim name, height, txt, A, BMI dim BMIdata, i, N, Nmax, BMIini Nmax=30 Set stream=fso.openTextFile("BMIdata.txt") name=stream.readline() height=Csng(stream.readline()) BMIini=Name & " " & "Højde: " & height & VBCrLf BMIini=BMIini & "Dato " & "Vægt " & "BMI" & VBCrLf BMIdata=BMIini while not stream.AtEndOfStream txt=stream.readline() A=split(txt,";") BMI=formatnumber(Csng(A(1))*10000/(height*height),1) for i=1 to 5-len(A(1)) A(1)=" " & A(1) next BMIdata=BMIdata & A(0) & ": " & A(1) & " " & BMI & VBCrLf N=N+1 if N=Nmax then N=0 Msgbox BMIdata BMIdata=BMIini end if wend if N>0 then msgbox BMIdata end sub
Set fso=CreateObject("Scripting.FileSystemObject") if FileExists() then GetWeight() else CreateFile() Getweight() end if
Bemærkninger: Der bliver lavet en fil med navnet BMIdata.txt. Her gemmes brugerens navn og højde samt for hver indtastning datoen og vægten den pågældende dag. MAn få vist alle data, når man kører programmet. Men jeg tænker, at man normalt kun indtaster data en gang eller to om ugen. Man får vist 30 indtastninger ad gangen.
Med en graf? Man kunne godt få det vist som en hjemmeside i Internet Explorer, men det ville så involvere brugen af Java. Jeg har engang lavet en grafikpakke i Java. Alternativet var at skrive det i Visual Basic.
Begge dele vil være noget mere tidkrævende, og det vil være nødvendigt at maile nogle filer til dig.
du kan bare give mig din msn så kan du sende mig dem der. programmet virker, men lærer vil gerne have der også kom en graf med i programmet, fordi brugeren så lettere ville kunne se om han /hun var steget
du kan få min jubiimail og så kan jeg give dig min rigtige der(grund spam og junk). hvor når vil du afslutte det, fordi jeg skal snart bruge det. Min mail er casper-hansen@jubiimail.dk
Så, nu har jeg sendt dig et Visual Basic program, der kan det hele. Vi plejer at sige, at alt her på eksperten skal være tilgængeligt for alle. Så hvis der er nogle, der vil have dettte program, skal de blot lægge en E-mail adresse her.
Takker for point. Skriv endelig, hvis du har flere spørgsmål til programmet.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.