|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Feb 2005
Messaggi: 6
|
programma c
ragazzi sono abbastanza disperato: ho l'esame di programmazione tra una settimana e non riesco a fare il programma: non è che potreste aiutarmi? se si mandatemi una mail che vi rispedisco il programma.grazie mille
|
|
|
|
|
|
#2 |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16212
|
Se ci stai chiedendo di aiutarti a fare il programma: volentieri, ma perché non posti in questa sezione le parti che non riesci a fare, in modo che chiunque passi di qui possa dare il suo contributo?
Se invece ci stai chiedendo di fare il programma al tuo posto: la risposta, almeno da parte mia, è NO.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Feb 2005
Messaggi: 6
|
la mia preoccupazione è che se mille casi il prof mi sgama mi posso scordare anche dell'esame. perquesto preferisco che la cosa resti alquanto privata.
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Nessun professore si incazza se chiedi consiglio ad altri per fare un buon programma _tuo_. Potrebbe incazzarsi se fai fare ad _altri_ il programma (e sta sicuro che all'orale se ne accorge
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#5 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
quoto appieno chi ti ha risposto: così non otterrai nulla: quante email hai ricevuto finora? immagino la risposta
e poi il tuo professore conosce il tuo nick su hwupgrade? sa che tu vieni su questo forum e ti chiami 84roller84? lo ritengo difficile... forza spiega la traccia a zio 7 e dicci cosa non sai fare |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Apr 2004
Messaggi: 984
|
Re: programma c
Quote:
C,Pascal,Fortran,Prolog,Lisp,ASMx86. P.S. hai paura che qualche "amico" ti può scopiazzare la soluzione .. ? ![]() Ciao. |
|
|
|
|
|
|
#7 |
|
Junior Member
Iscritto dal: Feb 2005
Messaggi: 6
|
variante dell’algoritmo di ricerca binaria che fa uso di numeri casuali. L’algoritmo, da implementare con tecnica ricorsiva, è una variante della versione standard, in cui l’indice dell’elemento da confrontare non è l’elemento di indice mediano della porzione sotto esame, ma è un indice generato a caso tra quelli che definiscono la porzione in esame; per esempio se la porzione è individuata dal primo indice =10 e dall’ultimo indice = 20, piuttosto che l’elemento di indice mediano (=15), si genera a caso un indice in (10,11,12,..,19,20) e si considera l’elemento di quell’indice nel confronto con la chiave e come elemento di partizione della porzione nelle due successive porzioni. Usare la function rand(), il cui prototipo è in <stdlib.h>, per generare a ogni passo l’indice dell’elemento da considerare a quel passo.
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). praticamente non so come inserire l'indice generato a caso. di solito l'ho sempre fatto partire dall'indice mediano |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
|
semplicemente mettendo
Codice:
mediano = rand()%N; ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
#9 |
|
Junior Member
Iscritto dal: Feb 2005
Messaggi: 6
|
no perdonami ma non ho capito
dovrei inserire tra gli int anche "mediano"? io lo faccio scaturire dalla somma del primo eultimo indice dell'array diviso due. come dici tu, invece, dovrei già averlo tra le variabili. ho capito una cosa per un'altra? |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
|
se fai la divisione come indice (inf + sup) /2 utilizzi il metodo classico invece tu usi in rand il punto.
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
#11 |
|
Junior Member
Iscritto dal: Feb 2005
Messaggi: 6
|
quindi come dici tu dovrei sostituire al mio calcolo la tua stringa?
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
|
Codice:
#define N 5
int binary (int arr[], int k){
int inf, sup, center;
bool flag;
inf = 0;
sup = N;
flag = true;
srand (time(NULL));
while (inf<=sup && flag){
do{
center = rand ()%N+inf;
}while (center > N-1);
if (arr[center]== k) flag = true;
else
if (arr[center]<k) inf = center +1;
else sup = center -1;
}
if (flag == 0) return center;
else return -1;
}
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
#13 |
|
Junior Member
Iscritto dal: Feb 2005
Messaggi: 6
|
ti ringrazio moltissimo ma...cos' bool flag?
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
|
è un flag che ti identifica se hai trovato il valore nella posizione
Codice:
arr[center] == k
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
#15 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
non può saperlo; il tipo bool non esiste nell'ANSI C.
84roller84, al posto di bool mettici semplicemente char. ciao |
|
|
|
|
|
#16 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
e dimenticavo: al posto di "true" mettici 1 e al posto di "false" 0.
ariciao |
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
|
Migliorare il codice
Per rendere il codice un pò più performante puoi togliere totalmente la variabile flag e cambiare il codice in questo modo:
Codice:
#define N 5
int binary (int arr[], int k){
int inf, sup, center;
bool flag;
inf = 0;
sup = N;
srand (time(NULL));
while (inf<=sup && flag){
do{
center = rand ()%N+inf;
}while (center > N-1);
if (arr[center]== k) break;
else
if (arr[center]<k) inf = center +1;
else sup = center -1;
}
if (arr[center]== k)return center;
else return -1;
}
Ultima modifica di tglman : 20-02-2005 alle 01:20. |
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: May 2000
Messaggi: 1459
|
inoltre credo (dato l'orario
if (arr[center]== k) flag = 0; |
|
|
|
|
|
#19 | |
|
Senior Member
Iscritto dal: Apr 2004
Messaggi: 984
|
Quote:
dati due indici interi positivi i e j con i <= j , l'elemento mediano è k = i + ( j - i)/2, cioè se i = 10 e j = 20 , k = 15. è corretto ? Allora se devo "pescare" un elemento casuale frà i e j compresi, questo sarà k = i + rand( )%(j - i + 1) ; Piccolo prog. di prova x la funzione rand() : # include <stdio.h> # include <stdlib.h> int main() {int i,j,k; i=10; j=20; k=i+rand()%(j-i+1); printf("i=%d, j=%d, k=%d \n",i,j,k); return 0; } |
|
|
|
|
|
|
#20 | |
|
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
|
Re: Migliorare il codice
Quote:
devi togliere dal ciclo principale la variabile flag se no può anche non entrare. Non so se è + performante ... alla fine io leggiamo sempre una volta qualcosa ... al massimo per rendere + veloce possiamo far si che il flag sia contenuto in un registro della CPU forse così miglioriamo altrimenti stesso tempo ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:10.




















