Skocz do zawartości

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

lukas_gab

Program do obliczania dawek nawozowych - problem przy "module mieszania"

Rekomendowane odpowiedzi

Witam!

 

Tata mnie poprosił o program do obliczania dawek nawozowych tyle że nie jestem aż tak dobrym matematykiem ... więc prosze o pomoc .

 

Głównie chodzi o to że ...

 

Jest woda i ta woda ma w sobie dane składniki : N P K Mg Ca i jest ich w iluś tam mg/l .... Potrzebujemy wode w której jest ileś tam mg/l tych składników... do tego celu mamy nast. nawozy: Saletre Wapniową Saletre Potasową Sal. Magnezową i MonofosforanPotasu . Każdy z tych nawozów ma w sobie dwa składniki np. Sal.Wap. ma 15,5%N i 19%Ca na 1kg , Sal.Pot ,a 13,5%N i 38%K na 1kg.... itd. ale chodzi o to że program ma wybrać odpowiednie ilości nawozów w kilogramach , żeby X ilości pożywki miała dany skład przy uwzględnieniu wartości początkowej jaka już tam jest. Niby prosta ale jak dam zależnosć żeby dobierać Sal.Wap. tyle żeby było 300mg/l N , a następnie żeby dobierało Sal.Pot. tyle zeby było 500mg/l K to w tym samym momencie zwiększy się ilość N ( bo w Sal.Pot. jest równierz 13,5%N ) więc należy dobrać odpowiednią ilość obu nawozów , żeby wartosci były takie same lub zbliżone do rządanych . Jak by każdy nawóz miał jedynie jeden składnik w sobie to by nie było problemu a tak to nie wiem jak ułożyć zaleznosci , żeby odpowiednio umieszac ... Proszę o pomoc - to głównie problem matematyczny , programuje w c++ , nie zadobrze ale wpisanie kodu to pestka - mnie interesuje jak mu powiedzieć żeby to mieszał ... Prosze o pomoc i proszę się nie śmiać

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Musiałbyś utworzyć równanie i je rozwiązywać. Np. potrzebujesz 12 kg N, 6 kG Ca i 17 kg K

Sal.Wap. 0,155*N + 0,19*Ca - Xkg

Sal.Pot 0,135*N + 0,38*K - Ykg

X*(0,155*N + 0,19*Ca) + Y*(0,135*N + 0,38*K) = 12*N + 6*Ca + 17 *K

Tworzymy z tego układ równań i szukamy X i Y.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie rozumiem tego ... mozesz to rozwinąć ? Dlaczego zawartosć gramową N w 1kg mnożysz z ilością jaką chcemy otrzymać ? i dlaczego mnożysz na końcu 12*N a przecierz jest to samo co 12*12 ( N=12) ?? Może jestem troche przyciemniony dzisiaj ale prosze wytłumacz jak ty to widzisz ?

 

---edycja----

 

Mówie z programowanie nie jestem orłem ...wymyśłiłem coś co oblicza w przybliżeniu .... i napisałem w Turbo c++ i nie wiem dlaczego nie chce działać ... oswiecicie mnie ?

 

kod :

 

//---------------------------------------------------------------------------

 

#include <vcl.h>

#pragma hdrstop

 

#include "Dakometr.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

//---deklaracja stałych

//---deklaracje zmiennych----------------------------------

float pN,pP,pK,pMg,pCa,zN,zP,zK,zMg,zCa,kN,kP,kK,kMg,kCa,

iloscPozywki,SalWap,SalPot,SalMag,Mono,SalWapw,SalPotw,SalMagw,Monow;

//---zerowanie parametrów----------------------------------

pN=0;

pP=0;

pK=0;

pMg=0;

pCa=0;

zN=0;

zP=0;

zK=0;

zMg=0;

zCa=0;

iloscPozywki=0;

SalWap=0;

SalPot=0;

SalMag=0;

Mono=0;

//---odczyt zmiennych--------------------------------------

