|
|
TESTO:
Eliminare le ripetizioni contigue di un numero, ad esempio 533888448 diventa 53848. Si usi il seguente approccio:
ANALISI:
Il problema richiede di eliminare le ripetizioni contigue in un numero di più cifre. Per la risoluzione pratica in linguaggio Pascal è indispensabile l'utilizzo di variabili di tipo vettore (ARRAY). Il numero inserito dall'utente viene salvato cifra per cifra nella variabile di tipo ARRAY cosicché subito dopo ne consegua il controllo di ogni cifra e ogni volta che se ne trovano due o più uguali e consecutive le si pone a zero. Per fare questa operazione è molto utile una selezione che aiuta molto nel controllo delle cifre.
Le variabili utilizzate sono state:
vettore, di tipo Array usato per salvare le cifre una ad una;
i, j, di tipo intero utilizzati come indici di vettore.
RAFFINAMENTO:
programma duplicati;
inizio
(*acquisizione numeri*)
Inserisci('Scrivere il numero, digitare . per terminare');
i:=1;
ripeti
vettore[i]:=readkey;
Inserisci (vettore[i]);
incrementa(i);
finchè vettore[i-1]='.';
Inserisci;
(*eliminazione duplicati*)
i:=2;
j:=1;
ripeti
se vettore[i]=vettore[j] allora
vettore[i]:='0'
altrimenti j:=i;
incrementa(i);
finchè vettore[i]='.';
i:=1;
(*visualizzazione risultato*)
ripeti
se vettore[i]<>'0' allora
Inserisci(vettore[i]);
incrementa(i);
finchè vettore[i]='.';
ricevi;
fine.
PROGRAMMA:
program duplicati;
uses crt;
var i,j: integer;
vettore:array[1..20000] of char;
begin
clrscr;
(*acquisizione numeri*)
Writeln('Scrivere il numero, digitare . per terminare');
i:=1;
repeat
vettore[i]:=readkey;
write(vettore[i]);
inc(i);
until vettore[i-1]='.';
writeln;
(*eliminazione duplicati*)
i:=2;
j:=1;
repeat
if vettore[i]=vettore[j] then
vettore[i]:='0'
else j:=i;
inc(i);
until vettore[i]='.';
i:=1;
(*visualizzazione risultato*)
repeat
if vettore[i]<>'0' then write(vettore[i]);
inc(i);
until vettore[i]='.';
readln;
end.
Privacy |
Articolo informazione
Commentare questo articolo:Non sei registratoDevi essere registrato per commentare ISCRIVITI |
Copiare il codice nella pagina web del tuo sito. |
Copyright InfTub.com 2024