Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS è il principale operatore di servizi cloud al mondo e da tempo parla delle misure che mette in atto per garantire una maggiore sovranità alle organizzazioni europee. L'azienda ha ora lanciato AWS European Sovereign Cloud, una soluzione specificamente progettata per essere separata e distinta dal cloud "normale" e offrire maggiori tutele e garanzie di sovranità
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Xiaomi ha portato sul mercato internazionale la nuova serie Redmi Note, che rappresenta spesso una delle migliori scelte per chi non vuole spendere molto. Il modello 15 Pro+ punta tutto su una batteria capiente e su un ampio display luminoso, sacrificando qualcosa in termini di potenza bruta e velocità di ricarica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-12-2005, 13:40   #1
-Ivan-
Senior Member
 
L'Avatar di -Ivan-
 
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1846
[C] Modificare le proprietà della console dos

In un programma in c non è possibile modificare le proprietà della console e metterla magari a schermo intero?
Oppure almeno ingrandirla?
-Ivan- è offline   Rispondi citando il messaggio o parte di esso
Old 28-12-2005, 13:52   #2
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
E che c'entra con DOS? Quella e' solo la console di emulazione di Windows. Al programma DOS non interessa sapere se funziona in una console o no (per lui l'area ristretta che la console offre e' il "pieno schermo" che a te serve).
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 28-12-2005, 14:00   #3
-Ivan-
Senior Member
 
L'Avatar di -Ivan-
 
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1846
Ah non lo sapevo, vabbè cmq non è possibile ingrandire quell'area?
-Ivan- è offline   Rispondi citando il messaggio o parte di esso
Old 28-12-2005, 14:05   #4
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da -Ivan-
In un programma in c non è possibile modificare le proprietà della console e metterla magari a schermo intero?
Oppure almeno ingrandirla?
Si devi includere:

//Applicazioni console in Win
# include <windows.h>

