С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 40

Ошибка в простой задаче на массивы с использованием подпрограммы

14.10.2013, 21:55. Показов 790. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте) я только начинаю изучать c#. Прошу помочь с задачей, ну никак не даются мне подпрограммы)

Написать программу решения следующей задачи: Главный центральный момент инерции сплошного шара определяется по формуле I = 2/5 * m * R2 Найти среднее значение I для трёх шаров, если для каждого из них известны масса m и радиус R. Использовать подпрограмму-функцию.

Вот мое решение. Никак не пойму, почему выводит 0 =(
Кликните здесь для просмотра всего текста
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace _3_5
{
    class Program
    {
        public static double CentrMoment(double[] m, double[] R)
        {
            double s = 0;
            double [] mI = new double[3];
            for (int i = 0; i < 3; i++)
            {
                mI[i] = (2 / 5) * m[i] * R[i] * R[i];
                s = s + mI[i];
            }
            double sr = s / 3;
            return sr;
        }
        
        static void Main(string[] args)
        {
            Console.WriteLine("Массив со значениями масс: ");
 
            double[] m = new double[3];
            for (int i = 0; i < 3; i++)
            {
                Console.Write("m[" + (i+1) + "] = ");
                m[i] = Convert.ToDouble(Console.ReadLine());
            }
 
            Console.WriteLine("Массив со значениями радиусов: ");
 
            double[] R = new double[3];
            for (int i = 0; i < 3; i++)
            {
                Console.Write("R[" + (i+1) + "] = ");
                R[i] = Convert.ToDouble(Console.ReadLine());
            }
 
            Console.WriteLine("Среднее арифметическое = " + CentrMoment(m, R));
 
            Console.WriteLine("\n" + "Нажмите любую клавишу...");
            Console.ReadKey();
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.10.2013, 21:55
Ответы с готовыми решениями:

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

Ошибка в программе на тему подпрограммы и с использованием массива
Здравствуйте , написал программу по условию : Дан двумерный массив А состоящий из чисел. Составить массив Б который состоит из True и...

Создание/корректировка БД по простой задаче
День добрый! Недавно начал разбираться в языке SQL, выбрал СУБД MySQL. Имеется задача, связанная с игрой. Нужно создать базу данных со...

5
 Аватар для memphis
740 / 284 / 83
Регистрация: 12.12.2012
Сообщений: 564
14.10.2013, 22:09
Цитата Сообщение от Kasumi1 Посмотреть сообщение
mI[i] = (2 / 5
а так?
C#
1
mI[i] = 0.4 * m[i] * R[i] * R[i];
1
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 40
14.10.2013, 22:12  [ТС]
Ого, спасибо огромное, помогло)
0
 Аватар для memphis
740 / 284 / 83
Регистрация: 12.12.2012
Сообщений: 564
14.10.2013, 22:13
Kasumi1, просто у вас целочисленное деление было.
0
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 40
14.10.2013, 22:24  [ТС]
Цитата Сообщение от memphis Посмотреть сообщение
Kasumi1, просто у вас целочисленное деление было.
получается, что тип double не допускает целочисленного деления? или я вас неправильно поняла?
0
 Аватар для memphis
740 / 284 / 83
Регистрация: 12.12.2012
Сообщений: 564
14.10.2013, 22:44
Просто когда вы целое делите на целое, то не происходит автоматического приведения к типу double. А вот если хотя бы один из операндов будет double, то всё ок, результат будет double.

Добавлено через 14 минут
Пожалуй фигово объяснил.
Тогда так. При целочисленном делении результат операции будет целое число. В вашем случае 0. А если бы 10 / 3, то результат был бы 3(целое). Чтобы провести обычное деление, как мы привыкли в математике, кто-то из операндов должен быть типа double. В вашем случае можно было бы это сделать так:
C#
1
2
3
                mI[i] = (2d / 5) * m[i] * R[i] * R[i];
                mI[i] = (2.0 / 5) * m[i] * R[i] * R[i];
                mI[i] = ((double)2 / 5) * m[i] * R[i] * R[i];
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.10.2013, 22:44
Помогаю со студенческими работами здесь

Требуется помощь в простой задаче.
5. Введите номер месяца в году. Выведите на экран сообщение о времени года. Заранее спс

Что не так в этой простой задаче?
Ruby меня пинает уже пол дня, а я так и не могу понять в чем причина. Задача - найти локальный максимум в массиве чисел. Формула ниже....

Логическая ошибка при выполнении простой модели при работе с очередями с использованием приоритетов
Здравствуйте уважаемые форумчане! работаю в Anylogic 7.0. При построении простой системы массового обслуживания, с использованием...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru