Informatika
Ezt a részt ilyenné alakítottam, ahogy mondtad:
const char* input[] = {"mars20090216_0000+3.nc2",
"mars20100210_0000+24.nc2",
"mars20090216_0000+6.nc2" };
+ javítottam a ciklusokban az elírást.
Ezzel a *-gal én még hadilábon állok, nem tudom, hogy az input[] és output tömböket kell-e még definiálni, vagy ez elég:
const char* input[] = {"mars20090216_0000+3.nc2",
"mars20100210_0000+24.nc2",
"mars20090216_0000+6.nc2" };
Abban sem vagyok biztos, hogy ez utóbbit a main-en belül vagy kívül kell definiálni, ha belül hagyom, akkor Segmentation fault a vége, ha kívül, akkor no such file or directory hiba.
A for cikluson belül elég akkor így?
nc_open(input[m], NC_NOWRITE, &ncid)
nem kell se & se * az input elé?
const char* input[] = {"mars20090216_0000+3.nc2",
"mars20100210_0000+24.nc2",
"mars20090216_0000+6.nc2" };
+ javítottam a ciklusokban az elírást.
Ezzel a *-gal én még hadilábon állok, nem tudom, hogy az input[] és output tömböket kell-e még definiálni, vagy ez elég:
const char* input[] = {"mars20090216_0000+3.nc2",
"mars20100210_0000+24.nc2",
"mars20090216_0000+6.nc2" };
Abban sem vagyok biztos, hogy ez utóbbit a main-en belül vagy kívül kell definiálni, ha belül hagyom, akkor Segmentation fault a vége, ha kívül, akkor no such file or directory hiba.
A for cikluson belül elég akkor így?
nc_open(input[m], NC_NOWRITE, &ncid)
nem kell se & se * az input elé?
A "char" tipus csak egyetlen karaktert jelöl a C-ben. Ha egy tömböt csinálsz belöle, akkor kapsz karaktersorozatot (pl. egy filenév). A definicioban szereplo []-vel adod meg, hogy tömbröl van szó, illetve megadható számmal ennek hossza.
Igy pl. ez: const char input[3] egy 3 karakterböl álló konstans karaktertömböt (sztringet) jelöl. Ami még csak egyetlen rövidke file-név lehetne, nem pedig 3, amit szeretnél.
Igy ez szerintem nem felel meg az adott célnak:
const char input[3] = { mars20090216_0000+3.nc2, mars20100210_0000+24.nc2,
mars20090216_0000+6.nc2 };
const char output[3] = {bspi20090127_0000+00300.nc, bspi20090127_0000+00600.nc, bspi20090127_0000+00900.nc };
Helyette hozz létre egy pointert, ami a megadott sztringek (idezöjellel megadandó!!!) elsö karakterére fog mutatni mindig, igy:
const char* input[] = {"mars20090216_0000+3.nc2",
"mars20100210_0000+24.nc2",
"mars20090216_0000+6.nc2" };
const char* output[] = {"bspi20090127_0000+00300.nc",
"bspi20090127_0000+00600.nc",
"bspi20090127_0000+00900.nc"};
Itt tehát az input[0] az elsö beolvasando file nevére (pontosabban annak elsö karakterére) mutat, az input[1] a másodikra, stb.
Ekkor már müködnie kell a retval = nc_open(input[m],... -nek
illetve a retval = nc_create(output[n],... -nek
Feltéve, hogy az nc_open() es az nc_create() függvény elsö argumentumának const char* tipusunak kell lennie. Remélhetöleg annak. Ha nem, akkor még a kivant tipusba kell konvertálni...
Szerk: rákerestem, s annak kell lennie, mert:
int nc_open (const char *path, int omode, int *ncidp);
Amit még eszrevettem kódodban, hogy a ciklusoknál kis elirás becsuszott:
for(m=0; m kisebb 3; i++)
for(n=0; n kisebb 3; i++)
Itt m++ illetve n++ kell persze az i++ helyett.
Igy pl. ez: const char input[3] egy 3 karakterböl álló konstans karaktertömböt (sztringet) jelöl. Ami még csak egyetlen rövidke file-név lehetne, nem pedig 3, amit szeretnél.
Igy ez szerintem nem felel meg az adott célnak:
const char input[3] = { mars20090216_0000+3.nc2, mars20100210_0000+24.nc2,
mars20090216_0000+6.nc2 };
const char output[3] = {bspi20090127_0000+00300.nc, bspi20090127_0000+00600.nc, bspi20090127_0000+00900.nc };
Helyette hozz létre egy pointert, ami a megadott sztringek (idezöjellel megadandó!!!) elsö karakterére fog mutatni mindig, igy:
const char* input[] = {"mars20090216_0000+3.nc2",
"mars20100210_0000+24.nc2",
"mars20090216_0000+6.nc2" };
const char* output[] = {"bspi20090127_0000+00300.nc",
"bspi20090127_0000+00600.nc",
"bspi20090127_0000+00900.nc"};
Itt tehát az input[0] az elsö beolvasando file nevére (pontosabban annak elsö karakterére) mutat, az input[1] a másodikra, stb.
Ekkor már müködnie kell a retval = nc_open(input[m],... -nek
illetve a retval = nc_create(output[n],... -nek
Feltéve, hogy az nc_open() es az nc_create() függvény elsö argumentumának const char* tipusunak kell lennie. Remélhetöleg annak. Ha nem, akkor még a kivant tipusba kell konvertálni...
Szerk: rákerestem, s annak kell lennie, mert:
int nc_open (const char *path, int omode, int *ncidp);
Amit még eszrevettem kódodban, hogy a ciklusoknál kis elirás becsuszott:
for(m=0; m kisebb 3; i++)
for(n=0; n kisebb 3; i++)
Itt m++ illetve n++ kell persze az i++ helyett.
Hogyan lehet megoldani C-ben, hogy a beolvasandó és a kimeneti fájlnevek változók legyenek, amelyeket egy tömbben adok meg?
Az egyszerûség kedvéért csak 3 adattal:
const char input[3] = { mars20090216_0000+3.nc2, mars20100210_0000+24.nc2,
mars20090216_0000+6.nc2 };
const char output[3] = {bspi20090127_0000+00300.nc, bspi20090127_0000+00600.nc, bspi20090127_0000+00900.nc };
Azt szeretném, hogy a következõ kódban a ciklus alapján elõször az elsõ fájlnévvel helyettesítse az input[m] elsõ értékét.
for(m=0; m kisebb 3; i++)
{
if ((retval = nc_open(input[m], NC_NOWRITE, &ncid)))
ERR(retval);
...
}
Azaz m=0 esetén az input[m] helyére mars20090216_0000+3.nc2 kerüljön.
Aztán kiíratásnál új fájlt hozok létre, amibe írok, ott pedig az elsõ lépésben az output tömb elsõ fájlnevét helyettesítse az uptput[n]-be.
for(n=0; n kisebb 3; i++)
{
if ((retval = nc_create(output[n], NC_CLOBBER, &ncid1)))
ERR(retval);
...
}
Tehát ezek csak részletei a programnak, de remélem érthetõ.
Az egyszerûség kedvéért csak 3 adattal:
const char input[3] = { mars20090216_0000+3.nc2, mars20100210_0000+24.nc2,
mars20090216_0000+6.nc2 };
const char output[3] = {bspi20090127_0000+00300.nc, bspi20090127_0000+00600.nc, bspi20090127_0000+00900.nc };
Azt szeretném, hogy a következõ kódban a ciklus alapján elõször az elsõ fájlnévvel helyettesítse az input[m] elsõ értékét.
for(m=0; m kisebb 3; i++)
{
if ((retval = nc_open(input[m], NC_NOWRITE, &ncid)))
ERR(retval);
...
}
Azaz m=0 esetén az input[m] helyére mars20090216_0000+3.nc2 kerüljön.
Aztán kiíratásnál új fájlt hozok létre, amibe írok, ott pedig az elsõ lépésben az output tömb elsõ fájlnevét helyettesítse az uptput[n]-be.
for(n=0; n kisebb 3; i++)
{
if ((retval = nc_create(output[n], NC_CLOBBER, &ncid1)))
ERR(retval);
...
}
Tehát ezek csak részletei a programnak, de remélem érthetõ.
DVI csatlakozót adtak hozzá azzal megy rendesen, elég jó ezzel is.
Letöltöttem a Net Framework 4-et és a telepítésnél ezt írja ki "Telepítse a 32 bites Windows képkezelõ összetevõt,de fel van rakva,mert tudtommal shingvw.dll az.Aki tud légyszi segítsen.Elõre is köszi!!
Megpróbálhatod esetleg a monitor menüjét (OSD)? Asus-oknál szokott bemenetválasztó lenni (VGA/DVI/HDMI(?)). Viszont a HDMI-rõl eddig sok feketemágiát hallottam, szóval még vidkari driver probléma is lehet, érdemes a legfrissebb Catalyst Suite-t felpakolni és úgy próbálni.
Vettem egy új monitort, Asus VE228 és adtak hozzá egy halom kábelt, de sajnos HDMI kábel nem volt hozzá, így a VGA porthoz kapcsoltam a monitort a Sapphire HD6670 videokártyán. Mivel van a videokártyán HDMI port ezért vettem egy HDMI kábelt. HDMI cable with Ethernet. Kihúztam a VGA kábelt, összedugtam a HDMI-t erre semmi, kiírja a monitor hogy No VGA. Mi lehet a gond? Tud valaki segíteni?
Ismét volna egy kérdésem C-vel kapcsolatban.
Azt szeretném megoldani, hogy különbözõ fájlok beolvasásakor ne kelljen mindig átírnom a programban a fájlnevet.
Ha futtatáskor a ./program.exe után beírom a fájlnevet, akkor ha argumentumként adom meg a programban, akkor elvileg mûködnie kell.
Nem tudom érthetõ-e.
int main(char fajlnev)
zárójel
...
nc_open(fajlnev, ...
Tudom, hogy ez így nem jó, az volna a kérdésem, hogy hogyan lehetne megoldani a problémát?
Vagy nem a main-ben, hanem egy külön függvényben kellene argumentumot létrehoznom?
Azt szeretném megoldani, hogy különbözõ fájlok beolvasásakor ne kelljen mindig átírnom a programban a fájlnevet.
Ha futtatáskor a ./program.exe után beírom a fájlnevet, akkor ha argumentumként adom meg a programban, akkor elvileg mûködnie kell.
Nem tudom érthetõ-e.
int main(char fajlnev)
zárójel
...
nc_open(fajlnev, ...
Tudom, hogy ez így nem jó, az volna a kérdésem, hogy hogyan lehetne megoldani a problémát?
Vagy nem a main-ben, hanem egy külön függvényben kellene argumentumot létrehoznom?
Ha dinamikus IP-d van csak húzd ki a netet,dugd be és már mehetsz is vissza!
Sziasztok.
Windows Vista van a gépemen,de XP-t akarok fel rakni,és ezt írja ki ha rá kattintok a telepítésre:A program le van blokkolva kompatibilitási problémák miatt! Elõre is köszi a segítséget.
Windows Vista van a gépemen,de XP-t akarok fel rakni,és ezt írja ki ha rá kattintok a telepítésre:A program le van blokkolva kompatibilitási problémák miatt! Elõre is köszi a segítséget.
Ezt tûzfalnál is bebirod állítani h nem mutassa az IP cimed. Töltsd le ezt a tûzfalat. Link Az egyik legjobb tûzfal.
Egyik kedvenc oldalamról kibannoltak, az lényegtelen hogy miért. Tudnátok segíteni IP cím megváltoztatásában? Köszönöm.
Egy kicsit Fortran-os volt az a tömbindexelés 
(jajj de ismerõs hiba
)
(jajj de ismerõs hiba
Használj inkább float helyett double típusú változókat. A nem egész kifejezésekben ugyis azzal számol, vagy float-ra kell cast-olni az értékadás elõtt. (A temptag[i,j] gondolom csak elírás, nem így szerepel a kódban.)
Sikerült megoldani, a fõ problémája az volt, hogy egyik helyen float maradt, a másikon pedig int.
Nem akarom teleírni a fórumot a kérdéseimmel, úgyhogy a következõ lesz mára az utolsó.
float hom[ny][nx];
float temptag[ny][nx];
for(i=0; i kisebb Ny; i++)
{
for(j=0; j kisebb Nx; j++)
{
hom[j] = ( temp_in[0][j] - kelvin );
if( hom[j] kisebb= -6.5 )
{
temptag[i,j] = (1.0);
}
else if(( hom[j] nagyobb -6.5 ) && ( hom[j] kisebb= 0.5 ))
{
temptag[i,j] = (0.2196-0.178 * hom[j] - 0.0087 * (pow(hom[j],2)));
}
}
}
A hibaüzenet pedig:
beolvaso.c:126:20: error: incompatible types when assigning to type float[291] from type double
Ezt mindkét temptag-os sornál jelzi.
Nem akarom teleírni a fórumot a kérdéseimmel, úgyhogy a következõ lesz mára az utolsó.
float hom[ny][nx];
float temptag[ny][nx];
for(i=0; i kisebb Ny; i++)
{
for(j=0; j kisebb Nx; j++)
{
hom[j] = ( temp_in[0][j] - kelvin );
if( hom[j] kisebb= -6.5 )
{
temptag[i,j] = (1.0);
}
else if(( hom[j] nagyobb -6.5 ) && ( hom[j] kisebb= 0.5 ))
{
temptag[i,j] = (0.2196-0.178 * hom[j] - 0.0087 * (pow(hom[j],2)));
}
}
}
A hibaüzenet pedig:
beolvaso.c:126:20: error: incompatible types when assigning to type float[291] from type double
Ezt mindkét temptag-os sornál jelzi.
A maxVertLevels_v elé nem kell az &, mert a tömb neve önmagában a tömb címét jelenti. Ha a maxVertLevels_v tömböt const-ként deklarálod, a warning is el fog tünni.
Örülök
Mici javaslatát inkább ne jegyezd meg, C-ben lehet ilyesmit csinálni, csak nem szabad
, ezért is nem szokták a C-t programozás tanulásra javasolni...
Mici javaslatát inkább ne jegyezd meg, C-ben lehet ilyesmit csinálni, csak nem szabad
if ((retval = nc_put_var_int(ncid1, isoLevel_id, &maxVertLevels_v)))
ERR(retval);
A hozzátartozó dolgok pedig:
int isoLevel_id;
int maxVertLevels_v[32] = {1000, 990, 980, 970, 960, 950, 940, 925, 900, 880, 860,
850, 840, 820, 800, 780, 760, 740, 720, 700, 650, 600, 550, 500, 450, 400,
350, 300, 250, 200, 150, 100};
De amúgy jó a kimenet, szépen beírja az nc fájlba, amit akarok.
ERR(retval);
A hozzátartozó dolgok pedig:
int isoLevel_id;
int maxVertLevels_v[32] = {1000, 990, 980, 970, 960, 950, 940, 925, 900, 880, 860,
850, 840, 820, 800, 780, 760, 740, 720, 700, 650, 600, 550, 500, 450, 400,
350, 300, 250, 200, 150, 100};
De amúgy jó a kimenet, szépen beírja az nc fájlba, amit akarok.
Egy ilyen warning-om van még, ami nem okoz gondot, de ha meg lehet oldani, akkor ezt is szívesen eltávolítanám. 
beolvaso.c:307:2: warning: passing argument 3 of nc_put_var_int from incompatible pointer type [enabled by default]
/usr/include/netcdf.h:1536:1: note: expected const int * but argument is of type int (*)[32]
beolvaso.c:307:2: warning: passing argument 3 of nc_put_var_int from incompatible pointer type [enabled by default]
/usr/include/netcdf.h:1536:1: note: expected const int * but argument is of type int (*)[32]
Köszönöm szépen, végül sikerült. 
Az i,j definiálva volt, a másik két dolgot javítottam és végül ez lett a helyes kódrészlet.
const float kelvin = 273.15;
float hom[ny][nx];
for(i=0; i kisebb Ny; i++)
zárójel
for(j=0; j kisebb Nx; j++)
zárójel
hom[j] = (temp_in[0][j] - kelvin);
zárójel
zárójel
Mici: Hm, ilyesmirõl már olvastam, feljegyzem, hátha szükség lesz rá. Egyelõre viszont nekem így könnyebben átlátható.
Az i,j definiálva volt, a másik két dolgot javítottam és végül ez lett a helyes kódrészlet.
const float kelvin = 273.15;
float hom[ny][nx];
for(i=0; i kisebb Ny; i++)
zárójel
for(j=0; j kisebb Nx; j++)
zárójel
hom[j] = (temp_in[0][j] - kelvin);
zárójel
zárójel
Mici: Hm, ilyesmirõl már olvastam, feljegyzem, hátha szükség lesz rá. Egyelõre viszont nekem így könnyebben átlátható.
Ha emlékeim nem csalnak, akkor ezt 1 ciklussal is meg lehet oldani
Lehet a a hom-ot 1 dimenziósként is kezelni, és 0..x*y-1 végig lehet járni az értékeket, sõt a tömb határon túl is lehet menni. Mi annó Borland C-ben bohóckodtunk, ha nagyon elmászott egy-egy pointer, könnyen összeomlott a környezet.
1. a kelvin elé nem kell a &, ha így írod, a változó címét jelenti, nem az értékét.
2. az i és j változók fognak végigmenni a tömb-indexértékeken, így ezeket használd a tömb indexelésére: temp_in[0][j]
3 a program elején i-t és j-t is definiálni kell: int i, j;
Sok sikert!
2. az i és j változók fognak végigmenni a tömb-indexértékeken, így ezeket használd a tömb indexelésére: temp_in[0][j]
3 a program elején i-t és j-t is definiálni kell: int i, j;
Sok sikert!
C-ben egy tömb minden egyes elemébõl ki kellene vonnom egy konstans értéket, de csak nemrég kezdtem ezzel a nyelvvel foglalkozni és sajnos nem megy. Tudna valaki segíteni?
Az Ny és Nx korábban már definiálva vannak.
float kelvin = 273.15;
float hom[ny][nx];
for(i=0; i kisebb Ny; i++)
zárójel
for(j=0; j kisebb Nx; j++)
zárójel
hom =(float)(temp_in[0][0][0] - &kelvin);
zárójel
zárójel
A float temp_in[1][ny][nx]; pedig ilyen alakú, egy netcdf fájlból van kivéve.
Az Ny és Nx korábban már definiálva vannak.
float kelvin = 273.15;
float hom[ny][nx];
for(i=0; i kisebb Ny; i++)
zárójel
for(j=0; j kisebb Nx; j++)
zárójel
hom =(float)(temp_in[0][0][0] - &kelvin);
zárójel
zárójel
A float temp_in[1][ny][nx]; pedig ilyen alakú, egy netcdf fájlból van kivéve.
Ha két pont közti távolságot akarsz tudni, arra jó. Ha egy útvonal távolsága kell, akkor az útvonalon felvett pontok számától függ a pontossága (rendszeresen használom az edzéseim távolságának becslésére, egy 30km-es futóedzésen már 5-600m is lehet az eltérés a gps-es órával mérthez képest, mondjuk elég lusta vagyok a töréspontok elhelyezését illetõen)
Nem árt flash playerbõl is a legfrissebbet feltenni.
Link
(pipát ne felejtsd el kivenni a mcafee-s kéretlen program elõl)
Link
(pipát ne felejtsd el kivenni a mcafee-s kéretlen program elõl)
Tegnapelõtt frissült a böngészõm (Mozilla Firefox) 11.0-ra.
Azóta nem indul el a Honfoglaló játék ezzel a böngészõvel.
Véleményetek?
Azóta nem indul el a Honfoglaló játék ezzel a böngészõvel.
Véleményetek?
Köszönöm! 
Még 6Gb van szóval azzal nem lehet gond, esetleg a hotmail-re elküldenéd, hátha ott megkapom.
[email protected]
Köszönöm szépen!
Még 6Gb van szóval azzal nem lehet gond, esetleg a hotmail-re elküldenéd, hátha ott megkapom.
[email protected]
Köszönöm szépen!
Szia.
Próbáltam elküldeni a gmail-es címre de visszaküldte a gmail, vagy nincs elég hely a postafiókodban vagy alapból nem enged a ekkora levelet. 14MB a mérete a programnak.
Próbáltam elküldeni a gmail-es címre de visszaküldte a gmail, vagy nincs elég hely a postafiókodban vagy alapból nem enged a ekkora levelet. 14MB a mérete a programnak.
Sziasztok!
Érdeklõdnék, hogy a Weather display 10.37e verziójának telepítõje meg van-e valakinek? Ha igen, örülnék, ha elküldené nekem mail-ben.
Köszönöm!
Érdeklõdnék, hogy a Weather display 10.37e verziójának telepítõje meg van-e valakinek? Ha igen, örülnék, ha elküldené nekem mail-ben.
Köszönöm!
Letöltöttem az Operát. Erõsen ismerkedem vele, de a legelsõ problémám, hogy szöveg írásakor minden egyes szót aláhúz pirossal. Mi ennek az oka, illetve hogy tudom ezt megszüntetni?
Nem tudom, de ez a program kiolvassa állítólag. A DOS verziót használd Link