Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/295: Рейтинг темы: голосов - 295, средняя оценка - 4.78
2 / 2 / 0
Регистрация: 25.11.2011
Сообщений: 29

Простейшие задачи с циклами

25.11.2011, 10:21. Показов 57866. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1.) Дано натуральное число. Определить:количество четных цифр в нем. Составное условие и более одного неполного условного оператора не использовать;

2.) Найти среднее арифметическое всех целых чисел от а до b (значения а и b вводятся с клавиатуры; )

3.) Начав тренировки, лыжник в первый день пробежал 10 км. Каждый следующий день он увеличивал пробeг на 10% от пробега предыдущего дня. Определить в какой день суммарный пробег за все дни превысит 100 км.

4.) Известны данные о количестве осадков, выпавших за каждый день мая. Первого мая осадков не было. Определить, в течение какого количество первых дней месяца непрерывно, начиная с первого мая, осадков не было. Условный оператор не использовать. Рассмотреть случай когда известно, что в какие-то мая осадки выпадали.

Добавлено через 52 минуты
Забыл написать во второй задаче условие (b>=a)
 Комментарий модератора 
Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.11.2011, 10:21
Ответы с готовыми решениями:

Задачи с циклами
Кто сможет, помогите решить задачи, используя С# 1. С помощью цикла со счетчиком вывести на экран в одну строку все двузначные числа,...

Решение задачи различными циклами
Решить задачу тремя способами- используя операторы цикла while, do while и for: целые числа 10,12,14,...60 в обратном порядке в столбик.

Простейшие классы в C#
Народ плз помогите, мне срочно нужно сдать прграммку на C#, выглядит она так: << Задание №4. Простейшие классы Каждый...

20
21 / 21 / 3
Регистрация: 11.01.2011
Сообщений: 72
25.11.2011, 11:38
Если я правильно понял условие задачи №2 то как-то так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
static void Main(string[] args)
        {
            double a, b;
            double sum=0;
            double result = 0;
            Console.Write("Введите a: ");
            a = Convert.ToDouble(Console.ReadLine());
            Console.Write("Введите b: ");
            b = Convert.ToDouble(Console.ReadLine());
 
            for (double i = a; i <= b; i++)
               
            {sum += i; 
            result += i / ((b-a)+1);
            }
               
            
                Console.WriteLine("Cумма чисел от {0} до {1} ровна {2}, среднее арифметическое равно {3}: ",a,b,sum,result );
            
            Console.ReadLine();
        }
2
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
25.11.2011, 13:42
Раз:
C#
1
2
3
4
5
6
7
int n = 123456;
int count = 0;
while (n > 0)
{
   if ((n % 10) % 2 == 0) count++;
   n /= 10;
}
Два уже ответили, только среднее можно высчитать после цикла один раз.

Три:
C#
1
2
3
4
5
6
7
8
double dist = 10;
int day = 1;
 
while (dist < 100)
{
   dist += dist/10.0;
   ++day;
}
1
2 / 2 / 0
Регистрация: 25.11.2011
Сообщений: 29
25.11.2011, 18:15  [ТС]
спасибо огромное. еще бы четвертую задачу и вообще было бы замечательно)
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
26.11.2011, 00:40
Не понимаю, как можно решить четвертую задачу без использования условного оператора.
Просят проверить и тут же говорят, что проверять нельзя. Я в растерянности.
0
2 / 2 / 0
Регистрация: 25.11.2011
Сообщений: 29
27.11.2011, 15:41  [ТС]
вообщем как мне объяснили надо ввести с клавиатуры данные об осадках на каждый день первый день их не было значит там ноль а затем надо определить из введенных данных скольло дней подрят начиная с 1 мая был введен ноль
0
0 / 0 / 0
Регистрация: 18.07.2015
Сообщений: 9
18.07.2015, 21:26
Вот другой вариантик задачки 1
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
33
34
35
36
37
38
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Nat
{
    class Num
    {
 
        static void Main(string[] args)
        {
      loop1:int k;
            int i;
            int t;
            int s = 0;
            int[] n = new int[10];
            {
                Console.WriteLine("Введите натуральное число");
                k = int.Parse(Console.ReadLine());
                t = k;
                for (i = 0; i <= 10; i++)
                {
                    if (k >= 1)
                    {
                        n[i] = (k % 10);
                        k = k / 10;
                        if (((n[i] % 2) == 0) && (n[i] != 0)) s += 1;
                    }
                    else break;
 
                }
                Console.WriteLine("Количество четных цифр в числе\0" + t + "\0равно\0" + s);
                goto loop1;
            }
        }
    }
}
Добавлено через 5 минут
C#
1
2
3
4
5
6
7
8
double dist = 10;
int day = 1;
 
