|
www.ispwsznysa.fora.pl Informatyka Stosowania PWSZ NYSA
|
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
|
Wysł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 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
|
Wysł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 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
|
Wysł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 |
|
|
|
|
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
|