Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Sono molte le novità che ASUS ha scelto di presentare al CES 2026 di Las Vegas, partendo da una gamma di soluzioni NUC con varie opzioni di processore passando sino agli schermi gaming con tecnologia OLED. Il tutto senza dimenticare le periferiche di input della gamma ROG e le soluzioni legate alla connettività domestica
Le novità ASUS per il 2026 nel settore dei PC desktop
Le novità ASUS per il 2026 nel settore dei PC desktop
Molte le novità anticipate da ASUS per il 2026 al CES di Las Vegas: da schede madri per processori AMD Ryzen top di gamma a chassis e ventole, passando per i kit di raffreddamento all in one integrati sino a una nuova scheda video GeForce RTX 5090. In sottofondo il tema dell'intelligenza artificiale con una workstation molto potente per installazioni non in datacenter
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-10-2009, 11:56   #21
Cadetto Entusiasta
Member
 
L'Avatar di Cadetto Entusiasta
 
Iscritto dal: Apr 2005
Città: Prov. di Torino
Messaggi: 164
Ringrazio per questi mega discorsi molto interessanti, che però non riesco ancora a comprendere appieno.

Grazie per il programma svolto, ma volevo chiedere delle cose:
- lo stesso programma non si può svolgere con cicli while?
- ho provato a compilare l'ultima versione di euphyllia87, ma facendo i test con 40 e 50 ore lavorative a 360€, il programma mi da in output 1.#R; non è giusto, vero?
__________________
IMPOSSIBLE IS NOTHING
Cadetto Entusiasta è offline   Rispondi citando il messaggio o parte di esso
Old 24-10-2009, 12:00   #22
euphyllia87
Member
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 209
Quote:
Originariamente inviato da Cadetto Entusiasta Guarda i messaggi
Ringrazio per questi mega discorsi molto interessanti, che però non riesco ancora a comprendere appieno.

Grazie per il programma svolto, ma volevo chiedere delle cose:
- lo stesso programma non si può svolgere con cicli while?
- ho provato a compilare l'ultima versione di euphyllia87, ma facendo i test con 40 e 50 ore lavorative a 360€, il programma mi da in output 1.#R; non è giusto, vero?
In output 1.#R? C'è ti stampa a video questo?

Strano, ieri l ho provato l'ultima volta sulla mia macchina è funziona senza problemi.

è quell'R che non mi convince.

Per quanto riguarda il while...permette l'esecuzione reiterativa di un blocco di istruzioni finché una certa condizione rimane vera.
Come la implementeresti?
__________________
MacBook White 13.3'' Intel CPU :: 2GB DDR2 800Mhz :: 160Gb :: Mac OS X 10.6 Snow Leopard
euphyllia87 è offline   Rispondi citando il messaggio o parte di esso
Old 24-10-2009, 12:11   #23
Cadetto Entusiasta
Member
 
L'Avatar di Cadetto Entusiasta
 
Iscritto dal: Apr 2005
Città: Prov. di Torino
Messaggi: 164
Sì, a video come risultato di stampa, mi da 1.#R...
Il fatto che forse a te andava e a me no, sarà che facendo girare lo stesso programma con macchine diverse cambia, oppure sarà per il compilatore diverso..

Il fatto di implementare il while con un blocco si istruzioni finchè una non è vera, era ed è il mio reale problema, cioè non so come poterlo fare..
__________________
IMPOSSIBLE IS NOTHING
Cadetto Entusiasta è offline   Rispondi citando il messaggio o parte di esso
Old 24-10-2009, 12:13   #24
euphyllia87
Member
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 209
Quote:
Originariamente inviato da Cadetto Entusiasta Guarda i messaggi
Sì, a video come risultato di stampa, mi da 1.#R...
Il fatto che forse a te andava e a me no, sarà che facendo girare lo stesso programma con macchine diverse cambia, oppure sarà per il compilatore diverso..

