Math class – zad.lista wolframalpha.com
„*” oprócz operacji mnożenia oznacza zadania [nieco] trudniejsze. (Tym bardziej warto się więc z nimi zmierzyć!)
Przypomnienie/wyjaśnienie: dla naturalnych a i b napis „a%b” oznacza w C/C++ resztę z dzielenia a przez b, czyli to co matematycy i informatycy czasem (nawet całkiem często!) zapisują jako „a mod b”. Na wszelki wypadek przypomnę też, że z kolei „a/b” oznacza w C/C++ (dla a i b naturalnych!) część całkowitą liczby a/b.
Zad. 0. Jak dla danych a i b zdefiniować a mod b przy użyciu ? (Tzn. jak tradycyjnymi działaniami arytmetycznymi z a, b i otrzymać wartość a mod b ?)
Z½. Jak dla danych a i b zdefiniować przy użyciu operacji mod? (Tzn. jak z a, b za pomocą tradycyjnych działań arytmetycznych oraz operacji mod otrzymać wartość ?)
Z¾. (x i y to liczby całk. dod.) Jakie wartości może przyjąć wyrażenie x mod y? Ile rozwiązań ma równanie x mod 11 = 5? A ? A x mod 5 = 11? A ?
Z1. Jak przebiega działanie poniższych algorytmów? (Ustal, jakie wartości przyjmują kolejno zmienne i co pojawia się na ekranie). Oczywiście warto (później) sprawdzić swoje przypuszczenia na komputerze. (Oczywiście wpisując to wraz z odpowiednimi deklaracjami zmiennych w funkcji main).
Z
e)
for (i=1; i<10; i=i+1)
for (j=0; j<10; j=j+1)
cout << i << j;
f)
s=0;
for (i=1; i<10; i=i+1)
for (j=0; j
s=s+i;
g)
for (i=10; i>0; i=i-1)
for (j=1; j<10; j=j+1)
if (j
h)
a=0;
b=0;
for (i=0; i<123; i=i+1)
if (i%3==0) if (i%2==1) a++; else b++;
a)
for (i=2014; i>0; i=i-9)
cout << i;
b)
z=0;
for (i=2014; i>0; i=i-9)
z=z+1;
c)
for (i=0; i<44; i=i+1)
if (i%3==0) cout << "Hehe!";
/* Chyba da sie domyslic, co robi ta instrukcja z "if"?
I co znaczy "=="? - w odroznieniu od "="! */
d)
S=0;
for (i=0; i<100; i=i+1) S=S+i;
// Lepiej nie mylic "s" z "S"
// - to dwie rozne rzeczy!
1’. Czy umiesz dopisać coś do algorytmu h), tak żeby wartość b rosła przy każdym i niepodzielnym przez 3? Używając tylko elementów C++, które poznaliśmy na lekcji, daje się to zrobić nawet na dwa sposoby!
Z2. A co wypisze ten programik? (Informatycy mówią raczej „fragment kodu” – sorry!)
Z
for (i=1; i<1000; i=i+1)
cout << "Nigdy nie odpisuję zadań domowych!" << endl;
cout << "I love computer science!";
auważ, że ostatnia instrukcja wykona się tylko raz – czyli już po wyjściu z pętli (mimo pięknego przecież wcięcia w zapisie – komputer na estetykę nie jest w ogóle czuły!).
A
(miejsce na notatki)
ten?
for (i=1; i<1000; i=i+1)
{
cout << "Nigdy nie odpisuję zadań domowych!" << endl;
cout << "I love computer science!";
}
N
c)
for (i=1; i<10; i=i+1)
{
cout << i;
for (j=1; j<6; j=j+1)
cout << j;
cout << i;
cout << endl;
}
iezłe, co?
Wobec tego zastosuj teraz polecenie Z1 do fragmentów:
a)
for (i=1; i<10; i=i+1)
{
for (j=1; j<10; j=j+1)
cout << i;
cout << endl;
}
b)
for (i=1; i<10; i=i+1)
{
for (j=1; j
cout << j;
cout << endl;
}
Z
d)
5
45
345
2345
12345
ę)
54321
45432
34543
23454
12345
c)
12345
1234
123
12
1
b)
55555
4444
333
22
1
a)
54321
54321
54321
54321
54321
e)
12345
23451
34512
45123
51234
2,5. I odwrotnie – spróbuj (pętlami!)
wygenerować na ekranie coś takiego:
Z3. Napisz program znajdujący sumę liczb nieparzystych dodatnich mniejszych od n (gdzie n wczyta się od Użytkownika („cin”)).
Z
a)
for (i=44; i>0; i--)
{
for (j=1; j
for (j=i; j<44; j++) cout << "*";
}
b)
for (i=1; i<=4; i++)
for (j=1; j<=4; j++)
{
for (k=j; k<=3; k++) cout << " ";
for (k=1; k<=2*j; k++) cout << "*";
cout << endl;
}
cout << " **" << endl;
c)
for (i=2; i<=6; i++)
for (j=1; j<=i; j++)
{
for (k=j; k<=5; k++) cout << " ";
for (k=1; k<=2*j; k++) cout << "*";
cout << endl;
}
cout << " **" << endl;
d)
for (i=1; i<=16; i++)
{
j=i%4;
if (j==0) j=4;
for (k=j; k<=3; k++) cout << " ";
for (k=1; k<=2*j; k++) cout << "*";
cout << endl;
}
cout << " **" << endl;
4. (Święta za pasem) Co wypiszą programy: (" " to łańcuch (tekst) będący spacją – odstępem, "*" – to gwiazdka)
Z5. Napisz program, który pozwoli Ci się wreszcie dowiedzieć, dla których naturalnych liczb dwucyfrowych funkcja f(x)=x377x2+1001 ma wartości niedodatnie.
Z6. Napisz program, dzięki któremu będziesz być może pierwszym człowiekiem, który dowie się, jaka jest najmniejsza liczba trzycyfrowa spełniająca warunek x2 > 123x+999999.
Z7. Napisz program wypisujący dla danych liczb całkowitych a i b (zakładamy, że a b) w kolejności malejącej wszystkie wielokrotności siódemki z przedziału (a, b) i pisze, ile ich jest.
Z8. Napisz program obliczający sumę 12 – 33 + 52 – 73 + ... – 20113.
: ~msliw~msliw -> Zad. Podaj wyniczki (pomyśl o uzasadnieniu czy z czegoś może korzystasz?): a) 2~msliw -> Grupa napisz program, który: (P1) wczyta rzeczywistą liczbę~msliw -> Abafazi, abafana, umfazi, umdlali, umzali; chłopcy, mężatka, mężatki, rodzic, zawodnik~msliw -> Odpowiedzi powinny być napisane tak, by było z nich widać Państwa [możliwie głębokie] zrozumienie tematu!
|