Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Записати у файл cgisla.dat 100 перших цiлих чисел

Sin X;

Cos X;

Tg X.

Program Example_160;

Uses crt;

Var N:byte; {N – номер функції, що обчислюється}

X,Y:real; {X – значення змінної, Y – значення

функції}

Begin

Clrscr; {Очищення екрану}

Write(‘Введіть значення Х: ’);

Readln(Х);

Write(‘Введіть номер функції, що обчислюється: ’);

Writeln(‘1 - sin’);

Writeln(‘2 - cos’);

Writeln(‘3 - tg’);

Readln(N);

Writeln(‘Результат обчислень:’)

Case N of

1: begin Y:=sin(X); writeln(‘sin(x)=’,Y:8:2); end;

2: begin Y:=cos(X); writeln(‘cos(x)=’,Y:8:2); end;

3: begin Y:=sin(X)/cos(X); writeln(‘tg(x)=’,Y:8:2);

end;

Else writeln(‘Помилка вхідних даних.’);

End;

Readkey; {Затримка зображення на екрані до

натискання будь якої клавіші}

End.

 

№164. Розробити алгоритм-"лотерею", який, використовуючи генератор випадкових чисел, визначатиме призи:

1) комп'ютер;

2) принтер;

3) сканер;

4) компакт-диск;

5) набір дискет.

 

Program Example_164;

Uses crt;

Var N:byte; {N – генерований номер лотереї}

Begin

Clrscr; {Очищення екрану}

Randomize; {Процедура, що примушує програму

генерувати при кожному новому

запуску програми нові числа}

N:=random(4)+1;

Write(‘Вітаємо! Ви виграли ’)

Case N of

1: writeln(‘комп’ютер!!!’);

2: writeln(‘принтер!!!’);

3: writeln(‘сканер!!!’);

4: writeln(‘компакт-диск!!!’);

5: writeln(‘набір дискет!!!’);

End;

Readkey; {Затримка зображення на екрані до

натискання будь якої клавіші}

End.

 

№165. Дано натуральне число N (N <= 100), яке позначає вік людини. Додати до цього числа відповідно слова: "рік", "роки", "років", наприклад: 1 рік, 12 років, але 43 роки.

 

Program Example_165;

Uses crt;

Var Years:byte; {Years – вік людини}

Begin

Clrscr; {Очищення екрану}

Write(‘Введіть Ваш вік: ’);

Readln(Years);

Write(‘Вам ’,Years);

If (Years>=10) and (Years<=20)

Then writeln(‘років’)

Else

Case Years mod 10 of

1: writeln(‘рік.’);

2..4: writeln(‘роки.’);

0,5..9: writeln(‘років.’);

End;

Readkey; {Затримка зображення на екрані до

натискання будь якої клавіші}

End.

Цикли

№177. Ненажера Стецько пробрався перед обідом у шкільну їдальню, де вже були накриті столи, і почав швиденько з'їдати ще тепленьки булочки, що стояли на столах. З першого столу він з'їв x1 булочок, з другого - х2, і, відповідно, з останнього - xn булочок. Але за ним стежив черговий по їдальні Андрійко та ретельно все фіксував на своєму калькуляторі: до булочок, з'їдених з першого столу, додав кількість булочок, що зникли з другого столу, і т.д. Допоможіть крок за кроком відтворити інформацію, яку дістав Андрійко на своєму калькуляторі.

 

Program Example_177;

Uses crt;

Var I,N:word; {I – параметр циклу, N –

кількість столів в їдальні,

тобто кількість повторень}

Sum,X:word; {X – кількість булочок на

черговому столі їдальні, Sum –

загальна кількість булочок, що

з’їв Стецько}

Begin

Clrscr;

Sum:=0; {На початку роботи програми Стецько

ще нічого не з’їв}

Write(‘Введіть кількість столів в їдальні: ’);

Readln(N);

For I:=1 to N do

Begin

Write(‘Введіть кількість булочок на

черговому столі: ’);

Readln(X);

Sum:=Sum+X;

Writeln(‘На даний момент Стецько з”їв

’,Sum,’ булочок.’);

End;

Readkey; {Затримка зображення на екрані}

End.

 

№183. Компанія бабусь поїхала на мотоциклах на курси комп'ютерної грамотності. Попереду на мотоциклі без глушника їхала одна бабуся, за нею - дві, потім - три і т.д. Скільки бабусь їхало на заняття, якщо приголомшені пішоходи всього нарахували N рядів? Чи змогли бабусі зайняти всі місця у класі, якщо там стояло k рядів по l комп'ютерів в кожному? Скільки вільних місць залишилося?

 

Program Example_183;

Uses crt;

Var I,N,Sum:word; {I – параметр циклу, N –

кількість рядів мотоциклів,

тобто кількість повторень, Sum –

загальна кількість бабусь, що

приїхали на курси}

Place,k,l:word; {k – кількість рядів в

комп’ютерному класі, l –

кількість комп’ютерів в

кожному ряду, Place – кількість

місць, що вистачила для бабусь}

Begin

Clrscr;

Sum:=0;

Write(‘Введіть кількість рядів мотоциклів, що

нарахували пішоходи: ’);

Readln(N);

For I:=1 to N do Sum:=Sum+I;

Writeln(‘Кількість бабусь, що приїхала на курси ’,Sum);

Writeln(‘Кількість комп”ютерів на курсах ’,k*l);

If Sum < k*l Then writeln(‘Бабусі не змогли зайняти всі місця.’)

Else writeln(‘Бабусі зайняли всі місця.’);

Place:=Sum – k*l;

If Place>0

Then writeln(‘Бабусям не вистачило ’,Place,’місць.’);

Readkey; {Затримка зображення на екрані}

End

Прості цикли

 

№179.На дверях ліфта висіло загрозливе попередження про те, що двері зачиняються самі в той самий момент, коли зайвий за вагою пасажир переступить поріг ліфта. Котрий пасажир постраждає, якщо ліфт витримує вагу не більше S кг, а вага пасажирів, що стоять у черзі до ліфта, дорівнює відповідно a1, a2, a3, … an?

 

Program Example_179;

Uses crt;

Var N:word; {I – номер пасажира, що увійшов у

ліфт}

Sum,A,S:real; {Sum – сумарна вага пасажирів, що

знаходяться в ліфті, A – вага

чергового пасажира, що увійшов до

ліфта, S – критична вага, що може

бути піднята ліфтом}

Begin

Clrscr;

Sum:=0; {На початку роботи програми в ліфті

N:=0; немає пасажирів}

Write(‘Введіть критичну вагу, що піднімає ліфт: ’);

Readln(S);

Repeat

Write(‘Введіть вагу чергового пасажира: ’);

Readln(А);

Sum:=Sum+А;

N:=N+1;

Until Sum>S;

Writeln(‘Постраждає ’,N,’-й пасажир.’);

Readkey; {Затримка зображення на екрані}

End.

 

№180. Коли Василині Премудрій виповнилося 18 років, Чахлик Невмирущий вирішив взяти її заміж. Василина запитала Чохлика, скільки у нього скринь із золотом. Чахлик сказав, що в нього зараз n скринь і щороку додається ще по m скринь. Василина пообіцяла, що вийде заміж тоді, коли у Чохлика буде k повних скринь із золотом. Скільки років буде тоді нареченій?

Program Example_180;

Uses crt;

Var m,n,k:word; {n – початкова кількість скринь з

золотом, m – щорічний “прибуток”

Чахлика Невмирущого, k – “потреби”

Василини Премудрої}

