Kezdőoldal » Számítástechnika » Programozás » Valaki elmagyarázná nekem?

Valaki elmagyarázná nekem?

Figyelt kérdés

#include <iostream>

using namespace std;


int main()

{

double i, j;

double szam;

cin>>szam;

for ( i = 2; i < szam; i++ )

{

for ( j = 2; j <= i/2; j++ )

{

if ( ! ( i % j ) ) break; //Ezt a sort nem

//értem.

}


if ( j > i / 2 ) cout << i << endl;

}

system("pause>nul");

return 0;

}


valaki elmagyarázná nekem azt a sort.Ez a progi a prímszámokat írja ki.Az se lenne baj ha valaki az egész kódot elmagyarázná mert nem teljesen világos.

előre is kösz!


2012. febr. 6. 21:50
 1/2 anonim ***** válasza:

i%j -> maradékos osztás. Ha osztható, nullát ad vissza, egyébként a maradékot.


!(i%j) -> ugyanaz negálva. Ha nem osztható, akkor nullát ad, ha osztható, akkor nem nullát.

2012. febr. 6. 21:52
Hasznos számodra ez a válasz?
 2/2 iostream ***** válasza:

A pírmszámokat írja ki? Dehát abból végtelen sok van :)


Amúgy az a sor:

if ( ! ( i % j ) ) break;


A break gondolom világos, ha a feltétel igaz, kilép a belső ciklusból.

A feltétel pedig az, hogy !(i%j). A % operátor kifejezése azt az értéket veszi fel, hogy az első tagot egészosztással elosztva a másodikkal mekkora maradékot kapsz. Tehát 3%5 az 3, 10%3 az 1, 17%15 az 2.

A ! logikai tagadás, ami a logikai ellentettjét veszi az operandusának.

Az operandusa itt az i%j kifejezés, ami egy szám. Számból logikai érték úgy lesz, hogy ha 0 akkor hamis, egyébként igaz.

Oszthatóságnál a 0 azt jelenti, hogy osztható, hiszen maradék nélkül megvan benne. Tehát ha osztható, akkor hamis, ha nem osztható, akkor igaz. Ezt tagadod le.


Azaz: ha osztható, akkor kilép a ciklusból.

2012. febr. 6. 21:56
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!