Меню блогу
- Газета «Вісник Переяславщини»
Для вчителів
- 10 клас
- 11 клас
- Pascal
Наше опитування
Пошук
Календар
« Квітень 2024 » | ||||||
Пн | Вт | Ср | Чт | Пт | Сб | Нд |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Архів записів
- 2016 Вересень
- 2016 Жовтень
- 2016 Листопад
- 2017 Лютий
- 2017 Березень
- 2017 Червень
- 2017 Вересень
- 2017 Жовтень
- 2017 Листопад
- 2017 Грудень
- 2018 Лютий
- 2018 Червень
- 2018 Листопад
- 2018 Грудень
- 2019 Червень
- 2019 Вересень
- 2019 Листопад
- 2019 Грудень
- 2020 Січень
- 2020 Лютий
- 2020 Березень
- 2020 Вересень
- 2022 Жовтень
- 2023 Березень
- 2024 Березень
Корисні посилання
13 жовтня 2010-2011 н.р. в кабінеті інформатики нашої школи відбулася шкільна олімпіада з інформатики.
1. Два прямокутники (10 балів). Задано два прямокутники. Написати програму two_rec.*, яка визначить, чи вони співпадають.
Вхідні дані. Вхідний текстовий файл two_rec.dat містить в єдиному рядку чотири цілих числа (розділених один від одного одним пропуском), спочатку довжина a і ширина b першого прямокутника, а потім довжина с і ширина d другого прямокутника (1≤a,b,c,d≤100).
Вихідні дані. Вихідний текстовий файл two_rec.sol містить в єдиному рядку повідомлення «yes», якщо дані прямокутники співпадають, або «not», якщо дані прямокутники не співпадають.
Приклади файлів
two_rec.dat
4 2 2 4
two_rec.sol
yes
Рішення: програма на мові програмування Turbo Pascal 7.0
var f: text; a,b,c,d: integer; begin assign(f,'two_rec.dat'); reset(f); read(f,a,b,c,d); close(f); assign(f,'two_rec.sol'); rewrite(f); if ((a=c)and(b=d))or((b=c)and(a=d)) then write(f,'yes') else write(f,'not'); close(f); end.
2. Квадрати (30 балів). На листу паперу зображено прямокутник розміром a x b квадратів. Деякі квадрати прямокутника зафарбували. Написати програму squares.*, яка обчислить кількість не зафарбованих квадратів.
Вхідні дані. Вхідний текстовий файл squares.dat містить у першому рядку через пропуск два цілих числа a – кількість рядків та b – кількість стовпців (1≤a,b≤10). Наступні а рядків містять b цілих чисел 0 і 1 через пропуск, де 0 – не зафарбований квадрат, 1 – зафарбований квадрат.
Вихідні дані. Вихідний текстовий файл squares.sol містить одне число, кількість не зафарбованих квадратів.
Приклади файлів
squares.dat
4 5
0 1 0 0 1
0 0 1 0 0
0 1 0 0 0
0 0 0 0 1
squares.sol
15
Рішення: програма на мові програмування Turbo Pascal 7.0
var f: text; a,b,i,j,s: byte; x: array[1..10,1..10] of byte; begin assign(f,'squares.dat'); reset(f); readln(f,a,b); s:=0; for i:=1 to a do begin for j:=1 to b do begin read(f,x[i,j]); if x[i,j]=0 then inc(s); end; readln(f); end; close(f); assign(f,'squares.sol'); rewrite(f); write(f,s); close(f); end.
3. Двійкові числа (40 балів). Написати програму binary.*, яка в заданому двійковому числі, в якому кількість цифр більше 1 і менше 78, і хоча б одна цифра 0, замінює всі цифри 0 на 1 і навпаки. Якщо старшими цифрами отриманого двійкового числа стануть цифри 0, то ними знехтувати.
Вхідні дані. Вхідний файл binary.dat в єдиному рядку містить двійкове число.
Вихідні дані. Вихідний файл binary.sol в єдиному рядку містить отримане за вказаним правилом нове двійкове число.
Приклади файлів
binary.dat
11001011
binary.sol
110100
Рішення: програма на мові програмування Turbo Pascal 7.0
var f: text; i,n,k: integer; x: string; label 1; begin assign(f,'binary.dat'); reset(f); read(f,x); close(f); assign(f,'binary.sol'); rewrite(f); n:=length(x); for i:=1 to n do begin if x[i]='1' then begin x[i]:='0'; goto 1; end; if x[i]='0' then begin x[i]:='1'; goto 1; end; 1: end; k:=0; for i:=1 to n-1 do if x[i]='0' then k:=k+1 else break; delete(x,1,k); write(f,x); close(f); end.
Завдання для 10 класу
1. Три прямокутники (10 балів). Задано три прямокутники. Написати програму three.*, яка визначить, чи можна з двох перших прямокутників скласти третій прямокутник.
Вхідні дані. Вхідний текстовий файл three.dat містить в єдиному рядку шість цілих числа (розділених один від одного одним пропуском), спочатку довжина a і ширина b першого прямокутника, потім довжина с і ширина d другого прямокутника і наостанок - довжина x і ширина y третього прямокутника (1 ≤ a,b,c,d,x,y ≤ 100).
Вихідні дані. Вихідний текстовий файл three.sol містить в єдиному рядку повідомлення «yes», якщо з перших двох прямокутників можна скласти третій прямокутник, або «not», якщо з перших двох прямокутників не можна скласти третій прямокутник.
Приклади файлів
three.dat three.sol 1 5 3 5 4 5 yesРішення: програма на мові програмування Turbo Pascal 7.0
var f: text; a,b,c,d,x,y: integer; begin assign(f,'three.dat'); reset(f); read(f,a,b,c,d,x,y); close(f); assign(f,'three.sol'); rewrite(f); if ((a+c=x)and(b=d)and(d=y))or ((b+c=x)and(a=d)and(d=y))or ((a+d=x)and(b=c)and(c=y))or ((a+c=y)and(b=d)and(d=x))or ((b+d=x)and(a=c)and(c=y))or ((a+d=y)and(b=c)and(c=x))or ((b+c=y)and(a=d)and(d=x))or ((b+d=y)and(a=c)and(c=x)) then write(f,'yes') else write(f,'not'); close(f); end.
2. Шифрувальник (30 балів). Написати програму code.*, що замінює в заданому тексті кожну його літеру наступною по порядку в абетці. Останню літеру абетки необхідно замінити першою. У даному тексті використовуються тільки малі латинські літери (довжина тексту більша 0 і менша 78).
Вхідні дані: Вхідний файл code.dat містить в єдиному рядку даний текст.
Вихідні дані: Вихідний файл code.sol містить в єдиному рядку зашифрований текст.
Приклад:
code.dat code.sol abbad bccbeРішення: програма на мові програмування Turbo Pascal 7.0
var f: text; n,i,j,c: integer; z: char; x,y: string; begin assign(f,'code.dat'); reset(f); read(f,x); close(f); assign(f,'code.sol'); rewrite(f); y:=''; n:=length(x); for i:=1 to n do if x[i]<>'z' then begin c:=ord(x[i]); z:=chr(c+1); y:=y+z; end else y:=y+'a'; write(f,y); close(f); end.
Завантажити умову задачі, рішення та тести (12,8 Кб) |
3. Цифри (40 балів). Петрик задумав деяке натуральне трицифрове число N (100 ≤ N ≤ 999). Він склав цифри цього числа та помножив отриману суму на задане натуральне число K (2 ≤ K ≤ 100). Число, що утворилося в результаті, дорівнює початковому. Написати програму digits.*, яка визначить, яке число задумав Петрик.
Вхідні дані. Вхідний файл digits.dat містить в єдиному рядку число K.
Вихідні дані. У вихідний файл digits.sol вивести число N, яке задумав Петрик. Якщо умові відповідає більш ніж одне число, вивести усі можливі варіанти: впорядковані за зростанням, кожен у своєму рядку.
Приклади файлів
digits.dat digits.sol 12 108Рішення: програма на мові програмування Turbo Pascal 7.0
var f: text; k,a,b,c: integer; begin assign(f,'digits.dat'); reset(f); read(f,k); close(f); assign(f,'digits.sol'); rewrite(f); for a:=1 to 9 do for b:=0 to 9 do for c:=0 to 9 do if (a+b+c)*k=100*a+10*b+c then writeln(f,a,b,c); close(f); end.
Завантажити умову задачі, рішення та тести (12,9 Кб) |
Завдання для 11 класу
1. Прямокутний трикутник (10 балів). Трикутник задано координатами (цілі числа з інтервалу [-50;50]) своїх вершин. Написати програму triangl.*, яка визначить чи є він прямокутним.
Вхідні дані. Вхідний файл triangl.dat в трьох рядках містить через пропуск по два числа – координати вершин трикутника (спочатку абсцису, а потім ординату).
Вихідні дані. У вихідний файл triangl.sol вивести цифру 1, якщо трикутник є прямокутним, а в протилежному випадку - вивести цифру 0.
Приклади файлів
triangl.dat triangl.sol 0 0 0 2 2 7 1Рішення: програма на мові програмування Turbo Pascal 7.0
var f: text; xa,ya,xb,yb,xc,yc,a,b,c: integer; begin assign(f,'triangl.dat'); reset(f); readln(f,xa,ya); readln(f,xb,yb); read(f,xc,yc); close(f); assign(f,'triangl.sol'); rewrite(f); a:=sqr(xc-xb)+sqr(yc-yb); b:=sqr(xa-xc)+sqr(ya-yc); c:=sqr(xa-xb)+sqr(ya-yb); if (a+b=c)or(a+c=b)or(c+b=a) then write(f,1) else write(f,0); close(f); end.
Завантажити умову задачі, рішення та тести (14,4 Кб) |
2. Точки кола (30 балів). На декартовій системі координат дано коло з центром у точці (x;y) та радіусом R, де x, y, R – дійсні числа, які належать інтервалу [-50,50]. Написати програму dekart.*, яка визначить кількість N точок з цілочисловими координатами, що потрапили в середину кола (враховуючи точки, які лежать на колі).
Вхідні дані. Вхідний файл dekart.dat в єдиному рядку містить через пропуск три числа x, y, R.
Вихідні дані. У вихідний dekart.sol файл вивести в єдиний рядок число N.
Приклади файлів
dekart.dat dekart.sol 0 0 1 5Рішення: програма на мові програмування Turbo Pascal 7.0
var f: text; i,j,N: integer; x,y,R: real; label 1; begin assign(f,'dekart.dat'); reset(f); read(f,x,y,R); close(f); assign(f,'dekart.sol'); rewrite(f); N:=0; for i:=-100 to 100 do for j:=-100 to 100 do if sqr(x-i)+sqr(y-j)<=sqr(R) then inc(N); write(f,N); close(f); end.
Завантажити умову задачі, рішення та тести (14,4 Кб) |
3. Спільні літери (40 балів). Дано два слова (слово – це текст, що не містить пропусків). В обох словах використовуються тільки малі латинські літери і кількість літер в обох словах більше 0 і менше 78. Написати програму general.*, яка визначить літери, які є спільними для обох слів.
Вхідні дані. Вхідний файл general.dat в двох рядках містить по одному слову.
Вихідні дані. У вихідний файл general.sol вивести в єдиний рядок літери, які є спільними для обох слів. Якщо таких немає, то вивести повідомлення «general liter is not».
Приклади файлів
general.dat general.sol sawerad ae eaklaeРішення: програма на мові програмування Turbo Pascal 7.0
var f: text; i,j,n: integer; x,y,z: string; p: boolean; label 1; begin assign(f,'general.dat'); reset(f); readln(f,x); read(f,y); close(f); assign(f,'general.sol'); rewrite(f); z:=''; for i:=1 to length(x) do begin for j:=1 to length(y) do if x[i]=y[j] then begin p:=false; for n:=1 to length(z) do if x[i]=z[n] then p:=true; if p=false then z:=z+x[i]; goto 1; end; 1:end; if length(z)=0 then write(f,'general liter is not') else write(f,z); close(f); end.
Завантажити умову задачі, рішення та тести (12,9 Кб) |