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

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

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

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

Педагогика

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

Басқа пәндер

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

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

Басты бет » Олимпиадалар

22.12.2012. Информатикадан аудандық олимпиада есептері шығаруларымен. 8-9 сынып. ІІ-тур.

Опубликовал в 28 Декабрь 2012 – 09:40Пікір жоқ
Бұл мақала 17 рет оқылды, 2 рет бүгін

D есебі Орындықтар
Қатарда N орындықтар тұр. Анда-санда адам келіп, бос орындықтарының біріне отырады. Адам отырғанда оның барлық көршілес орындықтарда отырған адамдар тұрып кетеді. Ең көп дегенде қанша орындық бос емес болуы мүмкін?
Мәліметтерді енгізу форматы
Енгізу файлдың бірінші жолында бүтін сан N (1 <= N <= 1000) беріледі
Мәліметтерді шығару форматы
Есептің жауабын шығарыңыз.
Мысал / Пример

D.in D.out Комментарий
3 2 101, осында 1 бос емес орындық, 0 бос.
101, где 1 это занятый стул, 0 незанятый.

Задача D Стулья
В ряд стоят N стульев. Время от времени подходит человек и садится на один из свободных стульев. При этом все соседи (если такие есть) встают и уходят. Какое наибольшее число стульев может оказаться занятым, если сначала все они свободны?
Формат входных данных
Первая строка входного файла содержит целое число N (1 <= N <= 1000).
Формат выходных данных
Выведите ответ к задаче.

Шешуі: Жеңіс Шоңбаев
program Stul;
var a,b:integer; D1,D2:text;  c,i:integer;
begin
Assign (D1,’D.in’);
Assign (D2,’D.out’);
Reset(D1);
Rewrite(D2);
a:=0;
Readln(D1,b);
c:=2;
if (b mod 2) = 0 then a:= b /c; else a:= (b+1)/c
Writeln(D2,a);
Close (D1);
Close (D2);
end.


E есебі Көп сандар
N саннан тұратын тізбек беріледі. Осы сандарды екіден қос алып көбейткенде ең көп дегенде қанша шығатынын табыңыз.
Мәліметтерді енгізу форматы
Енгізу файлдың бірінші жолында бүтін сан N (1 <= N <= 1000) беріледі. Келесі жолда әрқайсысы модулі бойынша 1000-нан кіші немесе тең, бүтін N сандар беріледі.
Мәліметтерді шығару форматы
Есептің жауабын шығарыңыз.
Мысал / Пример

E.in E.out Комментарий
3
1 2 3
6 2 * 3=6
4
-10 -5 2 3
50 -10 * -5 = 50

Задача >E Много чисел
Дается последовательность из N чисел. Найдите максимальное произведение среди всех пар этих чисел.
Формат входных данных
Первая строка входного файла содержит целое число N (1 <= N <= 1000). В следующей строке задаются N целых чисел, каждое из которых по модулю меньше или равно 1000.
Формат выходных данных
Выведите ответ к задаче.
Шешуі: Жеңіс Шоңбаев

var
i,N,my,j,max: integer;
a: array[1..100] of integer;
begin
Assign(input, ‘E.in’);
Reset(input);
assign(output,’E.out’);
rewrite(output);
Readln(N);
for i:=1 to N do
read(a[i]);
max:=0;
For i:=1 to n do
for j:=i+1 to n do
begin
my:=a[i]*a[j];
if my>max then
max:=my;
end;
write (max);
end.


F есебі Сөздер
A және B екі жолдар берілген. Осы сөздердің бірінің әріптерін орын ауыстырып, екі сөзді теңестіруге бола ма?
Мәліметтерді енгізу форматы
Енгізу файлдың бірінші жолында ағылшын әліпбиінің кіші әріптерінен тұратын A жолы  беріледі (1 <= |A| <= 1000). Екінші жолда дәл осы форматта B жолы беріледі (1 <= |B| <= 1000).
Мәліметтерді шығару форматы
Егер сөздердің бірінің әріптерін орын ауыстырып, екі сөзді теңестіруге болатын болса, “Yes” деген жолы шығарыңыз немесе “No” деп кері жағдайда.
Мысал / Пример

F.in F.out Комментарий
Bca
cba
Yes
Ada
dada
No

Задача F Слова
Заданы две строки A и B. Можно ли переставить буквы в одном из слов так, чтобы слова стали одинаковыми?
Формат входных данных
Первая строка входного файла содержит строку A, состоящую из строчных букв английского алфавита (1 <= |A| <= 1000). Вторая строка содержит строку B в таком же формате (1 <= |B| <= 1000).
Формат выходных данных
Выведите “Yes”, если можно переставить буквы в одном из слов, чтобы слова стали одинаковыми или “No”, иначе.

Шешуі: Жеңіс Шоңбаев

begin
j:=1;
f:=false;
while(j<=length(s2)) and not f do
if s2[j]=s1[i] then f:=true
else j:=j+1;
if f then
begin
s:=s1[i]+s;
delete(s1, i ,1); delete(s2, j ,1);
end
else i:=i+1;
end;
if s1=” then begin h:=h+1; end
end
end;
if h=0 then writeln (‘No’) else
writeln(h);
end.


Осы есептердің С++ -те жазылған программасы (Гүлжан Шажабаева, Алматы.)
D esebi
#include
#include
#define fname “d”
using namespace std;
int main(){
freopen(fname”.in”,”r”,stdin);
freopen(fname”.out”,”w”,stdout);
int n;
cin >> n;
if (n % 2 == 1) n++;
cout << n/2 << endl;
return 0;
}

E esebi
#include
#include
#include
#include
#define fname “e”
using namespace std;
int a[1000];
int main(){
freopen(fname”.in”,”r”,stdin);
freopen(fname”.out”,”w”,stdout);
int n;
cin >> n;
for (int i = 0; i < n; i++) cin >> a[i];
sort(a,a+n);
cout << max(a[0]*a[1] , a[n-2]*a[n-1]);
return 0;
}

F esebi
#include
#include
#define fname “f”
using namespace std;
char s[1000];
char ss[1000];
int f[26] = {0};
int ff[26] = {0};
int main(){
freopen(fname”.in”,”r”,stdin);
freopen(fname”.out”,”w”,stdout);
cin >> s;
for (int i = 0; i < (int)strlen(s); i++) f[s[i]-’a']++; cin >> ss;
for (int i = 0; i < (int)strlen(ss); i++)
ff[ss[i]-’a']++;
for (int i = 0; i < 26; i++)
if (f[i] != ff[i]) {cout << “No”; return 0;}
cout << “Yes”;
return 0;
}

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

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

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

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

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

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