matematykaszkolna.pl
zmienne c ola: czy zmienne globalne można zdefiniować tak, aby były wczytywane z klawiatury? w c
24 lis 22:06
ola: a
24 lis 22:31
adam: Ciekawe... "zmienne globalne można zdefiniować tak, aby były wczytywane z klawiatury". Jak można wczytywać z klawiatury zmienną globalną. Może chodziło Ci o wypisanie wartości zmiennej na ekran po nacisnieciu przycisku z klawiatury? Albo inaczej. Może chcesz wartość wpisaną do konsoli zapisać do zmiennej globalnej?
24 lis 22:32
adam: Albo jeśli masz zmienne globalne, i każdej zmiennej jest przyporządkowany jakiś klawisz, która następnie jest wypisywana na ekran
24 lis 22:33
ola: chodziło mi o to, że mam przykładowo zmienną m, której przypisuje wartość dowolną, tzn. 1 lub 2, lub 3
24 lis 22:41
adam: Zmienną jakiego typu? Obstawiam, że typu Integer. To w Javie ( o ile to java...) piszesz tak: int m =2; w klasie nad konstruktorem. To masz zmienną globalną.
24 lis 22:42
ola: typ double i chodzi mi o to, że ta zmienna jest właśnie różna, dopiero ją sobie wybieramy
24 lis 22:44
adam: tak samą ją deklarujesz.... double m = 2.1;
24 lis 22:47
ola: rozumiem, ale nie o to mi chodzi jak wczytuje początkowe dane to m też chcę dopiero wczytać i po za tym, że jest double, to nie ma przypisanej wartości
24 lis 22:50
adam: No bo tą wartość masz dopiero wczytać? Wrzuć tutaj ten kod, bo ja nie rozumiem co masz na myśli.
24 lis 22:52
adam: Nie możesz stworzyć zmiennej m, nie deklarując jej wcześniej, to znaczy wpisać do niej wartość.
24 lis 22:53
adam: W javie musisz zainicjalizować zmienną i nadać jej wartość 0.0;
24 lis 22:54
ola: akurat mam w c, #include<stdio.h> #include<math.h> #define LWS 1000 double szereg(double x) { double w,s,m; int i; printf("m="); scanf("%lf",&m); for(i=1,w=1,s=1;i<LWS;i++) { w=(w*(m−i+1)*x)/i; s+=w; } return s; } int main() { int lprzedzialow; double x,m,poczatek,koniec,krok; printf("poczatek="); scanf("%lf",&poczatek); printf("koniec="); scanf("%lf",&koniec); printf("lprzedzialow="); scanf("%d",&lprzedzialow); printf("m="); scanf("%lf",&m); krok=(koniec−poczatek)/lprzedzialow; printf("\tx\tpow((1+x),m)\tszereg(x,m)\n"); for(x=poczatek;x<=koniec;x+=krok) { printf("\t%10.4lf\t%10.4lf\t%10.4lf\n",x,pow((x+1),m),szereg(x)); } return 0; } i chodzi mi o to czy to m można zainicjować wcześniej żeby obejmowało wszystko czy nie ma takiej możliwości i trzeba go po prostu wpisywać kilka razy
24 lis 23:00
Dziadek Mróz: Na przykładzie bloków instrukcji, tzw. inline #include <stdio.h> int main() { { double m = 3.0; { /// m jest globalna dla tego bloku instrukcji ... } ... /// m jest lokalna dla tego bloku instrukcji } /// brak dostępu do m bo nie jest zdefiniowana w tym bloku instrukcji ... return 0; }
24 lis 23:04
adam: #include <stdio.h> double zmienna=wartość; /* zmienna globalna */
24 lis 23:04
Dziadek Mróz: Czyli, że chcesz raz wczytać m i mieć je jako globalne dla wszystkiego? ... double m; ... double szereg(...) { ... /// jak w main wczytasz m, to to m będzie globalne } int main() { ... scanf("%lf", &m); ... }
24 lis 23:08
ola: o to mi chodziło dziękuje
24 lis 23:11