PDA

Visualizza la versione completa : avrei bisogno di aiuto per programmi in C semplici


tim21
31-08-2002, 16:22
Avrei bisogno di un aiuto per programmare in C.
Mi servirebbe la risoluzione di due programmi abbastanza semplici.

Grazie.

:dhò:

Idioteque
31-08-2002, 20:24
ciao, qual'è il tuo problema. Fammi vedere e vediamo se posso darti una mano. Ciao....

tim21
01-09-2002, 14:37
Ciao, grazie mille per aver risposto.
Il mio problema è portare i due programmini dell'esame scritto all'orale, risolti che girino.
Lunedì 9 li avrò: intanto cercavo qualcuno (io in C sono impedito).
Se non ti reca troppo disturbo mi faresti un grossissimo favore.

Quello sotto è un tipico esercizio.

ciao



---------------------------------------------------------------------


Si scriva in linguaggio C la funzione void num_morse (int n, char s[]) che scrive nella stringa s la rappresentazione in codice morse del numero n.
Si utilizzi un carattere ‘-’ per indicare il punto, una sequenza di tre caratteri ‘-’ per indicare una linea (cioè “---”), uno spazio per separare un simbolo del codice morse (punto o linea) dal successivo, tre spazi per separare una cifra dalla successiva.
La codifica delle siongole cifre in codice morse è memorizzata nel seguente vettore di stringhe dichiarato come variabile
globale (‘P’ = punto, ‘L’ = linea):
char *nmorse[] = { "LLLLL", "PLLLL","PPLLL","PPPLL","PPPPL", "PPPPP","LPPPP","LLPPP","LLLPP","LLLLP" }

(Quindi nmorse[1]è la stringa "PLLLL", nmorse[5]è la stringa "PPPPP", ecc.).
Esempi:
N = 23 Þ s[] = "- - --- --- --- - - - --- --- "
N = 501 Þ s[] = "- - - - - --- --- --- --- --- - --- --- --- --- "




#include <stdio.h>
#include <stdlib.h>

char *nmorse[10] =
{ "LLLLL", "PLLLL", "PPLLL", "PPPLL", "PPPPL",
"PPPPP", "LPPPP", "LLPPP", "LLLPP", "LLLLP" };

void num_morse (int n, char s[]);
void aggiungi_cifra_morse (char s[], char t[]);

int main (int argc, char *argv[])
{
char s[1024];
if (argc != 2)
{
printf ("numero di parametri errato\n");
exit (EXIT_SUCCESS);
}
num_morse (atoi(argv[1]), s);
puts (s);
return EXIT_SUCCESS;
}

void num_morse (int n, char s[])
{
int i, cifra, potenza;
potenza = 10;

while potenza *= 10;
potenza /= 10;

s[0] = '\0';
while (potenza > 0)
{
cifra = n / potenza;
n = n % potenza;
potenza /= 10;
aggiungi_cifra_morse (s, nmorse[cifra]);
}
return;
}

void aggiungi_cifra_morse (char s[], char t[])
{
int i, j;
for (i = 0; s[i] != '\0'; i++);
for (j = 0; t[j] != '\0'; j++)
{

if (t[j] == 'P')
{
s[i++] = '-';
s[i++] = ' ';
}
else
{
s[i++] = '-';
s[i++] = '-';
s[i++] = '-';
s[i++] = ' ';
}
}

s[i++] = ' ';
s[i++] = ' ';
s[i] = '\0';
return;
}

Jlinux82
01-09-2002, 21:20
Ciao che problemi hai????
Se mi descrivi l'algoritmo o hai qualche problema con il codice fammi sapere ti do una mano:ciauz: :ciauz:

Idioteque
05-09-2002, 14:51
ciao tim21, ho ricevuto la tua e-mail...Ok, poso darti una mano, sempre nei miei limiti...Ciao...
P.S.
è quello di sopra il listato che ti devo analizzare?

tim21
05-09-2002, 15:35
Quello sopra è solo un esempio del livello degli esercizi.
Quello da mettere a posto lo metterò qui su html lunedì sera quando lo avrò.
Comunque ti ringrazio in anticipo e dovrò sdebitarmi in qualche modo,

ciao. :ciauz:

Loading