Showing posts with label Italian. Show all posts
Showing posts with label Italian. Show all posts

C del programma: si assume che B è un array di n> 0 cifre binarie, la seguente funzione calcola il valore decimale rappresentato da b in forma binaria

C del programma: si assume che B è un array di n> 0 cifre binarie, la seguente funzione calcola il valore decimale rappresentato da b in forma binaria


/*Assumiamo che b sia un array di n>0 cifre binarie, la funzione che segue calcola il valore decimale rappresentato da b in forma binaria*/

#include <stdio.h>

int Bin2Dec(int b[], int n){

int decimale=0;
int p;
p=1;

for(int k=0; k<n; k++){

decimale=decimale+b[k]*p;
p=p*2;
}
return decimale;
}

int main(void){

int n;

printf("Inserisci la grandezza dell'array; \n");
scanf("%d", &n);

int b[n];

printf("Inserisci gli elementi dell'array \n");
for(int k=0; k<n; k++){
printf("Inserisci l'elemento %d: \n", k+1);
scanf("%d", &b[k]);
}

printf("Il decimanle è: %d", Bin2Dec(b, n));
return 0;


}

C Program Problem's Solution For General Hospital

The general hospital of the city of Duckburg has 500 departments. In each department i ∈ {1,. . . , 500} and each work 30 doctors
30 doctors following at 10 more patients.
It plans and implements in C / C an algorithm
1. acquires from standard input elements of a three-dimensional vector A of size 500 × 30 × 10, where
A [i] [j] [k] = q ≥ 1 indicates that the patient's doctor j k in the department will be discharged between q days;
A [i] [j] [k] = 0, j indicates the physician in the department has no patient index k;
2. invoke a function that returns the output index of the department having the minimum number of patients hospitalized;
3. invoke a function that returns output for each department i ∈ {1,. . . , 500} the total number of patients it admitted.




/*Il policlinico della città di Paperopoli ha 500 reparti. In ciascun reparto i ∈ {1, . . . , 500} lavorano 30 medici e ciascuno
dei 30 medici segue al più 10 pazienti.
Si progetti ed implementi in C/C++ un algoritmo che
1. acquisisca da standard input gli elementi di un vettore tridimensionale A di dimensione 500 × 30 × 10, dove
A[i][j][k] = q ≥ 1 indica che il paziente k del medico j nel reparto i sarà dimesso fra q giorni;
A[i][j][k] = 0, indica il medico j nel reparto i non ha alcun paziente di indice k;
2. invochi una funzione che restituisca in output l’indice del reparto avente il minimo numero di pazienti
ricoverati;
3. invochi una funzione che restituisca in output per ciascun reparto i ∈ {1, . . . , 500} il numero totale di pazienti
in esso ricoverati.*/


#include <stdio.h>
#define rep 500
#define med 30
#define paz 10
int getRepartoConMenoPazienti(int*);
int getPazientiInReparto(int*);
int maggioreDi(int);
void inizializza(int*);
void printPazientiInOgniReparto(int*);
int main(void) {
int A[rep][med][paz];
inizializza(A[0][0]);
printf("Il reparto con meno pazienti e' il %d\n",getRepartoConMenoPazienti(A[0][0])+1);
printPazientiInOgniReparto(A[0][0]);
system("PAUSE");
return 0;
}
void inizializza(int* punt) {
for(int i=0;i<rep;i++) {
for(int j=0;j<med;j++) {
for(int k=0;k<paz;k++) {
printf("%dx%dx%d=",i,j,k);
*(punt+i*med*paz+j*paz+k)=maggioreDi(0);
}
}
}
}
int maggioreDi(int inf) {
int tmp;
scanf("%d",&tmp);
while(tmp<inf) {
printf("Errore! Inserire un numero maggiore di %d: ",inf);
scanf("%d",&tmp);
}
return tmp;
}
int getPazientiInReparto(int* punt) {
int cnt=0;
for(int i=0;i<med;i++) {
for(int j=0;j<paz;j++) {
if((*(punt+i*paz+j))!=0) {
cnt++;
}
}
}
return cnt;
}
int getRepartoConMenoPazienti(int* punt) {
int indiceMin=0,valoreMin=getPazientiInReparto(punt);
for(int i=1;i<rep;i++) {
int valoreAtt=getPazientiInReparto(punt+indiceMin*i);
if(valoreAtt<valoreMin) {
valoreMin=valoreAtt;
indiceMin=i;
}
}
return indiceMin;
}
void printPazientiInOgniReparto(int* punt) {
for(int i=0;i<rep;i++) {
printf("Il reparto %d ha %d pazienti\n",i+1,getPazientiInReparto(punt+i*rep));
}
}

