Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Project1;
- uses
- crt, DOS;
- type
- listPtr = ^list;
- list = record
- next: listPtr;
- name: String;
- points: Double;
- end;
- procedure listStartAdd(var listStart: listPtr; var listEnd: listPtr);
- var
- newElement: listPtr;
- begin
- clrScr;
- newElement := listStart;
- if listStart = NIL then
- begin
- New(listStart);
- writeLn('Wprowadz nazwisko: ');
- readLn(listStart^.name);
- writeLn('Wprowadz liczbe punktow: ');
- readLn(listStart^.points);
- listStart^.next := listEnd;
- end else
- begin
- new(newElement);
- newElement^.next := listStart;
- listStart := newElement;
- writeLn('Wprowadz nazwisko: ');
- readLn(newElement^.name);
- writeLn('Wprowadz liczbe punktow: ');
- readLn(newElement^.points);
- writeLn('Niepoprawne dane!');
- end;
- end;
- procedure listEndAdd(var listStart: listPtr; var listEnd: listPtr);
- var
- newElement: listPtr;
- begin
- clrScr;
- newElement := listStart;
- if listStart = NIL then
- begin
- New(newElement);
- writeLn('Wprowadz nazwisko: ');
- readLn(newElement^.name);
- writeLn('Wprowadz liczbe punktow: ');
- readLn(newElement^.points);
- newElement^.next := listEnd;
- listStart := newElement;
- end else
- begin
- while newElement^.next <> NIL do
- begin
- newElement := newElement^.next;
- end;
- New(newElement^.next);
- newElement := newElement^.next;
- writeLn('Wprowadz nazwisko: ');
- readLn(newElement^.name);
- writeLn('Wprowadz liczbe punktow: ');
- readLn(newElement^.points);
- newElement^.next := listEnd;;
- end;
- end;
- procedure ListStartdelete(var listStart: listPtr);
- var
- pointer: listPtr;
- begin
- if listStart = NIL then
- begin
- clrScr;
- writeLn('Nie moge usunac - lista pusta!');
- writeLn;
- writeLn('Nacisnij dowolny klawisz, aby powrocic do menu...');
- ReadKey;
- end else
- begin
- pointer := listStart;
- listStart := pointer^.next;
- dispose(pointer);
- end;
- end;
- procedure listEndDelete(var listStart: listPtr; var listEnd: listPtr);
- var
- pointer1, pointer2: listPtr;
- begin
- if listStart = NIL then
- begin
- clrScr;
- writeLn('Nie moge usunac - lista pusta!');
- writeLn;
- writeLn('Nacisnij dowolny klawisz, aby powrocic do menu...');
- ReadKey;
- end else
- begin
- pointer1 := listStart;
- while pointer1^.next <> NIL do
- begin
- pointer2 := pointer1;
- pointer1 := pointer1^.next;
- if pointer1^.next = NIL then
- end;
- pointer2^.next := listEnd;
- dispose(pointer1);
- end;
- end;
- procedure listClear(var listStart: listPtr);
- var
- pointer: listPtr;
- begin
- while listStart <> NIL do
- begin
- pointer := listStart;
- listStart := pointer^.next;
- dispose(pointer);
- end;
- end;
- procedure listShow(var listStart: listPtr);
- var
- pointer: listPtr;
- begin
- clrScr;
- pointer := listStart;
- if pointer = NIL then
- begin
- writeLn('Lista pusta!');
- end else
- begin
- writeLn('Nazwisko: ', pointer^.name);
- writeLn('Punkty: ', pointer^.points:0:1);
- while pointer^.next <> NIL do
- begin
- pointer := pointer^.next;
- writeLn('Nazwisko: ', pointer^.name);
- writeLn('Punkty: ', pointer^.points:0:1);
- end;
- end;
- writeLn;
- writeLn('Nacisnij dowolny klawisz, aby powrocic do menu...');
- ReadKey;
- end;
- procedure findLargest(var listStart: listPtr);
- var
- pointer: listPtr;
- largest: Double;
- foundName: String;
- begin
- clrScr;
- pointer := listStart;
- if pointer = NIL then
- begin
- writeLn('Lista pusta!');
- end else
- begin
- largest := pointer^.points;
- foundName := pointer^.name;
- while pointer^.next <> NIL do
- begin
- pointer := pointer^.next;
- if pointer^.points > largest then
- begin
- largest := pointer^.points;
- foundName := pointer^.name;
- end;
- end;
- writeLn('Najwyzszy wynik to: ', largest:0:1);
- writeLn('Uzyskal/a go: ', foundName);
- writeLn;
- writeLn('Nacisnij dowolny klawisz, aby powrocic do menu...');
- ReadKey;
- end;
- end;
- procedure findLeast(var listStart: listPtr);
- var
- pointer: listPtr;
- least: Double;
- foundName: String;
- begin
- clrScr;
- pointer := listStart;
- if pointer = NIL then
- begin
- writeLn('Lista pusta!');
- end else
- begin
- least := pointer^.points;
- foundName := pointer^.name;
- while pointer^.next <> NIL do
- begin
- pointer := pointer^.next;
- if pointer^.points < least then
- begin
- least := pointer^.points;
- foundName := pointer^.name;
- end;
- end;
- writeLn('Najnizszy wynik to: ', least:0:1);
- writeLn('Uzyskal/a go: ', foundName);
- writeLn;
- writeLn('Nacisnij dowolny klawisz, aby powrocic do menu...');
- ReadKey;
- end;
- end;
- var
- listStart, listEnd, pointer: listPtr;
- choice: String;
- begin
- listEnd:= NIL;
- listStart := listEnd;
- while true do
- begin
- clrScr;
- WriteLn('1. Dodaj element na poczatku listy');
- WriteLn('2. Dodaj element na koncu listy');
- WriteLn('3. Usun element z poczatku listy');
- WriteLn('4. Usun element z konca listy');
- WriteLn('5. Wyczysc liste');
- WriteLn('6. Wyswietl cala liste');
- WriteLn('7. Znajdz najmniejszy wynik');
- WriteLn('8. Znajdz najwiekszy wynik');
- WriteLn('9. Wyjscie');
- ReadLn(choice);
- case choice of
- '1': listStartAdd(listStart, listEnd);
- '2': listEndAdd(listStart, listEnd);
- '3': listStartDelete(listStart);
- '4': listEndDelete(listStart, listEnd);
- '5': listClear(listStart);
- '6': listShow(listStart);
- '7': findLeast(listStart);
- '8': findLargest(listStart);
- '9': break;
- end;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement