Program passcal - tablice
    Zaloguj FAQ  •  Szukaj    


Obecny czas: 09 Lut 2012, 20:05

Pomysł na Biznes to tylko krok do Twojego sukcesu. Sprawdź jak łatwo zostać milionerem.




Napisz nowy temat Odpowiedz  [ 5 posty(ów) ] 
Autor Wiadomość
 
PostWysłany: 03 Gru 2009, 19:43 
Offline
Specjalista
Specjalista
Awatar użytkownika

Dołączenie: 11 Cze 2008, 07:20
Posty: 845
Miejscowość: Kwidzyn
Pochwały: 4
Witam
Programuje w pascalu i mam problem z zad. a dokładniej z kasowaniem elementu i filtrowaniem tablicy. Prosiłbym o rady i sprawdzenie kodu. :-)

Kod:
program tablica22;
uses crt;
type tablica=array[1..30] of integer;

         function menu:char;  {funkcja}
         begin
         clrscr;
         writeln('D Dodawanie elementu');
         writeln('S Sortowanie tablicy');
         writeln('K Kaswoanie elementu'); 
         writeln('F Filtrowanie tablicy');    {jezeli napiszemy 3 to ma nam wyswietlic ile jest 3 w komorkach}
         writeln('W Wyswietlanie tablicy');
         writeln('E Koniec programu');
         menu:=upcase(readkey);
         end;
         {-------------------------------}

         procedure dodaj(var ile:integer; var t:tablica);   {procedura przez zmienna}
         begin
         ile:=ile+1;
         write('Podaj ',ile,' element :');
         readln(t[ile]);
         end;
         {-------------------------------}

         procedure wyswietl(ile:integer; var t:tablica);
         var i:integer;
         begin
         for i:=1 to ile do
         writeln(t[i]);
         writeln('macisnij enter');
         readln;
         end;
         {-------------------------------}
         {procedure kasuj(var ile:integer; var t:tablica);
         var i:integer;
         begin
         for i:=1 to ile do
         ile:=ile-1;
         write('Podaj ktory element ma usunac: ');
         readln(t[ile]);
         end;          }

         procedure sortuj(var os:integer; var t:tablica);
         var i,j,ile:integer;
         begin
         for i:=1 to 4 do
         for j:=i to 4 do
         if t[j]>t[j+1] then
         begin
         os:=t[j];
         t[j]:=t[j+1];
         t[j+1]:=os;
         end;
         for i:=1 to 5 do
         write(t[i]:4);
         readln;
         end;


var tb:tablica;
    j:integer;
    koniec:boolean;
begin
     koniec:=false;
     j:=0;
     repeat            {zaczynamy petle}
     case menu of
     'D':dodaj(j,tb);
     'W':wyswietl(j,tb);
    {'K':kasuj(j,tb); }
     'S':sortuj(j,tb);
     'E':koniec:=true;
     end;
until koniec;

end.



 Profil E-mail  
    WindowsXPFirefox

   
 
PostWysłany: 03 Gru 2009, 23:33 
Offline
HAKER
HAKER
Awatar użytkownika

Dołączenie: 02 Lis 2006, 23:21
Posty: 2475
Miejscowość: Garwolin
Pochwały: 8
daj temat tego zadania i powiedz gdzie masz problem bo tak nie chce mi się do tego zaglądać


 Profil E-mail  
    UbuntuFirefox
 
PostWysłany: 04 Gru 2009, 09:14 
Offline
Specjalista
Specjalista
Awatar użytkownika

Dołączenie: 11 Cze 2008, 07:20
Posty: 845
Miejscowość: Kwidzyn
Pochwały: 4
mam zrobić tak aby:
-Sortowało tablice
-Kasowało elementy
-Filtrowało tablice

W sortowaniu mam jakiś błąd bo zza drugim razem mi sortuje. A nie wiem jak zrobić kasowanie oraz filtrowanie.


 Profil E-mail  
    WindowsXPFirefox
 
PostWysłany: 04 Gru 2009, 11:25 
Offline
HAKER
HAKER
Awatar użytkownika

Dołączenie: 02 Lis 2006, 23:21
Posty: 2475
Miejscowość: Garwolin
Pochwały: 8
na jakich zasadach ma działać ten filtr bo tego nie wiem. Sprawdze to wieczorem bo teraz nie bardzo z czasem stoje ale w sortowaniu już wiem co masz źle :)
dlaczego masz for i := 1 to 4 ?? przecież twoje tablice mogą mieć więcej elementów!!


 Profil E-mail  
    UbuntuFirefox
 
PostWysłany: 04 Gru 2009, 19:20 
Offline
Specjalista
Specjalista
Awatar użytkownika

Dołączenie: 11 Cze 2008, 07:20
Posty: 845
Miejscowość: Kwidzyn
Pochwały: 4
demonix napisał(a):
na jakich zasadach ma działać ten filtr bo tego nie wiem. Sprawdze to wieczorem bo teraz nie bardzo z czasem stoje ale w sortowaniu już wiem co masz źle :)
dlaczego masz for i := 1 to 4 ?? przecież twoje tablice mogą mieć więcej elementów!!


Filtr:
podaje przykład: "jezeli napiszemy 3 to ma nam wyswietlic ile jest trójek w komorkach"
No ja wiem że moge mieć więc, bo mam w kodzie: [1..30].
Dałem tak ponieważ jest szybciej wpisać dane i sprawdzić czy działa :-P


 Profil E-mail  
    WindowsXPFirefox
Wyświetl posty z poprzednich:  Sortuj według  
Napisz nowy temat Odpowiedz  [ 5 posty(ów) ] 

Ciekawe tematy: Kompozyty produkcja, czy na tym można zarobić ? oraz Pomysł na Biznes






Suknie Ślubne na tę wyjątkową chwilę. Zapraszamy!

phpBB skin developed by: John Olson Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group