Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / Technologie / Software & Hardware
Reageren
 
Topictools Zoek in deze topic
Oud 24-10-2003, 20:58
Dr HenDre
Avatar van Dr HenDre
Dr HenDre is offline
Uit een boek met simpele c++ opdrachten en toen ik ze afging kwam ik bij de volgende. Je moet iets maken wat uitrekent hoeveel dagen er zijn verstreken vanaf het begin van een jaar tot de opgegeven datum. Nu heb ik het allemaal gemaakt, dat is het probleem niet, maar ik heb nu een exe van 1,20MB. Lijkt me een beetje groot voor een code an 30 regels ofzo, weet iemand waar het misshien aan kan liggen. Dit is de code:

Code:
#include <iostream>
#include <stdlib.h>

using namespace std;

int main()
{
    unsigned int dag, maand, jaar;
    unsigned int verstrekenDagen=0;
    unsigned int aantalDagen[13] = {0, 31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    
    cin >>dag>>maand>>jaar;
    if(dag>31 || maand>12) cout<<"Ongeldige datum";
    
    (jaar% 4 == 0 && jaar % 100 != 0) ? aantalDagen[2]=29 : aantalDagen[2]=28;
    
    for (int i=1; i<=(maand-1); i++)
    {
        verstrekenDagen += aantalDagen[maand-i];
    }
    
    verstrekenDagen += dag;
    
    cout<<"Dit is de "<<verstrekenDagen<<" ste dag van het jaar " << jaar << endl;
    system("pause");
}
Iemand een idee?

edit:
Ow ja, misshien handig om te vermelden, ik gebruik Dev-C++

edit2:
Met MSVC++ krijg ik een exe van 520KB, vind ik nog steeds redelijk groot

@neophyte Je bent met net voor met MSVC++, maar ik ben weer bezig met c++ hoor, al een heel tijd, ben nu met de WIN32 API bezig, valt niet mee

Laatst gewijzigd op 24-10-2003 om 21:04.
Met citaat reageren
Advertentie
Oud 24-10-2003, 21:01
twim
Avatar van twim
twim is offline
HEY GAST!
dacht dat jij geen C++ meer deed?

Ontopic:
Geen idee.
Kunt ook beter Visual C++ 6.0 gebruiken
Met citaat reageren
Oud 24-10-2003, 21:11
Enlightenment
Avatar van Enlightenment
Enlightenment is offline
Komt gewoon omdat hij bij de .exe allemaal DLLs (die dus dynamisch zijn, maar je compileert ze statisch) versmelt. Als je die weg zou laten zou je een kleine .exe over houden).
__________________
Per undas adversas (tegen de stroom in)
Met citaat reageren
Oud 24-10-2003, 21:56
Dr HenDre
Avatar van Dr HenDre
Dr HenDre is offline
Citaat:
Enlightenment schreef op 24-10-2003 @ 22:11:
Komt gewoon omdat hij bij de .exe allemaal DLLs (die dus dynamisch zijn, maar je compileert ze statisch) versmelt. Als je die weg zou laten zou je een kleine .exe over houden).
En waar komen die DLL's dan vandaan, want het ligt niet aan de include, met dezelfde includes en een simpelere prog krijg ik prog's van een paar kb.
Met citaat reageren
Oud 24-10-2003, 21:58
Screaming Slave
Screaming Slave is offline
ligt aan welke functies je gebruikt.

include "conio.h" eens doe ipv system("pause"); dit -> getch();
Met citaat reageren
Oud 24-10-2003, 22:14
Dr HenDre
Avatar van Dr HenDre
Dr HenDre is offline
Citaat:
Crystal Method schreef op 24-10-2003 @ 22:58:
ligt aan welke functies je gebruikt.

include "conio.h" eens doe ipv system("pause"); dit -> getch();
helpt nix, hij blijft 1,20MB
en het ligt ook niet aan
(jaar% 4 == 0 && jaar % 100 != 0) ? aantalDagen[2]=29 : aantalDagen[2]=28;

