Kezdőoldal » Számítástechnika » Programozás » Hogy kell az alábbi programozá...

BaltasHenry kérdése:

Hogy kell az alábbi programozás feladatokat megoldani?

Figyelt kérdés

C-ben szeretném ezeket megcsinálni(külön feladatok):


Van egy száz elemű tömb és ennek szerentém a második legkisebb/nagyobb elemét.


Megkereseni "a” és „b” változóban található azon

számjegyek darabszámát, amelyeknél a 1. biten 1-es érték van!


és szkriptben szóközt számlálni. Köszi



2012. ápr. 18. 18:03
 1/8 anonim ***** válasza:

"Van egy száz elemű tömb és ennek szerentém a második legkisebb/nagyobb elemét. "

2. legkisebb elem: 2 részproblémára lehet szétszedni

a:legkisebb elem keresése

b:k-nál kisebb elem keresése

A pszeudokódot írom:

//legkisebb elem keresése

min:=supremum;

for i in tomb{

if tomb[i]<min

min=tomb[i]

}

//2.legkisebb elem keresése

min2=min

for i in tomb{

if tomb[i]<min2

min2=tomb[i]

}


if min2<min{print "2. legkisebb elem,min2} else

{print "nincs 2.legkisebb elem}

2012. ápr. 18. 20:44
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:

@20:44

Sorry, hülyeséget írtam.

2 részrobléma:

a: legkisebb elem keresése

b: k-nál nagyobb, legkisebb elem keresése

2012. ápr. 18. 20:50
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:

a: legkisebb elem keresése ez ok (jól írtam)

b: k-nál nagyobb, legkisebb elem keresése


b: részprobléma (pszeudokód)

min2=supremum

for i in tomb{

if tomb[i]<min2 and tomb[i]>min

min2=tomb[i]

}

if min<min2{print "2. legkisebb elem",min2} else

{print "nincs 2.legkisebb elem"}

2012. ápr. 18. 20:59
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:

"Megkereseni "a” és „b” változóban található azon

számjegyek darabszámát, amelyeknél a 1. biten 1-es érték van!"

Az "a" és "b" egy-egy int/char vagy tömb? Byte-onként kell összeszámolni vagy ...?

Mindenesetre bit mask-ot kell készíteni mert közvetlenül nem érheted el a bitketet.


[link]


"és szkriptben szóközt számlálni. Köszi"

Milyen skript-be?

2012. ápr. 18. 21:05
Hasznos számodra ez a válasz?
 5/8 A kérdező kommentje:

köszi a válaszokat, segítettek


végül úgy próbálkoztam, hogy megkerestem min-t és utána mégegyszer végigzongoráztam a tömbön avval a feltétellel, hogy akkor adjon min2-nek értéket: if(tomb[x]<min2 && tomb[x]!=min). Ez jónak tűnik.


Aztán az eredeti pld az, hogy a=123, b=456 és c-be be kell írni a két változóban 5. biten 1-esek darabszámát és csak operátorokkal lehet. Erre ez jutott eszembe(az 5. bitet ugye jobbról kell szémolni?) d=16 c=(a&d+b&d)/16;

Lehet hogy hülyeség, de jobb egyenlőre nem jutott eszembe.


Na hát ennyire vagyok amatőr, hogy nem skript, hanem sztringről van szó. :D Mondjuk str []="itt egy szoveg" -ből kellene megszánolbi a szóközök számát.

2012. ápr. 19. 11:49
 6/8 anonim ***** válasza:

..."megkerestem min-t és utána mégegyszer végigzongoráztam a tömbön avval a feltétellel, hogy akkor adjon min2-nek értéket: if(tomb[x]<min2 && tomb[x]!=min). Ez jónak tűnik."

Végül is jó(megfelelően működik így is), de if(tomb[x]<min2 && tomb[x]>min) intuitívabban tükrözi a gondolatmenetet, hogy:

a: legkisebb elem keresése

b: k-nál nagyobb, legkisebb elem keresése, azaz k (küszöb érték) függvényében a legkisebb elem keresése

itt speciálisan k=lekisebb elem, ezzel az általános sémával egy az egyben meglehetne írni a 3.-ik legkisebb érték meghatározását.


"Megkereseni "a” és „b” változóban található azon

számjegyek darabszámát, amelyeknél a 1. biten 1-es érték van!"

Ezt úgy értelmeztem először, hogy ... amelyeknél a első biten 1-es érték van. (Végül is ez van odaírva)

Akkor az lehet hogy megszámolni "a" és "b" változóban lévő 1-es értékű biteket.


"Erre ez jutott eszembe(az 5. bitet ugye jobbról kell szémolni?) d=16 c=(a&d+b&d)/16;"

Kapiskálod, de nem így érdemes számolni. Először is elég külön-külön összeszámolni.

Lehet helyi érték szerint számolni, lehet fizikai tárolás szerint, lehet balról, lehet jobbról.

Legegyszerűbb és legkézenfekvőbb helyi érték szerint. Végül is bármilyen sorrendbe számolod, a számold darabszám ugyanannyi.

A te példád szerint, helyi érték szerint jobbról (de fizikailag nem biztos hogy jobbról, de ne menjünk bele) d=32 (2^5=32) 0-tól kezdődik a sorszámozás.

Megnézed hány bites a változó mérete, az hogy hány bájtos a sizeof operátor tud mesélni.

Egy for ciklussal előállítasz olyan értékeket melynek csak a 0.-ik majd csak az 1.-ik majd csak a 2.-ik stb. bitje 1-es ezt bitenkénti éseled "&" operátorral ha az így kapott érték nem 0 akkor 1-es van ott különben 0. előállítani ilyen értékeket úgy lehet hogy az 1-et shift-eled balra "<<" operátorral.

2012. ápr. 19. 19:43
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:

"Na hát ennyire vagyok amatőr, hogy nem skript, hanem sztringről van szó. :D Mondjuk str []="itt egy szoveg" -ből kellene megszánolbi a szóközök számát."

A string egy tömb tulajdonképpen,ezen a tömbön kell végigmenni és számolni a szóközöket.

2012. ápr. 19. 19:46
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:

Nem is nyomtam válasz küldését és elküldte ... be sem felyeztem

Dehát a string egy tömb tulajdonképpen,ezen a tömbön kell végigmenni és számolni a szóközöket, 0-tól kell számolni addig míg kisebb mint strlen(str) (a példéd szerint str)

strlen a string hossza, avagy az utolsó karakter utáni index vagyis a végjel indexe...

includeolni kell a string.h-t

2012. ápr. 19. 19:50
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!