Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.86 KB | None | 0 0
  1. type
  2.     book = record
  3.         author: string;
  4.         title: string;
  5.         pages: longint;
  6.         year: longint;
  7.     end;
  8.    
  9.     arrOfString = array [1..100] of string;
  10.     arrOfBook = array [1..100] of book;
  11.    
  12. function contains (var authors: arrOfString; size: longint;
  13.                    elem: string): boolean;
  14. var
  15.     i: longint;
  16.     f: boolean;
  17. begin
  18.     f := false;
  19.     for i := 1 to size do
  20.         if (authors[i] = elem) then begin
  21.             f := true;
  22.             break;
  23.         end;
  24.     contains := f;
  25. end;
  26.  
  27. procedure sortByYear(var a: arrOfBook; size: longint);
  28. var
  29.     sorted: boolean;
  30.     i: longint;
  31.     temp: book;
  32. begin
  33.     repeat
  34.         sorted := true;
  35.         for i := 1 to size-1 do
  36.             if (a[i].year > a[i+1].year) then begin
  37.                 temp := a[i];
  38.                 a[i] := a[i+1];
  39.                 a[i+1] := temp;
  40.             end;
  41.     until (sorted);
  42. end;
  43.    
  44. var
  45.     a: arrOfBook;
  46.     authors: arrOfString;
  47.     N, i, j, k, size: longint;
  48.     max: book;
  49.     author: string;
  50.    
  51. begin
  52.     readln(N);
  53.     for i := 1 to N do begin
  54.         readln(a[i].author);
  55.         readln(a[i].title);
  56.         readln(a[i].pages);
  57.         readln(a[i].year);
  58.     end;
  59.     readln(author);
  60.    
  61.     max.pages := 0;
  62.     for i := 1 to N do
  63.         if (a[i].year >= 1980) and (a[i].year <= 2004) and
  64.            (a[i].pages > max.pages) then
  65.            max := a[i];
  66.     // answer 1
  67.     if (max.pages <> 0) then
  68.         writeln(max.author, ' ', max.title)
  69.     else
  70.         writeln('NONE');       
  71.    
  72.     k := 0;
  73.     for i := 1 to N do
  74.         if (a[i].author = author) then
  75.             inc(k);
  76.     // answer 2
  77.     writeln(k);
  78.    
  79.     size := 0;
  80.     for i := 1 to N do
  81.         if not (contains(authors, size, a[i].author)) then
  82.         begin
  83.             inc(size);
  84.             authors[size] := a[i].author;
  85.         end;
  86.    
  87.     for i := 1 to size do begin
  88.         k := 0;
  89.         for j := 1 to N do begin
  90.             if (authors[i] = a[j].author) then
  91.                 inc(k);
  92.         end;
  93.         // answer 3
  94.         writeln(authors[i], ' ', k);
  95.     end;   
  96.    
  97.     sortByYear(a, N);
  98.     // answer 4
  99.     for i := 1 to N do
  100.         writeln(a[i].author, ' ', a[i].title, ' ',
  101.                 a[i].pages, ' ', a[i].year);   
  102. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement