Я повторяюсь конечно с данным сообщением, но пробую донести тот же самый материал с помощью презентации.
Программирование на языке Pascal, разбор решения задач. Олимпиадные задачи Операции на языке паскаль
вторник, 27 марта 2012 г.
воскресенье, 11 марта 2012 г.
Задания для проведения I этапа Всероссийской олимпиады школьников по информатике. 2011-2012 учебный год.
После того, как мы рассмотрели основные принципы составления программ, можно приступить к рассмотрению заданий. Лучше всего думаю, рассматривать олимпиадные задачи, потому как они обычно с какими нибудь подковырками и бывают требуют интересных решений. Начнем с рассмотрения задач с I
этапа Всероссийской олимпиады (2011-2012
учебный год).
1.Куры
и кролики (10 баллов).
У
кур и кроликов вместе N
ног. Сколько среди них кур, сколько
кроликов? Составить алгоритм, который
перечисляет все возможные комбинации.
Решение:
| Program Zadacha_1; | |
| var N, kur, krol : integer; | {Описываем переменные N-количество ног, kur -количество кур, krol - количество кроликов} |
| begin | |
| write('Vvedi kol-vo nog'); | {Подсказка для пользователя, ввести количество ног.} |
| readln(N); | {Вводим количество ног} |
| for kur:=0 to N do | {вводим цикл для перебирания количества кур} |
| for krol:=0 to N do | {Вводим цикл для перебирания количества кроликов} |
| if (2*kur+4*krol)=N then writeln('kur-',kur,'krolikov-',krol); | (Вводим условие: если 2*кол-во кур + 4*кол-во кроликов=N, то на экран вывести 'kur-',(число),' ','krolikov-',(число).) Таким образом благодаря циклическому алгоритму переберутся все возможные варианты. |
| end. | (конец программы) |
Задача 2. Строки в книге (15 баллов).
В
книге на одной странице помещается K
строк. Таким образом, на первой странице
печатаются строки с 1-й по K-ю,
на второй – с (K+1)-й
по (2K)-ю
и т. д. напишите программу, которая по
номеру строки в тексте определяет номер
страницы, на которой будет напечатана
эта строка и порядковый номер этой
строки на странице.
Формат
входных данных: входной
файл содержит число K
– количество строк, которое печатается
на странице, и число N
– номер строки (1 K
200, 1 N
20 000).
Формат
выходных данных: в
выходной файл выведите два числа –
номер страницы, на которой будет
напечатана эта строка, и номер строки
на странице.
Примеры:
|
|
|
50
1
20
25
15
43
|
2
5
3
13 |
Program
Zadacha_2;
var
N, K, n_str, n_stroka : integer;
f1,
f2
:
text;
BEGIN
assign(f1,'input.txt');
reset(f1);
read(f1,K,N);
if
N mod K=0 then
begin n_str:=N
div K;
n_stroka:=K
end
else
begin n_str:=(N div
K)+1;
n_stroka:=N mod
K
end;
assign(f2,'output.txt');
rewrite(f2);
write(f2,n_str,'
',n_stroka);
close(f1);
close(f2);
END.
Подписаться на:
Комментарии (Atom)