Файл: Олимпиадаа дайындалуа арналан есептер жинаЫ 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 Вычислите
-
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