Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 10 odgovora
  • 7.678 pregleda

Najnovija ↓

pomozite pocetniku 20.02.2005. u 13:53 · pre 264 meseca #1
Poceo sam da ucim C-e iz Krausove knjige i dosao sam do primera u kome se racuna povrsina trougla. Ukucao sam izvorni kod u C-u, izkompajlirao ali neradi. Zasto?

Kao kompajler koristim Bloodshed Dev-C++ jer sam na ES-u procitao da ga preporucuju za pocetnike!!!

Hvala unapred!
Veljko

p.s. Kod se nalazi na strani 48. a izgleda ovako :


/* Povrsina trougla u ravni */

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

main ()
{
double xA, yA, xB, yB, xC, yC, a, b, c, s, P;

/* Temena trougla: */
printf ("Unesite koordinate temena trougla !\n");

printf ("Unesite prvo teme!? ");
scanf ("%1f%1f", &xA,&yA);

printf ("Unesit drugo teme!? ");
scanf ("%1f%f", &xB, &yB);

printf ("Unesite trece teme!? ");
scanf ("%1f%f", &xC, &yC);

/* Stranice trougla: */
a = sqrt (pow(xB-xC,2) + pow(yB-yC,2));
b = sqrt (pow(xC-xA,2) + pow(yC-yA,2));
c = sqrt (pow(xA-xB,2) + pow(yA-yB,2));

/* Povrsina trougla: */
s = (a + b + c) / 2;
P = sqrt (s * (s-a) * (s-b) * (s-c));
printf ("Povrsina trougla je: %f\n", P);
}
Re: pomozite pocetniku 20.02.2005. u 14:06 · pre 264 meseca #2
Ispred main-a stavi void jer ti f-ja ne vraca vrednost. Koliko vidim ostatak je ok. Napisi koju ti gresku javlja kompajler pa da vidimo o cemu je rec.
Potpis
I drink to make other people interesting.
Re: pomozite pocetniku 20.02.2005. u 14:11 · pre 264 meseca #3
https://www.elitesecurity.org/t76765-Pravilnik-za-forum

Citat:

Kada šaljete izvorni kod, potrudite se da ga pošaljete u tekstu poruke. Kod uokvirite oznakama [ code ] [ /code ] kako bi se ispravno prikazivao drugim korisnicima.
U vašem je interesu da taj kod neko drugi može lako i brzo da isproba. Ako vam prevodilac javlja grešku, obavezno je pošaljite zajedno s programom.
Re: pomozite pocetniku 20.02.2005. u 16:55 · pre 264 meseca #4
veljko, program treba da izgleda ovako:
Code:

/* wprog.c */
/* Povrsina trougla u ravni */

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

int main ()
{
  double xA, yA, xB, yB, xC, yC, a, b, c, s, P;

  /* Temena trougla: */
  printf ("Unesite koordinate temena trougla !\n");
  
  printf ("Unesite prvo teme!? ");
  scanf ("%1f%1f", &xA,&yA);
  
  printf ("Unesit drugo teme!? ");
  scanf ("%1f%f", &xB, &yB);
  
  printf ("Unesite trece teme!? ");
  scanf ("%1f%f", &xC, &yC);
  
  /* Stranice trougla: */
  a = sqrt (pow(xB-xC,2) + pow(yB-yC,2));
  b = sqrt (pow(xC-xA,2) + pow(yC-yA,2));
  c = sqrt (pow(xA-xB,2) + pow(yA-yB,2));
  
  /* Povrsina trougla: */
  s = (a + b + c) / 2;
  P = sqrt (s * (s-a) * (s-b) * (s-c));
  printf ("Povrsina trougla je: %f\n", P);
 
  return 0;  
} 

Prema standardu main() funkcija MORA da vrati int vrednost. Prema konvenciji ta vrednost treba da bude 0 ako je izvrsavanje programa proteklo bez greske. Ta vrednost ima i makro definisan u stdlib.h - EXIT_SUCCESS tako da mozes da pises i
Code:
#include <stdlib.h> // ovo treba da ide skupa sa ostalim #include linijama
.
.
.
return EXIT_SUCCESS; // ovo ide na kraj main() funkcije, ako tokom programa nije bilo problema.




dejan@gnu ~/prj/cxx/win32
$ make
i386-mingw32-gcc -o wprogc.exe wprog.c

dejan@gnu ~/prj/cxx/win32
$ ls
Makefile Makefile~ wprog.c wprogc.exe

Kao sto se vidi, program se kompajlira bez ikakvih problema.
Potpis
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
Re: pomozite pocetniku 21.02.2005. u 07:42 · pre 264 meseca #5
E, sada, imam drugi problem!

Kada ga izkompajliram i pokrenem preko run opcije iz Bloodshed Dev-C++ i kada unesem koordinate temena trougla, program izracuna povrsinu I ODMA SE VRATI U DEV-C++ TAKO DA NEVIDIM REZULTAT, ODNOSNO NEVIDIM STA JE URADIO.

Znam da se program moze poterati i iz command.com ili msdos-a, ali da li postoji opcija da se to uradi iz samog Dev-C++?

Hvala
Veljko!
Re: pomozite pocetniku 21.02.2005. u 09:02 · pre 264 meseca #6
I, jos, nesto ...
Da li neko moze da mi kaze sta vrsi linija "int main(void)" u kodu koji je dat u prilogu

Code:


#include <stdio.h>
       
 int main(void) 
 {
     printf("Hello world\n");
     return 0;
 }
       




U Krausovoj knjizi pise da postoji vise "vrsta" glavnih programa (npr. void mai(void)) pa mi nije jasno sta te linije rade. Da li mi neko moze objasniti namenu za ova dva primera int main(void) i void main(void)?

Hvala unapred
Veljko
Re: pomozite pocetniku 21.02.2005. u 09:16 · pre 264 meseca #7
Citat:
veljko77: E, sada, imam drugi problem!

Kada ga izkompajliram i pokrenem preko run opcije iz Bloodshed Dev-C++ i kada unesem koordinate temena trougla, program izracuna povrsinu I ODMA SE VRATI U DEV-C++ TAKO DA NEVIDIM REZULTAT, ODNOSNO NEVIDIM STA JE URADIO.


Veljko, ja sam ti zbog toga ostavio link ka pravilniku jer je ovo standardno pitanje koje pocetnici stalno postavljaju a imas link ka odgovoru u pravilniku. Nemoj da se ljutis ali ipak bi bilo bolje da prvo pogledas tu temu i ostale top teme.

Pozdrav
Re: pomozite pocetniku 21.11.2005. u 20:26 · pre 255 meseci #8
Citat:
U Krausovoj knjizi pise da postoji vise "vrsta" glavnih programa (npr. void mai(void)) pa mi nije jasno sta te linije rade. Da li mi neko moze objasniti namenu za ova dva primera int main(void) i void main(void)?


void je tip promenljive koji ne predstavlja ništa! Malo čudno zvuči, ali tako je! Kada funkcija vraća void znači da ne vraća ništa. Kada joj kao argument prosleđuješ void znači da nema argumenata! U suštini to je to!

A ovaj drugi primer ( int main(void) ) znači da funkcija main vraća vrednost tipa int i da nema argumenata! Kao i kod ostalih f-ja!

Ako si učio pascal, void ispred imena funkcije se poklapa sa pascalovim procedurama, jer ni one ne vraćaju vrednost!
Re: pomozite pocetniku 23.11.2006. u 01:34 · pre 242 meseca #9
Da bi video rezlutat programa (sta uradi) dodaj sledecu liniju u kod pre return 0; linije :
system("PAUSE"); (ili bez znakova navodnika unutar zagrade,ne secam se bas:))
Re: pomozite pocetniku 24.11.2006. u 16:03 · pre 242 meseca #10
main() funkciju ne poziva ni jedna druga funkcija u tvom programu, nego sam operativni sistem. Iz operativnog sistema njoj mozes poslati neke argumente (to ces uskoro uciti), a sam main() OS-u vraca neku vrednost. To u vecini slucajeva nije bitno, ali treba da znas da je ustanovljena konvencija koja kaze da kad je povratna vrednost main-a 0, to je znak OS-u da je program uspesno izvrsen i da problema nije bilo.
Uzmi zdravo za gotovo sledece stvari:
- int main() je nacin kako se pise main funkcija.
- return 0; je poslednji red u toj funkciji
Potpis
De si Deda...
Re: pomozite pocetniku 29.05.2007. u 02:15 · pre 236 meseci #11
Citat:
opmo: Da bi video rezlutat programa (sta uradi) dodaj sledecu liniju u kod pre return 0; linije :
system("PAUSE"); (ili bez znakova navodnika unutar zagrade,ne secam se bas:))

Zaboravio si da mu kazes da treba da ukljuci datoteku stdlib.h na ovaj nacin
Code:
#include <stdlib.h>
inace system funkcija nece raditi.
Potpis
Ako te snadje muka pozovi hajduka
Pazi se hajduka ako ga snjadje muka
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme