Új hozzászólás Aktív témák
-
hamham
tag
Hello
Hogy tudom átadni a fgv-nek paraméterként a struktúra címét?
ez a struktúrám, 2 kör struktúra címét kéne átadni
typedef struct kor{
int r,x,y;}kor;[ Szerkesztve ]
-
shinodas
tag
srand(time(NULL));
x=rand()%9;Egy programban használok egy ilyen random szám generálást, de ezt csak úgy neten találtam. Elmondanátok, hogyan működik ez pontosan?
-
Jester01
veterán
válasz shinodas #3206 üzenetére
A srand inicializálja a véletlenszám generátort valami kiinduló érték alapján. Azonos kiindulási értékből mindig azonos sorozat lesz (debuggoláshoz jó például). Hogy mindig más legyen, az aktuális idő van megadva.
A rand() az visszaad egy egész számot a [0, RAND_MAX] intervallumból. A % az nyilván a maradékképzés, tehát végül is a [0, 8] intervallumban fogsz számokat kapni.
[ Szerkesztve ]
Jester
-
Karma
félisten
válasz shinodas #3206 üzenetére
Az egész mögött egy pszeudo-véletlenszám generátor van, ami egy kezdőérték (seed) alapján generál számokat. (Nem valódi véletlenszámok, de ez most mindegy.)
A srand függvény szolgál ennek a seed értéknek a beállítására. A time(NULL) függvény az aktuális rendszeridőt adja vissza egy egész szám formájában (1970. január 1. óta eltelt másodpercek száma); ha ezt adod meg seednek, gyakorlatilag minden másodpercben más véletlenszámokat kapsz.
Azonos seed mellett meg ugyanazok a számsorozat jönne ki a rand() hívogatása során.
A rand() egyébként ez a seed meg a belső algoritmusa alapján egy 0 és RAND_MAX (legalább 32767, maximum MAX_INT, környezetfüggő) közötti egész számot ad vissza. Ha ennek veszed a kilences maradékát, 0 és 8 közötti számokat kapsz.
Szerk.: Eh, lassú voltam.
[ Szerkesztve ]
“All nothings are not equal.”
-
Chipi333
csendes tag
válasz shinodas #3206 üzenetére
Az srand( time(NULL) ) beállítja a random fv kezdeti értékét az aktuális időre. A rand() pedig generál egy véletlenszámot (ami nem annyira véletlen). A %9 azért kell hogy 0-8 intervallumra és ne az int telje értékkészletére generáljon.
Az srand( time(NULL) ) azért kell mert a rand fv egyébként teljesen determinisztikus, szóval azonos kezdeti értékről indítva mindig ugyanazt a sorozatot generálná. Ezért általában az idő alapján szokás indítani, mert az jó eséllyel minden futtatáskor más lesz.Szerk.: De sokakat megmozgatott ez a téma
[ Szerkesztve ]
-
shinodas
tag
Köszönöm szépen, nagyon korrekt válaszok!
-
ArchElf
addikt
válasz shinodas #3210 üzenetére
Még annyi hozzá, hogy ez így teljesen determinisztikus - mert ha a ki lehet következtetni a véletlenszám legenerálásának idejét, akkor ez minden lesz, csak nem random (sőt, ha ezt az eljárást egy mp-en belül többször meghívod, akkor mindig ugyanazt a "véletlenszámot" adja majd vissza - ha mindig inicializálsz a véletlenszám generálás előtt).
AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
Zefír
őstag
Sziasztok!
Egy robot versenyre készülünk pár haverommal, de benne van a verseny kitételben, hogy csak az általunk írt programokkal irányíthatjuk a robotor, és mielőtt elkezdődik a verseny, átnézik a sw-t, és belekérdeznek, hogy mit miért írtunk bele, tehát nem másolgathat az ember eszeveszettül kódokat.Na most az lenne a feladatom, hogy írjak egy alkalmazást, amivel lehet előre, hátra, jobbra és balra irányítani a robotot. Én úgy gondoltam ki a feladatot, hogy laptopról vagy az még jobb lenne, ha telefonról , bluetoothon komunikálna a gép( telefon) és a robot, hiszen ilyen NXT robotot építünk, nem tudom kinek mit mond, és ezekben van bluetooth.
Na most az lenne a kérdésem, hogy a bluetooth mennyire nehezíti meg a feladatot? Nem vagyok nagyon jártas a programozásban, de ennek a versenynek ez a lényege, hogy rákényszerítsen arra, hogy utána járjak, kérdezzek. -
Zefír
őstag
válasz Sk8erPeter #3215 üzenetére
NXT-hez nem nagyon kell tudni programozni csak pont az alapokat.
-
Sk8erPeter
nagyúr
F×ngom sincs, hogy mennyit kell hozzá programozni, de furcsa volt, hogy robotvezérlős versenyen akartok részt venni, ahol elvileg szükség van programozásra is, de nem tudsz programozni, és mégis indulni szeretnél. Mondjuk ha elhivatott vagy, és utánanézel, az jó. De azért nem kell ám annyira felháborodni, nem sértegetés a célom.
Sk8erPeter
-
kingabo
őstag
Ja hogy Ti azt az idióta összekattintgatós izét használjátok? Azzal 10 percet bohóckodtam, de hogy azzal összehozni egy bt-s távirányítást elég esélytelen.
Java esetén lejos, C esetén nxc, meg van saját assembly-je is az nbc, ezekkel programozható, a "doboz pakolós", összekattintgatós csak játék 5 éveseknek. Szerintem.[ Szerkesztve ]
-
Zefír
őstag
válasz Sk8erPeter #3217 üzenetére
Nem voltam felháborodva ne érts félre
Egyébként van a cspatban aki ért a programozáshoz, én inkább honlapszerkesztést vágom, de programozni is megakarok tanulni. Meg c-ben ilyen átlagoló programot meg hasonlókat már írtam. -
shinodas
tag
Srácok tudtok ajánlani érdekes oldalakat, ahol tutorialok, példák, érdekes feladatok stb van C témakörben?
-
cooldongo
tag
ebbe kérnék segítséget ha valaki megírná nagyon hálás lennék érte
nagyon kezdő vok még ebbea) van egy fv amely paraméterként kap egy stringet és egy betűt majd megkeresi és visszaadja az első ilyen betűjének az indexét ha nincs benne ilyen betű akkor -1-et,
b) van egy main fv amelyben beolvas egy szöveget és az a) függvény segítségével megkeresi benne az első 'e' betűt és kiírja a szöveget valamint az 'e' betű első előfordulásának indexétegyszerű de valahogy nem jó:S
[ Szerkesztve ]
-
kispx
addikt
válasz cooldongo #3221 üzenetére
Meddig jutottál el benne?
shinodas
http://stevenkobes.com/ctest.html
Ebben egy-két feladatot érdekesnek találtam (személy szerint). Viszont ez csak tesz jellegú-[ Szerkesztve ]
-
kispx
addikt
válasz cooldongo #3223 üzenetére
A feltételt nem értem, mert "van egy fv amely paraméterként kap egy stringet és egy betűt"
gondolom akkor a függvény hívása így néz ki
fv ("ez itt a string", 'e')int fv(const char* p, char c)
{
int i = 0;
int v=-1;for (; i< strlen(p); i++)
if (p[ I ]== c)
{v = i; break;}return v;
}Szerk.: jelenleg nem tudom kipróbálni, mert nem olyan gép előtt vagyok amin van C fordító, de kb így néz ki az a, a b-t meg már innen be tudod fejezni.
[ Szerkesztve ]
-
cooldongo
tag
kicsit pofátlan leszek:S
de ebbe is segítenél pls:
a)definiáljon struktúrát típusdefinícióval(típus neve legyen kor) amely egy kör adatait tárolja:sugár nem negatív egész, kör középpontjának két koordinátája(két nem negatív egész)
b)írjon fv-t amely paraméterként kap két kor típusú struktúra címet és visszaadja hogy a két kör középpontja egybeesik vagy nem
c)írjon main fv-t amelyben két kor típusú változóba beolvassa a két kör adatait és a b) fv segítségével megállapítja hogy a két kör középpontja egybeesik-e és kiírja h "egybeesik" vagy "nem esik"majd ha ráérsz mert ez nagyobb lélegzetvételű sztem
a)pipa b)tom h kell de h számoljam ki a kör középpontját? -
bucsupeti
senior tag
válasz cooldongo #3226 üzenetére
A feladat nem bonyolult, aki picit (tényleg picit) foglalkozik programozással, az ezt kb 5 perc alatt megoldja. Ha megírod hol akadtál el akkor segíteni fogok a továbblépésben.
Egy kis konkrétumot azért írok. A két kör középpontja akkor esik egybe, ha a középpont koordinátái páronként egyenlőek. Csak annyit akarok ezzel mondani hoyg nem kell sehogy "kiszámolni" a kör középpontját."Nem gond ha nem vágod a párologtatók bináris nyelvét..."
-
ArchElf
addikt
Kicsit egyszerűsítve:
int fv(const char* p, char c)
{
for (int i = 0; i < strlen(p); i++)
if (p[i] == c) {
return i;
}
return -1;
}Először azt hittem nem jól működik, de aztán megláttam a for előtt levő részeket
AE
[ Szerkesztve ]
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
ArchElf
addikt
válasz WonderCSabo #3231 üzenetére
Melyik részét, a deklarálást?
Így?
int i = 0;
for (; i < strlen(p); i++)AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
cooldongo
tag
válasz bucsupeti #3227 üzenetére
typedef struct {
unsigned r;
unsigned x;
unsigned y;
}kor;kor egybeesik(kor x, kor y)
{
int kor1,kor2;
int b;
b = kor1.x==kor2.x && kor1.y==kor2.y ? egybeesik : nem;}
main()
{
kor *pont;
int i=1;
pont=(kor)calloc(i,sizeof(kor));
for(i=0;i<=2;i++)
{
printf("kerem az %d. kor x-et:\n".i+1);
scanf("%d",&pont[0].x);
printf("kerem az %d. y-t\n",i+1);
scanf("%d",&pont.y);
}egybeesikbe van a gond , if-el nem egyszerűbb?
-
kispx
addikt
válasz cooldongo #3235 üzenetére
Ha paraméterként kapja meg annak azt a két kör aminek a középpontját összeakarod hasonlítani, akkor miért definiálsz két másik kört?
A paraméterként kapott köröknek kell a középpontját összehasonlítani.b = kor1.x==kor2.x && kor1.y==kor2.y ? egybeesik : nem;
Gondolom előtte van egybeesik, és nem nevű konstansod definiálva. És ezekkel az értékekkel mikor tér vissza? (kell egy return b utasítás). És mi a függvény visszatérési típusa?[ Szerkesztve ]
-
kispx
addikt
válasz cooldongo #3240 üzenetére
még egy valami:
"írjon fv-t amely paraméterként kap két kor típusú struktúra címet és visszaadja hogy a két kör középpontja egybeesik vagy nem"
az fv függvény ha jól látom nem a kor címét várja.
És a memórialefoglalásnál és a for cikluson belül is bajok vannak.
És a feladat szerint a b feladatban definiált függvény meg kéne hívni
[ Szerkesztve ]
-
bucsupeti
senior tag
válasz cooldongo #3240 üzenetére
Figyuszmá!
Ne "bazz"-ozz itt légyszíves, hanem inkább köszönd meg a segítséget! Az meg hogy leírod a számtechórán kapott feladatodat és oldjuk má' meg, nem éppen jó módszer a kezdésre. Ha beírtad volna a kódot ameddig eljutottál (amit később kérésre megtettél) akkor sokkal könnyebben tudunk segíteni, javasolni.És hogy tanulj is. Kérdezed, hogy if-el nem lenne-e egyszerűbb az egybeesés vizsgálata.
Az itt leírt módszer egy tipikusan C programozók által használt eszköz. Én magam is inkább az if szerkezetet használnám, nem pedig ezt a kiértékelő kifejezést. Egyébként mindegyik jó megoldás. Az if talán olvashatóbb.Jó programozás!
"Nem gond ha nem vágod a párologtatók bináris nyelvét..."
-
Sk8erPeter
nagyúr
válasz Korcsii #3244 üzenetére
Ne oltogassátok má' szegény csávót, elveszitek a maradék kedvét is.
Szerintem egyébként ebben az esetben ez az általad alkalmazott conditional operator talán logikusabb is, mint egy szétbontott if-else. Persze tényleg ekvivalens mindkettő, csak ilyen esetekre szerintem tipikusan jól alkalmazható, amit mutattál.
Sk8erPeter
-
Rankerz
senior tag
Pointerek ,címaritmetika,referencia témakörben van valakinek jóféle anyaga? Úgy értem amiben nem csak az alapok vannak megemlítve esetleg.
-
cooldongo
tag
struct, majd fv visszaadjna h fiatal avagy sem:
#include <stdio.h>
#include<stdlib.h>
struct szemely{
char nev[30];
int kor;
};
int fgv(struct szemely sz){
if(sz.kor>18)
{
printf("felnott\n");
}
else
printf("fiatalkoru\n");
}
main()
{
struct szemely r;
printf("kerem az eletkorat");
scanf("%s",&r.kor);
fgv(r);
printf("%d eves",r.kor);system("pause");
}
mikor én adok meg neki a mainbe értéket(r.kor=20 akkor jó, de én bekérni akarom a mainbe az életkort de akkor meg mindig fiatalt ad vissza, mi a hiba?meg van
[ Szerkesztve ]
-
cooldongo
tag
továbbra is az ominózus két pont egybeesik-e feladattal szenvedek eddig jutottam:
#include <stdio.h>
#include <string.h>struct kor{
unsigned r;
unsigned x;
unsigned y;
};int egybeesik(struct kor y, struct kor z)
{
char egybeesik,nemesik;
int b;
if(y.x==z.x && y.y==z.y)
return b;
}
main()
{
struct kor *pont;
int i=1;
hiba-> pont=(kor)calloc(i,sizeof(kor));
for(i=0;i<=2;i++)
{
printf("kerem az %d. kor x-et:\n",i+1);
scanf("%d",&pont[0].x);
printf("kerem az %d. y-t\n",i+1);
scanf("%d",&pont.y);
}
?-> egybeesik(x,y)
?-> printf("%d",egybeesik(...))
} -
kingabo
őstag
válasz cooldongo #3248 üzenetére
Az a probléma, hogy stringként kérsz be adatot nem pedig számként.
(#3249) cooldongo: kérlek írd le saját szavaiddal, hogy mit csinál az egybeesik függvény. (nem azt, hogy mit kéne csinálnia) Egyből rájösz mi a gond.
Illetve, légy szíves programkódként beilleszteni a kódot, ahogy erre mindenki meg lett kérve az első hsz-ben. Ha úgy illeszted be, akkor tagold a kódot, hogy könnyebben olvasható legyen másoknak. (ha ez neked nem annyira fontos) Köszi.
[ Szerkesztve ]
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Gaming notebook topik
- Autós topik
- Samsung Galaxy S23 Ultra - non plus ultra
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- PlayStation 5
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Gitáros topic
- DIGI internet
- Ezek a OnePlus 12 és 12R európai árai
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- További aktív témák...
- Eladó Lenovo M70q Gen 3 Desktop ThinkCentre 12GEN
- Iphone 13 mini 128Gb Green Garancia: 2025.12.21-ig
- Utolsó darab - 670.000 Ft helyett - 465.000 Ft MacBook Air Retina 13" M2 8GB / 512 SSD / Magyar
- Apple iPhone 13 Midnight 256GB iSTYLE 2025.03.26. GARANCIA
- LG UltraWide 38WN95C-W Monitor 1 év Garancia