10 Август 2011 – 18:58 | 40 пікір

Құрметті ИНФОРМАТИКТЕР!
Cайтымыз сіздердің арқаларыңызда, аз уақытта Қазақстандағы ең танымал сайттардың біріне айналып келеді. Кейбір қазақ тілді сайттар өз контенттерін біздің сайтқа қарап өзгертіп қолданушыларын да көбейтті. Біздің үлгімізбен біршама жаңа сайттар ашылды. Соған қарағанда Информатик …

Толығырақ »
Информатика

Бәрі информатикаға байланысты

Педагогика

Тәлім-тәрбиеге байланысты материалдар

Басқа пәндер

Ұстаздар шығармашылығы

Оқушылар шығармашылығы

Басты бет » Информатика, Паскаль туралы

ІІ-тур. Информатикадан 2011-2012 жылғы аудандық олимпиадасы, 2-этап.

Опубликовал inust в 2 Январь 2012 – 12:333 пікір
Бұл мақала 1899 рет оқылды, 33 рет бүгін

Есептерді шығарғандар: Шоңбаев Жеңіс Павлодар, Жақаев М Жамбыл обл., Миржан Темирбеков, ШҚО Тарбағатай ауданы Ақмектеп ауылы

Информатикадан 2011-2012 жылғы аудандық олимпиадасы, 2-этап, ІІ-тур, 5 сағат.

D есебі. Оқу.

Енгізу файлының аты / имя входного файла: D.in
Шығару файлының аты / имя выходного файла: D.out

Жомар жолдағы әр екінші символды өткізіп (яғни, оқымайды) оқуды ұнатады. Еегер “abсdе” жолын оқыса, онда ол а-ны оқып,  b-ны өткізеді, содан кейін d-ны оқып e-ні өткізеді. Жомарт қанща рет “ab” жолын оқығанын білгісі келеді.

Мәліметтерді енгізу форматы: Енгізу файлының бірінші жолында Жомарт оқыған жол S беріледі. Оның бос орны жоқ және ұзындыңы 100 аз екеніне кепілдік беріледі.
Мәліметтерді шығару форматы: Жомарт қанща рет “ab” жолын оқығанын шығарады.

Мысалы / пример:

А.in А.out Комментарий
“aсbеd” 1 Жомарт “abd” жолын оқыған. Бұл жолда “ab” бір рет кездеседі.

Есептің программасы:

D есебі Оқу 

program zadD_Oku;
var
s:string;
f,g:text;
i,k:integer;
begin
assign(f,’D.in’);
assign(g,’D.out’);
reset(f);
rewrite(g);
readln(f,s);
for i:=1 to length(s)-2 do

if (s[i]=’a') and (s[i+2]=’b') then inc(k);
writeln(g,k);
close(f);
close(g);
end.

Прогамма аты
Деректер типін анықтау
S – бүтін тип, жолдағы әріптер саны
f,g – кіріс/шығыс файл аттарының типі
i – қайт. параметрі, k – “ab” жолын санау
прог. Басы
кіріс файл ашу
шығыс файл ашу
кіріс фалдан мәлімет оқуды анықтау
шығыс файлға нәтиже жазуды анықау
кіріс файлдан мәліет оқу
і парам-і S –сөзінің ұзындығына дейін (2*ге кем) өзгереді
тақ нөмірлі символдар тексеріледі егер олар ab болса К-ның мәні бірге аратады.
Нәтиже шығыс файлга жазылады
Кіріс файлды жабу
Шығыс файлды жабу
Прог. Соңы
program D;
var
fInput: file of String;
fOutput: file of Byte;
S, SubS: String;
i, n: Byte;
bool: Boolean;
begin
assign(fInput,’c:\d\D.in’); {$I+} reset(fInput) {$I-};
assign(fOutput,’c:\d\D.out’); rewrite(fOutput);
read(fInput, S);
SubS:= ”; bool:= true; n:= 0;
for i:= 1 to length(S) do
begin
if bool then
begin
SubS:= SubS + S[i];
if length(SubS) > 1 then
if SubS[length(SubS)-1] + SubS[length(SubS)] = ‘ab’ then
n:= n + 1;
end;
bool:= not(bool);
end;
writeln(n);
write(fOutput, n);
readln;
close(fInput);
close(fOutput);
end.
Бұл нұсқада нәтиже алдымен экранға шығады содан соң шығыс файлға жазылады. 

Кіріс файлынсыз нұсқасы:
program oku;
var
s,s1: String;
i,n:integer;
begin
read(S);writeln(s);i:=1;
while i<=length(S) do
begin
s1:=s1+s[i]; i:=i+2;
end;
writeln(s1); i:=1;
while i<=length(S1) do
begin
if s1[i]+s1[i+1]=’ab’ then n:=n+1;
i:=i+2;
end;
writeln(n);
readln;
end.

Е есебі. Қайтадан тақта.

Енгізу файлының аты / имя входного файла: Е.in
Шығару файлының аты / имя выходного файла:Е.out

NxM шақмат тақтасы берілген. Сізге бір-бірін ұрмайтындай қанша максимал ферзілер санын қоюға болатынын анықтайтын программа жазу керек.

Мәліметтерді енгізу форматы: Енгізу файлының бірінші жолында екі бүтін сан N және M  (1<=N, 1<=1000000) берілген.
Мәліметтерді шығару форматы: Бір-бірін ұрмайтындай қанша максимал ферзілер санын қоюға болатынын анықтаңыз.
Мысалы / пример:

А.in А.out Комментарий
8, 8 8 8 х 8 шақмат тақтасында бір-бірін ұрмайтын 8 ферзі қоюға болады.

Есептің программасы: Бұл есеп кең тараған белгілі алгоритм бойынша жазылады. http://programmersforum.ru/showthread.php?t=27345

Е есебі  Ферзі

program zadE_8Ferz02;
uses
SysUtils;
Const N = 8; // Клеток
M = 8; // Ферзей
Type Queen = record
X,Y : Integer;
End;

Var A : Array[1..N, 1..N] Of Integer;
K : Array[1..M] Of Queen;
I,J,Q,X,Y : Integer;

Procedure ClearQueen;
Var I : Integer;
Begin
For I := 1 To M Do
Begin
K[I].X := 0;
K[I].Y := 0;
End;
End;

Procedure ShowQueen;
Var I : Integer;
Begin
For I := 1 To M Do
WriteLn(‘Q’,I, ‘ [', K[I].X, ‘,’, K[I].Y, ‘]’);
End;

Procedure SetQueen;
Begin
For I := 1 To M Do
If (K[I].X <> 0) And (K[I].Y <> 0) Then
A[K[I].X, K[I].Y] := I;
End;

Procedure ClearArray;
Var I,J : Integer;
Begin
For I := 1 To N Do
For J := 1 To N Do
A[I, J] := 0;
End;

Procedure ShowArray;
Var I,J : Integer;
Begin
For I := 1 To N Do
Begin
For J := 1 To N Do
Write(A[I, J]:3);
WriteLn;
End;
End;

Procedure SetArray(X,Y : Integer);
Var I,J : Integer;
Begin
For I := 1 To N Do Inc(A[I,Y]);
For I := 1 To N Do Inc(A[X,I]);
For I := -N To N Do
If (X+I>=1) And (X+I<=N) And (Y+I>=1) And (Y+I<=N) Then
Inc(A[X+I,Y+I]);
For I := -N To N Do
If (X+I>=1) And (X+I<=N) And (Y-I>=1) And (Y-I<=N) Then
Inc(A[X+I,Y-I]);
End;

Function CountArray:Integer;
Var I,J,S : Integer;
Begin
S := 0;
For I := 1 To N Do
For J := 1 To N Do
If A[I, J] = 0 Then Inc(S);
CountArray := S;
End;

Begin

ClearArray;
ClearQueen;

Q := 1;
I := 1;

While (Q <= M) Do
Begin
X := Trunc((I-1)/N)+1;
Y := I-N*(X-1);
If A[X,Y] = 0
Then
Begin
SetArray(X,Y);
K[Q].X := X;
K[Q].Y := Y;
Inc(Q);
End
Else Inc(I);

If I > N*N
Then
Begin
Dec(Q);
I := 1+((K[Q].X - 1) * N + K[Q].Y);
K[Q].X := 0;
K[Q].Y := 0;

ClearArray;
For J := 1 To Q-1 Do SetArray(K[J].X,K[J].Y);
End;

End;
ShowQueen;
ClearArray;
SetQueen;
ShowArray;
readln;
end.

F есебі. Теңдеу.

Енгізу файлының аты / имя входного файла: F.in
Шығару файлының аты / имя выходного файла: F.out

ax+bx=c теңдеуі бірліген. Қанша әртүрлі (х,у) жұп, бүтін сандар болатын теңдеудің шешімі бар? Егер шексіз көп болса -1 санын шығарыңыз.

Мәліметтерді енгізу форматы: Енгізу файлының бірінші үш бүтін сан a, b, c  (-1000<=a, b, c <=1000) берілген.
Мәліметтерді шығару форматы: Есептің жауабын шығарыңыз.
Мысалы / пример:

А.in А.out Комментарий
3 4 5 -1 (-3,4), (7, -4),…

Есептің программасы: Бұл программада қолданушы х-тің интервалын енгізу керек. Егер b=0 болса шексіздік орын алатыны математикадан белгілі екені ескерілген.

F есебі. Теңдеу

program zadF_tendeu;
var a,b,c,x,n:integer;
y:real;
label 10;

begin
write(‘engiz a, b, c ‘);
read (a,b,c);
if b=0 then begin  writeln(‘-1′);goto 10; end;
writeln(‘engiz max x= ‘);
read (n);
for x:=-n to n do
begin
y:=(c-(a*x))/b;
if Frac(y)=0 then write(‘ (‘,x,’ ‘,y,’)  ‘);
end;
10:end.

Ұқсас тақырыптар:

3 пікір »

Оставьте комментарий

Добавьте комментарий ниже или обратную ссылку со своего сайта. Вы можете также подписаться на эти комментарии по RSS.

Всего хорошего. Не мусорите. Будьте в топе. Не спамьте.

Вы можете использовать коды HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

На сайте используются Gravatar. Чтобы его получить зарегистрируйтесь Gravatar.