AlGoRiTmo

IlaCrazy
Salve a tutti!!
avrei bisogno al più presto - se possibile- di esercizi sugli algoritmi...
Le strutture che abbiamo affrontato sono:
selezione : SE < condizione > ALLORA
ALTRIMENTI < condizione2 >
FINE SE
(anche con i SE nidificati)

iterazione: ESEGUI MENTRE
RIPETI


oppure ESEGUI FINCHè
RIPETI


Grazie a tutti x l'aiuto!! :-D

Risposte
leev
esercizi?? di che tipo?? in che linguaggio??

IlaCrazy
non abbiamo ancora impostato un tipo di linguaggio (ad esempio di visual basic...)ma esercizi del tipo...
scrivi un algoritmo che calcoli la somma dei 10 numeri interi successivi ad un numero intero dato (escluso il numero)
Quindi scriverei:

INIZIO
somma=0
contatore=0
Acquisisci(n)
b= n+1
ESEGUI MENTRE contatore <=10
b=b+1
somma= somma+b
contatore= contatore +1
RIPETI
Visualizza(somma)
FINE

Diravan
"IlaCrazy":

selezione : SE < condizione > ALLORA
ALTRIMENTI < condizione2 >
FINE SE
(anche con i SE nidificati)


ma non sarebbe più corretto
SE ALLORA

ALTRIMENTI

FINE SE

DA quello che ne so io sul altrimenti non va la condizione ci entri solo se la condizione del SE è falsa.
Comunque per esercizi su algoritmi, un consiglio consiglio è INVENTA...
P.S. avete fatto anche array, vettori, matrici ???

IlaCrazy
Già,hai ragione... troppa informatica fa male dunque!
sappiamo fare solo esercizi con stringhe e numeri.
Un esercizio curioso a cui però non sono giunta alla completa suoluzione è questo:

Data una parola,stabilire se essa può essere letta sia da destra che da sinistra.
Ora posto la mia soluzione(incompleta,ripeto sob)

INIZIO
mess= ""
contatore=1
contatore2= 0

Acquisisci (parola)
l= lunghezza (parola)
ESEGUI FINCHè contatore <=l
estratto = sottostringa (parola,contatore,1)
contatore = contatore+1
ESEGUI FINCHè contatore2 >=l/2
finale = sottostringa (parola,b,1)
b= b-1
contatore2= contatore2+1
...............

in tal modo estraevo lettera x lettera partendo in un caso dall'inizio,nell'altro dalla fine della parola per confrontarle una ad una ma poi?!?!?!
Grazie!!!!!!!!!!

anonymous_be1147
"IlaCrazy":
Data una parola,stabilire se essa può essere letta sia da destra che da sinistra.

In realtà si può utilizzare un solo contatore e una sola struttura di iterazione (scorrendo comunque tutta la parola, anche se si è appurato che non è un palindromo):

INIZIO
  contatore = 1
  palindromo = 1

  acqusisci(parola)
  lun = lunghezza(parola)

  ESEGUI FINCHE\` è contatore <= ( lun / 2):
    estratto = sottostringa(parola, contatore, 1)
    finale = sottostringa(parola, lun - contatore + 1, 1)

    IF ( estratto != finale) ALLORA
      palindromo = 0  # ESCI CICLO?

    contatore = contatore + 1
  RIPETI

  stampa(PAROLA)
  IF palindromo != 0 ALLORA
    stampa("NON")
  stampa("è un palindromo")

FINE


Supponendo che il primo carattere nella parola abbia indice 1 e siano state definite le procedure sottostringa(), acquisisci(), ecc.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.