Caricare documenti e articoli online 
INFtub.com è un sito progettato per cercare i documenti in vari tipi di file e il caricamento di articoli online.


 
Non ricordi la password?  ››  Iscriviti gratis
 

Relazione di informatica

informatica





Relazione di informatica



TESTO:

Eliminare le ripetizioni contigue di un numero, ad esempio 533888448 diventa 53848. Si usi il seguente approccio:

  1. Memorizzare i dati in un vettore;
  2. Sostituire i duplicati con 323b12d zero;
  3. Stampare i numeri diversi da zero;

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


Hits: 2046
Apprezzato: scheda appunto

Commentare questo articolo:

Non sei registrato
Devi essere registrato per commentare

ISCRIVITI



Copiare il codice

nella pagina web del tuo sito.


Copyright InfTub.com 2024