» »

Prikaz programa v windowsih

Prikaz programa v windowsih

s51as ::

Živjo,

za praktikum moram programirat neke funkcije in sem si našel program Dev-C++ (kolikor sedaj berem Slo-Tech forum to ni isto kot C++?) no pa ko napišem program in ganeriram exe datoteko, in jo zaženem se ta takoj ugasne. Torej sploh ne vidim rezultata programa.

Ali moram kaj dodati kodi da se to okno zapre šele ko jas to hočem ali sem kje generalno naredil napako.

hvala za pomoč.
It's just me myself and I

Jean-Paul ::

V Winsih lahko daš to na konec main funkcije:

system("pause");

s51as ::

hvala za nasvet,
sem posiskusil pa kake bistvene razlike ni... razmišljam da C++ ni najlažja pot ;)
sem pa ugotovil da če poženem vse skupaj iz cmdja potem ostane na ekranu.
It's just me myself and I

Ktj ::

Jean-Paul ti je podav rešitev za tvoj problem. Vendar ta rešitev ni najboljša...
Program je namenjen za cmd tako da če ga samostojno izvedeš se v trenutku izvede do konca.
Dev C++ je razvojno okolje, kot so VS, VC, QT creator,... medtem ko je C++ jezik v katerem pišeš program.
Če želiš, da ti vsebina programa ostane na zaslonu moraš na koncu dodati funkcijo, ki čaka na nek dogodek, v tem primeru pritisk tipke. Izredno uporabna rešitev je da pred return v main funkciji dodaš getch();. Ta funkcija je deklarerana v conio.h

s51as ::

Hvala za razlago in pomoč.

Grem na kak tutorial, pri kompajlanju imam več errorjev kot vrstic kode...
It's just me myself and I

Ktj ::

Če se ti zelo zalomi prilimaj kodo pa ti povemo kaj je narobe.

s51as ::

glede na to da sem šel od začetka se ni melo kaj zelo zalomit, dela pa vseeno ne...

#include<stdio.h>
#include<math.h>
int main ()
{
double a,b,i;
int o;
printf("Vpisi vrednosti dveh stevil: ");
scanf("%lf %lf",&a,&b);
printf("vpisi stevilko pred operacijo, ki bi jo rad izvedel (1=plus,2=minus,3=krat,4=deljeno): ");
scanf("%d",&o);
if(o=1){i=a+b;}
else{
     if(o=2){i=a-b;}
     else{
          if(o=3){i=a*b;}
          else{
               if(o=4){i=a/b;}
               else{}
              }
          }
    }
printf("vrednost racuna je: %lf",i);
return 0;
}
It's just me myself and I

Mavrik ::

Problem je seveda v "if" stavku.

= operator je prirejanje, ne primerjanje. Za primerjanje moraš uporabiti '==' operator, torej takole:

if (o==1)
{
   i = a + b;
}


Aja, pa prazni else stavek ni potreben.
The truth is rarely pure and never simple.

s51as ::

O poglej si ga no! Hvala za tole!

Kako pa bi priredil kodo da bi delovalo na plus minus krat deljeno namesto na 1 2 3 4?
Sem probal s char pa nekaj sem gledal string.... pa mi ni uspelo zato sem šel na 1 2 3 4.
It's just me myself and I

Ktj ::

narediš primerjanje:
if(o == '+')... //seštevanje
if(o == '*')...//množenje
...
pazi da uporabiš enojne narakovanje in pa o moraš spremeniti v tip char.

s51as ::

aha zdaj je to bolj jasno... hvala za razlago.

če lahko poglej še spodnjo kodo, ki je že za mojo domačo nalogo... sicer je to približno ena desetina naloge ampak nekje je treba začet pa če mi še to ne dela pol je kriza...
v tem primeru je funkcija kjer iščem ničle napisana v programu... kako pa napišem da bi jo vnesel naknadno skupaj s točkami? scanf("%"funkcija"",&"funkcija")??? funkcije so enodimenzionalne.

/* Program za določanje ničl funkcije. Uporablja zlati rez */

#include<stdio.h>
#include<math.h>
#include<stdlib.h>

double const w=0.38197;
double nicle(double a, double b, double c);
double fun(double x);

int main (void){
double a,b,c;
printf("Vpiši vrednosti a, b in c: ");
scanf("%lf, %lf, %lf", &a, &b, &c);

double fnicle=nicle(a,b,c);
printf("Vrednost ničle na danem intervalu je %1.10lf \n",fnicle);
return 0;
}
double fun(double x){
return 2-3*x+4*x*x-5*x*x*x;
}
double nicle(double a, double b, double c){
double x;
if((fun(a)<0 && fun(b)<0 && fun(c)>0) || (fun(a)>0 && fun(b)>0 && fun(c)<0))
{
             do{
                x=b+w*(c-b);
                if(fun(x)/fun(b)>0){
                                    a=b;
                                    b=x;
                                    }
                else{
                     c=x;
                     }
             while(fabs(c-b)>1E-7);}
else{printf("funkcija na danem intervalu nima ničel");}
}
return 0;
} 


Sem našel napako nekje v { oklepajih }
It's just me myself and I

Zgodovina sprememb…

  • spremenil: s51as ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C programiranje (strani: 1 2 3 )

Oddelek: Programiranje
14126704 (17000) amacar
»

C in računanje kotov

Oddelek: Programiranje
376077 (5130) RatedR
»

Kalkulator

Oddelek: Programiranje
111222 (989) lebdim
»

Program v C

Oddelek: Programiranje
51835 (1674) darkkk
»

[c] char zadeva

Oddelek: Programiranje
222102 (1900) TheCyborg

Več podobnih tem