Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
34
Добавлен:
07.02.2016
Размер:
342.02 Кб
Скачать

Var і, s: integer;

begin

s:=0;

for i:=1 to 100 do s := s + i;

writeln (‘s=’,s);

readln;

end.

Приклад 3.11. Знайдемо y=n!(див. приклад 2.11)

var i,n :integer;

y: longint;

begin

writeln(‘вв. n’);

readln(n);

y:=1;

for i:=1 to n do y:= y*i;

writeln (n,’!=’,y);

readln;

end.

Приклад 3.12. Знайдемоy=.(див. приклад 2.12)

var x,y:real;

i,n :integer;

begin

writeln(‘вв. x, n’);

readln(x, n);

y:=1;

for i:=1 to n do y:= y*x;

writeln (’y=’,y);

readln;

end.

Увага! Обов’язково розберіться та вивчіть програми, розглянуті у прикладах 2.10, 2.11, та 2.12. Вони надалі будуть використовуватися у різних програмах як фрагменти.

Розглянемо ще декілька прикладів регулярного циклу.

Приклад 3.13.Вивести на екран літери англійського алфавіту в оберненому порядку.

var i: char; {параметр циклу і є символьною величиною}

begin

for i:= ’z’ dounto ‘a’ do

write(i,’,’);

end.

Приклад 3.14. Знайти значення виразу y=

Приведений вираз є сумою дробів, в чисельнику яких перебирається значення синусу, а в знаменнику береться косинус від попереднього значення знаменника. У зв’язку з тим, що значення змінної-параметру циклу змінюється з 1 до n, то можна використати оператор for. Введемо додаткову змінну для знаменника: zn. Отримуємо таку програму:

var ch,zn,y:real;

i,n :integer;

begin

writeln(‘вв. n’);

readln(n);

y:=0;

zn:=1;

for i:=1 to n do

begin

zn:=cos(zn);

y:=y+sin(i)/zn;

end;

writeln (’st=’,st);

readln;

end.

Приклад 3.15. Знайти y=. Відомо, що число коренів дорівнюєn. Алгоритм цього прикладу достатньо простий. В регулярному циклі відбуваються наступні дії: до деякої величини додається 2 та з результату береться корінь від цієї величини. Ця дія відбувається n раз.

var y:real;

i,n :integer;

begin

writeln(‘вв. n’);

readln(n);

y:=0;

for i:=1 to n do y:=sqrt(y+2);

writeln (’y=’,y);

readln;

end.

Оператори мови Pascal можуть бути вкладеними, причому глибина вкладеності необмежена. Як приклад розглянемо задачу на виведення на екран таблиці множення Піфагора. Перший множник позначемо змінною i, другу змінну позначемо j. Для кожного значення першої змінної, яка перебирає значення від 1 до 10, треба відповідно вибрати всі значення другої змінної Тому в середині циклу по першій змінній i використовуємо регулярний цикл для другої змінної j. Таким чином отримуємо вкладені цикли.

Var I,n, y :integer;

begin

writeln(‘таблиця множення’);

writeln(‘ , 1 2 3 4 5 6 7 8 9 10’);

for i:=1 to 10 do

begin

write(i, ‘ ‘);

for j:=1 to 10 do

begin

y:=i*j;

write(y:4);

end;

writeln;

end;

readln;

end.

Приклад 3.16. Знайти кількість «щасливих» білетів з номерами від 000000 до 999999 включно. Білет є щасливим, якщо сума лівих трьох цифр номера дорівнює сумі правих трьох цифр. В цьому випадку кількість вкладених циклів дорівнює 6 – кількості цифр у числі.

величина

ідентифікатор

тип

вхідні величини

перша цифра

a

ціле

друга цифра

b

ціле

третя цифра

c

ціле

четверта цифра

d

ціле

п’ята цифра

e

ціле

шоста цифра

f

ціле

вихідні величини

кількість щасливих білетів

k

ціле

Для розв’язку задачі будемо перебирати всі можливі номери білетів, таким чином кожна цифра змінюється від 0 до 9:

Соседние файлы в папке конспект лекцій 1 паск