Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-12-2006, 09:36   #1
Vasec87
Member
 
Iscritto dal: Aug 2006
Messaggi: 177
Sito con esercizi

ciao, devo sostenere tra poco l'esame di porgrammazione I per il linguaggio C, esiste qualche sito dove ci sono esercizi di riepilogo, per ripassare un po tutti gli argomenti del C, oppure avete voi qualche file dove ci sono?


grazie
Vasec87 è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2006, 10:43   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da Vasec87
ciao, devo sostenere tra poco l'esame di porgrammazione I per il linguaggio C, esiste qualche sito dove ci sono esercizi di riepilogo, per ripassare un po tutti gli argomenti del C, oppure avete voi qualche file dove ci sono?
Vuoi qualche esercizio da fare??? Ecco qua:

---------------------------------------
Realizzare un programma "C" che scriva in output il "dump" di un qualunque file specificato come parametro sulla linea di comando. L'output dovrebbe essere una cosa del tipo:
Codice:
00000000  FF D8 FF E0 00 10 4A 46 49 46 00 01 01 01 00 48  ......JFIF.....H
00000010  00 48 00 00 FF E1 00 16 45 78 69 66 00 00 4D 4D  .H......Exif..MM
00000020  00 2A 00 00 00 08 00 00 00 00 00 00 FF DB 00 43  .*.............C
...ecc...
Per ogni riga scrivere l'offset in esadecimale, poi 16 valori esadecimali e poi 16 caratteri (se il carattere non è nel range 32-126, mettere un punto). Tenere in considerazione che il file può non essere lungo un multiplo di 16.

Come possibile miglioria/complicazione, dare la possibilità di specificare sulla linea di comando un offset di partenza e una lunghezza da "dumpare". In questo caso gli offset visualizzati devono comunque essere multipli di 16, cioè ci possono essere dei valori/caratteri non stampati. Esempio:
Codice:
00000010              FF E1 00 16 45 78 69 66 00 00 4D 4D      ....Exif..MM
00000020  00 2A 00 00 00 08 00 00 00                       .*.......
---------------------------------------
Realizzare un programma "C" che legge da un file di testo i dati di una serie di libri. Ogni riga del file è organizzata nel seguente formato.

titolo|autori|editore|pagine|anno|isbn

Ogni campo è separato dall'altro con un pipe '|'. Esempio:

Codice:
The C Programming Language, Second Edition|Brian W. Kernighan, Dennis M. Ritchie|Prentice Hall|274|1988|0131103628
Leggere il file memorizzando i dati in un array di strutture. Quindi effettuare un ordinamento dell'array per il titolo del libro e stampare in output i dati con lo stesso formato appena spiegato.

Come possibile miglioria/complicazione, dare la possibilità di specificare che tipo di ordinamento utilizzare, esempio: editore, anno, ecc...
---------------------------------------

Per il momento dovrebbero bastarti per un po'.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)

Ultima modifica di andbin : 18-12-2006 alle 11:07.
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2006, 11:34   #3
Vasec87
Member
 
Iscritto dal: Aug 2006
Messaggi: 177
mi servierebbero una serie di esercizi facili su tutti gli argomenti giusto per capire bene i meccanismi.
Vasec87 è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2006, 12:00   #4
giannola
Senior Member
 
L'Avatar di giannola
 
Iscritto dal: Oct 2005
Città: Palermo
Messaggi: 2579
qualcosa del tipo leggere dei dati impostati come padri e figli da un file di testo, metterli in delle strutture o liste, farne le delle statistiche e scriverle su un altro file ?
__________________
Utente gran figlio di Jobs ed in via di ubuntizzazione
Lippi, perchè non hai convocato loro ?
giannola è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2006, 12:01   #5
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da Vasec87
mi servierebbero una serie di esercizi facili su tutti gli argomenti giusto per capire bene i meccanismi.
Ehm ... non so tu cosa intendi per "facili" ... quelli che ho detto non sono particolarmente difficili e comunque toccano diversi argomenti. Il primo, quello del dump, a parte la complicazione dell'offset/lunghezza è abbastanza semplice e lineare.

Ne vuoi un altro?? Ecco:

