Практична робота
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.
Протестувати
алгоритм декілька разів.
Немає коментарів:
Дописати коментар