Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ------- НРС - Лаб. вежби 1 -------
- ----------------------------------
- 1-ва задача
- __________________________________
- Да се надополни програмата со следните барања:
- Да се креира структура на точка во тродимензионален простор и да се напише функција која ќе го пресметува растојанието помеѓу две такви точки.
- Да се напише функција која како аргумент прима три точки во дводимензионален простор и ќе проверува дали тие точки лежат на иста права.
- __________________________________
- #include <stdio.h>
- #include <math.h>
- typedef struct tocka2D {
- double x;
- double y;
- } tocka2D;
- float rastojanie(tocka2D t1, tocka2D t2) {
- return sqrt ((t1.x - t2.x) * (t1.x - t2.x) + (t1.y - t2.y) * (t1.y - t2.y));
- }
- typedef struct tocka3D {
- double x;
- double y;
- double z;
- } tocka3D ;
- float rastojanie3D(tocka3D t1, tocka3D t2) {
- return sqrt ((t1.x - t2.x) * (t1.x - t2.x) + (t1.y - t2.y) * (t1.y - t2.y) + (t1.z - t2.z)*(t1.z - t2.z));
- }
- int ista_prava(tocka2D t1, tocka2D t2, tocka2D t3) {
- return ((t1.y-t2.y)/(t1.x - t2.x)) == ((t2.y-t3.y)/(t2.x - t3.x));
- }
- int main() {
- float x1, y1, x2, y2;
- scanf("%f %f", &x1, &y1);
- scanf("%f %f", &x2, &y2);
- tocka2D t1 = { x1, y1 };
- tocka2D t2 = { x2, y2 };
- printf("%.2f\n", rastojanie(t1, t2));
- float z1, z2;
- scanf("%f %f", &z1, &z2);
- tocka3D t3 = {x1, y1, z1};
- tocka3D t4 = {x2, y2, z2};
- printf("%.2f\n", rastojanie3D(t3, t4));
- tocka2D t5 = {z1, z2};
- printf("%d\n", ista_prava(t1, t2, t5));
- return 0;
- }
- __________________________________
- 2-ра задача
- __________________________________
- Да се напише структура која ќе опишува отсечка во дводимензионален простор (две точки). Потоа да се напише функција која ќе проверува дали две отсечки се сечат.
- __________________________________
- #include <stdio.h>
- typedef struct tocka {
- float x;
- float y;
- } tocka;
- typedef struct otsecka {
- tocka prva;
- tocka vtora;
- } otsecka;
- int se_secat(otsecka o1, otsecka o2) {
- int seSecat = 0;
- float k1 = (o1.prva.y - o1.vtora.y)/(o1.prva.x - o1.vtora.x);
- float k2 = (o2.prva.y - o2.vtora.y)/(o2.prva.x - o2.vtora.x);
- // printf("%f %f\n", k1, k2);
- float b1 = o1.prva.y - k1*o1.prva.x;
- float b2 = o2.vtora.y - k2*o2.vtora.x;
- //printf("%f %f\n", b1, b2);
- if(k1 == k2)
- {
- // printf("vleze");
- float levaTocka = o1.prva.x;
- float des = o2.vtora.x;
- return levaTocka >= des;
- }
- float finalno_k = k1-k2;
- float finalno_b = b1-b2;
- float res = -finalno_b/finalno_k;
- // printf("%f ", k1*res + b1);
- seSecat = ((res>=o1.prva.x&&res <= o1.vtora.x)&&(res>= o2.prva.x && res <= o2.vtora.x));
- return seSecat;
- }
- int main() {
- float x1, y1, x2, y2;
- scanf("%f %f %f %f", &x1, &y1, &x2, &y2);
- tocka t1 = { x1, y1 };
- tocka t2 = { x2, y2 };
- otsecka o1 = { t1, t2 };
- scanf("%f %f %f %f", &x1, &y1, &x2, &y2);
- t1.x = x1;
- t1.y = y1;
- t2.x = x2;
- t2.y = y2;
- otsecka o2 = { t1, t2 };
- printf("%d", se_secat(o1, o2));
- return 0;
- }
- __________________________________
- 3-та задача
- __________________________________
- Да се напише програма во која од стандарден влез се вчитува N (бројот на производи), а потоа се вчитуваат податоците за N производи (име, цена, количина). Програмата треба на стандарден излез да ја отпечати листата на купени производи и вкупната сума која треба да се плати во следниот облик (пример):
- 1. Flips 10.00 x 3 = 30.00
- 2. CocaCola 75.00 x 2 = 150.00
- 3. ChokoBanana 5.00 x 10 = 50.00
- Total: 230.00
- __________________________________
- #include <stdio.h>
- #define MAX 100
- typedef struct proizvodi{
- char ime[20];
- float cena;
- int kolicina;
- }proizvod;
- int main(){
- int N, i;
- float total=0.0;
- proizvod produkt[MAX];
- scanf("%d", &N);
- for(i=0; i<N; i++){
- scanf("%s", &produkt[i].ime);
- scanf("%f", &produkt[i].cena);
- scanf("%d", &produkt[i].kolicina);
- }
- for(i=0; i<N; i++) {
- printf("%d. ", i+1);
- printf("%s\t", produkt[i].ime);
- printf("%.2f x %d = %.2f\n", produkt[i].cena, produkt[i].kolicina, produkt[i].cena*produkt[i].kolicina);
- total+=produkt[i].cena*produkt[i].kolicina;
- }
- printf("Total: %.2f\n", total);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement