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