Caricare documenti e articoli online  
INFtube.com è un sito progettato per cercare i documenti in vari tipi di file e il caricamento di articoli online.
Meneame
 
Non ricordi la password?  ››  Iscriviti gratis
 

Esercitazione quattordicesima

tecnica


Inviare l'articolo a Facebook Inviala documento ad un amico Appunto e analisi gratis - tweeter Scheda libro l'a yahoo - corso di



ALTRI DOCUMENTI

GENERAZIONE E RICOMBINAZIONE - BANDA-BANDA (DIRETTA)
L'uranioenergia Atomica - L' come fonte di energia
FUNZIONI COMPENSATRICI - FUNZIONI ANTICIPATRICI
Impianti di turbine a vapore - Ciclo di Rankine-Hirn
MODELLO DI DERIVA-DIFFUSIONE
Le variabili casuali n-dimensionali
Esercitazione di Meccanica applicata alle Macchine - CAMMA E BILANCERE
LA QUANTITA' DI MOTO
MOTO IN UN CAMPO ELETTROMAGNETICO
ENERGIA GEOTERMICA - CARATTERISTICHE, TIPI

Esercitazione quattordicesima



In questa esercitazione č presentata la codifica in Pascal di un programma che, ricevuti in ingresso due array di interi giā parzialmente ordinati, li memorizzi in due file ed operi il merge sort restituendo un array ordinato.


Programma MergeSort tra file (XIV)

Program Mergesort_file ;

uses crt ;

const max = 4 ;

const maxmerge = 9 ;

var vettfirst : file of integer ;

var vettsecond : file of integer ;

var vettmerge : file of integer ;

var first : array[ 1..max ] of integer ;

var second : array[ 1..max ] of integer ;

var final : array[ 1..maxmerge ] of integer ;

var a, b, c, d, i, j : integer ;

   

procedure mergesort ;

begin

reset ( vettfirst ) ;         

reset ( vettsecond ) ;

i:=1 ;                           

j:=1 ;

a:=1 ;

read ( vettfirst , first [ i ] ) ;

read ( vettsecond , second [ j ] ) ;

repeat if first [ i ] > second [ j ] then begin

                                                            final [ a ] := second [ j ] ;

                                                           write ( vettmerge, final [ a ] ) ;

                                                           j := j +1 ;

                                                           if j < max +1 then read ( vettsecond, second [ j ] ) ;

                                                           end

           else begin    

                  final [ a ] := first [ i ] ;

                  write ( vettmerge, final [ a ] ) ;

                   i := i +1 ;

                  if i < max +1 then read ( vettfirst , first [ i ] ) ;

                  end ;

          a := a +1 ;

until ( ( i > max ) or ( j > max ) ) ;

repeat if j = max +1 then begin      

                                         final [ a ] := first [ i ] ;

                                        write ( vettmerge, final [ a ] ) ;

                                        i := i +1 ;

                                         if i < max+1 then read ( vettfirst, first [ i ] ) ;

                                        end




           else if i = max+1 then begin

                                               final [ a ] := second [ j ] ;

                                               write ( vettmerge, final [ a ] ) ;

                                               j := j+1 ;

                                               if j < max+1 then read ( vettsecond, second [ j ] ) ;

                                               end;

           a:= a+1 ;

until a = maxmerge ;                      

end ;

  

begin

clrscr;

assign ( vettfirst , ' vettfirst_in.typ ' ) ;              

assign ( vettsecond , ' vettsecond_in.typ ' ) ;                

assign ( vettmerge , ' vettmerge_out.typ ' ) ;

rewrite ( vettmerge ) ;                         

rewrite ( vettfirst ) ;                                         

for i:=1 to max do begin

                              write ( ' Inserire il ', i , ' o valore del 1 o vettore: ' ) ;

                              readln ( b);

                              first [ i ] := b ;

                              write ( vettfirst, first [ i ] ) ;

                              end;         

writeln ( ' ' ) ;

rewrite ( vettsecond ) ;             

for j:=1 to max do begin

                              write ( ' Inserire il ', j , ' o valore del 2 o vettore: ' ) ;

                               readln ( c ) ;

                               second [ j ] := c ;

                               write ( vettsecond, second [ j ] ) ;

                               end;       

mergesort;         

writeln ( '  ' ) ;

writeln ( ' Il file ordinato secondo l''ordinamento mergesort e'': ' ) ;

reset ( vettmerge ) ;

for a :=1 to 2*max do begin

                                   read ( vettmerge, final [ a ] ) ;

                                   write ( a, ' o componente: ' ) ;

                                   writeln ( final [a] ) ;

                                   end ;

readln ;

end .







Privacy

Articolo informazione


Hits: 1352
Apprezzato: scheda appunto

Commentare questo articolo:

Non sei registrato
Devi essere registrato per commentare

ISCRIVITI

E 'stato utile?



Copiare il codice

nella pagina web del tuo sito.


Copyright InfTub.com 2019