Forum www.ispwsznysa.fora.pl Strona Główna www.ispwsznysa.fora.pl
Informatyka Stosowania PWSZ NYSA
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

lista 5 zad 2 Dudek

 
Napisz nowy temat   Odpowiedz do tematu    Forum www.ispwsznysa.fora.pl Strona Główna -> Programowania I
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
stramik
Administrator



Dołączył: 02 Gru 2007
Posty: 126
Przeczytał: 0 tematów

Skąd: Grodków

PostWysłany: Czw 9:20, 03 Sty 2008    Temat postu: lista 5 zad 2 Dudek

Moja wersja zadania 2. Nie ma ona prawie zadnych zabezpieczen, wiec jest wersja robocza, ale ze wzgledu na to, ze jest to tak dlugie zadanie to chyba juz w takiej formie oddam ten program.

program zad2;

{$APPTYPE CONSOLE}

uses
SysUtils;

type

TCzas=record
minuta:byte;
sekunda:byte;
end;

TData=record
dzien:byte;
miesiac:byte;
rok:byte;
end;

TUtwor=record
wykonawca:string[20];
tytul:string[20];
czas:Tczas;
end;

TCd=record
autor:string[20];
tytul:string[20];
data:TData;
cena:real;
liczba:1..20;
utwor:array [1..20] of TUtwor;
end;

baza=array [1..10] of TCd;

procedure menu(var q:char);
begin
repeat
writeln('Wybierz jedna z opcji:');
writeln('1. Dodaj do bazy');
writeln('2. Usun z bazy');
writeln('3. Wyswietl liste plyt z bazy');
writeln('4. Wyswietl konkretna plyte cd z bazy');
writeln('5. Wyjdz z programu');
write(' Twoj wybor to: ');
readln(q);
if q>'5' then
begin
if q<'1' then
writeln('Bledna opcja, wybierz jeszcze raz');
end;
writeln;
writeln;
until (q>'0') and (q<'6');
end;

procedure dodaj(var n:byte;var dane:baza);
var
i:byte;
begin
n:=n+1;
write('Podaj wykonawce, jezeli skladanka nacisnij enter ');
readln(dane[n].autor);
if dane[n].autor='' then dane[n].autor:='Rozni wykonawcy';
write('Podaj tytul plyty: ');
readln(dane[n].tytul);
write('Podaj date wydania w formacie DD MM RR : ');
readln(dane[n].data.dzien,dane[n].data.miesiac,dane[n].data.rok);
write('Podaj cene plyty w pln PLN.GR : ');
readln(dane[n].cena);
write('Podaj liczbe utworow na plycie : ');
readln(dane[n].liczba);
for i:=1 to dane[n].liczba do
begin
if dane[n].autor='Rozni wykonawcy' then
begin
write('Podaj wykonawce ',i,' utworu: ');
readln(dane[n].utwor[i].wykonawca);
end;
write('Podaj tytul ',i,' utworu: ');
readln(dane[n].utwor[i].tytul);
write('Podaj czas utworu w formacie MM SS ');
readln(dane[n].utwor[i].czas.minuta,dane[n].utwor[i].czas.sekunda);
end;
end;

procedure lista(n:byte;dane:baza);
var
i:byte;
begin
if n>0 then
begin
writeln('Plyty w bazie:');
for i:=1 to n do
writeln(i:2,'.Wykonawca: ',dane[i].autor:22,' Tytul plyty: ',dane[i].tytul:22);
end;
if n=0 then
writeln('Baza jest pusta!!!!');
end;

procedure usun(var n:byte;var dane:baza);
var
i:byte;
begin
i:=0;
writeln('Wybierz plyte do skasowania');
lista(n,dane);
readln(i);
if n<>0 then
n:=n-1;
for i:=i to n do
dane[i]:=dane[i+1];
end;

procedure szczegol(n:byte;dane:baza);
var
i,p:byte;
begin
lista(n,dane);
writeln('Ktora plyte wyswietlic?? ');
readln(p);
writeln('Wykonawca: ',dane[p].autor,' Tytul plyty: ',dane[p].tytul);
writeln('Data wydania: ',dane[p].data.dzien,'.',dane[p].data.miesiac,'.',dane[p].data.rok,'r.');
writeln('Cena: ',dane[p].cena:3:2);
writeln('Lista utworow:');
for i:=1 to dane[p].liczba do
begin
write(i:3);
if dane[p].autor='Rozni wykonawcy' then
write(dane[p].utwor[i].wykonawca:22);
write(dane[p].utwor[i].tytul:22);
write(dane[p].utwor[i].czas.minuta:4,':',dane[p].utwor[i].czas.sekunda);
writeln;
end;
end;

var
n:byte;
q:char;
dane:baza;



begin
n:=0;
repeat
menu(q);
case q of
'1':dodaj(n,dane);
'2':usun(n,dane);
'3':lista(n,dane);
'4':szczegol(n,dane);
end;


writeln;
writeln;

until q='5';
{ TODO -oUser -cConsole Main : Insert code here }
end.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Lukasiu
Nowicjusz



Dołączył: 05 Gru 2007
Posty: 12
Przeczytał: 0 tematów

Skąd: Gałązczyce

PostWysłany: Sob 6:58, 05 Sty 2008    Temat postu:

Trochche odgapione od Stramika:

Kod:
     program zad2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

//////////////////
  type tdata =record
  rok:integer;
  miesiac:byte;
  end;
  //////////////////
  tczas=record
  min:byte;
  sek:byte;
  end;
  //////////////////
  tutwory=record
  nr:byte;
  wykonawca:string;
  tytul:string;
  czas:tczas;
  end;
  //////////////////
  tplyta=record
  cena:real;
  tytulcd:string;
  data:tdata;
  utwory:array [1..20] of tutwory;
  end;
  /////////////////
  plyty= array [1..10]of tplyta;
  /////////////////



///////////////////////////////////////////////
procedure dodaj (var n:byte; var plytki:plyty);
var i,k:byte;
    z:char;
 begin
 n:=n+1;
 writeln ('Podaj tytul plyty');
readln(plytki[n].tytulcd);
writeln('Podaj date wydania plyty (mm rr)');
readln(plytki[n].data.miesiac, plytki[n].data.rok);
writeln('jaka jest cena plyty?(zl.gr)' );
readln(plytki[n].cena);
Writeln('Plyta jest singlem? (t/n)');
readln(z);
 if z<>('t') then
  begin
   writeln ('podaj ilosc piosenek na plycie (max 20)');
   readln(k);
   for i:=1 to k do
    begin
     writeln ('Podaj wykonawce piosenki nr: ',i);
     readln (plytki[n].utwory[i].wykonawca);
     writeln ('podaj tytul pisenki nr: ',i);
     readln(plytki[n].utwory[i].tytul);
     writeln('podaj czas trwania piosenki nr; ',i, '(mm ss)');
     readln (plytki[n].utwory[i].czas.min, plytki[n].utwory[i].czas.sek);
     plytki[n].utwory[i].nr:=i;
    end ;
  end
  else
   begin
    writeln ('podaj ilosc piosenek na plycie (max 20)');
    readln(k);
    writeln ('Podaj autora plyty');
    readln (plytki[n].utwory[1].wykonawca);
    for i:=2 to k do plytki[n].utwory[i].wykonawca:=plytki[n].utwory[1].wykonawca;
    for i:=1 to k do
     begin
      writeln ('podaj tytul pisenki nr: ',i);
      readln(plytki[n].utwory[i].tytul);
      writeln('podaj czas trwania piosenki nr; ',i, '(mm ss)');
      readln (plytki[n].utwory[i].czas.min, plytki[n].utwory[i].czas.sek);
      plytki[n].utwory[i].nr:=i;
     end
   end;
   writeln;
end;
///////////////////////////////////////////////////////////


//////////////////////////////////////////
procedure lista (n:byte;plytki:plyty);
var i:byte;

 begin
  if n=0 then writeln ('Nie dodales ani jednej plyty!!!')
  else
   begin
     writeln ('Dodane plyty:');
    for i:=1 to n do
     begin
     writeln (i,':',plytki[i].tytulcd);
     end
   end;
   writeln;
 end;
//////////////////////////////////


////////////////////////////////
procedure kasuj (var n:byte; var plytki:plyty);
var i:byte;

begin
 writeln('Ktora plyte chcesz usunac?');
 lista(n,plytki);
 readln(i);
 if n<>0 then
  n:=n-1;
 for i:=i to n do
 plytki[i]:=plytki[i+1];
 writeln;
end;
///////////////////////////////


///////////////////////////////////////////
procedure przegladaj (n:byte; plytki:plyty);
var i,j:byte;

begin
 lista(n,plytki);
 writeln('ktora plyte wyswietlic?');
 readln(j);
 writeln('tytul plyty: ',plytki[j].tytulcd);
 Writeln('data wydania: ',plytki[j].data.miesiac,' ',plytki[j].data.rok);
 writeln('cena: ' ,plytki[j].cena:2:2,'zl');
 writeln('utwory:');
 for i:=1 to n do
  begin
   with plytki[j].utwory[i] do
    begin
     writeln (nr,': ',wykonawca:20,' ',tytul:20,' ',czas.min:2,':',czas.sek:2);
    end
  end;
  writeln;
end;
//////////////////////////////////


//////////////
var cd: tplyta;
z:char;
n:byte;
plytki:plyty;
//////////////

begin
 n:=0;
repeat

 writeln('1: Wyswietl liste plyt');
 writeln('2: Dodaj plyte');
 writeln('3: Usun plyte');
 writeln('4: Przegladaj plyty');
 writeln('5: Zakoncz program');
 readln(z);
 writeln;
  case z of
   '1':lista(n,plytki);
   '2':dodaj(n,plytki);
   '3':kasuj(n,plytki);
   '4':przegladaj(n,plytki);
  end;
 writeln;
until z='5';
 end.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
stramik
Administrator



Dołączył: 02 Gru 2007
Posty: 126
Przeczytał: 0 tematów

Skąd: Grodków

PostWysłany: Sob 14:33, 05 Sty 2008    Temat postu:

Zmodyfikowany program

program zad2;

{$APPTYPE CONSOLE}

uses
SysUtils;

type

TCzas=record
minuta:byte;
sekunda:byte;
end;

TData=record
dzien:byte;
miesiac:byte;
rok:byte;
end;

TUtwor=record
wykonawca:string[20];
tytul:string[20];
czas:Tczas;
end;

TCd=record
autor:string[20];
tytul:string[20];
data:TData;
cena:real;
liczba:1..20;
utwor:array [1..20] of TUtwor;
end;

baza=array [1..10] of TCd;

procedure menu(var q:char);
begin
repeat
writeln('Wybierz jedna z opcji:');
writeln('1. Dodaj do bazy');
writeln('2. Usun z bazy');
writeln('3. Wyswietl liste plyt z bazy');
writeln('4. Wyswietl konkretna plyte cd z bazy');
writeln('5. Porownanie cen plyt');
writeln('6. Wyjdz z programu');
write(' Twoj wybor to: ');
readln(q);
if q>'5' then
begin
if q<'1' then
writeln('Bledna opcja, wybierz jeszcze raz');
end;
writeln;
writeln;
until (q>'0') and (q<'6');
end;

procedure dodaj(var n:byte;var dane:baza);
var
i:byte;
begin
n:=n+1;
write('Podaj wykonawce, jezeli skladanka nacisnij enter ');
readln(dane[n].autor);
if dane[n].autor='' then dane[n].autor:='Rozni wykonawcy';
write('Podaj tytul plyty: ');
readln(dane[n].tytul);
write('Podaj date wydania w formacie DD MM RR : ');
readln(dane[n].data.dzien,dane[n].data.miesiac,dane[n].data.rok);
write('Podaj cene plyty w pln PLN.GR : ');
readln(dane[n].cena);
write('Podaj liczbe utworow na plycie : ');
readln(dane[n].liczba);
for i:=1 to dane[n].liczba do
begin
if dane[n].autor='Rozni wykonawcy' then
begin
write('Podaj wykonawce ',i,' utworu: ');
readln(dane[n].utwor[i].wykonawca);
end;
write('Podaj tytul ',i,' utworu: ');
readln(dane[n].utwor[i].tytul);
write('Podaj czas utworu w formacie MM SS ');
readln(dane[n].utwor[i].czas.minuta,dane[n].utwor[i].czas.sekunda);
end;
end;

procedure lista(n:byte;dane:baza);
var
i:byte;
begin
if n>0 then
begin
writeln('Plyty w bazie:');
for i:=1 to n do
writeln(i:2,'.Wykonawca: ',dane[i].autor:22,' Tytul plyty: ',dane[i].tytul:22);
end;
if n=0 then
writeln('Baza jest pusta!!!!');
end;

procedure usun(var n:byte;var dane:baza);
var
i:byte;
begin
i:=0;
writeln('Wybierz plyte do skasowania');
lista(n,dane);
readln(i);
if n<>0 then
n:=n-1;
for i:=i to n do
dane[i]:=dane[i+1];
end;

procedure szczegol(n:byte;dane:baza);
var
i,p:byte;
begin
lista(n,dane);
writeln('Ktora plyte wyswietlic?? ');
readln(p);
writeln('Wykonawca: ',dane[p].autor,' Tytul plyty: ',dane[p].tytul);
writeln('Data wydania: ',dane[p].data.dzien,'.',dane[p].data.miesiac,'.',dane[p].data.rok,'r.');
writeln('Cena: ',dane[p].cena:3:2);
writeln('Lista utworow:');
for i:=1 to dane[p].liczba do
begin
write(i:3);
if dane[p].autor='Rozni wykonawcy' then
write(dane[p].utwor[i].wykonawca:22);
write(dane[p].utwor[i].tytul:22);
write(dane[p].utwor[i].czas.minuta:4,':',dane[p].utwor[i].czas.sekunda);
writeln;
end;
end;

procedure ceny(n:byte;dane:baza);
var
tab1:array [1..10] of real;
tab2:array [1..10] of byte;
i,j:byte;

begin
for i:=1 to n do
begin
tab1[i]:=dane[i].cena;
tab2[i]:=1;
end;

for i:=1 to n do
begin
for j:=2 to n do
begin
if tab2[j]=1 then
begin
if tab1[i]=tab1[j] then
begin
inc(tab2[i]);
dec(tab2[j]);
end;
end;
end;
end;
for i:=1 to n do
begin
if tab2[i]>0 then
begin
writeln('Plytek o cenie ',tab1[i]:4:2,' jest ',tab2[i]);
end;
end;
end;










var
n:byte;
q:char;
dane:baza;



begin
n:=0;
repeat
menu(q);
case q of
'1':dodaj(n,dane);
'2':usun(n,dane);
'3':lista(n,dane);
'4':szczegol(n,dane);
'5':ceny(n,dane);
end;


until q='6';
{ TODO -oUser -cConsole Main : Insert code here }
end.
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum www.ispwsznysa.fora.pl Strona Główna -> Programowania I Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin