1. Classificare le sottofasi del progetto di un Adt

Nel realizzare un nuovo ADT si seguono le tre fasi di

  1. stesura delle proprietà

  2. stesura della specifica

  3. implementazione.

Classifica l'appartenenza ad esse di ciascuna delle seguenti sottofasi:

Codifica

Dominio

Esempi d'uso

Insieme delle operazioni

Tipologia degli elementi

Interfaccia

Prerequisiti

Rappresentazione fisica

Effetti

Scelta del linguaggio

Struttura relazionale

(Consulta gli appunti del prof. oppure il testo di Cupini-Ghesini)

C. CodificaA. DominioB. Esempi d'uso
A. Insieme delle operazioniA. Tipologia degli elementiB. Interfaccia
B. PrerequisitiC. Rappresentazione fisicaB. Effetti
C. Scelta del linguaggioA. Struttura relazionale

2. Specifica del Reciproco di un razionale

Completa le 4 parti della specifica dell'operazione "reciproco di un razionale"
bullet

Interfaccia

bullet

Effetti

bullet

Prerequisiti

bullet

Esempi d'uso

Interfaccia
Procedure RecR (Var R: Raz);   {un parametro in/out…}
Effetti

restituisce in R il suo reciproco

PrerequisitiR <> 0, altrimenti divisione per zero!
Esempi d'usose A = 2/3 allora dopo RecR(A) risulta A = 3/2

3. MyNand

A partire dalle operazioni presenti nella specifica di un ADT LOGICO: myAnd(), myOr(), myNot(), myXor() realizza la procedura o funzione myNand()

A Nand B = Not (A And B)... = MyNot(MyAnd(A, B))

Function myNand(A, B: Logico): Logico;
Begin
   myNand:=myNot(myAnd(A, B));
End;

4. Palindroma?

A partire dalle operazioni presenti nella specifica di un ADT STRINGA: lun(S), svuota(S), appendi(S, c), cancella(S, i), preleva(S, i), uguale(S, T) realizza la procedura o funzione La stringa S è palindroma? (aba, a, abba, …)

Sia L la lunghezza di S, allora deve essere S(1)=S(L), S(2)=S(L-1), S(3)=S(L-2), ... finché non si raggiunge la metà della stringa.

Function Palindroma(S: Stringa): Boolean;
Var
   I, L: Integer; {non sono strettamente necessarie}
begin          {ma semplificano il codice...    }
   L:=lun(S);
   I:=1;
   While(I < L) And (Preleva(S, I) = Preleva(S, L)) Do
      begin
         Inc(I);
         Dec(L);
      end;
   Palindroma:=(I >= L);
End;

- ApPuNtIdIuNiNfOrMaTiCo