Új hozzászólás Aktív témák
-
Lortech
addikt
válasz
---Lasali--- #899 üzenetére
%%d
-
---Lasali---
Közösségépítő
Lenne egy kis idétlen kérdésem
Azt hogy %d hogy tudom kiírni mint szöveget? Szóval ne helyettesítsen be a helyére változót, vagy valamit a memóriából. -
goyo206
senior tag
Sziasztok!
Remélem olvassa majd eme sorokat egy sok idővel rendelkező, vállalkozó szellemű guru!
A Rallysimfans plugin továbbfejlesztéséhez C/C+-ban jártas programozót keresnek már jó ideje, aztán eszembe jutottatok Ti!! A Plugin a Richard Burns Rally szimulátor játékra épül, pontosabban ehhez biztosít egy online versenyzési lehetőséget! (csak sajna kicsit megállt az idő, a fejlesztés lényegében abbamaradt idő hiányában...)"A plugin jelentős része ugyan a Lua nevű szkriptnyelven íródott, de azt gondolom, hogy aki C-ül tud az könnyebben meg tud tanulni/érteni egy szkriptnyelvet mint fordítva."
Szeretnénk sokan, ha a plugin fejlesztése nem menne kárba és valaki eljuttatná arra a szintre, h. lehessen pályákat importálni bele, stb. a többit részletesebben elmondják a szakértők, én csak egy lelkes felhasználó vagyok!
Bízom benne, nyitott fülekre találok!
Részletek megbeszélése után kérünk egy árajánlatot, ami alapján döntük mi, mint felhasználók, h. össze bírjuk-e dobni rá, v. esetleg újra megment minket egy szponzor... -
labuwx
tag
Sziasztok!
Elkezdtem írni egy Visual C++/MFC programot, ami egy robot útvonalát rajzolja ki egy labirintusban. A raqjzoláshoz szükségem lenne egy canvasra, amit sajnos nem tudok előhívni.
Azt szeretném kérdezni, hogy miként lehet elhelyezni a formon egy canvast és arra vonalat, pontot rajzolni.
A segítséget előre is köszönöm! -
Jhonny06
veterán
válasz
likeaRAINBOW #892 üzenetére
Nem kell a C a C++ előtt, rögtön mehet az utóbbi. Egyébként az 1 év C#-nak gondolom megvan az eredménye, ennek sem sokkal másabb a logikai felépítése, egy csomó mindent egyből érteni fogsz. Ez jó lesz kezdetnek, aztán a Bjarne Stroustrup-féle kétkötetes, stb.
-
Sk8erPeter
nagyúr
""Meg szeretnék tanulni c++ban programozni!"
Mi tart vissza?
Legyünk már egy kicsit önállóak! Menj be a könyvesboltba/könyvtárba és nézegess c++ könyveket."
Az ilyen lekezelő válaszoknak semmi értelme. Tanácsot kért, hogy miből érdemes tanulni, nem leb@szást. Attól még, mert valaki kezdő dologban kér tanácsot, nem kell lenézni. Az igaz, hogy kicsit többet írhatott volna az előtanulmányairól és céljairól. -
eXodus
őstag
válasz
likeaRAINBOW #892 üzenetére
Akkor marad a C kezdetnek. Rágd át magadat rajta, az a rész ami megy azzal úgy is hamar végzel.
Most garantálni tudom neked h nem fog haszontalan lenni, ha esetleg későbbiekben komolyabban foglalkozol c++al! -
likeaRAINBOW
senior tag
Suliban 1 évig foglalkoztunk C#-ban, console meg Form os környezetben is!Iletve elöző évben Pascal!
-
eXodus
őstag
válasz
likeaRAINBOW #890 üzenetére
Mi azt nem tudjuk h te mennyire tudsz programozni.
De akkor vegyél ki egy c könyvet. (Ha esetleg menne is amik benne vannak, ártani akkor sem árt.)Az elején (1-2dolgot leszámítva) annyira nem különbözik a 2.
Előkerestem egy régebbi c könyvet: ezek vannak benne:
-Típusok, operátorok, kifejezések
-Vezérlési szerkezetek,fv-ek, ciklusok, mutatók, tömbök
-Struktúrák, adat be/ki vitelEzek tényleg az alapok...
-
likeaRAINBOW
senior tag
Semmi nem tart vissza
A lényegi kérdés leginkább arra irányult, hogy érdemes előtte a C nyelvvel ismerkedni, vagy egyből mehet a c++ c nyelv ismeret nélkül
-
eXodus
őstag
válasz
likeaRAINBOW #888 üzenetére
"Meg szeretnék tanulni c++ban programozni!"
Mi tart vissza?Legyünk már egy kicsit önállóak! Menj be a könyvesboltba/könyvtárba és nézegess c++ könyveket. Válaszd azt amelyik a szintedhez képest 1fokkal nehezebb és vegyed ki, majd olvasd el/csináld meg/értsd meg a feladatokat.
Ha végeztél akkor jöhet a következő. -
likeaRAINBOW
senior tag
sziasztok!
Meg szeretnék tanulni c++ban programozni! Mit javasoltok, hogyan áljak neki? Tanulmányozzam előtte a C nyelvet, vagy egyből tanuljam a C++? Melyik könyveket ajánljátok? -
Löncsi
őstag
válasz
Reaper_009 #886 üzenetére
Amíg nem tudsz billentyűzetről beolvasni és fél tömböt kicserélni, szerintem nem érdemes robot programozást erőltetni.
Nem sértésként, tényként mondom. -
Reaper_009
csendes tag
Helló!
Segítség kéne, mert az iskolában fél éve programozást tanulunk és olyan programot kell írnom hogy: Karaktereket billentyűzetről összegyűjteni, tömbbe helyezni, megfelezni és megcserélni a tömb felét VAGY hozzáadni hármat, utána tömb kiíró függvénnyel ki írni. Nem azt kérem, hogy írjad meg
csak azt hogy tudnál-e olyan oldalt belinkelni, ahol hasznos tippeket találok. NetBeans-t használok otthon is meg iskolában is. Jövőre Basic Stamp vezérlővel ellátott robot programozását, fogom kapni éves projektnek, én választottam. Jó munka lesz.
-
pityaa23
senior tag
válasz
Sk8erPeter #884 üzenetére
amatőr, de működő és meg is kaptam rá a plusz pontokat!
-
pityaa23
senior tag
-
j0k3r!
őstag
válasz
Sk8erPeter #875 üzenetére
atugorhattam rajta, de most mar latom
-
j0k3r!
őstag
válasz
Sk8erPeter #873 üzenetére
leesett, de akkor melyik a legegyszerubb mod egy stringen beluli karakter cserejere? : )
-
j0k3r!
őstag
válasz
Sk8erPeter #871 üzenetére
igy lehet? : )
ujszo.substr(i,1) = 'A' -
j0k3r!
őstag
válasz
pityaa23 #866 üzenetére
en valahogy igy csinalnam a cseret:
for (int i=0; i<szo.length()-1;i++)
{
if(szo.substr(i,1) == 'a' && szo.substr(i+1,1)=='l')
{
ujszo.replace(i,1,'A');
}
}persze az ujszo egy ures string, a szo meg a bekert karaktereket tartalmazza
nem forditottam, ha esetleg szintaktikai hiba lenne benne -
Sk8erPeter
nagyúr
válasz
pityaa23 #866 üzenetére
"system pause
először cin.get() -et használtuk, de a tanár áttérített minket erre
"
Akkor a tanárod egy... inkább nagyon finoman szólva...választhatott volna más tanári pályát.
Szokj le róla. Persze ahogy érzed.A programodat mivel fordítottad?
Oltári nagy...furcsaságok vannak benne.
- SZOV(i)='A';
Ez meg micsoda? Kíváncsi lennék, milyen fordító az, ami ezt elfogadja...ugyanis ennek semmi értelme.- if(SZOV=='a'&&...
ez már megint mi?-strlenhez illik include-olni a string.h-t (ez nálam is kimaradt az előző kódban, mert sajnos Visual C++ elég engedékeny)
-annak a do-while ciklusnak sincs túl sok értelme a standard inputról való bekérésnél...ha sikertelen a beolvasás, azt nem így szokás ellenőrizni...arra pl. ott van a cin good(), eof(), stb. függvénye, és más módszerek is vannak, de nem így kell.
-ezenkívül a programodba semmiféle ellenőrzést nem vittél bele, hogy elkerüld az esetleges túlcímzést.
-
pityaa23
senior tag
válasz
Sk8erPeter #865 üzenetére
szia!
Köszönöm a segítséget! Végül is sikerült megcsinálni másképp. system pause
először cin.get() -et használtuk, de a tanár áttérített minket erre
itt a másik megoldás:
#include<iostream>
#include<string>
using namespace std;
int main()
{
char SZOV[1000];
int i,j;do
{cout<<"adjon meg maximum 1000 karakterbol allo szoveget: "<<endl;
cin.getline(SZOV,1001);
}
while(strlen(SZOV)==0);
cout<<"kodolas: al=A, fa=B"<<endl;
for(i=0;i<=strlen(SZOV);i++)
{
if(SZOV=='a'&&SZOV[i+1]=='l')
{
SZOV(i)='A';
for (j=1;j<=strlen(SZOV);j++)
SZOV[i+j]=SZOV[i+1+j];
}
if(SZOV(i)=='f'&&SZOV[i+1]=='a')
{
SZOV(i)='B';
for (j=1;j<=strlen(SZOV);j++)
SZOV[i+j]=SZOV[i+1+j];
}
}
cout<<endl<<SZOV<<endl;
system("pause");
return 0;
} -
Sk8erPeter
nagyúr
válasz
pityaa23 #862 üzenetére
Hali!
Készítettem egy lehetséges gyorsváltozatot, aminél csak arra kell figyelned, hogy a helyettesítendő karaktersorozat mindig hosszabb legyen, mint amire titkosítod, jelenleg így működik helyesen (pl. "al" helyett "A"-t akarsz beírni, erre igaz a feltétel) - így volt a legkönnyebb megvalósítani többek közt a string osztály alapfüggvényei segítségével (a replace() fv. különben felülírná a további karaktereket - ennek elkerülésével most nem foglalkoztam).
Remélem ezeket felhasználhatod a feladatod megvalósítása során.Itt megtalálod az általam írt kódot: [link]
Teszteltem, működik, kommenteztem, hogy érthetőbb legyen a megvalósítás.
----------
system("pause");
Ezt kitől tanultad? Meg kéne ütni!helyette sokkal szebb pl. a
cin.get();
és/vagy
getchar();
Ez egy karaktert vár, és nem közvetlen rendszerhívás, mint a system-mel kezdődők, és amik természetesen egyáltalán nem platformfüggetlenek (pl. sok rendszerhívás, ami Windows-on működik, nem működik Linuxon). Az ilyeneket kerüld, a system hívásokat csak akkor használd, ha tényleg nagyon muszáj - de egy kezdőnél általában ilyen probléma nem merülhet fel, mert a klasszikus kezdő feladatok 99,9%-a megoldható ezek nélkül - ha nem, akkor ott már a feladat kiírójával van baj... -
bpx
őstag
válasz
pityaa23 #863 üzenetére
felesleges rögtön az elején átmásolni a teljes SZOV1-et SZOV2-be
úgyis végigmész egy ciklussal SZOV1-en, elég lenne ott karakterenként átmásolni
ha 'al'-t találsz akkor csak egy 'A'-t másolsz át, ha 'fa'-t, akkor csak egy 'B'-t, egyébként meg azt ami épp ott vande a legegyszerűbb az lenne, hogy string típust használsz, és annak a megfelelő tagfüggvényeit (find, replace, esetleg erase)
-
pityaa23
senior tag
Sziasztok!
Totál kezdő vagyok, és prog 1 ből kaptunk házit plusz pont ért, de elakadtam benne.
A feladat:Titkosírás: Kérjen be egy max. 1000 karakterből álló szöveget, majd a szöveg szavait adott kódrendszer segítségével írassa ki kódoltan is. A kódolás szabálya is jelenjen meg a képernyőn. PL.: "Sok alma van az almafa alatt.". Kódolás: al=A, fa=B. Az új szöveg: "Sok Ama van az AmaB Aatt."
eddig jutottam:
#include<iostream>
#include<string>
using namespace std;
int main()
{
char SZOV1[1000],SZOV2[1000];
int i;cout<<"adja meg a szoveget: "<<endl;
cin.getline(SZOV1,1001);
strcpy(SZOV2,SZOV1);for(i=0;i<1001;i++)
{
if(SZOV1=='a'&&SZOV1[i+1]=='l')
{
SZOV2(i)='A';
SZOV2[i+1]='X';}
}cout<<endl<<SZOV2<<endl;
system("pause");
return 0;
}tehát egyenlőre csak az "al"-ra kerestem rá és abból az egyik betűt átírom "A" -ra amire kell is, a másikat meg mondjuk "X"-re és ha végig átírta minden utána kitörlöm az összes "X" -et. És majd megint eljátszom az egészet a "fa" -val is. De nem tudom hogyan lehet kitörölni az "X" -eket egy szövegből...
Tuti van egyszerűbb módja a feladat megoldásának, de mint mondtam totál kezdő vagyok
Holnap kéne elküldenem a feladatot, úgyhogy légyszíves segítsetek!!
köszönöm előre is! -
sagit
veterán
válasz
Sk8erPeter #860 üzenetére
THX
-
Sk8erPeter
nagyúr
Itt vannak elég jó jegyzetek, megoldott ZH-példák, itt van egy példatár, ahol szintén elég jó megoldott példák vannak, itt van egy letölthető könyv, és így tovább.
-
sagit
veterán
válasz
WonderCSabo #854 üzenetére
kis gondolkodás után jah
és igenis nekem ez "roppant bonyolult" mivel ez az első félév hogy programozom, életemben, egyből c++ ráadásul az oktatóm is egy hát hogy is fogalmazzak ? sz@rházi
kb tojik bele, és semmit sem értek :S nagy kínszenvedés sajna... nah talán majd jövőre
-
ArchElf
addikt
válasz
WonderCSabo #854 üzenetére
Ha nem kell neki a jövőben, minek tanulja meg... Néha nem értem minek szivatják ezzel az embert. Egy átlagember nem (de még egy átlaginformatikus sem) a programozásból fog megélni.
AE
-
WonderCSabo
félisten
-
sagit
veterán
nemtom van-e i tt valaki de ezt kéne nekem gyorsba:
olvasson be egy adott időszak napi átlaghőmérsékleteit valós tömbbe. számolja ki az adott időszak maximumát. írassa ki az egyes napokon a maximumtól való eltérést
thx előre is
-
Gyuri16
senior tag
válasz
icespeak #849 üzenetére
az Eltol fuggvenynek az u es k valtozokat ertek szerint adod at, igy aztan nem kapod meg bennunk a vart eredmenyt. Probald meg inkabb azokat referenciaval atadni (a,b helyett)
amugy az eltolasnak nem a pont private x,y valtozoit kellene eltolnia? akkor a kiirnak se kellene parameter. nem ertem mire kell az u,k
-
icespeak
csendes tag
Helló!
A segítségeteket szeretném kérni az alábbi programban. Az lenne a feladat, hogy egy origóból induló vektorral eltoljam a megadott köröket. Megadjuk a vektor végpontját a körök középpontját és a sugaraikat. Csak valamiért nem megy.[B]main.cpp[/B]
#include <iostream>
#include <vector>
#include "read.h"
#include "pont.h"
#include "kor.h"
#include "vektor.h"
#include <string>
using namespace std;
int main()
{
double d,e,r,x,y,u,k;
cout<<"Adja meg a vektort\n";
cout<<"d= "; cin>>d;
cout<<"e= "; cin>>e;
int n=ReadInt("\nKorok szama: ", "Termeszetes szamot varok!");
vector<Kor> t(n);
for(int i=0; i<n;++i)
{
cout<<"Az"<<i+1<<"-dik kor koordinatai:\n";
x=ReadReal("\t x: ", "Valos szamot varok!");
y=ReadReal("\t y: ", "Valos szamot varok!");
Pont c;
c.Beallit(x,y);
r=ReadRealP("A kor sugara: ","Nem negativ valos szamot varok!");
c.Eltol(u,k,d,e);
c.Kiir(u, k);
}
return 0;
}
[B]kor.h[/B]
#ifndef KOR_H_INCLUDED
#define KOR_H_INCLUDED
#include "pont.h"
class Kor{
private:
Pont c;
double r;
public:
};
#endif // KOR_H_INCLUDED
[B]pont.h[/B]
#ifndef PONT_H_INCLUDED
#define PONT_H_INCLUDED
#include "vektor.h"
class Pont{
private:
double x,y;
public:
Pont() {x=y=0.0;}
void Beallit (double a, double b) {x=a; y=b;}
void Eltol(double u, double k, double &a, double &b);
void Kiir(double u, double k);
};
#endif // PONT_H_INCLUDED
[B]vektor.h[/B]
#ifndef VEKTOR_H_INCLUDED
#define VEKTOR_H_INCLUDED
class Vector2D{
private:
double d,e;
public:
Vector2D(): d(0.0), e(0.0) {}
Vector2D(double &a, double &b): d(a), e(b) {}
};
#endif // VEKTOR_H_INCLUDED
[B]pont.cpp[/B]
#include <iostream>
#include "pont.h"
#include "vektor.h"
using namespace std;
void Pont::Eltol(double u, double k, double &a, double &b)
{
u=x+a;
k=y+b;
}
void Pont::Kiir(double u, double k)
{
cout <<"u: "<<u<<endl;
cout <<"k: "<<k<<endl;
} -
harry
veterán
Sziasztok, tudnátok ebben segíteni? [link]
Köszönöm. -
sghc_toma
senior tag
hm.. fura, nalam fordul.. itt vannak a diff-ek a pastebin-es kodhoz kepest:
diff Termekek.h Termekek_mine.h
158c158
< Product& operator<(Product& j1,Product& j2);
---
> bool compare(Product * j1, Product * j2);diff Termekek.cpp Termekek_mine.cpp
482c482
< sort(store.begin(),store.end());
---
> sort(store.begin(),store.end(), compare);
485c485
< bool operator<(Product& j1,Product& j2)
---
> bool QuickFrozen::compare(Product * j1, Product * j2)
487c487
< return strcmp(j1.get_name(),j2.get_name());
---
> return strcmp(j1->get_name(), j2->get_name()) < 0;ja, es a main fuggvenyed void visszateresi erteku.. ez nem okes, int-nek kene lennie.. nem is ertem, a cl miert nem szol erte (W4-gyel sem)..
-
papa019
senior tag
válasz
sghc_toma #838 üzenetére
köszi már majdnem jó...
Az operátort kitöröltem, gondolom a compare fv. mellett arra már nincsen szükség...
De a fordító ezt írja ki:
1>Termekek.obj : error LNK2019: unresolved external symbol "bool __cdecl QuickFrozen::compare(class QuickFrozen::Product *,class QuickFrozen::Product *)" (?compare@QuickFrozen@@YA_NPAVProduct@1@0@Z) referenced in function "public: void __thiscall QuickFrozen::Store::sort_by_name(void)" (?sort_by_name@Store@QuickFrozen@@QAEXXZ)
1>D:\Egyetem\2. félév\Programozás alapjai 2\NagyHF\nhf\Debug\nhf.exe : fatal error LNK1120: 1 unresolved externals -
sghc_toma
senior tag
a Termekek.h-ban van egy ilyen:
Product& operator<(Product& j1,Product& j2);
ez ugye nem OK, bool a helyes visszateresi ertek..meg egy ilyen:
return strcmp(j1.get_name(),j2.get_name());
ez nem jo, mert akkor igaz, ha nem egyenlo a ket nev, nem akkor, amikor az elso kisebb..
Es ami a fo problema: a vektorban ugye pointereket tarolsz, az operator< meg referenciakkal dolgozik, ez igy nem okes.. tehat kell egy osszehasonlito fv., ami valahogy igy nez ki:
bool compare(Product * p1, Product * p2)
{
return strcmp(p1->get_name(), p2->get_name()) < 0;
}ezt megadhatod harmadik parameternek a sort-nak..
remelem nem neztem el semmit (kicsit sietve futottam at a kodot, eppen beadandot irok)
-
papa019
senior tag
válasz
sghc_toma #834 üzenetére
Valamiért nem működik még mindig, pedig így csináltam...
Viszont ha az operátor const referenciákat kap, akkor hibát ad erre a megoldásra...
Viszont nekem nem int értékeket kell rendezni, hanem char* értékek alapján...
meg hiába friend az operátor az osztályomban, a name változót sehogyan sem érem el, így a get_name() fv.-t használom.És az a legnagyobb baj, hogy a sort fv. meg se hívja az operátorom... :S
-
sghc_toma
senior tag
ha irtal kisebb operatort, akkor nem kell harmadik parameter, mivel a sort alapbol azt hasznalja.. tehat pl. ennek igy mukodnie kell:
#include <vector>
#include <algorithm>
class Product
{
//...
int value;
public:
friend bool operator<(const Product & p1, const Product & p2);
}
bool operator<(const Product & p1, const Product & p2)
{
return p1.value < p2.value;
}
int main()
{
std::vector<Product> products;
//...
std::sort(products.begin(), products.end());
return 0;
} -
Jester01
veterán
Ha tényleg nem szereti a 3 paraméteres változatot akkor ott valami gubanc van a fordítási környezettel mert az összes fellelhető dokumentáció azt állítja hogy ez szabványos. Ha a környezettel nem tudsz mit kezdeni akkor nincs más hátra mint előre, és írni egy a követelményeidnek megfelelő rendezést kézzel.
-
papa019
senior tag
válasz
Jester01 #831 üzenetére
Eddig oké, csak nem tudom felparaméterezni. :S
van egy vektorom így: "vector<Product*>store".Ekkor ugye a sort első két paraméterével így néz ki:
"sort(store.begin(),store.end())"Viszont a 3. paramétert nem tudom hogy írjam meg... Írtam összehasonlító operátorokat a Product osztályba, de azokat nem tudom betenni paraméternek, mert a sort függvény sír, hogy két paramétert vár és 3-at adnék neki.
Valaki vmi ötlet? :$ -
papa019
senior tag
Sziasztok!
Olyan kérdéssel fordulnék hozzátok, hogy egy osztály elemeit "vector<>" template fv.-ben tárolom. És a vektorom elemeit szeretném rendezni az osztályomban lévő "char* name;" változók alapján. Ezt milyen fv.-el tudom véghezvinni?
Üdv: Papa019
-
Nyiscsák
aktív tag
Köszönöm szépen mindenkinek! Sikerült megoldani!
-
sghc_toma
senior tag
C++-ul:
#include <algorithm>
#include <string>
// ...
bool isPalindrom(std::string str)
{
str.erase(std::remove(str.begin(), str.end(), ' '), str.end());
transform(str.begin(), str.end(), str.begin(), ::tolower);
std::string reversed(str);
std::reverse_copy(str.begin(), str.end(), reversed.begin());
return !str.compare(reversed);
} -
Sk8erPeter
nagyúr
válasz
Nyiscsák #822 üzenetére
Ilyen feladat itt megtalálható megoldva: InfoC (BME)
(Ez itt sima C.)
#include <stdio.h>
#include <string.h>
void megfordit(char t[]);
void spacetelenit(char t[]);
int main(){
char hello[]="indul a gorog aludni";
char masolat[50];
spacetelenit(hello);
strcpy(masolat, hello);
megfordit(masolat);
if (strcmp(hello, masolat)==0)
printf("Ez egy palindrom!\n");
else
printf("Nem palindrom.\n");
}
//Szóközöket ne vegyük figyelembe
void spacetelenit(char t[])
{
int honnan, hova;
hova=0;
/* végigmegyünk az összes karakteren */
/* "honnan" mindig nő, "hova" csak néha */
for (honnan=0; t[honnan]!=0; honnan++)
/* és ami nem space, másoljuk */
if (t[honnan]!=' ') { /* NEM 32, hanem ' '! */
t[hova]=t[honnan];
hova++;
}
t[hova]=0; /* a papagáj egyből: "lezáró NUL!" */
}
//String megfordítása
void megfordit(char t[])
{
int hossz;
int i;
hossz=strlen(t);
/* csak a feléig forgatunk, különben visszafordítanánk */
for (i=0; i<hossz/2; ++i) {
char temp;
temp=t[i]; /* három lépéses csere */
t[i]=t[hossz-1-i];
t[hossz-1-i]=temp;
}
/* lezáró NUL? van, mert maradt a helyén. */
} -
ArchElf
addikt
válasz
Nyiscsák #822 üzenetére
Szerintem ellenőrzés előtt szedd ki belőle a szóközöket, és írásjeleket, kisbetűsítsd az egészet és engedékeny esetben í->i, ó->o, ő->ö, ú->u, ű->ü; dupla/tripla betűk egynek számítanak: cs, dz, dzs, gy, ly, ny, ty, sz, zs
Ja és van 100 karakternél hosszabb (nem értelmes) palindrom is
AE
-
Nyiscsák
aktív tag
Van nekem egy olyan feladatom hogy meg kell vizsgálni egy mondatról hogy palindrom-e vagy sem. Ez mind oké csak hogy nekem úgy működik ha nem írok szóközt és nem tudom hogy lehetne a szóközöket kiszedni
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
char str[100];
bool pal;
cout<<"Kerem a szoveget:";
cin>>str;
int x = strlen(str)-1;
for(int i=0; i<=x; i++)
{
if(str[i] == str[x-i])
{
pal = true;
continue;
}
else
{
pal = false;
break;
}
}
if(pal == true)
cout<<"Palindrom"<<endl;
else
cout<<"Nem palindrom"<<endl;
getch();
}Minden segítséget köszönök előre is!
-
-
sghc_toma
senior tag
válasz
Mr. Teddy #818 üzenetére
a nativ alkalmazasnak az a baja, hogy nem talalja a megfelelo verzioju c runtime-ot.. legegyszerubben ugy tudod megoldani, hogy statikusan linkeled a crt-t: [link]
arrol lovesem sincs, hogy a managed cucc miert nem megy.. biztosan ugyanaz a .Net framework van fent a ket gepen? -
Mr. Teddy
őstag
Sziasztok!
Egy olyan problémám volna, hogy egyszerűen képtelen avgyok beállítani azt, hogy ami progit Visual C++ban írok az menjen más gépen is. Konfigurációs hibát ír.
Két proginál sem megy.
Egyik egy sima "hello world" teszt képpen, ami sima konzol alkalmazás. A másik már érthetőbb okokból nem megy, egy windows form managed c++t tartalmazó progi. Utóbbi akkor sem megy ha a .Net frameworköt és a Visual C++ 2008 SP1 Redistributable Package-et felteszem. -
j0k3r!
őstag
válasz
Sk8erPeter #813 üzenetére
koszonom szepen, atnezem oket!
-
Sk8erPeter
nagyúr
Egyébként a vector, string és ehhez hasonlók az STL-tárolók témakörbe tartozik.
Igen nehéz lenne általánosan megfogalmazni, mikor melyik típus jó, de pl. a vector egy olyan osztály, amelynek sablonparaméterként át lehet adni a típust. Elég hasznos, mert így szinte bármilyen adattípust tudsz kezelni (egész számok, karakterek, karaktertömbök, stb.). -
Sk8erPeter
nagyúr
Innen letölthetsz C++-os jegyzeteket (előadónk oldala), a lényeg röviden elég jól benne van mindegyik anyagrészből: [link] (most épp le tudod tölteni, félév elején eltűnnek a linkek (mondjuk a cím elérhető), hogy lehessen látni, épp hol tartunk)
(#811) emvy: tudom én, hogy tudod.
-
j0k3r!
őstag
hello!
a multkori pelda utan elbizonytalanodtam, hogy mikor milyen 'tipusu' valtozok idealisak egyes feladatokra. evvel kapcsolatban van valakinek valami jegyzete (pdf,doc,html barmi jo), ahol le lenne irva, hogy milyen celokra altalaban milyen 'tipust' kellene hasznalni?
'tipus' alatt azokat ertem, amit elvileg a foiskolan 'tanitottak' (itt a tanitottak szo eleg nagy tulzas), pl.: vector, string, list, stb.
elore is koszonom, ha valaki tudna segiteni. -
válasz
Sk8erPeter #810 üzenetére
Tudom en, hogy tudod, csak hidd el, hogy en is tudom
-
válasz
Sk8erPeter #808 üzenetére
En ugy ertettem, hogy ha minden szot kulon elemkent kezelsz, akkor a fajl merete nem fog sokat mondani arrol, hogy mekkora tombre van szukseged.
-
Sk8erPeter
nagyúr
"A fajlmeret-beolvasas nem mukodik"
Már miért ne működne?
Legfeljebb akkor lehet gond, ha már fájl végéhez értünk (pl. egyszer már beolvastuk az állományt), de ekkor kiadsz egy clear()-t, és megint menni fog.Fájlméret-lekérdezés:
ifstream file_to_process("test.dat" , ifstream::in);
//fájl elejéhez ugrás:
if( (int)file_to_process.tellg() != 0) //ha nem az elején vagyunk
file_to_process.clear(); //ha EOF-hoz értünk, már nem menne enélkül...
//elejére ugrunk
file_to_process.seekg(0, ios::beg);
//végére ugrunk
file_to_process.seekg(0, ios::end);
//hol tart?
long length =(long) file_to_process.tellg();
//méret kiírása
cout<<"File merete: "<<length<<" byte"<<endl; -
Sk8erPeter
nagyúr
válasz
Jester01 #806 üzenetére
Hali!
Köszi a választ!A parám igazából éppen az, hogy ha átírom az ifstream típust istream-re, akkor a fordító már jogosan pampog, hogy miért akarok mondjuk egy close() függvényt egy ilyen tagváltozóra meghívni.
A legtöbb függvényem tulajdonképpen elsősorban fájl-specifikus, van olyan metódus, ami megnyit, van olyan, ami bezár (direkt itt nyitom meg, és nem mondjuk a main()-ből, hogy rugalmasabb legyen!), van olyan, ami megmondja a fájl méretét, fájl elejére vagy végére ugrik (a clear() metódus nélkül a fájlvégre éréskor már nem megy a seekg()-vel a fájlméret-lekérdezés, ezért tartottam érdemesnek külön függvénybe bepakolni), és így tovább.Ez a dolog egyébként a linuxos tail program megvalósításához kellene, aminek a feladat-kiírását korábban itt írtam: [link]
A standard inputról olvasás itt akkor kellene, amikor a júzer nem ad meg fájlnevet paraméterként - épp, ahogy a Linuxon is működik a tail.
Na, és a fájlkezelést, valamint egy tároló feltöltésének függvényét is bepakoltam ebbe a File osztályba, amit említettem, és gondoltam ha a paraméterben nincs megadott fájlnév, akkor lehetne cin-ről olvasni.Akkor szerinted érdemes inkább a standard inputról olvasásra külön osztályt létrehozni?
-
Jester01
veterán
válasz
Sk8erPeter #805 üzenetére
Nyilván csak azok működnek amik nem fájl-specifikusak. Az open-t még ott hívd meg amikor létrehozod a stream-et, olyankor még tudod, hogy az ifstream. Később már csak olyanokat illik használni amik sima istream-re is működnek. Ha nagyon muszáj, akkor pl. dynamic_cast segítségével (vagy valami bool adattaggal) csinálhatsz elágazást. Persze ha sok ilyen kell akkor érdemesebb inkább 2 fajta File osztály implementációt készíteni, közös őssel.
-
Sk8erPeter
nagyúr
Hali!
Van egy kérdésem fájlkezeléssel és a standard bemenet objektumként való kezelésével kapcsolatban. Jól jönnének az ötletek!Van egy File osztályom, amiben a számomra szükséges metódusokat valósítom meg fájlkezeléssel kapcsolatban, és az osztály konstruktorának van egy default NULL értékkel ellátott paramétere - a konstruktornak át lehet adni egy fájlnevet, amit ugyanitt a konstruktorban majd megnyitok, stb.
Ha a paraméter üres (NULL), akkor majd a standard inputról kellene olvasnom.
A konstruktor fejléce így néz ki:
File(const char * filename=NULL);A fájlkezeléshez létrehoztam egy
ifstream file_to_process;
tagváltozót (private), ez lesz az, amibe majd megnyitom a fájlt, amiből olvasok, stb., a standard inputról meg getchar-ral olvastam - ez viszont, ha már OOP, nem egy túl elegáns megoldás, ezért gondoltam arra, hogy akkor a változót istream-mé kéne tenni, ennek úgyis származtatott osztálya az ifstream, majd megoldom úgy - és akkor végül is a cin-t objektumként kezelem.
Ezért átalakítottam így:
istream file_to_process; //ifstream helyett!Na de most az a para, hogy viszont így a korábban létrehozott metódusok nem működnek, az olyanok, mint pl. a következő:
file_to_process.open(filename, ifstream::in) //vagy ios::in ???Hogyan tudnám ezt a legegyszerűbben megoldani, hogy ezek a metódusok működjenek istream-mel is?
Előre is köszi az ötleteket!
Remélem valamennyire érthetően írtam, ha nem, kérdezzetek, köszi! -
WonderCSabo
félisten
-
Jester01
veterán
válasz
WonderCSabo #802 üzenetére
Definiálnád a "megy" kifejezést? Beállít értelmes locale-t? Mert ugye mint említettem, hibakezelés nincs a programban, tehát ha nem megy azt se lehet észrevenni.
-
Jester01
veterán
válasz
WonderCSabo #800 üzenetére
Az én linuxaimon nem megy, tekintve, hogy
A locale name is typically of the form
language[_territory][.codeset][@modifier], where
language is an ISO 639 language code, territory is
an ISO 3166 country code, and codeset is a character
set or encoding identifier like ISO-8859-1 or UTF-8.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Milyen videókártyát?
- Windows 11
- AMD Navi Radeon™ RX 9xxx sorozat
- Napelem
- Egy gyártási hiba miatt nem bootolhatnak bizonyos Minisforum PC-k
- Vezetékes FEJhallgatók
- LordAthis: Ismét egy "Idióta" A.I. Projekt, hogy meglovagolja a trendeket...
- 3D nyomtatás
- Azonnali VGA-s kérdések órája
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- További aktív témák...
- HP 200W (19.5V 10.3A) kis kék, kerek, 4.5x3.0mm töltők + tápkábel, 928429-002
- Bomba ár! Lenovo ThinkPad T15 G1 - i5-10GEN I 16GB I 256GB SSD I 15,6" FHD Touch I Cam I W11 I Gari!
- Xiaomi Redmi Note 14 Pro 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA!Épített KomPhone Ryzen 5 4500 16/32/64GB RAM RX 6500 XT 4GB GAMER PC termékbeszámítással
- HP Rack szerverek és tartozékok egyben vagy külön-külön
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest