![]() | ![]() |
|
|
Titolo: Inversione di una stringa. Il seguente algoritmo permette di invertire una stringa: se una stringa S è vuota, il suo rovesciamento è la stringa vuota; altrimenti è la concatenazione del rovesciamento di S, privata 333c24d del primo carattere, con il primo carattere stesso
Autore
Data di inizio del lavoro: 12 novembre 2001
Obbiettivi: Costruire un programma che effettui l'inversione di una stringa
Interfaccia grafico: Avendo costruito il programma in pascal non posso presentare alcun tipo si interfaccia grafico
Soluzione delle procedure: Ho risolto il programma utilizzando 2 cicli for perché se avessi utilizzato un ciclo solo avrei avuto come risultato la stringa identica a come l'avevo immessa.
Il ciclo J parte dall'inizio dell'array fino a metà mentre il ciclo I parte dalla fine dell'array fino a metà.
Ad ogni passo del ciclo si scambiano le celle con contatore I e J utilizzando la variabile d'appoggio varapp.
Utilizzando ad esempio un array di 6 caselle avrò che il primo ciclo for comprenderà le prime 3 celle mentre il secondo ciclo comprenderà le restanti.
Array = inverti
|
|
|
|
|
|
1° ciclo for 2° ciclo for
Se l'array sarebbe stato di 7 caselle o comunque un numero dispari non avrebbe avuto importanza in quanto nell'inverso di una parola la lettera al centro rimarrebbe invariata.
Variabili utilizzate
Varapp = variabile d'appoggio
I, J = contatori
Inverti = array
n = determina le lettere dell'array
Programma
Program inverso
Var I,n,J,varapp:integer;
var inverti:array[1..100] of string;
begin
writeln ('quante lettere vuoi immettere?,);
readln(n);
for I:=1 to n do
begin
writeln ('scrivi la lettera nella cella',I);
readln(inverti[I]);
end;
for I:=n downto n/2 do
begin
for J:=1 to n/2 do
begin
varapp:=inverti[I];
inverti[I]:=inverti[J];
inverti[J]:=varapp;
write(inverti[j]);
end;
end;
end.
Test
|
A |
R |
O |
L |
A |
|
A |
R |
O |
L |
P |
A |
L |
R |
O |
A |
P |
A |
L |
O |
R |
A |
P |
Osservazione e Conclusione: Il programma non ha presentato particola difficolta nello svolgimento eccetto quello di capire che doveva essere svolto con 2 cicli.
Ho svolto il programma in pascal in quanto lo ritenevo più semplice nell'esecuzione.
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 2025