Спочатку хороша новина. ШІ Claude 3 Haiku, що у вільному
доступі, трохи оновився й тепер замісь "вірно", таки почав писати слово "правильно", як то має бути в українській мові, бо відповіді можуть бути правильними, а друзі вірними, як і домашні улюбленці.
Оце думаю, а що робить, щоб хоч щось залишалось в голові після контакту із цифрами та різними поняттями. Адже просіявши все що доводилось бачити й вирішувати з допомогою ШІ, і десь трохи своїми силами, то залишаються на денці "булькотливі оператори", котрі тріпочуть там як маленькі карасики. Тож асоціативний метод діє добре. Наприклад, числівник і знаменник у діленні через риску, це конячка (знаменник), а числівник їде верхи й ділиться із конячкою скільки разів стільки вона попросить)) ... чомусь згадався Лесь Подерев'янський "Восток". А джин у пляшці: - "Звізда моїх очей, *** село"...
Тільки на п'ятому тижні дійшло заглянути, щоб ця наука краще засвоювалась, можна поєднувати із базовим курсом C++ "Programming: Basic Skills" на платформі edX, який іде у тандемі із Codio, де все доступно пояснено відразу із прикладами, котрі можна пощупать і побачить, навіть є візуалізатор виконання коду, котрий показує порядок виконання коду. Можна пройти тести та вправи (контрольні питання в кожній темі) й бачити свій об'єктивний результат відносно чітко поставлених завдання. Це якраз для початку вельми добре. Додаткові практичні вправи й сертифікат там платні, десь до $200, тож цю частину можна замінити саме челенджом на STEEM, бо також є й психологічинй фактор колективного навчання.
Домашнє завдання
1. Для чого цикли в програмуванні? Який із видів циклів більше сподобався?
Цикли в програмуванні допомагають вирішувати поставлені завдання, за меншу кількість набраного коду, шляхом зациклення певних дій.
Сподобався цикл, то й що простіший, for (;;;), бо трохи було з ним знайомтво за декілька годи до розгляду цією теми. А ще він має один прикол, якщо ввести -- віднімання, то буде якраз заloopлення до безкінечності у мінусові значення.
Це якраз був прикол, коли треба було декілька файлів конвертувати у gif та закциклити по колу, тож ШІ надав інструменти й скрип, але не всі пояснення відразу, тож слово loop там уже було. Питаю не подумавши, як залупить конвертований gif, сміюсть і редагую відповідь. Тепер буде на шо навішувати супутню інфомрацію.
2. В задачі №8 минулого уроку умову визначення чи знаходяться будинки на одній стороні вулиці слід було записати так:
if( n%2 == m%2 ) замість if( n%20 && m%20 || n%21 && m%21) - поясніть словами обидві умови. Яка краща і чим?
Насправід задача була посталвена так, що обидві згадані формули вирішують задачу, саме порівнюють. Що на початку навчання теж хороший результат і варіант !=0 теж, щоб краще засвоїти і познайомитись із логічними операторами. А помилка в розтягуванні могла виникунти саме через незвичність оператора ==, котрий міг сприйматись саме як дорівнює, а він порівнює.
З точки зору ефективності if (a % 2 == b % 2) скорочує шлях. Це якби потрібно було поїхати у Париж, але наземні шляхи не завжди прямі, а звивисті й петляють поворотами, тож це буде довше як у випадку із (a % 2 == 0 && b % 2 == 0 || a % 2 != 0 && b % 2 != 0), а коротенька, це як літаком долетіти - швидко й майже по прямій. Тобто це прямий і найращий шлях для зменшення навантаження, як набору коду так і швидкодіх його виконання, бо будучи у великому масиві якогось програмного забезпечення, ще й зменшує задіяний ресурс CPU.
3. Вивести число 33 аж 33 рази кожним із наведених у прикладах циклів:
for
Без лічильника, бо не вказано, розпочато з нуля u = 0
і виводить тільки 33, без зайвих символів.
#include <iostream>
using namespace std;
int main() {
for (int u = 0; u < 33; u++) {
cout << "33"<< endl;
}
return 0;
}
З післяумовою
#include <iostream>
using namespace std;
int main() {
int u = 0;
do
{
u++;
cout << "33 "<< endl;
} while (u < 33);
return 0;
}
З передумовою
Без лічильника, бо не вказано що він потрібен.
#include <iostream>
using namespace std;
int main() {
int u = 0;
while (u < 33)
{
u++;
cout << "33"<< endl;
}
return 0;
}
Щоб був лічильник у кожному із представлених варіантів, рядок cout має бути таким:
- 'cout << "33"<< u << endl;' - лічильник покаже від 0 до 32 (33 виводи);
- 'cout << "33"<< u + 1 << endl;' - лічба показів почнеться з 1 до 33.
4. Вивести числа від 11 до 111: 11, 21,31....101, 111 - але число 51 не виводьте (одним видом циклу).
#include <iostream>
using namespace std;
int main() {
int i = 0;
while (i <= 111) {
if ( i > 10 && i != 51) {
cout << i << " ";
}
i++;
}
return 0;
}
5. Вивести таблицю множення на випадкове число, як-то 0:
1 x 0 = 0
2 x 0 = 0
3 x 0 =0
....
10 x 0 = 0
#include <iostream>
using namespace std;
int main() {
for (int u = 0; u < 10; u++)
{
cout << u + 1 << " x 3 = " << (u + 1) * 3 << endl;
}
return 0;
}
6. Вивести квадрати чисел. 1,,4,9,16,25,36,49...400
#include <iostream>
using namespace std;
int main() {
for (int u = 1; u <= 400; u++)
{
cout << u << "^2 = " << u * u << endl;
}
return 0;
}
7. Виведіть степені якогось числа: 1 2 4 8 16 32 64 128... менші за 3000.
Мабуть це правильніше:
#include <iostream>
using namespace std;
int main() {
int salo = 11;
for (int i = 0; salo < 3000; i++) {
cout << salo << endl;
salo *= 2;
}
return 0;
}
Бо спочатку було таке))
#include <iostream>
using namespace std;
int main() {
for (int u = 0; u <= 3000; u++)
if (u == 333)
{
cout << u << "^3 = " << u * u * u << endl;
}
return 0;
}
8. Скільки парних чотирицифрових чисел не діляться на 3
#include <iostream>
using namespace std;
int main() {
int count = 0;
int i = 1000;
while (i < 10000) {
if (i % 2 == 0 && i % 3 != 0) {
cout << i << " ";
count++;
}
i += 2;
}
cout << "Кількість парних чотирицифрових чисел, які не діляться на 3: " << count << endl;
return 0;
}