-----------------------------
Realizzare un programma "C" che gestisca un dizionario inglese-italiano. Le associazioni tra le parole possono essere inserire direttamente nel sorgente (più facile) oppure in un file di testo esterno da caricare a run-time (meno facile).
Richiedere in input in modo continuativo (fino all'inserimento di una linea vuota e quindi uscire) una parola inglese e visualizzare la parola italiana corrispondente, se esiste.
-----------------------------

Già un esercizio come questo tocca diversi argomenti: input di una linea di testo, gestione delle strutture e degli array, comparazione tra stringhe.

Ma se vuoi ne penso altri.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2006, 13:32   #6
Vasec87
Member
 
Iscritto dal: Aug 2006
Messaggi: 177
non mi sono spiegato bene

vorrei una serie di esercizi, non complicatissimi che toccassero un po tutti gli argomenti. non un esercizio solo che comprende tutti gli argomenti.

esiste qualche sito oppure avete qualche file sul pc con esercizi di riepilogo??
Vasec87 è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2006, 14:28   #7
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Ma intendi esercizi su come si fa un ciclo FOR, su un IF, sui puntatori, sugli array ... e robe del genere?
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2006, 15:31   #8
Vasec87
Member
 
Iscritto dal: Aug 2006
Messaggi: 177
si, su tutti i vari argomenti
Vasec87 è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2006, 19:11   #9
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2782
Non ho capito l'esercizio del dump, i vari valori cosa rappresenterebbero?
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2006, 19:56   #10
0rph3n
Senior Member
 
L'Avatar di 0rph3n
 
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
cercando una definizione di dump con google, tra i vari risultati, saltano fuori questi:
  • Slang term referring to the transfer of data from one location to another. (eg, in order to print, a program may ‘dump’ a file to the printer buffer).
  • The act of copying raw data from one place to another with little or no formatting for readability.
in questi casi il termine dump è usato come un verbo, quindi quando è usato come nome, dovrebbe riferirsi ai dati contenuti in una porzione di memoria.

'iao
0rph3n è offline   Rispondi citando il messaggio o parte di esso
Old 19-12-2006, 10:01   #11
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da wingman87
Non ho capito l'esercizio del dump
to dump: (inform.) disalimentare, scaricare
(Hazon Garzanti)

"fare il dump" di un file, in gergo informatico, significa estrarne i dati e visualizzarli in qualche modo (in genere senza alcuna interpretazione). Vale sia per file generici ma anche per tabelle di database o aree di memoria.

Quote:
Originariamente inviato da wingman87
i vari valori cosa rappresenterebbero?
Il contenuto di un qualunque file. Nel mio esempio l'inizio di un file immagine .jpg
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2006, 20:37   #12
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2782
Dunque la prima colonna è l'offset, cioè la posizione espressa in esadecimale giusto? La seconda e la terza rappresentano il contenuto del file in quell'offset (16 byte), la prima colonna con valori esadecimali e la seconda con caratteri ascii?
E a cosa serve?
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2006, 22:06   #13
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2782
L'ho fatto così ma ho delle domande:
1- come bisogna comportarsi con la stampa dell'EOF? Va bene come ho fatto io?
2- i valori esadecimali vengono stampati in minuscolo, c'è una funzione veloce x renderli maiuscoli?
3- x il resto va bene?

Codice:
#include <stdio.h>
#include <stdlib.h>

long offset;

void print_buf(int *buf,FILE *fw);
void clear_buf(int *buf);

int main(){
   FILE *fr,*fw;
   char path[100];
   int buf[16],i;
   
   //APERTURA FILE
   printf("PATH: ");
   scanf("%s",path);
   fr=fopen(path,"rb");
   if(fr==NULL){
      printf("Errore nell'apertura del file\n");
      exit(1);
   }
   fw=fopen("DUMP.txt","w");
   if(fw==NULL){
      printf("Errore nell'apertura del file\n");
      fclose(fr);
      exit(1);
   }
   
   //LETTURA FILE 16 BYTE X VOLTA
   while(!feof(fr)){
      clear_buf(buf);  //AZZERO IL BUFFER
      for(i=0;i<16;i++){
         buf[i]=fgetc(fr);
         if(buf[i]==EOF){
            buf[i]=0;
            break;
         }
      }
      print_buf(buf,fw);  //SCRIVO SU FILE I BYTE LETTI
      offset+=16;
   }
   fclose(fr);
}

//FUNZIONE X L'AZZERAMENTO DEL BUFFER
void clear_buf(int *buf){
   int i;
   
   for(i=0;i<16;i++)
      buf[i]=0;
}

//FUNZIONE X LA STAMPA DEL BUFFER
void print_buf(int *buf,FILE *fw){
   int i;
   char str[9];
   
   //OFFSET
   sprintf(str,"%08x",offset);
   fprintf(fw,"%s\t",str);
   
   //ESADECIMALE
   for(i=0;i<16;i++){
      sprintf(str,"%02x",buf[i]);
      fprintf(fw,"%s ",str);
   }
   fprintf(fw,"\t");
   
   //ASCII
   for(i=0;i<16;i++)
      if(buf[i]<127 && buf[i]>31)
         fprintf(fw,"%c",buf[i]);   
      else
         fprintf(fw,".",buf[i]);
   fprintf(fw,"\n");
}
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2006, 22:13   #14
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da wingman87
Dunque la prima colonna è l'offset, cioè la posizione espressa in esadecimale giusto? La seconda e la terza rappresentano il contenuto del file in quell'offset (16 byte), la prima colonna con valori esadecimali e la seconda con caratteri ascii?
Sì.

Quote:
Originariamente inviato da wingman87
E a cosa serve?
Ehm .... a vedere cosa c'è dentro un file binario!

Mai sentito parlare di editor esadecimali?? Hex Workshop, BIEW e altri? Certo .... sono editor più complessi e con molte funzionalità. Ma nulla vieta di realizzare un semplice "file dumper" con un programmino.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2006, 22:19   #15
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da wingman87
L'ho fatto così ma ho delle domande:
1- come bisogna comportarsi con la stampa dell'EOF? Va bene come ho fatto io?
Per EOF si può intendere: EOF fisico ("non ci sono più dati") o il carattere di EOF (0x1A).
Ovviamente nessun carattere deve essere trattato in modo "speciale".

Quote:
Originariamente inviato da wingman87
2- i valori esadecimali vengono stampati in minuscolo, c'è una funzione veloce x renderli maiuscoli?
%02X invece %02x.
Leggersi la documentazione della (f)printf??
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2006, 22:25   #16
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2782
Non pensavo che la soluzione fosse nella printf..
L'EOF se lo stampo così com'è mi stampa "FFFFFFFF"
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2006, 22:41   #17
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
A quest'ora della sera è la versione più corta che mi viene in mente:
Codice:
#include <stdio.h>

int main (int argc, char *argv[])
{
    FILE   *f;
    char    buf[16];
    size_t  offset = 0, len, i;

    if (argc == 2)
    {
        if ((f = fopen (argv[1], "rb")) != NULL)
        {
            while ((len = fread (buf, 1, 16, f)) > 0)
            {
                printf ("%08X  ", offset);

                for (i = 0; i < 16; i++)
                    printf (i < len ? "%02X " : "   ", buf[i] & 0xFF);

                printf (" ");

                for (i = 0; i < 16; i++)
                    printf ("%c", i < len ? buf[i] >= 32 && buf[i] <= 126 ? buf[i] : '.' : ' ');

                printf ("\n");
                offset += len;
            }

            fclose (f);
        }
        else
            printf ("Error opening file\n");
    }
    else
        printf ("Usage: %s <filename>\n", argv[0]);

    return 0;
}
Non ho fatto tutti i controlli di errore del caso ... ma è solo un esempio.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Un gruppo di ladri ha usato Google Maps ...
Apple non si fida di Samsung per la real...
Windows 11: un nuovo driver nativo mette...
Vi hanno regalato buoni Amazon? Intanto ...
Via acari, polvere e sporco da materassi...
Cuffie Beats in super offerta su Amazon,...
Xbox Cloud Gaming arriva su Amazon Fire ...
Un blackout a San Francisco manda in til...
Windows 11 è diventato più...
Apple cambia strategia a causa della cri...
007 First Light: uscita rimandata di due...
Samsung Galaxy A37 e A57: il comparto fo...
DAZN lancia la sua offerta di Natale: My...
Gigabyte fa marcia indietro? Sparito il ...
Alcuni rivenditori giapponesi bloccano l...
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: 00:26.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v
Hardware Upgrade Forum Database Error
Database Error Database error
The Hardware Upgrade Forum database has encountered a problem.

Please try the following:
  • Load the page again by clicking the Refresh button in your web browser.
  • Open the www.hwupgrade.it home page, then try to open another page.
  • Click the Back button to try another link.
The www.hwupgrade.it forum technical staff have been notified of the error, though you may contact them if the problem persists.
 
We apologise for any inconvenience.