PDA

Visualizza la versione completa : [C] mi date una mano a fare questi esercizi?


riderjean
24-03-2003, 16:35
devo fare questi es in c mi date una mano grazie a tutti

Esercizio 1
Scrivere un programma che chiede all'utente un intero n, quindi riempie un array di dimensione n con numeri reali (double) forniti dall'utente in modo ordinato decrescente, poi chiede all'utente un numero reale (double) da cercare. Infine scrivere una funzione ricorsiva che restituisce, se esiste, l'indice del numero da cercare all'interno dell'array e tale indice deve essere stampato.

Esercizio 2
Scrivere un programma che chiede all'utente un intero n, quindi riempie un array di dimensione n con numeri reali (double) forniti dall'utente, e stampa la somma degli elementi dell'array. La somma degli elementi deve essere determinata tramite una funzione ricorsiva costruita con la tecnica del divide et impera.

Esercizio 3
Dati due array di interi ordinati, A e B, scrivere una procedura che costruisce un nuovo array anch'esso ordinato che rappresenta la differenza dei due array in ingresso, A-B. Stampare il contenuto dell'array differenza. [Esempio: dati i due array <2, 4, 9, 10> e <1, 4, 6, 10, 11> l'array differenza è <2, 9>>].

l.golinelli
25-03-2003, 09:25
Magari prova a buttar giù qualcosa te, poi chiedi chiarimenti... ;)

ciofx
25-03-2003, 15:32
Se vuoi ti passo qualcosa della mia "infanzia"...

ma di certo non mi metto a farteli, anche perché dovresti imparare tu... non credi?


#include <dos.h>
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <malloc.h>
#include <stdlib.h>
#define STR_LEN 255
char *anno,*mese,*giorno;
unsigned int a;
short int m,g;
struct date d;
void data();
void nasc();
void main()
{
clrscr();
cout<<"\nL'Oroscopo di mago Ciof...";
cout<<"\n\n Please wait...";
delay(5000);
clrscr();
data();
nasc();
unsigned int orsc=(d.da_year-a+d.da_mon-m+d.da_day-g)%21;
gotoxy(1,12);
switch (orsc){
case 0: cout<<"La giornata si preannuncia brutta e priva di emozioni"; break;
case 1: cout<<"Oggi non si concluderanno affari positivi, attenzione ai piccoli incidenti"; break;
case 2: cout<<"Una meravigliosa e radiante giornata su tutti i campi, sopratutto in amore"; break;
case 3: cout<<"Tempeste di guai si abbatteranno su di voi, chiudetevi in casa"; break;
case 4: cout<<"Giornata tranquilla senza particolari imprevisti"; break;
case 5: cout<<"Oggi nessuno s'interessera a voi, state tranquilli per i fatti vostri"; break;
case 6: cout<<"Una giornata dedicata alla fortuna ed al gioco!"; break;
case 7: cout<<"Attenzione imprevisti in arrivo"; break;
case 8: cout<<"Un periodo perfetto per prendersi un po' di vacanza, improvvisate!"; break;
case 9: cout<<"Monotonia oggi sara` una parola familiare"; break;
case 10:cout<<"Occhio al portafogli"; break;
case 11:cout<<"La giornata si preannuncia bene, ma verso sera accadra` qualcosa di terribile"; break;
case 12:cout<<"Non mettetevi in viaggio e non scommettete"; break;
case 13:cout<<"Guai in famiglia, prendetela con filosofia"; break;
case 14:cout<<"Non preoccupatevi se oggi non concluderete niente"; break;
case 15:cout<<"Una probabile serata felice tra amici vi ricompensera` degli sforzi compiuti"; break;
case 16:cout<<"Jella e sventura, chiudetevi in casa!"; break;
case 17:cout<<"Qualcuno vi ama e oggi si rivelera`"; break;
case 18:cout<<"Fallimenti in amore e nello studio vi accompagneranno"; break;
case 19:cout<<"Nessun problema oscurera` la vostra giornata"; break;
case 20:cout<<"Siate caritatevoli verso gli altri o Venere vi punira`"; break;

}
getch();
}

void nasc(){
anno=(char *)malloc(STR_LEN);
mese=(char *)malloc(STR_LEN);
giorno=(char *)malloc(STR_LEN);

do{
gotoxy(1,3);
cout<<"Inserisci il tuo anno di nascita (es. 1985): ";
gotoxy(46,3);
scanf("%s",anno);
a=atoi(anno);
}while ((a<(d.da_year-120))||(a>d.da_year));


do{
gotoxy(1,5);
cout<<"Inserisci il tuo mese di nascita (es. 10): ";
gotoxy(46,5);
scanf("%s",mese);
m=atoi(mese);

}
while ((m<1)||(m>12)||((a==d.da_year)&&(m>d.da_mon)));
char f29='a';
if ((m==2)&&((a!=d.da_year)||(m!=d.da_mon)||(29<d.da_day)))
{
gotoxy(1,7);
cout<<"Sei nato il 29 febbraio (s/*)? ";
f29=getch();
}
if (f29!='s')
do
{
gotoxy(1,9);
cout<<"Inserisci il tuo giorno di nascita (es. 30): ";
gotoxy(46,9);
scanf("%s",giorno);
g=atoi(giorno);

}
while ((g<1)||((g>30)&&((m==11)||(m==4)||(m==6)||(m==9)))||(g>31)||((g>28)&&(m==2))||((a==d.da_year)&&(m==d.da_mon)&&(g>d.da_day)));
else
g=29;
free(anno);
return;
}

void data()
{
getdate(&d);
printf("Oggi e` il: %d-%d-%d\n",d.da_day,d.da_mon,d.da_year);
}




/* Scritto e compilato da
Questo programma ordina 10 valori inseriti da tastiera.

Elenco delle variabili:

tipo: |nome: | utilizzo:
--------------------------------------------------------------------------------
intero | i | variabile contatore
array d'intero | vet | assume i 10 valori inseriti da tastiera
intero | a | variabile contatore e di scambio
*/
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
int vet[10];
void inz();
void ord();
void scr();
void main(void)
{
clrscr();
inz();
ord();
scr();
}
void inz()
{
int i;
cout<<"scrivi i 10 valori\n";
for(i=0;i<10;i++)
cin>>vet[i];
}
void ord()
{
int i;
int a;
for(a=0;a<9;a++)
for(i=0;i<9;i++)
if (vet[i]>vet[i+1])
{
int a=vet[i];
vet[i]=vet[i+1];
vet[i+1]=a;
}
}
void scr()
{
int i;
cout<<"ecco i 10 valori ordinati\n";
for(i=0;i<10;i++)
cout<<vet[i]<<" ";
getch();
}


/* Scritto e compilato da
Questo programma definisce la lunghezza di una stringa inserita da
tastiera e ne scrive il contenuto invertito.

Elenco delle variabili:

tipo: | nome: | utilizzo:
--------------------------------------------------------------------------------
intero | i | variabile contatore
intero | b | variabile contatore
array di char | s | stringa inserita da tastiera

*/
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
int i=0,b;
char s[101];
void main(void)
{
clrscr();
cout<<"Inserisci una stringa di massimo 100 caratteri \n";
gets(s);
while (s[i]!='\0')
{
i++;
}
cout<<"Lunghezza della stringa: "<<i<<" caratteri\nStringa invertita: ";
for (b=0;b<=i;b++)
{
cout<<s[i-b];
}
getch();
}


/* Scritto e compilato da
Questo programma calcola le ore lavorative, approssimate per eccesso
di una settimana

Elenco variabili:

tipo: | nome: | contenuto:
-------------------------------------------------------------------------
unigned char | i | variabile contatore
unigned char | he | ora di entrata
unigned char | me | minuti di entrata
unigned char | hu | ora di uscita
unigned char | mu | minuti di uscita
unigned char | sh | somma delle ore
unigned char | sm | somma dei minuti
double | sm2 | arrotondamento e somma definitiva
char | q | variabile di controllo

*/
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream.h>
unsigned char i,he,me,hu,mu,sh,sm;
char q;
double sm2;
void main(void)
{
do
{
for (i=1;i<6;i++)
{
clrscr();
do
{
printf("\nInserisci l'ora d'ingresso del giorno %d (es. 13): ",i);
scanf("\n%d",&he);
}
while ((he>24)||(he<1));
do
{
printf("\nInserisci i minuti d'ingresso del giorno %d (es. 51): ",i);
scanf("\n%d",&me);
}
while ((me>59)||(me<1));
do
{
printf("\nInserisci l'ora d'uscita del giorno %d (es. 13): ",i);
scanf("\n%d",&hu);
}
while ((hu>24)||(hu<1)||(hu<he));
do
{
printf("\nInserisci i minuti d'uscita del giorno %d (es. 51): ",i);
scanf("\n%d",&mu);
}
while ((mu>59)||(mu<1)||(mu<me));
sh+=hu-he;
sm+=mu-me;
}
if (sm%60==0)
sm2=sm/60;
else
sm2=sm/60-sm%60+1;
sh+=sm;
printf("\nore totali: %d",sh);
printf("\n\nVuoi ripetere il programma? (s/*)");
q=getch();
}
while (q=='s');
}




:bhò:

l.golinelli
25-03-2003, 15:51
MIIIIINCHIA che ammasso di roba... Potevi almeno indentarglielo... :p

ciofx
25-03-2003, 16:10
Veramente era indentato... è l'editor di sto sito che fa un po' chiagnere.....

Poi non so neanche se gli serva......

Ne ho altri 2000 di sti ca220 di esercizi.......(colpa di Segaiolo Hood)

riderjean
25-03-2003, 16:15
grazie per la risposta
volevo risolvere insieme questi es x vedere le possibili soluzioni e poi confrontare con le soluzioni che ci ha dato il prof.

non credo mi servano gli es che mi hai spedito anch'io ne ho a milioni... cmq apprezzo lo stesso

l.golinelli
25-03-2003, 16:48
Originariamente inviato da ciofx
Veramente era indentato... è l'editor di sto sito che fa un po' chiagnere.....

Poi non so neanche se gli serva......

Ne ho altri 2000 di sti ca220 di esercizi.......(colpa di Segaiolo Hood)


Usi i tag
? :)

l.golinelli
25-03-2003, 16:49
Ok però non possiamo fare gli esercizi per te... :stordita:

riderjean
25-03-2003, 17:17
infatti mi basterebbe qualche suggerimento a livello logico :ciauz:

Loading