Anteprima
Vedrai una selezione di 4 pagine su 12
Svolgimento di temi d’esame di Elementi di informatica e programmazione (domande due) Pag. 1 Svolgimento di temi d’esame di Elementi di informatica e programmazione (domande due) Pag. 2
Anteprima di 4 pagg. su 12.
Scarica il documento per vederlo tutto.
Svolgimento di temi d’esame di Elementi di informatica e programmazione (domande due) Pag. 6
Anteprima di 4 pagg. su 12.
Scarica il documento per vederlo tutto.
Svolgimento di temi d’esame di Elementi di informatica e programmazione (domande due) Pag. 11
1 su 12
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Inserire un numero intero positivo in base 4: 21

Il numero 21 corrisponde a 9 in base 10

Inserire un numero intero positivo: 0

Hai terminato l'inserimento. Grazie

Esecuzione: #include <stdio.h>

#include <string.h>

#include <ctype.h>

// Funzione per controllare se la stringa è un numero valido in base 4

int isBase4(char numero[]) {

for (int i = 0; numero[i] != '\0'; i++) {

if (numero[i] < '0' || numero[i] > '3') {

return 0; // Non è cifra valida in base 4

}

}

return 1; // Tutte le cifre sono valide

}

// Funzione per convertire da base 4 a base 10

int base4ToBase10(char numero[]) { ff

int base10 = 0;

for (int i = 0; numero[i] != '\0'; i++) {

base10 = base10 * 4 + (numero[i] - '0');

}

return base10;

}

int main() {

char input[100];

while (1) {

printf("Inserire un numero intero positivo in base 4: ");

scanf("%s", input);

if (strcmp(input, "0") == 0) {

printf("Hai terminato l'inserimento. Grazie\n");

break;

}

if (!isBase4(input)) {

printf("Errore: il numero inserito non è valido in base 4. Riprova.\n");

continue;

}

int decimale = base4ToBase10(input);

printf("Il numero %s corrisponde a %d in base 10\n", input, decimale);

}

return 0;

}

Domanda 2( T.E 19 luglio 2024)

Si consideri il gioco dello SCRABBLE, in cui i giocatori formano delle parole usando delle piccole

tessere, ognuna contenente una lettera e un valore.

I valori di queste variano da lettera a lettera sulla base della rarità della lettera stessa:

• per le lettere A, E, I, L, N, O, R, S, T, U il valore è 10;

• per le lettere D, G il valore è 20;

• per le lettere B, C, M, P il valore è 30;

• per le lettere F, H, V, W, Y il valore è 40;

• per la lettera K il valore è 50;

• per le lettere J, X il valore è 80;

• per le lettere Q, Z il valore è 100.

Scrivere un programma in C che calcola il valore di una parola sommando il valore associato alle

sue lettere.

Esempio:

Scrivi una parola: zucca

Valore della parola: 180

Esecuzione: #include <stdio.h>

#include <string.h>

// Funzione per calcolare il punteggio di una lettera

int calcolaPunteggio(char lettera) {

// Convertire la lettera in maiuscolo per uniformità

lettera = (lettera >= 'a' && lettera <= 'z') ? lettera - 'a' + 'A' : lettera;

switch(lettera) {

case 'A': case 'E': case 'I': case 'L': case 'N': case 'O': case 'R': case 'S': case 'T': case 'U':

return 10;

case 'D': case 'G':

return 20;

case 'B': case 'C': case 'M': case 'P':

return 30;

case 'F': case 'H': case 'V': case 'W': case 'Y':

return 40;

case 'K':

return 50;

case 'J': case 'X':

return 80;

case 'Q': case 'Z':

return 100;

default:

return 0; // In caso di carattere non valido

}

}

int main() {

char parola[100];

int punteggioTotale = 0;

// Chiedere all'utente di inserire una parola

printf("Scrivi una parola: ");

scanf("%s", parola);

// Calcolare il punteggio totale della parola

for (int i = 0; parola[i] != '\0'; i++) {

punteggioTotale += calcolaPunteggio(parola[i]);

}

// Stampare il risultato

printf("Valore della parola: %d\n", punteggioTotale);

return 0;

}

Domanda 2(T.E 28 giugno 2024)

Scrivere un programma in linguaggio C che:

1) crea una matrice A di 4 righe e 3 colonne, i cui elementi sono numeri interi minori di 10

generati casualmente attraverso la funzione rand();

2) 3) 4) crea un vettore B di 3 elementi interi con i seguenti valori: 2, 4, 3;

calcola il vettore C come risultato del prodotto fra la matrice A e il vettore B;

se esiste, stampa la somma degli elementi pari del vettore C;

5) se non esistono elementi pari nel vettore C, stampa: “nel vettore prodotto non

sono presenti elementi pari”

Esempio:

matrice:

6 1 2

3 5 7

2 9 1

3 8 2

vettore:

2 4 3

vettore prodotto:

22 47 43 44

Stampa (se esistono elementi pari come nell’esempio):

la somma degli elementi pari del vettore prodotto: 66

Stampa (se non esistono elementi pari):

nel vettore prodotto non sono presenti elementi pari

Esecuzione: #include <stdio.h>

#include <stdlib.h>

#include <time.h>

#de ne ROWS 4

#de ne COLS 3

int main() {

int A[ROWS][COLS]; // Matrice 4x3

int B[COLS] = {2, 4, 3}; // Vettore B con 3 elementi

int C[ROWS]; // Vettore C che conterrà il risultato del prodotto

// Inizializzazione del generatore di numeri casuali

srand(time(NULL));

// Generazione casuale della matrice A (numeri interi minori di 10)

printf("Matrice A:\n");

for (int i = 0; i < ROWS; i++) {

for (int j = 0; j < COLS; j++) {

A[i][j] = rand() % 10; // Numero casuale tra 0 e 9

printf("%d ", A[i][j]);

}

printf("\n");

}

// Calcolo del vettore C (prodotto matrice A per vettore B)

for (int i = 0; i < ROWS; i++) {

C[i] = 0;

for (int j = 0; j < COLS; j++) {

C[i] += A[i][j] * B[j];

}

}

// Stampa del vettore C

printf("Vettore prodotto C:\n");

for (int i = 0; i < ROWS; i++) {

printf("%d ", C[i]);

}

printf("\n");

// Calcolo della somma degli elementi pari nel vettore C

int sommaPari = 0;

int trovatoPari = 0; // Flag per veri care se ci sono numeri pari

for (int i = 0; i < ROWS; i++) {

if (C[i] % 2 == 0) {

sommaPari += C[i];

trovatoPari = 1;

}

}

// Stampa della somma degli elementi pari o messaggio di errore

if (trovatoPari) {

printf("La somma degli elementi pari del vettore prodotto: %d\n", sommaPari);

} else {

printf("Nel vettore prodotto non sono presenti elementi pari\n");

}

return 0;

}

fi

fi fi

Domanda 2( T.E 13 giugno 2024)

Scrivere un programma C che:

• richiede a un utente di inserire un numero composto da 4 cifre pari;

• inserisce le cifre del numero in un vettore di 4 elementi;

• ordina i valori contenuti negli elementi del vettore dal più piccolo al più grande;

• stampa i valori contenuti negli elementi del vettore nel nuovo ordine.

Esempio:

6824

Inserire un numero composto da 4 cifre pari:

Stampa:

2468

Esecuzione: #include <stdio.h>

