Пошук

неділю, 10 січня 2010 р.

IV. Цикли з параметром

ЗАДАЧА № 26

Постановка задачі:

Знайти суму всіх натуральних чисел від 1 до 100.

Текст програми:

Program Task_26;

Uses crt;

Var Sum, i: integer;

Begin

Clrscr;

Sum:= 0;

For i:= 1 to 10 do

Sum:= Sum + i;

Writeln(‘Сума = ‘, Sum);

Readkey;

End.

ЗАДАЧА № 27

Постановка задачі:

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

Аналіз алгоритму:

Зверніть увагу на те, що фактично ця задача зводиться до знаходження суми всіх натуральних чисел від 1 до N. У кінці задачі для повторення команди розгалуження учням пропонується визначити кількість зайнятих бабусями та вільних місць.

Текст програми:

Program Task_27;

Uses crt;

Var I, N, Sum:word;{I – параметр циклу, N – кількість рядів мотоциклів, Sum – кількість бабусь, що приїхали на курси}

Place, k, m:word; {k – кількість рядів у комп’ютерному класі, m – кількість комп’ютерів у кожному ряду, Place – кількість місць, якої вистачило для бабусь}

Begin

Clrscr;

Sum:=0;

Write(‘Введіть кількість рядів мотоциклів: ‘);

Readln(N);

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

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

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

If Sum

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

Place:=Sum – k*m;

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

Readkey;

End.

ЗАДАЧА № 28

Постановка задачі:

Знайти значення виразу (1 + 0,1)(2 + 0,2)×…×(9 + 0,9).

Аналіз алгоритму:

У даному випадку кількість повторів буде дорівнювати 9.

Текст програми:

Program Task_28;

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.

ЗАДАЧА № 29

Постановка задачі:

Дано ціле п. Визначити п!

Аналіз алгоритму:

Відомо, що n! (вимовляється як n–факторіал) – це добуток усіх натуральних чисел від 1 до п.

Текст програми:

Program Task_29;

Uses crt;

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

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

Begin

Clrscr;

Factorial:=1;

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

Readln(n);

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

Writeln(‘Факторіал = ‘, Factorial:8:2);

Readkey;

End.


ЗАДАЧА № 30

Постановка задачі:

За даним натуральним значенням змінної п обчислити:

Аналіз алгоритму:

Для розв’язання цієї задачі необхідно виконати обчислення, починаючи з самого вкладеного кореня. Кожний наступний крок обчислюється таким чином: до попереднього результату додається двійка і з отриманої суми береться квадратний корінь.

Текст програми:

Program Task_30;

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 Rez:=sqrt(2+Rez);

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

Readkey;

End.

ЗАДАЧА № 31

Постановка задачі:

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

Аналіз алгоритму:

Звуковий сигнал у цій програмі можна подавати за допомогою процедур керування вбудованим динаміком sound та nosound. Перша з них викликає звучання ноти заданої частоти (частота вказується в дужках після процедури), а друга виключає динамік. Тривалість звучання та паузи між звуками можна задавати процедурою delay, параметром якої є змінна time (значення цієї змінної можна задати командою присвоєння або введенням із клавіатури).


Текст програми:

Program Task_31;

Uses crt;

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

Time:word;

Begin

Clrscr;

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

Readln(n);

Time:=10000;

{Значення цієї змінної залежить від характеристик комп’ютера, і може бути підібране практичним шляхом}

If (n<1)>12) Then

begin

Writeln(‘Ви помилились, такої оцінки не існує. ‘);

Sound(200); Delay (time*5); nosound;

end

Else

For I:=1 to n do

Begin

Sound(200); Delay(time);

Nosound; Delay(time);

End;

Readkey;

End.


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

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