вівторок, 13 березня 2018 р.

Алгоритми генерування і сортування розфарбуваних об’єктів


Практична робота 22.  Алгоритми генерування і сортування   розфарбуваних об’єктів

Завдання 1.  Петрик П’яточкін вишикував  у рядок слоненят та рахує їх по кожному кольору окремо. Всього буває 8 кольорів слоненят. У рядок вишикувались N (N>10) слоненят. Скільки слоненят кожного кольору стоїть перед Петриком? Створити алгоритм для підрахунку слоненят кожного кольору окремо, пройшовши всього один раз перед строєм. Кольори позначити цифрами від 1 до 8.
Program   SLON1;
const k=1000;
var a: array[1..k]  of  integer;       b: array[1..k] of  integer;      i, c, n, m: integer;
begin       n:=1+random(12);       writeln('кількість усіх слонів n=', n,' ');  
 writeln('Повна  послідовність  пофарбованих слонів  ');
 for i:=1 to n  do  begin   a[i]:=1+random(8); writeln(i,'ий слон  має колір:   ', a[i],' '); end; writeln;
 for c:=1 to 8 do    b[c]:=0;  writeln(' Кількість слонів  за  однаковим  кольором  ');
 for i:=1 to n do     b[a[i]]:=b[a[i]]+1;
 for i:=1 to 8 do    writeln(i, '-ий колір має:  ', b[i], '   слонів');  end.
Протестувати алгоритм декілька разів.

Завдання 2.  Вінні Пух любить складати віршики говорячи речення задом наперед. Якось йому попалось довге складне речення і він забув свій віршик, пробуючи його виговорити. Складіть програму, яка б допомагала ведмедику легко складати такі віршики. Зауваження: віршик може складатись як із 1 слова, так і з декількох, розділених пропусками. В кінці віршика ніколи не ставиться крапка. Довжина віршика менша за 255 символів.
Program   VINNI2;
var a,b: string;        i,n: integer;
begin    readln(a);    n:=length(a);  b:='  '; 
for  i:=n downto 1 do    b:=b+a[i];
 writeln ('Це твір-перевертень ВІННІ ПУХА: ',  b);  end.
Протестувати алгоритм декілька разів ввівши свій вірш в програму.

Завдання 3.  Кіт Леопольд пішов на рибалку та наловив риби. Кожну рибу він старанно зважив. Перша риба (найменша), яку він зважував важила рівно L грам. Кожна наступна рибина була на К грамів важча за попередню. Скільки заважила вся риба, яку наловив Леопольд, якщо відомо, що спіймав він N (N>0) риб?
Program   LEOPOLD3;
var    i, n, L, k, s, t :integer;
begin     n:=200+random(120);       writeln('кількість усіх риб  n=', n,'   ');     
L:=200+random(120);       writeln('вага найменшої рибини  L=', L,'  грам ');        
k:=300+random(120); writeln(' найменша різниця між вагою двох риб k=', k, '  грам');
 s:=0; t:=l;
 for i:=1 to n do   begin       s:=s+t;      t:=t+k;    end;     writeln (s);   end.
Протестувати алгоритм декілька разів.




Немає коментарів:

Дописати коментар