|
| Kan jeg bede og nogle gode ideer til denne~ Fra : G42 |
Dato : 03-01-02 16:36 |
|
Hej alle jeg er nybegynder i C-programmering.
Jeg startede på det i går. Men allerede finder jeg det meget interessant.
Jeg startede også med det gode "Hallo World" program...
Nu har jeg lavet en lille en, som omformer en mulig fahrenheit grad/tal til
Celsius..
Men jeg vil gerne udvide det lidt.
Den skal vendes om, og der skal helst være en spørgelse om
det skal være Celsius -> Fahrenheit eller Fahrenheit -> Celsius.
fx. noget med tryk C for Celsius og F for Fahrenheit.
Er der nogle gode ideer til hvordan jeg får det gjort.
Min fortløbende kode er som følger:
/* procent3.c promt fortal og beregn Celsius/Fahrenheit.*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main ()
{
int resultat;
int fahrenheit;
char inputlinie[800];
clrscr ();
printf("Beregning af celsius\n\n");
while (printf("Input Fahrenheit:"), fgets(inputlinie,800,stdin) !=NULL)
{
fahrenheit = atoi (inputlinie);
resultat = 5 * (fahrenheit - 32) /9;
printf("Resultat i Celsius er: %d\n\n\n", resultat);
getch ();
clrscr ();
}
return 0;
}
Venlig hilsen
Gugge
| |
Morten Brix Pedersen (03-01-2002)
| Kommentar Fra : Morten Brix Pedersen |
Dato : 03-01-02 16:52 |
|
G42 wrote:
> Hej alle jeg er nybegynder i C-programmering.
> Jeg startede på det i går. Men allerede finder jeg det meget interessant.
> Jeg startede også med det gode "Hallo World" program...
>
> Nu har jeg lavet en lille en, som omformer en mulig fahrenheit grad/tal til
> Celsius..
>
> Men jeg vil gerne udvide det lidt.
>
> Den skal vendes om, og der skal helst være en spørgelse om
> det skal være Celsius -> Fahrenheit eller Fahrenheit -> Celsius.
>
> fx. noget med tryk C for Celsius og F for Fahrenheit.
>
> Er der nogle gode ideer til hvordan jeg får det gjort.
Lav 2 funktioner, den ene funktion beregner fra C til F, den anden
beregner fra F til C.
Når bruger skriver 'C', så kalder den C->F funktionen som returnerer
værdien i fahrenheit.
Dummy kode:
if (input == "C") {
int result = toFahrenheit(input2)
printf("Resultat i Fahrenheit er: %d\n, result);
} else if (input == "F") {
int reslut = toCelcius(input2);
printf("Resultat i Celcius er: %d\n, result);
}
- Morten.
| |
G42 (04-01-2002)
| Kommentar Fra : G42 |
Dato : 04-01-02 11:45 |
|
Jeg er stadig meget i tvivl.
Den laver fejl ved " if " linien. bl.a
Kan jeg ikke istedet for if, lave 2 while løkker mere, hvori den skal
springe ved tryk på "C" til toCelsius.
Og ved tryk på "F" springe til toFahrenheit.
Men jeg er meget i tvivl om hvordan jeg får den til at springe til
udregningerne..!
Følgende kode, so far:
/* procent3.c promt fortal og beregn Celsius/Fahrenheit.*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main ()
{
int resultat;
int fahrenheit;
int tofahrenheit;
int tocelsius;
int input;
char inputlinie[800];
clrscr ();
printf("Tryk F for Fahrenheit til Celsius\n\n");
printf("Tryk C for Celsius til Fahrenheit\n\n");
if (input == "C");
{
int resultat = toFahrenheit(input)
printf("Resultat i Fahrenheit er: %d\n, resultat);
}
printf("Beregning af celsius\n\n");
while (printf("Input Fahrenheit:"), fgets(inputlinie,800,stdin) !=NULL)
{
fahrenheit = atoi (inputlinie);
tocelsius = 5 * (fahrenheit - 32) /9;
printf("Resultat i Celsius er: %d\n\n\n", tocelsius);
}
while (printf("Input Celsius:"), fgets(inputlinie,800,stdin) !=NULL)
{
celsius = atoi (inputlinie);
tofahrenheit = ((9 * celsius)/ 5) + 32;
printf = ("/L Resultat i Fahrenheit er: %d\n\n\n", tofahrenheit);
getch ();
clrscr ();
}
return 0;
}
VH.
Gugge
| |
Jonas Meyer Rasmusse~ (04-01-2002)
| Kommentar Fra : Jonas Meyer Rasmusse~ |
Dato : 04-01-02 13:31 |
|
Hejsa
"G42" <gugge@image.dk> writes:
> Jeg er stadig meget i tvivl.
> Den laver fejl ved " if " linien. bl.a
Så vidt jeg kan se har du følgende problemer:
1. du glemmer at læse ind input variablen.. du bruger den uden du har lagt noget i den.
2. du sammenligner i if sætningen input med "C"... "C" er et array af chars,
og derfor duer det ikke at sammenligne på den måde. brug istedet 'C' eller 'c'
> Kan jeg ikke istedet for if, lave 2 while løkker mere, hvori den skal
> springe ved tryk på "C" til toCelsius.
> Og ved tryk på "F" springe til toFahrenheit.
>
> Men jeg er meget i tvivl om hvordan jeg får den til at springe til
> udregningerne..!
du kan lave to funktioner, hvori du lægger koden til de to ting.
void fahr()
{
//kode til fahrenheit
}
void celc()
{
//kode til celcius
}
så kan du i din main kalde dem:
int main()
{
...
if( input == 'f' )
fahr();
else
celc();
....
}
Husk at funktionerne skal erklæres før selve main funktionen, ellers kan du ikke kalde dem.
Mvh
Jonas
| |
Jacob Bunk Nielsen (04-01-2002)
| Kommentar Fra : Jacob Bunk Nielsen |
Dato : 04-01-02 13:54 |
|
Jonas Meyer Rasmussen <meyer@grid.diku.dk> writes:
> Husk at funktionerne skal erklæres før selve main funktionen, ellers
> kan du ikke kalde dem.
Man kan nøjes med at prototype dem:
float celc(float f);
float fahr(float c);
int main() {
/* do stuff */
}
float celc(float f) {
/* ... */
}
float fahr(float c) {
/* ... */
}
P.S. auto-fill-mode er et hit i den newsreader du bruger
--
Jacob - www.bunk.cc
The best things in life are for a fee.
| |
Anders Melchiorsen (04-01-2002)
| Kommentar Fra : Anders Melchiorsen |
Dato : 04-01-02 15:29 |
|
Jacob Bunk Nielsen <spam@bunk.cc> wrote:
> Jonas Meyer Rasmussen <meyer@grid.diku.dk> writes:
>
> > Husk at funktionerne skal erklæres før selve main funktionen,
> > ellers kan du ikke kalde dem.
>
> Man kan nøjes med at prototype dem:
....hvilket er en erklæring. Hvis man sætter en krop på, er det en
definition.
> P.S. auto-fill-mode er et hit i den newsreader du bruger
Bestemt!
/Anders.
| |
Rune Klausen (04-01-2002)
| Kommentar Fra : Rune Klausen |
Dato : 04-01-02 15:17 |
|
"G42" <gugge@image.dk> wrote in message
news:eU_Y7.11445$Zm5.1085733@news000.worldonline.dk...
> /* procent3.c promt fortal og beregn Celsius/Fahrenheit.*/
du kunne også lave det sådan her, vil jeg tro, ikke fordi jeg selv har
programmeret i særlig langtid...
int farh()
{
// indtast temp. og omregning til farhenheit
}
int celc()
{
// indtast temp. og omregning til celcius
}
void main()
{
char ch;
printf("falf......");
..
..
ch = getch;
switch(ch)
{
case 'f':
farh();
break;
case 'c':
celc();
break;
case 'q':
exit(1);
default:
printf("Tryk kun på de angivede taster");
}
}
-Rune
| |
G42 (04-01-2002)
| Kommentar Fra : G42 |
Dato : 04-01-02 15:56 |
|
Tak for alle jeres rigtige gode svar..(tror jeg)
Nu vil jeg lige kigge dem alle igennem, og prøve at forstå hvad det er i
mener.
Det er kanon at få hjælp når man er newbie..
Takker..
Gugge
| |
|
|