Перейти к содержимому

Фото
- - - - -

c++


  • Вы не можете создать новую тему
  • Please log in to reply
1 ответов в этой теме

#1 dzek

dzek
  • Пользователь
  • 24 сообщений

Отправлено 20 февраля 2006 - 17:53

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;
}
  • 0

#2 V^v

V^v
  • Пользователь
  • 316 сообщений

Отправлено 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
смешно, конечно, но я больше дружу со стандартной библиотекой, чем с алгоритмами :D
  • 0
int main(void)