pN=StrToFloat(pN->Text);

pP=StrToFloat(pP->Text);

pK=StrToFloat(pK->Text);

pMg=StrToFloat(pMg->Text);

pCa=StrToFloat(Ca->Text);

zN=StrToFloat(zN->Text);

zP=StrToFloat(zP->Text);

zK=StrToFloat(zK->Text);

zMg=StrToFloat(zMg->Text);

zCa=StrToFloat(zCa->Text);

iloscPozywki=StrToFloat(iloscPozywki->Text);

//---zmienne potrzebne-------------------------------------

kN=(zN-pN)/(10000*iloscPozywki);

kP=(zP-pP)/(10000*iloscPozywki);

kK=(zK-pK)/(10000*iloscPozywki);

kMg=(zMg-pMg)/(10000*iloscPozywki);

kCa=(zCa-pCa)/(10000*iloscPozywki);

//---------------------------------------------------------

 

for (kCa!=(SalWap*0.19)) { /*obliczanie ilości Saletry Wapniowej dla Ca*/

SalWap+=0.00001 ;

}

kN=kN-(0.155*SalWap ); /*Zmiana koncowej potrzebnej ilości N po dodaniu "SalWap" ilości Saletry Wapniowej*/

/*dla Ca */

 

for (kP!=(Mono*0.23) {

Mono+=0.00001;

}

kK=kK-(Mono*0.29);

 

for (kK!=(SalPot*0.38) { /*obliczanie ilości Saletry Potasowej dla K*/

SalPot+=0.00001;

 

}

 

kN=kN-(0.135*SalPot); /*Zmiana koncowej potrzebnej ilości N po dodaniu "SalPot" ilości Saletry Potasowej*/

/*dla K */

 

for(kMg!=(SalMag*0.09){ /*obliczanie ilości Saletry Magnezowej dla Mg*/

SalMag+=0.00001 ;

}

kN=kN-(SalMag*0.11 ); /*Zmiana koncowej potrzebnej ilości N po dodaniu "SalMag" ilości Saletry Magnezowej*/

/*dla Mg */

 

SalPotw->Text=SalPotw;

SalMagw->Text=SalPotw;

SalWapw->Text=SalPotw;

Monow->Text=SalPotw;

 

}

//-----------------------------------------------------------------------

 

 

 

 

 

i

 

 

 

 

//---------------------------------------------------------------------------

 

#ifndef DakometrH

#define DakometrH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

//---------------------------------------------------------------------------

class TForm1 : public TForm

{

__published: // IDE-managed Components

TGroupBox *GroupBox1;

TEdit *pN;

TEdit *pK;

TEdit *pP;

TEdit *pMg;

TEdit *pCa;

TLabel *Label1;

TLabel *Label2;

TLabel *Label3;

TLabel *Label4;

TLabel *Label5;

TLabel *Label6;

TLabel *Label7;

TLabel *Label8;

TLabel *Label9;

TLabel *Label10;

TGroupBox *GroupBox2;

TLabel *Label11;

TLabel *Label12;

TLabel *Label13;

TLabel *Label14;

TLabel *Label15;

TLabel *Label16;

TLabel *Label17;

TLabel *Label18;

TLabel *Label19;

TLabel *Label20;

TEdit *zN;

TEdit *zK;

TEdit *zP;

TEdit *zMg;

TEdit *zCa;

TGroupBox *GroupBox3;

TEdit *iloscPozywki;

TLabel *Label21;

TButton *Button1;

TEdit *SalWapw;

TEdit *SalPotw;

TEdit *SalMagw;

TEdit *Monow;

TLabel *Label22;

TLabel *Label23;

TLabel *Label24;

TLabel *Label25;

TGroupBox *GroupBox4;

TLabel *Label26;

TLabel *Label27;

TLabel *Label28;

TLabel *Label29;

TLabel *Label30;

void __fastcall Button1Click(TObject *Sender);

private: // User declarations

public: // User declarations

__fastcall TForm1(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TForm1 *Form1;

//---------------------------------------------------------------------------

#endif

 

 

 

i błędy ..... :

[C++ Error] Dakometr.cpp(40): E2288 Pointer to structure required on left side of -> or ->*

[C++ Error] Dakometr.cpp(41): E2288 Pointer to structure required on left side of -> or ->*

[C++ Error] Dakometr.cpp(42): E2288 Pointer to structure required on left side of -> or ->*

[C++ Error] Dakometr.cpp(43): E2288 Pointer to structure required on left side of -> or ->*

[C++ Error] Dakometr.cpp(44): E2451 Undefined symbol 'Ca'

[C++ Error] Dakometr.cpp(45): E2288 Pointer to structure required on left side of -> or ->*

[C++ Error] Dakometr.cpp(46): E2288 Pointer to structure required on left side of -> or ->*

[C++ Error] Dakometr.cpp(47): E2288 Pointer to structure required on left side of -> or ->*

[C++ Error] Dakometr.cpp(48): E2288 Pointer to structure required on left side of -> or ->*

[C++ Error] Dakometr.cpp(49): E2288 Pointer to structure required on left side of -> or ->*

[C++ Error] Dakometr.cpp(50): E2288 Pointer to structure required on left side of -> or ->*

[C++ Error] Dakometr.cpp(59): E2378 For statement missing ;

[C++ Error] Dakometr.cpp(65): E2378 For statement missing ;

[C++ Error] Dakometr.cpp(70): E2378 For statement missing ;

[C++ Error] Dakometr.cpp(78): E2378 For statement missing ;

[C++ Error] Dakometr.cpp(84): E2288 Pointer to structure required on left side of -> or ->*

[C++ Error] Dakometr.cpp(85): E2288 Pointer to structure required on left side of -> or ->*

[C++ Error] Dakometr.cpp(86): E2288 Pointer to structure required on left side of -> or ->*

[C++ Error] Dakometr.cpp(87): E2288 Pointer to structure required on left side of -> or ->*

[C++ Warning] Dakometr.cpp(89): W8004 'kN' is assigned a value that is never used

 

 

 

nie wiem co jest źle ... tutaj program oblicza wszystko poza N - moim zdaniem N nie można obliczyć dokładnie ... co o tym myślicie ? Nie śmiać się ze mnie ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Dlaczego zawartosć gramową N w 1kg mnożysz z ilością jaką chcemy otrzymać ? i dlaczego mnożysz na końcu 12*N a przecierz jest to samo co 12*12 ( N=12) ?? Może jestem troche przyciemniony dzisiaj ale prosze wytłumacz jak ty to widzisz

12*N bo miało być 12 kg N, tak przykładowo. To nie jest wzór chemiczny, tylko równanie matematyczne :E

I nie mnożę zawartości gramowej tylko zamieniłem procenty na ułamki.

Przykro mi, jeżeli nie łapiesz takich podstawowych spraw to nie jestem w stanie Ci pomóc. Nie jestem pedagogiem i nie potrafię nauczyć podstaw matematyki.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

  • Tematy

  • Odpowiedzi

    • Też doszedłem do takiego wniosku. 5950x i Fortis 3 😀 Tryb Turbo Boost daje duże skoki CPU V oraz MHz i podbija na chwile temperaturę. Czyli sposobem na skoki temperatury CPU (przyspieszanie i zwalnianie wentylatora podczas jakiegoś małego procesu)  jest tylko ustawienie opóźnienia w Fan control ?  Mówisz o max rpm ale na czym? ja mam tylko max RPM na obudowie, będę to zmieniał. Wentylatorem od CPU steruje płyta główna, tylko, że na opcji auto.... Nigdy nie korzystałem z Turbo Boosta, zawsze miałem wyłączony na innych CPU, bo korzystałem z OC a teraz OC na CPU już nie ma sensu. No tak, wykrywa wszystkie, ukryłem nieaktywne, zostawiłem tylko jeden i przypisałem do niego GPU. W sekcji speeds są dwa CPU i GPU wiec przypisałem GPU do tego o góry i ustawiłem krzywą, ale to już już dawno.  Na froncie mam jeden wentylator oraz jeden z tyłu tak jak jest oryginalnie w R5. Kiedyś myślałem nad dodaniem drugiego wentylatora na front tylko miałem wątpliwości bo skoro 2 wentyle wpuszczą tyle powietrza do budy to w jaki sposób ten na tyle ma to wszystko w tym samym czasie wyciągnąć, nie będzie się robił nadmiar ciepła w środku ? Ja nie wiedziałem, że 3 pinowe wentylatory można podłączyć pod 4 pinowe wejście na płycie głównej. podłączyłem teraz na chwilę ten frontowy Dynamic GP-14 140 mm. W zakładce speeds się nie pojawił, ale można było go dodać przez "No calibration" chciałem zobaczyć sterowanie manualne, to zaczęło sterować wentylatorem CPU zamiast Fun4. 3 pinowy wentyl daję możliwość regulacji obrotów ? Jeśli kupie 4 pinowy, to jest jakaś przejściówka, żeby podłączyć, się pod kontroler Fractala? bo tam jest mniejsze gniazdo na max 3 pin (2).  
    • Jeżeli zaczną wchodzić strefy czystego transportu, to ludzie poruszający się starszymi autami sami będą chcieli udowodnić, że auto EURO 5 czy 6 też może syfić bardziej niż ich EURO 4 (czemu nie zaprzeczam, bo tak może być jak właśnie jest coś pokombinowane) więc sami mogą przypadkiem wymusić szybszą zmianę przepisów  
    • Odpowiednikiem dla RX 6600 jest RTX 2070 przynajmniej w 1080P  https://www.techpowerup.com/review/powercolor-radeon-rx-6600-fighter/31.html Ja sam siedzie na RX 6700 i daje radę swego czasu chodziły 750zł w wersji GPRO X080 od Sapphire
    • Silnik 8tys zł + rozrząd ORI + płyny + robocizna = 13tys zł  Tyle zapłacił znajomy za wymianę silnika w 5 letnim MK5. Robił mu miejscowy mechanik.  Skrzynia automat PS kompletny remont części+ robocizna ~14tys zł. DPF jest niezniszczalne w tym aucie. Wypala się nawet na biegu jałowym.
    • @luk21pl Z tego co pamiętam, to większość poblokowanych rzeczy, łącznie z tym Żyrafem, odblokowuje się po ukończeniu głównej misji "Skrzydła dziesiątki", czyli jak Aloy nauczy się dominować latające maszyny i używać ich jak zwykłych mount'ów (latać na nich). ... @leven Kotlet później wzbił się w powietrze z moją strzałą  Ale jak się pojawił w nowym miejscu, to już jej nie miał. Gra musiała jego model usunąć po tej animacji wzbijania się w powietrze i wczytać od nowa, tam nieco dalej, jak się szło Fokusem po śladach. ... Z takich dodatkowych ciekawostek, to tym razem grając nie bałem się podejść do tych piaskowych trąb powietrznych i okazało się, że aktywując Tarczoskrzydło można się dzięki nim wzbić w powietrze i to nawet na całkiem ciekawą wysokość Aha, graficznie u mnie te trąby z piasku wyglądają na ogół bardzo dobrze/identycznie jak wyglądały na PS5. Jedynie za pierwszym razem miałem pikselozę z nimi związaną. Obecnie w nieco ponad 90% przypadków wszystko renderuje się już poprawnie. Odnoszę wrażenie, że wystarczyło wczytać zapis na świeżo uruchomionej grze, który od razu wrzucał nas na teren z tymi trąbami z piasku. Za każdym razem teraz, jak śmigam sobie w obrębie tej pustyni, to nie napotkałem problemów graficznych.
  • Aktywni użytkownicy

×
×
  • Dodaj nową pozycję...