Zkouška na VSB – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zkouška na VSB – C / C++ – Fórum – Programujte.comZkouška na VSB – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
4. 11. 2012   #1
-
0
-

#include <iostream>
using namespace std;

const int N =20;

char Grid[N][N];

void ClearGrid()
{
for(int i = 0; i < N; i++)
  for(int j = 0; j < N; j++)
   Grid[i][j] = ' ';
}

void Star(const int Row, const int Column)
{
if (0 <= Row && Row < N && 0 <= Column && Column < N)
  Grid[Row][Column] = '*';
else
  cout << "Row or column is out of valid range!" << endl;
}

void PrintGrid()
{
for(int i = 0; i < N; i++)
{
  for(int j = 0; j < N; j++)
   cout << Grid[i][j];
  cout << endl;
}
cout << endl;
}

void main()
{
ClearGrid();


for(int i=0;i<N;i++)
  for(int j=0;j<N;j++)
    //if ((i%3==0) || (i%5==0) && (i%3!=0)) // Řešení učitele.
     if(((i%3!=0) && (i%5==0))||((i%3==0) && (i%5!=0))) //Moje řešení, které označil za chybné.
Star(i,j);

PrintGrid();
}

Zadání: (1<N<30) při změně N to bude vypisovat řádky.

do prvku grid [i][j] zapiste hvezdicku, pokud index radku i
je delitelný 3 beze zbytku nebo je delitelný 5 beze zbytku,
ale neni delitelný soucastne 3 a 5 beze zbytku.

Ze zadání usuzuji, že by neměl být vypsán řádek 0,15 a 30 jelikož jsou dělitelné 3 a zároveň 5 beze zbytku. Ale učitelovo řešení vypisuje i řádek 0 a 15. Takže nevím co je správné!

Mohl by někdo posoudit výsledky a zdůvodnit který je správně? Děkuji georges15

Nahlásit jako SPAM
IP: 176.97.247.–
KIIV
~ Moderátor
+43
God of flame
4. 11. 2012   #2
-
0
-

if ((i%3==0) || (i%5==0) && (i%3!=0))  se vypise VZDY, kdyz je to delitelne 3 ... k nejaky dalsi podmince se to diky zkracenemu vyhodnocovani nemuze dostat... + samozrejme kdyz je to delitelne 5 ... (nasobky 5*3 prebere ta trojka)

( 1 or cokoliv ) == 1  (vzdy)

tj. ucitelovo nesplnuje zadani..

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Řešení
KIIV
~ Moderátor
+43
God of flame
4. 11. 2012   #3
-
+1
-
Zajímavé
Vyřešeno Nejlepší odpověď

+ na ucitelovo plati booleovsky zakon "absorbce negace"  ->  vznikne z toho jen:  (i%3==0) || (i%5==0)

u tebe by melo jit jeste zjednodusit:   if ( (i%3==0) ^ (i%5==0) )     to co pouzivas za funkci je XOR :)

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Jirka
~ Anonymní uživatel
305 příspěvků
5. 11. 2012   #4
-
0
-

Myslím si to stejné! Učitel to asi nějak zaj*b*l, protože u if ((i%3==0) || (i%5==0) && (i%3!=0))
je (i%3!=0) uplně k ničemu ...

Nahlásit jako SPAM
IP: 78.108.152.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 41 hostů

Podobná vlákna

Delphi dotaz z VŠB — založil Tomáš Bělunek

Program do školy v c++ na VSB — založil danieldorda

Program do školy v c++ na VSB — založil danieldorda

Login - zkouška — založil davidus

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý