где ашипка?

  • Автор темы qazaq
  • Дата начала
Статус
Закрыто для дальнейших ответов.
Q

qazaq

Пасиба Partisanу за идею...
начал все ето делать по его коду и нифига чето не идет...
там снизу файлъ с температурой сгенерированой. в массив TemperaturaZaMesiats она заносица а дальше - всё. не идет чето...

Код:
#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>
#include <stdlib.h>
#include <math.h>
main()
{
double TemperaturaZaMesiats[31];
double OsadkiZaMesiats[31];
double sumsneg=0;
double sumdojd=0;
ifstream fin("text.txt", ios::in);
if (!fin)
{
cout<<"file not found"<<endl;
exit (1);[attachmentid=569]
}

int i=0;
while (!fin.eof())
{
{
fin>>TemperaturaZaMesiats[i];
}
cout<<TemperaturaZaMesiats[i]<<endl;

for (i=0;i<31;i++)

if (TemperaturaZaMesiats[i]>=0)
{
sumdojd += OsadkiZaMesiats[i];
}
else
{
sumsneg += OsadkiZaMesiats[i];
}
}
cout<<"Vsego snega za mesiats = "<<sumsneg<<endl;
cout<<"Vsego dozhdia za mesiats = "<<sumdojd<<endl;

return 0;}
Посмотреть вложение text.txtПосмотреть вложение osadki.txt

вота условие задачи есчо:
Информация о температуре воздуха и осадках, выпавших в течение месяца задана в виде двух массивов. Определить какое количество осадков выпало в виде дождя, а какое в виде снега...
 
P

Partisan

А где данные о количестве осадков за каждый день??

Посмотрел температуры за месяц.
Ну ничего ж себе суточные перепады ;)
Вчера мороз -10, а назавтра +20 :D
 
Q

qazaq

да лан с перепадами - буду новые генерировать пока превдоподобными не окажутся более менне...)))
а я и хотел вот спросить как ето сделать про осадки за каждый день...
 
P

Partisan

да лан с перепадами - буду новые генерировать пока превдоподобными не окажутся более менне...)))
а я и хотел вот спросить как ето сделать про осадки за каждый день...

Блин, температуру так умеешь генерировать, а как осадки, так резко забываешь, как генерировать ? :D
Единственное отличие: осадков не может быть меньше нуля. Ноль может быть.

А то получатся не осадки, а испарения ;)
 
Q

qazaq

нада значит еще один фаел сгенерировать типа 0 - нет осадков, 1 - дождь, 2- снег штоле?
как их потом связать то 2 ети массива?
 
P

Partisan

Ну, насколько я помню из географии, количество осадков обычно меряють в миллиметрах.
Итого, пример массива с осадками:
Код:
Osadki[1] = 50;
Osadki[2] = 12;
Osadki[3] = 3
Osadki[4] = 7
Osadki[5] = 0
Osadki[6] = 1
................
Osadki[29] = 20
Osadki[30] = 6
Osadki[31] = 0
Остальное всё делать так, как я и предлагал.
 
Q

qazaq

аа блин так чтоле...
ясна. пасибо!
ща попробовайу...
 
Q

qazaq

вота я там добавил файл с осадками...
а вота код:
#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>
#include <stdlib.h>
main()
{
float Temperatura[31];
float Osadki[31];
double sumsneg=0;
double sumdojd=0;
ifstream fin("text.txt", ios::in);
ifstream fin2("osadki.txt", ios::in);
if (!fin)
{
cout<<"file not found!"<<endl;
exit (1);
}
if (!fin2)
{
cout<<"file not found!"<<endl;
exit (1);
}
int i=0;
while (!fin.eof())
{
{
fin>>Temperatura;
}
int k=0;
while (!fin2.eof())
{
{
fin2>>Osadki[k];
}
cout<<Osadki[k]<<endl;

i++;

if (Temperatura>=0)
{
sumdojd+=Osadki[k];
}
else
{
sumsneg+=Osadki[k];
}
}
}
cout<<"Vsego dozhdia za mesiats = "<<sumdojd<<endl;
cout<<"Vsego snega za mesiats = "<<sumsneg<<endl;

return 0;}

он блин для дождя считает тока последний элемент из Osadki[k].
а для снега - сумму всех до последнего элемента. че за?
где че убавить\добавить?
 
Q

qazaq

if (Temperatura>=0)
{
i++;
sumdojd+=Osadki[k];
}
else
{
i++;
sumsneg+=Osadki[k];
}

вот так вот сделал и он уже другое чето считает, но явно не то, проверял.
эти он 2 массива ваще не связывает походу
и еще у Temperatura выводит последний элемент 2 раза в конце
 
P

Partisan

С массивами работай от 1 до 31 включительно. Нулевой элемент для простоты не используем, потому что нулевого дня нет.
И вообще, с какого такого для массивов используются разные индексы ???
Посиди, и прогони весь свой алгоритм вручную, шаг за шагом. Когда поймёшь работу алгоритма, тогда и сам без проблем найдёшь ошибки и справишься с задачей.
А я пойду поем пока что.
 
Q

qazaq

все. получилос. наканецтьа!
тока пришлось вместо while for сделать и поканало
еще рас пасип партизан
 
P

Partisan

все. получилос. наканецтьа!
тока пришлось вместо while for сделать и поканало
еще рас пасип партизан

Ну слава Богу !
На здоровье ! :angry:

Кстати, правильнее для месяца с 31 днём обьявить так:
Код:
float Temperatura[32]; // индекс: 0...31
float Osadki[32];	  // индекс: 0...31

Ну а использовать от 1 до 31.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!