Kezdőoldal » Számítástechnika » Programozás » Hogyan kéne megoldani ezt a...

Hogyan kéne megoldani ezt a feladatot C-ben?

Figyelt kérdés

Egy vitorlás hajó által megtett útról egy olyan adathalmaz keletkezett, amelyben minden bejegyzés egy pozícióból és egy időtartamból áll. A pozíció egy kétdimenziós pont, melyen a hajó áthaladt, az időtartam pedig az az idő, ami alatt az előző pozíciótól az aktuális pozícióig elért. A pozíciók között (megfelelő közelítéssel) a hajó egyenesen haladt. A pontok euklideszi térben értelmezettek (laposföldön...), a koordináták méterben vannak megadva (azonban nem feltétlenül egész számok). Az időtartam óra, perc és másodperc tagból áll.


Hozd létre a bejegyzések tárolásához szükséges struktúrákat az alábbi azonosítókkal:


point

x (valós)

y (valós)

time

hour (egész)

minute (egész)

second (egész)

record

position (point)

interval (time)

Írj függvényt in_seconds névvel, mely egy time típussal megadott időintervallumot átvált az eltelt másodpercek számára!


Írd meg a distance nevű függvényt, mely két point típusú pont közötti távolsággal tér vissza!


Írj függvényt average_speed névvel, mely record típusú elemekből álló tömböt kap paraméterként, és visszatér az utazás átlagsebességével m/s mértékegységben (az átlagsebesség a szakaszok összhosszának és az összes eltelt időnek a hányadosa). A tömb első elemének interval tagja irreleváns, hiszen az első pont elérése előtti eseményekre nem vagyunk kíváncsiak.

Eddig erre jutottam: [link]

Igen, ott a vége nincsen túlságosan befejezve, de nem tudom hogyan csináljam.



2021. okt. 31. 14:13
 1/9 Pelenkásfiú ***** válasza:
100%

"typedef struct"

Itt nem adtál nevet a változóknak, csak a típust írtad le.


"int distance(point b)"

Itt két point típusú változó a bemenő paraméter és azoknak a távolságát kell kiszámolni.

Ha nem jut eszedbe, hogyan kell, gondolj egy vektor hosszára.. vagy csak a Pitagorasz-tételre!


"void average_speed(record[], double atlag)"

Ez nem void. A paraméterbe nem kell az atlag.. hanem az lesz a visszatérési értéke.

Lényegében végigmész egy ciklussal, összeadod külön-külön a távolságokat és az időket, utána tudsz átlagot számolni.

2021. okt. 31. 17:16
Hasznos számodra ez a válasz?
 2/9 anonim ***** válasza:

Euklideszi térben távolság számításáról itt olvashatsz bövebben: [link]


#1 > Itt nem adtál nevet a változóknak, csak a típust írtad le.

Szerintem itt pont ezt akarta a kérdezö.


Az average_speed szignatúrájába szerintem írd bele a tömb hosszát is, mert valószínüleg fordításidöben nem fogod tudni a hosszát

2021. okt. 31. 17:55
Hasznos számodra ez a válasz?
 3/9 Pelenkásfiú ***** válasza:

typedef struct {

point;

time;

} record;


Erre gondoltam, csak rosszul másoltam ki...

Itt nincs név, csak típus. Még a feladat leírásában is szerepel, hogy mi legyen.. persze el lehet tőle térni..

2021. okt. 31. 18:10
Hasznos számodra ez a válasz?
 4/9 Pelenkásfiú ***** válasza:

Nem tudom, hogy te módosítottad a codeshare-en a kódot vagy valaki más, de két double különbségét ne int-ként tárold! :)

(Meg persze nem is feltétlenül kell azoknak a köztes eredményeknek változót deklarálni.)

2021. okt. 31. 18:15
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:
Jó, én nagyon béna vagyok. Egyszerűen nem tudom megcsinálni a végét. Eddig így néz ki a dolog. [link]
2021. nov. 1. 21:48
 6/9 Pelenkásfiú ***** válasza:

Ne 0-tól, hanem 1-től indítsd a ciklust!

A legelső record időpontjával még nem kell számolni, ahogy a feladat is írja.

A distance() pedig két pontot vár, tehát átadod neki az "i"-ediket és az "i-1"-ediket.

A 16. és 17. sorban még mindig nem adtál nevet a változóknak. Ez így neked működik? Igazából a feladat leírása is megadja, hogy mit kell odaírnod.

2021. nov. 1. 22:36
Hasznos számodra ez a válasz?
 7/9 A kérdező kommentje:
Akkor valahogy így kéne kinéznie?
2021. nov. 1. 22:47
 8/9 Pelenkásfiú ***** válasza:

Már alakul...

Viszont a "tomb[i]" az egy teljes record.

Annak még hivatkozz a .position és .interval részére amikor átadod az in_seconds() és distance() függvényeknek.

Valamint írj egy main()-t és próbáld futtatni.

Aztán majd a hibaüzenetek megmondják, hogy mit kell még pontosítanod.

2021. nov. 2. 07:01
Hasznos számodra ez a válasz?
 9/9 anonim ***** válasza:

A kód mostani állapotában van egy elég jó példa, hogy miért fontos jó neveket adni a változóidnak. Nézd meg ezt a függvényt:

[link]


Elsöre nem feltételnül látszik a probléma, de ha átnevezem az osszeg1, osszeg2 változókat osszeg_ido és osszeg_tavolsag-ra( [link] egyböl látszik a probléma: idöt osztunk távolsággal, ebböl tuti nem jön ki sebesség. Az osztót és az osztandót felcserélted.

2021. nov. 2. 11:54
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!