Напишите в комментариях к этой записи консольные приложения для решения этих задач, укажите также код задачи. Пример решения.
Решены задачи: 2-4,7. Не решены: 1,5,6,8-28.
Задачи
W5.1. Имеется фрагмент программы в виде оператора цикла с параметром, обеспечивающий вывод на экран «столбиком» всех целых чисел от 10 до 30. Оформить этот фрагмент в виде:
а) оператора цикла с предусловием;
б) оператора цикла с постусловием.
W5.2. Имеется фрагмент программы в виде оператора цикла с параметром, обеспечивающий вывод на экран «столбиком» всех целых чисел от 100 до 80. Оформить этот фрагмент в виде:
а) оператора цикла с предусловием;
б) оператора цикла с постусловием.
W5.3. Имеется фрагмент программы в виде оператора цикла с параметром, обеспечивающий вывод на экран «столбиком» квадратного корня из всех целых чисел от a до b (a > b). Оформить этот фрагмент в виде:
а) оператора цикла с предусловием;
б) оператора цикла с постусловием.
W5.4. Дано натуральное число. Определить:
а) количество цифр в нем;
б) сумму его цифр;
в) произведение его цифр;
г) среднее арифметическое его цифр;
д) сумму квадратов его цифр;
е) сумму кубов его цифр;
ж) его первую цифру;
з) сумму его первой и последней цифр.
W5.5. Известны оценки по информатике каждого из 20 учеников класса. В начале списка перечислены все пятерки, затем все остальные оценки. Сколько учеников имеют по информатике оценку «5»? Условный оператор не использовать. Рассмотреть два случая:
1) известно, что пятерки имеют не все ученики класса;
2) допускается, что пятерки могут иметь все ученики класса.
W5.6. Известны сведения о количестве осадков, выпавших за каждый день мая. Первого мая осадков не было. Определить, в течение какого количества первых дней месяца непрерывно, начиная с первого мая, осадков не было? Условный оператор не использовать. Рассмотреть два случая:
1) известно, что в какие-то дни мая осадки выпадали;
2) допускается, что осадков могло не быть ни в какой день мая.
W5.7. Напечатать минимальное число, большее 200, которое нацело делится на 17.
W5.8. Найти максимальное из натуральных чисел, не превышающих 5000, которое нацело делится на 39.
W5.9. Известны данные о росте 15 юношей класса, упорядоченные по убыванию. Нет ни одной пары учеников, имеющих одинаковый рост. В начале учебного года в класс поступил новый ученик. Какое место в перечне ростов займет рост этого ученика? Известно, что его рост не совпадает с ростом ни одного из учеников класса, превышает рост самого низкого ученика и меньше роста самого высокого. Условный оператор не использовать.
W5.10. Известно количество очков, набранных каждой из 20-ти команд-участниц первенства по футболу. Перечень очков дан в порядке убывания (ни одна пара команд не набрала одинаковое количество очков). Определить, какое место заняла команда, набравшая N очков (естественно, что значение N имеется в перечне). Условный оператор не использовать.
W5.11. Гражданин 1 марта открыл счет в банке, вложив 1000 руб. Через каждый месяц размер вклада увеличивается на 2% от имеющейся суммы. Определить:
а) за какой месяц величина ежемесячного увеличения вклада превысит 30 руб.;
б) через сколько месяцев размер вклада превысит 1200 руб.
W5.12.. Начав тренировки, лыжник в первый день пробежал 10 км. Каждый следующий день он увеличивал пробег на 10% от пробега предыдущего дня. Определить:
а) в какой день он пробежит больше 20 км;
б) в какой день суммарный пробег за все дни превысит 100 км.
W5.13. В некотором году (назовем его условно первым) на участке в 100 гектаров средняя урожайность ячменя составила 20 центнеров с гектара. После этого каждый год площадь участка увеличивалась на 5%, а средняя урожайность на 2%. Определить:
а) в каком году урожайность превысит 22 центнера с гектара;
б) в каком году площадь участка станет больше 120 гектаров;
в) в каком году общий урожай, собранный за все время, начиная с первого года, превысит 800 центнеров.
W5.14. Найти наибольший общий делитель двух заданных натуральных чисел, используя алгоритм Евклида.
W5.15. Найти наименьшее общее кратное двух заданных натуральных чисел.
W5.16. Даны натуральные числа a и b, обозначающие соответственно числитель и знаменатель дроби. Сократить дробь, т. е. найти такие натуральные числа p и q, не имеющие общих делителей, что p/q = a/b.
W5.17. Дан прямоугольник с размерами 425 х 131 . От него отрезают квадраты со стороной 131, пока это возможно. Затем от оставшегося прямоугольника вновь отрезают квадраты со стороной, равной 425 — 131·3 = 32, и т. д. На какие квадраты и в каком их количестве будет разрезан исходный прямоугольник?
W5.18. Дан прямоугольник с размерами a x b. От него отрезают квадраты максимального размера, пока это возможно. Затем от оставшегося прямоугольника вновь отрезают квадраты максимально возможного размера и т. д. На какие квадраты и в каком их количестве будет разрезан исходный прямоугольник?
W5.19. Даны целые числа a и b (a > b). Определить:
а) результат целочисленного деления a на b, не используя стандартную операцию целочисленного деления;
б) остаток от деления a на b, не используя стандартную операцию вычисления остатка.
W5.20. Даны натуральные числа m и n. Получить все кратные им числа, не превышающие m·n. Условный оператор не использовать. Задачу решить двумя способами.
W5.21. В некоторой стране используются денежные купюры достоинством в 1, 2, 4, 8, 16, 32 и 64. Дано натуральное число n. Как наименьшим количеством таких денежных купюр можно выплатить сумму n (указать количество каждой из используемых для выплаты купюр)? Предполагается, что имеется достаточно большое количество купюр всех достоинств.
W5.22. Дано натуральное число (пусть запись этого числа в десятичной системе имеет вид akak-1…a0 ). Найти:
а) знакочередующуюся сумму цифр этого числа a0 — a1 +… + (-1)kak;
б) знакочередующуюся сумму цифр этого числа ak — ak—1 +… + (-1)ka0;
Примечание. В обеих задачах условный оператор и операцию возведения в степень не использовать.
W5.23. Дано натуральное число. Найти:
а) число, получаемое при прочтении его цифр справа налево;
б) число, получаемое в результате приписывания по двойке в начало и конец записи исходного числа;
в) число, получаемое в результате удаления из него всех цифр а;
г) число, получаемое из исходного перестановкой его первой и последней цифр;
д) число, образованное из исходного приписыванием к нему такого же числа.
W5.24. Известен факториал числа. Найти это число (факториал числа n равен 1 ·2 · … ·n).
W5.25. Дано натуральное число. Определить номер цифры 3 в нем, считая от конца числа. Если такой цифры нет, ответом должно быть число 0, если таких цифр в числе несколько — должен быть определен номер самой правой из них.
W5.26. Дано натуральное число. Определить сумму m его последних цифр. Если заданное число — менее чем m-значное, то «недостающие» цифры при решении задачи не обрабатывать.
W5.27. Дано натуральное число. Найти его наименьший делитель, отличный от 1.
W5.28. Используя метод деления отрезка пополам, найти приближенное (с точностью 0,001) значение корня уравнения f(x)=0 на отрезке [a, b]:
а) f(x) = x4 + 2x3 — x -1; a=0, b=1;
б) f(x) = x3 — 0,2x2 — 0,2x -1,2; a=1, b=1,5.
NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.
///Задача 5.14 и 5.15
Console.WriteLine(«NOD(25:5)=={0}»,NOD(25,5));
Console.WriteLine(«NOK(25:5)=={0}»,(25*5)/NOD(25,5));
Console.ReadKey();
}
public static int NOD(int NomberOne, int NomberTwo)
{
if (NomberTwo == 0)
return NomberOne;
return NOD(NomberTwo, NomberOne % NomberTwo);
}
W5. Разные задачи на циклы с условиемСильно длинные посты делать нельзя, так что поделено на 2 части.
Часть 1
W5. Разные задачи на циклы с условиемЧасть 2
Подскажите , как сделать задание W5.19?
Подскажите, как решить задание W5.19?
W5.25. Дано натуральное число. Определить номер цифры 3 в нем, считая от конца числа. Если такой цифры нет, ответом должно быть число 0, если таких цифр в числе несколько — должен быть определен номер самой правой из них.
Алексей В, вроде бы верно, но есть существенные недочеты:
— плохие имена, иногда противоположные (например count)
— можно на много проще (на что можно заменить break и как можно избавить от count и как можно избавиться от последнего if)
W5.1. Имеется фрагмент программы в виде оператора цикла с параметром, обеспечивающий вывод на экран «столбиком» всех целых чисел от 10 до 30. Оформить этот фрагмент в виде:
а) оператора цикла с предусловием;
б) оператора цикла с постусловием.
// предусловие
for (int i = 10; i < 31; i++)
{
Console.WriteLine(i);
}
// Постусловие
int a = 10;
while (a < 31)
Console.WriteLine(a++);
}
}
}
W5.2. Имеется фрагмент программы в виде оператора цикла с параметром, обеспечивающий вывод на экран «столбиком» всех целых чисел от 100 до 80. Оформить этот фрагмент в виде:
а) оператора цикла с предусловием;
б) оператора цикла с постусловием.
Евгений, верно.
W5.1. Имеется фрагмент программы в виде оператора цикла с параметром, обеспечивающий вывод на экран «столбиком» всех целых чисел от 10 до 30. Оформить этот фрагмент в виде:
а) оператора цикла с предусловием;
б) оператора цикла с постусловием.
Верно.
W5.5. Известны оценки по информатике каждого из 20 учеников класса. В начале списка перечислены все пятерки, затем все остальные оценки. Сколько учеников имеют по информатике оценку «5»? Условный оператор не использовать. Рассмотреть два случая:
1) известно, что пятерки имеют не все ученики класса;
2) допускается, что пятерки могут иметь все ученики класса.
Не очень поняла насчет этих 2-х случаев, поэтому взяла рандомное расставление оценок. В textBox7 выводятся все оценки, в textBox8 — число пятерок.
Софья! 1 оператор — лишний (поставил //). Вывод оценки в textBox7 заменил на консольный вывод для того, чтобы остаться в консольном приложении. Засылку в textBox8 (поставил //) заменил на вывод ответа после цикла (по той же причине). В целом задача Вами решена для произвольной последовательности оценок, что хорошо.
Теперь посмотрим на условие задачи: «В начале списка перечислены все пятерки, затем все остальные оценки.» То есть можно считать, что они упорядочены по убыванию. Значит, алгоритм может быть короче:
Любопытно, что применение: 1) while (arr[j] == 5 && j<20) ЛИБО 2) while (j<20 & arr[j] == 5) приводит к ошибке Runtime:
System.IndexOutOfRangeException: "Индекс находился вне границ массива."
Это ответ на Ваш вопрос, если Вы зададите все "5" через arr[i] = rnd.Next(5, 6);
Причина ошибки, когда все "5" в том, что после 20 раз j=20, поэтому проверить arr[20] невозможно (последний элемент 19-й (вариант 1).
При использовании 2 варианта (& — полный оператор конъюнкции) вычисляются сначала оба условия, в том числе и arr[20]==5, что невозможно.
Конструкция while (j<20 && arr[j] == 5) при 20-ти "5" срабатывает, так как укороченный оператор конъюнкции не вычисляет второе условие, если первое — ложное.
Об этом написано в теории, но понимание этого приходит через практику. Спасибо Вам за вопрос.
Задача W5.4. Дано натуральное число. Определить:
а) количество цифр в нем;
б) сумму его цифр;
в) произведение его цифр;
г) среднее арифметическое его цифр;
д) сумму квадратов его цифр;
е) сумму кубов его цифр;
ж) его первую цифру;
з) сумму его первой и последней цифр.
Задача W5.7. Напечатать минимальное число, большее 200, которое нацело делится на 17.
Кирилл, все верно.
5.7
Console.WriteLine(«Enter natural number: «);
int num = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(«Enter denominator: «);
int den = Convert.ToInt32(Console.ReadLine());
int x=0;
for (int i = 1; i <= num / den; i++)
{
x = den * i;
}
Console.WriteLine($»minimum number greater than natural number = {x + den} «);
W5.3 Имеется фрагмент программы в виде оператора цикла с параметром, обеспечивающий вывод на экран «столбиком» квадратного корня из всех целых чисел от a до b (a > b).
Оформить этот фрагмент в виде:
а) оператора цикла с предусловием;
б) оператора цикла с постусловием.
Кирилл! В принципе верно. Условие «до b» следует понимать как «включая b», поэтому a>=b.
Задача W5.2. Имеется фрагмент программы в виде оператора цикла с параметром, обеспечивающий вывод на экран «столбиком» всех целых чисел от 100 до 80. Оформить этот фрагмент в виде:
а) оператора цикла с предусловием;
б) оператора цикла с постусловием.
Пример решения.
Николай! Так тоже можно.
Но обычно цикл for { } называют циклом с параметром, а цикл while (у меня) циклом с предусловием.