Dobry den potreboval bych pomoct vyresit domaci ukol z Informatiky.. zadani zni:
nacte do pole zadany pocet realnych cisel
(pocet cisel musi byt mensi nez max.
rozsah pole) Cisla z pole vypiste na obrazovku.
Program dale vypocita a vypise soucet kladnych a soucet zapornych cisel v poli.
dekuji predem. Aleš
Fórum › C / C++
C++ ukol do skoly
#4 Aleš
Tu mas:
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
const size_t max = 50;
int main(){
long sum[2] = {0, 0};
std::vector<int> pole;
pole.reserve(::max);
std::cout << "zadaj cisla (0 = koniec zadavania):\n";
std::cin.exceptions(std::ifstream::failbit);
while(pole.size() < ::max){
int i;
std::cin >> i;
if(!i)break;
pole.push_back(i);
}
std::for_each(pole.begin(), pole.end(), [&sum](int i){sum[i <= 0]+=i;});
std::cout << "sum(zaporne): " << sum[0] << std::endl;
std::cout << "sum(kladne): " << sum[1] << std::endl;
return EXIT_SUCCESS;
}
Vela stastia pri vysvetlovani ucitelovy ako to fuguje :)
float není funkce, ale datový typ.
C++Builder píše "Expression syntax". Vůbec nechápu zápis [&sum](int i){sum[i <= 0]+=i;} (odhaduji, že v tomhle bude chyba)
hu
#8 hlucheucho
je to lambda funkcia/funkctor ktora sa da zapisat takto:
struct _lambda{
long* sum;
void operator()(int i){sum[i <= 0]+=i;}
_lambda(long* sum):sum(sum){}
};
//....
std::for_each(pole.begin(), pole.end(), _lambda(sum));
#12 hlucheucho
Na to treba len internet a zakladnu znalost anglictiny (na skole ta to aj tak nenaucia).
Inak functor je trieda/struktura ktora ma pretazeny operator(), tym padom mozes objekt pouzivat po syntaktickej stranke ako funkciu. Dopad na rychlost to vecsinou nema, lebo prekladac taketo jednoduche objekty moze lahko inlinovat priamo do miesta "volania".
lamda funkcie su len syntakticka omacka ktora skrati zlozity zapis, skoda ze c++ zatial nema Generic (Polymorphic) Lambda.
Snad to stihnu do dalsieho standartu (optimisti hovoria ze bude v roku 2014 ) aj s konceptami.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Úkol do školy C++ — založil Dominik
Ukol do školy — založil Ales
úkol do školy — založil stop
Ukol do skoly — založil sniff
Ukol do skoly:( — založil Martina
Moderátoři diskuze