Pomoc programiranje u C-u!!!

Forum koji ne mora biti vezan za elektroniku ali u kojem vrijede pravila foruma!

Moderators: pedja089, stojke369, [eDo], trax, LAF

Post Reply
User avatar
Condor
Posts: 21
Joined: 10-02-2007, 23:27

Pomoc programiranje u C-u!!!

Post by Condor »

Pozz svima. Zadatak je sledeci:
Potrebno je napraviti dve funkcije za rad sa datotekama.Funkciju koja:
1) Kreira datoteku "tacka.bin", i u nju upisuje koordinate tacke,
2) Cita fajl"tacka.bin", i to dve po dve tacke, a kao rezultat daje rastojanje izmedju njih, ako korisnik unese neparan broj tacaka, poslednje koordinate samo prepisuje.

Prva funkcija bi trebalo da izgleda ovako:

#inslude<stdio.h>
#include<stdlib.h>
typedef struct
{
float x,y;
}Tacka;
void upisi()
{
int i,n;
FILE *fp;
Tacka t;
printf("Koliko tacaka zelite da unesete:");
scanf("%d",&n);
fp=fopen("tacka","wb");
for(i=1;i<=n;i++)
{
printf("Unesite koordinate %d.tacke:",i);
scanf("%f%f",&t.x,&t.y);
fwrite(&t,sizeof(Tacka),1,fp);
}
fclose(fp)
return;
}

Problem je kod druge f-je, a jebe me to kako da citam dve po dve tacke,odnosno njihove koordinate.
Unapred zahvalan, Condor.
Nesvestan zivot nije vredan da bude prozivljen.
User avatar
Condor
Posts: 21
Joined: 10-02-2007, 23:27

Post by Condor »

Dajte bre ljudi, stvarno mi je frka, nemoguce da se bas niko ovde ne razume u programiranje. Trax help,please.
Nesvestan zivot nije vredan da bude prozivljen.
User avatar
defs
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 250
Joined: 14-04-2007, 16:21

Post by defs »

ja bi ti napisao,al stvarno nemam vremena sad, imam ispit sutra.Ako ti nije hitno, mogu ti sutra napisat..
User avatar
Condor
Posts: 21
Joined: 10-02-2007, 23:27

Post by Condor »

Pa treba mi za sutra, ali pokusacu da odlozim za sredu. Hvala, nadam se da neces da zaboravis.
Nesvestan zivot nije vredan da bude prozivljen.
User avatar
defs
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 250
Joined: 14-04-2007, 16:21

Post by defs »

Ovaj 1. zadatak ispravno napisi, nije ti ovo dobro, kompajliraj ga. Nemam vremena i prvi ti pisat.
User avatar
Condor
Posts: 21
Joined: 10-02-2007, 23:27

Post by Condor »

Ja sam ovo poceo da pisem kao funkciju. Ali ako se taj deo stavi u void program onda odlicno radi, ne vidim u cemu je greska. Evo i void main-a:
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
float x,y;
}Tacka;
void main()
{
int i,n;
FILE *fp;
Tacka t;
printf("Koliko tacaka zelite da unesete:");
scanf("%d",&n);
fp=fopen("tacka","wb");
for(i=1;i<=n;i++)
{
printf("Unesite koordinate %d.tacke:",i);
scanf("%f%f",&t.x,&t.y);
fwrite(&t,sizeof(Tacka),1,fp);
}
fclose(fp);
getch();
}

Drugi deo zadatka, slobodno ispisi kako ti odgovara, vazno mi je da vidim princp, i funkciju citanja dve po dve kao i njihovo sabiranje.

Nadam se da smo se razumeli. :D
Nesvestan zivot nije vredan da bude prozivljen.
User avatar
defs
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 250
Joined: 14-04-2007, 16:21

Post by defs »

kod mene ovo javlja runtime error, sta znaci rastojanje, iz hr sam?
User avatar
Condor
Posts: 21
Joined: 10-02-2007, 23:27

Post by Condor »

Rastojanje=razdaljina=daljina=duzina "od A do B". shvatas?
Nesvestan zivot nije vredan da bude prozivljen.
User avatar
Condor
Posts: 21
Joined: 10-02-2007, 23:27

Post by Condor »

Ljudi nasao sam resenje. Ako se neko pitao kako odraditi drugi zadatak.....evo:(napisan je kao funkcija):!:

#include<stdio.h>
#include<math.h>
typedef struct
{
float x,y;
}Tacka;
void prikazi()
{
File *fp;
int i=1;
float d;
Tacka t1,t2;
clrscr();
fp=fopen("tacka","rb");
while(!feof(fp))
{
fread(&t1,sizeof(Tacka),1,fp);
fread(&t2,sizeof(Tacka),1,fp);
if(feof(fp))
{
break;
}
d=sqrt((t1.x-t2.x)*(t1.x-t2.x)+(t1.y-t2.y)*(t1.y-t2.y))
printf("Rastojanje izmedju %d. i %d. tacke iznosi %f",i,i+1,d);
i=i+2;
}
getch();
}

Moralo je da dodje do male modifikacije programa, naime program prikazuje samo paran broj tacaka, ukoliko se ukuca neparan poslednja tacka se izbacuje - bilo je malo ne moguce ostvariti da se i ona printa. Ali eto radi..... :D :D :D :D
Nesvestan zivot nije vredan da bude prozivljen.
Post Reply