Sviluppare una function C che, data come parametro di input una stringa che rappresenta un testo in italiano, determina e restituisce come parametri di output la parola di lunghezza minima contenuta nel testo e la sua lunghezza. Nel testo le parole sono separate da un unico spazio.


  1. /**
  2. Sviluppare una function C che, data come parametro di input una stringa che
  3. rappresenta un testo in italiano, determina e restituisce come parametri di output la
  4. parola di lunghezza minima contenuta nel testo e la sua lunghezza. Nel testo le
  5. parole sono separate da un unico spazio.
  6. **/
  7.  
  8. #include <string.h>
  9. #include <stdio.h>
  10.  
  11. char *func(char *text, int *lenght) {
  12.     char *word, *ret, *buff = strdup( text );
  13.     int len, oldlen;
  14.     oldlen = strlen(buff);
  15.  
  16.     while((word = strtok(buff, " "))) {
  17.         buff = NULL; // See strtok man page
  18.         len = strlen(word);
  19.  
  20.         if(len < oldlen) {
  21.             oldlen = len;
  22.             ret = word;
  23.             *lenght = len;
  24.         }
  25.     }
  26.  
  27.     return ret;
  28. }
  29.  
  30. int main(void) {
  31.     char *testo = "ullamcoare laboris nisare utt aliquid ex ea comaamodi consequat";
  32.     int len;
  33.     char *ret = func(testo, &len);
  34.     printf("Parola: %s\nLunga: %d\n",ret, len);
  35.     return 0;
  36. }

Sviluppare una function C che, data come parametro di input una stringa che rappresenta un testo in italiano, determina e restituisce come parametri di output la parola di lunghezza minima contenuta nel testo e la posizione di inizio della parola nella stringa. Nel testo le parole sono separate da un unico spazio.


  1. /**
  2. Sviluppare una function C che, data come parametro di input una stringa che
  3. rappresenta un testo in italiano, determina e restituisce come parametri di output la
  4. parola di lunghezza minima contenuta nel testo e la posizione di inizio della parola
  5. nella stringa. Nel testo le parole sono separate da un unico spazio.
  6. **/
  7.  
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. #include <string.h>
  11. int a(char* str ,char* max_word);
  12. int main ()
  13. {
  14.     char s[]="a ullare laboris nisare utt aliquid ex ea comaamodi consequat a";
  15.     char* t;
  16.     printf("%d %s",a(&,&t), &t);
  17.  
  18. }
  19.  
  20. int a(char* str ,char* max_word)
  21. {
  22.     char *temp,*tmp;
  23.     int len_max;
  24.     len_max=0;
  25.     for (temp = strtok(str," "); temp != NULL; temp = strtok(NULL, " "))
  26.         {
  27.         if(strlen(temp)>len_max)
  28.             {
  29.                 len_max=strlen(temp);
  30.                 strcpy(max_word,temp);
  31.                 tmp=temp;
  32.             }
  33.         }
  34.         // LA POSIZIONE DI INIZIO DELLA PAROLA DI LUNGHEZZA MINIMA E' DATA DALL'INDIRIZZO
  35.         // DELLA PAROLA - INDIRIZZO DELLA FRASE
  36.         // ESEMPIO, SE LA PAROLA SI TROVA NELLA LOCAZIONE 8100, E IL PUNTATORE DI INIZIO DELL'INTERA FRASE PUNTA A 8000
  37.         // LA POSIZIONE DELLA PAROLA IN ESAME SARA' A 100.
  38.     return ((int)tmp - (int)str);
  39. }

