|
[ andrey @ 24.02.2004. 18:32 ] @
| Imam problem u sledecem kodu u jeziku C za izracunavanje povrsine trougla.Turbo C prijavljuje gresku Undefined symbol t in function PovrsinaTrougla i nikako neuspevam da je otklonim:
Code:
#include <stdio.h>
#include <math.h>
struct TemenaTrougla {
int xa,ya;
int xb,yb;
int xc,yc;
};
typedef struct TemenaTrougla TT;
double PovrsinaTrougla (TT teme) {
double a,b,c,s;
a=sqrt (pow((t.xa-t.xb),2)+pow((t.ya-t.yb),2));
b=sqrt (pow((t.xb-t.xc),2)+pow((t.yb-t.yc),2));
c=sqrt (pow((t.xa-t.xc),2)+pow((t.ya-t.yc),2));
s=(a+b+c)/2;
return sqrt (s*(s-a)*(s-b)*(s-c));
}
Uspevam samo da resim ovaj problem bez struktura ali je preopsiran:
Code:
#include <stdio.h>
#include <math.h>
main () {
double xA, yA, xB, yB, xC, yC, a, b, c, s, P;
/* Temena trougla: */
printf ("Koordinate temena trougla\n");
printf ("- prvo teme? "); scanf ("%lf%lf", &xA, &yA);
printf ("- drugo teme? "); scanf ("%lf%lf", &xB, &yB);
printf ("- trece teme? "); scanf ("%lf%lf", &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));
/* Površina trougla: */
s = (a + b + c) / 2;
P = sqrt (s * (s-a) * (s-b) * (s-c));
printf ("Povrsina trougla: %f\n", P);
}
I ovako dobijam resenje za povrsinu trougla u ravni.
Takodje, za povrsinu trougla u matrici imam problem u samom startu, nemam ideju kako bi napisao funkciju. Primer je sledeci:
U matrici dimenzija m x 6 cuvaju se koordinate temena m trouglova:
T0: XA,YA,XB,YB,XC,YC
T1: XA,YA,XB,YB,XC,YC
...
T(m-1):XA,YA,XB,YB,XC,YC
Koordinate temena trouglova su celi brojevi. Napisati program u jeziku C koji ucitava elemente prethodne matrice, a zatim izracunava ukupnu povrsinu svih trouglova. Rezultat ispisati na standardnom izlazu. Deo programskog koda koji izracunava povrsinu trougla izdvojiti u posebnu funkciju.
Unapred zahvalan na strpljenu
Andrej |
[ Reljam @ 24.02.2004. 18:43 ] @
U prvom delu koda, samo promeni
double PovrsinaTrougla (TT teme) {
u
double PovrsinaTrougla (TT t) {
To bi trebalo da ti sredi problem sa strukturama.
[ sallle @ 24.02.2004. 23:41 ] @
sto se tice izracunavanja te matrice,
zamisli da imas neku matricu a[m,6], udri for petlju po kolonama, i u svakoj iteraciji od svih elemenata iz te vrste izracunaj povrsinu pojedinacnog trougla.
[ #Coder @ 25.02.2004. 10:58 ] @
Pa normalno da ti javlja error jel nema t nego treba ti t u strukturi!!!
[ andrey @ 25.02.2004. 11:36 ] @
I kada zamenim 'teme' sa 't' dobijam poruku od Turbo C kompajlera: Linker error: Undefined symbol 'main' in module COS.
Code:
#include <stdio.h>
#include <math.h>
struct TemenaTrougla {
int xa,ya;
int xb,yb;
int xc,yc;
};
typedef struct TemenaTrougla TT;
double PovrsinaTrougla (TT t) {
double a,b,c,s;
a=sqrt (pow((t.xa-t.xb),2)+pow((t.ya-t.yb),2));
b=sqrt (pow((t.xb-t.xc),2)+pow((t.yb-t.yc),2));
c=sqrt (pow((t.xa-t.xc),2)+pow((t.ya-t.yc),2));
s=(a+b+c)/2;
return sqrt (s*(s-a)*(s-b)*(s-c));
}
Andrej
[ andrey @ 25.02.2004. 11:45 ] @
Sto se tice izracunavanja povrsine trougla u matrici vezana je za oblast dinamicke alokacije memorije. Ako neko poseduje malo sire znanje po tom pitanju, molio bih ga za pomoc, uopsteno oko malloc, calloc, realloc, free, kao i uopste o pokazivacima.
Andrej
[ filmil @ 25.02.2004. 12:10 ] @
Citat: error: Undefined symbol 'main' in module COS.
To je zato što nemaš funkciju main(). Izvršavanje C koda počinje uvek od funkcije koja ima ime main. Ako nema nje, program ne zna odakle da krene. Moraš izgleda da se vratiš na tu lekciju o C-u.
f
[ andrey @ 28.02.2004. 01:19 ] @
Citat: filmil:
Moraš izgleda da se vratiš na tu lekciju o C-u.
Kada si toliki frajer zasto nisi napisao u programu gde trebam da postavim main funkciju ( u kom redu code-a) kada se radi o strukturama, a ne da mi drzis predavanja da trebam da se vratim na lekciju u C-u o main funkciji? Imam problema u razumevanju struktura, a ne u main funkciji. Isto tako odgovori na pitanje u vezi dinamicke alokacije memorije, ako toliko dobro poznajes C jezik, sto se tice problema izracunavanja povrsine trougla u matrici, a ne da dajes beskorisne odgovore koje mi nista ne znace, kao ni bilo kome na forumu gde bi mogli da nauce nesto od vas koji znate, cemu i sluzi ovaj forum. Ne bih ni postavio pitanje, da mi ne treba pomoc.
Andrej
[ filmil @ 28.02.2004. 01:41 ] @
Citat: Kada si toliki frajer zasto nisi napisao u programu gde trebam da
postavim main funkciju ( u kom redu code-a) kada se radi o strukturama,
a ne da mi
Polakoder, obustavi paljbu. :) U prethodnoj poruci lepo sam napisao koji
je problem sa tvojim programom: fali mu funkcija main() od koje počinje
izvršavanje svakog programa. Pogledaj na primer
http://www.strath.ac.uk/IT/Docs/Ccourse/ .
Pitanja o alokaciji memorije suviše su opšta da bi bilo verovatno da iko
sedne pa da ti iskuca ceo odgovor: probaj da postaviš konkretnije
pitanje. Uporedi: napišite mi „uopsteno oko malloc, calloc, realloc,
free, kao i uopste o pokazivacima“ sa „kako da alociram niz od 10
pointera na char“?
f
[ sallle @ 28.02.2004. 02:38 ] @
Enteresant.
Poznavanje typedef-a, poznavanje konverzija za printf, poznavanje structa-a, a ne poznavanje main-a.
Sudeci po prvom code-u i funkciji PovrsinaTrougla, u pitanju je nestrucan cut/paste.
Citat: Uspevam samo da resim ovaj problem bez struktura ali je preopsiran:
filmile, nema on sta da se vraca na lekciju o main()-u jer nije ni poceo da uci C.
Umesto da kaze "e momci treba neki zadatak da uradim, a ne znam kako se to radi" on doso sa pricom napiso sam prog, ali sam resio da ga malo "optimizujem", ali nesto mi ne f-jonise "optimizacija".
Elem, evo i properly helpa:
#include <stdio.h>
main(){
printf("hello world");
}
[ andrey @ 28.02.2004. 14:32 ] @
Citat: sallle:
Umesto da kaze "e momci treba neki zadatak da uradim, a ne znam kako se to radi" on doso sa pricom napiso sam prog, ali sam resio da ga malo "optimizujem", ali nesto mi ne f-jonise "optimizacija".
U pravu si! Ja ucim Programski jezik C za ispit. Nisam sam napisao program jer ne znam i trazio sam pomoc oko zadatka.Da sam postavio pitanje da mi se resi zadatak verovatno bi mi dali odgovor da ne radimo domace zadatke, kao sto je i navedeno u Pravilniku za korisnike foruma, te iz tog razloga nisam postavio pitanje bez ponudjenog koda koji sam nasao u zbirkama i vezbama Lasla Krausa sa sajta ETF-a iz kojih vezbam zadatke. Znam ja da imam dosta da predjem osnovnijih stvari da bih savladao i strukture, ali bi mi dosta lakse bilo da imam tacno odradjen zadatak, nego ovaj ciji sam kod ovde "cut/paste" dostavio.
Andrej
[filmil: prilagođeno pravilniku foruma]
[ filmil @ 28.02.2004. 14:54 ] @
U tom slučaju imaš sreće. Knjiga Lasla Krausa „Programski jezik C sa
rešenim zadacima“ je među najboljim knjigama o C-u koje se mogu naći na
našem jeziku. Potrudi se da je nabaviš (kupiš, pozajmiš, itd). Sve
osnovne stvari o C-u su tamo objašnjene bolje i potpunije nego što bi
iko ovde mogao da ti otkuca u razumnom vremenu.
f
[ andrey @ 28.02.2004. 15:49 ] @
Imam tu knjigu. U svakom slucaju hvala na smernicama u vezi C jezika.
Andrej
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|