Hirdetés

2024. június 15., szombat

Gyorskeresés

Hozzászólások

(#4751) dabadab válasza alapz@j (#4750) üzenetére


dabadab
titán

Az a pont, ahol egy kifejezes teljesen ki van ertekelve, a Wikipediaban van konkret lista illetve a C FAQ-ban egy reszletesebb magyarazat.

[ Szerkesztve ]

DRM is theft

(#4752) don_peter


don_peter
senior tag

Srácok, írt már valamelyikőtök korrekciós programot egy hőelem korrekciójára?
Omega K típusú szenzorom van aminek a jelét digitálisan egy MAX6675 IC dolgozza fel és továbbítja számomra is értelmezhető formában. (12bit)

A kérdésem az lenne milyen elven tudnék korrekciós programot írni, hogy pontosabb mérést kapjak kisebb hőtartományban is?
Csak az elmélet érdekelne a programot megírom én...
Van ötletetek?

----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----

(#4753) Dave-11


Dave-11
tag

Bocsi ha terhelem ezt a topikot, de itt írogattatok ezzel kapcsolatban, meg nem tudom hogy itt PH-n belül hol kérdezhetném meg még ezt máshol. Szóval:
Nyáron ha lesz egy kis időm szeretnék elkezdni kicsit foglalkozni a mikrokontrollerekkel, és ehhez szeretnék egy kis segítséget kérni. Hol tudok ilyen cuccokat vásárolni/rendelni, hol tudok valami tényleg hasznos anyagot hozzá olvasni, vagy ha videó akkor nézni.
Programozási ismereteim vannak már C-ben és C++-ban is, de így gyakorlatban még nem raktam össze semmi hasonló cuccot.
Előre is köszi!

:D Semmi :D

(#4754) Karma válasza Dave-11 (#4753) üzenetére


Karma
félisten

Van valami konkrét elképzelésed, hogy milyen platformmal szeretnél dolgozni, vagy milyen végcéllal?

Mert ha például csak hobbicélból, akkor az Arduino projekt (AVR) elég népes közösséggel és mindenféle alaplappal, kiegészítővel és libek tengerével rendelkezik.

Rengeteg webshop is foglalkozik vele, úgyhogy rendelni nagyon sok helyről lehet. Itthon a FabLabról tudok csak, de külföldön a SparkFun, SeeedStudio, Adafruit, stb. mind elég jó szerintem.

Ezek a boltok általában saját/közös leírásokkal, blogokkal is rendelkeznek, úgyhogy mindenképp megéri böngészni ismeretszerzés gyanánt is.

[ Szerkesztve ]

“All nothings are not equal.”

(#4755) tototos válasza Karma (#4754) üzenetére


tototos
őstag

Esetleg még az stm32f4-discovery-t ajánlanám, ez már 32 bites technológia fejlettebb mint az arduino.

(#4756) Dave-11


Dave-11
tag

Aha, ez az Arduino jól néz ki, csak kicsit drága.
Valami olcsóbb nincs, amit itthon lehet kapni?

:D Semmi :D

(#4757) k.kristof válasza Dave-11 (#4753) üzenetére


k.kristof
őstag

Egyik kolléga foglalkozik mikrovezérlőkkel, ő a ChipCAD-től (is) szokott rendelni alkatrészeket. Tőlük könyveket is lehet rendelni, ha az elmélet érdekel.

(#4758) buherton válasza Dave-11 (#4753) üzenetére


buherton
őstag

Szia!

Az első és legfontosabb dolog az angol nyelvtudás. A nélkül csak a magyar fórumokra és cikkekre hagyatkozhatsz, ami nem túl sok.

El kell döntened, hogy hobbi célból vagy komolyabban szeretnél-e ezzel foglalkozni.

Ha komolyan akarsz ezzel foglakozni, akkor csak is az ARM jöhet szóba. Ezt csak ajánlani tudom, mert amit megírsz az menni is fog. Ezen kívül még annyi költség merül fel, hogy a perifériákat megvedd. A NYÁK-on minden elő van készítve, így ha pl. Ethernetet akarsz rákötni, akkor csak a csatlakozó kell. Az USB dettó. Van rajta minden ami kellhet. Sőt a debuggerrel bármilyen NXP ARM-t programozhatsz! Van hozzá gcc fordító fork, és egy Eclipse CDT IDE fork. Mind a kettő ingyenes.

Ha hobbi szinten szeretnél foglakozni, akkor három gyártó jöhet szóba. A Parallax, Atmel, és a Microchip. A Parallax-nak azaz érdekessége, hogy 8 mag van benne. Egyáltalán nem bonyolult, de sajnos saját nyelve van, illetve kevésbé ismert. Az Atmel és a Microchip nagyjából egyszinten van. Van amiben egy jobb, van amiben a másik. A hobbielektronikán elég sok hsz-n keresztül ment a flame war, hogy melyik a jobb.

Az Atmel-t választottam, mert nem vagyok fordítóhoz, és fejlesztő környezethez kötve. Ugyanis az AVR-nek ugyanúgy van gcc forkja, és azt bármilyen univerzális fejlesztő környezetben használni. LUFA project néven készült egy AVR ISP mkii klón, ami szinte teljesértékű a gyári programozóval. Továbbá az Atmel biztosította, hogy otthon is utána építhető lehessen az AVR JTAG, amivel már debuggolni is lehet a cuccot. A Microchip pozitívuma, hogy bárhol beszerezhető, és a PICkit 2 elég sok mident tud debuggolni. Ami viszont nem tetszik, hogy a fordítóval nincsenek jó emlékeim, és még gcc fork sincs belőle (nem véletlenül?), az IDE viszont nem rossz, de szinte esélyed sincs másikat használni annyira egybe integrálták az egészet. Ez is a PIC-el a legnagyobb problémám, hogy teljesen zárt. Nincs semmilyen szabadságod.

Bármi is legyen a döntésed a használt program nyelv a C legyen. Van Basic meg Arduino, meg mit tudom én mi, de az igazi beágyazott rendszer fejlesztő C-ben dolgozik, és ha a jövőben ebben szeretnél dolgozni, akkor ebben kell majd.

MOD: Az AVR-nél mindent meg lehet otthon építeni, de szerintem ugyanez vonatkzoik a Microchipre is. Ha drágállod a gyári megoldásokat, akkor érdemes az eBay-en körül nézni a klónok után ;) .

MOD2: Minden gyártó ad ki egy adatlapot a termékéhez. Abban minden fontosabb infót megtalálsz. Természetesen angolul íródtak. Rengeteg példa kód elérhető a neten.

[ Szerkesztve ]

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#4759) Karma válasza buherton (#4758) üzenetére


Karma
félisten

"Bármi is legyen a döntésed a használt program nyelv a C legyen. Van Basic meg Arduino, meg mit tudom én mi, de az igazi beágyazott rendszer fejlesztő C-ben dolgozik..."

Az Arduino is C, nem írtak hozzá külön nyelvet, csak van egy kezdőbarátabb bootloader és alapkönyvtár. Igazából technikai akadálya nincs annak, hogy valaki átflashelje és nyersen használja.

“All nothings are not equal.”

(#4760) don_peter válasza Dave-11 (#4753) üzenetére


don_peter
senior tag

Magamból kiindulva azt tanácsolom, hogy ne használj semmilyen előre legyártott kittet.
Kezdésnek szerezz minimum annyi tapasztalatot, hogy saját magadnak megépíts egy olyan gyakorló nyákot amelyen a Mikrochip minden használható lábát kivezetsz tüske sorra.
Természetesen úgy kell megépíteni, hogy az azonnal éleszthető legyen tehát az egyéb áramköröket és programozói felületet integrálnod kell az elején.
Én mint kezdő ezt tanácsolom, nagy segítség a tanulásban illetve a fejlesztéseknél és már megismerkedsz a PORT-okkal :D

Csak, hogy ajánljak is valamit ami olcsó és jó az a PIC...

Ingyenes nyáktervező: Sprint Layout

[ Szerkesztve ]

----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----

(#4761) Karma válasza don_peter (#4760) üzenetére


Karma
félisten

Hogyan lehet ennyi tapasztalatot összeszedni úgy, hogy az első lépés azonnal a mélyvíz? Komolyan kérdezem, mert engem is érdekelne.

“All nothings are not equal.”

(#4762) buherton válasza Karma (#4761) üzenetére


buherton
őstag

Az uC-re úgy kell tekinteni, mint egy mezei digitális áramkörre kapcsolás tervezésnél. Ha speciális interfészeit akarod használni, akkor az adatlapban megtalálsz mindent. A legnehezebb a próba panel esetén, hogy mi kerüljön rá? Aztán a tervezés már nem probléma. Amit ajánlani szoktam az a 2-3 kapcsoló, 2-3 nyomógomb (természetesen Schmitt triggerelve), LCD kijelző, 2 7 szegmenses (ezt én shift regiszterrel szoktam meghajtani, amit aztán SPI-al hajtok meg), 8 LED, RS-232, I2C-s EEPROM, SPI-s hőmérséklet érzékelő, Egy LED az egyik PWM kimenetre, a másik PWM-re pedig egy Darlington-ba kötött transzisztor pár, 32 kHz-es kvarc az RTC-nek, egy poti az egyik ADC-re. Ha tud az uC USB-t, akkor értelemszerűen azt is kivezetm. Ahogy a kolléga mondta, minden uC lábat tüskesorozni kell. Ahogy látod ezenek a nagy része sima GPIO lábra kerül, csak az EEPROM, SPI és a soros port a speciális, mert azok kommunikációs lábakra kerülnek.

Tessék olvasgatni az adatlapokat.

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#4763) don_peter válasza Karma (#4761) üzenetére


don_peter
senior tag

Két kis kezeddel, nekiállsz és megtervezed megépíted magadnak a hardvert.
Ennyire egyszerű..
Ott a nyáktervező csak vonalakat kell húzni....
Ami meg nem megy megkérdezi, mit hogyan kössön be.
Aztán ha elkészítette még mindig be tudja ide tenni, hogy ellenőrizzük, hogy nincs e elkötés.
Én is megépítettem 0 hozzáértéssel és sok segítséggel.
Ha nincs ennyi szorgalom akkor ne is haragudj, de felesleges elkezdeni.
Magamról tudom, hogy nagyon sokat kellett olvasnom minden egyes kis dolog után, hogy megértsem annak működését és még így is marad fekete folt.
Amit meg nagyon nem értek rákérdezek, még ha ostoba is a kérdés.

Annyi előnye van, hogy van tapasztalata C programozásban.
Nekem az sem volt ;)

----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----

(#4764) Karma válasza buherton (#4762) üzenetére


Karma
félisten

(És egyben don_peternek is válasz.)

Ez villamosmérnök végzettséggel (de gondolom már műszerész/villanyszerelő szakmával szintén) biztosan nem nagy kunszt; de tisztán szoftveres háttérrel, no meg esetemben az informatikus diplomámmal, azzal az egy félévnyi elektronika tárggyal és egy darab mérés laborral - ahol kész sablon alapján össze kellett pakolni breadboardon két áramkört -, azért nem ennyire triviális.

Nyilván meg lehet tanulni a digitális áramkör építést is, jó szakirodalommal vagy mondjuk kompetens ismerőssel. Én csak annyit akartam mondani, hogy szerintem nem ördögtől való, ha kulcsrakész hobbi platformot vesz.

Ha meg élesben is ezzel akar foglalkozni, akkor a Ti hozzáállásotok követendő, természetesen.

[ Szerkesztve ]

“All nothings are not equal.”

(#4765) buherton válasza Karma (#4764) üzenetére


buherton
őstag

Az a baj, hogy ha beírod a gugliba, hogy ARM/NXP/ST/AVR/PIC development board-ra, akkor szívszédülést fogsz kapni az árak miatt. Egy kb semmit se tudó fejlesztő board 20-30-40-50k huf. Emiatt nagyon sokan adják a fejüket saját elkészítésére. Például. Viszont az való igaz, hogy elektronikát meg kell tanulni, mert enélkül hardveres problémákba ütközhet a programozó, mert itt mindent neked kell írni. Nincsenek driverek :D . Kezdésnek ha megkérsz valakit, hogy építsen neked, akkor ilyen 10k huf alatti összegből kijössz. A hobbielektronika.hu-n jobban foglalkoznak ilyesmivel.

MOD: és OS sincs, ami ütemezné a taskjaidat ;] . Persze lehet ráírni.

[ Szerkesztve ]

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#4766) dabadab válasza buherton (#4765) üzenetére


dabadab
titán

Szerintem Karmanak nem a driverekkel van problemaja, hanem azzal, hogy teljesen random* helyekre ellenallasokat, kondenzatorokat meg egyeb bigyokat kell kotni es ezeket mindenki olyan termeszetesnek veszi, mint a levegovetelt (es ennek megfeleloen nem is nagyon emlitik a szuksegesseguket)

*: nyilvan nem, meg en is szigorlatoztam elektronikabol, de ha barmikor szentte akarnak avatni, akkor azt a harmast nyugodtan felsorolhatjak a csodateteleim kozott :DDD

DRM is theft

(#4767) don_peter válasza dabadab (#4766) üzenetére


don_peter
senior tag

Szerintem buherton emiatt is említette, hogy az adatlapok nagyon jó olvasmányok és segítenek az ilyen kérdésekben is, de ha még sem, akkor még midig itt vagyunk mi ;)

Egyébként már kevés olyan kapcsolás van amihez ne lenne segédletet találni a neten, hogy miként érdemes bekötni, milyen ellenállással vagy esetleg szűrőkondikkal.
De nem lenne akkor is: itt vagyunk mi vagy aki tud segíteni ;) (ezért vannak az ilyen fórumok ;) )

[ Szerkesztve ]

----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----

(#4768) don_peter válasza Karma (#4764) üzenetére


don_peter
senior tag

Az a baj, hogy ha valaki ilyen fejlesztői környezeten akar tanulni vagy dolgozni akkor minimum tisztába kell lennie egy pár alap elektronikai kérdéssel amelyek alapot adnak a további kiegészítésekhez melyek aztán szerepet játszanak majd a bonyolultabb fejlesztésekben.

buherton, itt is szépen leírta milyen egyéb alkatrészeket lehet beépíteni a tanuló nyákra, de én javaslom az elsőt úgy megépíteni, hogy a szükséges élesztésen kívül csak a felhasználható I/O lábak legyen kihozva tüskesorra.
Aztán későbbiekben bármit rá lehet aggatni könnyedén.

----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----

(#4769) gergobaby


gergobaby
aktív tag

Sziasztok! Találkozott már valaki azzal a problémával, hogy feltelepül a CodeBlocks és egyik fordító sem működik?

Üdv. Hajós :R

(#4770) Karma válasza don_peter (#4768) üzenetére


Karma
félisten

De nem egyszerűbb, ha az emberfia először lát egy ilyen rendszert működésben, amin a beágyazott programozás alapjait illetve egyszerűbb elektronikai illesztéseket gyakorolhatja? Aztán ha elég stabilnak érzi a talajt, lemásolja a kapcsolási rajzát vagy saját kútfőből épít sajátot?

dabadab egyébként jól megfogta az egyik gondolatom lényegét :K Pont arra gondoltam. A szoftveres "luxus" hiánya (OS, driverek, stb.) szerintem gyorsan megugorható, fel se merült bennem, hogy valaki úgy akarna uC-t programozni.

“All nothings are not equal.”

(#4771) tototos


tototos
őstag

Kicsit csatlakoznék mint informatikus diplomával rendelkező emberke. Tény, hogy az ember akkor tanul a legjobban ha tudja is mire írja programot mi hogyan működik. De sztem az arduinonak és más hasonló ilyen áramkörnek az a lényege, hogy kis efforttal már tudsz ledet villogtatni, anélkül hogy mindenféle kapcsolást megnéztél volna. Van olyan ember aki itt megáll, csak kipróbáűlta. Aki jobban érdekel a dolog az neki fog állni és kiegészítő saját kis áramkörrel, vagy elkezdi megismeri pontosan mi is van a nyákon és miért.
Én anno önálló laborként csak beágyazott szoftverfejlesztéssel foglalkoztam. Semmi hardver, tisztán csak szoftver használtam a gyári könyvtárakat és hittem a fejlesztőknek hogy jól csináltak mindent. Szakdogának már nyákot terveztem 0 előzetes tudással.
Amit én ajánlok az arduino mellé és sztem árban is nagyon baráti az egy Nucleo board
Kicsit drágább de nagyobb tudású vezérlővel: stm32f4-discovery
és már kijelzővel is ellátott csúcs stm32 mikrovezérlő: stm32f429i-discovery

Fejlesztőkörnyezetnek lehet eclipse+gcc+openocd. De ahol ez összeintegrálva megtalálható az a CooCox környezetben. 1 éve használom és eddig minden szükséges dolgot megtaláltam benne.

(#4772) buherton válasza gergobaby (#4769) üzenetére


buherton
őstag

A pathok jók? Mi a hibaüzenet?

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#4773) buherton válasza Karma (#4770) üzenetére


buherton
őstag

Mi az amire szeretnéd használni? Van valamilyen konkrét elképzelés? Vagy csak mint érdekességképp szeretnél ezzel foglalkozni?

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#4774) don_peter válasza Karma (#4770) üzenetére


don_peter
senior tag

Sajnos azt kell mondanom, hogy nem.
Én is úgy akartam kezdeni mint ahogy leírtad és sorra szívtam vele...
Ezért is írtam, hogy magamból kiindulva ajánlom a saját környezet megépítését.
Egy meglévő nyákot nehezebb kiismerni és kötöttebb rá programozni..
De ezt úgy is csak az fogja megérteni aki foglalkozik vele.

Én például ilyet készítettem:

----== Neo Geo és Arcade Fórum : www.neo-geo.hu ==----

(#4775) Doze


Doze
aktív tag

Sziasztok! kéne egy kis segítség :U
Van egy feladatom amit meg kéne oldanom, de mivel elég sík vagyok hozzá elakadtam.
Adott egy M mátrix a nagyságát én adom meg, az elemeit pedig random töltöm fel... eddig el is jutottam, viszont a páratlan elemeit ki kéne íratnom egy külön sorba...
Itt a progi:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int matr[10][10];
void main (void)
{ int i,j,o,s;
clrscr();
printf("Adja meg a m trix sorjainak a sz m t: \n");
scanf("%d", &o);
printf("Adja meg a m trix oszlopainak a sz m t: \n");
scanf("%d", &s);
randomize();
for (i=0; i<o; i++)
for (j=0; j<s; j++)
matr[j]=random(100);
printf("A matrix: \n");
for (i=0; i<o; i++)
{ printf("\n");
for (j=0; j<s; j++)
printf("%5d",matr(i)[j]);
}
getch();
}

(#4776) k.kristof válasza Doze (#4775) üzenetére


k.kristof
őstag

Szerintem:

for (i = 0; i < o; i++)
{
for (j = 0; j < s; j++)
{
if ((matrix[I][j] % 2) != 0)
{
printf("%d ",matrix(i)[j]);
}
}
}

Végigmész a mátrix elemein balról-jobbra, fentről lefelé, és ha páratlan az elem, kiírod egy szóközzel. A kódban egyébként van egy komoly hiba: mi van, ha a felhasználó nagyobb számot ír be, mint a mátrix előre lefoglalt mérete?

[ Szerkesztve ]

(#4777) Doze válasza k.kristof (#4776) üzenetére


Doze
aktív tag

a az elején a matr[10][10];-re gondolsz rögtön az elején?... jó kérdés... próbálkoztam már 12*12 mátrixokkal is de kiírta.. :U

(#4778) Karma válasza k.kristof (#4776) üzenetére


Karma
félisten

Középiskolai feladatban (a Borland C-ből gondoltam) ez nem feltétlen probléma, mert elő szokták írni, hogy mik a maximális értékek, amire készülni kell. Persze ha a szövegben nincs ilyen, akkor a konstans 10x10 méret helytelen – remélhetőleg leadták a mallocot órán.

[ Szerkesztve ]

“All nothings are not equal.”

(#4779) k.kristof válasza Doze (#4777) üzenetére


k.kristof
őstag

Igen. Elég, ha tizenegyet írok be, és máris túlindexeltem a tömböt, ami miatt segfaultolni fog.

#Karma: igazad van, ha a feladat megmondja, mi a maximális érték, akkor nem okoz bajt, de jó ha tudja, hogy mikre kell készülnie a való életben. Saját tapasztalat, hogy nagyon figyelni kell az ilyenekre :P

[ Szerkesztve ]

(#4780) buherton válasza Doze (#4775) üzenetére


buherton
őstag

Ajánlom figyelmedbe a modulo operátort: %. Ha egy szám páros, akkor kettővel osztható, ami azt jelenti, hogy az osztás esetén nincs maradék azaz:

if((szam % 2) == 0)
printf("paros");
else
printf("paratlan");

MOD: már megelőztek, csak nem frissítettem bé az oldalt... :((( :D

[ Szerkesztve ]

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#4781) dabadab válasza Doze (#4775) üzenetére


dabadab
titán

"Adott egy M mátrix a nagyságát én adom meg, az elemeit pedig random töltöm fel... eddig el is jutottam"

Igazából nem. Lefoglalsz egy fix nagyságú mátrixot, aztán ha valaki egy nagyobbat ad meg, akkor simán felülírsz mindenféle memóriaterületet. malloc()-ról még nem volt szó?

"a páratlan elemeit ki kéne íratnom egy külön sorba..."

És ezen hol akadtál el? Nem tudtad eldönteni, hogy melyik páratlan?

szerk: ahogy látom, mások már mind megírták ezt :)

[ Szerkesztve ]

DRM is theft

(#4782) Doze válasza buherton (#4780) üzenetére


Doze
aktív tag

Jelentkezem megint (köszi a segítséget)

Am egyetemi feladat (nem progmatos az is biztos :DDD ), de most meg nem ír ki semmit?, a program lefut... az a baj nem vágom teljesen, szal holnapi vizsgára is agyig rakott puskával megyek...

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int matr[10][10];
void main (void)
{ int i,j,o,s;
clrscr();
printf("Adja meg a m trix sorjainak a sz m t: \n");
scanf("%d", &o);
printf("Adja meg a m trix oszlopainak a sz m t: \n");
scanf("%d", &s);
randomize();
for (i=0; i<o; i++)
for (j=0; j<s; j++)
matr[i][j]=random(100);
for (i=0; j<o; i++)
{
for (j=0; j<s; j++)
{
if ((matr[i][j]%2)==0)
{
printf("%d ",matr[i][j]);
}
}
}
printf("A matrix: \n");
for (i=0; i<o; i++)
{ printf("\n");
for (j=0; j<s; j++)
printf("%5d",matr[i][j]);
}
getch();
}

[ Szerkesztve ]

(#4783) buherton válasza Doze (#4782) üzenetére


buherton
őstag

Hogy is van ez?

for (i=0; j<o; i++)

Negáld meg az egyenlőség vizsgálatot, mert így a párosokat fogja kiírni.

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#4784) lockdown90


lockdown90
senior tag

sziasztok! tudnátok segíteni elmagyarázni, hogy itt a 2,20 hogyan jön ki?

#include <stdio.h>
int f(int i, int *j, int *k){
i++; (*k)--; (*j)--;
return i**k**j;
}
int main(){
int x = 4, y; y = f(x, &x, &x);
printf("%d,%d",x,y);
printf("\n"); system("PAUSE"); return 0;
}

Köszönöm!

i7 13700k - 32Gb DDR5 - RTX4070S

(#4785) k.kristof válasza lockdown90 (#4784) üzenetére


k.kristof
őstag

Az f() függvény egy paraméter értékével és kettőnek a címével dolgozik. Így lesz egy lokális másolata 4 értékkel, ezt megnöveli eggyel, és lesz két hivatkozása az x-re, amit csökkent eggyel, kétszer is. Ha jobban olvashatóan akarnád írni, akkor így nézne ki:

return i*(*k)*(*j);

[ Szerkesztve ]

(#4786) kmisi99


kmisi99
addikt

Lenne egy programom egy tömbben megadott számoknak kiírja a maximumát és a minimumát. A main függvény szinte teljesen adott volt. A minmaxot kellett megadni. A hiba az, hogy "too few arguments to function" az utolsó printf előtti sorban van ez a hiba, de pont annyi argumentum van amennyi kell szeirntem. Mi lehet a gond mit írjak át, hogy jó legyen? Itt a program #include<stdio.h>

void minmax( double tomb[10], double* mini , double* maxi) {
int i;
mini=&tomb[0];
maxi=&tomb[0];
for(i=1; i<10; i++){
if(tomb[i]>*maxi){
maxi=&tomb[i];
}
if(tomb[i]<*mini){
mini=&tomb[i];
}
}

}

int main(void) {
double t[] = {1.2, 2.3, 6.1, -3, -2.7, 2.7, 11.11, -20, 0.23, 4.1};
double min, max;
minmax(t, double* min, double* max);
printf("%lf\n%lf\n", min, max);
return 0;
}

[ Szerkesztve ]

(#4787) Karma válasza kmisi99 (#4786) üzenetére


Karma
félisten

A main függvényedben lévő minmax függvényhívás igencsak sántít, mit keres ott a double*?

Másrészt szerintem szisztematikusan felcserélted a dereference (*) és address-of (&) operátorokat. Ha lefordulna, akkor is felrobbanna.

“All nothings are not equal.”

(#4788) axioma válasza lockdown90 (#4784) üzenetére


axioma
veterán

Ezt ki a fene talalta ki? Baromsag ilyenekkel szivatni az embereket, sima egy valtozonal tudja az ertek es cim szerinti atadas kozti kulonbseget (na mondjuk azt se egy darab vegeredmeny eltalalasaval lehet ellenorzni), es maris felkeszult az eldontesere, hogy melyiket hasznalja. De ennek itt eppen semmi ertelme. Ilyet se irni, se olvasni nem fog senki valos kornyezetben, es sztem aki erti a ketto kozti kulonbseget, az is igen jo esellyel belehibazik foleg a fejben szamontartasba...

(#4789) tototos válasza kmisi99 (#4786) üzenetére


tototos
őstag

hát itt van elég sok gond.
Ha egy függvény mutatót kér paraméternek akkor hiába írod oda, hogy double* még nem fogja átadni a változó címét.
Másrészt dekralálsz változókat a main-ben min és max néven. Majd ezeknek a címét akarod átadni a függvénynek, a függvényen belül meg ezeket a címeket akarod átírni a tömb elemeinek címére?
Döntsd el, hogy a maxot és mint szeretnéd külön tárolni, vagy elég ha a tömb bizonyos elemeire mutatnak a pointerek.

(#4790) kmisi99


kmisi99
addikt

Megoldódott a probléma köszönöm a válaszokat.

(#4791) buherton


buherton
őstag

A memcpy-nál, hogy ha ugyanazon memória területen másolok, akkor az működőképes lehet? Hogy érthetőbb legyen itt egy példa:

memcpy(&foo[0], &foo[1], (sizeof(foo) - 1));

MOD: a szabvány ezt mondja:

memmove is required to work correctly even if the source and destination
overlap, while memcpy can assume non-overlapping operands and be optimized accordingly.

Akkor a memmove az én barátom.

[ Szerkesztve ]

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#4792) lockdown90


lockdown90
senior tag

sziasztok! valaki esetleg el tudná magyarázni, hogy hogy jön ki az eredmény?

#include <stdio.h>

int main()
{
int i=9, j=1;

do{
j=i;
while(j%3){
printf("%d",j);
j--;

};
i--;
}while(i);
printf("\n"); system("pause"); return 0;

}

i7 13700k - 32Gb DDR5 - RTX4070S

(#4793) axioma válasza lockdown90 (#4792) üzenetére


axioma
veterán

A while(int) mukodese a kerdes? Az int i==0 az hamisat ero ertek, az osszes pozitiv egesz meg igaz. Ez eleg? Kicsit alulspecifikaltnak erzem a magyarazasi feladatot...

(#4794) lockdown90 válasza axioma (#4793) üzenetére


lockdown90
senior tag

a 9-et kezdetben miert nem irja ki?

i7 13700k - 32Gb DDR5 - RTX4070S

(#4795) axioma válasza lockdown90 (#4794) üzenetére


axioma
veterán

mert a j%3=9%3=0, azaz hamis; csokkenti, es a kov. forduloban jut csak el a print sorig.

(#4796) alapz@j


alapz@j
tag

A Stack Overflow-n egy ilyen C forrást láttam:

int main() {
@valami {
int x...
}
}

A @valami micsoda? Soha nem találkoztam még ilyennel korábban.

(#4797) k.kristof válasza alapz@j (#4796) üzenetére


k.kristof
őstag

Objective-C lesz ez, nem mezei C.

(#4798) buherton válasza alapz@j (#4796) üzenetére


buherton
őstag

Fordító speicifikus parancs/címke.

Például az avr-gcc-ben hogyha te egy karakter tömböt a flash-be akarsz letenni, akkor nem elég csak a const-t elérni, hanem külön meg kell mondani a fordítónak, hogy tegye oda (PROGMEM-et kell használni). De hogy a példánál maradjunk mostanában egy STM8-ra fejlesztek (a fordtó nevére nem emlékszem), ahol @-al kezdődő szavak fordító specifikus direktívák. Például, ha azt mondom a függvényre, hogy @near, akkor a lehető legközelebb fogja rakni a hívás helyéhez.

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#4799) izsom


izsom
újonc

Sziasztok valaki tudna esetleg segíteni hogy ebben mi lehet a hiba mert nem tudok rájönni!!

#include<stdio.h>

typedef struct{
char nev[51];
double kapacitas;
}Pendrive;

void beolvas(Pendrive *adat)
{
printf("Adja meg a nevet: ");
gets(adat->nev);
printf("Adja meg a kapacitast: ");
scanf("%f", adat->kapacitas);
}

void nagyobb(Pendrive tomb[])
{
int i;

for(i = 0; i < (strlen(tomb)-1); i++)
{
if(tomb.kapacitas > 2)

printf("%s",tomb(i).nev);
printf("%i",tomb(i).kapacitas);
}

}

int main(void)
{
Pendrive tomb[2];
int i;

for(i = 0; i < 2; i++)
{

beolvas(&tomb(i));
}
// nagyobb(tomb);
return 0;
}

(#4800) tototos válasza izsom (#4799) üzenetére


tototos
őstag

Én több hibát is látok. Először is ha egy tömb elemét akarod címezni akkor nem () kell hanem []
Valamint az strlen nem fogja megmondani neked a tömb méretét, csak egy string hosszát. Tömb méretet belekódolod a programba, mivel itt statikus foglalásról van szó teljesen járható út.
Másik hiba hogy az if után ha nem blokkosítod az utasításokat, akkor az összes kapacitást ki fogja írni, mert az if csak a névre lesz hatásra.

main fv:
beolvas(&tomb(i)); helyett beolvas(&tomb);

nagyobb fv:
void nagyobb(Pendrive *tomb, int size)
{
int i;

for(i = 0; i < size; i++)
{
if(tomb(i).kapacitas > 2)
{

printf("%s",tomb(i).nev);
printf("%i",tomb(i).kapacitas);
}
}
}

Copyright © 2000-2024 PROHARDVER Informatikai Kft.