Il fatto di implementare il while con un blocco si istruzioni finchè una non è vera, era ed è il mio reale problema, cioè non so come poterlo fare..
beh il while continua ad eseguirsi finche la condizione non si verifica.
Iniziare il programma intero con un while finche la condizione delle ore non è verificata... potrebbe essere una soluzione, ma onestamente lo trovo poco produttivo (sotto ogni aspetto).
__________________
MacBook White 13.3'' Intel CPU :: 2GB DDR2 800Mhz :: 160Gb :: Mac OS X 10.6 Snow Leopard
euphyllia87 è offline   Rispondi citando il messaggio o parte di esso
Old 24-10-2009, 15:13   #25
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4907
Quote:
Originariamente inviato da euphyllia87 Guarda i messaggi
Allora, una cosa e la ripeto per l'ultima volta.

In C, come in tutti i linguaggi imperativi esistono procedure e funzioni.
Che non vengano usate (le procedure) è un discorso diverso.

Ma esistono.
No, non esistono.
Dai un occhiata al K&R (scritto da colui che ha ideato e implementato il C) e allo standard ANSI: non cè nessun riferimento a procedure.
Quote:
Originariamente inviato da euphyllia87 Guarda i messaggi
Il mio sorgente è compilato e funziona; mi riporta i valori esatti.
Impossibile: è proprio sbagliato il modo in cui calcoli il risultato nel caso le ore fossero superiori a 36.
Basta che guardi l'esempio nel primo post - con dei valori di 360 e 38 il risultato dovrebbe essere 384, ma il tuo programma restituisce 380, mentre con dei valori di 360 e 50 il risultato dovrebbe essere 540, ma il tuo programma restituisce 500.
Quote:
Originariamente inviato da Cadetto Entusiasta Guarda i messaggi
Sì, a video come risultato di stampa, mi da 1.#R...
Il fatto che forse a te andava e a me no, sarà che facendo girare lo stesso programma con macchine diverse cambia, oppure sarà per il compilatore diverso..
Stai usando la versione senza il return, è normale che non funzioni.

Ecco un esempio corretto di come andrebbe risolto l'esercizio:
Codice:
#include <stdio.h>

int main()
{
	float sal, orario;
	int ore, diff12 = 0, diff15 = 0;

	printf("Inserire il salario settimanale dell’impiegato [Euro]: ");
	scanf("%f", &sal);
	orario = sal / 36;

	printf("Inserire il numero di ore lavorate: ");
	scanf("%d", &ore);

	if (ore > 46)
	{
		diff15 = ore - 46;
		sal += diff15 * orario * 1.5;
		ore -= diff15;
	}

	if (ore > 36)
	{
		diff12 = ore - 36;
		sal += diff12 * orario * 1.2;
		ore -= diff12;
	}

	printf("Salario per questa settimana: %.0f\n", sal);

	if (diff12 > 0)
		printf("Numero di ore pagate a 1.2 volte il salario di base: %d\n", diff12);

	if (diff15 > 0)
		printf("Numero di ore pagate a 1.5 volte il salario di base: %d\n", diff15);

	return 0;
}
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 24-10-2009, 16:26   #26
euphyllia87
Member
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 209
Io ho pensato di risolverlo in un altra maniera.
Il K&R intendi di Ritchie?

Strano però che su 2 libri universitari che ho letto e pure il docente universitario introduce alle procedure... che l'ANSI C non ne parli?

Dove posso trovare l'elenco DI TUTTE le regole semantiche/sintattiche dell'ANSI C?
__________________
MacBook White 13.3'' Intel CPU :: 2GB DDR2 800Mhz :: 160Gb :: Mac OS X 10.6 Snow Leopard
euphyllia87 è offline   Rispondi citando il messaggio o parte di esso
Old 24-10-2009, 18:41   #27
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4907
http://www.open-std.org/JTC1/SC22/WG...docs/n1336.pdf
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 24-10-2009, 18:48   #28
euphyllia87
Member
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 209
Quote:
Originariamente inviato da ||ElChE||88 Guarda i messaggi
Grazie mille è un pdf che può tornare molto utile.
Per le procedure che dico a tutti quei docenti/libri ecc che sostengono esistere nel C?
__________________
MacBook White 13.3'' Intel CPU :: 2GB DDR2 800Mhz :: 160Gb :: Mac OS X 10.6 Snow Leopard
euphyllia87 è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2009, 16:38   #29
Cadetto Entusiasta
Member
 
L'Avatar di Cadetto Entusiasta
 
