Смекни!
smekni.com

Одномерные массивы. Организация ввода и вывода данных (стр. 2 из 3)

For i:=1 to 3 do begin

For j:=1 to 5 do

Write(a[i,j]:2);

Writeln;End;

readln;

End.

Задание 19.

Даны две матрицы А и В размером 4х4. Вычислить и вывести на экран матрицу С=А+В. Найти сумму элементов матрицы С, кратных 3, но не кратных 2.

Program p4;

Uses crt;

Var A,B,C:array[1..4,1..4] of integer;

i,j,sum:integer;

begin

ClrScr;

Writeln('vvedite elementi massiva A');

For i:=1 to 4 do

For j:=1 to 4 do Read(A[i,j]);

Writeln('vvedite elementi massiva B');

For i:=1 to 4 do

For j:=1 to 4 do Read(B[i,j]);

Writeln;

For i:=1 to 4 do

For j:=1 to 4 do

C[i,j]:=A[i,j]+B[i,j];

Write('C[i,j]=',C[i,j]);

for i:=1 to 4 do

For j:=1 to 4 do

Writeln(c[i,j]);

for i:=1 to 4 do

For i:=1 to 4 do

For j:=1 to 4 do

If (C[i,j] mod 3=0) and (c[i,j] mod 2<>0) then

sum:=sum+c[i,j];

Writeln('symma elementov matrici C=',sum:2);

For i:=1 to 4 do

For j:=1 to 4 do

Writeln('C[',i,', ',j,']=',C[i,j]);writeln; Readln; End.

Задание 20.

Даны две матрицы А и В. Сравнить матрицы поэлементно. Найти количество элементов матрицы А, больших, чем элементы матрицы В и наоборот. Сравнить их. Вывести сообщение: А>В или В>А.

Program p5;

Uses crt;

var a,b:array [1..4,1..4] of integer;

i,j,t,k:integer;

Begin

ClrScr;

Writeln('vvedite elementi matrici a');

For i:=1 to 4 do

For j:=1 to 4 do Read(a[i,j]);

Writeln('vvedite elementi massiva b');

For i:=1 to 4 do

For j:=1 to 4 do Read(b[i,j]);

For i:=1 to 4 do

For j:=1 to 4 do

Begin

If a[i,j]>b[i,j] then t:=t+1;

If b[i,j]>a[i,j] then k:=k+1;

end;

Writeln('t=',t);

Writeln('k=',k);

If t>k then Writeln('elementi massiva a bolshe b') else

Writeln('elementi massiva b bolshe a');

If t=k then Writeln('elementi massiva a i b ravni');

Writeln;

Readln;

End.

Задание 21.

Организовать двумерный массив (размерность 3х3). Вывести на экран в виде матрицы.

Program p1;

Uses crt;

var a:array[1..3,1..3] of integer;

i,j:integer;

Begin

ClrScr;

Writeln('vvedite elementi matrici: a[',i,' ',j,']');

For i:=1 to 3 do

For j:=1 to 3 do

Readln(a[i,j]);

For i:=1 to 3 do begin

For j:=1 to 3 do

Write(a[i,j]:3);

Writeln;end;

Readln;

End.

Задание 22.

Дана матрица 4х3 целых чисел. Найти сумму элементов, сумма индексов которых является:

а) Четным числом;

б) Кратно 3.

Program P2;

var a:array[1..4,1..3] of integer;

i,j,S:integer;

Begin

For i:=1 to 4 do

For j:=1 to 3 do

read(a[i,j]);

For i:=1 to 4 do

for j:=1 to 3 do

If (i+j) mod 2 =0 then

S:=S+a[i,j];

Writeln('Summa elementov,sum indeksov kot chetnaya=',S);

For i:=1 to 4 do

for j:=1 to 3 do

if (i+j) mod 3 =0 then

S:=S+a[i,j];

Writeln('Summa el-v,sum indeksov kratna 3=',S);

Readln;

End.

Задание 23.

Дана матрица вещественных чисел 3х3. Диагональные элементы матрицы заменить на максимальные.

Program z;

uses crt;

var a:array [1..3,1..3] of integer;

i,j,max:integer;

begin

clrscr;

writeln('vvedite massiv');

For i:=1 to 3 do

For j:=1 to 3 do

readln(a[i,j]);

For i:=1 to 3 do

For j:=1 to 3 do

if a[i,j]>max then max :=a[i,j];

writeln('max=',max);

For i:=1 to 3 do begin

a[i,i]:=max;

a[i,3+1-i]:=max; end;

for i:=1 to 3 do begin

for j:=1 to 3 do write(a[i,j]);

writeln;

end; readln;end.

Задание 24.

Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов:

а) По столбцам;

б) По строкам.

Program P4;

var a:array [1..3,1..3] of integer;

i,j,Sh1,Sh2,Sh3,Sd1,Sd2,Sd3:integer;

Begin

for i:=1 to 3 do

for j:=1 to 3 do read(a[i,j]);

for i:=1 to 3 do begin

Sd1:=a[i,1]+Sd1;

Sd2:=a[i,2]+Sd2;

Sd3:=a[i,3]+Sd3; end;

for j:=1 to 3 do begin

Sh1:=a[1,j]+Sh1;

Sh2:=a[2,j]+Sh2;

Sh3:=a[3,j]+Sh3;end;

Writeln('Symma 1-i stroki=',Sh1);

Writeln('Symma 2-i stroki=',Sh2);

Writeln('Symma 3-i stroki=',Sh3);

Writeln('Symma 1-go stolbca=',Sd1);

Writeln('Symma 2-go stolbca=',Sd2);

Writeln('Symma 3-go stolbca=',Sd3); readln; End.

Задание 25.

Организовать двумерный массив (5х5) случайных целых чисел из отрезка [0,60]. Найти минимальный элемент среди элементов, расположенных выше главной диагонали.

ProgramP5;

var a:array [1..5,1..5] of integer;

i,j,min:integer;

Begin

randomize;

For i:=1 to 5 do

For j:=1 to 5 do a[i,j]:=random(61);

Writeln('Matrica do obrabotki');

For i:=1 to 5 do begin

For j:=1 to 5 do write(a[i,j]:5); writeln;end;

min:=a[1,5];

For i:=1 to 5 do

For j:=1 to 5 do

if (i<j) and (a[i,j]<min) then min:=a[i,j];

Writeln('Minimym=',min);

Readln;

end.

Организация подпрограмм с помощью функций.

Задание 26.

Написать функцию, которая вычисляет объем цилиндра. Параметрами функции должны быть радиус и высота цилиндра.

Program p1;

Var H,R,O:Real;

function Obem(R,H:real):real;

Begin

Obem:=Pi*Sqr(R)*H;

End;

Begin

Writeln('vvedite R i H');

Readln(R,H);

O:=obem(R,H);

Writeln('Obem=',O:2:2);

Readln;

End.

Задание 27.

Написать фукцию, возвращающую:

а) минимальное среди двух;

б) максимальное среди двух;

Program p2;

Uses crt;

Var a,b:integer;

min,max:integer;

Function maximum(a,b:integer):integer;

Begin

ClrScr;

if a>b then maximum:=a

else maximum:=b;

End;

Function minimum(a,b:integer):integer;

Begin

if a<b then minimum:=a

else minimum:=b;

End;

Begin

Read(a,b);

max:=maximum(a,b);

min:=minimum(a,b);

Write('mininimum=',min);

Write('maximum=',max);End.

Задание 28.

Написать функцию нахождения дискриминанта уравнения и определяющая количество корней (т.е. принимает значения: 0,1, 2).

Program Z3;

var a,b,c:integer;

Function D(a,b,c:integer):integer;

Begin

if Sqr(b)-4*a*c>0 then D:=2;

If Sqr(b)-4*a*c=0 then D:=1;

If Sqr(b)-4*a*c<0 then D:=0;

end;

Begin

Writeln('Vvedite a,b,c');

Readln(a,b,c);

Writeln('Yravnenie imeet' ,D(a,b,c),' kornei' );

Readln;

end.

Задание 29.

Написать функцию нахождения общего сопротивления при параллельном соединении двух проводников.

Rобщ.=

Program Z4;

var R1,R2,rez:real;

function Sopr(R1,R2:real):real;

Begin

Sopr:=1/R1+1/R2;

End;

Begin

Writeln('Vvedite R1 i R2');

Readln(R1,R2);

rez:=Sopr(R1,R2);

Writeln('Soprotivlenie=',Sopr(R1,R2):2:2);

Readln;

End.

Задание 30.

Написать функцию, вычисляющую процент от числа. Параметры- число и процент.

Program Z5;

var N,P,rez:real;

function Procent (N,P:real):real;

Begin

Procent:=(N*P)/100;

End;

begin

Writeln('Vvedite chislo i procent');

Readln(N,P);

rez:=Procent(N,P);

Writeln('Procent=',Procent(N,P):2:2);

Readln;

End.

Вариант-9.

Задание 31.

Даны три стороны треугольника. Написать функцию нахождения площади вписанной в треугольник окружности.

Program z1;

Var o,a,b,c,S,r,p:real;

Function Ploschad(a,b,c:real):real;

var p,s:real;

Begin

p:=(a+b+c)/2;

S:=Sqrt(p*(p-a)*(p-b)*(p-c));

r:=(2*S)/(a+b+c);

ploschad:=Pi*Sqr(r);

End;

Begin

Writeln('vvedite tri storoni treygolnika');

readln(a,b,c);

O:=Ploschad(a,b,c);

Writeln('ploschad ravna=',O:2:2);

Readln;

End.

Задание 32.

Написать функцию нахождения начальной скорости по конечной скорости, по времени изменения скорости, по ускорению.

Program p2;

Var v,v0,t,a:Real;

Function Skorost(v,v0,a:real):real;

Begin

Skorost:=v-a*t;

End;

Begin

Writeln('vvedite konech.skorost, vremya i yskorenie');

Readln(a,t,v);

v0:=Skorost(a,t,v);

Writeln('Nachalnaya skorost ravna=',v0:4:2);

Readln;

End.

Задание 33.

Написать программу, которая вычисляет квадратный корень произведения трех вещественных чисел, введенных с клавиатуры.

Program z3;

Var kor,a,b,c:real;

Function Koren(a,b,c:real):Real;

Begin

Koren:=Sqrt(a*b*c);

End;

Begin

Writeln('vvedite tri chisla');

Readln(a,b,c);

Kor:=Koren(a,b,c);

Writeln('koren chisel raven=',kor:2:2);

Readln;

End.

Задание 34.

Написать функцию, которая вычисляет значение выражения от аргументов a и b. tg(a)+ctg(b).

Program p4;

Var arg,a,b:real;

Function Argymenti(a,b:real):real;

Begin

Argymenti:=sin(a)/cos(a)+cos(b)/sin(b);

End;

Begin

Writeln('vvedite dva chisla');

Readln(a,b);

Arg:=Argymenti(a,b);

Writeln('Znachenie virazheniya ravno=',Arg:2:2);

Readln;

End.

Задание 35.

Написать функцию, определяющую среднее арифметическое среди элементов в массиве.

Program p5;

uses crt;

Var a:array[1..4] of real;

i:integer;

sa:real;

Function Srednee(var a:array of real):real;

Var sum:real;

Begin

For i:=0 to 3 do

Sum:=sum+a[i];

Srednee:=sum/4;

End;

Begin

ClrScr;

Writeln('vvedite massiv');

For i:=1 to 4 do

Readln(a[i]);

sa:=Srednee(a);

Writeln('srednee arifmeticheskoe=',sa:4:2);

Readln;

End.

Организация подпрограмм с помощью процедур.

Задание 36

Даны две точки с координатами (х1, х2), (у1,у2). Найти длину отрезка.

а) без параметра

Procedure dlina;

Var x1,x2,y1,y2:integer;

d:real;

Begin

Writeln('vvedite koordinati');

Write('x1='); readln(x1);

Write('x2='); readln(x2);

Write('y1='); readln(y1);

Write('y2='); readln(y2);

d:=Sqrt(sqr(x1-x2)+sqr(y1-y2));

Writeln('dlina=',d);

End;

Begin

Dlina;

Readln;

End.

б) с параметром

Program p2;

Procedure dlina(x1,x2,y1,y2:integer);

Var d:real;

begin

d:=Sqrt(Sqr(x1-x2)+sqr(y1-y2));

Writeln(dlina=',d:2:2);

end;

begin

Writeln('vvedite koordinati');

Write('x1='); Readln(x1);

Write('x2='); Readln(x2);

Write('y1='); readln(y1);

write('y2='); Readln(y2);

Dlina(x1,x2,y1,y2);

Readln;

End.

Вариант-9

Задание 37.

Найдите x из пропорции

.

Programp1;

Var a,b,c:real;

Procedure proporciya(a,b,c:real);

Var x:real;

Begin

x:=((a+b)*(a+c))/(b-c);

Writeln('proporciya=',x:2:2);

End;

Begin

Writeln('vvedite znacheniya a,b,c');

Readln(a,b,c);

Proporciya(a,b,c);

Readln;

End.

Задание 38.

Даны координаты вершин треугольника. Найти его периметр.

Program p6;

Var x1,y1,x2,y2,x3,y3:real;

Procedure Perimetr(x1,y1,x2,y2,x3,y3:real);

Var P,d1,d2,d3:real;

Begin

d1:=Sqrt(sqr(x1-x2)+sqr(y1-y2));

Writeln('dlina1=',d1:2:2);

d2:=Sqrt(sqr(x2-x3)+sqr(y2-y3));

Writeln('dlina2=',d2:2:2);

d3:=Sqrt(sqr(x1-x3)+sqr(y1-y3));

Writeln('dlina3=',d3:2:2);

If (d1+d2>d3) and (d2+d3>d1) and (d1+d3>d2) then

P:=d1+d2+d3 else

Writeln('Takogo treygolnika ne sychestvyet');

Writeln('Perimetr=',P:2:2);

End;

Begin

Writeln('vvedite koordinati');

Write('x1='); Readln(x1);

Write('x2='); Readln(x2);

Write('x3='); Readln(x3);

Write('y1='); Readln(y1);

Write('y2='); Readln(y2);

Write('y3='); Readln(y3);

Perimetr(x1,y1,x2,y2,x3,y3);

Readln;

End.

Задание 39.

Определить среднесуточную температуру, если показания термометра: утром-noC, вечером- koC, днем- moC.

Program p3;

Var n,k,m:real;

Procedure Temperatyra(n,k,m:real);

Var sst:real;

Begin

sst:=(n+k+m)/3;

Writeln('Temperatyra=',sst:2:2);

End;

Begin

Writeln('vvedite pokazaniya termometra ytrom,vecherom i dnem');

Readln(n,k,m);

Temperatyra(n,k,m);

readln;

End.

Задание 40.

За какое время пешеход доберется до соседнего города, если его скорость равна V(км/ч), а расстояние- S(км).

Program p2;

Var S,v:real;

Procedure Vremya(s,v:real);

Var t:real;

Begin

t:=s/v;

Writeln('Vremya=',t:2:2);

End;

Begin

Writeln('vvedite skorost i rasstoyanie');

readln(s,v);

Vremya(s,v);

Readln;

End.

Задание 41.

Найти площадь круга S, вписанного в квадрат со стороной a.

Program p5;

Var a:real;

Procedure Ploschad(a:real);

Var s:real;

Begin

S:=pi*sqr(a/2);

Writeln('ploschad=',s:2:2);

End;

Begin

Writeln('vvedite dliny storoni a');

Readln(a);

Ploschad(a); Readln; End.

Задание 42.

Найти значение выражения y= (a+b+c)2 .

Program p4;

Var a,b,c,d:real;

Procedure Virazhenie(a,b,c,d:real);

Var y:real;

Begin

d:=3;

a:=2*d;

b:=3*d;

c:=d/2;

y:=sqr(a+b+c);

Writeln('Virazhenie=',y:2:2);

End;

Begin

Virazhenie(a,b,c,d);

Readln;

End.

Вариант- 5.

Задание 43.

Дан одномерный массив. Найти и вывести на экран значения и номера элементов не превосходящих контрольное число. Оформить процедурой.