witam
potrzebuję pomocy w zadaniu, ponieważ dopiero zaczynam pracę w C, a zadanie przekracza moje umiejętności i zbliża się termin oddania go;
oblicz
\(\displaystyle{ t=\frac{\overline{x}-n}{S}}\)
gdzie:
\(\displaystyle{ \overline{x}=\frac{1}{n}\sum_{i=1}^{n} x_{i}}\) \(\displaystyle{ S=\sqrt{\frac{1}{n}\sum_{i=1}^{n} (x_{i}-\overline{x})^{2}}}\) \(\displaystyle{ x_{i} i=1,2,...,n.}\)
mam jeszcze pytanie; posiadam książkę "język ansi C" brian'a kernighan'a, czy jest ona dobra do nauki programowania? i jakie jeszcze byście ksiązki polecili?
Programowanie w C
-
- Użytkownik
- Posty: 1272
- Rejestracja: 8 sty 2011, o 18:18
- Płeć: Mężczyzna
- Lokalizacja: Warszawa
- Podziękował: 295 razy
- Pomógł: 115 razy
Programowanie w C
choć umiem programować to Ci tego nie napiszę, bo nawet nie mam takiej wiedzy żeby rozszyfrować matematycznie o co tutaj chodzi, ale co do książki..
właśnie, pytanie: nauki programowania, czy nauki języka? jeśli to drugie to owszem wspomniana przez Ciebie jest dobra (nawet jedna z najlepszych), jeśli do nauki programowania a ja przez to rozumiem - rozwiązywania problemów, algorytmiki to zdecydowanie nie..
do algorytmiki najlepszymi książkami są:
Sztuka programowania D.E Knuth
Wprowadzenie do algorytmów Cormena
ale nie wiem czy tego szukasz, i nie wiem też czy nie brzmię śmiesznie bo to literatura na bardzo wysokim poziomie (też z matematycznego punktu widzenia), poza tym bardzo mało dostępna i bardzo droga, jednak wspominam, bo być może masz możliwość wypożyczenia, albo chociaż przejrzenia w bibliotece uczelnianej..
a tak ogólnie to ja się uczyłem sam i z internetu w większości i też dobrze na tym wyszedłem (tak sądzę), a żeby mieć ciągle styczność z programowaniem, rozwiązywaniem problemów i przeróżnymi językami, ogólnie się doskonalić w tej dziedzinie to polecam pewną ligę programistów której nazwy nie przytoczę zważywszy na regulamin
(link do niej (a właściwie mojego konta na niej) w moim profilu, ale ciiii...)
-- 7 maja 2011, o 18:43 --
ok, już wiem mniej więcej o co chodzi w Twoim programie, \(\displaystyle{ n}\) jest podawane na wejściu, \(\displaystyle{ x}\) i \(\displaystyle{ S}\) obliczane ze wzoru (w pętli) a potem obliczana wartość \(\displaystyle{ t}\), którą trzeba wypisać, ale w sporym skrócie to napisane jest, więc się domyślam..
właśnie, pytanie: nauki programowania, czy nauki języka? jeśli to drugie to owszem wspomniana przez Ciebie jest dobra (nawet jedna z najlepszych), jeśli do nauki programowania a ja przez to rozumiem - rozwiązywania problemów, algorytmiki to zdecydowanie nie..
do algorytmiki najlepszymi książkami są:
Sztuka programowania D.E Knuth
Wprowadzenie do algorytmów Cormena
ale nie wiem czy tego szukasz, i nie wiem też czy nie brzmię śmiesznie bo to literatura na bardzo wysokim poziomie (też z matematycznego punktu widzenia), poza tym bardzo mało dostępna i bardzo droga, jednak wspominam, bo być może masz możliwość wypożyczenia, albo chociaż przejrzenia w bibliotece uczelnianej..
a tak ogólnie to ja się uczyłem sam i z internetu w większości i też dobrze na tym wyszedłem (tak sądzę), a żeby mieć ciągle styczność z programowaniem, rozwiązywaniem problemów i przeróżnymi językami, ogólnie się doskonalić w tej dziedzinie to polecam pewną ligę programistów której nazwy nie przytoczę zważywszy na regulamin
(link do niej (a właściwie mojego konta na niej) w moim profilu, ale ciiii...)
-- 7 maja 2011, o 18:43 --
ok, już wiem mniej więcej o co chodzi w Twoim programie, \(\displaystyle{ n}\) jest podawane na wejściu, \(\displaystyle{ x}\) i \(\displaystyle{ S}\) obliczane ze wzoru (w pętli) a potem obliczana wartość \(\displaystyle{ t}\), którą trzeba wypisać, ale w sporym skrócie to napisane jest, więc się domyślam..
Programowanie w C
Kod: Zaznacz cały
double t(double x[], int n) {
if(n == 0)
return 0.0; // ????
double sum = 0;
double sq_sum = 0;
for(int i = 0; i < n; ++i) {
sum += x[i];
sq_sum += x[i] * x[i];
}
double mean = sum / n;
return (mean-n)/sqrt(sq_sum / n - mean * mean);
}
-
- Użytkownik
- Posty: 50
- Rejestracja: 8 lis 2008, o 00:03
- Płeć: Mężczyzna
- Lokalizacja: Warszawa
- Podziękował: 2 razy
Programowanie w C
"język ansi C" brian kernighan'a odradzam absolutnie jeśli chodzi o naukę programowania od podstaw. Książka jest dobra jeśli już umie się programować w jakimś języku. Zamiast uczyć się z niej, człowiek szuka w innych książkach poruszanych tam zagadnień, bo inaczej dalej materiału się nie pociągnie. Do nauki C polecam "Szkoła Programowania: C" Praty. Świetna książka, obszernie i bardzo przystępnie opisująca każde kolejne zagadnienie. Autor używa też obrazowych porównań co w znaczny sposób pomaga w przyswajaniu wiedzy ( w przeciwieństwie do "suchego" kerigana). Książka Praty dla C to coś jak "Symfonia" dla C++. Tę książkę aż chce się czytać i co najważniejsze ją się czyta, a nie studiuje.
Programowanie w C
dzieki za pomoc i wskazówki. Postaram się dorobić brakujące elementy do programu od Xitami mam nadzieję, ż jest dobry-- 10 maja 2011, o 13:57 --program zrobiłem, mam nadzieję, że dobrze, oto on:
#include <stdio.h>
#include <math.h>
int main(){
int n;
int i;
int x[1000];
int suma;
double srednia;
double roznica;
double t;
printf("podaj liczbe danych n
");
scanf("%i", &n);
for(i=0; i<n; i++)
{
printf("dana nr %i:", i+1);
scanf("%i", &x);
}
suma = 0;
for(i=0; i<n; i++){
suma += x;
}
srednia = suma/n;
printf("x=%.2f
", srednia);
roznica = 0;
for(i=0; i<n; i++)
{
roznica += (x-srednia)*(x-srednia);
}
roznica /= n;
roznica = sqrt(roznica);
printf("S=: %.2f
",roznica);
t = (srednia - n)/roznica;
printf("t=: %.2f
", t);
scanf("%.2f", &t);
return 0;
}
i tutaj moje następne pytanie, program miał być stworzony na podstawie funkcji i nie wiem jak mam go przerobić
#include <stdio.h>
#include <math.h>
int main(){
int n;
int i;
int x[1000];
int suma;
double srednia;
double roznica;
double t;
printf("podaj liczbe danych n
");
scanf("%i", &n);
for(i=0; i<n; i++)
{
printf("dana nr %i:", i+1);
scanf("%i", &x);
}
suma = 0;
for(i=0; i<n; i++){
suma += x;
}
srednia = suma/n;
printf("x=%.2f
", srednia);
roznica = 0;
for(i=0; i<n; i++)
{
roznica += (x-srednia)*(x-srednia);
}
roznica /= n;
roznica = sqrt(roznica);
printf("S=: %.2f
",roznica);
t = (srednia - n)/roznica;
printf("t=: %.2f
", t);
scanf("%.2f", &t);
return 0;
}
i tutaj moje następne pytanie, program miał być stworzony na podstawie funkcji i nie wiem jak mam go przerobić