Partenopeo.net - Forum Calcio Napoli

Off-topic => Techland => Topic aperto da: diciassette - 08 Febbraio, 2011, 00:01:37 am

Titolo: programmazione I
Inserito da: diciassette - 08 Febbraio, 2011, 00:01:37 am
ragazzi chiedo aiuto a voi, mio fratello deve fare un programma per questo esame e sta perdendo la testa  :look:
c'è qualcuno di buon animo che mi dice come farlo? (se lo fa anche, non si offende  :look:)
chi è interessato mi mandi un mp che gli invio il progetto.
Titolo: Re:programmazione I
Inserito da: djcarmine - 08 Febbraio, 2011, 00:16:16 am
ragazzi chiedo aiuto a voi, mio fratello deve fare un programma per questo esame e sta perdendo la testa  :look:
c'è qualcuno di buon animo che mi dice come farlo? (se lo fa anche, non si offende  :look:)
chi è interessato mi mandi un mp che gli invio il progetto.

io lo so fare ma non te lo dico
Titolo: Re:programmazione I
Inserito da: diciassette - 08 Febbraio, 2011, 02:04:09 am
io lo so fare ma non te lo dico
domani ti invio un mp  :sisi:
Titolo: Re:programmazione I
Inserito da: signor groucho - 08 Febbraio, 2011, 09:11:07 am
Io lo sapevo fare :peppe:
Titolo: Re:programmazione I
Inserito da: Xandor88 - 08 Febbraio, 2011, 10:16:14 am
Chiedi a tatore l'augello e long sky, stann semp a programmà :sisi:
Titolo: Re:programmazione I
Inserito da: mk89 - 08 Febbraio, 2011, 10:17:41 am
ero partito con buoni presupposti quando ho letto "programma", ma poi ho letto PROGETTO.

'zz itt o sang!
Titolo: Re:programmazione I
Inserito da: Lovercraft - 08 Febbraio, 2011, 10:27:39 am
ma posta qua il progetto e vediamo se esce qualcuno.
Titolo: Re:programmazione I
Inserito da: diciassette - 08 Febbraio, 2011, 11:23:49 am
 :ok:

Algoritmi per la cifratura/decifratura di un messaggio. Sviluppare una coppia di
algoritmi, implementati come function, per crittografare e decrittografare un
messaggio. L’algoritmo si basa sulla cosiddetta cifratura polialfabetica, che consiste
nel trasformare il messaggio in un testo di lunghezza uguale a quella del messaggio,
detto il “testo cifrato”, utilizzando un altro testo (prefissato), detto “il testo delle
lettere chiave”. Ogni lettera del messaggio viene trasformate in una lettera del testo
cifrato nel seguente modo: la lettera del messaggio viene sostituita dalla lettera
dell’alfabeto successiva, se la corrispondente lettera chiave (nel testo delle lettere
chiave) è B, da quella due volte successiva se la lettera chiave è C, da quella 3 volte
successiva se la lettera chiave è D e così via; se la lettera chiave è A, la lettera del
messaggio non viene modificata. L’alfabeto deve essere considerato come circolare,
nel senso che la lettera successiva alla lettera Z è la lettera A. Per esempio, se il
messaggio è THEPRESIDENT allora se il testo delle parole chiave è
CODECODECODE allora il messaggio cifrato è VVHTTSVMFSQX; si osservi che
in generale il testo delle lettere chiave si ottiene a partire da una parola chiave
ripetuta più volte (CODE nel caso in esame). La corrispondenza: lettera del
messaggio - lettera del testo cifrato - lettera chiave è evidente scrivendo i tre testi nel
seguente modo (alfabeto:ABCDEFGHIJKLMNOPQRSTYVWXYZ)
chiave C |O|D|E|C|O|D|E |C |O |D| E|
messaggio T |H|E|P|R|E|S| I | D |E |N| T|
testo cifrato V |V|H|T|T|S|V|M| F |S |Q| X|
Il main legge da tastiera il messaggio da crittografare (l’equivalente di
THEPRESIDENT nell’esempio), legge da tastiera la parola chiave (l’equivalente
di CODE nell’esempio; osservate che non è necessario leggere tutto il testo delle
parole chiavi, perché questo può essere ottenuto a partire dalla parola chiave),
chiama la function di cifratura (passando come parametro il messaggio e la
parola chiave), che restituisce il teso cifrato, visualizza il testo cifrato, chiama la
function di decifratura, passando come parametro il testo cifrato e la parola
chiave, visualizza il messaggio decifrato, che deve coincidere con il messaggio di
partenza. Usare solo lettere maiuscole e non usare la spaziatura. Usare le stringhe
per rappresentare tutti i tipi di testo e le function in string (serve solo la
strlen). E’ utile sapere che in C, è possibile sommare “sommare i caratteri”
sfruttando il fatto che il codice ASCII rappresenta i caratteri come interi e che a
lettere consecutive corrispondono interi consecutivi (consiglio: determinate qual è
la rappresentazione ASCII di A e poi “sottraetela” dalla rappresentazione di ogni
lettera per sapere qual è la “posizione” di ogni lettera nell’alfabeto.). Fare una
versione alternativa del main, in cui la parola chiave è una 5-stringa generata a
caso, usando la function rand(), il cui prototipo è in <stdlib.h>, per
generare gli interi casuali. Si ricorda che, se numero_casuale è dichiarata di
tipo int, allora la chiamata numero_casuale=rand()%(n+1); genera un
numero casuale intero (distribuzione uniforme) nell’insieme (0,1,2,..n). Usare
sempre la srand() per rendere automatica la scelta iniziale del seed della
sequenza di numeri casuali. Nella Relazione si deve riportare l’analisi della
complessità di tempo dell’algoritmo (operazione dominante: confronto)
Titolo: Re:programmazione I
Inserito da: signor groucho - 08 Febbraio, 2011, 11:25:47 am
Il mio esame di Programmazione I fu molto più difficile  :nono:
Titolo: Re:programmazione I
Inserito da: diciassette - 08 Febbraio, 2011, 11:34:00 am
Il mio esame di Programmazione I fu molto più difficile  :nono:
ok fallo  :look:
Titolo: Re:programmazione I
Inserito da: mk89 - 08 Febbraio, 2011, 11:34:47 am
Hint:

L'unica difficoltà sta nel dover gestire il fatto che una lettera T abbia come chiave qualcosa che le faccia superare Z.

A = 65 e che Z = 90.
T = 84.
Se la chiave per T è ... che so...M, che è 77, se fai 77 - 65 = 12.
84 + 12 però fa 96, il che va oltre il limite.

Usa l'operazione MODULO per ottenere un effetto di "circolarità". Esempio: 96 % 90 = 6, ovvero 65+6=F.
Se provi a fare T + 12 infatti ti trovi proprio con F.
Titolo: Re:programmazione I
Inserito da: signor groucho - 08 Febbraio, 2011, 11:39:17 am
ok fallo  :look:
no, hai simulato  :look:


Comunque davvero, io feci un esame di Programmazione I basato sulla programmazione ad oggetti in C++, dovevamo creare le classi e risolvere un problema molto più articolato tramite alcuni algoritmi. Non ricordo quasi niente perché non amo questo settore dei miei studi e perché è passato tanto tempo.
Titolo: Re:programmazione I
Inserito da: djcarmine - 08 Febbraio, 2011, 16:32:49 pm
devi fare prima di tutto una funzione che prende la parola chiave e la "appende" in una stringa fino ad ottenere una stringa lunga quanto la parola da codificare/decodificare

se DIM è la dimensione della parola e DIMEKEY quella della parola chiave, devi creare l'array code[dim] basta fare un ciclo assegnando

for (register int i = 0 ; i < DIM ; i++)
{
code = key[(DIM%DIMKEY) + i];
}

na cos e chest, ora non mi va di spremermi :look:

il resto è semplice
Titolo: Re:programmazione I
Inserito da: diciassette - 08 Febbraio, 2011, 16:51:47 pm
quando torna dall'allenamento gli faccio leggere il tutto, se c'è bisogno di altro ve lo chiedo