15. januar 2004 - 13:07Der er
9 kommentarer og 3 løsninger
Hjælp til udregning af ohms lov program i C
Skal have dette program til at fungere som en demo så det kun kan køres 3x... Og så skal det lukke af sig selv... Det skulle også være meningen at man kan fjerne demo ristriktionerne ved at ændre #define DEMO til en comment ved at sætte to slashes foran... Syntes ellers selv min kode ser rigtig nok ud... Men kan ikke compile den:
#include <stdio.h> //Inkluderet for input/output #include <stdlib.h> //Inkluderet for brug af Clearscreen #define DEMO //Demo Defineres void main(void) //Her startes programmet { int i, r, u, spaendning, stroem, modstand, proeve; //Integer værdier defineres char valg, slut; //Character værdier defineres
do //DO_WHILE bruges for at kunne aktivere programmet igen efter udførelse
{ printf("dette er en demo\n"); //Her gøres brugeren opmærksom på dette er en demo printf("I, R eller U beregning?\n"); //Brugeren spørges efter ønsket funktion/udregning scanf("%s", &valg); //Her gemmes bruger input'et
switch(valg) //Bruges til at definere de forskellige valg muligheder
{ case 'u': printf("Find U (U = I * R)\n"); //Her udregnes Spændingen printf("Indtast I\n"); scanf("%i", &i); printf("Indtast R\n"); scanf("%i", &r); spaendning = i * r; printf("U(Sp\x91nding) er %i * %i = %i\n",i,r,spaendning); break;
case 'i': printf("Find I (I = U / R )\n"); //Her udregnes Strømmen printf("Indtast U\n"); scanf("%i", &u); printf("Indtast R\n"); scanf("%i", &r); stroem = u / r; printf("I(Str\x9bm) er %i / %i = %i\n",u,r,stroem); break;
case 'r': printf("Find R (R = U / I)\n"); //Her udregnes Modstanden printf("Indtast U\n"); scanf("%i", &u); printf("Indtast I\n"); scanf("%i", &i); modstand = u / i; printf("R(Modstand) er %i / %i = %i\n",u,i,modstand); break;
default : printf("Der er ikke foretaget et valg\n"); } printf("Vil du afslutte? (J/N)\n"); //Brugeren bliver spurgt om denne ønsker at afslutte scanf("%s", &slut); //Brugerens svar bliver gemt system("cls"); //Skærmen cleares } proeve = proeve + 1; while(slut == 'n' || proeve < 3 ); //Hvis brugeren ikke vil slutte starter programmet forfra, ellers fortsætter det printf("Farvel\n"); //Her siges der farvel til brugeren }
Jeg får denne fejl af min compiler: "C:\c-projekter\Ohms Lov\ohm.c(52) : error C2061: syntax error : identifier 'proeve' Error executing cl.exe."
Har jeg lige prøvet... Og det er også fint nok... Men det nytter jo ikke noget at sætte den ind før } da den så bare tæller hvor mange gange programmet køre... Så bliver det sidste i denne (while(slut == 'n' || proeve < 3 );) sætning jo nytteløst... Er jo kun meningen programmet må køre 3x... Så skal det slutte uanset om brugeren vælger ja eller nej til afslut...
Ja... Ved godt det er den "helt" rigtige måde at gøre det på... Men det her er et led i en skoleopgave som jeg sidder lidt fast i... Og der har vi specifikt fået at vide at vi skulle bruge denne fremgangsmåde. Så er i lidt problemer her...
akany>> Ja... Forstår godt hvor du vil hen... Og syntes også det hele ser rigtigt ud... Problemet er bare at der må være en fejl i min løkke... For selvom jeg har kørt programmet 3x og vælger j(for at køre det igen) så får jeg lov til det istedet for det lukker ned som det skulle...
Hehe... Det er fair nok... Ja... Mig som der har været lidt af et fjols... Min lære kom lige kort ind i hans pause(han er på kursus)... Han fik jo lige forklaret at jeg skulle huske der ikke måtte være tomme linier imellem løkker og start-sætning tegn... +Jeg var kommet til at placere min proeve tæller inde i min switch løkke... Hvilket også gav et lidt uheldigt resultat :) Men takker mange gange for hjælpen... Det har været lærerigt for mig...
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.