1. Організувати безперервний введення чисел з клавіатури, пока пользователь не введёт 0. После ввода нуля, показать на экран количество чисел, которые были введены, их общую сумму и среднее арифметическое. Подсказка: необходимо объявить переменную-счетчик, которая будет считать количество введенных чисел, и переменную, которая будет накапливать общую сумму чисел.
Посмотреть код
задача do while c++
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
usingnamespacestd;
intmain()
{
setlocale(LC_ALL,"rus");
intamountDigits=0;// количество введенных чисел
doubletotalSum=0;// общая сумма
doubledigit=0;//
cout<<"Введите числа, для расчета (выйти - 0)\n\n";
do
{
cout<<"Число "<<amountDigits+1<<" = ";
cin>>digit;
if(digit)// если digit любое значение кроме 0(false)
{
amountDigits++;
totalSum+=digit;
}
}while(digit);// пока digit любое значение отличное от 0
Доброго дня! Не можу розібратися в останній задачі.
#include using namespace std; int main() { setlocale(LC_ALL, “rus”); int height = 0; // висота трикутника cout <> height; for (int i = 0; i < height; i ) {
Після цього я перестаю розуміти, що далі відбувається. Взагалі з циклами в ваших уроках я начебто як розібрався, з теорією, пов'язаної з вкладеними циклами мені теж все зрозуміло, хоча і в завданнях з символами все ж виникло кілька запитань. перші 2 завдання я теж вирішив рази з третього і не без допомоги вашого рішення, а ось з третьою завданням я не можу впоратися навіть з вашим рішенням, бо воно мені не зрозуміло.
Уже почав думати про те, щоб пошукати якісь інші уроки, де все пояснюється більш детально, але вирішив все-таки залишити коментар, так як ще не факт, що я знайду такі уроки, а ось ваші уроки мені були добре зрозумілі аж до останньої теми, пов'язаної з циклами, було б прикро просто забити конкретно на ці уроки через однієї проблеми, яку сам я вирішити не зміг. Сподіваюся, поясніть мені як все це робиться, а то начебто сама суть теми зрозуміла: цикл, в якому є ще цикл. Тільки на практиці це виглядає куди складніше, ну або я просто знаходжу прості речі занадто складними.
Ще простіше пояснень ви просто не знайдете – простіше не буває (тому і тут пояснення з спрощеннями, умовчаннями і, як наслідок, з неточностями). Якщо вам незрозуміло, то незрозуміло не те, що пов'язано з мовою C ++, а то, що пов'язано взагалі з логікою побудови обчислення, алгорітмірованіем. Ось на цю частину (логіку) і зверніть увагу.
Вкладені цикли досить прості в теорії, але бувають хитромудрими на практиці. Опишіть що саме незрозуміло? Tut troynaya matrёshka: сама верхня – великий цикл виводить рядки, в залежності від висоти фігури, два вкладених циклу в неї “сидять” поруч на двох стільцях, тільки команди виконують послідовно: спочатку перший вкладений виводить потрібну кількість прогалин, потім другий вкладений необхідну кількість символів – потім наступний рядок…..і так далі вниз до кінцевої цифри висоти.
Для тих, хто в танку, спробую розжувати (для самого себе теж =) ):
for (int i = 0; i > height висоті трикутника * / { for (int j = 1; j < height – i; j ) /*Цикл, которым мы рисуем пробелы перед символом "^". виконується (height – i – 1) к-ть разів. Тобто за кожен прохід зовнішнього циклу довжина порожнього рядка знижується на i (змінна i збільшується на одиницю за кожен прохід зовнішнього циклу, тому кількість разів виконання цього маленького циклу знижується на 1, відповідно довжина порожнього поля перед символом в рядку теж кожен раз скорочується).*/ { cout << ' '; }
for (int j = height – 2 * i; j <= height; j ) /*второй маленький цикл пишет символы "^"в кол-ве height – (height – 2 * i) + 1. Здається трохи заплутано на перший погляд. Якщо зовнішній цикл друкує перший рядок (я = 0), то кількість символів дорівнюватиме: height – height + 2*i + 1 = 1 + я * 2;
З рівняння видно, що застосування змінної height тут зовсім ні до чого – вона взаємознищувалися при вирішенні рівняння. При будь-якому її значенні вона не впливає на кількість виконуваних циклів. Це не помилка програміста, але, що називається, "быдлокод" – негарне рішення задачі з однієї абсолютно непотрібної змінної, вводить в оману читача.
Тому може здатися складним зрозуміти таку заплутану конструкцію, ведь в ней совершенно не обязательно использование "высоты треугольника". Нижче я запропоную свій варіант вирішення, без участі змінної height, адже замість нёё можна поставити взагалі будь-яке значення, хоч нуль, хоч -242148: результат буде той же! */ { cout << '^'; } cout << endl; }
Ось як я вирішив цю задачу без участі змінної height в другому вкладеному циклі (зміна тільки в одному циклі, все решту залишив як і було):
#include using namespace std;
int main() { setlocale(LC_ALL, “rus”);
int height = 0; // висота трикутника
cout <> height;
for (int i = 0; i < height; i ) { for (int j = 1; j < height – i; j ) { cout << ' '; }
for (int j = 0; j < i * 2 + 1; j ) /* кол-во символов "^" в рядку визначається рівнянням: (кол-во символів) = i * 2 + 1. Як бачите, використана лише одна змінна з зовнішнього циклу. Таким образом, кол-во символів буде зростати на 2 кожен прохід зовнішнього циклу. Все просто! */ { cout << '^'; } cout << endl; } return 0; }
Сподіваюся, мій коментар кому-небудь допоможе зрозуміти цю задачу. Всіх благ! P.S. Я сам тільки вчуся, не кидайтесь тапками =)))
“не розумію всі ті дії” – це все не стосується мови С ++, і більше того, не відноситься до програмування взагалі. Це область аналітичного мислення, математичного способу сприйняття, логічних побудов … – цьому вчать в інших місцях і інших курсах.
Сформувати список з послідовності натуральних чисел r1, r2, r3, … р-н , які вводяться з клавіатури. Вивести дані числа спочатку в зворотному порядку, а потім в порядку введення. З отриманого списку видалити всі числа, кратні 3 і вивести отриманий список.
Сформувати список з послідовності натуральних чисел r1, r2, r3, … р-н , які вводяться з клавіатури. Вивести дані числа спочатку в зворотному порядку, а потім в порядку введення. З отриманого списку видалити всі числа, кратні 3 і вивести отриманий спісок.Помогіте мені пжста
доблесну, тут же сайт, який ставить собі за мету хоч чомусь навчити своїх читачів щодо C ++, а не робити замість читачів їхні домашні завдання.
А якщо вам вже зовсім “в кінці кінців” караул по домашньому завданню до уроку, який ви прогуляли – тоді вам сюди: https://purecodecpp.com/archives/2821
У другому вкладеному циклі ви намудрували зі змінною height в умови циклу. Вона не потрібна, а зайва макулатура, так би мовити, голову морочить новачкам. Я сам не відразу зрозумів, що вона там зайва. Ось моє лаконічне рішення з використанням всього двох змінних замість трьох:
for (int j = 0; j < i * 2 + 1; j ) /* кол-во символов "^" в рядку визначається рівнянням: (кол-во символів) = i * 2 + 1. Як бачите, використана лише одна змінна з зовнішнього циклу. Таким образом, кол-во символів буде зростати на 2 кожен прохід зовнішнього циклу. Все просто! */
Lomalla Bosco час 2. (Тільки освоюю С ++). Туго з логікою. У відповідь не підглядав. У підсумку вийшло, але набагато громозче ніж у автора. До речі, автор, що скажете?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include
using namespacestd;
intmain()
{
setlocale(LC_ALL,"Russian");
intheight=0;
intnumOfCharacters=1;//число выводимых символов
cout<>height;
for(inti=height;i>=1;i--)
{
for(intj=1;j<=height;j++)
{
if(j==height)//при достижении места 1-го символа
{
for(intn=1;n<=numOfCharacters;n++)//выводим их количество на экран
1. Редактор коментарів псує код. 2. Вже не один раз писалося тут: не пишіть свій код в коментарі – він нікому не потрібен. 3. Ніхто не стане коментувати ваш код, навіть якби він і не був спотворений.
#include
#include
using namespace std;
int main()
{
INT ч;
cout << "Enter height: " <> годину;
for (int i = 1; i <= ч; i )
{
cout << setw(годину – + 1);
for (INT L = 1; L <= i; л ++)
{
if (л == 1)
cout << "^";
else
cout << "^^";
}
cout << endl;
}
system("pause");
}
Доброго дня!
Не можу розібратися в останній задачі.
#include
using namespace std;
int main()
{
setlocale(LC_ALL, “rus”);
int height = 0; // висота трикутника
cout <> height;
for (int i = 0; i < height; i )
{
Після цього я перестаю розуміти, що далі відбувається.
Взагалі з циклами в ваших уроках я начебто як розібрався, з теорією, пов'язаної з вкладеними циклами мені теж все зрозуміло, хоча і в завданнях з символами все ж виникло кілька запитань.
перші 2 завдання я теж вирішив рази з третього і не без допомоги вашого рішення, а ось з третьою завданням я не можу впоратися навіть з вашим рішенням, бо воно мені не зрозуміло.
Уже почав думати про те, щоб пошукати якісь інші уроки, де все пояснюється більш детально, але вирішив все-таки залишити коментар, так як ще не факт, що я знайду такі уроки, а ось ваші уроки мені були добре зрозумілі аж до останньої теми, пов'язаної з циклами, було б прикро просто забити конкретно на ці уроки через однієї проблеми, яку сам я вирішити не зміг.
Сподіваюся, поясніть мені як все це робиться, а то начебто сама суть теми зрозуміла: цикл, в якому є ще цикл. Тільки на практиці це виглядає куди складніше, ну або я просто знаходжу прості речі занадто складними.
Ще простіше пояснень ви просто не знайдете – простіше не буває (тому і тут пояснення з спрощеннями, умовчаннями і, як наслідок, з неточностями).
Якщо вам незрозуміло, то незрозуміло не те, що пов'язано з мовою C ++, а то, що пов'язано взагалі з логікою побудови обчислення, алгорітмірованіем. Ось на цю частину (логіку) і зверніть увагу.
Вкладені цикли досить прості в теорії, але бувають хитромудрими на практиці. Опишіть що саме незрозуміло? Tut troynaya matrёshka: сама верхня – великий цикл виводить рядки, в залежності від висоти фігури, два вкладених циклу в неї “сидять” поруч на двох стільцях, тільки команди виконують послідовно: спочатку перший вкладений виводить потрібну кількість прогалин, потім другий вкладений необхідну кількість символів – потім наступний рядок…..і так далі вниз до кінцевої цифри висоти.
Для тих, хто в танку, спробую розжувати (для самого себе теж =) ):
for (int i = 0; i > height висоті трикутника * /
{
for (int j = 1; j < height – i; j ) /*Цикл, которым мы рисуем пробелы перед символом "^". виконується (height – i – 1) к-ть разів. Тобто за кожен прохід зовнішнього циклу довжина порожнього рядка знижується на i (змінна i збільшується на одиницю за кожен прохід зовнішнього циклу, тому кількість разів виконання цього маленького циклу знижується на 1, відповідно довжина порожнього поля перед символом в рядку теж кожен раз скорочується).*/
{
cout << ' ';
}
for (int j = height – 2 * i; j <= height; j ) /*второй маленький цикл пишет символы "^"в кол-ве height – (height – 2 * i) + 1. Здається трохи заплутано на перший погляд. Якщо зовнішній цикл друкує перший рядок (я = 0), то кількість символів дорівнюватиме: height – height + 2*i + 1 = 1 + я * 2;
З рівняння видно, що застосування змінної height тут зовсім ні до чого – вона взаємознищувалися при вирішенні рівняння. При будь-якому її значенні вона не впливає на кількість виконуваних циклів. Це не помилка програміста, але, що називається, "быдлокод" – негарне рішення задачі з однієї абсолютно непотрібної змінної, вводить в оману читача.
Тому може здатися складним зрозуміти таку заплутану конструкцію, ведь в ней совершенно не обязательно использование "высоты треугольника". Нижче я запропоную свій варіант вирішення, без участі змінної height, адже замість нёё можна поставити взагалі будь-яке значення, хоч нуль, хоч -242148: результат буде той же! */
{
cout << '^';
}
cout << endl;
}
Ось як я вирішив цю задачу без участі змінної height в другому вкладеному циклі (зміна тільки в одному циклі, все решту залишив як і було):
#include
using namespace std;
int main()
{
setlocale(LC_ALL, “rus”);
int height = 0; // висота трикутника
cout <> height;
for (int i = 0; i < height; i )
{
for (int j = 1; j < height – i; j )
{
cout << ' ';
}
for (int j = 0; j < i * 2 + 1; j ) /* кол-во символов "^" в рядку визначається рівнянням: (кол-во символів) = i * 2 + 1. Як бачите, використана лише одна змінна з зовнішнього циклу. Таким образом, кол-во символів буде зростати на 2 кожен прохід зовнішнього циклу. Все просто! */
{
cout << '^';
}
cout << endl;
}
return 0;
}
Сподіваюся, мій коментар кому-небудь допоможе зрозуміти цю задачу. Всіх благ! P.S. Я сам тільки вчуся, не кидайтесь тапками =)))
Звернути то я звернув, тільки що толку з цього? Я до сих пір не розумію всі ті дії, які знаходяться в зовнішньому циклі.
“не розумію всі ті дії” – це все не стосується мови С ++, і більше того, не відноситься до програмування взагалі.
Це область аналітичного мислення, математичного способу сприйняття, логічних побудов … – цьому вчать в інших місцях і інших курсах.
Можете піти на форум за допомогою і обговоренням:
http://rus-linux.net/forum/viewforum.php?f=31
Не пишіть сюди ці свої дурниці (які вважаєте програмним кодом). Пишіть це краще … на зборах ;-)
Сформувати список з послідовності натуральних чисел r1, r2, r3, … р-н , які вводяться з клавіатури. Вивести дані числа спочатку в зворотному порядку, а потім в порядку введення. З отриманого списку видалити всі числа, кратні 3 і вивести отриманий список.
Сформувати список з послідовності натуральних чисел r1, r2, r3, … р-н , які вводяться з клавіатури. Вивести дані числа спочатку в зворотному порядку, а потім в порядку введення. З отриманого списку видалити всі числа, кратні 3 і вивести отриманий спісок.Помогіте мені пжста
доблесну, тут же сайт, який ставить собі за мету хоч чомусь навчити своїх читачів щодо C ++, а не робити замість читачів їхні домашні завдання.
А якщо вам вже зовсім “в кінці кінців” караул по домашньому завданню до уроку, який ви прогуляли – тоді вам сюди: https://purecodecpp.com/archives/2821
НЕ “Вот” ;-) – а не треба писати тут цей сміття.
Розважайтеся з цим будинки.
Автор, спасибі за вашу працю!
У другому вкладеному циклі ви намудрували зі змінною height в умови циклу. Вона не потрібна, а зайва макулатура, так би мовити, голову морочить новачкам. Я сам не відразу зрозумів, що вона там зайва. Ось моє лаконічне рішення з використанням всього двох змінних замість трьох:
for (int j = 0; j < i * 2 + 1; j ) /* кол-во символов "^" в рядку визначається рівнянням: (кол-во символів) = i * 2 + 1. Як бачите, використана лише одна змінна з зовнішнього циклу. Таким образом, кол-во символів буде зростати на 2 кожен прохід зовнішнього циклу. Все просто! */
Lomalla Bosco час 2. (Тільки освоюю С ++). Туго з логікою. У відповідь не підглядав. У підсумку вийшло, але набагато громозче ніж у автора.
До речі, автор, що скажете?
дивно, чомусь код на сайті інший стає, не той, що я скидав. що Де? Де запит на введення висоти.
1. Редактор коментарів псує код.
2. Вже не один раз писалося тут: не пишіть свій код в коментарі – він нікому не потрібен.
3. Ніхто не стане коментувати ваш код, навіть якби він і не був спотворений.