(heb het vervangen door if-else maar hij blijft even groot)

Laatst gewijzigd op 24-10-2003 om 22:20.
Met citaat reageren
Oud 24-10-2003, 23:37
deathz0rz
deathz0rz is offline
op freebsd wordt ie maar
5750 bytes

$./a.out
31
12
2097
Dit is de 365 ste dag van het jaar 2097
pause: not found
$
__________________
Ooit. Dan.
Met citaat reageren
Oud 25-10-2003, 00:00
Screaming Slave
Screaming Slave is offline
compile je niet met debug symbols enzo? strip de executable es.
Met citaat reageren
Oud 25-10-2003, 09:45
Refro
Refro is offline
Zover mij bekent is dat van dll's die worden meegenomen bullshit,tenzij je ergens expliciet vermeld dat ie geen dll's moet gebruiken maar de statische libraries(en dan is het nog maar de vraag).(maar dit kan ik fout hebben omdat ik allang niet meer in windows heb zitten pluizen)

Ik verwacht dat er idd debug symbols worden meegenomen ik ken de IDE niet maar hier zou je eens naar moeten kijken. Ik weet dat in VC++ 6 bij een debug build er veel plaats aan debug symbols opgaat en er worden in de "executable" ook stukken leeg gelaten zodat hier bij kleine veranderingen code rechtstreeks in de executable geplaats kan worden zodat deze niet opnieuw gelinkt moet worden.

Een goede C++ compiler hoeft in ieder geval geen groter programma te genereren dan een goede C compiler met een vergelijkbaar programma.

Maar ik zou naar de optimalisatie kijken en zorgen dat je geen Debug symbols meenemt.

BTW als je in het leer process zit zou ik me niet druk maken over de grootte van een executable
__________________
win or loose your all gonna die
Met citaat reageren
Oud 25-10-2003, 09:48
Chimera
Avatar van Chimera
Chimera is offline
VC++ linkt standaard een stel 'standaard' libs mee, zou even in de config kijken welke libs dit precies zijn, en of je die uit kunt schakelen.
Met citaat reageren
Oud 25-10-2003, 11:54
Screaming Slave
Screaming Slave is offline
Citaat:
Chimera schreef op 25-10-2003 @ 10:48:
VC++ linkt standaard een stel 'standaard' libs mee, zou even in de config kijken welke libs dit precies zijn, en of je die uit kunt schakelen.
is dat een lib met dezelfde functies als msvcrt.dll toevallig? als je dus daar dynamisch mee linkt, werkt je programma ws niet meer Windows 95 (kmeen dat die dll toen nog niet meegeleverd werd?), maar eh dat boeit dus geen fuck
Met citaat reageren
Oud 25-10-2003, 14:08
Verwijderd
Dev-C++ gebruikt de MinGW port van de GCC compiler. Als je daarvan in de FAQ kijkt, vind je het volgende:

Citaat:
Why is my C++ binary so large?

