|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2001
Città: Torino
Messaggi: 3092
|
DOvrei fare questi 2 programmi in C.. mi aiutate?
2. Selection sort
Scrivere un programma che legge un vettore x[] di al piu` MAXDIM=100 numeri interi da tastiera e lo ordina. L'algoritmo di ordinamento da implementare e` il Selection Sort; questo algoritmo cerca iterativamente il minimo elemento nella parte non ordinata del vettore e lo scambia con l'elemento in prima posizione della stessa parte. Esempio. Sia dato il vettore x[]={5,3,4,9,2}. L'algoritmo lo ordina come segue. Iter. 1 5 3 9 4 2 => 2 3 9 4 5 Iter. 2 2 3 9 4 5 => 2 3 9 4 5 Iter. 3 2 3 9 4 5 => 2 3 4 9 5 Iter. 4 2 3 4 9 5 => 2 3 4 5 9 (l'iterazione 5 e` superflua) Definire le funzioni void ordina(int a[], int limite): ordina le prime limite posizioni (da 0 a limite-1) del vettore a[]. int minimo(int a[], int start, int end): cerca il minimo elemento di a[] tra quelli nelle posizioni da start a end-1 e ritorna la posizione di questo elemento. void scambia(int a[], int i, int j): scambia gli elementi in posizione i e j nel vettore a[]. La funzione ordina() richiama correttamente e iterativamente la minimo() e la scambia(). Il programma deve presentare un menu con tre opzioni: Lettura del vettore (dimensione e elementi). Ordinamento. Uscita. L'opzione 2 causa, in sequenza, la stampa del vettore non ordinato, il suo ordinamento e la stampa del vettore ordinato. 3. Cerca e cancella Scrivere un programma che permette di cercare la prima occorrenza di una sottostringa p[] all'interno di un'altra stringa q[], e creare una nuova stringa s[] corrispondente a una copia di q[] dalla quale sia stata cancellata p[]. Il programma deve chiedere in sequenza q e p. Se p non e` una sottostringa di q il programma lo segnala, altrimenti crea s come richiesto e la stampa. Si assuma che tutte le stringhe abbiano dimensione massima MAXSTR=128. Esempio di elaborazione. Introduci la stringa: topolino Introduci la sottostringa da cancellare: lin Cancellando lin da topolino si ottiene topoo oppure Introduci la stringa: topolino Introduci la sottostringa: pippo Errore: pippo non e` sottostringa di topolino. Definire il tipo Bool e le costanti TRUE e FALSE come visto a lezione. Definire le seguenti funzioni. Bool cerca_e_cancella(char p[], char q[], char s[]): cerca q[] in p[]; se la trova genera s[] come da specifiche, e ritorna TRUE; se p[] non e` sottostringa di q[] ritorna FALSE. void copia(char s[], char t[], int k, int n): copia s[] in t[], saltando i caratteri di s[] nelle posizioni da k a n (incluse). La funzione deve essere "autonoma", cioe` controllare la coerenza di k e n, e non modificare t se gli estremi specificati non sono validi (es: k<n, oppure n corrisponde ad una posizione non appartenente a s,...). |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2001
Città: Torino
Messaggi: 3092
|
help..
|
|
|
|
|
|
#3 |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Sono due esercizi abbastanza classici, che dovresti essere in grado di risolvere da solo.
Casomai, se incontri difficoltà, posta il codice che dà problemi, e ti aiutiamo a capire quali sono i problemi e come si risolvono.
__________________
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 |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2001
Città: Torino
Messaggi: 3092
|
Il fatto è che li ho postati perchè devo consegnarli di fretta e sono indietro con lo studio(sto studiando per altri 2 esami).. mi potete aiutare??
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2001
Città: Torino
Messaggi: 3092
|
Scusate.. il secondo lo riesco a fare.. perchè non ricordavo di averlo fatto per metà a laboratorio.. solo per il terzo allora ho bisogno di una mano..
3. Cerca e cancella Scrivere un programma che permette di cercare la prima occorrenza di una sottostringa p[] all'interno di un'altra stringa q[], e creare una nuova stringa s[] corrispondente a una copia di q[] dalla quale sia stata cancellata p[]. Il programma deve chiedere in sequenza q e p. Se p non e` una sottostringa di q il programma lo segnala, altrimenti crea s come richiesto e la stampa. Si assuma che tutte le stringhe abbiano dimensione massima MAXSTR=128. Esempio di elaborazione. Introduci la stringa: topolino Introduci la sottostringa da cancellare: lin Cancellando lin da topolino si ottiene topoo oppure Introduci la stringa: topolino Introduci la sottostringa: pippo Errore: pippo non e` sottostringa di topolino. Definire il tipo Bool e le costanti TRUE e FALSE come visto a lezione. Definire le seguenti funzioni. Bool cerca_e_cancella(char p[], char q[], char s[]): cerca q[] in p[]; se la trova genera s[] come da specifiche, e ritorna TRUE; se p[] non e` sottostringa di q[] ritorna FALSE. void copia(char s[], char t[], int k, int n): copia s[] in t[], saltando i caratteri di s[] nelle posizioni da k a n (incluse). La funzione deve essere "autonoma", cioe` controllare la coerenza di k e n, e non modificare t se gli estremi specificati non sono validi (es: k<n, oppure n corrisponde ad una posizione non appartenente a s,...). |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Dai su comincia... Per la prima funzione basta un for con dentro un while (in teoria basta anche con un solo for)...
Il for scorre la stringa...quando trovi la prima lettera di p, vai nel while e fino a quando le lettere di p sono uguali a quelle di q... Se arrivi alal fine p richiami copia... |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 16053
|
lol, ma questi programmi li facevo in terza superiore
mica adesso con pile, code, liste e tutto il popo di roba
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 2001
Città: Torino
Messaggi: 3092
|
datemi un'ottima guida per poter arrivare anche io a parlare di liste, code etc..
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: May 2004
Città: Paola(cs)
Messaggi: 3329
|
Quote:
__________________
Il pinguino paga con ![]() iPAD MINI 64GB WIFI+4G iMAC 2,93GHZ 2009 iPhone 5 32 gb MacBook Pro 2012 2,9ghz |
|
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Nov 2001
Città: Torino
Messaggi: 3092
|
Quote:
Mi consigli una buona guida? |
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: May 2004
Città: Paola(cs)
Messaggi: 3329
|
Quote:
2) Il secondo esercizio ora mi secca che ho mal di testa (Come al solito) senno' mi ci mettevo io a farlo
__________________
Il pinguino paga con ![]() iPAD MINI 64GB WIFI+4G iMAC 2,93GHZ 2009 iPhone 5 32 gb MacBook Pro 2012 2,9ghz |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:59.




