Iscritto dal: Apr 2005
Città: Prov. di Torino
Messaggi: 164
Quote:
Ecco un esempio corretto di come andrebbe risolto l'esercizio:
Codice:
#include <stdio.h>

int main()
{
	float sal, orario;
	int ore, diff12 = 0, diff15 = 0;

	printf("Inserire il salario settimanale dell’impiegato [Euro]: ");
	scanf("%f", &sal);
	orario = sal / 36;

	printf("Inserire il numero di ore lavorate: ");
	scanf("%d", &ore);

	if (ore > 46)
	{
		diff15 = ore - 46;
		sal += diff15 * orario * 1.5;
		ore -= diff15;
	}

	if (ore > 36)
	{
		diff12 = ore - 36;
		sal += diff12 * orario * 1.2;
		ore -= diff12;
	}

	printf("Salario per questa settimana: %.0f\n", sal);

	if (diff12 > 0)
		printf("Numero di ore pagate a 1.2 volte il salario di base: %d\n", diff12);

	if (diff15 > 0)
		printf("Numero di ore pagate a 1.5 volte il salario di base: %d\n", diff15);

	return 0;
}
Ti ringrazio, ||ElChE||88 per la versione corretta.
Però, dato che vorrei capirci bene sulle cose devo fare, non mi sono accontetato e, sulla falsa riga del tuo, ne ho fatto uno io ex-novo, come l'avrei fatto io, però naturalmente non mi da quello che vorrei.
Questo
Codice:
#include <stdio.h>

int main()
{

  float euro, euro12, euro15, ore, ore12, ore15;

  printf("Inserire il salario settimanale dell’impiegato [Euro]: ");
  scanf("%f", &euro);
  printf("Inserire il numero di ore lavorative: ");
  scanf("%f", &ore);

  if ( ore <= 36 )
    printf("Salario per questa settimana: %.0f Euro\n", euro);

  if (ore >= 37 || ore <= 46 )
    {
    ore12 = ore - 36;
    euro12 = euro + ((euro/36) * (ore12 * 1.2));
    printf("Salario per questa settimana: %.0f Euro\n", euro12);
    }

  if (ore >= 47 || ore <= 99 )
    {
    ore15 = ore - 36;
    euro15 = euro + ((euro/36) * (ore15 * 1.5));
    printf("Salario per questa settimana: %.0f Euro\n", euro15);
    }

  if (ore >= 37 || ore <= 46 )
    {
    ore12 = ore - 36;
    printf("Numero di ore pagate a 1.2 volte il salario di base: %.0f\n", ore12);
	}

  if (ore >= 47 || ore <= 99 )
    {
    ore15 = ore - 47;
    printf("Numero di ore pagate a 1.5 volte il salario di base: %.0f\n", ore15);
	}

  return 0;
}
che da quello che ho scoperto adesso che sto scrivendo che praticamente uguale a quello che avevo fatto prima....

Perchè poi come output mi da:

che come prima mi da tutti i tipi di risultati possibili che può dare, senza differenziarli dal tipo di if che gli ho messo io.

Oltre al non capire la differrenza che c'è dalle due stesure del programma, nel tuo non capisco l'utilizzo dei simboli "-=" e "+=", non lì ho ancora studiati, ma dalle definizione che ho sono decremento/incremento non unitario, ma come si utilizzano? A cosa servono?
__________________
IMPOSSIBLE IS NOTHING

Ultima modifica di Cadetto Entusiasta : 25-10-2009 alle 16:41.
Cadetto Entusiasta è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2009, 18:11   #30
euphyllia87
Member
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 209
il simbolo += sta per somma e riassegna. Un esempio:

Codice:
A = A + B
può essere scritto come:

Codice:
A += B
che indica somma ad A, B e riponi in A.
stessa cosa per la differenza

Codice:
A = A - B
in:

Codice:
A -= B
__________________
MacBook White 13.3'' Intel CPU :: 2GB DDR2 800Mhz :: 160Gb :: Mac OS X 10.6 Snow Leopard
euphyllia87 è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2009, 19:33   #31
Cadetto Entusiasta
Member
 
L'Avatar di Cadetto Entusiasta
 