Sviluppare una function C che, dati come parametri di input un array di char e il suo size, determina e restituisce come parametro di output l’array occorrenze (di size 21) del numero delle occorrenze dell’evento a precede ognuna delle 21 lettere dell’alfabeto italiano (cioè occorrenze[0] è il numero di volte in cui accade che “a precede a”, cioè che nel testo compare aa, occorrenze[1] è il numero di volte in cui accade che “a precede b”, cioè che nel testo compare ab, occorrenze[2] è il numero di volte in cui accade che a precede c, cioè che nel testo compare ac, …).


  1. /**
  2.     Sviluppare una function C che, dati come parametri di input un array di char e
  3.     il suo size, determina e restituisce come parametro di output l’array
  4.     occorrenze (di size 21) del numero delle occorrenze dell’evento a precede
  5.     ognuna delle 21 lettere dell’alfabeto italiano (cioè occorrenze[0] è il numero
  6.     di volte in cui accade che “a precede a”, cioè che nel testo compare aa,
  7.     occorrenze[1] è il numero di volte in cui accade che “a precede b”, cioè
  8.     che nel testo compare ab, occorrenze[2] è il numero di volte in cui accade
  9.     che a precede c, cioè che nel testo compare ac, …).
  10.  **/
  11. #include <stdio.h>
  12. #include <stdlib.h>
  13. #include <string.h>
  14.  
  15.  void occor_prec_a(int n, char s[], int occor[]) {
  16.  
  17. int i,j;
  18. char *alfabeto = "abcdefghilmnopqrstuvz";
  19.  
  20.         for(= 0; i < 21; i++)
  21.         occor[i] = 0;
  22.  for(i=0;i<n;i++)
  23.         {
  24.                 s[i]=tolower(s[i]);
  25.         //facciamo diventare tutta da frase in minuscolo in modo da semplificare
  26.         }
  27.         // Scorro tutte le lettere della stringa
  28. for(i=0;i<strlen(s);i++) {
  29.         // Ogni volta che trovo una a
  30. if(s[i] == 'a') {
  31.     // Scorro tutte le lettere dell'alfabeto
  32.   for (j=0;j<21;j++) {
  33.       // Controllo tutti le lettere dell'alfabeto, se mi trovo in uno spazio non prendo in considerazione
  34.             if(s[i+1]==alfabeto[j] && s[i+1]!=' ')
  35.             { // l'array avrà quindi le occorrenze di tutte le lettere dopo a
  36.                 occor[j]++;
  37.             }
  38.                     }
  39.                 }
  40.                         }
  41. int x=0, b=21;
  42.  
  43. for (x=0;x<b;x++) {
  44.     // Ma stampo solo le occorrenze esistenti
  45.         if(occor[x]!=0) {
  46.             printf("a%c %d\n",alfabeto[x],occor[x]);
  47.         }
  48. }
  49.  
  50.  }
  51.  
  52.  int main() {
  53.  
  54. char s[]="Alle anatre piace essere attraenti perche' sono attente";
  55. int occor[21];
  56. int n=strlen(s);
  57. occor_prec_a(n,s,&occor);
  58.  
  59. }

Sviluppare una function C che, dati come parametri di input un array di char e il suo size, determina e restituisce come parametro di un dato logico che indica se il testo nell’array è un pangramma, ovvero è un testo che contiene, almeno una volta, tutte le 21 lettere dell’alfabeto italiano.

Sviluppare una function C che, dati come parametri di input un array di char e il suo size, determina e restituisce come parametro di un dato logico che indica se il testo nell’array è un pangramma, ovvero è un testo che contiene, almeno una volta, tutte le 21 lettere dell’alfabeto italiano.


  1. /**
  2.     Sviluppare una function C che, dati come parametri di input un array di char e il suo
  3.     size, determina e restituisce come parametro di un dato logico che indica se il testo
  4.     nell’array è un pangramma, ovvero è un testo che contiene, almeno una volta, tutte
  5.     le 21 lettere dell’alfabeto italiano.
  6. **/
  7. #include <stdio.h>
  8. #include <string.h>
  9. #include <stdlib.h>
  10.  
  11.  int pangramma(int n, char s[]) {
  12. char alfabeto[] = "abcdefghilmnopqrstuvz";
  13. int i,j;
  14. int occor[21];
  15.  
  16.         for(= 0; i < 21; i++)
  17.         occor[i] = 0;
  18.  
  19.     for(i=0;i<n;i++)
  20.         {
  21.                 s[i]=tolower(s[i]);
  22.         }
  23.  
  24.    for(i=0;i<n;i++) {
  25.     for (j=0;j<21;j++) {
  26.         if(s[i] == alfabeto[j]) {
  27.             occor[j]++;
  28.             }
  29.                         }
  30.                     }
  31. // Scorro tutto l'array delle occorrenze, se trovo un solo 0, significa che una lettera
  32. // non è presente nella stringa, ritorno 0 perchè non è un pangramma e esco
  33. // Se invece non trovo nessuno 0, ritorno 1, la frase è un pangramma.
  34.     for(j=0;j<21;j++)
  35.     {
  36.  
  37.         if(occor[j]==0) {
  38.         return 0;
  39.         break;
  40.         }
  41.     }
  42.     return 1;
  43.  
  44. }
  45.  
  46.  
  47.  
  48.  int main() {
  49.  
  50. char s[]="Pochi sforzan quel gambo di vite";
  51. int n;
  52. n=strlen(s);
  53.  
  54. int a;
  55. a=pangramma(n,s);
  56.  
  57. printf("%d",a);
  58.  
  59. }