int main() {

int numero;

int cifre[4];

// Chiedi all'utente di inserire un numero di 4 cifre pari

printf("Inserire un numero composto da 4 cifre pari: ");

scanf("%d", &numero);

// Controlla che il numero sia composto da 4 cifre pari

if (numero < 1000 || numero > 9999) {

printf("Errore: il numero deve essere composto da 4 cifre.\n");

return 1;

}

// Estrai le cifre del numero e le inserisci nel vettore

for (int i = 3; i >= 0; i--) {

cifre[i] = numero % 10; // Estrai l'ultima cifra

numero /= 10; // Rimuovi l'ultima cifra

}

// Ordina il vettore (usando un semplice algoritmo di ordinamento, ad esempio il Bubble Sort)

for (int i = 0; i < 3; i++) {

for (int j = i + 1; j < 4; j++) {

if (cifre[i] > cifre[j]) {

// Scambia le cifre

int temp = cifre[i];

cifre[i] = cifre[j];

cifre[j] = temp;

}

}

}

// Stampa il vettore ordinato

printf("Stampa:\n");

for (int i = 0; i < 4; i++) {

printf("%d", cifre[i]);

}

printf("\n");

return 0;

}

Domanda 2(T.E 6 febbraio 2024)

Scrivere un programma C:

1) colonne;

2) colonna;

acquisisce da tastiera 100 numeri interi e li inserisce in una matrice di 10 righe e 10

somma i numeri inseriti nelle posizioni della matrice aventi lo stesso indice di riga e di

3) stampa a video la somma di cui al punto (2) solo se questa risulta essere maggiore di 50.

Esecuzione: #include <stdio.h>

int main() {

int matrice[10][10];

int somma = 0;

// Acquisizione dei numeri e inserimento nella matrice

printf("Inserisci 100 numeri interi (10 righe e 10 colonne):\n");

for (int i = 0; i < 10; i++) {

for (int j = 0; j < 10; j++) {

printf("Numero in posizione [%d][%d]: ", i, j);

scanf("%d", &matrice[i][j]);

}

}

// Somma degli elementi sulla diagonale principale (indici i == j)

for (int i = 0; i < 10; i++) {

somma += matrice[i][i]; // Somma gli elementi della diagonale principale

}

// Stampa della somma, se maggiore di 50

if (somma > 50) {

printf("La somma degli elementi sulla diagonale principale è: %d\n", somma);

} else {

printf("La somma degli elementi sulla diagonale principale non è maggiore di 50.\n");

}

return 0;

}

Domanda 2( T.E 18 gennaio 2024)

Scrivere un programma C che:

1) Richiede all’utente di inserire una successione di 5 numeri, interi, diversi, multipli di 7, in

caso di inserimento di un numero non multiplo di 7, il programma deve segnalare l’errore e

permettere l’inserimento di un valore corretto;

Stampa (a video) la somma dei valori pari inseriti;

Stampa (a video) la somma dei valori dispari inseriti;

Stampa (a video) la somma maggiore.

2) 3) 4) Esempio:

Inserire una successione di 5 numeri diversi multipli di 7:

14 35 28 77 56

Somma valori pari: 98

Somma valori dispari: 112

Stampa (se esiste come nell’esempio):

la somma maggiore è 112

Stampa (se le somme sono uguali):

le due somme sono uguali

Esecuzione: #include <stdio.h>

int main() {

int numeri[5];

int sommaPari = 0, sommaDispari = 0;

// Acquisizione dei 5 numeri multipli di 7

printf("Inserire una successione di 5 numeri diversi multipli di 7:\n");

for (int i = 0; i < 5; i++) {

int valido = 0; // Flag per veri care che il numero sia valido

while (!valido) {

printf("Inserisci il numero %d: ", i + 1);

scanf("%d", &numeri[i]);

// Veri ca se il numero è un multiplo di 7

if (numeri[i] % 7 == 0) {

valido = 1; // Il numero è valido

} else {

printf("Errore: il numero inserito non è un multiplo di 7. Riprova.\n");

}

}

}

// Calcolo della somma dei numeri pari e dispari

for (int i = 0; i < 5; i++) {

if (numeri[i] % 2 == 0) {

sommaPari += numeri[i];

} else {

sommaDispari += numeri[i];

}

}

Dettagli
Publisher
A.A. 2023-2024
12 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher chiaragualdi di informazioni apprese con la frequenza delle lezioni di Elementi di informatica e programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Brescia o del prof Fogli Daniela.