ІІ-тур. Информатикадан 2011-2012 жылғы аудандық олимпиадасы, 2-этап.
Есептерді шығарғандар: Шоңбаев Жеңіс Павлодар, Жақаев М Жамбыл обл., Миржан Темирбеков, ШҚО Тарбағатай ауданы Ақмектеп ауылы
Информатикадан 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; if (s[i]=’a') and (s[i+2]=’b') then inc(k); |
Прогамма аты Деректер типін анықтау 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. |
Бұл нұсқада нәтиже алдымен экранға шығады содан соң шығыс файлға жазылады.
Кіріс файлынсыз нұсқасы: |
Е есебі. Қайтадан тақта.
Енгізу файлының аты / имя входного файла: Е.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.
Ұқсас тақырыптар:
- I-тур. Информатикадан 2011-2012 жылғы аудандық олимпиадасы, 2-этап, 5 сағат (2012 облыстық І-тур)..
- Pascal-да программалар: 2-лік->10 сан, 10-дық->2 сан, 4 амал, Қазақша жыл.
- Информатика. Аудандық олимпиада есептерінің шығарылуы, II этап, 2008-2009
- Паскаль. Кіріс, шығыс файлдары
- Информатика 2010-2011. Олимпиада есептері шығарылуымен.
- Паскаль. «Бақытты билет», Бүтін санды жай көбейтінділерге бөлшектеу, ASCII таблицасын шығару, Фамилияларды сұрыптау, Хоар процедурасы
- Информатикадан мектеп олимпиадасы 2011-2012
- 2008-2009 Олимпиада есептері шешулерімен.
- Паскалдан жиі қолданыстағы тақырыптық есептер (40 есеп+шешуі).
- Информатика-9. Символдық мәліметтермен жұмыс тәсілдері (2 сағ).
Сіздің нұсқаларыңыз тиімсіз. Менің оқушым осы есептердің әр қайсысын 10-15 жолға сыйдырды
Сол есептеріңізді осында жаряласңыз, қайсысы тиімсіз екенін өзіміз қарап білер едік.
Құрметті әріптестер бұл сайт маған қатты ұнады. Сіздерге шығармашылық табыс тілеймін.