Iscritto dal: Apr 2005
Città: Prov. di Torino
Messaggi: 164
Ah, ok, praticamente una scorciatoia, invece di far fare un operazione che sommi alla variabile A la variabile B, senza introdurre una nuova variabile, si usa +=.
E stessa cosa per la differenza.
Grazie
__________________
IMPOSSIBLE IS NOTHING
Cadetto Entusiasta è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2009, 19:44   #32
euphyllia87
Member
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 209
Quote:
Originariamente inviato da Cadetto Entusiasta Guarda i messaggi
Ah, ok, praticamente una scorciatoia, invece di far fare un operazione che sommi alla variabile A la variabile B, senza introdurre una nuova variabile, si usa +=.
E stessa cosa per la differenza.
Grazie
Si, risparmi codice e una variabile da dichiarare.
__________________
MacBook White 13.3'' Intel CPU :: 2GB DDR2 800Mhz :: 160Gb :: Mac OS X 10.6 Snow Leopard
euphyllia87 è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2009, 19:46   #33
||ElChE||88
Senior Member
 
Iscritto dal: Dec 2003
Messaggi: 4907
Quote:
Originariamente inviato da Cadetto Entusiasta Guarda i messaggi
Ah, ok, praticamente una scorciatoia, invece di far fare un operazione che sommi alla variabile A la variabile B, senza introdurre una nuova variabile, si usa +=.
E stessa cosa per la differenza.
Grazie
No, non risparmi variabili.
A += B
è uguale ad
A = A + B
Come puoi vedere le uniche variabili sono A e B, presenti in entrambi i casi.
||ElChE||88 è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2009, 19:49   #34
Darecon
Senior Member
 
Iscritto dal: Sep 2003
Città: Tradate
Messaggi: 396
Quote:
Originariamente inviato da euphyllia87 Guarda i messaggi
Grazie mille è un pdf che può tornare molto utile.
Per le procedure che dico a tutti quei docenti/libri ecc che sostengono esistere nel C?
Scusate l'ot, ma questo interessa anche a me, c'e' qualche fonte ufficiale che dice questo? Mi ha molto incuriosito..
Darecon è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2009, 20:04   #35
euphyllia87
Member
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 209
Quote:
Originariamente inviato da Darecon Guarda i messaggi
Scusate l'ot, ma questo interessa anche a me, c'e' qualche fonte ufficiale che dice questo? Mi ha molto incuriosito..
Infatti, chiedo anche io la fonte ufficiale.
E' un documento interessantissimo.
__________________
MacBook White 13.3'' Intel CPU :: 2GB DDR2 800Mhz :: 160Gb :: Mac OS X 10.6 Snow Leopard
euphyllia87 è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2009, 20:07   #36
euphyllia87
Member
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 209
Quote:
Originariamente inviato da ||ElChE||88 Guarda i messaggi
No, non risparmi variabili.
A += B
è uguale ad
A = A + B
Come puoi vedere le uniche variabili sono A e B, presenti in entrambi i casi.
Risparmia una variabile (in scrittura e in memoria) nel caso di C = A + B; d'altronde non ha senso utilizzare un'altra variabile.

Quindi come dici tu è corretto A = A + B da cui deriva A += B; risparmia una variabile in scrittura (di codice).

Giusto!
__________________
MacBook White 13.3'' Intel CPU :: 2GB DDR2 800Mhz :: 160Gb :: Mac OS X 10.6 Snow Leopard
euphyllia87 è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2009, 21:44   #37
Cadetto Entusiasta
Member
 
L'Avatar di Cadetto Entusiasta
 
Iscritto dal: Apr 2005
Città: Prov. di Torino
Messaggi: 164
Sì infatti, io volevo proprio intendere che si risparmia una variabile per il codice, senza introdurne altre nuove e impiegare più memoria..
__________________
IMPOSSIBLE IS NOTHING
Cadetto Entusiasta è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2009, 21:50   #38
euphyllia87
Member
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 209
Quote:
Originariamente inviato da Cadetto Entusiasta Guarda i messaggi
Sì infatti, io volevo proprio intendere che si risparmia una variabile per il codice, senza introdurne altre nuove e impiegare più memoria..
La risparmieresti solo nel caso di C = A + B;
ma nel caso di A = A + B; no. Risparmi solo tempo a scrivere
__________________
MacBook White 13.3'' Intel CPU :: 2GB DDR2 800Mhz :: 160Gb :: Mac OS X 10.6 Snow Leopard
euphyllia87 è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2009, 21:55   #39
Cadetto Entusiasta
Member
 