while (dist < 100)
{
   dist += dist/10.0; \\ тут ошибка dist += dist +(dist/10.0);
   ++day;
}
а вот мой вариант задачи 3:
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        class lignik
        {
            static void Main(string[] args)
            {
                double s = 10;
                int n = 0;
                for (int i = 0; ; i++)
                    if (s < 100)
                    {
                        s += s + (0.1 * s);
                        n++;
                    }
                    else
                    {
                        Console.Write("на\0" + n + "\0день");
                        Console.ReadKey();
                    }
            }
               
        }
    }
}
Добавлено через 4 минуты
Мой вариант задачи № 2
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
 
namespace ConsoleApplication1
{
    class Program
    {
        class mine
        {
        double k = 0;
        double n = 0;
        double t = 0;
        static void Main(string[] args)
        {
            mine o = new mine();
            for (int i = 0; i <= o.n; i++){
                Console.WriteLine("Введите число отличное от нуля:\0");
                try
                {
                    o.k = double.Parse(Console.ReadLine());
                }
 
                catch (FormatException)
                {
                    Console.WriteLine("Среднее арифметическое введенных чисел равно:\0" + o.t / o.n);
                    Console.ReadKey();
                    return;
                }
                if (o.k > 0)
                {
                o.t += o.k;
                o.n++;
                }
                else if (o.k == 0){ 
                    Console.WriteLine("Вы ввели нуль Среднее арифметическое введенных чисел равно:\0" + o.t / o.n);
                    return;}
                     else Console.WriteLine("Среднее арифметическое введенных чисел равно:\0" + o.t / o.n); 
                     
            }
           Console.ReadKey();
                 }
             }
        }
    }
0
 Аватар для FastTI
10 / 10 / 7
Регистрация: 29.08.2014
Сообщений: 84
28.11.2015, 13:11
Наткнулся на тему... 3-я задача у меня по другому получается... не подскажете где я не прав (или прав)
C#
1
2
3
4
5
6
7
8
9
10
11
12
 double l = 10;
            double sum = 10;
            int day = 1;
 
            for (int i = 1; sum <= 100; i++)
            {
                l = l + (100.0 + 10.0)/100.0;
                sum += l;
                ++day;
            }
            Console.WriteLine(day);
            Console.ReadLine();
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
29.11.2015, 01:41
Цитата Сообщение от FastTI Посмотреть сообщение
не подскажете где я не прав
Вы на каждой итерации просто прибавляете 1.1 к сумме, а не 10% процентов от нее.
0
 Аватар для FastTI
10 / 10 / 7
Регистрация: 29.08.2014
Сообщений: 84
30.11.2015, 08:20
прошу прощения... формула имеет такой вид
C#
1
l = l + (l * 10.0)/100.0;
ну или
C#
1
l= l * (1 + 10 / 100);
но все равно день выходит 8-й
(наверное я чего то не понял из условия,но
ведь расчет в моем понимании идет таким образом

1. 10 + (10*10/100) = 11
2. 11 + (11*10/100) = 12,1
3... 12,1 + (12,1*10/100) = 13,31
и т.д пока сумма всех предыдущих дистанций не будет превышать 100 км... а это 8 день) а у вас и у himik30 другие цифры...
1
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
30.11.2015, 11:12
Цитата Сообщение от FastTI Посмотреть сообщение
наверное я чего то не понял из условия
Да нет, вы все правильно поняли — это мы 4 года назад неправильно поняли условие и привели кривое решение

Кстати, задачу можно решить и без циклов — это же геометрическая прогрессия:
C#
1
2
3
4
5
6
double day1Distance = 10;
double dailyMultiplier = 1.1;
double targetDistance = 100;
 
double daysToReachTarget = Math.Ceiling(Math.Log(1 - targetDistance * (1 - dailyMultiplier) / day1Distance, dailyMultiplier));
Console.WriteLine("Добежит на {0}-й день.", daysToReachTarget );
1
Заблокирован
30.11.2015, 13:14
Цитата Сообщение от wintchester Посмотреть сообщение
2.) Найти среднее арифметическое всех целых чисел от а до b (значения а и b вводятся с клавиатуры; )
запихнуть числа в список и выполнить Average
0
 Аватар для FastTI
10 / 10 / 7
Регистрация: 29.08.2014
Сообщений: 84
30.11.2015, 14:26
Разобрались)) Не давало покоя мне))

