Файл: Олимпиадаа дайындалуа арналан есептер жинаЫ 1 Екі санны осындасын табу программасын ру керек.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 07.11.2023

Просмотров: 78

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


End;

Kol := 0; {переменная, в которой будет храниться количество различных чисел}

FOR I := 1 TO N DO

IF Lo[I] THEN

Begin

Kol := Kol + 1;

FOR K := I TO N DO

{Во вспомогательный массив заносим значение False,

если число уже встречалось ранее или совпадает с текущим элементом A[I]}

Lo[K] := (A[K] <> A[I]) And Lo[K];

End;

WriteLn('Количество различных чисел: ', Kol)

END.

Тест: N = 10; элементы массива - 1, 2, 2, 2, -1, 1, 0, 34, 3, 3. Ответ: 6.

135 Дан линейный массив. Упорядочить его элементы в порядке возрастания.

{Сортировка массива выбором (в порядке возрастания).

Идея решения: пусть часть массива (по K-й элемент включительно)

отсортирована. Нужно найти в неотсортированной части массива

минимальный элемент и поменять местами с (K+1)-м}

Program Sortirovka;

Var N, I, J, K, Pr : Integer; A : Array [1..30] Of Integer;

Begin

Write('Введите количество элементов: '); ReadLn(N);

For I := 1 To N Do

Begin

Write('Введите A[', I, '] '); Readln(A[I]);

End;

WriteLn;

For I := 1 To N - 1 Do

Begin

K := I;

For J := I + 1 To N Do If A[J] <= A[K] Then K := J;

Pr := A[I]; A[I] := A[K]; A[K] := Pr;

End;

For I := 1 To N Do Write(A[I], ' ');

End.

Тест: N = 10; элементы массива - 1, 2, 2, 2, -1, 1, 0, 34, 3, 3.

Ответ: -1, -1, 0, 1, 2, 2, 2, 3, 3, 34.

136 Заполнить матрицу порядка n по следующему образцу:

1

2

3

...

n-2

n-1

n

2

1

2

...

n-3

n-2

n-1

3

2

1

...

n-4

n-3

n-2

...

...

...

...

...

...

...

n-1

n-2

n-3

...

2

1

2

n

n-1

n-2

...

3

2

1

Program Massiv12;

Var I, J, K, N : Integer; A : Array [1..10, 1..10] Of Integer;

Begin

Write('Введите порядок матрицы: '); ReadLn(N);

For I := 1 To N Do

For J := I To N Do

Begin

A[I, J] := J - I + 1; A[J, I] := A[I, J];

End;

For I := 1 To N Do

Begin

WriteLn;

For J := 1 To N Do Write(A[I, J]:4);

End

End.

137 Дана целочисленная квадратная матрица. Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали.


Program Obmen;

Var N, I, J, Max,Ind, Vsp : Integer;A : Array [1..15, 1..15] Of Integer;

Begin

WRITE('Введите количество элементов в массиве: '); READLN(N);

FOR I := 1 TO N DO

FOR J := 1 TO N DO

Begin

WRITE('A[', I, ',', J, '] '); READLN(A[I, J])

End;

FOR I := 1 TO N DO

Begin

Max := A[I, 1]; Ind := 1;

FOR J := 2 TO N DO

IF A[I, J] > Max THEN

Begin

Max := A[I, J]; Ind := J

End;

Vsp := A[I, I]; A[I, I] := A[I, Ind]; A[I, Ind] := Vsp

End;

FOR I := 1 TO N DO

Begin

WriteLn;

FOR J := 1 TO N Do Write(A[I, J] : 3);

End; WriteLn

End.

138 Вычислите


  1. Program Primer1;

V
While <шарт> do

begin

<циклдің денесі>;

end;
ar n:integer; S:real;

Begin

n:=1; S:=0;

While n<=10 do

begin

S:=S+sqr(n);

n:=n+1;

end;

Writeln(‘S=’,S:5:0)

End.


139 Program Primer1;

Var n:integer; S:real;

B
Repeat

<циклдің денесі >;

Until <шарт>;
egin

n:=1; S:=0;

Repeat do

S:=S+sqr(n);

n:=n+1;

Until n>=10;

Writeln(‘S=’,S:5:0)

End.

140 Program Primer1;

V
For X:=M1 to (downto) M2 do

begin

S1; S2; …; Sn

end;

ar n:integer; S:real;

Begin

S:=0;

For n:=1 to 10 do

S:=S+sqr(n);

Writeln(‘S=’,S:5:0)

End.

141 Вычислить значение у


х, х<0

x2, x 0
У={

Prоgram Primer2;

Var x,y: real;

Begin

Writeln (‘x=?’);

Readln (x);

If x<=0 then y:=x else y:=sqr(x);

Writeln (‘y=’, y);

End.
142 Оределить максимальное из трех чисел,

Program Max;

Var a, b, c, max: integer;

Begin

Writeln(‘введите три числа’);

Readln(a,b,c);

If a>b then max:=a else max:=b;

If c>b then max:=c;

Writeln(‘большее из трех чисел=’,max);

End.

143 определить четность-нечетность чисел,
Prigram Primer3;

Var y: byte;

Begin

Writeln (‘введите число’);

Readln (y);

Case y of

0, 2, 4, 6, 8: Write();

1, 3, 5, 7, 9: Write();

end;

End.
№0>5>

144 A(10) caндық массиві берілген. Қатар тұрған элементтердің көбейтінділерінің қосындысын есептеу керек.
Program massib;

Const N=10;

Var A:array[1..10] of integer;

i:integer; S:real;

Begin

Writeln ('berilgenderdi engiz');

for i:=1 to 10 do begin

write ('A[',i,']=');

Read (A[i]);

end;

begin S:=0;

for i:=1 to 10 do

S:=S+A[i]*A[i+1];

Writeln ('S=',S:6:3);

end;

end.

145 А(10) сандық массивінің 0-дік емес элементтерінің көбейтіндісін есептеу керек.
Program togzhan_1;

const N=10;

var A:array[1..n] of real;

S:real;K:integer;

begin

for k:=1 to N do

begin

write('A[',K,']=');

read(A[k]);

end;

begin S:=1;

for k:=1 to N do

if (k<>0) then

S:=S*A[k];

writeln('S=',S);

end;

end.
146 .Символдар қатарында қанша бос орын бар екенін анықтау программасын құру керек.
program togzhan_1;

var a:string [10];

k,n:integer;

begin n:=0;

writeln('text engiz');

readln(a);

for k:=1 to length(a) do

begin

if a[k]=' 'then n:=n+1; end;

writeln('n=',n);

end.

147 Кітапханаға түскен кітаптар жайлы мәліметтер берілген: Автордың аты-жөні, баспахана аты, шыққан жылы, кітапханаға кітаптардың түскен мерзімі. Соңғы бес жылда кітапханаға «Мир» баспаханасынан түскен кітаптар жайлы мәліметті шығару керек.
Program Aijan;

type Dosye=record

A:string[28];

B:string[10];

C:integer;

D:integer;

end;

Var X:array[1..10] of Dosye;

K,N:Byte; G:char;

begin

For K:=1 to 3 do with X[K] do begin

writeln('FIO'); Readln(A);

Writeln('baspahana'); Readln(B);

Writeln('jyl'); Readln(C);

Writeln('tusken merzim'); Readln(D);

end; Writeln;

write('baspahana ati:'); Readln(G);

N:=0;

Writeln('osi baspahananin kitaptari:');

For K:=1 to 3 do with X[K] do begin

If B=G then writeln(A:28,C,D);

end;

readln;

end.
A.D.Masanov, Atamura, 1991, 1995

J.Dinislamov, Mir, 2004, 2005

B.Boribaev, Rauan, 1993, 1996

Нәтижесі

J.Dinislamov, Mir, 2004, 2005


148 1. Прцедура мен функцияны пайдалану арқылы төмендегі тапсырмаға бағдарлама құру керек.
Z=7(3x+4y-1)5(3x+4y-1)-2sinx+10
Program AIJAN;

Var x,y,z:real;

Function fn(t,P:real):real;

begin

fn:=3*t+4*P-1;

end;

begin

writeln('x,y');

readln(x,y);

z:=7*fn(x,y)+5/fn(x,y)-2*sin(x)+10;

writeln('z=',z:4:2);

end.
X1=52 Y1=65 Z1=2913.04

X2=-81 Y2=20 Z2=-1139.29

X3=63 Y3=23 Z3=1969.68
149 Символдар қатары берілген. Қатардағы мына әріптердің ену санын табу программасын құру керек.
Program Aijan_1;

Var d:string [20];

k,P:integer;

begin P:=0;

writeln ('Text engiz');

readln (d);

For k:=1 to length (d) do

begin

P:=pos('abc',d);

if P<>0 then P:=P+1;

writeln('P=', P);

readln;

end;

end.
Abcervatoria P=1

150 Символдар қатарында «+» және «*» символдары қанша рет кездесетінін анықтау программасын құру керек.

Program Aijan_2;

Var d:string [10];

k,n:integer;

begin n:=0;

writeln('Text engiz');

readln(d);

For k:=1 to length (d) do

begin

If (d[k]='+') or (d[k]='*') then n:=n+1;

end;

writeln ('+,* sany-',n);

readln;

end.
12+78+5*8*79=3250

+,* sany-2

151 (Егер массив элементтерінің соңғы элементі 1-ге тең болған жағдайда сол қатардың арифметикалық ортасын есепте)
program S2_Z1;
type m=array[1..100,1..100] of integer;
var A:m;procedure vvod(m,n:integer;var x:m);
var i,j: integer;
begin writeln('введите элементы массива');
for i:=1 to m do
for j:=1 to n do
read(x[i,j]);
end;procedure arf(m,n:integer;var x:m);
var i,j,s:integer;sr:real;
begin
for i:=1 to m do begin s:=0; sr:=0;
if x[i,n]=1 then begin
for j:=1 to n do
s:=s+x[i,j]; sr:=s/n;
writeln ('среднее арифметическое ',i,' строки равно ',sr:5:2); end; end;
end;begin
vvod(3,3,A);
arf(3,3,A);
end.

152 (егер массив бағанындағы элементтер арасында С дан үлкен элемент болатын болса, сол элементке 1 санын тағайында немесе 0 санын тағайында. С-дан үлкен элементтердің санын анықта.) Программа:
program S2_Z2;
type m=array[1..100,1..100] of integer; mas=array[1..100] of integer;
var A:m;procedure vvod(m,n:integer;var x:m);
var i,j: integer;
begin writeln('введите элементы массива');
for i:=1 to m do
for j:=1 to n do
read(x[i,j]);
end;procedure moped(m,n:integer;var y:m);
var i,j,c,k:integer; X:mas;
begin k:=0; writeln('введите величину С='); readln(c);
for j:=1 to n do x[j]:=0;
for j:=1 to n do
for i:=1 to m do
if y[i,j]>c then begin X[j]:=1; k:=k+1; end;
writeln('элементы массива Х:');
for j:=1 to n do write(X[j],' ');
writeln;
writeln('число элементов матрици превышающих число ',c,' равно ',k)
end;begin
vvod(2,5,A);moped(2,5,A);readln;
end.

153. Условие: Дан массив A(5,5). Изменить часть матрицы, находящуюся под главной диагональю следующим образом: если элемент A[i,j] этой части матрицы больше элемента A[j,i], то задать элементу A[i,j] новое значение, равное полу сумме двух этих элементов.
program S2_Z3;
type m=array[1..100,1..100] of real;
var A:m;procedure vvod(m,n:integer;var x:m);
var i,j: integer;
begin
writeln('введите элементы массива');
for i:=1 to m do
for j:=1 to n do
read(x[i,j]);
end;procedure mat(m,n:integer;var x:m);
var i,j: integer; t:real;
begin
writeln('изменённый матрица A[i,j] будет выглядеть так');
for i:=1 to m do
for j:=1 to n do
if i>j then if x[i,j] > x[j,i] then x[i,j]:=(x[i,j]+x[j,i])/2;
for i:=1 to m do
for j:=1 to n do
write( A[i,j]:2:1,' ');
end;begin
vvod(5,5,A);
mat(5,5,A);
end.


1