L'Avatar di Cadetto Entusiasta
 
Iscritto dal: Apr 2005
Città: Prov. di Torino
Messaggi: 164
Quote:
Originariamente inviato da euphyllia87 Guarda i messaggi
La risparmieresti solo nel caso di C = A + B;
ma nel caso di A = A + B; no. Risparmi solo tempo a scrivere
Sì, è vero solo in quel caso...

Ma sapreste dirmi cosa sbaglio/cosa c'è di tanto diverso tra

Codice:
#include <stdio.h>

int main()
{
	float sal, orario;
	int ore, diff12 = 0, diff15 = 0;

	printf("Inserire il salario settimanale dell’impiegato [Euro]: ");
	scanf("%f", &sal);
	orario = sal / 36;

	printf("Inserire il numero di ore lavorate: ");
	scanf("%d", &ore);

	if (ore > 46)
	{
		diff15 = ore - 46;
		sal += diff15 * orario * 1.5;
		ore -= diff15;
	}

	if (ore > 36)
	{
		diff12 = ore - 36;
		sal += diff12 * orario * 1.2;
		ore -= diff12;
	}

	printf("Salario per questa settimana: %.0f\n", sal);

	if (diff12 > 0)
		printf("Numero di ore pagate a 1.2 volte il salario di base: %d\n", diff12);

	if (diff15 > 0)
		printf("Numero di ore pagate a 1.5 volte il salario di base: %d\n", diff15);

	return 0;
}
di ||ElChE||88 e il mio

Codice:
#include <stdio.h>

int main()
{

  float euro, euro12, euro15, ore, ore12, ore15;

  printf("Inserire il salario settimanale dell’impiegato [Euro]: ");
  scanf("%f", &euro);
  printf("Inserire il numero di ore lavorative: ");
  scanf("%f", &ore);

  if ( ore <= 36 )
    printf("Salario per questa settimana: %.0f Euro\n", euro);

  if (ore >= 37 || ore <= 46 )
    {
    ore12 = ore - 36;
    euro12 = euro + ((euro/36) * (ore12 * 1.2));
    printf("Salario per questa settimana: %.0f Euro\n", euro12);
    }

  if (ore >= 47 || ore <= 99 )
    {
    ore15 = ore - 36;
    euro15 = euro + ((euro/36) * (ore15 * 1.5));
    printf("Salario per questa settimana: %.0f Euro\n", euro15);
    }

  if (ore >= 37 || ore <= 46 )
    {
    ore12 = ore - 36;
    printf("Numero di ore pagate a 1.2 volte il salario di base: %.0f\n", ore12);
	}

  if (ore >= 47 || ore <= 99 )
    {
    ore15 = ore - 47;
    printf("Numero di ore pagate a 1.5 volte il salario di base: %.0f\n", ore15);
	}

  return 0;
}
che non riesco a capire?
__________________
IMPOSSIBLE IS NOTHING
Cadetto Entusiasta è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Le novità MSI del 2026 per i videogiocatori Le novità MSI del 2026 per i videogiocato...
I nuovi schermi QD-OLED di quinta generazione di MSI, per i gamers I nuovi schermi QD-OLED di quinta generazione di...
Le migliori offerte Amazon del weekend: ...
La crisi dell'hardware spinge i negozi g...
Apple Watch SE 3 scontato su Amazon: il ...
Robot aspirapolvere davvero scontati: si...
DDR5 troppo cara: il passato di AMD potr...
5 sconti TOP nuovi di zecca e altre offe...
Il più venduto e apprezzato: ECOV...
Era e resta un super top di gamma: il TV...
DOOGEE T10 Pro, il miglior tablet di tut...
Il miglior deumidificatore su Amazon sce...
Prosegue lo sviluppo del telescopio spaz...
28 astronauti cinesi hanno condotto un'e...
Dal Padiglione Italia al mercato globale...
POCO M8: display AMOLED luminoso, batter...
ECOVACS, tante novità a Las Vegas...
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: 10:03.


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