Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Raul.Leemet
/
IAG0582
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
8b136bf2
authored
Mar 08, 2017
by
Raul.Leemet
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Upload new file
parent
0a3dea21
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
185 additions
and
0 deletions
kodutooN2idis/kontrolltoo1_Kippar_IASB21.c
kodutooN2idis/kontrolltoo1_Kippar_IASB21.c
0 → 100644
View file @
8b136bf2
/**
* Fail: kontrolltoo1_Kippar_IASB21.c
* Autor: Krista Kippar
* Loodud: 02.03.2017
* Viimati muudetud: 08.03.2017
*
* Kirjeldus: Leida sisestatud ringjoone sisse jvate punktide kaugus ringjoone keskpunktist programmis on ainult failist loetud andmete sisestus
*/
#include <stdio.h> // standardsisendvljund
#include <stdlib.h> // exit
#include <math.h>//pow
#define N 5 //kirjete arv isend failis
typedef
struct
{
float
x
;
//x-koordinaat
float
y
;
//y-koordinaat
}
Punktid
;
typedef
struct
{
float
L
;
Punktid
koordinaat
;
}
Kaugusli
;
//kaugus lisandite ehk koos punktidega
//funktsioonide prototbid
float
askValue
(
char
*
K
);
float
askValueCheck
(
char
*
K
);
void
readIn
(
FILE
*
in
,
Kaugusli
*
Koordinaat
);
int
CheckFile
(
FILE
*
input
,
char
*
Filename
);
float
calculateDistance
(
float
a
,
float
b
,
float
c
,
float
d
);
void
lenghtsArray
(
Kaugusli
*
pikkused
,
int
c
,
float
xalg
,
float
yalg
);
void
writeFile
(
FILE
*
input
,
Kaugusli
*
LoppKirje
,
int
n
,
char
*
t
,
float
C
);
int
main
(
void
)
{
double
Xo
,
Yo
;
// ringjoone keskpunkti koordinaadid X0 ja Y0
double
R
;
//ringjoone raadius
char
*
S
=
"ff.txt"
;
// sisend faili nimi
int
i
;
//loendur
char
*
V
=
"MAHUB.txt"
;
//vljund faili nimi
//Kaugusli Koordinaadid[N];
Kaugusli
Lopp
[
N
];
FILE
*
fi
,
*
fo
;
fi
=
fopen
(
S
,
"r"
);
fo
=
fopen
(
V
,
"w"
);
if
(
CheckFile
(
fi
,
S
)
==
0
)
{
printf
(
"Sisend fail
\"
%s
\"
leiti lesse!
\n
"
,
S
);
}
else
{
printf
(
"Sisendfaili
\"
%s
\"
ei leitud ja programm suletakse
\n
"
,
S
);
exit
(
0
);
//programm lpetab t
}
Xo
=
askValue
(
"ringi keskpunkt X koordinaat"
);
Yo
=
askValue
(
"ringi keskpunkti y koordinaat"
);
R
=
askValueCheck
(
"ringi raadius"
);
//lisa kontroll R<0
for
(
i
=
0
;
i
<
N
;
i
++
)
{
readIn
(
fi
,
&
Lopp
[
i
]);
}
lenghtsArray
(
Lopp
,
N
,
Xo
,
Yo
);
writeFile
(
fo
,
Lopp
,
N
,
V
,
R
);
fclose
(
fi
);
return
0
;
}
float
askValue
(
char
*
K
)
//ksitakse vrtus K-vrtuse seletus
{
float
a
;
//Ksitav suurus(pow((c-a), 2))
printf
(
"Palun sisestage %s:
\n
"
,
K
);
scanf
(
"%f"
,
&
a
);
return
a
;
}
float
askValueCheck
(
char
*
K
)
//ksitakse vrtus K-vrtuse seletus
{
float
a
;
//Ksitav suurus(pow((c-a), 2))
do
{
printf
(
"Palun sisestage %s:
\n
"
,
K
);
scanf
(
"%f"
,
&
a
);
if
(
a
<
0
)
{
printf
(
"Vale vrtus
\n
"
);
}
}
while
(
a
<
0
);
return
a
;
}
int
CheckFile
(
FILE
*
input
,
char
*
Filename
)
{
if
(
input
==
NULL
)
{
printf
(
"Ei saanud avada faili %s
\n
"
,
Filename
);
return
1
;
}
return
0
;
}
void
readIn
(
FILE
*
in
,
Kaugusli
*
Koordinaat
)
{
int
i
=
0
;
//kordustskli loenduri algvrtustamine
while
(
feof
(
in
)
==
0
)
{
fscanf
(
in
,
"%f %f"
,
&
(
Koordinaat
+
i
)
->
koordinaat
.
x
,
&
(
Koordinaat
+
i
)
->
koordinaat
.
y
);
printf
(
"Loeti sisse X: %f ja Y: %f
\n
"
,
(
Koordinaat
+
i
)
->
koordinaat
.
x
,
(
Koordinaat
+
i
)
->
koordinaat
.
y
);
i
++
;
};
}
float
calculateDistance
(
float
a
,
float
b
,
float
c
,
float
d
)
//a ja c on x koordinaadid ja b ja d y koordinaadid ja arvutatakse punktide vaheline kaugus
{
float
l
;
l
=
sqrt
(((
pow
((
c
-
a
),
2
))
+
(
pow
((
b
-
d
),
2
))));
//arvutab punktide vahelise kauguse
return
l
;
}
void
lenghtsArray
(
Kaugusli
*
pikkused
,
int
c
,
float
xalg
,
float
yalg
)
//c kui palju peab massivi asju tegema
{
int
i
;
for
(
i
=
0
;
i
<
c
;
i
++
)
{
pikkused
[
i
].
L
=
calculateDistance
(
xalg
,
yalg
,
pikkused
[
i
].
koordinaat
.
x
,
pikkused
[
i
].
koordinaat
.
y
);
}
}
void
writeFile
(
FILE
*
input
,
Kaugusli
*
LoppKirje
,
int
n
,
char
*
t
,
float
C
)
{
int
l
;
for
(
l
=
0
;
l
<
n
;
l
++
)
{
fprintf
(
input
,
"X: %f
\t
Y: %f
\t
"
,
LoppKirje
[
l
].
koordinaat
.
x
,
LoppKirje
[
l
].
koordinaat
.
y
);
printf
(
"X: %f
\t
Y: %f
\t
"
,
LoppKirje
[
l
].
koordinaat
.
x
,
LoppKirje
[
l
].
koordinaat
.
y
);
if
(
LoppKirje
[
l
].
L
>
C
)
{
fprintf
(
input
,
"punkt ei asu ringjoone sees
\n
"
);
printf
(
"punkt ei asu ringjoone sees
\n
"
);
}
else
{
fprintf
(
input
,
"kaugus ringjoone keskpunktist %f
\n
"
,
LoppKirje
[
l
].
L
);
printf
(
"kaugus ringjoone keskpunktist %f
\n
"
,
LoppKirje
[
l
].
L
);
}
}
printf
(
"Andmed on kirjutatud algselt sisestatud tulemuste faili nimega
\"
%s
\"
!
\n
"
,
t
);
}
/* typedef saab luua uusi andmetpe, nt struckti vi unionide juures vga kasulik, nt kui on
typedef struct{
char linn[15];
char tnv[10];
int indeks;
}Asukoht;
siis funkstioonis deklareeitakse nt massiiv selle andmetbiga Asukoht Isik[5],
siis saab struktuuri poole prduda vajaliku strukti osa poole jrgnevalt Isik.linn, Isik.tnv vi Isik.indeks*/
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment