Torna indietro   Hardware Upgrade Forum > Software > Programmazione

realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme e Aston Martin Aramco F1 Team si sono (ri)unite dando alla vita un flagship con chip Snapdragon 8 Elite Gen 5 e design esclusivo ispirato alle monoposto di Formula 1. La Dream Edition introduce la nuova colorazione Lime Essence abbinata al tradizionale Aston Martin Racing Green, decorazioni intercambiabili personalizzate e una confezione a tema F1, intorno a uno smartphone dall'ottima dotazione tecnica con batteria da 7000mAh ricaricabile a 120W e isola fotografica intercambiabile
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Abbiamo potuto mettere le mani in anteprima sul nuovo monitor MSI dedicato ai giocatori: un mostro che adotta un pannello QD-OLED da 26,5 pollici con risoluzione 2560 x 1440 pixel, frequenza di aggiornamento fino a 500 Hz e tempo di risposta di 0,03 ms GtG
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-10-2006, 11:17   #1
Vasec87
Member
 
Iscritto dal: Aug 2006
Messaggi: 177
Mi aiutate per favore? grazie mille

potete darmi una mano a fare questi 5 semplici programmini in c, non ho proprio idea di come si fanno e devo consegnarli tra pochi giorni.
grazie

Esercizio 1
Si scriva un programma che prenda da input due interi n e x. Il programma calcolerà e stamperà le prime n potenze di x.

Esempio: se il numero di potenze n è pari a 5 e x=2 allora il programma dovrà calcolare e stampare le prime 5 potenze di 2: 20 , 21 , 22 , 23 , 24
Il programma quindi stamperà in output
1
2
4
8
16


Esercizio 2
Si scriva un programma che prenda da input due interi l1 e l2. Il programma calcolerà e stamperà la somma degli interi nell’intervallo [l1,..,l2] estremi inclusi. L1 indica l’estremo inferiore dell’intervallo; l2 l’estremo superiore.

Esempio: se l1= 1 e l2=5
il programma stamperà in output
15

Se l1=4 e l2=7
il programma stamperà in output
22

Se l1=5 e l2=3
il programma stamperà in output
0












Esercizio 3
Si scriva un programma che dato un numero n dispari dato da input stampi in output il seguente tipo di figura geometrica (dove n è il numero di asterischi della prima riga e il numero di righe).

*******
* *
*******
* *
*******
* *
*******

Esempi: se n=7 il programma stamperà
*******
* *
*******
* *
*******
* *
*******

Se n=5 il programma stamperà
*****
* *
*****
* *
*****

Se n=3 il programma stamperà
***
* *
***
* *
***

















Esercizio 4
Si scriva un programma che prenda in input due interi x e y. Calcoli e stampi il numero più grande d che sia un divisore sia di x che di y.

Esempi
Se x=3 e y=7 il programma stamperà
1

Se x=3 e y=9 il programma stamperà
3

Se x=40 e y=35 il programma stamperà
5



Esercizio 5
Si scriva un programma che dato un numero intero x stampi il numero delle sue cifre.

Esempi
Se x=17390
il programma stamperà 5

Se x=9
il programma stamperà 1

Se x=15590562
il programma stamperà 8
Vasec87 è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2006, 11:50   #2
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Il primo programma puo' essere scritto così:

Codice:
#include <stdio.h>

int main(void)
{
	int n, x, i;
	int risultato;
	printf("Inserisci due numeri interi positivi separati da spazio (es: 5 2): ");
	scanf("%d %d", &n, &x);
	/* Calcolo le n potenze di x */
	for (i = 0; i < n; i++)
	{
		if (i == 0) /* Caso particolare: x elevato a 0 */
			risultato = 1;
		else
			risultato = risultato * x;
		printf("%d^%d = %d\n", x, i, risultato);
	}
	return 0;
}
Per gli altri, prendi spunto ed esercitati da solo

NOTA: non c'è alcun controllo d'errore nel codice, essendo un semplice esercizio sul ciclo for...
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson

Ultima modifica di -fidel- : 16-10-2006 alle 11:55.
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2006, 15:53   #3
Vasec87
Member
 
Iscritto dal: Aug 2006
Messaggi: 177
ti ringrazio moltissimo, ho appena cominciato programmazione I all'universita ma non ci riesco proprio a fare sti esercizietti, bo, ci so quasi riuscito a fa quello degli intervalli, poi gli altri li provo domani

grazie ancora
Vasec87 è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2006, 16:00   #4
Vasec87
Member
 
Iscritto dal: Aug 2006
Messaggi: 177
per uno che ha gia fatto programmazione sono facili questi, ma per me che faccio programmazione da 2 settimane non sono facilissimi.
Vasec87 è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2006, 16:04   #5
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Quote:
Originariamente inviato da Vasec87
ti ringrazio moltissimo, ho appena cominciato programmazione I all'universita ma non ci riesco proprio a fare sti esercizietti, bo, ci so quasi riuscito a fa quello degli intervalli, poi gli altri li provo domani

grazie ancora
Ah, occhio all'ultimo esercizio, lo risolvi con 3 righe di codice appena capisci l'approccio da utilizzare
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2006, 16:37   #6
Vasec87
Member
 
Iscritto dal: Aug 2006
Messaggi: 177
il problema è l'approccio



stasera mi ci metto con calma e provo a farne qualcuno
quello con gli asterischi non lo farò mai, ho sentito parlare di matrici ecc.., non so nemmeno cosa sono, se potete darmi un aiutino ve ne sarei molto grato

ciao
Vasec87 è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2006, 17:15   #7
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Quote:
Originariamente inviato da Vasec87
il problema è l'approccio

Esatto, l'importante è ricavare l'algoritmo (ovvero i passi che il programma deve compiere er risolvere il problema). Il difficile è proprio la formalizzazione dell'algoritmo, non scrivere codice.

Quote:
Originariamente inviato da Vasec87
quello con gli asterischi non lo farò mai, ho sentito parlare di matrici ecc.., non so nemmeno cosa sono, se potete darmi un aiutino ve ne sarei molto grato

ciao
Ma quali matrici! Si risolve tutto con un ciclo for, e con meno di 30 righe di codice
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2006, 17:28   #8
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
A titolo esplicativo, dal momento che penso hai bisogno di esempi per capire come formalizzare un algoritmo, posto la soluzione all'esercizio numero 3, completamente commentato. Soffermati al modo che ho usato per risolvere il problema. Vedi le domande che mi sono posto e come le ho formalizzate via codice.
Quando fai un programma, anche semplice, pensa ai passi che compiresti per risolverlo: in questo caso, se avessi preso un foglio di carta e avessi voluto disegnare quella figura, cosa avresti fatto? Probabilmente i passi che avresti compiuto nella tua mente (forse in modo "inconscio") sono gli stessi di questo programma:

Codice:
/*
NOTA 1: L'operatore % (percentuale), usato per controllare la parità o meno di un
        numero, realizza semplicemente l'operazione matematica "modulo". Esso fa la
        divisione tra due numeri interi, ma restituisce il RESTO della divisione
        invece che il risultato.
        Ad esempio, 7 % 5 restituira' 2, 4 % 2 restituira' 0, ecc.
        Quindi, se il resto della divisione tra un qualunque numero e 2 restituisce 0,
        il numero e' sicuramente pari, altrimenti e' dispari.

NOTA 2: Nel primo ciclo for, parto da i = 1 invece che da i = 0 perche', altrimenti, la
        prima riga sarebbe stata considerata come una riga in posizione pari.
        Ovviamente, la condizione di uscita dal ciclo for diventa i <= x (a differenza
        del secondo ciclo for, in cui si parte come al solito da j = 0, quindi la
        condizione di uscita e' la solita j < x).
*/

#include <stdio.h>

int main(void)
{
	int x, i, j;
	printf("Inserisci un numero intero positivo dispari: ");
	scanf("%d", &x);
	/* Il numero letto da tastiera e' dispari? */
	if ((x % 2) != 0)
	{
		/* Si', il numero e' dispari: OK! */
		/*
		Con il ciclo for stampo un numero di righe pari al numero inserito.
		Per ogni riga, vedo se corrisponde ad una riga dispari o pari:
		se e' una riga dispari, stampo un numero di asterischi pari al
		numero inserito (con un altro ciclo for), mentre se e' una riga pari
		stampo solo due asterischi (direttamente).
		*/
		for (i = 1; i <= x; i++)
		{
			/* Sono su una riga dispari o su una riga pari? */
			if ((i % 2) != 0)
			{
				/* Sono su una riga dispari: stampo un numero di asterischi pari a x */
				for (j = 0; j < x; j++)
					printf("*");
			}
			else
				/* Sono su una riga pari: stampo 2 asterischi */
				printf("**");
			/* Vado a capo per la prossima riga */
			printf("\n");
		}
	}
	else
		/* No, il numero e' pari... */
		printf("Il numero inserito e' pari!\n");
	return 0;
}
Gli altri esercizi risolvili tu, non sono difficili.
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson

Ultima modifica di -fidel- : 16-10-2006 alle 17:42.
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2006, 17:38   #9
Vasec87
Member
 
Iscritto dal: Aug 2006
Messaggi: 177
non so come ringraziarvi, prendo spunto da sti 2 esercizi e da stasera mi ci metto anche io.

il problema è che io comincio subito a scrivere in c, invece penso che sarebbe meglio farsi un idea sulla carta, ma mi sembra una perdita di tempo
un 'altra cosa che mi frega è che sottovaluto sti esercizietti, sembrano stupidi, ma non lo sono affatto...
Vasec87 è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2006, 17:45   #10
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Quote:
Originariamente inviato da Vasec87
non so come ringraziarvi, prendo spunto da sti 2 esercizi e da stasera mi ci metto anche io.
Figurati

Quote:
Originariamente inviato da Vasec87
il problema è che io comincio subito a scrivere in c, invece penso che sarebbe meglio farsi un idea sulla carta, ma mi sembra una perdita di tempo
un 'altra cosa che mi frega è che sottovaluto sti esercizietti, sembrano stupidi, ma non lo sono affatto...
Esatto, prova prima a formalizzare (magari su carta), non metterti subito davanti al PC, altrimenti rischi di cadere nella sindrome dello "schermo vuoto". Sempre, a tutti i livelli, si formalizza prima su carta (si fa prima il classico progetto), poi si passa alla scrittura del codice vero e proprio.
Ah, vedi che ho leggermente modificato i commenti nel programma postato prima, per semplificarti la vita
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2006, 17:48   #11
Vasec87
Member
 
Iscritto dal: Aug 2006
Messaggi: 177
ok, stasera mi ci metto con calma poi a giorni vi faccio sapere.
ora sono alle prese con un'altra materia non facilissima ma che mi riesce meglio.
architettura degli elaboratori


p.s
io facevo esattamente quello che dici, mi mettevo subito davanti al pc.

ciao
Vasec87 è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2006, 17:51   #12
Vasec87
Member
 
Iscritto dal: Aug 2006
Messaggi: 177
domandina.

cosa mi consigliate di usare per vedere il risultato del programma sullo schermo?

io uso sempre #include <cstdlib> e system("PAUSE"); alla fine

cosi alla fine del programma mi dice premere un tasto per continuare

mica mi verrà considerato errore quando lo correggeranno gli insegnanti? conoscete un altro metodo?

grazie
Vasec87 è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2006, 18:18   #13
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Quote:
Originariamente inviato da Vasec87
domandina.

cosa mi consigliate di usare per vedere il risultato del programma sullo schermo?

io uso sempre #include <cstdlib> e system("PAUSE"); alla fine

cosi alla fine del programma mi dice premere un tasto per continuare

mica mi verrà considerato errore quando lo correggeranno gli insegnanti? conoscete un altro metodo?

grazie
Penso di sì. Infatti, anche se la funzione system() fa parte delle librerie ANSI C (in particolare <stdlib.h>), il comando che chiami all'interno della system() (ovvero sia PAUSE), si riferisce solamente ad ambienti Windows. Quindi il tuo codice diventa "Windows only" (se vogliamo fare i fiscali), mentre un codice ANSI C è conforme a TUTTI i sistemi operativi. Infatti, su linux ad esempio, un programma con "system("PAUSE")" compila (perchè la funzione system() è ANSI C, quindi contemplata), ma a runtime, arrivati a quella chiamata, esce fuori questo:

"sh: PAUSE: command not found"

Ti consiglio, molto più semplicemente, di fare così:

Codice:
printf("Premere INVIO per continuare...");
getchar();
Che va sempre bene ed è ANSI C ed è compatibile con tutti i SO.

EDIT: Se lanci i tuoi programmi dalla console di Windows (prompt dei comandi), non hai assolutamente bisogno di far uscire un messaggio di quel tipo. Immagino che tu la usi perchè avvii i programmi console con un doppio click da Esplora risorse, quindi la console si chiude automaticamente alla fine del programma.
Per comodità, usa le due righe di codice che ho postato, ma anche se non metti nulla il tuo programma sarà corretto (perchè il prof. sa tutto questo e lancerà i programmi dal prompt dei comandi )
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson

Ultima modifica di -fidel- : 16-10-2006 alle 18:23.
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2006, 18:46   #14
Vasec87
Member
 
Iscritto dal: Aug 2006
Messaggi: 177
sisi, infatti penso di mettere il classico return 0 per evitare rischi

comq i programmi devono essere compatibili con gcc mi sembra si chiami cosi, cioè su linux
Vasec87 è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2006, 18:49   #15
Vasec87
Member
 
Iscritto dal: Aug 2006
Messaggi: 177
ho provato a incollare alla fine le due righe che mi hai detto ma non funzionano

la finestra si chiude subito come quando metto return 0
Vasec87 è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2006, 19:36   #16
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Quote:
Originariamente inviato da Vasec87
ho provato a incollare alla fine le due righe che mi hai detto ma non funzionano

la finestra si chiude subito come quando metto return 0
OK, il solito problema del buffer della tastiera............. Fai così allora:

Codice:
while(getchar() != '\n');
printf("Premere INVIO per continuare...");
getchar();
EDIT: se il programma deve essere portabile (quindi compatibile con gcc di linux), evita di fare system("PAUSE"); non è una buona prassi e di conseguenza ti verrà segnato come errore (se il prof. è un minimo pignolo).
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson
-fidel- è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2006, 21:17   #17
Vasec87
Member
 
Iscritto dal: Aug 2006
Messaggi: 177
funziona perfettamente
Vasec87 è offline   Rispondi citando il messaggio o parte di esso
Old 17-10-2006, 09:48   #18
Vasec87
Member
 
Iscritto dal: Aug 2006
Messaggi: 177
sto provando a fare il 4. mi date qualche piccolo indizio su come risolverlo?

io sto giocando un po con for,if else e while e con l'operatore di resto, ma non esce niente di buono
Vasec87 è offline   Rispondi citando il messaggio o parte di esso
Old 17-10-2006, 10:19   #19
Vasec87
Member
 
Iscritto dal: Aug 2006
Messaggi: 177
sono riuscito a farlo con la formula di euclide

ora mi mancano il secondo e il quinto esercizio, dopo ci provo. sono accettati piccoli suggerimenti, che mi mettano sulla buona strada

ciao
Vasec87 è offline   Rispondi citando il messaggio o parte di esso
Old 17-10-2006, 15:08   #20
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
Quote:
Originariamente inviato da Vasec87
sono riuscito a farlo con la formula di euclide

ora mi mancano il secondo e il quinto esercizio, dopo ci provo. sono accettati piccoli suggerimenti, che mi mettano sulla buona strada

ciao
per il quinto ho scritto una funzione di 3 righe che funziona perfettamente
devi usare l'operatore %
buon lavoro
AngeL) è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Altro che 'scandalo De Martino', in Core...
Meta leggerà i tuoi messaggi dal ...
OpenAI entra in Thrive Holdings: nasce u...
Paramount: nuovi film di Sonic e Tartaru...
EU AI Cloud, il cloud sovrano di SAP per...
God of War: la serie TV entra in pre-pro...
Stampante HP in super offerta: la multif...
Maxi offerta su Roborock S8 MaxV Ultra: ...
Ron Gilbert, il creatore di Monkey Islan...
AMD, aumento dei prezzi per i processori...
I migliori regali di Natale a meno di 50...
Sorprese post Black Friday: questi TV 4K...
NVIDIA perde quota, AMD e Intel guadagna...
Il cloud ibrido al centro delle strategi...
Amazon sorprende: avviatori, compressori...
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: 14:25.


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