- Mobil flották
- Vodafone mobilszolgáltatások
- Milyen okostelefont vegyek?
- Yettel topik
- Honor 90 - modellalkat
- Samsung Galaxy S10e - esszenciális
- Samsung Galaxy Z Fold4 - egyre megy, honnan nézed
- Olyan telefon lett az idei foci EB hivatalos mobilja, ami nem kapható Európában
- Spanyolországban kezd a Vivo V40 5G és V40 Lite 5G
- MIUI / HyperOS topik
Hirdetés
-
ASUS blog: hátra a csatlakozókkal!
ph Az kanyargó kábelek lerontják a PC belsejének kinézetét, és a szellőzést is akadályozhaták. Az ASUS remek megoldást kínál ez ellen.
-
Spanyolországban kezd a Vivo V40 5G és V40 Lite 5G
ma A V40 az első középkategóriás telefon, mely a Zeiss-szel való együttműködés keretein belül fejlesztett kamerákkal szereltek fel.
-
Spyra: nagynyomású, akkus, automata vízipuska
lo Type-C port, egy töltéssel 2200 lövés, több, mint 2 kg-os súly, automata víz felszívás... Start the epic! :)
Új hozzászólás Aktív témák
-
shinodas
tag
Bocsi, ha nagyon kezdő kérdés, de, hát kezdő is vagyok
while(j<6 && i<6 )
{
if(tomb[i]==tomb_user[j])
{
printf("Valami... " );
i=0;
j++;
}
else
{
i++;
}
}
Az lenne a célom, hogy nézze meg, a tomb user elemei között, hány olyan elem van, ami megegyezik tom elemeivel. Ha egyezés van, írjon ki valamit. És nem igazán szeretne ez muzsikálni nekemszerk.: azt hiszem működik már. Megoldva! Most rohanok órára, aztán még kipróbálom alaposabban
[ Szerkesztve ]
-
Chipi333
csendes tag
válasz shinodas #3151 üzenetére
Az vele a baj, hogy ha tomb egyik eleme sem egyezik a tomb_user első elemével akkor a többit már meg sem fogja nézni, mert egyszer csak i==6 lesz miközben j==0 és kilép a while-ból.
Szóval ezt két egymásbaágyazott for-al kéne, valahogy így:while(i<6)
{
while( j<6)
{
if(tomb[i]==tomb_user[j])
printf("valami");
++j;
}
j=0;
++i;
} -
shinodas
tag
Én valahogy így csináltam, még próbálgatom, h jól működik e
while(j<6)
{
if(i==5){i=0; j++;}
if(tomb[i]==tomb_user[j])
{printf("E " );
i=0;
j++;
}
else
{
i++;
}
} -
Chipi333
csendes tag
válasz shinodas #3153 üzenetére
Hát ez majdnem jó, de tomb[5]-öt sosem fogod megnézni. Szerintem nem érdemes ilyen random konstrukciókkal próbálkozni, mert jó eséllyel benézel valamit. Egy ilyen jellegű próblémát két egymásba ágyazott iterációval szokás megoldani, mert akkor végig mész mindkét tömbön biztosan
-
Korcsii
őstag
válasz Chipi333 #3158 üzenetére
A for elvileg ugyan az, mint a while, csak máshogy írva, így nem látok kivetnivalót benne.
De azért szépen benéztem a kódot én is (hiába, lehet aludni is kéne néha):
int db, n, i, j;
db = 0;
n = 6;
for (i=0; i<n; ++i) {
for (j=0; i<n; ++j) {
if (tomb[i] == tomb_user[j]) {
printf ("E ");
++db;
}
}
}
printf("\nEgyezesek szama: ", db); -
NSiS
csendes tag
Hi!
Kellene egy kis segítség: a feladatom az lenne, hogy két db kétdimenziós mátrixot szorozzak össze (balról ?) C-ben és hát fogalmam sincs hogy hogy kellene. Ha valaki tudna segíteni azt megköszönném.
Üdv!
-
WonderCSabo
félisten
Nem tanultál mátrixalgebrát? Itt van szépen leírva mik a mátrixszorzás szabályai (ami 2x2 * 2x2 esetben még egyszerűbbre degradálódik), ez alapján már elég könnyű megírni az algoritmust. Azt, hogy balról szorzod, így önmagában nem elég megszorítás, kérdés melyik mátrix lesz a baloldalon.
-
NSiS
csendes tag
válasz WonderCSabo #3163 üzenetére
De tanultam, csak egy pillanatra megzavart az hogy "balról szorzom", azóta persze rájöttem hogy ez csak annyit tesz, hogyha mondjuk van egy A meg egy B mátrixom azokat úgy írom fel hogy B*A.
Na de a lényeg, h nem a mátrixok miatt nem tudom megoldani, hanem C beli hiányosságok vannak, ebben a félévben tanultam először programozást, ezelőtt szakközépben sem és nemis infó karos vagyok, úgyhogy várhatóan ezután sem lesz (a mintatanterv szerint legalábbis). MPLAB-ot használunk, PIC programozás lenne elvileg.
A feladat pedig: "Készítsen függvényt, amely adott változótípuson végez műveletet, valamint a megfelelő változótípussal tér vissza." Az adatok típusa valós az én esetemben.
Az A mátrixot szoroznám balról a B-vel. Printf-et nem szoktunk írni, van egy watch ablak a programban az jelzi az értékeket ha léptetem soronként.Az eddig elkészült programom, ami természetesen nem fut le ():
#include <p24fj128ga010.h>
float main(){
float fMatrixA[2][3] = {{1.5,2.5,3.5},{1.2,2.2,3.2}};
float fMatrixB[3][2] = {{4.5,4.2},{5.5,5.2,},{6.5,6.2}};
float fMatrixBA[3][3];
float i, j, k, r1=2, r2=3, c1=3, c2=2;
if (c1 == r2){
for (i=0; i<r1; i++){
for (j=0; j<c2; j++){
fMatrixBA[j]=0;
for (k=0; k<r1;k++)
{
fMatrixBA(i)[j] += fMatrixA(i)[k]*fMatrixB[k][j];
}
}
}
}
return 0;
}És itt megállt a tudomány részemről... pl. azt írja hogy hogy "return type of 'main' is not 'int'" és ezen kívül van még hiba rendesen. De azt se értem, hogy a return-nak integer-nek kellene lennie minden esetben? Mert a feladatkiírás alapján valós értékűként kellene visszatérnie.
[ Szerkesztve ]
-
WonderCSabo
félisten
A meg egy B mátrixom azokat úgy írom fel hogy B*A
Akkor, ha B-t kell balról A-val megszorozni, egyébként fordítva. Látom sikerült az első Google találatot lemásolni, és azt is rosszul... Tessék:
#include <stdio.h>
int main()
{
float fMatrixA[2][3] = {{1.5,2.5,3.5},{1.2,2.2,3.2}};
float fMatrixB[3][2] = {{4.5,4.2},{5.5,5.2,},{6.5,6.2}};
float fMatrixBA[2][2];
int i, j, k, r1=2, r2=3, c1=3, c2=2;
for(i=0; i<r1; i++)
{
for(j=0; j<c2; j++)
{
fMatrixBA[i][j]=0;
for(k=0; k<r1; k++)
{
fMatrixBA[i][j]+=fMatrixA[i][k]*fMatrixB[k][j];
}
printf("%f\t",fMatrixBA[i][j]);
}
printf("\n");
}
return 0;
}Ja és egy 2x3 * 3x2 szorzatából 2x2 -es mátrix lesz...
-
artiny
őstag
Valaki írt már chat programot C ben,azt tudna segíteni valmiben nekem?
[ Szerkesztve ]
-
artiny
őstag
válasz Jester01 #3167 üzenetére
Ez alapján kéne:
http://ap.urpi.fei.stuba.sk/ap/blok3.phpEddig jutottam:
http://pastebin.com/QJmqYNXVazt csinálja:
van az alap port beallitas es azt megvaltoztatom a megadottra,majd beallitja a timeoutot es beker egy karaktert. Viszont a fogadast nem tudom megcsinalni es a karakter bekeres is egy vegtelen ciklus (valami alapjan lekene meg allitanom)[ Szerkesztve ]
-
NSiS
csendes tag
válasz WonderCSabo #3165 üzenetére
Köszönöm, így már működik, ezek szerint a mátrixos rész sem volt számomra egyértelmű.
-
drogery
tag
Hali,
egy beadandó feladatot kellene készítenem. Ezek közül 1et.
1. Irjon C nyelvu programot, ami:
letrehoz ket gyermekprocesszt
ezek a gyermekprocesszek letrehoznak 3-3 tovabbi gyereket
ezek az unokak varakoznak nehany
masodpercet es szunjenek meg
a szulok varjak meg a gyerekek befejezodeset es csak utana szunjenek meg
2. Irjon C nyelvu programokat, ami
SIGUSR1 signal erkeztekor noveli egy valtozo erteket
SIGUSR2 signal hatasara pedig kiirja a kepernyore az aktualis erteket.
a
masik program pedig: futtataskor signal-t kuld az adott processznek
3. Irjon C nyelvu programokat, ami
letrehoz egy uzenetsort
ebbe az uzenetsorba betesz egy masodpercenkent egy valtozot
ennek a valtozonak a kezdoerteke legyen az
aktualis processz azonositoja
a valtozo mindig beiras utan novekedjen 2-vel
a masik program pedig: kiolvas
4. Irjon C nyelvu programokat, ami
hozzon letre egy osztott memoria szegmenst
a felhasznalotol olvasson be szoveget, es ezt irja be az osztott memoria teruletere es
kuldjon signalt a fogado felnek, hogy kesz az uzenet (SIGUSR1)
(segitsegkeppen a masik program pid-je fixen beleteheto a programba)
a masik program pedig olvass ki az
osztott mem szegmensbol, de csak egy adott signal hatasara (SIGUSR1)
vegul szuntesse meg az shm szegmenst
5. Irjon C nyelvu programot, ami
letrehoz egy csovezeteket (egy file deszkriptor part)
elforkol
a gyermek egy signal hatasara elkuld egy rovid szoveget a
szulonek (a signalig blokkol)
a szulo kiirja a kepernyore
megszunnek a processzek (a szulo megvarja a gyereket)
6. Irjon C nyelvu programokat, ami
letrehoz egy nevesitett csovezeteket (bejegyzes az fs-en)
megnyitja
beleir valamit
kozben egy masik program kiolvassa a
csovezetekbol
ezutan az elso program szinten ir bele valamit
a masik program ujbol kiolvassa
a processzek megszunnek es az elso program eltunteti a nevesitett
csovezeteket
7. Irjon C nyelvu programokat, ami
letrehoz egy osztott memoria szegmenst
az egyik program ir bele es var par masodpercet
binaris szemafor segitsegevel "vedi" az irast
a masik program pedig kiolvas belole
8. Irjon C nyelvu programokat, ami
letrehoz egy filet
az egyik program ir bele es var par masodpercet
binaris szemafor segitsegevel "vedi" az irast
a masik
program pedig kiolvas belole a file elejetol kezdve
A beadás határideje szombat 23.59.
Nyilván megfelelő kompenzálás fejében keresnék valakit, aki "segít az elkészítésében".
Többit privátban.
üdv -
Emoci
csendes tag
Hello!
Lenne 1 kis problemam kene 1 programot irjak ami kiszamolja 1 max 500 cm sugaru kor teruletet es keruletet a kovetkezo feltetelek alapjan:
-hasznalj fajlt
-hasznalj sajat fuggvenyt
Probalkoztam de sajnos folyton hibauzenetet ir ki:using namespace std;
float p=3.14;
void f(float x)
{
float a,u;
a=p*x*x;
u=2*p*x;
}
void ir ()
{
float x;
FILE*f;
f=fopen("eredmeny.txt","w");
fprintf(f,"%f ",f(x));
fclose(f);
}
int main()
{
float x;
char cont= 'i';
do{
printf ("\n sugar: ");
scanf ("%f",&x);
if (x>500) printf ("hiba");
else
{
f(x);
ir ();
}
printf("\n flytatod ? valaszolj I vagy N: ");
cont=getche();
}while ((cont=='I')||(cont=='i'));
printf("\n\nnyoj meg barmit a befejezeshez");
getch();
return 0;
}Esetleg tudna valaki segiteni hogy mi a problema?Elore is koszi.
-
WonderCSabo
félisten
#include <stdio.h>
/* C - ben nincs namespace,
includeolni viszont itt is kell... */
const float p = 3.14;
void f(const float x, float* const u, float* const a)
{
/*
az itt deklarát lokális változókat
nem látja az ir fv, ezárt át kell adni módosításra is
*/
*u = p * x * x;
*a = 2 * p * x;
}
void ir (const float u, const float a) /* át kell adni ezeket - et, a main-beli
lokális a, u az ir - bõl nem látszik */
{
FILE* file; /* ha ez is f-nek hívod, bekavar az u.a.
nevû fv - el... */
file = fopen("eredmeny.txt","w");
fprintf(file, "terulet: %f cm2 kerulet: %f cm", u, a);
fclose(file);
}
int main()
{
float x, a, u;
char cont = 'i';
char c;
do
{
printf ("\n sugar: ");
scanf ("%f", &x);
scanf("%c", &c); /* különben a getchar a bufferben lévő
\n - t olvassa be, és emiatt terminál a ciklus*/
if (x < 1 || x > 500) printf ("hiba"); /* a feltételed szerint 1 - nél se lehet kisebb */
else
{
f(x, &u, &a);
ir (u, a);
}
printf("\n flytatod ? valaszolj I vagy N: ");
cont = getchar(); /* a fv. neve getchar... */
}
while ((cont == 'I') || (cont == 'i'));
printf("\n\nnyoj meg barmit a befejezeshez");
getchar();
return 0;
}[ Szerkesztve ]
-
Emoci
csendes tag
válasz WonderCSabo #3176 üzenetére
Ertem mar koszonom nagyon szepen
-
Emoci
csendes tag
válasz WonderCSabo #3178 üzenetére
Igen ez igy van csak en mindezt tanultam mar de par eve nem hasznaltam egyaltalan ez ahogy eszreveszem eleg sokat felejtettem
-
MODERÁTOR
Sziasztok!
Rég foglalkoztam a cével, bevallom nem emlékszem a mutatókra. Itt a láncolt lista fej elemét, és farok eleme miért nem módosul? Lényegében lenne két tömb a és b és annak a tartalmát szeretném összefűzni egy láncolt listába.
A kód: [link]
mobal,
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
MODERÁTOR
Így is próbáltam: [link]
Ezt kapom vissza:
mobal@endeavour:~/C$ gcc -lm ll_merge.c -o ll_merge
ll_merge.c: In function ‘lcopy’:
ll_merge.c:91:9: error: request for member ‘next’ in something not a structure or union"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
Drizzt
nagyúr
Olyan toolt tudnátok javasolni, ami egy c függvény megadásakor megmondja az összes függvényt, amit onnan meghívhat a program futása során? Ez alatt azt értem, hogy:
1. mindenképpen meg van hívva a függvény, explicit módon.
2. A függvény meg van hívva valamilyen elágazásban, if-ben, switchben, ...
3. Vagy a függvény a fenti függvények valamelyikében meg van hívva, s ez így rekurzívan tovább.Gondolom erre a static analyserek a jók. Mit ismertek, mi a jó?
I am having fun staying poor.
-
Snoopenz
csendes tag
Sziasztok!
Tud valaki segíteni abban, hogy fordításnál Dev-C miért írja ki a fork()-ra, getpid()-re stb., hogy undefined reference? Csak UNIX környezetben lehetne futtatni? Vagy valamilyen könyvtár hiányzik?
Egy teljesen egyszerű példával élve:#include <stdio.h>
#include <stdlib.h>int main()
{
int procid;
procid = fork ();
}előre is köszi!
-
Karma
félisten
válasz WonderCSabo #3187 üzenetére
Konkrétan POSIX környezet kéne hozzá, így ha a Windows fontos, akkor vagy Cygwin alá kéne vinni a "fejlesztést", vagy ilyesmivel is lehet kísérletezni.
Én csak az előbbit tapasztaltam ki eddig munka közben.
“All nothings are not equal.”
-
_JD
csendes tag
Sziasztok!
A Juhász István, Kósa Márk, Pánovics János: C példatár könyvet keresem megvételre.
Ha valakinek van eladó, írjon. Előre is köszönöm!
-
artiny
őstag
eddig jutottam a programban:
[link]char Data[100];
scanf("%s",&Data);
int bite=strlen(Data);
while(1){
WriteFile(
hCom, // Handle portu, ktory ste otvorili CreateFile
&Data, // Smernik (pointer) na data, ktore chcem vysielat
bite, // Pocet bytov, ktore chcem vyslat
&Pocet, // Smernik (pointer) na pocet vyslanych dat
NULL); // Musi byt NULL
if( Pocet != bite ) // Ak pocet prenesenych dat nesuhlasi
printf("\n Chyba: Zapis na port sa nepodaril.\n");
// a zasa nasleduje CloseHandle(hCom); a potom exit...
else
printf("\n OK.");
printf("ja: %s", Data);
//--------------------Readfile-----------------------------------------
DWORD Pocet1=0; // Poc(et prijatých dát
//unsigned char Data; // Sem ulož prijatý znak
PurgeComm(hCom,PURGE_TXCLEAR | PURGE_RXCLEAR);
ReadFile(
hCom, // Handle portu, z ktorého c(ítame
&Data, // Pointer na buffer, kam ukladáme prijaté dáta
1, // Poc(et bytov, na ktoré c(akáme
// &d, // Pointer na skutoc(ný poc(et prijatých dát
&Pocet1, // Pointer na skutoc(ný poc(et prijatých dát
NULL); // Musí byt( NULL
// Funkcia ReadFile tu teraz c(aká, až kým niec(o
// nepríde, ale mőže aj skonc(it( bez zachyteného znaku,
// ak medzitým vypršia timeouty.
if( Pocet1 != 1 ) // Ak poc(et prenesených dát nesúhlasí
printf("\n Chyba: Citanie z portu nedalo nic.\n");
else
printf("\n OK, z portu sme uspesne prijali [%c].\n",Data);ezt a két részt,hogyan lehetne összefűzni CreateThread -l?
-
artiny
őstag
válasz ArchElf #3191 üzenetére
Igen szlovák kommentek...
itt van esetleg aki kiprobalja,egy virtual port
http://www.fabulatech.com/virtual-serial-port-kit-download.html
A baj a progival,hogy nem tudom miért nem fogadja amit küldök. -
shinodas
tag
Sziasztok srácok,
egy kis érdekességbe ütköztünk prog vizsgán. Szóval, ha elosztotok két számot
pl float a=50.5; float b=a/10;, akkor az eredmény 5.050000190734... lesz. SZóval így kíváncsiak lennénk, hogy hogyan lehetne pontosabban osztani?[ Szerkesztve ]
-
ArchElf
addikt
válasz shinodas #3195 üzenetére
Akkor float helyett valami decimális számolást kell alkalmazni (most hirtelen csak c++ megoldást találtam).
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]
-
WonderCSabo
félisten
válasz ArchElf #3196 üzenetére
Jah, csak az a típus .NET könyvtárban érhető el...
shinodas: Használhatsz double -t, akkor közelebb kerül az érték. Sajnos a számítógépes számábrázolásnak vannak ilyen hátulütői, pont ezért lebegőpontos értéknél sosem nézünk egyenlőséget, mindig vmi küszöbértéket vizsgálunk.
Ehh, Jester megint megelőzött...
[ Szerkesztve ]
-
shinodas
tag
Köszönöm srácok a válaszokat!
-
shinodas
tag
#include <stdio.h>
#include <stdlib.h>
int main()
{
char cel[10];
char S1[6]="iskola";
int i=0;
while(S1[i]!='\0');
{
cel[i]=S1[i];
i++;
}
cel[i++]='\0';
printf("%s\n", cel);
return 0;
}Ezt hol szúrom el srácok? Azt próbálgatom, hogy van egy üres, és egy másik stringem, amiben van valami. Amiben van a tartalom, azt akarom belemásolni a másik stringbe.
[ 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!
- Felújított Asus rog strix G15 G1512LI + ajándék, 2025.02.20-ig garis! /INGYEN FOXPOST!/
- BenQ PD3205U 4K Tervezői Monitor!32"/99% sRGB/Pantone/AQCOLOR/Type-c/Mac Ready/Beszámítás!
- Samsung Odyssey G8 Ívelt Ultrawide Oled Monitor!34"/Oled/WQHD/175hz/0,1ms/Freesync-G-sync/Beszámítás
- Ahh! DELL Latitude 3410 Tartós Profi Laptop -60% 14" i5-10210U 4Mag 16GB 512GB SSD FHD IPS
- Ohh! DELL Latitude 3410 Tartós Profi Laptop -60% 14" i5-10210U 4Mag 8GB 256GB SSD FHD IPS