Цитата Сообщение от kolorotur Посмотреть сообщение
Кстати, задачу можно решить и без циклов — это же геометрическая прогрессия:
Как вариант кстати
0
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 3
14.07.2016, 15:04
Мой вариант задачи #2
P.S. Условие не заметил, поэтому она работает и с положительными и отрицательными числами. При условии b >(<) a;
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace HelloWorld
{
    class Class1
    {
        static int a, b, c;
        static float f = 0, d, e;
        static float s = 0;
 
        public static void Main()
        {
            a = int.Parse(Console.ReadLine());
            b = int.Parse(Console.ReadLine());
 
            c = Math.Abs(a - b) + 1;
            Console.WriteLine("Всего элементов: " + c);
            Console.Write("Элементы массива: ");
            if (a >= b)
            {
 
                for (int i = b; i <= a; i++)
                {
                    int[] massiv = new int[1000];
 
                    massiv[c] = i;
 
                    Console.Write("{0} ", massiv[c]);
 
                    s = s + massiv[c];
                }
                Console.Write("\n Summa " + s);
 
                e = s / c;
 
                Console.Write("\n Среднее арифметическое: " + e);
            }
            else
            {
                for (int j = a; j <= b; j++)
                {
                    int[] massiv = new int[1000];
 
                    massiv[c] = j;
 
                    Console.Write("{0} ", massiv[c]);
 
                    f = f + massiv[c];
                }
                Console.Write("\n Summa " + f);
 
                d = f / c;
 
                Console.Write("\n Среднее арифметическое: " + d);
            }
            Console.Read();
        }
    }
}
Добавлено через 1 час 44 минуты
Задача #3
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
33
34
35
36
37
38
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Project1
{
    class Class1
    {
        static double b = 0;
        static double c = 0;
        public static void Main()
        {
            for (double i = 10; i < 15; i++)
            {
                for (double j = 0; j < 5; j++)
                {
                    if (c <= 100)
                    {
                        double[] massiv = new double[50];
                        b += i + b * 0.1d;
                        Console.WriteLine(b);
                        c = c + b;
                    }
 
                    else
                    {
 
                    }
                }
 
                Console.Write("Answer: " + c);
                Console.Read();
 
            }
        }
    }
}
0
0 / 0 / 0
Регистрация: 22.08.2017
Сообщений: 2
28.08.2017, 22:08
Здравствуйте!

Можете объяснить зачем в цикле for стоит условие int i = 0; ; i++ , если оно ни где не участвует? Можно может без него?

Цитата Сообщение от himik30 Посмотреть сообщение
а вот мой вариант задачи 3:

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        class lignik
        {
            static void Main(string[] args)
            {
                double s = 10;
                int n = 0;
                for (int i = 0; ; i++)
                    if (s < 100)
                    {
                        s += s + (0.1 * s);
                        n++;
                    }
                    else
                    {
                        Console.Write("на\0" + n + "\0день");
                        Console.ReadKey();
                    }
            }
               
        }
    }
}
}
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
28.08.2017, 22:42
это просто бесконечный цикл, можно заменить на while(s < 100){...}, что, имхо, правильней
0
0 / 0 / 0
Регистрация: 22.08.2017
Сообщений: 2
29.08.2017, 11:34
Спасибо за ответ! =)
0
0 / 0 / 0
Регистрация: 01.10.2016
Сообщений: 11
06.04.2018, 14:34
Вот мой вариант 2ой задачи, несколько отличается от решения kolotur

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp10
{
    class Program
    {
        
 
        static void Main(string[] args)
        {
 
            int start = 43221;
            int count = 0;
           
            while( start != 0)
            {
                if (start % 2 == 0)
                {
                    count++;
                }
                start = start / 10;
            }
            Console.WriteLine(count);
 
        }
    }
}
Добавлено через 12 часов 15 минут
3
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
static void Main(string[] args)
        {
            double allDistance = 10;
            double speed = 10;
            int days = 1;
 
            while(allDistance < 100)
            {
                speed = speed + speed * 0.1;
                allDistance = allDistance + speed;
                days++;
            }
            Console.WriteLine(days);
0
0 / 0 / 0
Регистрация: 11.10.2016
Сообщений: 8
21.09.2019, 23:21
// 3 задача
C#
1
2
3
4
5
6
7
8
9
 
        int day = 1;
 
        for (double i = 10 ; i < 100; day++)
        {
            i = i + i * 0.1;
            i += 10;
        }
        Console.WriteLine(day);
0
315 / 244 / 149
Регистрация: 03.10.2017
Сообщений: 886
Записей в блоге: 1
22.09.2019, 11:05
kolorotur, что касается четвертой задачи, то она решается вайлом
C#
1
2
3
4
5
int i=0;
int count=0;
int[] Mas=new int[];
 
while (Mas[++I]==0)count++;
Добавлено через 1 минуту

Не по теме:

ох, простите, какую тему старую подняли

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.09.2019, 11:05
Помогаю со студенческими работами здесь

Простейшие классы. Л.р.
Помогите написать программу,пожалуйста Описать класс дробей — рациональных чисел, являющихся отношением двух целых чисел. Предусмотреть...

Простейшие классы в C#
Каждый разрабатываемый класс должен, как правило, содержать следующие элементы: скрытые поля, конструкторы с параметрами и без параметров,...

Простейшие классы
Привет, ребятки) помогите пожалуйста с С#. Составить описание класса для представления даты. Предусмотреть возможности установки даты...

Простейшие классы
Описать класс &quot;файл&quot;,содержищий сведения об имени,дате создания и длине файла.Предусмотреть инициализацию с проверкой допустимости значений...

Простейшие классы
Кому не сложно помогите пожалуйста. Дана вот такая задачка: Описать класс для работы со строкой, позволяющей хранить только двоичное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Закрытая тема Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru