ІІІ
7.Дано масив А(n). А) знайти два перших додатніх елементи; б) відсортувати вхідний масив: по зростанню (непарні варіанти), по спаданню (парні варіанти).
Розв’язання:
Uses winCrt;
var
a:array[1..30] of real;
i,j,n,k:integer;
t:real;
Begin
clrscr;
writeln('П I П');
write('Введiть n = ');
readln(n);
writeln('Введiть масив A[',n,']:');
for i:=1 to n do begin
write('A[',i,'] = ');
readln(a[i]);
end;
writeln('Початковий масив A[',n,']:');
for i:=1 to n do
write(a[i]:6:1);
writeln;
j:=0;
for i:=1 to n do begin
if (a[i]>0) then j:=j+1;
if (a[i]>0) and (j<=2) then begin
write(a[i]:6:1);
end;
end;
writeln;
writeln('Масив A[',n,'] вiдсортований по спаданню:');
for j:=1 to n do begin
for i:=1 to (n-1) do begin
if a[i]<a[i+1] then begin
t:=a[i];
a[i]:=a[i+1];
a[i+1]:=t;
end;
end;
end;
for i:=1 to n do
write(a[i]:6:1);
writeln;
readln;
End.
8. Дано матрицю А(m1,m2), з якою потрібно утворити нову матрицю таким чином: всі елементи, розташовані вище побічної діагоналі, зменшити в 2 рази, якщо m1=m2;
Розв’язання:
Uses wincrt;
var
i,j,m1,m2:integer;
a:array[1..10,1..10] of real;
begin
clrscr;
write('Введiть m1=');
readln(m1);
write('Введiть m2=');
readln(m2);
writeln('Введiть масив A[',m1,',',m2,']:');
for i:=1 to m1 do
for j:=1 to m2 do begin
write('A[',i,',',j,'] = ');
readln(a[i,j]);
end;
writeln('масив A[',m1,',',m2,']:');
for i:=1 to m1 do begin
for j:=1 to m2 do begin
write(a[i,j]:5:1);
end;
writeln;
end;
writeln('Перетворений масив A[',m1,',',m2,']:');
for i:=1 to m1 do begin
for j:=1 to m2 do begin
if (i<m2-j+1) then a[i,j]:=a[i,j]/2;
write(a[i,j]:5:1)
end;
writeln;
end;
readln;
End.
9.На відрізку [a,b] задано три функції. Обчислити їх значення в точках xi=x0+I*h, де x0=a, h=(b-a)/n, і=1..n. Отримана результати оформити у вигляді таблиці. 1)ex 2) (x+6)3 3) ex+2-tgx+3 a=2; b=4.
Розв’язання:
Uses wincrt;
var h,b,a,x,F1,F2,F3:real;
i,n:integer;
Begin
Clrscr;
a:=2;
b:=4;
i:=0;
x:=a;
write(' Введiть n - ');readln(n);
h:=(b-a)/n;
writeln('Таблица значений':40);
writeln;
writeln('-----T----------T------------T------------T-----------¬');
writeln('¦ i ¦ x ¦ F1 ¦ F2 ¦ F3 ¦');
writeln('+----+----------+------------+------------+-----------+');
repeat
i:=i+1;
F1:=exp(x);
F2:=sqr(X+6)*(x+6);
F3:=exp(x+2)-sin(x)/cos(x)+3;
writeln('¦',i:3,' ¦ ',x:6:2,' ¦ ',f1:10:3,' ¦ ',f2:8:3,' ¦ ',f3:8:3,' ¦');
x:=a+i*h;
until i=n+1;
writeln('L----+----------+------------+------------+------------');
readln
End.
10. Скласти програму, яка будує на екрані трикутну піраміду (див. метод. Вказівник (044-123)
Розв’язання:
Uses Crt,Graph;
var
Gd, Gm: Integer;
Begin
Gd := Detect; InitGraph(Gd, Gm, 'e:\tp\bgi\');
if GraphResult <> grOk then Halt(1);
setbkcolor(0);
setcolor(7);
line(350,125,250,125);
line(250,125,300,100);
line(300,100,350,125);
setfillstyle(1,9);
FloodFill(300,110,7);
line(150,300,450,300);
line(150,300,300,250);
line(300,250,450,300);
line(300,250,300,100);
line(150,300,250,125);
line(450,300,350,125);
ReadLn;
CloseGraph;
end.