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

    • Gdyby rozumiał co to oznacza, rozumiałby także, że masowe zalesienie spowodowałoby lokalnie wygładzenie zmian, pogodowych, a nie ich nasilenie. Nie, on najwyraźniej uważa, że od lasów wody przybywa. Ma niesłychanego niefarta, bo akurat ubywa.
    • Poczekaj na wypowiedź Senda w sprawie ewentualnego terkotania w poziomie do góry nogami. Sickeflow nie terkocze, mam u siebie dwa na chłodnicy i można je używać w każdej dowolnej pozycji montażowej. Nie wiem tylko od jakiego napięcia kręci ten Sickeflow
    • Zgadza się, w tej rozdzielczości większej różnicy nie będzie. Na upartego można wziąć tego Intela, źle nie będzie, ale zamykasz sobie pole do dalszej rozbudowy w przyszłosci - podstawka LGA 1700 jest już martwa, podczas gdy na AM5 jeszcze pewnie z 2-3 serie przynajmniej wyjdą.     Można też taniej na AM5, czyli zamiast 7800X3D dać Ryzen 7 7700 (~ 1100 zł). Wydajnościowo będzie bliżej i5-tki, za to taniej, a no i w twojej rozdziałce tak samo - bez wielkich różnic. Do tego 7700 jest chłodny, więc nawet Freezer 36 za 120 zł go schłodzi z powodzeniem. Pod 7800X3D już warto dać AIO, bo ta pamięć 3DV-Cache się mocno grzeje. I wtedy np za 2-3 lata sobie zmienić procka na lepszego.
    • to "pokrycie" pieniądza dzisiaj jest trochę tajemnicze - co to w praktyce oznacza? to pojęcie pokrycia wzięło się z początków większego handlu w Europie, gdzieś z 14-15 wieku, kiedy powstały w większych miastach europejskich banki i tzw "banknoty", czyli dokładnie tłumacząc papierowe noty bankowe poświadczające złożenie w banku jakiegoś kruszcu, z reguły złota, w depozycie, o wartości odpowiadającej wartości tych wydanych not - wtedy pokrycie było dosłowne; wydane banknoty służyły do operacji handlowych zamiast złota, bo oczywiście handel, zwłaszcza na dalekich trasach, był wtedy b. ryzykowny i targanie ze sobą dużych ilości cennego kruszcu albo pieniądza z niego było obarczone zbyt dużym ryzykiem - nie trzeba chyba dodawać, że był to wielki postęp w handlu i przyczynił się decydująco do do rozwoju handlu i obrotu bankowego (zwłaszcza banków, bo złożone w depozycie złoto można było wykorzystać np do udzielenia pożyczek, też w papierach, nie kruszcu i inkasować z tego solidne procenty - tak chyba? powstała np fortuna Fuggerów); zresztą to chyba nie wynalazek europejski, bo niedawno czytałem, że np w Chinach, gdzie monetą zdawkową były pieniądze z miedzi a główną jednostką kruszcowy srebrny tael, powstało mnóstwo kantorów wymieniających te miedziane grosze na świstki papierowe z odpowiednim napisem, bo miedź jest ciężka i po prostu duża ilość tych drobniaków nawet obrywała kieszenie, dlatego papier powszechnie się przyjął - tutaj też oczywiście pokrycie jest dosłowne; nie muszę chyba dodawać, że kruszec czy w postaci sztabek,  czy wybitych monet był towarem jak każdy inny i jego stosunek do każdego innego towaru zależał od popytu i podaży, czyli był normalnym stosunkiem handlowym; jak np podaż kruszców po odkryciu Ameryki i uruchomieniu meksykańskich i boliwijskich kopalń srebra nagle gwałtownie się zwiększyła to wartość srebra spadła i ceny wszystkich towarów w nim wyrażone podskoczyły, co podobno spowodowało pierwsza większą inflację w Europie natomiast dzisiaj pieniędzy kruszcowych w dosłownym znaczeniu już praktycznie nie ma, bo tzw drobne to zupełny margines obrotu - zamiast prawdziwych pieniędzy mamy tzw "fiduciary money", czyli konwencjonalne pieniądze papierowe, których funkcjonowanie opiera się na zaufaniu (fiduciary od fiducia - zaufanie) do ich wydawcy, czyli państwa, bo wszędzie tylko państwo może je emitować - nie jestem znawcą historii finansów, ale to chyba dopiero 19 wiek, i to druga polowa, kiedy większość państw przechodziła na te konwencjonalne świstki - wiec co znaczy dziś "pokrycie" - może oznaczać tylko po 1- wymianę zużytych banknotów - nie zwiększa oczywiście ilości pieniędzy w obrocie, przynajmniej nie powinna, i 2 - dodruk pieniądza odpowiadający zwiększeniu się ilości towarów i wartości usług w obrocie gospodarczym - miernikiem jest chyba? prognoza wzrostu pkb, przy uwzględnieniu oczywiście inflacji, bo inflacja to dopust boży i nie da się jej wg obecnej wiedzy wyeliminować; jak wprowadza się te dodruki do obrotu - chyba przez pożyczki banku państwowego dla innych banków, które z kolei wprowadzają je do obrotu, itd?? - znaki zapytania, bo nie wiem, jaki jest dokładny mechanizm i jak to funkcjonuje; natomiast te nadmierne dodruki to chyba trochę mit, bo państwo by sobie samo strzelało w stopę napędzając inflację, itp - oczywiście wiem, że państwo dzisiaj zostało zawłaszczone przez prywatne kliki, tzw partie, więc w praktyce różnie z tym może być natomiast na pewno USA nie upadły po Nixonie i rezygnacji z parytetu złota, wprost przeciwnie - to po Nixonie np sama Kalifornia ma pkb przekraczające 2 biliony, więcej chyba niż np cała Rosja, więc informacje o agonii USA trochę przesadzone - w ogóle złoto to przesąd, który utrzymuje się wskutek wegetacji innych przedpotopowych przesądów jak np państwa narodowe, czy narodowo-plemienne, itp
    • 3.7 V dostaje po uruchomieniu. Jeśli ten arctic F12 się nadaje, o którym mówi kolega wyżej, to biorę.
  • Aktywni użytkownicy

×
×
  • Dodaj nową pozycję...