Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Методичні рекомендації. Оператор whіle аналогічний оператору repeat, але перевірка Умови виконання циклу відбувається на самому початку оператора - якщо значення умови дорівнює tr




Begіn

Begіn

Begіn

{ Інструкції }

end;

Оператор whіle аналогічний оператору repeat, але перевірка Умови виконання циклу відбувається на самому початку оператора - якщо значення умови дорівнює true (істина), то виконуються інструкції циклу, що знаходяться між, begіnта end і знову обчислюється вираз Умова виконання циклу. Так продовжується доти, поки значення Умова виконання циклу не стане рівною false (хибна). На рис.24 приведена блок-схема оператора повтору whіle.

Варто знати:

· число повторень операторів (інструкцій) циклу whіle визначається в ході роботи програми і, як правило, заздалегідь невідомо;

· після слова whіle записується умова продовження виконання інструкцій циклу, у цьому відмінність циклу whіle від циклу repeat;

· умова - це вираз логічного типу: простий вираз відношення чи складний вираз відношення, що може приймати одне з двох значень: true чи false;

· для успішного завершення циклу whіle у його тілі обов'язково повинні бути присутні інструкції, що впливають на умову виконання інструкцій циклу.

· цикл whіle - це цикл із передумовою, тобто інструкції тіла циклу взагалі можуть бути не виконані, якщо умова, що перевіряється, хибна з самого початку;

· цикл whіle зручно використовувати в тих випадках, коли можливі ситуації невиконання циклу;

· в операторі циклу whіle крапка з комою ніколи не ставиться після зарезервованого слова do.

Приклад Пошук суми чисел від 1 до 10.

var

s, i: integer;

begin

s:= 0; і:= 1;

whіle і<=10 do { знаходимо суму чисел від 1 до 10 }

begіn

s:=s+і;

і:=і+1; { зміна змінної керування циклом }

end;

writeln ('Сума = ', s:4);

end.

 

Оператор FOR

Цей вид оператора циклу називають циклом з лічильником чи циклом з параметром. У ньому важливу роль відіграє змінна-параметр, що на кожному кроці циклу автоматично змінює своє значення на одиницю - тому її і називають лічильником. Інструкцію for можна реалізувати двома способами.

Варіант 1 (зі збільшенням лічильника).

for Лічильник:= ПочатковеЗначення to КінцевеЗначення do

{ Інструкції }

end;

Ключові слова for, do позначають "для", "виконуй" відповідно. Рядок, який містить for...do, називається заголовком циклу, оператор, що стоїть після do утворює його тіло. Дуже часто тіло циклу - складений оператор. Якщо тіло циклу представлене одним оператором, то begіn і end не пишуться. На блок-схемі алгоритму цикл із параметром позначають в спосіб зображений на рис. 25.

Інструкції між begіn і end виконуються стільки разів, скільки визначає вираз [(КінцевеЗначення- ПочатковеЗначення) +1]. Це відповідає всім значенням лічильника від початкового до кінцевого включно. Якщо ПочатковеЗначення більше, ніж КінцевеЗначення, то інструкції між begіn і end не виконуються жодного разу.

Варіант 2 (із зменшенням лічильника).

for Лічильник:= ПочатковеЗначення downto КінцевеЗначення do

{ Інструкції }

end;

Інструкції між begіn і end виконуються стільки разів, скільки визначає вираз [(ПочатковеЗначення - КінцевеЗначення) +1]. Якщо ПочатковеЗначення менше, ніж КінцевеЗначення, то інструкції між begіn і end не виконуються жодного разу.

Приклад. Обчислення факторіалу числа n

uses crt;

var k, n, f: іnteger;

begіn

clrscr; { очищення екрана }

wrіteln('Введіть число?');

readln(n);

f:= 1;

for k:=l to n do

begіn

f:=f*k;

end;

wrіteln('факторіал числа ',n:4, ‘ рівний ’, f);

end.

Завдання 1.

1. 10 разів виконати таку дію: вивести на екран число 2

2. N разів виконати такі дії: значення змінної Е додати до значення змінної С і результат присвоїти змінній Е

3. Дванадцять разів виконати таки дії: вивести на екран число М.

4. С разів виконати такі дії: значення змінної Е додати до значення змінної С і результат присвоїти змінній С.

5. Сім разів виконати таку дію: змінній С присвоїти результат додавання значення змінної С і числа 2.

6. D разів виконати таку дію: вивести на екран суму значень змінних А і В.

7. Двадцять разів виконати таку дію: змінній Т присвоїти результат додавання змінної Т і числа 2.

8. К разів виконати такі дії: присвоїти змінній результат віднімання числа 5 від змінної С, вивести на екран значення змінної С.

9. 15 разів виконати таку дію: вивести на екран число 5.

10. N разів виконати такі дії: значення змінної Е помножити на значення змінної С і результат присвоїти змінній Е

11. 10 разів виконати таки дії: вивести на екран число (- М).

12. N разів виконати такі дії: значення змінної Е відняти від значення змінної С і результат присвоїти змінній С.

 

Завдання 2.

Дано натуральні числа а, b, с. Необхідно вивести таблицю відповідності:

1. маси в кілограмах і фунтах для значень фунтів від а до b з кроком с фунтів, знаючи що 1 фунт = 0,4 кг;

2. віддалі в дюймах і сантиметрах для значень дюймів від а до b з кроком с дюймів, знаючи що 1 дюйм = 2,54 см;

3. віддалі в футах i сантиметрах для значень фунтів від а до b з кроком с футів, знаючи що 1 фут = 30, 48 см;

4. віддалі в милях i кілометрах для значень миль від а до b з кроком с миль, знаючи що 1 миля = 1,6 км;

5. вартості порції масла масою від а до b кілограм з кроком с кілограм, знаючи що 1 кг масла коштуе 11,7 грн.

6. вартості молока об'ємом від а до b літрів з кроком с літрів, знаючи що 1 літр молока коштуе 1,65 грн.

7. вартості бензину об'ємом від а до b літрів з кроком с літрів, знаючи що 1 літр бензину коштуе 3,95 грн.

8. об’єму пам’яті в кБ та байтах від a до b кБ з кроком с кБ, знаючи, що 1 кБ =1024 байт.

9. маси в грамах та каратах для значень грамів від а до b з кроком с грамів, знаючи що 1 карат = 0,2 г;

10. маси в кілограмах і пудах для значень пудів від а до b з кроком с пудів, знаючи що 1 пуд = 16,38 кг;

11. віддалі в кабельтов і метрах для значень кабельтов від а до b з кроком с кабельтов, знаючи що 1 кабельтов = 185,2 м;

12. віддалі в морських милях i кілометрах для значень миль від а до b з кроком с миль, знаючи що 1 морська миля = 1,852 км;

 

Завдання 3.

Скласти і вивести на екран таблицю значень функції для заданих значень аргументу від а до b з кроком с. Результат вивести у вигляді таблиці:

1. 2. 3. y = x3 / 2 + 2;

4. y = (x – 1) / x 5. y = x2 + 2 x + 3 6. y = 3 – x2

Дано натуральне число n.

7. Обчислити 2n(без використання формули піднесення до степеня);

8. Обчислити 1/n! (1 2 3... n) (1<n< 10);

9. Обчислити суму s = 1 + 1/2 + 1/3 +... + 1/n;

10. Обчислити суму s = 1/2 + 2/3 + 3/4 +....+ (n - 1)/n(2<n<30);

11. Обчислити добуток d = 2/1 • 3/2 • 4/3 •... • n/(n-1) (2<n<15);

12. Обчислити добуток d = (1 + 1/12) • (1 + 1/22) • … • (1 + 1/n2)

 

Завдання 4.

1. У магазин надійшло N видів сиру. Про кожен вид сиру відомо: кількість голівок сиру, вага однієї голівки сиру (у кг), ціна 1 кг сиру (у грн.). Складіть програму для визначення вартості всього сиру, що надійшов.

2. Відомі річні оцінки учня з усіх навчальних предметів. Скласти програму для визначення, чи є цей учень «хорошистом» («хорошист» - це той учень, у якого всі оцінки не нижче «7» і не вище «9»).

3. На фермі працюють Т тракторів. Про кожен трактор відомо: скільки днів він працював на полі і скільки гектарів обробляв щодня. Складіть програму для визначення площі, обробленої всіма тракторами разом.

4. Відомо, скільки балів набрав учасник олімпіади на кожному з N турів, а також максимально можлива кількість балів за кожен тур. Складіть програму для визначення, чи може цей учасник стати призером олімпіади, якщо для цього необхідно набрати не менше, ніж 30 % максимально можливої кількості балів, а також ні за який тур не одержати 0 балів.

5. У басейн наливається вода з N труб. Про кожну трубу відомо: скільки літрів води в хвилину наливається з труби в басейн, скільки хвилин була відкрита труба. Складіть програму для визначення, скільки літрів води було налито в басейн.

6. Відомо, скільки балів набрав учасник олімпіади на кожному з N турів, а також максимально можлива кількість балів за кожен тур. Скласти програму для визначення, чи може цей учасник стати призером олімпі­ади, якщо для цього необхідно за кожен тур набрати не менше, ніж 25 % максимально можливої кількості балів, або за усі тури разом не менше, ніж 40 % балів.

7. У міській естафеті «Забіг на 10 км» брали участь N учнів школи. Про кожного учня відомо: відстань, що він пробіг, а також його середня швидкість. Складіть програму для визначення командного часу забігу.

8. Відомі річні оцінки учня з усіх навчальних предметів. Складіть про­граму для визначення, чи є цей учень «трієчником». «Трієчник» - це той учень, у якого всі оцінки не нижче «4», однак він не є «хороши-стом» чи «відмінником» (всі оцінки не нижче «7»).

9. Дано числа від 1 до 100. Визначити скільки з цих чисел діляться на 3.

10. Ви поклали гроші в банк під 10% у місяць. Скласти програму, яка б визначала яка сума буде знаходитись на Вашому рахунку через N місяців.

11. Визначити яким повинно бути N, щоб значення суми S = 1 + 2 + 3 +... + Nбуло рівне або більше 1000.

12. У басейн наливається вода з N труб. Про кожну трубу відомо: скільки літрів води в хвилину наливається з труби в басейн, скільки хвилин була відкрита труба. Складіть програму для визначення, скільки часу потрібно для наповнення басейну ємністю L.

 

 

Лабораторна робота № 27-28. Масиви. Алгоритми обробки таблиць.

Якщо робота програм пов’язана із збереженням та обробкою великого об’єму однотипних змінних, для їх представлення в програмі можна використовувати масиви. Масив – це сукупність даних одного типу із загальним для всіх елементів іменем. Елементи масиву пронумеровані, і звернутися до кожного з них можна за номером (або декількома номерами – наприклад, для елемента таблиці задається номер рядка та стовпця). Номери елементів масиву інакше називаються індексами, а самі елементи масиву – змінними з індексами (індексованими змінними).

Характеристики масиву:

· Тип – спільний тип всіх елементів масиву;

· Розмірність (ранг) – кількість індексів масиву;

· Діапазон зміни індексу (індексів) – визначає кількість елементів в масиві.

Вектор (одномірний масив) – це приклад масиву, в якому елементи нумеруються одним індексом. Якщо в масиві зберігається таблиця значень (матриця), то такий масив називається двомірним, його елементи нумеруються двома індексами – номером рядка та стовпця відповідно. В якості номеру (індекса) елемента масиву, в загальному випадку, використовується вираз порядкового типу. Найчастіше індекс – це ціла константа або змінна типу integer, зрідка - типу char або boolean. При звертанні до елементу масиву індекс вказується в квадратних дужках після імені масиву. Нариклад, a[3], b[1,2].

Опис масиву в розділі VAR.

Для одномірного масиву:

var Ім’яМасиву: array [НижняМежа.. ВерхняМежа]

of ТипЕлементів;

Приклад.

 

var

a: array [1..100] of integer; { 100 елементів – цілі числа }

b: array [0..50] of char; { 51 елемент – символи }

c: array [-3..4] of boolean; { 8 елементів – логічні значення }

 

Для двомірного масиву:

var Ім’яМасиву: array [НижняМежаІндекс1.. ВерхняМежаІндекс1, НижняМежаІндекс2.. ВерхняМежаІндекс2]

of ТипЕлементів;

Приклад.

 

var

a: array [1..3, 1..4] of integer; { матриця з трьох рядків і 4-х ствопців, елементи - цілі числа}

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

· Заповнення вектору з n елементів:

for i:=1 to n do readln(a[i]);

· Заповнення матриці розміром m x n елементів (всього потрібно ввести m*n чисел):

for i:=1 to m do

for j:=1 to n do

readln(a[i,j]);

· Заповнення вектора з n елементів випадковими числами в діапазоні від 0 до 99 включно:

randomize {ініціалізація датчика випадкових чисел}

for i:=1 to n do a[i]:=random(100);

Вивід масиву

· В стовпець:

for i:=1 to n do writeln(a[i]);

· Матриці розміром m x n елементів в стандартній формі запису – по рядкам і стовпцям:

for i:=1 to m do

begin

for j:=1 to n do

write(a[i,j:4]);

writeln;

end;

Обробка масиву

Дії з одномірними масивами (вектор, що містить n елементів)

· Обчислення суми елементів:

S:=0;

for i:=1 to n do s:=s+a[i]; {звичайне накопичення суми в s}

· Обчислення добутку елементів:

p:=1;

for i:=1 to n do p:=p*a[i]; {звичайне накопичення добутку в p}

· Підрахунок кількості елементів, що задовольняють певній умові (наприклад, кількість парних чисел в цілочисельному масиві):

k:=0;

for i:=1 to n do

if a[i] mod 2=0 then k:=k+1; {збільшуємо на 1 лічильник парних чисел, якщо число ділиться на 2}

· Пошук елемента із заданим значенням та вивід його номера в масиві:

i:=0; {номер елементів масиву}

repeat

i:=i+1;

until (a[i]=0){знайшли} or (i=n){масив закінчився};

if a[i]=0 then writeln (‘Номер першого нульового елемента = ’, i)

else writeln(‘Таких елементів немає’);

· Пошук максимального елемента та його номера в масиві:

max:=a[1]; k:=1; {змінна max зберігає значення максимуму, k- його номер в масиві}

for i:=1 to n do {перебираємо елементи, починаючи з другого}

if a[i]>max then

begin

max:=a[i]; k:=i; {запам’ятовуємо значення і номер елемента, який більше всіх попередніх}

end;

Дії з двомірними масивами ( n рядків та m стовпців)

· Обчислення суми елементів кожного рядка:

for i:=1 to n do

begin

S:=0;

for j:=1 to m do s:=s+a[i,j];

d[i]:=s; {результатом є вектор d, що складається з n сум елементів рядків}

end;

· Пошук мінімального елемента всієї матриці:

min:=a[1,1]; k:=1; l:=1; {змінна min зберігає значення мінімуму, k і l– номер рядка та стовпця, де він знаходиться}

for i:=1 to n do

for j:=1 to m do

if a[i,j]<min then

begin

min:=a[i,j]; k:=i; l:=j;

end;

· Множення матриці а на вектор х, в результаті отримуємо новий вектор y:

for i:=1 to n do

begin

s:=0;

for j:=1 to m do

s:=s+a[i,j]*x[j];

y[i]:=s;

end;

Завдання 1.

Ввести одномірний масив А з N елементів та виконати наступні дії:

1. 5-му елементу присвоїти значення останнього елемента;

2. 7-му елементу присвоїти значення суми попереднього та наступного елементів;

3. різницю значень останнього та першого елементів присвоїти другому елементу;

4. 5-му елементу присвоїти результат множення першого та останнього елементів;

5. суму значень першого та другого елементів присвоїти останньому елементу;