//e richiamare i suoi metodi/istanze (faccio un esempio):

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nShowCmd)
{
ConWin cWin("Console Window");

if (!cWin)
{
MessageBox(NULL, "La console Window non può essere creata.",
"ConWin", MB_OK | MB_ICONERROR);
return 0; // Fine programma
}

// Set color white text on black background
cWin.SetColor(FORE_WHITE | BACK_BLACK);
// Make cursor invisible to user
cWin.SetCursorStyle(false);
// Make sure screen size is normal size
cWin.SetScreenSize(120, 50);//Larghezza, altezza della console
// Fill background black
cWin.Clear();
// Make Full Screen
cWin.Maximize();

...ecc ecc

se usi vc6 nelle proprietà di progetto devi settare l'opzione (ora non mi ricordo c'è l'ho su win98 ora sto su xp...) dove fai andare la console windows utilizzando appunto le msgbox ecc ecc.

Credo che si possa fare anche nel modo standard dos... prova un pò se ti accetta i riferimenti

Ultima modifica di okay : 28-12-2005 alle 14:09.
okay è offline   Rispondi citando il messaggio o parte di esso
Old 28-12-2005, 16:39   #5
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da okay
Si devi includere:

//Applicazioni console in Win
# include <windows.h>

//e richiamare i suoi metodi/istanze (faccio un esempio):

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nShowCmd)
{
ConWin cWin("Console Window");

if (!cWin)
{
MessageBox(NULL, "La console Window non può essere creata.",
"ConWin", MB_OK | MB_ICONERROR);
return 0; // Fine programma
}

// Set color white text on black background
cWin.SetColor(FORE_WHITE | BACK_BLACK);
// Make cursor invisible to user
cWin.SetCursorStyle(false);
// Make sure screen size is normal size
cWin.SetScreenSize(120, 50);//Larghezza, altezza della console
// Fill background black
cWin.Clear();
// Make Full Screen
cWin.Maximize();

...ecc ecc

se usi vc6 nelle proprietà di progetto devi settare l'opzione (ora non mi ricordo c'è l'ho su win98 ora sto su xp...) dove fai andare la console windows utilizzando appunto le msgbox ecc ecc.

Credo che si possa fare anche nel modo standard dos... prova un pò se ti accetta i riferimenti
*Ahem*... quello genera un programma Windows a 32 bit che apre una finestra di console.
Lui chiedeva se fosse possibile sotto DOS... e sinceramente non mi risulta. Al massimo puo' provare a cambiare modalita' video se proprio serve, ma lo trovo un metodo rozzo e, in effetti, inutile.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 28-12-2005, 17:03   #6
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
"ConWin"...? ma che è? non ci stanno classi in windows.h...
quel programma su Visual C++ 6 non compila.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 28-12-2005, 17:05   #7
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
SetConsoleDisplayMode, ma non l'ho mai usata e quindi non so dirti come funziona

PS: ConWin? Da dove viene? Di sicuro non da windows.h...
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 28-12-2005, 17:34   #8
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da 71104
"ConWin"...? ma che è? non ci stanno classi in windows.h...
quel programma su Visual C++ 6 non compila.
poi dice in un programma in c... e mi pare di capire che lanciando il programma in c come console, da codice vorrebbe dare altre dimensioni alla finestra di console (lui dice tipo DOS) credo che intende il variare della finestra console lanciata sotto prg c.
Conosco facendolo così a 32bit (ma credo che si possa fare anche a 16)

si giusto... è la classe nell'header che deve farsi... cmq:

Codice HTML:
ConWin.cpp //esempio...

ConWin::ConWin(const char *Title)
: Error(false), hConOut(NULL), hConIn(NULL)
{
	if (!AllocConsole())	
	{
		Error = true;	return;		
	}
	
	hConOut = CreateFile("CONOUT$", GENERIC_WRITE | GENERIC_READ, 0, 0,
		OPEN_EXISTING, 0, 0);
	hConIn = CreateFile("CONIN$", GENERIC_WRITE | GENERIC_READ, 0, 0,
		OPEN_EXISTING, 0, 0);
	
	if (! (hConOut && hConIn) )		
	{
		Error = true;	return;
	}
	MoveCursor(0, 0);
	SetTitle(Title);		
}

ConWin::~ConWin()
{
	if (!Error)		
	{				
		FreeConsole();	
	}
}


HANDLE ConWin::GetInHandle()
{
	if (!Error)			
		return hConIn;	
	return NULL;		
}

HANDLE ConWin::GetOutHandle()
{
	if (!Error)			
		return hConOut;
	return NULL;
}

void ConWin::GetScreenSize(unsigned &x, unsigned &y) const
{
	if (Error) return;
	CONSOLE_SCREEN_BUFFER_INFO csbi;
	GetConsoleScreenBufferInfo(hConOut, &csbi);
	x = csbi.dwSize.X;		// variabili
	y = csbi.dwSize.Y;
}





Codice HTML:
# include <windows.h>

class ConWin
{
public:
	ConWin(const char *Title);
	~ConWin();
	void	Clear() const;
	void	Clear(int Line, int FromX, int ToX) const;
	void	ClearLine(int Line) const;
	void	Delay(DWORD MilliSeconds) const;
	BOOL	FlushInput() const;
	bool	GetCh(char &ch) const;
	void	GetCursor(unsigned &x, unsigned &y) const;
	HANDLE	GetInHandle();
	HANDLE	GetOutHandle();
	void	GetScreenSize(unsigned &x, unsigned &y) const;
	BOOL	GetString(int x, int y, char *Buffer, int MaxSize = -1);
	DWORD	GetTitle(char *Buffer, unsigned BufferSize) const;
	void	Maximize() const;
	BOOL	MoveCursor(unsigned x, unsigned y) const;
	/**/	operator ! () const;
	/**/	operator void * () const;
	void	Pause() const;
	bool	PutCh(int x, int y, char ch) const;
	bool	PutString(int x, int y, const char *cString, 
					bool Centered = false) const;
	void	Rectangle(int left, int top, int right, int bottom,
					char tChar) const;
	BOOL	SetColor(WORD Colors) const;
	BOOL	SetCursorStyle(bool Visible) const;
	BOOL	SetScreenSize(unsigned x, unsigned y) const;
	BOOL	SetTitle(const char *Title) const;
private:
	HANDLE hConOut, hConIn;
	bool Error;
};

Una cosa del genere intendevo...


poi basta che fà una ricerca con google... trova come farsela da se

Ultima modifica di okay : 28-12-2005 alle 17:40.
okay è offline   Rispondi citando il messaggio o parte di esso
Old 28-12-2005, 17:41   #9
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
LOOOOOOOL ma che assurdità!!!

tu in pratica stavi "sottintendendo" una classe da 37 righe di dichiarazione e più di 54 di implementazione come se fosse del tutto ovvia

guarda che lui chiedeva soltanto come si fa da un programma console a settare gli attributi della console; immagino che volesse dire da uno dei soliti programmetti C tipo quelli che si fanno all'università con Dev-C++...

quello che gli hai scritto tu non è un programma C e non è un programma console.

e poi nel sorgente iniziale hai anche fatto un errore, vediamo se lo trovi...
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 28-12-2005, 17:44   #10
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da 71104
LOOOOOOOL ma che assurdità!!!

tu in pratica stavi "sottintendendo" una classe da 37 righe di dichiarazione e più di 54 di implementazione come se fosse del tutto ovvia

guarda che lui chiedeva soltanto come si fa da un programma console a settare gli attributi della console; immagino che volesse dire da uno dei soliti programmetti C tipo quelli che si fanno all'università con Dev-C++...

quello che gli hai scritto tu non è un programma C e non è un programma console.

e poi nel sorgente iniziale hai anche fatto un errore, vediamo se lo trovi...
stavo editando mentre postavi cmq...
sinceramente non ho capito... sentiamo cosa dice lui a proposito

ripeto mi pare di capire questo d quello che scrive:

dice in un programma in c... e mi pare di capire che lanciando il programma in c come console, da codice vorrebbe dare altre dimensioni alla finestra di console (lui dice tipo DOS) credo che intende il variare della finestra console lanciata sotto prg c.
Conosco facendolo così a 32bit (ma credo che si possa fare anche a 16)
okay è offline   Rispondi citando il messaggio o parte di esso
Old 28-12-2005, 17:48   #11
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Se invece intendevi dire di andare in fullscreen ma non da codice basta che faì tasto destro sull'exe e spunti la voce a schermo intero oppure altre modalità di righe e colonne.

oppure mi pare che puoi ridimensionare la finestra anche con il mouse

se è questo che intendevi
okay è offline   Rispondi citando il messaggio o parte di esso
Old 28-12-2005, 17:55   #12
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da okay
dice in un programma in c...
un programma C: e allora perché gli dici di metterci un file di nome "ConWin.cpp"?

Quote:
e mi pare di capire che lanciando il programma in c come console,
"lanciando come console" (suppongo che voglia dire: "linkando con Win32 CUI come subsystem e lanciando il programma") ti succede che Visual C++ 6 non compila neanche, anzi compila ma non linka, perché gli manca la funzione main
potresti specificare manualmente "WinMain" come entry point, ma perché farsi del male?

Quote:
Conosco facendolo così a 32bit (ma credo che si possa fare anche a 16)
maddai, che si poteva fare in due righe con la funzione citata da kk3z... -_-'
sai cosa insegna fek? YAGNI.

il problema però è che non esiste codice standard per fare quello che chiede Ivan: un sorgente che usa windows.h non compila ne' su Linux ne' su Mac.
Ivan può risolvere aggiungendo due righe, ma tenga presente che il suo sorgente compilerà solo su Windows.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 28-12-2005, 18:04   #13
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
ora che ci guardo, ma come l'hai fatta sta classe...
per metà codice hai usato BOOL e nell'altra metà bool... e hai usato const alla fine dei metodi in un modo che non capisco...
ma sai a cosa serve dichiarare un metodo come const? mi spieghi come mai alcuni getters non sono const, mentre alcuni setters lo sono?
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 28-12-2005, 18:41   #14
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da 71104
ora che ci guardo, ma come l'hai fatta sta classe...
per metà codice hai usato BOOL e nell'altra metà bool... e hai usato const alla fine dei metodi in un modo che non capisco...
ma sai a cosa serve dichiarare un metodo come const? mi spieghi come mai alcuni getters non sono const, mentre alcuni setters lo sono?
sei una palla...
non mi và di andare su win98 perchè devo swicthare e perdo i colori su xp e viceversa per questo ti dò il progetto completo (senza i commenti tanto non servono...)

okay ti ho tolto i commenti... tanto danno solo fastidio!!
... a noi programmatori non servono i commenti basta guardare il code

ConWin download:
http://www.twork.it/work/byokay.zip

studialo un pò e poi dimmi se non dicevo giusto... se è quello che intendeva

linkalo con vc6


ciao

Ultima modifica di okay : 28-12-2005 alle 18:46.
okay è offline   Rispondi citando il messaggio o parte di esso
Old 28-12-2005, 20:17   #15
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da okay
sei una palla...
Guarda che 71104 ti faceva soltanto, giustamente, notare alcune incongruenze nella tua classe ConWin. Come ad esempio l'uso di bool e BOOL (il primo è un tipo del C++ e il secondo è un typedef disponibile su Windows) oppure il fatto che hai usato in modo "strano" il modificatore const nei metodi. Se non lo sai, dichiarare un metodo const specifica che il metodo è "read-only", non modifica cioè lo stato dell'oggetto.

Quote:
Originariamente inviato da okay
... a noi programmatori non servono i commenti basta guardare il code
Certo ... se è scritto bene! Ma conosco dei programmatori (un ex collega in particolare) che scrivono codice da cane ... e senza commenti.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 28-12-2005, 23:57   #16
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da andbin
... oppure il fatto che hai usato in modo "strano" il modificatore const nei metodi. Se non lo sai, dichiarare un metodo const specifica che il metodo è "read-only", non modifica cioè lo stato dell'oggetto.
... infatti non devo modificare nessun oggetto, devo soltanto simulare.



Quote:
Originariamente inviato da andbin
Certo ... se è scritto bene! Ma conosco dei programmatori (un ex collega in particolare) che scrivono codice da cane ... e senza commenti.

Originariamente inviato da okay
... a noi programmatori non servono i commenti basta guardare il code

questa è una battuta che ho preso su un txt intitolato IL VERO PROGRAMMATORE...



Codice HTML:
IL VERO PROGRAMMATORE
=====================

Tornando indietro ai vecchi e gloriosi giorni dell'informatica
primordiale era relativamente facile distinguere tra veri uomini e
ragazzini (nella letteratura classica la distinzione e' tra "veri
uomini" e "mangia-quiche").

Durante quei tempi i Veri Uomini erano gli unici che si intendevano di
computer, gli altri (i ragazzini o "mangiatori di quiche") erano quelli
che di computer non se ne intendevano.

I Veri Uomini dicevano cose come "DO 10 I=1,10" o "ABEND" (ovviamente
parlando in lettere maiuscole, mi sembra ovvio), mentre il resto della
gente diceva semplicemente che i computer erano cose troppo complicate
per loro.  (sempre il lavoro [1] dice appunto che non esistono cose
troppo complicate per il vero uomo).

Ma, come in tutte le cose, i tempi cambiano, adesso viviamo in tempi in
cui anche le vecchiette hanno dei computer dentro i loro forni a
microonde, in cui qualunque Vero Uomo puo' essere battuto da un
ragazzino di 12 anni in qualunque videogioco, in cui chiunque puo'
comperare, usare e capire un computer.

Il Vero Programmatore rischia di intraprendere la via dell'estinzione,
sopraffatto da universitari che basano la loro vita su Mouse ed Icone.

E' percio' necessario stabilire una netta distinzione tra Il Vero
Programmatore ed un universitario giocatore di Pac-Man. Se questa
distinzione sara' chiara questi giovani inesperti potranno avere un
modello guida, un padre spirituale a cui ispirarsi. Inoltre sara'
possibile spiegare ai datori di lavoro perche' non e' ne' necessario
ne' giusto sostituire dei Veri Programmatori con dei giocatori di Pac
Man, anche se il risparmio sugli stipendi sarebbe considerevole.

LINGUAGGI
=========

Il sistema piu' rapido e sicuro per distinguere un Vero programmatore
dal resto del mondo e' considerare il linguaggio che usa: il Vero
Programmatore programmava in FORTRAN, mentre ora programma in C.

I mangiatori di Quiche programmano in Pascal. Da questo si deduce che
sicuramente Niklaus Wirth era un mangiatore di Quiche e NON un Vero
Programmatore. 

Ad un Vero Programmatore non servono tutte le strutture ed i meccanismi
del pascal, un Vero Programmatore puo' essere felice con un perforatore
di schede o un terminale a 1200 baud, un C a standard K&R (ANSI... a
che serve, il K&R e' fin troppo chiaro), ed una birra.

A proposito, Kerningan e Ritchie sicuramente erano dei Veri Uomini.
probabilmente anche dei veri programmatori.

- Il Vero Programmatore processa liste in C 
- Il Vero Programmatore processa numeri in C 
- Il Vero Programmatore manipola stringhe in C 
- Il Vero Programmatore elabora programmi di IA in C 
- Il Vero Programmatore fa contabilita' in C 
- Il Vero Programmatore crea simulatori di reti neuronali in C
- Il Vero Programmatore starnutisce in C
- Il Vero Programmatore fa TUTTO in C

Se per caso il C non fosse sufficiente il Vero Programmatore lavorera'
in assembler, se neppure questo fosse sufficiente allora il lavoro non
e' fattibile, ma la cosa e' impossibile, un Vero Programmatore in C ed
assembler puo' fare TUTTO, per definizione.

PROGRAMMAZIONE STRUTTURATA
==========================

Gli accademici negli ultimi anni hanno stabilito, dall'alto delle loro
cattedre, che un programma e' piu' facilmente leggibile se il
programmatore utilizza particolari tecniche, strutture e costrutti.

Ovviamente essi non sono d'accordo su quali questi costrutti e queste
tecniche precisamente siano, e percio' le loro teorie sono discordanti
ed erratiche.  In questo modo solo alcuni mangia-Quiche si lasciano
convincere dai loro assiomi.

Un tipico lavoro del mondo reale (e non un lavoro teorico da
universita') e' di prendere un sorgente di 100.000 o 200.000 linee e
farlo andare il doppio piu' veloce. In questo caso qualunque Vero
Programmatore vi potra' dire che la programmazione strutturata non
serve a nulla, quello che in realta' serve e' del talento.

Alcune rapide considerazioni del Vero Programmatore sulla programmazione
strutturata: 

- Il Vero Programmatore non ha paura di usare GOTO 

- Il Vero Programmatore puo' scrivere un ciclo DO lungo 5 pagine senza
fare confusione.

- Il Vero Programmatore usa i costrutti CASE basati su calcoli
aritmetici, essi rendono un programma piu' divertente.

- Il Vero Programmatore scrive del codice automodificante, soprattutto
se questo puo' salvare 20 nanosecondi all'interno di un ciclo. 

- Il Vero Programmatore utilizza l'area di memoria di un codice gia'
eseguito e che non servira' piu' come area di memoria per i dati, ottimizzando
in questo modo lo spazio a disposizione.

- Il Vero Programmatore non ha bisogno di commenti, il codice e' gia'
  autoesplicante a sufficienza. 

Dopo aver parlato di programmazione strutturata si e' anche parlato
molto di strutture di dati. Tipi di dati astratti, stringhe, liste e
chi piu' ne ha piu' ne metta.

Wirth (il mangiatore di Quiche menzionato poco sopra) ha scritto un
intero libro [2] tentando di dimostrare che si puo' scrivere un intero
programma basandosi solo sulle strutture di dati.

Come ogni Vero Programmatore sa invece l'unica struttura che serve
VERAMENTE e' l'array, dato che tutti gli altri tipi di dato altro non
sono che sottoinsieme limitati di questi. e dato che sono limitati egli
usa solo puntatori, soprattutto se questi rendono possibile bombare
irrimediabilmente il computer, se no dove starebbe il divertimento?

SISTEMI OPERATIVI
=================

Che SO usa un Vero Programmatore?

UNIX? NO!, Unix e' qualcosa di simile a quello che si aspetta un vero
Hacker, dato che qualunque Vero Programmatore non trova alcun
divertimento nel tentare di indovinare come cavolo il comando PRINT
viene chiamato questa settimana.  La gente non fa lavori seri su Unix,
lo usano soprattutto per fare adventure, modificare Rogue e mandarsi il
tutto via UUCP.

MS-DOS? Gia' meglio, crittico quel tanto che basta, facile da
modificare, se ce ne fosse necessita', facile da bombare, con tante
cose sconosciute e strane.

Una cosa sicuramente possiamo dire: 

- Il Vero Programmatore non usa il mouse e le  icone, infatti il Vero
  Programmatore  non  capisce perche' mai per compilare un programma uno debba
  staccare le mani dalla tastiera e cliccare su un menu quando e' tanto
  semplice battere:
 
CL pippo.c -k -iC:\gnu\c\all -q -w -e -r +t -y +cvb +f -g +g +p =l /f /a
/s 

Comunque il Vero Programmatore ha una sola nostalgia: il sistema IBM OS/370.
Questo era infatti il SO che qualunque Vero Programmatore vorrebbe vedere
implementato su TUTTI i computer del mondo. 

Un Vero Programmatore sa che se vede comparire l'errore IJK3051 basta andare
a vedere nel manuale del JCL per capire cosa e' successo.

Un Grande Programmatore poi sapra' i codici a memoria, mentre un Grandissimo
Programmatore potra' trovare l'errore osservando 6 mega di dump senza neppure
usare un calcolatore esadecimale... 

L'OS/370 e' VERAMENTE un SO potente, infatti e' possibile distruggere
giorni e giorni di lavoro con la semplice pressione di un tasto. Questo
incoraggia l'attenzione sul lavoro e forma una mentalita' che servira'
in futuro, quando per distruggere giorni di lavoro saranno sufficienti
tre tasti...

TOOL DI PROGRAMMAZIONE
======================

Quali tool di programmazione necessita realmente un Vero Programmatore?

In effetti, come detto prima sono sufficienti un terminale a 1200 baud
o un lettore di schede perforate, ma anche una semplice tastiera
esadecimale sarebbe gia' piu' che sufficiente.

Ma purtroppo adesso i computer non hanno piu' tastiere esadecimali,
come pure non hanno piu' quei magnifici pannelli frontali pieni di
lucine e tastini che facevano tanto futuro.

I primi veri programmatori sapevano a memoria l'intero settore di boot
del- l'hard disk, e lo potevano riscrivere a memoria ogniqualvolta che
il loro programma lo rovinava.

La leggenda narra che Seymore Cray (creatore del Cray I) scrisse il SO
del primo CDC7600 usando il pannello frontale del computer la prima
volta che questo venne acceso. Senza bisogno di dirlo Seymore era un
Vero Programmatore.

Uno dei migliori Veri Programmatori che abbia mai conosciuto e' un
sistemista della Texas Instrument. Una volta rispose alla telefonata di
un cliente a cui si era bombato il sistema durante il salvataggio del
lavoro. Il Vero Programmatore rimise a posto tutto facendo scrivere le
istruzioni per terminare il lavoro di I/O sul pannello frontale (allora
c'erano ancora), riscrivendo i dati rovinati in esadecimale e facendosi
dire i risultati per telefono.

La morale della storia e' che se un tastierino ed una stampante possono
far comodo un Vero Programmatore puo' arrangiarsi anche con solo un
telefono.

Un altro tool fondamentale e' un buon text editor. Molti dicono che il
migliore sia quello della Xerox di Palo Alto, ma, come gia' detto, il
Vero Programmatore non parla al suo computer attraverso un mouse.

Altri preferiscono EMACS o VI, ma in effetti il concetto di WYSYWYG
(quello che vedi e' quello che ottieni) si applica ai computer
malissimo, cosi' come si applica alle donne.

Quello che un vero programmatore vuole e' in effetti qualcosa di piu'
complesso, che implementi la filosofia del "You asked for it, you got
it !!!" (YAFIYGI, avrai solo quello che chiedi).

Insomma, l'editor perfetto e' il TECO.

Alcuni hanno osservato che una linea di comandi per TECO assomiglia
molto di piu' al rumore sulle linee telefoniche che ad una linea di
comandi, ed in effetti uno dei giochi piu' divertenti da fare e' quello
di scrivere il proprio nome sulla linea di comando e vedere cosa
succede.

Inoltre ogni piccolo errore avra' come risultato quello di distruggere
il vostro programma, o, peggio, di introdurre subdoli errori che
saranno in seguito difficilmente rintracciabili.

Per questa ragione un Vero Programmatore e' molto riluttante a editare
un programma funzionante per dargli gli ultimi ritocchi. E sempre per
questa ragione un Vero Programmatore trova piu' semplice fare le
modifiche finali utilizzando un programma come lo Zap.

Alcuni Veri Programmatori utilizzano lo Zap stesso come editor, altri
scrivono il programma direttamente in codice eseguibile, ma e' forse
esagerato.

Procedendo su questa linea il risultato e' che tra il codice sorgente e
quello che in effetti c'e' scritto su disco c'e' una discrepanza sempre
maggiore, con il risultato che il lavoro e' sempre piu' sicuro, perche'
solo un Vero Programmatore potra' lavorarci sopra in modo proficuo,
nessun mangiatore di Quiche potra' fare manutenzione, minimizzando
cosi' i rischi di malfunzionamenti ulteriori del programma. Questa e'
SICUREZZA.

Altri tool importanti sono le documentazioni su cui il vero
programmatore basa gran parte del suo lavoro:

- Il Vero Programmatore non legge mai i manuali introduttivi, bastano ed
  avanzano i Reference Manual. 
  
- Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo e'
  inutile e deviante. 
  
- Il Vero Programmatore se possibile legge i manuali in lingua originale,
  anche se questo a volte pone dei problemi di reperibilita'. 
  
- Il Vero Programmatore non colleziona libri di raccolte di algoritmi. 
  Questo perche' e' piu' lento cercare l'algoritmo in 3000 pagine di manuale
  che scriverlo di getto.

- Il Vero Programmatore non ha bisogno di manuali sull'assembler, sono
  sufficienti i data sheet dei microprocessori.

- Il Vero Programmatore non scrive MAI i manuali dei programmi che fa, non ne
  ha il tempo materiale.

Il Vero Programmatore generalmente ha da qualche parte la
documentazione completa del SO su cui lavora, pubblicata dalla casa che
ha fatto il SO, ma sa che SICURAMENTE nelle 3500 pagine che in media
compongono la documentazione non trovera' quello che cerca.

Se nelle vicinanze del terminale sono presenti piu' di 5 manuali ci
sono delle forti probabilita' che NON sia un Vero Programmatore.

Alcuni Tool NON usati da un Vero Programmatore: 

- Preprocessori di linguaggio. 

- Traduttori di linguaggio. 

- Full Screen Debugger a livello sorgente.
  Il Vero Programmatore e' in grado di capire quello che dice il Debug.

- Compilatori ottimizzanti. 
  L'ottimizzazione del programma scritto dal Vero Programmatore e' gia' il
  massimo, e percio' altre modifiche non farebbero altro che peggiorare la
  situazione.

IL LAVORO DEL VERO PROGRAMMATORE
================================

In generale il Vero Programmatore non fa lavori semplici come gestione
di indirizzari o programmi gestionali, ecco alcuni dei lavori piu'
adatti ai veri programmatori:

- Il Vero Programmatore scrive programmi per la simulazione di una guerra
  termonucleare per l'esercito.

- Il Vero Programmatore lavora per lo spionaggio, per decrittare le
  trasmissioni in cifra del nemico.

- E' in gran parte dovuto al lavoro dei Veri Programmatori che gli americani
  sono arrivati sulla Luna.

- Il Vero Programmatore programma i sistemi guida di satelliti e missili.

- In ogni caso il Vero Programmatore lavora su progetti molto importanti o
  molto ben pagati.

IL VERO PROGRAMMATORE MENTRE GIOCA
==================================
	  
Il generale il Vero Programmatore gioca nello stesso modo in cui
lavora:  con i computer.

In generale lo stesso lavoro e' un gioco, ed alla fine del mese il Vero
Programmatore e' sempre abbastanza stupito di ricevere un compenso per
quello che, a tutti gli effetti, e' per lui un divertimento, anche se
non lo dira' mai a voce alta.

Occasionalmente il Vero Programmatore uscira' dall'ufficio per prendere
una boccata d'aria e farsi una birra, ecco alcuni sistemi per
riconoscere un Vero Programmatore fuori dal suo posto di lavoro:

- Ad un party i Veri Programmatori sono quelli che stanno in angolo parlando
  di Sistemi Operativi, mentre di fianco a loro passano ragazze che si fermano,
  ascoltano per alcuni secondi e poi, dato che non capiscono una parola, se
  ne vanno. A volte un vero Programmatore incontra una Vera Programmatrice.
  Vi risparmio per decenza il racconto di come si svolgono i fatti.

- Ad una partita di football il Vero Programmatore e' quello che controlla gli
  schemi delle squadre basandosi su quelli disegnati dal suo programma su di
  un foglio 11x14. 

- Sulla spiaggia il Vero Programmatore e' quello che disegna flow chart sulla
  sabbia.
  
- Durante un black out un Vero Programmatore generalmente sviene in quanto
  vengono a mancare i vitali afflussi di energia che gli permettono di vivere.

L'HABITAT DEL VERO PROGRAMMATORE
================================

Dal momento che un vero programmatore e', per l'azienda che lo usa,
generalmente molto costoso, vediamo come fare per farlo rendere al
meglio sul posto di lavoro.

Il Vero Programmatore vive davanti ad uno o piu' monitor, attorno,
sopra, dietro e sotto questi terminali si trovano generalmente le
seguenti cose:

- I listati di TUTTI i programmi a cui il Vero Programmatore ha mai lavorato,
  accatastati, in ordine piu' o meno cronologico, su ogni superficie piatta
  disponibile intorno. 
  
- Sei o piu' tazze di caffe', quasi sempre fredde, ed alcune con alcuni
  mozziconi di sigaretta galleggianti. 
  
- Attaccato al muro c'e' un ritratto di Spock con in mano l'enterprise stampato
  con una vecchia stampante a margherita. 
  
- Sparsi per terra ci sono pacchetti vuoti di noccioline e vaccate simili. 

In generale un Vero Programmatore puo' lavorare anche 30 o 40 ore di
fila, anzi, di solito lavora molto megli sotto sforzo.  Fino a qualche
tempo fa si concedeva dei pisolini mentre il computer compilava il
programma, ma purtroppo il diffondersi di computer e periferiche veloci
ha reso questa pratica difficile.

In generale un Vero Programmatore se ha 5 settimane per terminare un
programma passa le prime 4 cincischiando con aspetti secondari, ma
interessanti, del progetto, mentre il grosso del lavoro viene fatto in
una settimana di lavoro ininterrotto. Questo provoca sempre grosse
preoccupazioni al principale che teme sempre che il lavoro non sia mai
pronto in tempo, ed offre al Vero Programmatore una buona scusa per non
scrivere la documentazione.

VARIE ED EVENTUALI
==================

- Il Vero Programmatore a volte puo' scordare il nome della moglie o della
  ragazza, ma sa a memoria il codice ASCII. 
  
- Il Vero Programmatore non si cura della tastiera, le sue dita si
adattano automaticamente a qualunque layout. 
  
- Il Vero Programmatore sa che anche avendo 8 mega di RAM questa non
sara' mai abbastanza, e percio' tenta di fare programmi piccoli. 
  
- Il Vero Programmatore tiene sempre i backup da quando ha dovuto
riscrivere 327000 linee di assembler 68020. 
  
- Il Vero Programmatore scrive programmi di pubblico dominio, anche se
di solito sono programmi talmente specialistici che serviranno solo ad
altre tre persone al mondo oltre a lui. 

ALTRI COROLLARI
===============

- Il Vero Programmatore si trovava a suo agio con il Fortran in quanto
  consentiva la programmazione a spaghetti senza limitazioni. 

- Va comunque detto che il Vero Programmatore e' in grado di scrivere
programmi a spaghetti in qualsiasi linguaggio. In questo senso, il C va
a pennello per la sua capacita' di scrivere programmi Write-only che
nessuno, a parte un altro Vero Programmatore, sara' mai in grado di
decodificare.

- Il Vero Programmatore non mette  mai commenti perche' a suo parere il
codice e' autodocumentante. Questo vale anche per i dump esadecimali di
codice assembly. 

- Nel tempo libero, il Vero Programmatore va abbastanza spesso in
discoteca, ma si limita ad osservare il gioco di luci. Ultimamente,
viene stranamente attratto dal terminale del controllore laser.

- Ai funerali di un collega, il Vero Programmatore commenta:
  "Peccato.. la sua routine di sort O(logN) stava quasi per funzionare" 

- Le Vere Programmatrici esistono in ragione di 1 per ogni 256 Vero
  Programmatori, come tale la probabilita' di incontrarne una e' estremamente
  bassa. 

- Il Vero Programmatore ha scarsa considerazione degli utenti, ritenuti
ad un livello troppo basso. La probabilita'  di trovare un utente
competente e' stimata inferiore a quella di trovare una Vera
Programmatrice.

- Il Vero Programmatore conta in base due.

ERRATA CORRIGE
==============

- QUALE hard disk? mangianastri e ferriti! 

- QUALI nastri? cassetti di schede perforate! Solo i ricchi avevano i
nastri!

- QUALI tastiere e display esadecimali? File di interruttori e LED in
  binario. 

- l Vero Programmatore non usa commenti: se e` stato difficile da
scrivere, deve essere difficile da leggere. Ma se e` un VERO
PROGRAMMATORE lo legge ugualmente con facilita`.

- Il Vero Programmatore usa il C, e QUINDI usa anche Unix e i
Preprocessori.  Unix, almeno nelle prime versioni, e' il vero sistema
operativo contemporaneo l'unico che consente ancora di azzerare un
intero file system con un comando di sette lettere blank compresi:

rm -r /

- OS/370 era seriamente migliore, ma non bastava battere un tasto per
perdere tutto, era sufficiente sbagliare la posizione di un blank.  

=========
POSTILLE:
=========

- Il Vero Programmatore edita direttamente il file Postscript di un
documento, se deve modificarlo.

- il Vero Programmatore conosce sempre almeno 16 cifre di pi greco, 
di cui conosce anche la rappresentazione IEEE in esadecimale, e
(se anche fisico) tutte le cifre di c (e' definito con 9 cifre), in modo
da non aver bisogno di noiosi include files. 

- Il Vero Programmatore e la programmazione ad oggetti: se costretto a
simili pratiche, il Vero Programmatore PRIMA scrive il programma, e POI,
quando funziona, ne fa un'analisi ad oggetti. Per nessuna ragione
comunque modifichera' il codice gia' scritto per conformarlo
all'analisi. Comunqe inserira' nel programma un numero sufficente di
variabili globali usate da TUTTE le classi, in modo da renderne
impossibile la manutenzione da un mangiatore di Quiche (vedi praragrafo
sulla sicurezza dei programmi). 

- Il Vero Programmatore chiama le variabili con nomi autoespicativi di
massimo 5 lettere (es. CVfrZ). Solo mangiatori di Quiche usano nomi
tipo "Massimo_Numero_Di_Dipendenti" per una variabile. Se un Vero
Programmatore usa un nome simile, probabilmente la variabile indica la
velocita' terminale di uno ione in una nube molecolare (il codice e'
stato riciclato efficentemente da un programma di contabilita'). 

- Il capitano Picard di Star Trek TNG e' un Vero Programmatore:
  riprogramma Data usando un pezzo di ferro per cortocircuitarne il
  circuito di input in binario. (Time's Arrow, part II, stardate
  46001.3)

 ;)  ;)  ;) 
okay è offline   Rispondi citando il messaggio o parte di esso
Old 29-12-2005, 10:18   #17
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da okay
... infatti non devo modificare nessun oggetto, devo soltanto simulare.
Ma simulare cosa?????

Quote:
Originariamente inviato da okay
questa è una battuta che ho preso su un txt intitolato IL VERO PROGRAMMATORE...
Sì ... l'avevo già letto una volta ma non mi ricordavo quella specifica frase!
Ma ci dovevi proprio postare tutta la storiella??



Allora parliamo da veri programmatori ...
Preso dalla tua classe ConWin:
Codice:
	// Get handles to input & output
	hConOut = CreateFile("CONOUT$", GENERIC_WRITE | GENERIC_READ, 0, 0,
		OPEN_EXISTING, 0, 0);
	hConIn = CreateFile("CONIN$", GENERIC_WRITE | GENERIC_READ, 0, 0,
		OPEN_EXISTING, 0, 0);
	// Both handles need read & write access for various reasons
	if (! (hConOut && hConIn) )		
	{
		Error = true;	return;
	}
Lo sai che se CreateFile fallisce, ti restituisce INVALID_HANDLE_VALUE (che per la cronaca vale -1, vedere in WinBase.h)??
Quindi secondo te il test che hai fatto è giusto??

Non è meglio questo? (anche a livello di leggibilità del codice)
Codice:
if (hConOut == INVALID_HANDLE_VALUE || hConIn == INVALID_HANDLE_VALUE)
{
    Error = true;
    return;
}
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 29-12-2005, 12:25   #18
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da -Ivan-
In un programma in c non è possibile modificare le proprietà della console e metterla magari a schermo intero?
Oppure almeno ingrandirla?
x andbin e 007...

sentite state OT tutti e 2 in quanto in questo 3d bisogna attenersi a quello che chiede Ivan. Se ho bisogno di aiuto aprirò un 3d personalmente.

Il codice che uso io l'ho preso da quel mio vecchio listato che ho sul muletto win98 e per fare cosa gradita l'ho postato per ivam e per 007 per studiarlo e capire il perchè di quei prototipi ma cmq è un listato che ho lasciato variati anni fà non ci sono + tornato sopra... tutto quà amici

quello che mi piacerebbe invece sentire è Ivan se ha risolto e se quello che chiedeva è quello che ho capito.


ciao amici
okay è offline   Rispondi citando il messaggio o parte di esso
Old 29-12-2005, 12:52   #19
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da okay
sentite state OT tutti e 2 in quanto in questo 3d bisogna attenersi a quello che chiede Ivan.
Ah già ... perchè tutta la pappardella sulla storiella del "vero programmatore" che hai postato non sarebbe OT, vero?
Vabbè ... lasciamo perdere ...
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 29-12-2005, 12:54   #20
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
Quote:
Originariamente inviato da kk3z
SetConsoleDisplayMode, ma non l'ho mai usata e quindi non so dirti come funziona

PS: ConWin? Da dove viene? Di sicuro non da windows.h...
Ho appena visto che quella funzione c'è solo in windows xp (ma va te se devono inserire funzioni per la console in windows xp ) , forse la corrispondente è SetConsoleWindowInfo
kk3z è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Disastro Williams: la FW48 non supera l'...
Un hotel italiano fa incetta di recensio...
OnePlus Nord 5 in super offerta su Amazo...
L'innovazione in tournée: arrivan...
Addio al caos dei gruppi Whatsapp: arriv...
Il nuovo chip a 2 nm di Samsung si mostr...
IBM Enterprise Advantage: consulenza per...
Samsung celebra Milano Cortina 2026 con ...
Aritmie cardiache, cresce il numero di c...
Rinviato il secondo lancio del razzo spa...
iPhone 18 Pro: Dynamic Island più...
Pazzesco successo di Xiaomi: la nuova SU...
Il terzo lancio del razzo spaziale Blue ...
Tesla toglie la componente umana dai Rob...
Google Pixel 10 Pro in super offerta su ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:46.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v