Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Formattazione del testo
DELETE FROM esiti WHERE data LIKE '2010%'
• visualizza gli insegnamenti (ID) per cui non sono stati inseriti esiti (nessuna tupla nella relazione esiti);
SELECT A.ID FROM (SELECT ID, COUNT(*) as nesiti FROM ESITI WHERE isNULL (esito) GROUP BY ID) A JOIN (SELECT ID, COUNT(*) as tot FROM esiti GROUP BY ID) B WHERE nesiti = tot GROUP BY A.ID
• traduce la seguente espressione dell'algebra relazionale: operazione proiezione degli attributi e applicata al relazione ottenuta dal prodotto Matricola Descrizione cartesiano tra la relazione e la relazione Insegnamento Esiti.
SELECT matricola, descrizione FROM insegnamento, esiti
Greta P. 41
GENNAIO 2020 INFORMATICA GENERALE, 6 CFU PYTHON + SQL
Esame Informatica Generale del 15/04/2019
Quesito 5 (punteggio 4)
Dati i seguenti schemi di relazione con le rispettive istanze:
Aziende(PIVA,Denominazione)
PIVA Denominazione
111 Pirelli
222 Zucchetti
Consulenti(PIVA,CF, dataAss, Ret)
PIVA CF dataAss Ret
111 AAAAAA 22-11-2009 1000
222 AAAAAA 22-11-2009 2000
B.PIVA | B.CF | B.dataAss | B.Ret |
---|---|---|---|
AAAAAA | 3000 | 22/11/09 | 111 |
AAAAAA | 22/11/09 | 1000 | BBBBBB |
5000 | 28/10/08 | 222 | AAAAAA |
22/11/09 | 2000 | CCCCCC | 30/12/07 |
222 | BBBBBB | 28/10/09 | 5000 |
CCCCCC | 2000 | 28/10/09 | 111 |
CCCCC | 30/12/07 | 2000222 | CCCCC |
28/10/09 | 2000 | AAAAAA | 3000 |
22/11/09 | 111 | AAAAAA | 22/11/09 |
1000 | BBBBBB | 5000 | 28/10/08 |
111 | AAAAAA | 22/11/09 | 2000 |
CCCCCC | 30/12/07 | 222 | BBBBBB |
28/10/09 | 5000 | CCCCCC | 2000 |
30/12/07 | 222 | CCCCC | 28/10/09 |
2000 | CCCCCC | 28/10/09 | 111 |
CCCCC | 30/12/07 | 2000222 | CCCCC |
28/10/09 | 2000 | AAAAAA | 3000 |
22/11/09 | 111 | AAAAAA | 22/11/09 |
1000 | BBBBBB | 5000 | 28/10/08 |
111 | AAAAAA | 22/11/09 | 2000 |
CCCCCC | 30/12/07 | 222 | BBBBBB |
28/10/09 | 5000 | CCCCCC | 2000 |
30/12/07 | 222 | CCCCC | 28/10/09 |
2000 | CCCCCC | 28/10/09 | 111 |
22/11/09 2000CCCCCC 2000 28/10/09 222 AAAAAA 22/11/09 2000AAAAAA 3000 22/11/09 222 BBBBBB 28/10/09 5000BBBBBB 5000 28/10/08 222 BBBBBB 28/10/09 5000CCCCCC 2000 30/12/07 222 BBBBBB 28/10/09 5000CCCCCC 2000 28/10/09 222 BBBBBB 28/10/09 5000AAAAAA 3000 22/11/09 111 CCCCCC 30/12/07 2000Greta P. 42 GENNAIO 2020 INFORMATICA GENERALE, 6 CFU PYTHON + SQL BBBBBB 5000 28/10/08 111 CCCCCC 30/12/07 2000CCCCCC 2000 30/12/07 111 CCCCCC 30/12/07 2000CCCCCC 2000 28/10/09 111 CCCCCC 30/12/07 2000AAAAAA 3000 22/11/09 222 CCCCCC 28/10/09 2000BBBBBB 5000 28/10/08 222 CCCCCC 28/10/09 2000CCCCCC 2000 30/12/07 222 CCCCCC 28/10/09 2000CCCCCC 2000 28/10/09 222 CCCCCC 28/10/09 2000C S10 36000 Esercizio 1 (9 punti) Descrivere un algoritmo codificato in linguaggio PYTHON che: • definisce la funzione con parametri: - se di tipo lista - b di tipo lista - d di tipo int; Per ogni posizione della lista se è diverso da tutti gli elementi della lista tra le k a, a[k] a posizioni e (escludendo la funzione deve
- scrivere nella lista Inoltrek k+d a[k]), a[k] b.la funzione deve scrivere attraverso l'istruzione return il numero di elementi della lista acopiati nella lista b.
- ATTENZIONE!!! d potrebbe essere un numero negativo.
- ATTENZIONE!!! Le posizioni oltre la dimensione della lista non vanno considerate.
- Ad esempio, se d ha valore -3 e la lista è il seguente:
- a2 3 2 1 4 2 1 3 0 8
- alla fine dell'esecuzione la lista conterrà:
- b2 3 1 4 3 0 8
- e return conterrà il valore 7.
- def sediversi (a, b, d):
- inseriti = 0
- for k in range (0, len(a)):
- if d < 0:
- fine = k
- if k+d < 0:
- inizio = 0
- else:
- inizio = k+d
- if d > 0:
- inizio = k
- if k+d > len(a):
- fine = len(a)
- else:
- fine = k+d
- conta = 0
- for i in range (inizio, fine):
- if a[k] == a [i]:
- conta = conta +1
- if conta == 0:
- Greta P. 43
- GENNAIO 2020 INFORMATICA GENERALE, 6 CFU PYTHON + SQL
- b.append(a[k])
- inseriti = inseriti +1
- return inseriti
- • nella funzione main
- XXIII. dichiarare una lista di nome di 100 e una lista di nome di 100x int y int;
- XXIV.
dichiarare due variabili e di tipo int
;
XXV. inserire un valore letto da file nella variabile h
;
XXVI. ripetere le seguenti operazioni che devono terminare quando, dopo l'esecuzione della funzione i vettori x
e y
contengono gli stessi valori:
- a. inserire (uno per ogni posizione) 100 valori letti da file nella lista
x
; - b. eseguire la funzione applicata alla lista e al valore diverso da
x
contenuto nella variabile inserendo il risultato nella lista e nella variabileh
;
ing = open('C:\Users\...\Desktop\ingresso.txt', 'r')
x = []
y = []
h = int
k = int
for i in range(0, 10):
x.append(int(ing.readline()))
while not (x == y):
h = len(x)
k = int(ing.readline())
h = sediversi(x, y, k)
ing.close
Esercizio 2 (4 punti)
Scrivere un algoritmo codificato in linguaggio PYTHON che definisce una variabile di nome a
di tipo e
e legge da file una sequenza di numeri interi che termina con il numero 0 che deve essere inteso dal test ed inserisce nella variabile
a:
- il valore 1 se nella sequenza è contenuto almeno numero pari e nessun numero negativo,
- il valore 2 se nella sequenza è contenuto almeno numero pari e almeno un numero negativo,
- il valore 0 altrimenti.
ing = open ('C:\Users\...\Desktop\ingresso.txt', 'r')
a = int
conta = 0
conta2 = 0
for i in ing:
i = int(i)
if i == 0:
break
if i%2 == 0:
conta = conta +1
if i < 0:
conta2= conta2 +1
if conta > 0 and conta2 == 0:
a = 1
elif conta > 0 and conta2 > 0:
a = 2
else:
a = 0
ing.close
Esercizio 3 (5 punti)
Il sistema informatico dell'università utilizza un database per gestire i voti conseguiti dagli studenti negli esami di profitto. Nel database sono presenti le seguenti tabelle:
Insegnamento (ID, CDS, Descrizione)
Esiti(Matricola, ID, Data, Esito)
dove nella relazione l'attributo è una chiave. Nella relazione gli attributi Insegnamento ID Esiti formano una chiave
l'attributo è chiave esterna per la Matricola, ID Data IDrelazione. Ogni tupla della relazione memorizza il risultato (Esito) nell'insegnamento. Esito conseguito nell'insegnamento (ID) dallo studente (Matricola) nella prova svolta nella data indicata dall'attributo. L'attributo ha valore se la prova non è ancora stata sostenuta oppure i numeri -1 (assente), -2 (ritirato), o un numero tra 0 e 31 che indica il voto conseguito dallo studente. Ovviamente un voto minore di 18 indica che la prova non è stata superata.
Scrivere l'istruzione SQL che:
- aggiunge alla relazione l'attributo di tipo Insegnamento Data Date;
ALTER TABLE insegnamento
ADD COLUMN (data date)
- per ogni insegnamento (ID) per cui è presente almeno una tupla nella relazione Esiti, visualizza l'attributo (ID) e il numero di prove superate;
SELECT ID, count(*) as superate
FROM esiti
WHERE esito >= 18
GROUP BY id
traduce la seguente espressione
dell'algebra relazionale: operazione selezione con predicato di selezione Esiti.Data='2018-03-24' AND Descrizione LIKE '%t%' applicata alla relazione ottenuta dal prodotto cartesiano tra la relazione eInsegnamento la relazione Esiti.SELECT * FROM insegnamento, esiti WHERE esiti.data = '2018-03-24' AND descrizione LIKE '%'Esame Informatica Generale del 11/02/2019 Quesito 5 (punteggio 4) Dati i seguenti schemi di relazione con le rispettive istanze: Aziende(PIVA,Denominazione) PIVA Denominazione 111 Pirelli 222 Zucchetti Greta P. 45 GENNAIO 2020 INFORMATICA GENERALE, 6 CFU PYTHON + SQL Consulenti (PIVA,CF, dataAss, Ret) PIVA CF dataAss Ret 111 AAAAAA 22-11-2009 1000 222 AAAAAA 22-11-2009 2000 222 BBBBBB 28-10-2009 5000 111 CCCCCC 30-12-2007 2000 222 CCCCCC 28-10-2009 2000 Scrivere la tabella con il risultato della seguente query scrivendo inoltre le tabelle intermedie che si ottengono dalle sottoquery e dalle operazioni di prodotto cartesiano, selezione eproiezione:
SELECT COUNT(*) AS C, SUM(B.K) AS S FROM (SELECT CF, COUNT(*) AS K FROM Consulenti GROUP BY CF, dataAss) A, (SELECT COUNT(*) AS K FROM Consulenti GROUP BY PIVA) B WHERE B.K = A.KTabella A:
CF | K | DataAss AAAAAA | 2 | 22/11/09 BBBBBB | 1 | 28/10/09 CCCCCC | 1 | 30/12/07 CCCCCC | 1 | 28/10/09Tabella B:
B.K | B.PIVA 111 | 2222Tabella risultato:
A.CF | A.K | A.DataAss | B.PIVA | B.K AAAAAA | 2 | 22/11/09 | 111 | 2 BBBBBB | 1 | 28/10/09 | 111 | 2 CCCCCC | 1 | 30/12/07 | 111 | 2 CCCCCC | 1 | 28/10/09 | 222 | 3 AAAAAA | 2 | 22/11/09 | 222 | 3 BBBBBB | 1 | 28/10/09 | 222 | 3 CCCCCC | 1 | 30/12/07 | 222 | 3 CCCCCC | 1 | 28/10/09 | 222 | 3 SC | 1 | 2 | - | -Esercizio 1 (9 punti) Descrivere un algoritmo codificato in linguaggio PYTHON che: - definisce la funzione con parametri: - a di tipo list - b di tipo list
def maxnext(a, b): for k in range(len(a)): if a[k] > max(a[k+1:]): b.append(k + a[k]) return bGreta P. 46 GENNAIO 2020 INFORMATICA GENERALE, 6 CFU PYTHON + SQL Si suppone i valori contenuti nella lista a siano numeri non negativi. Per ogni posizione k della lista se è maggiore di ogni valore della lista tra le posizioni e (le a, a[k] b k k+a[k] posizioni oltre la dimensione della lista non vanno considerate), la
funzione deve scrivere inil valore Inoltre la funzione, attraverso l’istruzione return,a[k] b[k]. deve indicarenumero di modifiche fatte alla lista a. Ad esempio, se la lista è il seguente:il a2 3 5 1 4 6 1 3 0 8e la lista contieneb1 5 2 -1 7 -6 -2 1 5 3Alla fine dell’elaborazione il contenuto lista a sarà:2 3 5 1 4 -6 1 3 0 3Il return conterrà il valore 2.
def maxnext (a, b):
conta2 = 0
for k in range (0, len(a)):
inizio = k
if k+ a[k]+1 > len(a):
fine = len(a)
else:
fine = k + a[k]+1
conta = 0
for i in range (inizio, fine):
if a[k] <= b[i]:
conta = conta+1
if conta == 0:
a[k] = b[k]
conta2 = conta2+1
return conta2
• nella funzione mainXXVII. dichiarare una lista di nome e una lista di nomex y;
XXVIII. una variabile di nome di tipok int;
XXIX. inserire (uno per ogni posizione) 100 valori letti da file nella l