|
ЦИКЛІЧНІ ПРОГРАМИ З РЕГУЛЯРНОЮ ЗМІНОЮ АРГУМЕНТА, ЯКІ МІСТЯТЬ РОЗГАЛУЖЕННЯ
4.1. Обчислити значення функції у набуває значення від 0 до 8 з кроком 0.15. 4.2. Обчислити значення функції
де b=2; 2.4; 2.8; 3.2; 3.6; 4.0; q=0.1; 0.3; 1.1; 1.25; 1.9; 2.8. Величини b і q змінюються одночасно. 4.3. Знайти найменше значення функції і відповідне їй значення аргумента:
Аргумент змінюється від початкового значення 0.3 з кроком 0.25 до кінцевого значення 3.3 (радіан). 4.4. Вивести на друк тільки від’ємні значення і їх кількість:
Аргумент х змінюється від початкового значення 1.1 з кроком 0.2 до кінцевого 4.1. 4.5. Знайти найменше додатнє і найменше від’ємне значення функції і відплвідне їм значення аргумента:
Аргумент х змінюється від початкового значення 0.1 з кроком 0.15 до кінцевого 3.1 (радіан). 4.6. Обчислити різницю між максимальним і мінімальним значенням функції:
Аргумент х змінюється від початкового значення 0.1 зкроком 0.32 до кінцевого значення 6.5. 4.7. Знайти квадрат максимального значення функції:
Аргумент х змінюється від початкового значення 1/16 з кроком 0.25 до кінцевого 4.2. 4.8. Обчислити вС значення функції і аргумента:
Аргумент b змінюється від початкового значення 9.5 з кроком 0.25 до кінцевого 12.75. 4.9. Обчислити значення функції і вивести на друк окремо відємні, а окремо додатні значення функції і відповідні значення їм аргументів:
Аргумент х змінюється від початкового значення 1.2 з кроком 0.15 до кінцевого 4.4. 4.10. Вивести на друк значення функції, які задовольняють умову у<2.5 i y>1.5:
Аргумент а змінюється від початкового значення 1.15 до кінцевого 6.3. Кількість значень аргумента n=9. 4.11. Вивести на друк значення, які задовольняють умову у>1.35 i y<2.4, і відповідні значення аргумента. Аргумент х змінюється від 0.42 до 0.86 з кроком 0.04:
4.12. Обчислити добуток мінімального і максимального значень функції. Кількість значень аргумента n=19. Аргумент y змінюється від початкового значення 0.1 з кроком 0.75 (радіан):
4.13. Вивести на друк значення функції, які лежать в межах a>b>c, підрахувати їх кількість.
Аргумент х змінюється від початкового значення 3.4 з кроком 0.11 до кінцевого 6.6. 4.14. Обчислити 20 значень функції і відповідних значень аргумента, а також окремо вивести на друк максимальне зна-чення функції:
Аргумент с змінюється від початкового значення 1.35 до кінцево-го 4.35 з постійним кроком. 4.15. Вивести на друк ті значення функції у і їх кількість, які лежать в межах 2.5>y>-1.5:
Аргумент с змінюється від початкового значення 4.2 до 8.3 з кроком 0.15. 4.16. Обчислити члени послідовності які задовольняють умову 1.5<a<3.8; m=1,2,3,...,16. 4.17. Обчислити таблицю значень функції
для значень х, які змінюються від 0.5 до 8.5 включно з кроком 0.05. При цьому, якщо знаменник менше 10-3 за абсолютним зна-ченням, то покласти у=106. Коефіцієнти а і b ввести з клавіатури. 4.18. Скласти блок-схему алгоритму і програму для розв’язу-вання квадратного рівняння Якщо дискримінант додатній, то вивести на друк дійсні корені. Якщо дискримінант від’ємний, то вивести окремо дійсну і уявну частини коренів. Введення чисел a, b, q виконати з клавіатури. 4.19. За відомими декартовими координатами х і у довільної точки на площині визначити її полярні координати r і j. При цьому а полярний кут
4.20. Обчислити пари функцій f1 i f2, якщо межі зміни аргументів однакові. На друк вивести значення функції і аргумента.
Якщо аргумент лежить за вказаними межами, то вивести на друк значення аргумента і повідомлення “ФУНКЦІЯ НЕ ЗНАЙДЕНА”. Числові значення аргумента ввести з клавіатури. 4.21. Температуру з градуСв за шкалою ЦельСя (С) в градуси за шкалою Фаренгейта (F) переводять за залежністю Перевести температури від 12oС до 30 oС з кроком 1oС. 4.22. Зміна потужності випромінювання ізотопів Q в чаС t описується залежністю де Визначити, через скільки діб потужність випромінювання ізотопу, період піврозпаду якого дорівнює 8 діб, знизиться до безпечної величини 0.15 рентгена на годину, 4.23. Тиск рідини з глибиною зростає. Надрукувати таблицю зміни тиску глинистого розчину в середині через кожні 150 м. Глибина свердловини - 1800 м, густина розчину r=1300 кг/м. 4.24. За перший рік розробки нафтового родовища видобуток нафти склав 200 тис. т на рік. В наступні роки видобуток нафти зростав на 8% за рік. Визначити, скільки буде видобуто нафти з родовища за 25 років. 4.25. Для умови задачі 4.24 обчислити, через який найменший строк видобуток нафти складатиме не менше 350 тис. т нафти за рік. 4.26. Концентрація хлорного вапна в басейні об’ємом V складає С0. В басейн вливають чисту воду при постійному в ньому рівні /приплив дорівнює витоку/. З умови ідеального перемішування концентрація хлорного вапна змінюється за законом де t - час; С0 - початкова концентрація. Визначити, через який час концентрація хлорного вапна досягне безпечної для людини велечини 0.1 г/л, Q=120 м/год, V=25 м3, С0=12 г/л.
Приклад. Вивести на друк тільки від’ємні значення функції і відповідні значення аргумента, а також кількість додатних зна-чень функції
Аргумент х змінюється від початкового значення 1.5 до кінцево-го 3.3 з кроком 0.2. Розв’зок задачі. 1 Графічний алгоритм наведений на рис.4.1
2 Ідентифікація змінних
Тут к - кількість додатних значень 3. Праграма мовою GW -Basic
10 REM ЦИКЛ З РОЗГАЛУЖЕННЯМ 20 LET A=3.2 30 LET K=0 40 FOR X=1.5 TO 3.3 STEP 2E-1 50 LET Y=X*LOG(X)-A 60 IF Y<0 THEN PRINT “Y=“;Y,”X=“;X ELSE LET K=K+1 70 NEXT X 80 PRINT “КІЛЬКІСТЬ ДОДАТН. ЗНАЧ. ФУНКЦ.=“;K 90 END
Y= -2.5918 X=1.5 Y= -2.29793 X=1.7 Y= -1.98048 X=1.9 Y= -1.64193 X=2.1 Y= -1.28431 X=2.3 Y= -9.09275E-1 X=2.5 Y= -5.18222E-1 X=2.7 Y= -1.12341E-1 X=2.9
КІЛЬКІСТЬ ДОДАТН. ЗНАЧ. ФУНКЦ.= 2
4.Програма мовою С
#include <stdio.h> #include <math.h> #define A 3.2 #define X1 1.5 #define X2 3.31 #define DX 2e-1 main( ) { float x,y; int k=0; for(x=X1;x<=X2;x+=DX) { y=x*log(x)-A; if (y<0) printf(“\n Y=%f X=%2.if”,y,x); else k++; } printf(“\n КІЛЬКІСТЬ ДОДАТН. ЗНАЧ. ФУНКЦ.=%i”,k); }
Y= -2.591802 X=1.5 Y= -2.297932 X=1.7 Y= -1.980477 X=1.9 Y= -1.641931 X=2.1 Y= -1.284309 X=2.3 Y= -0.909273 X=2.5 Y= -0.518220 X=2.7 Y= -0.112338 X=2.9
КІЛЬКІСТЬ ДОДАТН. ЗНАЧ. ФУНКЦ.= 2
5. Програма мовою Pascal
program lab4(input,output); const a=3.2; var y,x: real; k: integer; begin x:=1.5; k:=0; repeat y:=x*ln(x)-a; if y<0 then writeln(‘y=‘,y:11,’ x=‘,x:11) else k:=k+1; x:=x+0.2; until x>3.3; writeln(‘КІЛЬКІСТЬ ДОДАТН. ЗНАЧ. ФУНКЦ.=’,k) end.
Y= -2.5918E+00 X=1.5000E+00 Y= -2.2979E+00 X=1.7000E+00 Y= -1.9805E+00 X=1.9000E+00 Y= -1.6419E+00 X=2.1000E+00 Y= -1.2843E+00 X=2.3000E+00 Y= -9.0928 E -01 X=2.5000E+00 Y= -5.1822 E -01 X=2.7000E+00 Y= -1.1234 E -01 X=2.9000E+00 КІЛЬКІСТЬ ДОДАТН. ЗНАЧ. ФУНКЦ.= 2
езультати: елементімальний і максимальний елементи, і вивести на друк перетворений масив, а також мінімальний і максимальний еЗавдання: Вивести на друк тільки відємні значення функції і відповідні значення аргумента, а також кількість додатних значень функції
Аргумент х змінюється від початкового значення 1.5 до кінцевого 3.3 з кроком 0.2. Опис форми. Відкриваємо нову форму і на цій формі створюємо такі елементи (таблиця 4.1):
Таблиця 4.1- Елементи керування і їх властивості
Програма з з використанням оператора while…wend: Private Sub Command1_Click() Dim X,Y, A as Single A = 3.2 K = 0 X = Val(Text1.Text) While X < Val(Text2.Text) + Val(Text3.Text) Y = X * Log(X) - A If Y < 0 Then Print "Y="; Format(Y, "###.####"), "X="; Format(X, "#.##") Else K = K + 1 End If X = X + Val(Text3.Text) Wend Print "КІЛЬКІСТЬ ДОДАТНІХ ЗНАЧЕНЬ = "; K End Sub
Private Sub Command2_Click() End End Sub
Програма з оператором Do…Loop: Private Sub Command1_Click() Dim X,Y, A as Single A = 3.2 K = 0 X = Val(Text1.Text) Do Y = X * Log(X) - A If Y < 0 Then Print "Y="; Format(Y, "###.####"), "X="; Format(X, "#.##") Else K = K + 1 End If X = X + Val(Text3.Text) Loop Until X > Val(Text2.Text) + Val(Text3.Text) Print "КІЛЬКІСТЬ ДОДАТНІХ ЗНАЧЕНЬ = "; K End Sub
Private Sub Command2_Click() End End Sub
Риунок 4.3– Результат виконання програми. Програма мовою Delphi Опис форми.
Таблиця 4.2 - Елементи керування і їх властивості
Код програми матиме вигляд: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; Label1: TLabel; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; const a=3.2; var Form1: TForm1; y,x: real; k: integer; implementation
{$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin x:=1.5; k:=0; repeat y:=x*ln(x)-a; if y<0 then Memo1.Lines.Add('y='+format('%2.7s',[FloatToStr(y)])+' x='+FloatToStr(x)) else k:=k+1; x:=x+0.2; until x>3.3; Memo1.Lines.Add('КІЛЬКІСТЬ ДОДАТН. ЗНАЧ. ФУНКЦ. k='+FloatToStr(k)); end; procedure TForm1.Button2Click(Sender: TObject); begin close; end; end.
Рисунок 4.5 – Результат виконання програми.
Пояснення до програм Графічний алгоритм (рис.4.1) складається з циклу, символ 3 - це заголовок циклу і розгалуження. В символі 5 порівнюється значення функції у з нулем. Якщо значення у від’ємне, то друкується значення функції і відповідне значення аргумента, символ 7. Якщо значення у невід’ємне, то вмістиме лічильника циклу зростає на одиницю, символ 6. Програма має циклічну структуру. В тілі циклу знаходиться розгалуження, яке реалізовано за допомогою умовного оператора. Мовами GW Basic і С цикл організований за допомогою оператора FOR, а мовою Pascal - за допомогою оператора repit...until. На друк виведено віСм від’ємних значень функції і вказано, що два значення функції є додатні.
Питання для самоперевірки
1. Напишіть програму без застосування оператора циклу. 2. Чи може розгалуження не входити до тіла циклу? 3. Як побудувати програму мовою GW Basic за допомогою неповного умовного оператора, використовуючи цикл з післяумовою чи передумовою? 4. Побудуйте програму з використання циклічних структур з передумовою та післяумовою. 5. Змініть програми таким чином, щоб перед виведенням результатів обчислень було надруковано повідомлення “РЕЗУЛЬТАТИ ОБЧИСЛЕННЯ”. ІТЕРАЦІЙНІ ЦИКЛІЧНІ ПРОЦЕСИ
Для наведених в таблиці 4 рівнянь необхідно: - скласти графічний алгоритм для визначення кореня рівняння із заданою похибкою вказаним методом. В алгоритмі передбачити лічильник кількості ітерацій; - скласти програму для ЕОМ; - розв’язати рівняння на ЕОМ в діалоговому режимі, користуючись розробленою програмою; - провести аналіз одержаного результату. Примітка. При використанні методу Ньютона необхідно визначити, яка з крайніх точок інтервалу ізоляції буде рухомою. Таблиця 5.1
Приклад. Знайти корінь рівняння xlnx+x-0.5=0 на інтервалі [0;1] з точністю e=10-4, користуючись методом ітерацій. Розв’язок задачі.
1. Запишемо рівняння у вигляді xi+1=0.5-xilnxi і наведемо початкове значення кореня х0=0.5. 2 Графічний алгоритм показаний на рис.5.1 3 Ідентифікація змінних
Тут N - кількість ітеацій
4. Програма мовою GW-Basic
10 REM ІТЕРАЦІЙНІ ЦИКЛИ 20 LET E=1E-4 30 LET X=2.5E-1 40 LET N=0 50 LET Y=5E-1-X*LOG(X) 60 LET T=ABS(X-Y) 70 LET X=Y 80 LET N=N+1 90 IF T<E THEN 50 100 PRINT “КОРІНЬ=“;Y 110 PRINT”КІЛЬКІСТЬ ІТЕРАЦІЙ=”;N 120 END КОРІНЬ=7.29874E-1 КІЛЬКІСТЬ ІТЕРАЦІЙ=23
5. Програма мовою С
#include <stdio.h> #include <math.h> #define E 1e-4 main( ) { double x=2.5e-1,y,t; int n=0; do { y=5e-1-x*log(x); t=fabs(x-y); x=y; n++; } while (t>E); printf(“\nКОРІНЬ=%f ”,x); printf(“\nКІЛЬКІСТЬ ІТЕРАЦІЙ=%i”,n); } КОРІНЬ= 0.729874 КІЛЬКІСТЬ ІТЕРАЦІЙ=23
6. Програма мовою Pascal
program lab5(input,output); var y,x,e,t: real; n: integer; begin e:=0.0001; x:=0.25; n:=0; repeat y:=0.5-xln(x); t:=abs(x-y); x:=y; n:=n+1; until t<e; writeln(‘КОРІНЬ= ’,y:12); writeln(‘КІЛЬКІСТЬ ІТЕРАЦІЙ= ’,n); end. КОРІНЬ= 7.29874E-01 КІЛЬКІСТЬ ІТЕРАЦІЙ= 23
езультати: елементімальний і максимальний елементи, і вивести на друк перетворений масив, а також мінімальний і максимальний еЗавдання: Знайти корінь рівняння xlnx+x-0.5=0 на інтервалі [0;1] з точністю e=10-4, користуючись методом ітерацій. Опис форми. Відкриваємо нову форму і на цій формі створюємо такі елементи (таблиця 5.1):
Таблиця 5.2 - Елементи керування і їх властивості
Рисунок 5.2 – Інтерфейс програми. Код програми: Private Sub Command1_Click() e = 0.0001 x = 0.25 n = 0 Do Y = 0.5 - x * Log(x) t = Abs(x - Y) x = Y0000000000000000 n = n + 1 Loop Until t < e Print "КОРІНЬ="; Format(Y, "###.####") Print "КІЛЬКІСТЬ ітерацій = "; n End Sub Private Sub Command2_Click() End End Sub
Програма мовою Delphi Опис форми. Відкриваємо нову форму і на цій формі створюємо такі елементи (таблиця 5.3): Таблиця 5.3- Елементи керування і їх властивості
Код програми матиме вигляд unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; y,x,e,t: real; n: integer; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin e:=0.0001; x:=0.25; n:=0; repeat y:=0.5-x*ln(x); t:=abs(x-y); x:=y; n:=n+1; until t<e; Label2.Caption:='КОРІНЬ= '+format('%2.8s',[FloatToStr(y)]); Label3.Caption:='КІЛЬКІСТЬ ІТЕРАЦІЙ= '+FloatToStr(n); end; procedure TForm1.Button2Click(Sender: TObject); begin close; end; end.
Рисунок 5.5- Результат виконання програми Пояснення до пограм
Особливість ітераційних циклів є те, що наперед невідома кількість циклів, які виконуються. Обчислення в циклі припинюється при досягненні заданої точності. Ітераційні цикли будуються за допомогою операторів умовного і безумовного переходів, а також використовуються структури організації циклів з передумовою чи з післяумовою.. Графічний алгоритм показаний на рис.5.1. Символ 2 задає початкове наближення кореня точності обчислення, обнуляє лічильник ітерацій. В символі 3 проводяться обчислення за ітераційною залежністю. Після обчислення модуля різниці двох послідовних наближень кореня, символ 4, виконується переприсвоєння “старого” наближення на “нове”, символ 5. В цьому ж символі організований лічильник ітерацій. Символ 6 керує повторенням циклу. Мовою GW-Basic ітераційний цикл побудований за допомогою оператора умовного переходу, а мовами С і Pascal, Visual Basic та Delphi - за допомогою операторів циклу з постумовою.
Питання для самоперевірки
1. Яка відмінність ітераційного циклу від циклу з регулярною зміною аргумента? 2. Як одержати ітераційну формулу для застосування методу ітерацій? 3. Яка умова закінчення ітераційних обчислень? 4. Як отримати кількість виконаних ітераційних циклів? 5. Який оператор керує виходом з циклу? 6. Побудуйте програму, використавши структуру циклу з післяумовою чи з передумовою.
ОДНОВИМІРНІ МАСИВИ Для задач цього розділу необхідно скласти графічний алгоритм, провести ідентифікацію змінних, скласти прграму і розв’язати задачу на ЕОМ. 6.1. Дано одновимірний масив Х, який складається з 12 еле-ментів, обчислити Результат вивести у вигляді масиву у. 6.2. Обчислити значення виразу Аргумент х змінюється від 0.8 до 1.7 з кроком 0.05 (радіан). Результати обчислень вивести у вигляді масиву. 6.3. Дано координати точок х1, y1, x2, y2,...,x20,y20 та рівняння прямої y=ax+b; b= -2.1; a=1.34. Сформувати і вивести на друк масив С, який складається з ординат точок, що належать цій пря-мій, і визначити їх кількість. 4
6.5. Дано координати точок х1, y1, x2, y2,...,x15,y15. Сформувати і вивести на друк два масиви: масив А - ординати точок, які знахо-дяться в першій чверті, і їх кількість; масив В - абсциси точок, які знаходяться в третій чверті, і їх кількість. 6.6. Дано координати точок х1, y1, x2, y2,...,x15,y15. Якщо точка попадає в площину, обмежену колом х2+y2=R2 , то вивести на друк координати цієї точки і повідомлення “ТОЧКА В ПЛОЩИНІ”; якщо точка за межами кола, то вивести на друк координати точки і повідомлення “ТОЧКА ЗА МЕЖАМИ”. R=15. 6.7. Дано цілочисловий одновимірний масив, який складається з 16 елементів. Знайти парні елементи масиву, які більші числа А, і їх кількість. Число А ввести з клавіатури. 6.8. Дано одновимірний масив P, який складається з 16 елемен-тів. Знайти номери тих елементів, модуль яких дорівнює заданому числу А. Число А ввести з клавіатури. 6.9. Дано цілочисловий одновимірний масив T, який скла-дається з 25 елементів. Сформувати два масиви: перший, який складається з додатних елементів масиву T, другий - з від’ємних. 6.10. Дано одновимірний масив P, який складається з 30 еле-ментів. Знайти мінімальний елемент і його порядковий номер. ВС числа, які знаходяться перед мінімальним елементом, поділити на нього. Вивести на друк заданий і новоутворений масиви. 6.11. Дано одновимірний масив P, який складається з 32 еле-ментів. Обчислити значення функції для від’ємних елементів ма-сиву і підрахувати їх кількість. 6.12. Обчислити елементи масиву T, який складається з 8 еле-ментів: 6.13. Дано одновимірний масив В, який складається з 15 еле-ментів. Сформувати вектор А, першим елементом якого є найменше число, а наступні елементи вектора А - числа, які знаходяться за найменшим елементом масиву В. 6.14. Дано одновимірний масив Х, який складається з 15 еле-ментів. Визначити півсуму найбільшого і найменшого елементів масиву. 6.15. Дано одновимірний масив С, який складається з 16 еле-ментів. Поміняти місцями мінімальний і максимальний елементи. 6.16. Дано одновимірний масив В, який складається з 12 еле-ментів. Сформувати вектор С, що повинен складатися з елементів вектора В, які знаходяться перед максимальним елементом. Вивести на друк вектори В і С. 6.17. Дано цілочисловий одновимірний масив С, який скла-дається з 15 елементів. Знайти максимальний елемент і його порядковий номер. ВС непарні числа, які знаходяться за максимальним елементом, звести до квадрата. Вивести на друк заданий і новоутворений масиви. 6.18. Дано три одновимірні масиви чисел A, B, C, які містять по 4 елементи. Сформувати матрицю T, стовпцями якої є дані масиви. 6.19. Дано одновимірний масив Х, розміром 20 елементів. Об-числити суму кожної пари суСдніх елементів масиву. 6.20. Обчислити значення перших п’ятнадцяти елементів ге-ометричної прогреСї, коли відомий перший елемент а=2 і її знаменник g=1.5. Наступний елемент геометричної прогреСї утворюється множенням попереднього на знаменник прогреСї. Примітка: для розміщення в пам’яті обчислених елементів про-греСї їх слід об’явити як масив. 6.21. Дано одновимірний масив Х, розміром 15 елементів. Про-вести циклічний зсув елементів у масиві вправо на 2 позиції. 6.22. Дано одновимірний масив С, який складається з 12 еле-ментів. Вилучити з масиву k-й елемент масиву (k<12). 6.23. Дано одновимірний масив Х, який складається з 12 еле-ментів. Замінити одиницями елементи масиву, які знаходяться після найменшого елементу. 6.24. Дано собівартості тонни нафти для 15 родовищ (від 4000 до 5500 крб. за тону). Визначити номери родовищ, для яких собівартість тонни нафти перевищує 5000 крб., і їх кількість. 6.25. Дано процентний показник виконання планового завдання кожним робітником бригади (від 60% до 115%). В бригаді 16 робітників. Визначити кількість і порядковий номер робітників, які виконали планове завдання на 100% і більше. 6.26. Для умови задачі 6.25 визначити кількість робітників, які виконали планове завдання від 101% до 110% і більше 110%, а також визначити їх порядкові номери. 6.27. Дано послідовність цілих чисел а1,а2,...,а16. Знайти макси-мальний елемент цієї послідовності і поміняти місцями мак-симальний елемент з першим парним числом цієї послідовності. На друк вивести задану і перетворену послідовності чисел. 6.28. Дано послідовність цілих чисел х1,х2,...,х20. Відомо, що в ній є два однакові числа. Вивести на друк порядкові номери цих двох однакових чисел і значення цього числа. 6.29. Дано цілочисловий масив А, який складається з 12 елементів. Створити масив С, який складається з непарних чисел масиву А, полічити кількість елементів масиву С. Вивести на друк заданий і новоутворений масиви. 6.30. Дано цілочисловий масив А, який складається з 12 елементів. Створити масив С, який складається з остач ділення елементів масиву А на ціле число k(k<10). Обчислити добуток ненульових елементів масиву С. 6.31. Дано масив С, який складається з N елементів (N<10). Поміняти місцями перший елемент масиву з максимальним, другий з мінімальним, решту залишити без зміни. Вивести на друк заданий і новоутворений масиви. 6.32. Дано цілочисловий масив А, який складається з 12 еле-ментів. Починаючи з другого непарного елемента, поділити вС решту елементів масиву С на цей непарний елемент. Вивести на друк заданий і новоутворений масиви. 6.33. Дано вектор, який містить К елементів. Вилучити з нього елементи, які знаходяться між максимальним і мінімальним еле-ментами. Вивести на друк значення максимального і мінімального елементів і два вектори. 6.34. Виконати перестановку в даному масиві Е(22) таким чином, щоб спочатку були записані підряд 9 перших елементів масиву, що мають парні індекси. Після них розмістити елементи масиву, що мають непарні індекси з номерами І=1,...,17. 6.35. В заданому масиві В, який містить 21 елемент, замінити вС від’ємні елементи, що знаходяться на парних місцях, макси-мальним його елементом, а на непарних місцях - мінімальним елементом масиву. Заданий і новоутворений масиви вивести на друк. 6.36. Обчислити середнє геометричне значення елементів зада-ного масиву F(19), які більші за абсолютною величиною від числа А. Результати вивести на друк. Значення середнього геометричного елементів є величина 6.37. Дано масив А, який складається з 19 елементів. Вивести на друк три перші від’ємні елементи цього масиву разом з поряд-ковими номерами цих елементів у масиві. 6.38. В заданому масиві А, який містить 19 елементів, замінити вС від’ємні елементи, що знаходяться на парних місцях, середнім арифметичним значенням, обчисленим із вСх від’ємних елементів; елементи, що знаходяться на непарних місцях, замінити середнім геометричним значенням вСх додатних елементів масиву. Заданий і перетворений масиви вивести на друк. Sар= 6.34. Для заданого масиву В(21) вивести на друк значення чет-вертого і шостого від’ємних елементів цього масиву і їх поряд-ковий номери в масиві. 6.40. В заданих двох векторах А і В однакової розмірності N знайти окремо найбільше і найменше значення сум їх елементів цих векторів (і=1,...,N) і вивести на друк одержані значення. 6.41. В заданому масиві А(17) замінити вС нульові елементи середнім арифметичним значенням, знайденим із вСх від’ємних елементів масиву. Перетворений масив вивести на друк. Середнє арифметичне значення обчислюється за формулою Sар= 6.42. Дано масив А(32). Знайти і вивести на друк найменше із додатних елементів масиву. 6.43. В заданому масиві Е(31) замінити вС нульові елементи середнім геометричним значенням вСх додатних елементів масиву. Перетворений масив вивести на друк. 6.44. Виконати перестановку елементів в заданому масиві Т(22) таким чином, щоб спочатку були записані підряд п’ять перших додатних елементів масиву. Заданий і перетворений масиви вивести на друк. 6.45. Обчислити значення функції в точках хі= -2.2+і*0.2; і=0,1,2,...,20. m=1.7. Одержані значення організувати в масив, елементи якого розмістити в зворотньому порядку їх обчислення, і вивести на друк. 6.46. Замінити в заданому масиві А(27) вС нульові елементи, що знаходяться на непарних місцях, середнім арифметичним значенням, обчисленим із вСх від’ємних елементів масиву, а нульові елементи, що знаходяться на парних місцях - середнім геометричним значенням вСх додатних елементів масиву. Заданий і перетворений масиви вивести на друк. 6.47.В заданому масиві В(21) замінити вС від’ємні елементи, що знаходяться на парних місцях, його максимальним елементом, а на непарних місцях - мінімальним елементом масиву В. Заданий і перетворений масиви вивести на друк. 6.48. Замінити в заданому масиві А(37) вС нульові елементи числами, які обчислюються за формулою: де n - порядковий номер нульового елемента масиву. Перетворений масив вивести на друк. 6.49. Даний вектор С, який складається з 12 дійсних чисел. Сформувати вектор D, непарні елементи якого є ціла частина непарних компонент вектора С, а парні елементи вектора D є дробова частина парних компонент вектора С. 6.50. Даний вектор А, який складається з n елементів. Переставити компоненти вектора, які розміщені після найбільшого елемента вектора А на початок, а компоненти, які розміщені перед найбільшим елементом на кінець вектора. Вивести заданий та новоутворений вектори. 6.51. Даний вектор Е, який складається з дійсних чисел, частина цих чисел має нульову дробову частину. Замінити перших два елементи заданого вектора з нульовою дробовою частиною на середнє арифметичне додатніх елементів вектора. Вивести на друк заданий та новоутворений вектори. 6.52. Даний вектор B, який складається з n дійсних чисел. Замінити перших два нульових елементи заданого вектора відповідно на перших два ненульові елементи цього вектора. Надрукувати заданий та перетворений вектор. 6.53. Дано вектор T, який складається з k цілих чисел. Замінити непарні елементи вектора Т середнім арифметичним елементів які діляться на 5 з остачею 3. Вивести на друк заданий і новоутворений вектори. 6.54. Згенерувати елементи вектора А, який містить 11 елементів. Його елементи повинні бути цілими числами і знаходитися в межах від 5 до 15. Приклад. Дано одновимірний масив А, який складається з 9 елементів (21; 32.6; 8.3; -4; 12.2; 4.5; 3.8; 7.5; 6.1). Поміняти місцями мінімальний і максимальний елементи, і вивести на друк перетворений масив, а також мінімальний і максимальний елементи.
1 Графічний алгоритм показаний на рис.6.2
2 Ідентифікація змінних
3. Програма мовою GW-Basic
10 REM ОДНОВИМІРНИЙ МАСИВ 20 DIM A(9) 30 PRINT “ВИХІДНІ ДАНІ” 40 FOR I=1 TO 9 50 PRINT “A(“;I;”)=“ 60 INPUT A(I) 70 PRINT TAB(10),A(I) 80 NEXT I 90 LET M1=A(1) 100 LET M2=A(1) 110 FOR I=2 TO 9 120 IF A(I)<M1 THEN M1=A(I) : K=I 130 IF A(I)>M2 THEN M2=A(I) : N=I 140 NEXT I 210 PRINT “РЕЗУЛЬТАТИ РОЗРАХУНКУ” 220 LET A(K)=M2 230 LET A(N)=M1 240 FOR I=1 TO 9 250 PRINT A(I) 260 NEXT I 270 PRINT “МАКС.ЕЛ.=“;M2 280 PRINT “МІН.ЕЛ.=”;M1 290 END
ВИХІДНІ ДАНІ A(1)=? 21 A(2)=? 32.6 A(3)=? 8.3 A(4)=? -4 A(5)=? 12.2 A(6)=? 4.5 A(7)=? 3.8 A(8)=? 7.5 A(9)=? 6.1
РЕЗУЛЬТАТИ РОЗРАХУНКУ -4 8.3 32.6 12.2 4.5 3.8 7.5 6.1 МАКС.ЕЛ.=32.6 МІН.ЕЛ.= -4
4. Програма мовою С
#include<stdio.h> #include<math.h> #define NUM 9 main() { float a[NUM]={21,32.6,8.3,-4,12.2,4.5,3.8,7.5,6.1}, m1,m2; int i,k,n; printf(“ВИХІДНІ ДАНІ \n”); for(i=0;i<NUM;i++) printf(“a[%i]=%f\n”,i,a[i]); printf(“РЕЗУЛЬТАТИ РОЗРАХУНКУ \n”); m1=m2=a[0]; for(i=0; i<NUM;i++) { if(m1<a[i]) { m1=a[i]; k=i; } if(m2>a[i]) { m2=a[i]; n=i; } } a[k]=m2; a[n]=m1; printf(“max=%f min=%f\n”,m1,m2); for(i=0; i<NUM;i++) printf(“a[%i]=%f\n,i,a[i]); }
ВИХІДНІ ДАНІ A(0)=21.000000 A(1)=32.600000 A(2)=8.300000 A(3)= -4.000000 A(4)=12.200000 A(5)=4.500000 A(6)=3.800000 A(7)=7.500000 A(8)=6.100000
РЕЗУЛЬТАТИ РОЗРАХУНКУ max=32.600000 min= -4.000000 a[0]=21.000000 a[1]= -4.000000 a[2]=8.300000 a[3]=32.600000 a[4]=12.200000 a[5]=4.500000 a[6]=3.800000 a[7]=7.500000 a[8]=6.100000
5. Програма мовою Pascal
program lab6(input,output); var max,min: real; k,n,i:integer; a: array [1..9] of real; begin writeln(‘ВИХІДНІ ДАНІ’); for i:=1 to 9 do begin write(‘a(‘,i,’)=‘); read(a[i]) end; for i:=1 to 9 do writeln(‘a[‘,i,’]=‘,a[i]:11); writeln; max:=a[1]; min:=a[1]; for i:=2 to 9 do begin if max<a[i] then begin max:=a[i]; k:=i end; if min>a[i] then begin min:=a[i]; n:=i end; end; a[k]:=min; a[n]:=max; writeln(‘РЕЗУЛЬТАТИ РОЗРАХУНКУ’); writeln(‘max=‘,max:11); writeln(‘min=‘,min:11); for i:=1 to 9 do writeln (‘a[‘,i,’]=‘,a[i]:11) end.
ВИХІДНІ ДАНІ A(1)=2.1000 E+01 A(2)=3.2600 E+01 A(3)=8.3000 E+00 A(4)= -4.000 E+00 A(5)=1.2200 E+01 A(6)=4.5000 E+00 A(7)=3.8000 E+00 A(8)=7.5000 E+00 A(9)=6.1000 E+00
РЕЗУЛЬТАТИ РОЗРАХУНКУ max=3.2600 E+01 min= -4.000 E+00 A[1]=2.1000 E+01 ![]() Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|