Kezdőoldal » Számítástechnika » Programozás » Tudnátok segíteni (C++)?

Tudnátok segíteni (C++)?

Figyelt kérdés

Ezt a programot kellene megírnom, de elakadtam. Előre is köszi a segítséget.

Bemenet:

1. sorban bekér egy számot (1≤N≤100)

Utána ugyan ennyi sorban bekér 2 számot szóközzel elválasztva, Távolság1-től (0≤K≤300), Távolság2-től (0≤P≤300).


Kimenet:

A kimenet első sorába azon bekért elemek darabszámát, illetve sorszámát kell írni sorszám szerint növekvő sorrendben, amelyek Távolság2(P) 100-nál kisebb; és Távolság1(K) 100-nál nagyobb.



Példa

Bemenet

6

42 15

110 20

125 160

166 180

42 100

110 39


Kimenet

2 2 6



2017. okt. 28. 02:56
1 2
 1/17 tabaki ***** válasza:
Kíváncsian várjuk a programodat, hadd lássuk, hol akadtál el. Legjobb, ha hétköznapi szavakkal is részletesen elmeséled, hogy elképzelésed szerint hogyan kéne működnie.
2017. okt. 28. 07:42
Hasznos számodra ez a válasz?
 2/17 anonim válasza:

Csak laikusként kérdezem

,,Kimenet:

A kimenet első sorába" ez nem első oszlop akar lenni?

Illetve nem felcserélve a végén a T2 és T1 érték? Mivel ahogy nézem ha:

T1: 42

T2: 15 és arra teljesül a feltétel ha

T1' nagyobb mint 142 és

T2' kisebb mint 115 akkor igazából nincs olyan feltétel ami erre igaz lenne.


Bár ez lehet csak laikusan tűnik rossznak

2017. okt. 28. 10:59
Hasznos számodra ez a válasz?
 3/17 anonim ***** válasza:

Kérdező: Tabaki kollégával teljes egyetértésben kérdem: hol akadtál el?


#2: A kimenet egy sort tartalmaz.

Az első érték azon elemek darabszámát tartalmazza, ahol:

* a Távolság1 > 100 és

* a Távolság2 < 100

a további értékek meg a fenti feltételnek megfelelő elemek sorszámát tartalmazza.


Jelen esetben két ilyen elem van:

#2: 110 20

#6: 110 39

2017. okt. 28. 11:32
Hasznos számodra ez a válasz?
 4/17 A kérdező kommentje:

A kimenet az egy soros. Az első eleme az a darabszám amelyekre igaz a feltétel.


Szóval


Kimenet

2(Két ilyen sorra igaz) 2(második sor, azaz 110 és 20) 6(hatodik sor, azaz 110 és 39)

2017. okt. 28. 11:33
 5/17 A kérdező kommentje:

Még csak nemrég kezdtem tanulni és rengeteg hiányosságom van.

Tudom, hogy mit "kellene" megcsinálnom, csak nem tudom lekódolni.

Amikor az elején bekérem a Távolság1 és Távolság2 akkor azt Tömb-ben tegyem meg? Hogy hozok létre N elemű tömböt?

Ill. a végén, hogy rendezem sorba?

2017. okt. 28. 11:42
 6/17 anonim ***** válasza:

Igen, tömbbe is lehetne csak arra ügyelj, hogy a C++ szabvány - a C99 szabvánnyal ellentétben - nem támogatja a változó hosszúságú tömböket (variable length array).


Szóval ilyen nem hozható létre:

int n;

cout << "Add meg a pontok számát: ";

cin >> n;

int tavolsag1[n];

int tavolsag2[n];


Helyette ott a vector:

std::vector<double> tavolsag1(n);

std::vector<double> tavolsag2(n);

2017. okt. 28. 11:53
Hasznos számodra ez a válasz?
 7/17 anonim ***** válasza:
100%

Üdv! Én megcsináltam a programot, de nem fogom feltölteni a megoldást. Kiszedtem fontos részeket belőle, amelyeket csak úgy tudsz beírni a megjelölt helyekre, ha tudod a következőket:

- break és continue utasítások

- elágazások, feltételvizsgálat

- dinamikus tömb/2D tömb létrehozása

- függvényhívás

- változó értékének növelése 1-el

- kiíratás


Házi feladatként a sorba rendezés a te dolgod, adtam segítséget is hozzá.


Bocsi, ha egy kicsit csúnya kódot írtam, így tudtam csak megoldani azt, hogy lényeges dolgokat kivegyek belőle.


És a kód: [link]


Sok sikert!

2017. okt. 28. 12:05
Hasznos számodra ez a válasz?
 8/17 anonim válasza:

Akkor én értettem félre a feladatot:D

Én úgy értelmeztem hogy a 2 első bekért elem maga a 2 ,,konstans" és ebből jön a feltétel.

Ezért nem értettem hogy ha a 42 höz és a 15 höz nézem a feltételeket akkor nem adja valahogy:D


De ha a 2 feltétel külön konstans és nem konstans + a feltétel (t1+100> x) akkor érthető.

2017. okt. 28. 12:07
Hasznos számodra ez a válasz?
 9/17 anonim ***** válasza:
72%

#7 Csak pár észrevétel:

- Létezik olyan, hogy std::vector. Vagy std::deque. Egyszerű és biztonságosabb konstrukció, már csak azért is, mert saját magának manageli a memóriafoglalást. Apropó memóriafoglalás:

- Dinamikus tömbökkel dolgozol, de sehol nem szabadítod fel a memóriát amit lefoglalsz neki. Nem, az nem érv, hogy "a program végén úgyis felszabadul".

- Fölöslegesen bonyolítod a beolvasást. Stringstream? Getline? Atoi? Egy >> stream operátorral rögtön áthidalod mindegyiket, és utóbbit hibakezelni is egyszerűbb. Ha már itt tartunk:

- Ha már bonyolítod a beolvasást, legalább tedd biztonságossá. A getline-os megoldásodat azért tudnám megérteni, mert jobban garantálni tudod vele az input megfelelő formátumát. Kivéve, hogy a split függvényedben erre már semmi garancia nincs, sőt, ha a split kap egy olyan sort, amiben 2-nél több szám van, el is hal szépen az egész.

- while(true), meg break-ek intenzív használata. Strukturált kódról hallottál már? Ha nem, ideje ráguglizni.

- Apropó strukturáltság, ez a kód valami átláthatatlan katyvasz. Miért van benne 4 darab ciklus? 2 ciklus bőven elég, nem is értem itt mi történik. Egyszer végig beolvasod a számokat, aztán.. megint elkezded beolvasni őket?


Minél tovább nézem a kódot, annál kevésbé értem, hogy mit is akartál elérni vele. De szerintem sem a feladat megoldására nem alkalmas, sem arra, hogy bármi hasznosat mondjon egy kezdőnek. Ha valamire, inkább az összezavarására alkalmas.

2017. okt. 28. 12:53
Hasznos számodra ez a válasz?
 10/17 tabaki ***** válasza:
#9 minden leütött karaktere igazgyöngyként csillog a szememben. Szerintem az agyonbonyolított (egyszersmind pedagógiai okokból itt-ott megcsonkolgatott) oktatóváltozat követése/toldozgatása teljességgel fölösleges vargabetű lenne Kérdező életében. Többet ért volna egy sallangmentes, a lényegre összpontosító kód. Hogy miféle sorba rendezésre buzdítod, arra pedig nem tudtam rájönni.
2017. okt. 28. 15:34
Hasznos számodra ez a válasz?
1 2

További 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!