segunda-feira, 22 de outubro de 2012

Refleção ao modulo 6

Nesta refleção vou falar sobre os programas que eu introduzi no meu blogge. Eu no início deste modulo eu não tinha percebido o significado de ponteiro, mas ao longo da matéria fiquei a perceber melhor a matéria dada. O programa que eu meti ajudou-me a compreender melhor a matéria. No programa da pilha eu fiquei a entender os procedure inserir e mostrar. Nos programa da fila e da lista ordenada fiquei a perceber melhor os procedure eliminar, ordenar e lista ordenada, por isso que eu ao longo dos programas que nos fizemos eu fiquei a perceber a matéria que nos demos.
Esquema da lista ordenada


Programa da lista ordenada

Program lista_ordenada ;
type nada = string[20];
     Tipo_A = ^Tipo_B;
 Tipo_B = Record
 info : Nada;
 Prox : Tipo_A;
end;
Var pi : Tipo_A;
    opcao,x : char;
 Procedure Inserir;
    Var px : Tipo_A;
       Begin
            New(px);
            writeln('Inserira um nome');
            Readln(px^.info);
            px^.prox:=pi;
            pi:=px;
            Writeln('O dado foi introduzido com sucesso');
       end;

 Procedure Listar;
     Var Px : Tipo_A;
   Begin
        Writeln;
    px:=pi;
    If (px=nil) then
        Writeln('lista vazia')
    else
       begin
    While(px<>nil) do
      Begin
          Writeln(px^.info);
      px := px^.prox;
      end;
    end; 
   end;
 Procedure Ordenar;
     Var p1,p2:Tipo_A;
     Trocar:boolean;
     aux :nada;
   Begin
        p1:=pi;
    p2:=pi^.prox;
        If (p1<>nil) and (p1^.prox<>nil) then
    repeat
          Trocar:=false;
      p1:=pi;
      p2:=pi^.prox;
      Repeat
        If (p1^.info > p2^.info) then
      Begin
           Trocar:=true;
       aux:=p1^.info;
       p1^.info:=p2^.info;
       p2^.info:=aux;
          end;
      p1:=p1^.prox;
      p2:=p2^.prox;
      until p1^.prox=nil;
    until not trocar;
   end;
 Procedure Remover;
   Var px:Tipo_A;
       pa:Tipo_A;
       dado:Nada;
      
   begin
        If pi<>nil then
     begin
          writeln('->Escreva o dado a excluir na lista');
      readln(dado);
      px:=pi;
      pa:=nil;
      While (px<>nil) and (px^.info<>dado) do
      begin
           pa:=px;
           px:=px^.prox;
      end;
      If px = nil then
         writeln('O dado nao se encontra na lista')
      else
          begin
        If pa=nil then
       pi:=px^.prox
    else
       begin
          pa^.prox:=px^.prox;
      dispose(px);
      writeln(dado,'foi removido com sucesso');
       end;
      end;
     end;
   end;                      
      
begin
     pi:=nil;
 Repeat
      writeln('____Menu____');
  writeln;
  writeln('Inserir ---> 1');
  writeln('listar ---> 2');
  writeln('Remover---> 3');
  writeln('Sair--->0 ');
  writeln('qual é a sua opção');
  readln(opcao);
  Case opcao of
      '1':begin Inserir; Ordenar; end;
      '2':Listar;
      '3':Remover;
      '0':writeln('Fim do programa');
  end;
 until (opcao='0');
end.                     
Esquema da fila


Programa da pilha


program fila ;
type nada = record
     nome:string;
 idade:integer;
 peso:integer;
 prox:^nada;
end;
var cauda:^nada;
    px:^nada;
    frente:^nada;
    x:integer;
    n:char;
 procedure inserir;
    begin
             new(px);
             writeln('introduza um nome');
             readln(px^.nome);
             writeln('introduza a idade');
             readln(px^.idade);
             writeln('introduza o peso');
             readln(px^.peso);
         if (frente=nil) then
           begin
             px:=cauda;
             px:=frente;
           end   
         else
       begin
             cauda^.prox:=px;
             cauda:=px;

           end;   
    end;

 Procedure eliminar;
    begin
     if (frente=nil) then
         writeln('nao existe nada')
     else
         px:=frente;
     frente:=frente^.prox;
     dispose(px);
    end;
 procedure mostrardados;
    begin
     if (frente = nil) then
         writeln('nao exite nada')
     else
         repeat
          writeln(px^.nome);
          writeln(px^.idade);
      writeln(px^.peso);
      px:=px^.prox;
     until(px = nil);
    end;
 begin
   cauda:=nil;
   frente:=nil;
  repeat
        writeln;
        writeln('****Menu****');
        writeln('1-inserir ');
    writeln('2-eliminar ');
    writeln('3-mostrardados ');
    writeln('4-sair ');
     readln(x);
    case n of
          '1': inserir;
      '2': eliminar;
      '3': mostrardados;   
            end;
  until ( x = 4);
 end.                       
Esquema da pilha

sexta-feira, 19 de outubro de 2012

Pilha


Program Pilha  ;
type nada = record
     nome:string[10];
idade:integer;
ano:^nada;
end;
var p1:^nada;
    px:^nada;
    n:integer;
 Begin
      p1:=nil;
      for n:=1 to 10 do
      begin
         new(px);
         writeln('insira um nome para da lista');
         readln(px^.nome);
         writeln('insira a idade para o nome da pessoa que introduziu');
         readln(px^.idade);
   px^.ano:=p1;
   p1:=px;
      end;
while(px<>nil) do
   begin
      writeln(px^.nome);
 writeln(px^.idade);
 px:=px^.ano;
   end;  
 End.

quinta-feira, 18 de outubro de 2012

O que são ponteiros? 

O ponteiro é uma variavel que é capaz de receber um endereço de memoria Ram relativa a um determinado tipo de dados.