Sum,Years:word; {Sum – щорічне накопичення Чахлика

Невмирущого, Years – вік Василини

Премудрої}

Begin

Clrscr;

Write(‘Введіть початкову кількість скринь з золотом: ’);

Readln(n);

Write(‘Введіть щорічний прибуток Чахлика: ’);

Readln(m);

Write(‘Введіть “потреби” Василини Премудрої: ’);

Readln(k);

Sum:=n; {Початковий “капітал” Чахлика}

Years:=18; {Початковий вік Василини}

While Sum<=k do

Begin

Sum:=Sum+m;

Years:=Years+1;

End;

Writeln(‘Василині вже виповнилося ’,Years,’ років.‘);

Readkey; {Затримка зображення на екрані}

End.

 

 

№181. Капосний папуга навчився висмикувати у дідусі Василя волосся, яке ще залишилося у того на голові. Почавши з однієї волосини, він щодня збільшував порцію вдвічі. Через скільки днів дідусеві не знадобиться гребінець, якщо спочатку в нього на голові було аж N волосин?

 

Program Example_181;

Uses crt;

Var S,N,Sum:longint; {S – кількість волосся, що буде

висмикнуто, Sum – кількість

волосся, що залишилося в

дідуся на голові, N –

початкова кількість волосся}

Day:word; {Day – номер дня, який папуга

знущається над дідусем}

Begin

Clrscr;

Write(‘Введіть початкову кількість волосся в дідуся

на голові: ’);

Readln(N);

If N=0

Then writeln(‘Дідусь вже лисий, папузі нічого робити!’)

Else

begin

Day:=0;

Sum:=N;

S:=1; {Початкова кількість волосся, що

буде висмикнутою капосним папугою}

Repeat

Sum:=Sum-S; {Зменшення дідусевого волосся}

S:=S*2;

Day:=Day+1; {Підрахунок номера дня}

Until Sum<=0;

Writeln(‘Папуга знущався над дідусем ’,Day,’ днів.’);

End;

Readkey; {Затримка зображення на екрані}

End.

 

№189(2). Знайти значення (1 + 0.1)(2 + 0.2)...(9 + 0.9)

 

Program Example_189_2;

Uses crt;

Var I:word; {I – параметр циклу}

Rez:real; {Rez – результат обчислень}

Begin

Clrscr;

Rez:=1; {Початкове значення дорівнює 1, тому що

результат являється накопиченням

добутку}

For I:=1 to 9 do Rez:=Rez*(I+0.1*I);

Writeln(‘Rez= ’,Rez:8:2);

Readkey; {Затримка зображення на екрані}

End.

№190(1). Дано ціле n. Визначити n!

 

Program Example_190_1;

Uses crt;

Var I,n:word; {I – параметр циклу}

Factorial:longint; {Factorial – результат

обчислень}

Begin

Clrscr;

Factorial:=1; {Початкове значення дорівнює 1, тому

що результат являється накопиченням

добутку}

Write(‘Введіть значення n: ’);

Readln(n);

For I:=1 to n do Factorial:=Factorial*I;

Writeln(‘Factorial= ’,Factorial:8:2);

Readkey; {Затримка зображення на екрані}

End.

 

№190(3). Дано ціле n. Визначити 1*3*5*7*…*(2n+1).

 

Program Example_190_3;

Uses crt;

Var I,n:word; {I – параметр циклу}

Rez:longint; {Rez – результат обчислень}

Begin

Clrscr;

Rez:=1; {Початкове значення дорівнює 1, тому

що результат являється накопиченням

добутку}

Write(‘Введіть значення n: ’);

Readln(n);

For I:=0 to n do Rez:=rez*(2*I+1);

Writeln(‘Rez= ’,Rez:8:2);

Readkey; {Затримка зображення на екрані}

End.

 

Задача №190(6). Дано ціле n. Визначити sin(1)*sin(1+2)*…*sin(1+2+…+n).

 

Program Example_190_6;

Uses crt;

Var I,n:word; {I – параметр циклу}

Rez,Sum:longint; {Rez – результат обчислень,

Sum – проміжне накопичення}

Begin

Clrscr;

Rez:=1; {Початкове значення дорівнює 1, тому

що результат являється накопиченням

добутку}

Sum:=0; {Початкове значення дорівнює 0, тому

що результат являється накопиченням

суми}

Write(‘Введіть значення n: ’);

Readln(n);

For I:=1 to n do

Begin

Sum:=Sum+I; {Накопичення суми}

Rez:=Rez*sin(Sum); {Накопичення добутку}

End;

Writeln(‘Rez= ’,Rez:8:2);

Readkey; {Затримка зображення на екрані}

End.

№191(1). За даним натуральним значенням змінної n обчислити .

 

Program viraz;

Uses crt;

Var n, i: integer;

d,ch: real;

Begin

Clrscr;

Write(‘Введіть число n: ’);

Readln(n);

d:=1; ch:=0;

for i:=1 to n do

begin

ch:=ch+i;

d:=d*ch/cos(ch);

end;

Writeln(‘d=’, d);

Readln;

End.

 

№191(6). За даним натуральним значенням змінної n обчислити:

Program Example_191_6;

Uses crt;

Var I,n:word; {I – параметр циклу}

Rez:real; {Rez – результат обчислень}

Begin

Clrscr;

Rez:=0; {Початкове значення дорівнює 0, тому

що результат являється накопиченням

суми}

Write(‘Введіть значення n: ’);

Readln(n);

For I:=1 to n do

Begin

Rez:=sqrt(Rez+2);

End;

Writeln(‘Rez= ’,Rez:8:2);

Readkey; {Затримка зображення на екрані}

End.

 

№197(1). Дано натуральне число n. Визначити кількість цифр у цьому числі.

 

Program Example_197_1;

Uses crt;

Var N:longint; {N – задане число}

Count:byte; {Count – кількість цифр в числі}

Begin

Clrscr;

Write(‘Введіть натуральне число: ’);

Readln(N);

N:=abs(N); {Знаходження модуля числа для

позбавлення від помилкового введення

ненатурального числа}

Count:=0; {Початкове значення кількості цифр}

Repeat

Count:=Count+1;

N:=N div 10; {“Відкидання” останньої цифри

числа після підрахунку}

Until N = 0;

Writeln(‘Кількість цифр в числі = ’,Count);

Readkey; {Затримка зображення на екрані}

End.

 

 

№197(2). Дано натуральне число n. Визначити суму цифр в числі.

 

Program Example_197_2;

Uses crt;

Var n:longint; {N – дане число}

Sum:byte; {Sum – сума цифр числа}

Begin

Clrscr;

Sum:=0; {Сума цифр числа спочатку дорівнює 0}

Write(‘Введіть ціле число: ’);

Readln(N);

N:=abs(N);

While N>0 do

Begin

Sum:=Sum+N mod 10; {Знаходження суми цифр}

N:=N div 10; {“Відкидання” останньої

цифри числа }

End;

Writeln(‘Sum= ’,Sum);

Readkey; {Затримка зображення на екрані}

End.

 

№200(2). Дано дійсне число а. Знайти таке найменше n, що .

 

Program Example_200_2;

Uses crt;

Var n:word; {n – шукане число}

Rez,a:real; {Rez – результат обчислень, а –

граничне значення}

Begin

Clrscr;

n:=1; {Початкове значення n - 1}

Write(‘Введіть значення a: ’);

Readln(a);

Rez:=0; {Початкове значення суми}

While Rez<=a do

Begin

Rez:=Rez+1/n;

n:=n+1;

end;

Writeln(‘n= ’,n);

Readkey; {Затримка зображення на екрані}

End.

 

№203(2). Знайти найбільше додатне число n, для якого виконується умова: .

Program Example_203_2;

Uses crt;

Var n:word; {n – шукане число}

Begin

Clrscr;

n:=1;

While –4*n+841*sqrt(n)+3>=0 do n:=n+1;

Writeln(‘n= ’,n);

Readkey; {Затримка зображення на екрані}

End.

 

№204. Дано ціле число m>1. Знайти найбільше число k, при якому виконується умова 4k < m.

Program Example_204;

Uses crt;

Var m,k,Rez:longint; {Rez – обчислення степеню 4}

Begin

Clrscr;

Write(‘Введіть значення m (m>1): ’);

Readln(m);

Rez:=1;

k:=0;

While Rezdo

Begin

k:=k+1;

Rez:=Rez*4;

End;

Writeln(‘k= ’,k);

Readkey; {Затримка зображення на екрані}

End.

 

№208(1). Під час обчислення результатів деяких експериментів виникає необхідність отримання результату із заданою похибкою. Нехай результатом є нескінченна сума, що задається певною формулою, і відома похибка e (e > 0) для знаходження наближеного значення результату. Будемо вважати, що необхідна точність досягнута, коли додавання наступного доданку змінює суму на величину, меншу за e. Обчислити:

 

Program Example_208_1;

Uses crt;

Var i:word;

Rez,Epsilon:real; {Rez – результат обчислень,

Epsilon - похибка}

Begin

Clrscr;

Rez:=0; {Початкове значення дорівнює 0, тому

що результат являється накопиченням

суми}

Write(‘Введіть значення похибки (Е>0): ’);

Readln(Epsilon);

i:=1;

While 1/sqr(i)>Epsilon do

Begin

Rez:=Rez+1/sqr(i)

i:=i+1;

End;

Writeln(‘Rez= ’,Rez:8:2);

Readkey; {Затримка зображення на екрані}

End.

№210. Дано ціле число n, яке набуває значень шкільних оцінок. Визначити відповідною кількістю звукових сигналів, яка саме оцінка була задана ("1" - один звуковий сигнал, "2" - два звукових сигнали і т.д.). Якщо ж задане число не відповідає значенню шкільної оцінки - подати довгий звуковий сигнал.

 

Program Example_210;

Uses crt;

Var I,n:word; {I – параметр циклу, n – оцінка учня}

Time:word;

Begin

Clrscr;

Write(‘Введіть Вашу оцінку: ’);

Readln(n);

Time:=10000; {Значення цієї змінної залежить

від характеристик комп’ютера, за

яким працює учень, і може бути

підібрана практичним шляхом}

If (n<1) or (n>12)

Then

begin

writeln(‘Ви помилились, такої оцінки не

існує’);

sound(200);

end

Else

For I:=1 to n do

Begin

Sound(200);

Delay(time);

Nousound;

Delay(time);

End;

Readkey; {Затримка зображення на екрані}

End.

№212.Обчислити значення числа p, використовуючи формулу

Program Example_212;

Uses crt;

Var i,n:word; {і – параметр циклу, n – кількість

доданків}

Rez_Pi:real; {Rez_Pi – обчислене значення числа

Pi}

Begin

Clrscr;

Rez_Pi:=0;

i:=1; {i – значення знаменника першого доданка}

n:=0; {n – доданків ще нема}

while round(pi*1000)=round(Rez_Pi*4000) do

Begin

If n mod 2 = 0

Then Rez_Pi:=Rez_Pi+1/i

Else Rez_Pi:=Rez_Pi-1/i;

i:=i+2;

n:=n+1;

End;

Writeln(‘Кількість необхідних доданків - ’,n);

Writeln(‘Порівняйте значення Pi: ’);

Writeln(‘Результат обчислень програми: ’,Rez_Pi:8:3);

Writeln(‘Вбудована функція: ’,Pi:8:3);

Readkey; {Затримка зображення на екрані}

End.

 

№208(4). Під час обчислення результатів деяких експериментів виникає необхідність отримання результату із заданою похибкою. Нехай результатом є нескінченна сума, що задається певною формулою, і відома похибка e (e > 0) для знаходження наближеного значення результату. Будемо вважати, що необхідна точність досягнута, коли додавання наступного доданку змінює суму на величину, меншу за e. Обчислити:

Program Example_208_4;

Uses crt;

Var i:word; {i – номер доданка}

S,Sum:real; {S – черговий доданок, Sum –

нескінченна сума}

Epsilon:real; {Epsilon – задана похибка

обчислень}

Begin

Clrscr;

Write(‘Введіть значення похибки: ’);

Readln(Epsilon);

Sum:=0; {Початкове значення дорівнює 0 для

накопичення суми}

S:=1; {Перший доданок нескінченної суми за

умовою дорівнює “1”}

i:=1;

repeat

if i mod 2 =0

then Sum:=Sum + 1/S

else Sum:=Sum - 1/S;

i:=i+1;

S:=S*i;

until 1/S<=Epsilon;

Writeln(‘Результат обчислень = ’,Sum:8:2);

Readkey; {Затримка зображення на екрані}

End.

 

№209.На скільки років необхідно покласти в банк суму Х грошових одиниць, щоб одержати суму N грошових одиниць (N > X), якщо банк нараховує 200% річних?

Program Example_209;

Uses crt;

Var X,N:real; {X – початковий вклад, N – бажана

сума}

Rez:real; {Rez – результуюча сума на

рахунку}

Years:longint; {Years – термін, протягом якого

сума лежала в банку}

Begin

Clrscr;

Write(‘Введіть початкову суму вкладу: ’);

Readln(Х);

Write(‘Введіть бажану суму вкладу: ’);

Readln(N);

If N<=X

Then writeln(‘Ви вже маєте бажану суму!’)

Else

Begin

Rez:=X;

Years:=0;

Repeat

Rez:=3*Rez; {200% річних збільшують за рік

вклад втричі}

Years:=Years+1;

Until Rez>=N;

Writeln(‘Ви отримаєте бажану суму через ’,years,’ років.‘);

End;

Readkey; {Затримка зображення на екрані}

End.

 

Поєднання повторення і розгалуження

№231.Скласти програму, яка б допомогла працівникам ДАІ визначати кількість порушників перевищення швидкості на трасі, якщо відомо, що на даному проміжку траси встановлено обмеження на швидкість Vmax, а прилад фіксує швидкість автомобілів V1, V2, …, Vn.

 

Program Example_231;

Uses crt;

Var V,Vmax:real; {V – швидкість чергового водія,

Vmax – максимально дозволена

швидкість}

Count:longint;{Count – кількість порушників}

Begin

Clrscr;

Count:=0; {На початку роботи порушники відсутні}

Write(‘Введіть значення максимально дозволеної швидкості: ’);

Readln(Vmax);

Vmax:=abs(Vmax); {Знаходження модуля для

виключення помилки введення

від’ємної максимальної

швидкості}

Repeat

Write(‘Введіть значення швидкості чергового водія: ’);

Readln(V);

If V>Vmax then Count:=Count+1;

Until V<=0;

Writeln(‘Кількість порушників ’,Count);

Readkey; {Затримка зображення на екрані}

End.

 

№234(2). Дано натуральні числа n i a1, a2, …, an. Визначити кількість членів ak послідовності a1, a2, …, an, що кратні числу 3 і не кратні числу 7.

 

Program Example_234_2;

Uses crt;

Var n:word; {n – кількість чисел, що вводяться}

a,count:word; {a – змінна, що зберігає чергове

введене число; count – кількість

чисел, що задовольняє заданій

умові}

Begin

Clrscr;

count:=0; {На початку роботи кількість

знайдених чисел дорівнює 0}

Write(‘Введіть кількість чисел, що будуть вводитись: ’);

Readln(n);

Repeat

Write(‘Введіть чергове число: ’);

Readln(a);

If (a mod 3 = 0) and (a mod 7 <> 0)

Then count:=count+1;

n:=n-1;

Until n<0;

Writeln(‘Кількість шуканих чисел = ’,count);

Readkey; {Затримка зображення на екрані}

End.

№239. Дано натуральне число п і дійсні числа . Визначити max() .

program max;

var

a,max:real;

i,n:integer;

begin

Write('n=');

Read(n);

Write('a1=');

Read(a);

max:=a;

for i:=2 to n do

begin

Write('a',i, '=');

Read(a);

if a>max then

begin

max:=a;

end

end;

Write('max=',max:7:3);

readln;

end.

 

 

№251 (5). Дано натуральне число n і дійсні числа a1, a2, …, an (a1 < > 0). Відомо, що в заданій послідовності є хоча б одне нульове значення. Розглядаючи члени послідовності, що розташовані до першого нульового члена, визначити середнє арифметичне членів.

 

Program Example_251_5;

Uses crt;

Var count:word; {count – кількість членів

послідовності до першого нульового

елемента}

a,Sum:real; {a – черговий член послідовності,

Sum – сума членів послідовності до

першого “0”}

SA:real; {SA – середнє арифметичне}

Begin

Clrscr;

Sum:=0;

count:=0; {Початкові значення дорівнюють “0”}

repeat

write(‘Введіть черговий член послідовності: ’);

readln(a);

Sum:=Sum+a;

count:=count+1;

until a=0;

SA:=Sum/(count-1);

Writeln(‘Середнє арифметичне = ’,SA:8:2);

Readkey; {Затримка зображення на екрані}

End.

 

 

№ 417. Баба-Яга записалася на курси водіїв літальних апаратів. Але справи в неї були кепські, бо вона ніяк не могла запам'ятати, яким чином визначається тривалість польоту, якщо відомі швидкість і відстань. Довелося їй звернутися по допомогу до Хлопчика-Мізинчика, який швиденько написав їй шпаргалку, куди Бабі-Язі треба було лише підставити свої значення. Як виглядала послідовність дій у цій шпаргалці і як нею користувалася Баба-Яга?

 

Program Example_417;

Uses crt; {Підключення бібліотеки}

Procedure Solution (V,S - real; var T - time);

Begin

T:=S/V;

End;

Var X,Y,M:real;

Begin

Clrscr;

Write('Введіть швидкість літального апарату: ');

Readln(X);

Write('Введіть відстань між населеними пунктами: ');

Readln(Y);

If (X<=0) or (Y<0)

then writeln('Некоректні вхідні дані.')

else

begin

Solution(X,Y,M); {Виклик процедури}

Writeln('Тривалість польоту -> ',M:6:2);

end;

Readkey;

End.

 

№ 423 (модифікована). У Білосніжки наближався день народження і її вирішили привітати друзі. Перш за все це були гноми, далі зібралися звірята, а потім і пташки прилетіли. Кожен з гостей приніс квіти, кількість яких зберігається у відповідному масиві: а1, а2,... an - квіти гномів, b1, b2, … bm - квіти звірят та c1, c2, …, ck - квіти пташок. Хто з гостей (гноми, звірята чи пташки) приніс найбільшу кількість квітів? Який з гномів, звірят та пташок найщедріший?

Program Example_423;

Uses crt; {Підключення бібліотеки}

{Опис типу для масиву}

const

L = 100;

Type

T_Mas = array[1..L] of integer;

{Процедура заповнення масиву генератором випадкових чисел з контрольним виведенням на екран вмісту заповненого масиву}

Procedure Input (var MAS:T_Mas; count:integer);

var i:integer;

begin

for i:=1 to count do

begin

MAS[i]:=round(100); {Заповнення масиву

генератором випадкових чисел}

write(MAS[i]:6);

end;

writeln;

end;

{Процедура знаходження суми елементів та максимуму в заданому масиві; count - кількість елементів в масиві, що необхідно обробити}

Procedure Solution (MAS:T_Mas; count:integer;

var SUM,MAX:longint);

Var i:integer;

Begin

SUM:=0; {Початкові значення }

MAX:=MAS[1];

For i:=1 to count do

begin

SUM:=SUM+MAS[i];

if MAX<MAS[i]

then MAX:=MAS[i];

end;

End;

{Процедура пошуку максимуму в масиві}

Procedure Search_Max(M:array of longint;

var n_max:integer);

var i,Maximum:integer;

begin

Maximum:=M[0]; n_max:=0;

for i:=0 to 2 do

if Maximum<M[i]

then

begin

Maximum:=M[i];

n_max:=i;

end;

n_max:=n_max+1;

end;

Var A,B,C:T_Mas;

n,m,k,number:integer;

S,Max:array[1..3] of longint;

Begin

Clrscr;

Writeln('Введіть кількість гостей на дні народження');

Write('Кількість гномів: ');

readln(n)

Input(A,n);

Write('Кількість звірят: ');

readln(M)

Input(B,m);

Write('Кількість пташок: ');

readln(k)

Input(C,k);

Solution(A,n,S[1],M[1]);

Solution(B,m,S[2],M[2]);

Solution(C,k,S[3],M[3]);

{Вибір, хто (гноми, звірята чи пташки) принесли

найбільшу кількість квітів}

Search_Max(S,number);

Case number of

1: Write('Гноми');

2: Write('Звірята');

3: Write('Пташки');

End;

write(' принесли найбільше квітів.');

writeln;

write('Самий щедрий гість перебуває у ');

{Вибір, де (у гномів, звірят чи пташок)

перебуває найщедріший гість}

Search_Max(M,number);

Case number of

1: Write(' гномів.');

2: Write(' звірят.');

3: Write(' пташок.');

End;

Readkey;

End.

 

 

№ 427. Організувати зміну кольору екрана для покрокового введення текстової інформації - прізвище, ім'я, школа, клас - за допомогою власної підпрограми COLOR_PAGE. Для вибору номера кольору скористатися генератором випадкових чисел.

 

Program Example_427;

Uses crt; {Підключення бібліотеки}

Procedure Solution (S:string; var R:string);

Begin

textbackground(Random(14)+1);

clrscr;

textcolor(Random(14)+1);

gotoxy(20,10);

writeln('Введіть ',S);

gotoxy(20,11);

readln(R);

End;

Var A:string;

Begin

Solution('своє прізвище',A);

Solution('своє ім"я',A);

Solution('школу, де Ви навчаєтесь',A);

Solution('свій клас',A);

Readkey;

End.

 

№ 463. Створити підпрограму, яка б із тексту S вилучала вказаний символ х і обчислювала кількість вилучень. У програмі організувати виклик цієї підпрограми.

 

Program Example_463;

Uses crt; {Підключення бібліотеки}

Procedure Solution (x:char; var S:string;

var count:byte);

var i:byte; {локальна змінна для організації

циклу}

Begin

count:=0; i:=1;

while i<=length(S) do

begin

if S[i]=x

then

begin

count:=count+1;

delete(S,i,1);

end

else i:=i+1;

end;

End;

Var A:string; ch:char; N:byte;

Begin

clrscr;

writeln ('Введіть текст: ');

readln(A);

write ('Введіть шуканий символ: ');

readln (ch);

Solution(^ch,A,N);

writeln ('Результуючий текст: ',A);

writeln ('Кількість виконаних вилучень: ',N);

readkey;

End.

 

№ 420. П'ятеро бравих солдатів служили у війську під командуванням сержанта. Перед сержантом було поставлено завдання розробити стратегію визначення чотирьох вояк для штурму фортеці супротивника. Досвідчений сержант вирішив визначати найкращу четвірку за таким правилом: відношення суми ваги вояків до добутку їх зросту повинно бути максимальним. Хто з п'яти служак був удостоєний честі захищати своє військо?

 

Program Example_420;

Uses crt; {Підключення бібліотеки} Mas

Type

T_Mas = array [1..5,1..2] of real;

Function Solution (Mas:T_Mas):byte;

var i:byte;

Min:real;

Begin

Min:=Mas[1,1]*Mas[1,2];

Solution:=1;

for i:=2 to 5 do

if Min > Mas[i,1]*Mas[i,2]

then

begin

Min:=Mas[i,1]*Mas[i,2];

Solution:=i;

end;

End;

Var Soldat:T_Mas;

Number,i:byte;

Begin

Clrscr;

{Заповнення масиву та виведення його на екран}

For i:=1 to 5 do

begin

Soldat[i,1]:=random*100+50;

Soldat[i,2]:=random*0.8+1.5;

writeln(Soldat[i,1]:8:2,Soldat[i,2]:6:2);

end;

writeln ('Не пішов на штурм ',Solution(Soldat),'-й солдат.');

Readkey;

End.

 

 

№ 432. Використовуючи функцію max2(a,b), яка визначає максимальне з двох даних чисел, записати функцію max3(a,b,c), що визначає максимальне з трьох даних чисел, і організувати виклик цієї функції для обчислення суми найбільших значень трьох трійок довільних дійсних чисел.

 

Program Example_432;

Uses crt; {Підключення бібліотеки}

Function Max2 (a,b:real):real;

begin

if a > b

then Max2:=a

else Max2:=b;

end;

Function Max3 (a,b,c:real):real;

Var Max:real;

Begin

Max:=Max2(a,b);

Max3:=Max2(Max,c);

End;

Var x,y,z,Rezultat:real;

Begin

Clrscr;

writeln ('Введіть три довільні числа: ');

readln (x,y,z);

Rezultat:=Max3(x,y,z);

Rezultat:=Rezultat+Max3(2,-4.5,12.54);

Rezultat:=Rezultat+Max3(abs(x),abs(y),abs(z));

writeln ('Результат -> ',Rezultat:8:2);

Readkey;

End.

 

 

№ 437. Дано дійсні числа u та v. Визначити значення: z = f(u,v) + f (u+v,uv) + f(u2,v2) + f(0.1,0.1)

Де

Program Example_437;

Uses crt; {Підключення бібліотеки}

Function F(x,y:real; var Rez:real):boolean;

Begin

if (x=0) and (y=0)

then F:=false

else

begin

F:=true;

Rez:=(x+y)/(x*x+x*y+y*y)+x/(1+sqr(y))+y/(1+sqr(x));

end;

End;

Var u,v,R:real;

Solution:Boolean;

Begin

Clrscr;

writeln('введіть два числа: ');

readln(u,v);

Solution:=F(u,v,R)+F(u+v,u*v,R)+

F(sqr(u),sqr(v),R)+F(0.1,0.1,R);

if F(u,v) = false

then writeln('Помилкові вхідні дані.')

else writeln('Результат обчислень -> ',R:8:2);

Readkey;

End.

 

№ 452.Дано координати вершин двох трикутників. Визначити, який з них має більшу площу.

 

Program Example_452;

Uses crt; {Підключення бібліотеки}

{Обчислення довжини відрізка з координатами кінців (a,b) та (c,d)}

Function Len (a,b,c,d:real):real;

Begin

Len:=sqrt(sqr(a-b)+sqr(c-d));

End;

Function Input(var x1,y1,x2,y2,x3,y3:real):boolean;

Var a,b,c:real;

Begin

writeln ('Введіть координати першої вершини:');

readln (x1,y1);

writeln ('Введіть координати другої вершини:');

readln (x2,y2);

writeln ('Введіть координати третьої вершини:');

readln (x3,y3);

a:=Len(x1,y1,x2,y2);

b:=Len(x1,y1,x3,y3);

c:=Len(x3,y3,x2,y2);

if (a>=b+c) or (c>=a+b) or (b>=a+c)

then

begin

Len:=False;

writeln ('Помилка! Повторіть введення:');

end

else Len:=True;

End;

Function S (a,b,c:real):real;

Function P (x,y,z:real):real;

Begin

P:=x+y+z;

End;

Var PP:real;

Begin

PP:=P(x,y,z)/2;

S:=sqrt(PP*(PP-a)*(PP-b)*(PP-c));

End;

Var x11,y11,x12,y12,x13,y13:real;

x21,y21,x22,y22,x23,y23:real;

S1,S2:real;

Flag:Boolean;

Begin

clrscr;

repeat

writeln ('Перший трикутник:');

Flag:=Input(x11,y11,x12,y12,x13,y13);

until Flag;

repeat

writeln ('Другий трикутник:');

Flag:=Input(x21,y21,x22,y22,x23,y23);

until Flag;

S1:=S(x11,y11,x12,y12,x13,y13);

S2:=S(x21,y21,x22,y22,x23,y23);

if S1>S2

then

begin

writeln ('Більшу площу має перший трикутник.');

writeln ('Його площа дорівнює -> ',S1:8:2);

end

else

if S2>S1

then

begin

writeln ('Більшу площу має другий трикутник.');

writeln ('Його площа дорівнює -> ',S2:8:2);

end

else

begin

writeln ('Трикутники мають однакову площу.');

writeln ('Їх площа дорівнює -> ',S1:8:2);

end;

readkey;

End.

 

№ 440. Використовуючи підпрограму обчислення факторіалу, розробити програму обчислення суми факторіалів усіх цілих чисел від 1 до 10.

 

Program Example_440;

Uses crt; {Підключення бібліотеки}

Function Factorial (n:integer):longint;

Begin

if n=0

then Factorial:=1

else Factorial:=Factorial(n-1)*n;

End;

Var Rez:longint;

i:byte;

Begin

Clrscr;

Rez:=0;

For i:=1 to 10 do

begin

Rez:=Rez+Factorial(i);

end;

writeln('Rezultat -> ',Rez);

Readkey;

End.

 

№ 495. Знайти найбільший спільний дільник двох натуральних чисел n та m за алгоритмом Евкліда:

Program Example_495;

Uses crt; {Підключення бібліотеки}

Function Evklid (n,m:integer):integer;

begin

if n=m

then Evklid:=n

else

if n>m

then Evklid:=Evklid(n-m,m)

else Evklid:=Evklid(n,m-n);

end;

Var x,y:integer;

Begin

Clrscr;

writeln ('Введіть два числа: ');

readln (x,y);

writeln ('НОД -> ',Evklid(abs(x),abs(y)));

Readkey;

End.

 

№ 498. Обчислити значення функції Аккермана для двох невід'ємних цілих чисел n та m, де:

 

 

Program Example_498;

Uses crt; {Підключення бібліотеки}

Function A(n,m:word):word;

Begin

if n=0

then A:=m+1

else

if (n<>0) and (m=0)

then A:=A(n-1,1)

else A:=A(n-1,A(n,m-1));

End;

Var x,y:word;

Begin

Clrscr;

writeln ('введіть два числа: ');

readln (x,y);

writeln ('Результат обчислень -> ',A(x,y));

Readkey;

End.

 

№ 500. Обчислити кількість комбінацій з n різних елементів по m, тобто кількість неупорядкованих підмножин з m елементів, що належать заданій множині з n елементів, скориставшись залежністю:

 

Program Example_500;

Uses crt; {Підключення бібліотеки}

Function C (n,m:word):longint;

Begin

if ((m=0) and (n>0)) or ((m=n) and (n>=0))

then C:=1

else

if (m>n) and (n>=0)

then C:=0

else C:=C(n-1,m-1)+C(n-1,m);

End;

Var x,y:word;

Begin

clrscr;

writeln ('Введіть два числа: ');

readln(x,y);

writeln ('Кількість комбінацій з ',x,' по',y,' -> ',C(x,y));

readkey;

End.

 

№383. У даному тексті всі послідовності крапок замінити на одну крапку.

 

Program Example_383;

Uses crt;

Var i:word; {i - змінна циклу}

St:string; {St - даний текст}

Begin

Clrscr;

Write ('Введіть текст: ');

Readln (St);

i:=1;

While i<=length(St) do

Begin

While St[i]='.' do Delete(St,i,1);

Insert('.',St,i);

i:=i+1;

End;

Writeln ('Результуючий рядок: ');

Writeln (St);

Readkey; {Затримка зображення на екрані}

End.

 

№384(2). Дано деякий текст, у якому є хоча б одна кома. Визначити порядковий номер останньої коми в тексті.

 

Program Example_384_2;

Uses crt;

Var i:byte; {i - змінна циклу}

St:string; {St - даний текст}

Begin

Clrscr;

Write ('Введіть текст: ');

Readln(St);

i:=length(St);

while St[i]<>',' do i:=i-1;

Writeln ('Номер позиції останньої коми в тексті ',i);

Readkey; {Затримка зображення на екрані}

End.

 

№386. Дано деякий текст. Створити новий текст, який утворено із даного читанням з кінця до початку.

 

Program Example_386;

Uses crt;

Var i:byte; {i - змінна циклу}

St,Rez:string; {St - даний текст, Rez -

результуючий (перегорнутий)

рядок}

Begin

Clrscr;

Write ('Введіть текст: ');

Readln (St);

Rez:=''; {Очищення рядка}

For i:=length(St) downto 1 do

Rez:= Rez+St[i];

Writeln ('Результуючий рядок: ');

Writeln (St);

Readkey; {Затримка зображення на екрані}

End.

 

№387. Перевірити, чи однаково читається дане слово зліва направо і навпаки.

 

Program Example_387;

Var i:byte; {i - змінна циклу}

St,Rez:string; {St - даний текст, Rez -

результуючий (перегорнутий)

рядок}

Begin

Clrscr;

Write ('Введіть текст: ');

Readln (St);

Rez:=''; {Очищення рядка}

For i:=length(St) downto 1 do

Rez:= Rez+St[i]; {Перегортання рядка}

If Rez = St

Then Writeln ('Слово являється паліндромом.')

Else Writeln ('Слово не являється паліндромом.');

Readkey; {Затримка зображення на екрані}

End.

 

 

№389(2). Визначити, скільки разів у даному тексті зустрічається послідовність символів "абв".

 

Program Example_389;

Var i:byte; {i - змінна циклу}

St:string; {St - даний текст}

Count:byte; {Count - лічильник

послідовностей}

Begin

Clrscr;

Write ('Введіть текст: ');

Readln (St);

Count:=0; {Початкове значення лічильника}

For i:=1 to length(St)-3 do

If Copy (St,i,3) = 'абв'

Then count:=count+1;

Writeln ('Кількість шуканих послідовностей: ',count);

Readkey; {Затримка зображення на екрані}

End.

 

№394. Нехай дано формулу. Визначити коректність формули щодо кількості відкритих та закритих дужок. Вважається, що закриті дужки не стоять перед відкритими. Якщо дужки у формулі відсутні - повідомити про це.

 

Program Example_394;

Var i:byte; {i - змінна циклу}

St:string; {St - даний текст}

count_left, count_right:byte;

{count_left - лічильник кількості

лівих дужок, count_right -

лічильник кількості правих дужок}

Begin

Clrscr;

Write ('Введіть формулу: ');

Readln(St);

Count_left:=0; {Початкове значення лічильника}

Count_right:=0;

For i:=1 to length(St) do

Begin

If St[i] = '('

Then count_left:=count_left+1;

If St[i] = ')'

Then count_right:=count_right+1;

End;

Writeln ('Кількість лівих дужок: ',count_left);

Writeln ('Кількість правих дужок: ',count_right);

If (count_left=0) or (count_right=0)

Then writeln ('Формула не має дужок.')

Else

Begin

If count_left = count_right

then Writeln ('Формула коректна.')

else writeln ('Формула не коректна.');

end;

Readkey; {Затримка зображення на екрані}

End.

 

 

№397. Нехай дано текст S та значення символьних змінних x та y. Із тексту вилучити всі символи, що збігаються з x і повторити двічі всі символи, що збігаються з y.

 

Program Example_397;

Var i:byte; {i - змінна циклу}

S:string; {S - даний текст}

x,y:char; {x,y - шукані символи}

Begin

Clrscr;

Write ('Введіть текст: ');

Readln (S);

Write ('Введіть шукані символи: ');

Readln (x,y);

For i:=1 to length(S) do

Begin

If S[i] = x

Then delete(S,i,1);

If S[i] = ')'

Then insert(y,S,i);

End;

Writeln ('Результуючий рядок після зміни: ',S);

Readkey; {Затримка зображення на екрані}

End.

 

 

№401. Розробити програму-шифрувальник тексту, що замінює кожну його літеру наступною по порядку в абетці. Останню літеру абетки необхідно замінити першою.

Program Example_401;

Var i:byte; {i - змінна циклу}

S:string; {S - даний текст}

Begin

Clrscr;

Write ('Введіть текст: ');

Readln (S);

For i:=1 to length(S) do

Begin

If (S[i]>=65) and (S[i]<90) or

(S[i]>=97) and (S[i]<122) or

(S[i]>=128) and (S[i]<159) or

(S[i]>=160) and (S[i]<=175) or

(S[i]>=224) and (S[i]<245) or

Then S[i]:=chr(ord(S[i]+1);

If (S[i] = 'Z') or (S[i] = 'z')

Then S[i]:=chr(ord(S[i])-25);

If (S[i] = 'Я')

Then S[і]:='А';

If (S[i] = 'я')

Then S[і]:='а';

End;

Writeln ('Результуючий рядок після зміни: ',S);

Readkey; {Затримка зображення на екрані}

End.

 

№406(3). Дано деякий текст. Групи символів, які розділені пробілами (одним або кількома) та не містять всередині себе пробілів, називатимемо словами. Вважатимемо, що текст завжди починається зі слова. Визначити кількість слів, у яких перша та остання літера однакові.

 

Program Example_406;

Var i:byte; {i - змінна циклу}

S,Slovo:string; {S - даний текст, Slovo -

вирізане з тексту слово}

count:byte; {count - лічильник шуканих

слів}

Begin

Clrscr;

Write ('Введіть текст: ');

Readln (S);

S:=' '+S+' '; {Дописування проміжку перед

першим словом та після

останнього}

Count:=0; {Початкове значення лічильника}

i:=1; {Початок перегляду рядка}

while i<=length(S)-1 do

Begin

If (S[i]=' ') and (S[i+1]<>' ')

Then

Begin

Slovo:=''; {Очищення рядка для

зберігання чергового слова}

While (S[i+1]<>' ') do

Begin

Slovo:=Slovo+S[i+1];

i:=i+1;

End;

If Slovo[1] = Slovo[length(Slovo)]

Then count:=count+1;

End;

i:=i+1;

End;

Writeln ('Кількість шуканих слів: ',count);

Readkey; {Затримка зображення на екрані}

End.

№311(1). Дано одновимірний масив цілих чисел А[i], де i = 1,2,…n. Вивести елементи масиву у зворотному порядку.

Program Example_311_1;

Uses crt;

Var N,i:word; {N - кількість елементів масиву, i -

змінна циклу}

А:array [1..100] of longint; {A - заданий масив}

Begin

Clrscr;

Write ('Введіть кількість елементів масиву (<100): ');

Readln(N);

For i:=1 to N do

Begin

A[i]:=random(300); {Заповнення масиву

випадковими числами}

Write(А[i]:5); {Виведення масиву на екран

для контролю правильності

роботи програми}

End;

Writeln; {Переведення курсору на наступний

рядок}

For i:=N downto 1 do

Begin

Write (A[i]:5);

End;

Readkey; {Затримка зображення на екрані}

End.

 

 

№311(2). Дано одновимірний масив цілих чисел А[i], де i = 1,2,…n. Вивести елементи масиву з парними індексами.

 

Program Example_311_2;

Uses crt;

Var N,i: word; {N - кількість елементів масиву, i -

змінна циклу}

А: array [1..100] of longint; {A - заданий масив}

Begin

Clrscr;

Write ('Введіть кількість елементів масиву (<100): ');

Readln (N);

For i:=1 to N do

Begin

A[i]:=random(300); {Заповнення масиву

випадковими числами}

Write(А[i]:5); {Виведення масиву на екран

для контролю правильності

роботи програми}

End;

Writeln; {Переведення курсору на наступний

рядок}

i:=2;

while i<=N do

Begin

Write(A[i]:5);

i:=i+2; {Змінна циклу змінюється на 2, щоб

вибрати тільки парні елементи}

End;

Readkey; {Затримка зображення на екрані}

End.

 

 

№300. Барон Мюнхаузен, вийшовши на екологічно чисте полювання, зарядив свою рушницю кісточками вишень. Після того як він вдало влучив поміж роги оленям, в яких влучило відповідно k1, k2, …, kn кісточок, у них на головах виросли чудові молоді вишеньки. Скільки саджанців зміг подарувати барон Мюнхаузен садівникам-дослідникам?

 

Program Example_300;

Uses crt;

Var N:word; {N - кількість оленів, тобто

елементів масиву, у яких влучив

Мюнхаузен}

K:array[1..100] of longint; {K - зарезервований

масив для зберігання кількості

кісточок, що влучили в оленів}

i,Sum:longint; {i - змінна циклу, Sum - загальна

кількість кісточок, що влучили в

оленів}

Begin

Randomize; {Ця процедура запускається з метою

зробити числа генератора

випадкових чисел ще більш

"випадковими"}

Clrscr;

Sum:=0; {На початку роботи програми Мюнхаузен

ще ні в кого не влучив}

Write ('Введіть кількість оленів, в яких влучив

Мюнхаузен (<=100): ');

Readln(N);

For i:=1 to N do

Begin

K[i]:=random(50)+20; {Заповнення масиву

випадковими числами в

діапазоні від 20 до 70}

Write(K[i]:5); {Виведення масиву на екран

для контролю правильності

роботи програми}

Sum:=Sum+K[i];

End;

Writeln; {Переведення курсору на новий

рядок}

Writeln ('Кількість нових саджанців ',Sum);

Readkey; {Затримка зображення на екрані}

End.

 

№302. Середню групу дитячого садочка вивели на прогулянку. Скільки дівчаток і скільки хлопчиків видна з-за паркану, якщо зріст хлопчиків задається у сантиметрах від'ємними числами, а дівчаток - додатними у вигляді цілих значень a1, a2, …, an? Крім того, у всіх дівчаток на голівках зав'язані бантики заввишки 10 см, а висота паркану H см.

 

Program Example_302;

Uses crt;

Var N,H:word; {N - кількість дітей в дитсадочку,

Н - висота паркану}

А:array[1..100] of longint; {А - зарезервований

масив для зберігання зростів

дітей}

i,Count_girl,Count_boy:longint;

{i - змінна циклу, Count_girl -

кількість дівчаток, Count_boy -

кількість хлопців}

Begin

Randomize;

Clrscr;

Count_girl:=0;

Count_boy:=0;

Write ('Введіть висоту паркану: ');

Readln(H);

Write ('Введіть кількість дітей в дитсадочку: ');

Readln(N);

For i:=1 to N do

Begin

A[i]:=random(300)-150; {Заповнення масиву

випадковими числами в

діапазоні від -150 до +150}

Write(А[i]:5); {Виведення масиву на екран

для контролю правильності

роботи програми}

if (A[I]<0) and (abs(A[I])>H)

then Count_Boy:=Count_Boy+1;

if (A[I]>0) and (A[I]+10>H)

then Count_Girl:=Count_Girl+1;

End;

Write ('Кількість хлопчиків, що видна з-за паркану ');

Writeln (Count_Boy);

Write ('Кількість дівчаток, що видна з-за паркану,);

writelnCount_girl);

Readkey; {Затримка зображення на екрані}

End.

 

№309. Дано натуральне число А. Складіть програму, що представляє його у вигляді многочлена. Наприклад,

123 ==>1 * 10^2 + 2 * 10^1 + 3*10^0.

 

Program Example_309;

Uses crt;

Var N,i,Count:longint; {N - задане ціле число, i -

змінна циклу, Count - кількість

цифр в числі}

Cifra:array [1..10] of byte; {Cifra - масив для

зберігання цифр числа}

Begin

Clrscr;

Count:=0;

Write ('Введіть ціле число: ');

Readln (N);

While N>0 do

Begin

Cifra[i]:=N mod 10;

N:=N div 10;

Count:=Count+1;

End;

Write('N = ');

For i:=N downto 1 do

Begin

Write(Cifra[i],'*10^',i-1);

If i>1

Then write(' + '); {Якщо доданок не останній,

то до нього дописується

знак "+"}

End;

Readkey; {Затримка зображення на екрані}

End.

 

 

№312. Дано дійсні числа a1951, a1952, …, a2000 - кількість опадів (в мм), що випали у місті за останні 50 років минулого століття. Обчислити середню кількість опадів за цей період і щорічне відхилення від середнього значення.

 

Program Example_312;

Uses crt;

Var N,i:longint; {N - кількість елементів масиву, i

- змінна циклу}

A:array[1951..2000] of real; {A - масив для

зберігання кількості

опадів у відповідному році}

B:array[1951..2000] of real; {B - масив для

зберігання відхилення від

середнього значення}

Begin

Randomize;

Clrscr;

Sum:=0;

For i:=1951 to 2000 do

Begin

A[i]:=random(500)/7; {Заповнення масиву

випадковими дійсними числами}

Write(A[i]:8:2); {Виведення масиву на екран

для контролю правильності

роботи програми}

Sum:=Sum+K[i];

End;

Sum:=Sum/50; {Знаходження середньої кількості

опадів за рік}

Writeln;

Writeln ('Щорічні відхилення від середньої кількості опадів за період 1951 - 2000 р.р.');

For i:=1951 to 2000 do

Begin

B[i]:=Sum - A[i]; {Знаходження щорічного

відхилення}

Write(B[i]:8:2); {Виведення результатів на

екран}

End;

Readkey; {Затримка зображення на екрані}

End.

 

 

№315 (1). Дано натуральне число n та цілі числа a1, a2, … an і b1, b2, …, bn. Визначити значення c1, c2, …, cn, якщо ci = ai + bi.

 

Program Example_315_1;

Uses crt;

Const N=100;

Type

Masiv = array[1..N] of integer;

Var A,B,C:Masiv; {A,B - масиви для зберігання

вхідних даних, С - вихідний

масив}

i:byte; {і - змінна циклу}

Begin

Randomize;

Clrscr;

For i:=1 to N do

Begin

A[i]:=random(200); {Заповнення масиву

випадковими цілими числами}

Write(A[i]:4); {Виведення масиву на екран

для контролю правильності

роботи програми}

End;

Writeln;

For i:=1 to N do

Begin

B[i]:=random(200);

Write(B[i]:4);

End;

Writeln;

For i:=1 to N-1 do

Begin

C[i]:=a[i]+b[i];

write(c[i]:4);

End;

Readkey; {Затримка зображення на екрані}

End.

 

№318 (1). Дано дійсні числа a1, a2, …, a30, b1, b2, …, b30. Обчислити

(a1 + b30)(a2 + b29)…(a30 + b1).

Program Example_318_1;

Uses crt;

Var A,B: array[1..30] of real;

{A,B - масиви для зберігання вхідних даних}

i:byte; {і - змінна циклу}

Rez:real; {Rez - результат обчислень}

Begin

Randomize;

Clrscr;

Writeln ('Масив А:');

For i:=1 to 30 do

Begin

A[i]:=random(200)/7-random*15;

Write(A[i]:8:2);

End;

Writeln ('Масив В:');

For i:=1 to 30 do

Begin

B[i]:=random*200-random*100;

Write(B[i]:8:2);

End;

Writeln;

Rez:=1;

{Початкове значення дорівнює 1, тому що результат

являється накопиченням добутку}

For i:=1 to 30 do

Begin

Rez:=Rez*(A[i]+B[31-i]);

End;

Writeln ('Результат обчислень = ',Rez:8:2);

Readkey; {Затримка зображення на екрані}

End.

 

№318 (4). Дано дійсні числа a1, a2, …, a30, b1, b2, …, b30. Обчислити

 

 

Program Example_318_4;

Uses crt;

Var A,B:array[1..30] of real;

{A,B - масиви для зберігання вхідних даних}

i:byte; {і - змінна циклу}

R1,R2:real; {R1 - чисельник дробу, R2 -

знаменник дробу}

Rez:real; {Rez - результат обчислень}

Begin

Randomize;

Clrscr;

Writeln ('Масив А:');

For i:=1 to 30 do

Begin

A[i]:=random(200)/7-random*15;

Write(A[i]:8:2);

End;

Writeln ('Масив В:');

For i:=1 to 30 do

Begin

B[i]:=random*200-random*100;

Write(B[i]:8:2);

End;

Writeln;

R1:=0;

R2:=0;

{Початкове значення дорівнює 0, тому що результат

являється накопиченням суми}

For i:=1 to 15 do

Begin

R1:=R1 + (A[2*i-1]+B[2*i-1]);

R2:=R2 + (A[2*i]+B[2*i]);

End;

Rez:=R1/R2;

Writeln ('Результат обчислень = ',Rez:8:2);

Readkey; {Затримка зображення на екрані}

End.

 

№343(2). Дано натуральні числа n, m та випадкові дійсні числа, що утворюють таблицю A[i,j], де i = 1,2,…, n; j = 1, 2, …, m. Роздрукувати у рядок елементи, що розташовані в першому стовпчику.

 

Program Example_343_2;

Uses crt;

Const

n = 10;

m = 8;

Var A: array[1..n,1..m] of real;

i,j: integer; {і,j - змінні циклу}

Begin

Randomize; {Ця процедура запускається з метою

зробити числа генератора

випадкових чисел ще більш

"випадковими"}

Clrscr;

For i:=1 to n do

Begin

For j:=1 to m do

begin

A[i,j]:=random*50-random*30;

{Заповнення масиву

випадковими числами}

Write(A[i,j]:8:2); {Виведення масиву на

екран для контролю

правильності роботи програми}

end;

writeln;

End;

Writeln ('Перший стовпчик масиву:');

For i:=1 to n do

begin

Write (A[i,1]:8:2);

end;

Readkey; {Затримка зображення на екрані}

End.

 

№343(5). Дано натуральні числа n, m та випадкові дійсні числа, що утворюють таблицю A[i,j], де i = 1,2,…, n; j = 1, 2, …, m. Роздрукувати у рядок елементи, що розташовані на бічній діагоналі.

 

Program Example_343_5;

Uses crt;

Const

n = 10;

Var A: array[1..n,1..n] of real;

i,j: integer; {і,j - змінні циклу}

Begin

Randomize;

Clrscr;

{Заповнення масиву випадковими числами та виведення

його на екран}

For i:=1 to n do

Begin

For j:=1 to m do

begin

A[i,j]:=random(500)/11-random*30;

Write (A[i,j]:8:2);

end;

writeln;

End;

Readln; {Затримка зображення на екрані}

Writeln ('Бічна діагональ масиву:');

For i:=1 to n do

begin

Write (A[i,n-i+1]:8:2);

end;

Readkey; {Затримка зображення на екрані}

End.

 

№344(2). Дано натуральні числа n, m та матриці цілих чисел Aij, Bij, де i = 1, 2, …, n, j = 1, 2, …,m. Обчислити значення елементів матриці Cij, якщо Cij = Aij (I+j) - Bij(i2+j2).

 

Program Example_344_2;

Uses crt;

Const

n = 8;

m = 15;

Var A,B,C: array[1..n,1..m] of integer;

i,j:word; {і,j - змінні циклу}

Begin

Randomize;

Clrscr;

Writeln ('Масив А:');

For i:=1 to n do

Begin

For j:=1 to m do

begin

A[i,j]:=random(50)-random(20);

Write (A[i,j]:5);

end;

writeln;

End;

Writeln ('Масив В:');

For i:=1 to n do

Begin

For j:=1 to m do

begin

B[i,j]:=random(120)-random(80);

Write (B[i,j]:5);

end;

writeln;

End;

Writeln ('Результуючий масив С:');

For i:=1 to n do

Begin

For j:=1 to m do

begin

С[i,j]:=A



<== предыдущая лекция | следующая лекция ==>
Чорний ПР». Прийоми антиреклами | IV. Причинение ущерба Школе Танцев
Поделиться с друзьями:


Дата добавления: 2016-04-03; Мы поможем в написании ваших работ!; просмотров: 764 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Лаской почти всегда добьешься больше, чем грубой силой. © Неизвестно
==> читать все изречения...

2357 - | 2221 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.015 с.