Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Суммирование массивов в цикле for, Суммирование в цикле 
V
    Опции темы
alexandr007
Дата 11.3.2015, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 16.3.2014

Репутация: нет
Всего: нет



Помогите пожалуйста...
Код

#include <stdio.h>
#include <math.h>
#include <conio.h>
#define N 10
void main()
{
float Mo,Mz,lambda,l,mu,m,Cm,Ck,Cy,Co,Pn,Kn,Mn,Dn;
float P[N];
float K[N];
int n;
Mo=5;
Mz=200;
lambda=0.003;
mu=0.08;
Cm=1.4;
Ck=0.05;
Cy=0.2;
Co=11;
printf("Prirost massy porosyat\n\n");
printf("Dni    Pn          Kn         Mn         Dn\n");
Pn=lambda*(Mz-Mo);
for(n=0;n<N;n++)
{
Mn=Mo+P[N-1];
Pn=lambda*(Mz-Mn);
Kn=mu*Mn;
Dn=Cm*Mn-Ck*K[N]-n*Cy-Co;
printf("%2.0f     %.3f kg    %.3f kg   %.3f kg   %.3f grn\n",n,Pn,Kn,Mn,Dn);
}
getch();
}



Все бы ничего да вот в одной из формул нужно задать первоначальное значение одно, а дальнейшие вычисления должны происходить с подстановкой другой динамической переменной. Помогите пожалуйста написать такой код.
Формулы которые используются в цикле на картинке.



Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  11111.jpg 12,09 Kb
PM MAIL   Вверх
feodorv
Дата 11.3.2015, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Ха, красиво Вас запутали. Действовать здесь можно по-разному, например, в лоб, как у Вас в коде (только правильно, в отличии от Вашего кода))), либо хитрее. 

Заметьте, что 
Код

M(n) = M(n-1) + P(n) = M(n-1) + lambda * (Mz - M(n-1))


И все становится гораздо проще)))


Так же Вы должны понимать, что Ваши индексы изменяются от 1 до N, а в языках программирования C/C++ индексы массивов изменяются от 0 до N-1. Поэтому, объявление массива в виде
Цитата(alexandr007 @  11.3.2015,  19:24 Найти цитируемый пост)
float P[N];

означает, что последний доступный элемент в массиве имеет индекс N-1, а P[N] - это уже выход за пределы массива. Если Вы хотите изменять индексы от 1 до N (как в задаче), Вы должны выделить памяти в массиве на 1 элемент больше:
Код

float P[N+1];



Использование массивов - решение верное, но кроме как их объявления в программе ничего нет. И они вообще никак не инициализируются.


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
alexandr007
Дата 12.3.2015, 01:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 16.3.2014

Репутация: нет
Всего: нет



Спасибо за дельный совет smile  но как задать данные формулы через массивы все равно никак не пойму smile 
PM MAIL   Вверх
rudolfninja
Дата 12.3.2015, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 341
Регистрация: 19.2.2013
Где: г. Минск

Репутация: 1
Всего: 6



Ответил в такой же теме в центре помощи.
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0405 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.