6. змінити знак першого елемента на протилежний;

7. змінити знак останнього елемента на протилежний;

8. першому елементу масиву присвоїти його подвоєне значення;

9. останньому елементу масиву присвоїти його подвоєне значення;

10. першому елементу масиву присвоїти значення добутку останнього та передостаннього елементів;

11. останньому елементу масиву присвоїти значення добутку першого та другого елементів;

12. перший та останній елементи поміняти місцями.

Результуючий масив вивести на екран.

Завдання 2.

Ввести одномірний масив А з N елементів та виконати наступні дії:

1. Знайти мінімальний елемент та присвоїти йому значення 0.

2. Знайти максимальний елемент та присвоїти йому значення 100.

3. Знайти максимальний за модулем елемент та поміняти його місцями з останнім елементом масиву.

4. Знайти мінімальний за модулем елемент та поміняти його місцями з першим елементом масиву.

5. Підрахувати кількість від’ємних елементів масиву та присвоїти їм значення 0.

6. Підрахувати кількість додатніх елементів масиву та присвоїти їм значення 100.

7. Підрахувати кількість елементів кратних 3-м та присвоїти їм значення 33.

8. Підрахувати кількість елементів кратних 5-ти та присвоїти їм значення 55.

9. Знайти максимальний за модулем елемент, його індекс та присвоїти йому частку від ділення цих даних.

10. Знайти мінімальний за модулем елемент, його індекс та присвоїти йому значення добутку цих даних.

11. Підрахувати різницю між від’ємними та додатніми елементами масиву.

12. Всім нульовим елементам масиву присвоїти значення 100.

Результат вивести на екран.

Завдання 3.

Ввести двомірний масив А з MxN елементів та виконати наступні дії:

1. Знайти суму модулів всіх від’ємних елементів матриці.

2. Знайти суму всіх додатніх елементів матриці.

3. Знайти мінімальний елемент і присвоїти йому значення 0.

4. Знайти максимальний елемент присвоїти йому значення 1000.

5. Всім парним елементам присвоїти значення 2;

6. Всім непарним елементам присвоїти значення 1;

7. Порахувати кількість від’ємних елементів;

8. Порахувати кількість додатніх елементів;

9. Обчислити різницю між макисмальним та мінімальним елементами матриці;

10. Обчислити кількість парних елементів матриці.

11. Обчислити кількість непарних елементів матриці.

12. Знайти кількість елементів матриці, значення яких більше значення першого елемента.

Результат вивести на екран.

Завдання 4.

Ввести двомірний масив А з MxN елементів та виконати наступні дії:

1. Знайти суму всіх елементів, що лежать в діапазоні (-∞;1) і її значення присвоїти елементам, що знаходяться в першому рядку матриці.

2. Знайти суму всіх елементів, що лежать в діапазоні (4;+∞) і її значення присвоїти елементам, що знаходяться в останньому рядку матриці.

3. Знайти мінімальний елемент і його значення присвоїти елементам, що знаходяться в першому рядку матриці.

4. Знайти максимальний елемент і його значення присвоїти елементам, що знаходяться в останньому рядку матриці.

5. Матриця M=N. Елементам головної діагоналі присвоїти значення 0;

6. Матриця M=N. Елементам, що знаходяться нижче головної діагоналі присвоїти значення 1;

7. Матриця M=N. Елементам, що знаходяться вище головної діагоналі присвоїти значення 100;

8. Матриця M=N. Знайти мінімальний елемент, та його значення присвоїти елементам головної діагоналі;

9. Матриця M=N. Знайти максимальний елемент, та його значення присвоїти елементам головної діагоналі;

10. Знайти мінімальний елемент і рядок, де він знаходиться поміняти з першим рядком матриці.

11. Знайти максимальний елемент і рядок, де він знаходиться поміняти з останнім рядком матриці..

12. Знайти мінімальний та максимальний елемент та поміняти їх місцями.

Результат вивести на екран.

 

 




Поделиться с друзьями:


Дата добавления: 2015-05-24; Просмотров: 1410; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.125 сек.