Фонд Освітніх та Інформаційних Технологій


Скачати 206.8 Kb.
Назва Фонд Освітніх та Інформаційних Технологій
Сторінка 1/4
Дата 20.06.2013
Розмір 206.8 Kb.
Тип Документи
bibl.com.ua > Інформатика > Документи
  1   2   3   4

Фонд Освітніх та Інформаційних Технологій

Рішення (Частина 4)

Завдання 165

{ Бінарний пошук у впорядкованому масиві }
label
bye;
const
Нв=10;
var
а:array[1..10] of integer; { масив цілих }
obr:integer; { зразок для пошуку }
ok: boolean; { TRUE - масив впорядкований }
sred,verh,niz:integer; { номери середнього, верхнього
і нижнього ел-тов масиву}
found:boolean;{ ознака збігу із зразком } n:integer; { лічильник порівнянь із зразком } i:integer;
begin
{ введення масиву }
writeln('*** Бінарний пошук у впорядкованому масиві ***');
write('Введіть масив (у одному рядку ',нв);
writeln (' цілих чисел) і натисніть '); write('->'); for i:=l to Hb-1 do
read(а[i]); readln(а[HB]);
{ перевіримо, чи є масив упорядоченнteln('Середнє зростання: ',sred:6:1', см'); writeln ГУ ',m,'-x учнів зростання перевищує ', 'середній.');
end
else writeln('Немає даних для обробки.'); readln; end.


Завдання 167

{ Обчислення суми елементів масиву (по стовпцях) const
Row=3; { к-ть рядків } Col=5; { к-ть стовпців } var
а: array[1..ROW,1..COL] of integer; { масив } s: array[1..COL] of integer; { сума елементів } i,j: integer; begin
writeln('Введіть масив.');
writeln('Після введення елементів кожного рядка'
COL', цілих чисел, натискайте '); for i:=l to ROW do { ROW рядків } begin
write('->');
for j:=l to Col-1 do
read(а[i,j]); readln(а[i,col]); end;
writeln('Введений масив'); for i:=l to ROW do begin
for j:=1 to Col-1 do
write(а[i,j]:4); writeln(а[i,col]:4); end; { обробка }
for j:=1 to COL do { для кожного стовпця }
for i:=l to ROW do { підсумовуємо ел-ти одного стовпця }
writeln('---------
for i:=l to COL do
write(s[i]:4); writeln;
readln;
end.


Завдання 170

{ обчислення визначника матриці другого порядку } var
а: array[1..2,1..2] of real; det: real; { визначник (детермінант) } i,j: integer; { індекси масиву } begin
writeln('Введіть матрицю другого порядку.'); writeln('Після введення елементів рядка натискайте '); for i:=l to 2 do begin
write('->'); read(а[i,1]); readln(а[i,2]); end; det:=a[l,l]*a[2,2] - а[l,2]*a[2,1];
writeln('Визначник матриці '); for i:=l to 2 do begin
for j:=1 to 2 do
write(а[i,j]:6:2); writeln; end;
writeln('рівний ',det:6:2); readln; end.


Завдання 171

{ Перевіряє, чи є матриця магічним квадратом } const
Мах=5; { максимальний розмір матриці }
array[1..Мах,1..MAX] of integer; { матриця } n: integer; { розмір матриці, що перевіряється } ok:boolean; { TRUE - матриця є маг. квадратом} i,j: integer; { індекси масиву }
sum: integer; { сума ел-тов головної діагоналі матриці } temp: integer;{ сума елементів поточного рядка, стовпця або другої діагоналі матриці }
begin
write('Введіть розмір матриці (3..4) ',
"і натисніть ->'); readln(n);
Writeln('Введіть рядки матриці'); Writeln('Після введення строки',п', цілих чисел'
'натискайте '); for i:=l to n do begin
write('->');
for j:=l to n-1 do read(а[i,j]); readln(а[i, n]); end;
ok:=true; { хай матриця - магічний квадрат } sum:=0;
{ обчислимо суму елементів головної діагоналі } for i:=l to n do sum:=sum+a[i,i];
{ обчислюємо суми по рядках}
i:=l;
repeat
temp:=0; { сума ел-тов поточного рядка }
for j:=l to n do temp:=temp+a [i,j];
i:=i+l;
if temp <> sum then ok:=false; until (not ok) or (i > n);
if ok then
( тут сума елементів кожного рядка рівна сумі ел-тов головної діагоналі } begin
{ обчислюємо суми по стовпцях }
j:=l;
repeat
temp:=0; { сума ел-тов поточного стовпця } for i:=l to n do temp:=temp+a[i,j]; j:=j+l;
if temp <> sum then ok:=false; until (not ok) or (j > n) ; if ok then
{ тут сума ел-тов кожного рядка
рівна сумі ел-тов кожного стовпця і рівна сумі ел-тов головної діагоналі} begin
{ обчислимо суму ел-тов другої
головної діагоналі } temp:=0; j:=n;
for i:=l to n do begin
temp:=temp+a[i,j];
end;
if temp <> sum then ok:=false; end; end;
write('Введена матриця '); if not ok
then write('не ');
writeln('є магічним квадратом.'); readln;
end.


Завдання 173

{ Підводить підсумки Олімпійських ігор } const
N=10; {кількість країн-учасниць }
strana: array[1..N] of string[9]=('Австрія','германія'
'Канада','китай','корея','норвегия','россия', 'Сша','фінляндія'array[1..Мах,1..MAX] of integer; ( матриця } n: integer; { розмір матриці, що перевіряється } ok:boolean; { TRUE - матриця є маг. квадратом} i,j: integer; { індекси масиву }
sum: integer; { сума ел-тов головної діагоналі матриці ) temp: integer;{ сума елементів поточного рядка, стовпця або другої діагоналі матриці }
begin
write('Введіть розмір матриці (3..4) ',
'і натисніть ->'); readln(n);
Writeln('Введіть рядки матриці'); Writeln('Після введення строки',п', цілих чисел'
1 натискайте '); for i:=1 to n do begin
write ('->');
for j:=l to n-1 do read(а[i,j]); readln(а[i,n]); end;
ok:=true; { хай матриця - магічний квадрат } sum:=0;
{ обчислимо суму елементів головної діагоналі } for i:=1 to n do sum:=sum+a[i,i];
{ обчислюємо суми по рядках}
i:=l;
repeat
temp:=0; ( сума ел-тов поточного рядка }
for j:=l to n do temp:=temp+a[i,j];
i:=i+l;
if temp <> sum then ok:=false; until (not ok) or (i > n) ;
if ok then
{ тут сума елементів кожного рядка рівна сумі ел-тов головної діагоналі }
begin
{ обчислюємо суми по стовпцях }
repeat
temp:=0; { сума ел-тов поточного стовпця } . for i:=l to n do temp:=temp+a[i,j]; j:=j+l;
if temp <> sum then ok:=false; until (not ok) or (j > n) ; if ok then
{ тут сума ел-тов кожного рядка
рівна сумі ел-тов кожного стовпця і рівна сумі ел-тов головної діагоналі} begin
( обчислимо суму ел-тов другою
головній діагоналі } temp:=0; j:=n;
for i:=l to n do begin
temp:=temp+a[i,j]; j:=j-l end;
if temp <> sum then ok:=false; end; end;
write('Введена матриця '); if not ok
then write('не ');
writeln('є магічним квадратом.'); readln; end.


Завдання 173

f Підводить підсумки Олімпійських ігор } const
N=10; (кількість країн-учасниць }
strana: array[1..N] of string[9]=('Австрія','германія'
'Канада','китай','корея','норвегия','россия', 'Сша','фінляндія'array[1..Мах,1..MAX] of integer; { матриця ) n: integer; { розмір матриці, що перевіряється } ok:boolean; { TRUE - матриця є маг. квадратом} i,j: integer; { індекси масиву }
sum: integer; { сума ел-тов головної діагоналі матриці temp: integer;{ сума елементів поточного рядка, стовпця або другої діагоналі матриці }
begin
write('Введіть розмір матриці (3..4) ',
'і натисніть ->'); readln(n);
Writeln('Введіть рядки матріци1); Writeln('Після введення строки',п', цілих чисел'
'натискайте '); for i:=1 to n do begin
write('->');
for j:=l to n-1 do read(а[i,j]); readln(а[i,n]); end;
ok:=troe; { хай матриця - магічний квадрат } sum:=0;
{ обчислимо суму елементів головної діагоналі } for i: =1 to n do sum:=sum+a[i,i];
{ обчислюємо суми по рядках}
i :=1
repeat
temp:=0; { сума ел-тов поточного рядка }
for j:=l to n do temp:=temp+a[i,j];
i:=i+l;
if temp <> sum then ok:=false; until (not ok) or (i > n) ;
if ok then
{ тут сума елементів кожного рядка рівна сумі ел-тов головної діагоналі }
end.
{ обчислюємо суми по стовпцях }
repeat
temp:=0; { сума ел-тов поточного стовпця }, for i:=l to n do temp:=temp+a[i,j];
if temp <> sum then ok:=false; until (not ok) or (j > n); if ok then
( тут сума ел-тов кожного рядка
рівна сумі ел-тов кожного стовпця і рівна сумі ел-тов головної діагоналі} begin
( обчислимо суму ел-тов другою
головній діагоналі } temp:=0; j:=n;
for i:=l to n do begin
temp:=temp+a[i,j];
end;
if temp <> sum then ok:=false; end; end;
write('Введена матриця '); if not ok
then write('не '); writeln('є магічним квадратом.');
readln;
{ Підводить підсумки Олімпійських ігор } const
N=10; (кількість країн-учасниць }
strana: array[1..N] of string[9]=('Австрія','германія'
'Канада','китай','корея','норвегия','россия', 'Сша','фінляндія'абліца результатів } result: arrayfl..N+l, 1..5] of integer; { N+1-я рядок використовується як буфер при сортуванні таблиці }
i,j: integer;
max: integer; { номер рядка таблиці, в якій
кількість очок максимальна }
buf: string[9]; { використовується при сортуванні } begin
writeln('Підсумки Олімпійських ігор');
writeln('Введіть в одному рядку кількість золотих ', 'срібних і бронзових медалей.');
{ введення початкових даних } for i:=l to N do begin
write(strana'[i] ->');
read(result[i,1],result[i,2]); { к-ть золотих
і срібних }
readln(result[i,3]); { к-ть бронзових } end;
{ обчислимо загальну к-ть медалей і окулярів } for i:=l to N do begin
result[i,4]:=result[i, 1]+result[i,2]+result[i,3]; result [i,5]:=result[i,1]*7+result[i,2]* 6+result[ i, 3 ]* 5 ;
end;
{ сортування масиву відповідно до кількості очок } { методом простого вибору } for i:=l to N-l do begin
( у частині таблиці починаючи з рядка i знайти j-ю рядок, в якому елемент result[j, 5] максимальний }
max:=i; { хай це рядок з номером i } for j:=i+l to N do
if result[j,5]> result[max,5] thenmax:=j;
{ Обміняємо i-ю рядок з рядком з номером max Як буфер використовуємо останній, не використовуваний рядок таблиці. } buf:=strana[i]; strana[i]:=strana[max]; strana[max]:=buf; for j:=1 to 5 do begin
result[N+l,j]:=result[ i, j ] ; end;
for j : =1 to 5 do begin
result[i,j]:=result[max,j]; end;
for j:=1 to 5 do begin
result[max,j]:=result[N+l,j]; end; end;
{ тут таблиця впорядкована }
writeln;
writeln('Підсумки зимової Олімпіади в Нагано, 1998 г.1);
writeln{'страна':12,'золото':8,'серебро':8,'бронза':8
'Всего':8,'очков' : 8) ; for i:=l to N do begin
write(i:2,strana[i]:10); for j:=1 to 5 do
write(result[i,j]:8); writeln; end; readln; end.


Завдання 174

( Гра "Вгадай число" }
const
N=3; { рівень складності - кількість цифр в числ
igrok: array[1..N]of char; { комбінація гравця } comp: array[1..N]of char; { комбінація комп'ютера }
a:- arrayfl..N] of boolean; { а[i]= TRUE, якщо i-я цифра комп'ютера співпала з однією з цифр гравця }
ugad:integer;{ вгадано чисел }
mesto:integer;{ з них на своїх місцях }
i/ji integer; { індекси масиву }begin
writeln('Комп'ютер задумав тризначне число. ',
'Ви повинні його відгадати.'); writeln('Після введення чергового числа, вам буде ',
'повідомлено, скільки цифр'); writeln('вгадано і скільки з них знаходяться ',
'на своїх місцях. ') ; writeln('Після введення числа натискайте .');
{ комп'ютер "замислює" своє число }
randomize;
for i:=l to N do
compfi]:=chr(random(lo)+48); ( 48 - код символу '0' }
write('Комп'ютер задумав: '); for i:=l to N do write(comp[i]); writeln;
repeat
write('Ваш варіант-> '); {отримати варіант гравця } for i:=l to N-l do read(igrok[i]); readln(igrok[N]);for i:=l to N do а[i]:=FALSE;
( а[i]= TRUE, якщо i-я цифра числа комп'ютера
співпала з однією з цифр числа гравця }
{ перевіримо, скільки цифр вгадано } ugad:=0;
for i:=l to N do { перевіримо кожну цифру гравця } for j : =1 to N do begin
if (igrok[i]= comp[j]) and not а[j] then begin
ugad:=ugad+l;
а[j]:=TRUE; { заборонимо порівнювати
цю цифру комп'ютера з цифрами гравця, що залишилися, ще не перевіреними } end; end;
{ перевіримо, скільки на своїх місцях }
mesto:=0;
for i:=l to N do
if igrok[i]= comp[i] then mesto:=mesto+l;
writeln('Вгадано:',ugad,'. На своїх місцях:',mesto); until (ugad « N) and (mesto = N) ; writeln('***ви ВГАДАЛИ ЧИСЛО!***'); write('Натисніть для завершення.'); readln; end.


Завдання 175

{ Телеграф - передача повідомлень за допомогою азбуки Морзе. { Зауваження: можливо треба збільшити величини затримок. } uses Crt; const
morse: array[128..159] of string[4]=(
I I _
/
I 1 f
I I
I I _ f
1 I
I
I I
. I »___
I I /
1 1 /
_ I I _
1 1 f
I 1 I .
. 1 f .
{А, Би, В, Г}
{Д,е,ж,3} {І, Й,к,л} {М, Н,о,п} {Р,с,т,у} {Ф,х,ц,ч} {Ш,щ,',и} {Ь,е,ю,я}
{параметри передачі }
Tone=100; { частота сигналу (гц) }
И=50; { тривалість (мс) "крапки" )
L2=100; ( тривалість (мс) "тире"}
L3=50; { пауза (мс) між крапками і тире однієї букви }
L4=100; { пауза (мс) між буквами }
L5=150; { пауза (мс) між словами }
var
rues : string; sim: string[4];
{ повідомлення }
( символ в кодуванні Морзе -
послідовність крапок і тире }
{ "передаваний" знак - тире або крапка { номер символу і знаку }
znak: string[l] i,j: integer; in
Clrscr;
writelnc*** Телеграф ***');
writeln('Введіть повідомлення, яке треба передати');
writeln('(використовуйте тільки великі російські букви)');
write('->');
readln(mes);
for i:=l to Length(mes) do
begin
if (mes[i] >= 'a') and (mes[i] <='я') then begin
( визначимо код чергової букви (ф-я Ord) повідомлення і отримаємо з таблиці кодування відповідний елемент масиву - послідовність крапок і тире sim:=morse[ord(mes[i])]; repeat
if (sim[j]= •-•) or (sim[j]= begin
write (sim[j]) ; sound(1000); case sim[j] of 1.': Delay(50); '-': Delay(loo); end;
Nosound; Delay(50); end;
then
until ((sim[j]= ' ') or (j>4)); Delay(100); { пауза між буквами } end else
if mes[i]= ' ' then ( пропуск між словами } begin
write(' '); { пропуск між словами повідомлення } Delay(150); end; end;
writeln;
writeln('Повідомлення передане!'); writeln('Для завершення роботи з програмою натисніть ',
|'); readln; end.


Завдання 177

{ Функція max повертає максимальне з двох чисел function max(а,b: integer): integer; begin
if а > b
then max:=a else max:=b; end;


Завдання 178

{ Повертає результат порівняння чисел
у вигляді символу відношення } function Compare(а,b: real): char; begin
if а > b then Compare:='>' else
if а < b then Compare:='<�•
else Compare:='='; end;
xl,x2: real; { порівнювані числа }
res: char; { результат порівняння } begin
writeln('Введіть два числа і натисніть ');
write('->');
readln(xl,x2);
res:=compare(xl,x2); ( виклик функції програміста }
writeln(xl:6:2,res,x2:6:2);
readln; end.


Завдання 179

{ Обчислює опір електричному ланцюгу } function Sopr(rl,r2: real; t: integer): real; ( rl,r2 - величини опорів t - тип з'єднання:
1 - послідовне;
2 - паралельне.
Якщо тип з'єднання вказаний невірно, то повертає -1 }
begin
if t=l then Sopr:= rl+r2;
if t=2 then Sopr:= rl*r2/(rl+r2)
else Sopr:=-1; { невірно вказаний тип з'єднання} end;


Завдання 180

{ Обчислення ступеня числа з використанням властивостей логарифмів }
function Instep(а,b:real):real;
begin
( А в сепені В рівно З
Логарифмуємо обидві частини рівності і отримуємо: В*in (A) = In (С)
Нас цікавить значення З, тому обчислюваний Е в ступені В*in(А). Значення цього виразу рівне З, що і потрібно було обчислити. }
Instep:=exp(b*ln(a)); end;
var
а: real; { число }
b: real; { ступінь }
з: real; { число в ступені } begin
writeln('Введіть число і показник ступеня');
readln(а,b);
c:=instep(а,b);
writeln(a:6:3', в ступені ',ь:6:3' = ',с:б:3);
readln; end.
{ обчислює дохід по внеску }
function Dohod(sum: real; { сума внеску }
stavka: real; { процентна ставка (річних) } srok: integer { термін внеску (днів) } ): real; begin
Dohod:=sum*(stavka/100/365)*srok; { 365 к-ть днів
у році } end;

  1   2   3   4

Схожі:

Фонд Освітніх та Інформаційних Технологій
Обробка послідовності дробових чисел'); writeln('Після введення кожного числа натискайте '); sum:=0
Фонд Освітніх та Інформаційних Технологій
Оголосите змінні, необхідні для обчислення вартості покупки, що складається з декількох зошитів, олівців і лінійки
Фонд Освітніх та Інформаційних Технологій
Дані дві цілі змінні а, b. Скласти фрагмент програми, після виконання якого значення змінних поменя
Фонд Освітніх та Інформаційних Технологій
У наступних завданнях змінні x, у, z передбачаються опісанними як array n] of integer (n деяке натуральне число, більше 0), якщо...
Фонд Освітніх та Інформаційних Технологій
Проте, в Turbo Pascal аргумент функції Sin повинен бути виражений в радіанах (1 радий. = 180 1415925, де 1415926 число "ПІ").)
Фонд Освітніх та Інформаційних Технологій
Проте, в Turbo Pascal аргумент функції Sin повинен бути виражений в радіанах (1 радий. = 180 1415925, де 1415926 число "ПІ").)
ВИКОРИСТАННЯ НОВІТНІХ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ НА УРОКАХ ФІЗИКИ
Для гармонійного поєднання останніх досягнень інформаційних технологій та шкільного курсу вивчення фізики постає проблема створення...
Фонд Освітніх та Інформаційних Технологій
Якщо на одну шальку терезів посадити Даринку, яка важить кілограмів, і Наталку, яка важить на 5 кілограмів менше, а на іншу насипати...
СТВОРЕННЯ ОСВІТНЬОГО СЕРЕДОВИЩА ДЛЯ ПІДГОТОВКИ ПЕДАГОГІВ ЗАСОБАМИ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ
Т педагогічних наук, доцент кафедри інноваційних та інформаційних технологій. Шевченко Людмила Станіславівна – кандидат педагогічних...
Лекція Інформатизація діяльності інформаційних установ
Лекція Інформатизація діяльності інформаційних установ. Електронний документний фонд як модель управління інформаційними ресурсами....
Додайте кнопку на своєму сайті:
Портал навчання


При копіюванні матеріалу обов'язкове зазначення активного посилання © 2013
звернутися до адміністрації
bibl.com.ua
Головна сторінка