-
Fototrend
Új hozzászólás Aktív témák
-
Protezis
őstag
Bár nem az a program, ami neked kell, minden benne van. Kb. egy hete csináltam Bár nem tökéletes, mert ha al túlcsordul, tehát ah-ban is lesz vmi, akkor nem jól műkszik.
A kiíratás benne van. Ha lenne kérdésed, nyugodtan tedd fel. Holnap 4-től vizsgázok, utána tudok válaszolni
Bővebben: link
[Szerkesztve] -
Protezis
őstag
Lenne egy kérdésem a Hanoi tornyai egy módosított változatával kapcsolatban.
Szóval az eredeti feladat kibővítve azzal, hogy nem 1 tornyon vannak a korongok, hanem szétszórva a 3 rúdon.
Az algoritmusom működik, csak épp nem túl takarékosan.
Megkeresem a legkisebb elemet és azt, ami utána jön, majd meghívom rá a rekurzív hanoi függvényt, hogy tegye át a köv számra. Aztán 2 korongot rakok át a köv számra, aztán 3-at stb. Tehát megkeresi az 1-est, azt rárakja a 2-esre, aztán az 1,2-őt rakja a 3-ra, majd 1,2,3-at a 4-re stb. És minden új számra helyezésnél meghívja a rekurzív fv-t.
Van ennél jobb algoritmus? (gondolom aki tudna segíteni, ismeri a hanoi-tornyai problémát, valamint ismeri az azt megoldó rekurzív algoritmust, így ezeket nem részletezném.) -
Protezis
őstag
-
Protezis
őstag
Semmi gond!
Igen, én is a rendezett állapotot érem el az algoritmusommal. Azon a rúdon lesznek a korongok, ahol a legnagyobb korong van. Vagyis a végén újra rendezni kell az egészet arra a rúdra amit a felhasználó ad meg. Ez teljesen megegyezik az alap Hanoi problémával.
Látható, hogy bár működik a programom (megírtam és jó), csak rengeteg felesleges lépést hajt végre. Nem rekurzívan hogy csinálod meg? -
Protezis
őstag
Elég egyszerű feladat. Lényegében meg kell számolni, hány nap telt el 1600. jan. 1-je óta.
Ezt elosztod héttel, és a maradékból következik, milyen nap van.
Az eltelt napok kiszámításánál pedig megnézed, hány 400-al osztható év volt, hány 100-zal osztható, hány 4-el osztható, és ezek függvényében kiszámítod a napok számát. -
-
Protezis
őstag
C++ -ban kellene egy kis segítség.
Graf.h:#ifndef GRAF_H
#define GRAF_H
class Graf {
vector<int> D;
vector<int> Apa;
deque<int> Sor;....
Graf.cpp:#include ''Graf.h''
#include <vector>
#include <deque>
#include <iostream>
using namespace std;
Graf::Graf (char *fajlnev) {....
Rögtön a Graf.h-ban hibát dob, miszerint: missing ; before < (a legelső vectoros sorban)
és missing storage-class or type specifiers... meg még 24 hiba, gondolom legtöbbjük ebből fakad.
Kellene deffiniálnom egy típust? De pl itt: [link] az Algorithms címszó alatti legelső progiban is így használja (meg mi is így vettük gyakon... már amennyit vettük az STL-t)</p></p>
[Szerkesztve]
[Szerkesztve] -
Protezis
őstag
Ezt a retkes C++.... grrrr. Nem tudok megnyitni egy fájlt. C-ben simán megy, itt nem.
#include ''Graf.h''
#include <limits>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
Graf::Graf (/*char *fajlnev*/) {
FILE *fin;
fin=fopen(''feladat.be'',''r'');
fclose(fin);
}
Debugnál FCLOSE.C fájl kéne neki. Azt akarja olvasni. Hülye ez? -
Protezis
őstag
Ezesetben tényleg így a célravezetőbb.
Asszem az egyetlen különbség a struct és a class között, hogy a class adattagjai alapértelmezés szerint private elérésűek, a structnál pedig public.
Nem csak ez. Structból származtatni sem lehet.
Mod: Állati az aláírásod
[Szerkesztve] -
Protezis
őstag
Lenne egy problémám operator overloadinggal kapcsolatban C++-ban:
Kollekcio.h-ban:
...
friend Kollekcio operator+ (const Kollekcio &koll, const Konyv &elem);
...
Kollekcio.cpp-ben:
...
Kollekcio operator+ (const Kollekcio &koll, const Konyv &elem) {
Kollekcio koll2(koll); //copy konstruktor meghívása
koll2.elemHozzaad(elem); //bővíti a Konyv típusú elemmel
return koll2;
}
...
A művelet, amit elvégeznék:
Kollekcio A = Kollekcio B + Konyv I;
A VC++ 6 internal compiler error hibát dob a header fájlban lévő sorra mutatva:fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'msc1.cpp', line 1786)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
Error executing cl.exe.
Mi a baja vele? -
Protezis
őstag
Nem értem a következő függvénydeffiníciót:
void * (*proto_type(long int, char *b)) (const char *b, unsigned short int d) ;
A proto_type fv. mikor hívódik meg, és mit ad vissza? -
Protezis
őstag
válasz Miracle #1282 üzenetére
Köszi a választ, bár nem nagyon könnyítetted meg az életemet
Azonban azt hiszem, kapizsgálom.
Lenne egy másik kérdésem is. C++ -ban hogy hozok létre lokális objektumot a veremben? Nem látom a különbséget a statikus adatszegmensbeli objektum, és a lokális objektum deklarációja között. -
Protezis
őstag
válasz Jester01 #1313 üzenetére
És az adatszegmensbe mikor kerül? Ha static-ként hozom létre?
Jegyzetben ez van:
''a.) sztatikus objektum létrehozása az adatszegmensben
Fraction a, b, c(3), D(5,2), e(”12/65”) ;
b.) lokális objektum létrehozása a veremben
void Add(Fraction f1, Fraction f2 = Fraction(”0/1”))
{
Fraction res(0) ;
...
}
A fenti Add eljárásban szereplő Fraction(0,1) egy úgynevezett objektum konstans. Objektumokat tartalmazó kifejezésekben vagy default paraméterek esetén használhatjuk.
Objektum példányokból további összetett adatstruktúra építhető fel: például tömb, mátrix, létrehozható objektum példányra mutató pointer, vagy objektum példány értékű függvény.
Fraction f = 32 * Fraction(6,8) + Fraction(9,15) ;
Fraction f[5,5], *pFr, Add(Fraction &, Fraction &) ;''
És van a dinamikus, az érthető. De ha a sztatikus objektum kerül az adatszegmensbe, akkor az a) pontban miért nincs előtte, hogy static?
Igen, én is úgy tudtam C-beli tanulmányaim alapján, hogy függvényen belül deklarált változó a verembe kerül, C++ -ban ráadásul belső blokkon belül is deklarálhatunk, és a blokkból való kilépésnél meg is szűnik. De így meg az a) pont nem világos. -
Protezis
őstag
válasz Jester01 #1322 üzenetére
Azt olvasom, hogy ha a global scopeban (nem ez a válasz a kérdésedre? ) deklarálok static kulcsszóval egy változót, az a fájl scopeba kerül, adatszegmensben lesz eltárolva, ha függvényen belül deklarálom, akkor csak az adott blokkon belül lesz látható, de a blokkból való kilépéskor nem szűnik meg, értékét megtartja, tehát ekkor is az adatszegmensben lesz eltárolva.
Ez így világosnak tűnik számomra. Lényegében ezt mondtad te is, csak én annyival mondtam többet a jegyzet alapján, hogy mindkét esetben az adatszegmensben lesz. De objektumok esetén is így kell eljárni? De akkor az a.) pontban miért nincs ott a static szó a típus előtt?
Mert úgy a logikus, hogy csak akkor kell adatszegmensben tárolnom valamit, ha annak a program futása alatt végig léteznie kell, ehhez pedig kell a static szó függetlenül a különböző láthatóságokon. Fraction a; mitől sztatikus? pfffff -
Protezis
őstag
válasz Jester01 #1327 üzenetére
Kösz szépen
Igen, elolvastam, amit írtál, és ezt mondtad valóban, csakúgy, mint én a válaszomban. Mindössze a jegyzetemet nem értem. Akkor egyetlen magyarázat az ottani példára, hogy azok globális változók, azért nics ott a static (és mégis az adatszegmensben vannak)
Mégegyszer köszönöm -
Protezis
őstag
válasz KngAlex #1380 üzenetére
Első dolog, hogy letöltöd/lefénymásolod stb. az előadásanyagot. Ha ez nem elég, veszel egy könyvet. Ha konkrét kérdésed van, először utánanézel neten, C-ről millió oldalt találhatsz, ha nem megy így sem, segítséget kérsz itt, vagy más fórumon. Sokan nagyon szívesen segítenek (én is, ha tudok)
-
Protezis
őstag
elso talalat: [link]
Kozvetlen windows programozas helyett ajanlanam inkabb ezeket:
- Java (ehhez mondjuk ajanlom az eclipse + visual editor plug-in kombot)
- MFC ( hagyomanyos wines programok, visual c++ 6, vagy valamelyik visual studio)
- .NET framework hasznalata (c++, c# stb., ehhez visual studio 2003, 2005)
Visual Studiobol az express edition is eleg lesz kezdetnek, ingyen letoltheto az ms honlapjarol.
A guitol csak felhasznalobaratabb lesz a programod.
[Szerkesztve] -
Protezis
őstag
válasz B-L-A-C-K #3345 üzenetére
ooo, felreneztem.
Szoval kb. ennyit kellene csinalni:
Nyilvantartod az osszes megkezdett ladakupacod meretet (mekkora benne a legkisebb lada), es a soronkovetkezo ladat belerakod azon ladakupac valamelyikebe, amibe belefer. Ha nem fer bele egyikbe se, uj kupacot kezdesz.A megvalositasrol:
Minden ladakupac lehet mondjuk egy lancolt lista, a legkisebb ladat mindig a lista elejere fuzod fel. Ezeket a kupacokat pedig szinten egy lancolt listaba rakhatod.
Ezen kupacokat kell vegigjarni, es megnezni minden kupac (lista) elejet.[ Szerkesztve ]
-
Protezis
őstag
válasz Protezis #3346 üzenetére
Keso van mar...
Arra kell meg figyelni, hogy ha tobb ladakupachoz is hozzafuzheted az adott ladadat, akkor ahhoz fuzd hozza, amelyikben a legkisebb lada a legkisebb...
Pl.:
7 5 6
8 4 32-es meretu ladat a 2. sorba rakod (3 < 6), mert ha a kovetkezo a 4-es lada, es a 2-est az elsobe rakod, akkor a 4-es lada uj kupac lenne.
[ Szerkesztve ]
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Modern monitorokra köthető 3dfx Voodoo kártya a fészerből
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Mibe tegyem a megtakarításaimat?
- Politika
- Milyen okostelefont vegyek?
- Stellar Blade
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- Bambu Lab X1/X1C, P1P-P1S és A1 mini tulajok
- Android szakmai topik
- Az NVIDIA szerint a partnereik prémium AI PC-ket kínálnak
- További aktív témák...