Pozaluista pomogite s zadaniem, nado sostavit programmu, 4tobi ona vi4islila rjad 1+1\3+1\5+1\7+...Summa s to4nostju 0,001 i 0,001 Spasibo vsem za pomos! vot 4to to tipo etogo , tolko ne dokonca ,pomogite esli kto mozet eje sdelat do konca esli ona pravilno sostavleno
/***********/
/***Summa***/
/***********/
#include<stdio.h>
/// Funktsioon, mis arvutab välja rea sum(1+1/3+1/5+1/7) summa etteantud täpsusega
/// Sisendid: soovitud täpsus
/// Tagastab: summa
double simpleSum(double aPrecision) {
double sum;
for (int i = 1; i<1000; i += 2) {
// Pane summale liidetav otsa ja uuele ringile
sum += 1 / i;
}
return sum;
}
// main-funktsioon, mis programmi käivitamisel välja kutsutakse
int main ()
{
double tapsus, vastus;
// Võtame esiteks täpsuseks 0.01
tapsus = 0.01;
// Arvutame rea summa välja
vastus = simpleSum(tapsus);
// Väljastame tulemuse
printf("Kui soovitud täpsus on %f siis rea summa on %f\n", tapsus, vastus);
// Ja nüüd täpselt sama lugu täpsusega 0.001
tapsus = 0.001;
vastus = simpleSum(tapsus);
printf("Kui soovitud täpsus on %f siis rea summa on %f\n", tapsus, vastus);
// Tagastame programmist väljudes nulli, mis tähendab et programmi töö õnnestus
return 0;
}
c++
Started By dzek, фев 20 2006 17:53
1 ответов в этой теме
#2
Отправлено 23 февраля 2006 - 15:48
/// Funktsioon, mis arvutab välja rea sum(1+1/3+1/5+1/7) summa etteantud täpsusega /// Sisendid: soovitud täpsus /// Tagastab: summa double simpleSum(double aPrecision) { double sum = 0.0f; for (int i = 1; i<1000; i += 2) { // Pane summale liidetav otsa ja uuele ringile sum += 1.0f / i; } double prec = aPrecision; int j; char mem[128]; char prc[32]; for (j = 0; prec != 1.0f; prec *= 10, j++) ; snprintf(prc, sizeof prc - 1, "%%.%dlf", j); snprintf(mem, sizeof mem - 1, prc, sum); sscanf(mem, "%lf", &sum); return sum; }output:
Kui soovitud tΣpsus on 0.010000 siis rea summa on 4.090000 Kui soovitud tΣpsus on 0.001000 siis rea summa on 4.089000смешно, конечно, но я больше дружу со стандартной библиотекой, чем с алгоритмами
int main(void)