C++ programs using the Standard Template Library (ie/ #include <iostream>) cause a large part of the library to be statically linked into the binary. The need to statically link the stdc++ into the binary is two fold. First MSVCRT.dll does not contain C++ stdlib constructs. Second the legal implications of generating a libstdc++.dll are restricted by the licensing associated with the library. If you wish to keep your file size down use strip to remove debugging information and other verbatim found in the binary.
strip --strip-all SOMEBINARY.exe
Met citaat reageren
Oud 25-10-2003, 14:15
Verwijderd
Citaat:
Dr HenDre schreef op 24-10-2003 @ 21:58:
@neophyte Je bent met net voor met MSVC++, maar ik ben weer bezig met c++ hoor, al een heel tijd, ben nu met de WIN32 API bezig, valt niet mee
Om het ontwikkelen van Windows applicaties eenvoudiger te maken - vooral in combinatie met C++ - zijn er verschillende wrappers voor de Win32API in de wereld gezet. Het is op zich wel leuk om direct met de Win32API te leren werken, zodat je een beter begrip hebt van de interne werking van Windows applicaties, maar echt pragmatisch is het niet.

Kun je beter leren met de MFC of .NET classes om te gaan.
Met citaat reageren
Oud 25-10-2003, 19:01
Dr HenDre
Avatar van Dr HenDre
Dr HenDre is offline
Citaat:
******** schreef op 25-10-2003 @ 15:15:
Om het ontwikkelen van Windows applicaties eenvoudiger te maken - vooral in combinatie met C++ - zijn er verschillende wrappers voor de Win32API in de wereld gezet. Het is op zich wel leuk om direct met de Win32API te leren werken, zodat je een beter begrip hebt van de interne werking van Windows applicaties, maar echt pragmatisch is het niet.

Kun je beter leren met de MFC of .NET classes om te gaan.
Heb MFC bekeken, maar als ik niet snap wat heel die code doet, dan kan ik alleen een paar standaard dingen, en ik wil juist alles naar mn eigen zin aanpassen.
Met citaat reageren
Oud 25-10-2003, 19:05
Dr HenDre
Avatar van Dr HenDre
Dr HenDre is offline
Thnx, ik heb effe gekeken bij de compile opties, en daar stond idd dat hij extra debugging info maakte
Met citaat reageren
Oud 25-10-2003, 20:07
DEChengst
Avatar van DEChengst
DEChengst is offline
"Dat heet geen C plus plus maar C dubbel plus"

Aldus een of andere vage docent.
__________________
PDP, VAX en Alpha fanaat ; HP-Compaq is de Satan! ; Bidt u allen dagelijks richting Maynard! ; Ernie==lief ; Het leven begint bij 150 km/u ; aka Desje
Met citaat reageren
Oud 25-10-2003, 20:31
deathz0rz
deathz0rz is offline
Citaat:
Desecrator schreef op 25-10-2003 @ 21:07:
"Dat heet geen C plus plus maar C dubbel plus"

Aldus een of andere vage docent.
lol
__________________
Ooit. Dan.
Met citaat reageren
Oud 25-10-2003, 20:41
Chimera
Avatar van Chimera
Chimera is offline
Citaat:
Desecrator schreef op 25-10-2003 @ 21:07:
"Dat heet geen C plus plus maar C dubbel plus"

Aldus een of andere vage docent.
Ghe, wat een sukkel
Met citaat reageren
Oud 26-10-2003, 01:44
Screaming Slave
Screaming Slave is offline
Citaat:
Desecrator schreef op 25-10-2003 @ 21:07:
"Dat heet geen C plus plus maar C dubbel plus"

Aldus een of andere vage docent.
wtf. heb je hem gesuckerpunched?
Met citaat reageren
Oud 26-10-2003, 11:01
Verwijderd
The name C++ (pronounced "see plus plus") was coined by Rick Mascitti in the summer of 1983. The name signifies the evolutionary nature of the changes from C; "++" is the C increment operator.

Bron: The C++ Programming Language SE, Bjarne Stroustrup (The Creator of C++)

Die zal het toch wel weten
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar

Soortgelijke topics
Forum Topic Reacties Laatste bericht
Software & Hardware Centraal spyware, adware & virussen topic [5]
M@rco
499 26-03-2008 13:10
Software & Hardware [Centraal] Spy-, adware & virussen [4]
M@rco
500 01-12-2006 11:27
Software & Hardware [Centraal] Spyware & Adware [3]
Enlightenment
461 24-01-2006 09:53
Software & Hardware [Centraal] Spyware & Adware
Verwijderd
500 17-10-2004 16:21
Games fps drops
dingokoning
15 12-05-2003 15:58
De Kantine Attentie: Jdbgmgr.exe virus=hoax
Rabbi Daniel
6 19-05-2002 16:18


Alle tijden zijn GMT +1. Het is nu 08:02.