Copyright 2018 - Custom text here

Олимпиадное программирование

Достижения учащихся Тоншаевской школы в программировании

Существует расхожее мнение, что если человек проводит много времени перед компьютером, то он умеет с ним работать.  Но ещё более ошибочным утверждением является то, что активный пользователь компьютера (пусть даже он действительно умеет с ним грамотно обращаться) является программистом. Нет. Программирование -  это такая же наука как, например, математика.  А это значит то, что чтобы у тебя началось что-то получатся, недостаточно просто проводить много времени за компьютером и получать пятёрки на уроках информатики.  И даже недостаточно того, что ты будешь читать умные книжки и/или статьи по программированию. Самое главное – это начать что-либо делать самому. Пробовать писать программы, сначала простые и лишь постепенно переходить к более сложным задачам.  И лишь совокупность практики и теории поможет тебе научиться программировать.

    В самом начале путь будет трудный и часто будет желание всё бросить. Помню, когда я начинал заниматься программированием, я часто забрасывал это дело. Особенно часто это происходило тогда, когда встречалась задачка, которую долго не получается решить.  И только спустя несколько лет у меня появился некий азарт, который не позволял мне бросить нерешённую задачу. И я понял, что я раньше делал не так. Если какая-то задача не решается в течении нескольких дней (например 3-4), то не надо её бросать! Можно найти в интернете сначала алгоритм её решения, а если и он не помог, то и текст решения этой задачи (уже на языке программирования).  Но ещё важно спустя неделю после нахождения решения, уже самому реализовать решение данной задачи.

Евгений Евстропов,  призер областной олимпиады по информатике 2013г

Архив олимпиадных задач (Нижегородская область)
На сайте: КАФЕДРА ТЕОРИИ И МЕТОДИКИ ОБУЧЕНИЯ ИНФОРМАТИКЕ ГБОУ ДПО НИРО
http://ktimoi.edusite.ru/p29aa1.html
Для работы с олимпиадными задачами необходимо изучить работу с файлом. Для Pascal простейшим способом будет:

Program temp;
Var a:integer;
Begin
assign(input,'input.txt'); // в кавычках имя файла, из которого берутся данные
reset(input);
assign(output,'output.txt'); //имя файла, в который записывается результат
rewrite(output);

… //Текст решения. 

Close(input);
Close(output);
End.

Евгений Евстропов:

1.      Теперь можно начинать работать с каким-нибудь интернет ресурсом. Я предлагаю http://acmp.ru Школа программиста – так как сам работал на нём. Там регистрируетесь. Читаете правила пользования работы в системе( их действительно лучше прочитать – будет меньше вопросов с отправкой задач на проверку). После открываете архив задач, сортируете список по сложности и начинаете решать с самых простых. Тем более, что у большинства из них есть разбор, с помощью которого будет проще их решить, если возникнут проблемы.

2.      По мере набирания опыта решения простых задач, будут попадать все более и более сложные задачи, решение которых потребует дополнительных знаний. Тут два совета: изучай стандартные алгоритмы, например с сайта http://algolist.manual.ru/ и больше занимайся математикой, потому что бывает часто такое, что задача имеет чисто математическое решение – осуществить которое на языке программирования проще простого.

Примеры решения задач с сайта http://acmp.ru задачи отсортированы по сложности от лёгких к более сложным. Пронумерованы они так, как на сайте acmp.ru
Задача № 1:

Требуется сложить два целых числа А и В.

Входные данные
В единственной строке входного файла INPUT.TXT записано два натуральных числа через пробел, не превышающих 109.
Выходные данные
В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число — сумму чисел А и В.

var a,b,c:longint;
begin
     assign(input,'input.txt'); reset(input);
     assign(output,'output.txt'); rewrite(output);
     read(a,b);
     c:=a+b;
     write(c);
     close(input);
     close(output);
end.

Задача № 25:

Одна из основных операций с числами – их сравнение. Мы подозреваем, что вы в совершенстве владеете этой операцией и можете сравнивать любые числа, в том числе и целые. В данной задаче необходимо сравнить два целых числа.

Входные данные

В двух строчках входного файла INPUT.TXT записаны числа A и B, не превосходящие по абсолютной величине 2*109.

Выходные данные

Запишите в выходной файл один символ “<”, если A < B, “>”, если A > B и “=”, если A=B.

var a,b:longint;
begin
     assign(input,'input.txt'); reset(input);
     assign(output,'output.txt');rewrite(output);
     read(a,b);
     if a<b then write('<');
     if a>b then write('>');
     if a=b then write('=');
     close(input);
     close(output);
end.

Задача № 23:
Как и многие другие девочки, Маша любит разные гадания. Некоторое время назад Маша узнала новый способ гадать на числах – для какого-нибудь интересующего ее натурального числа n надо посчитать сумму всех чисел, на которые n делится без остатка. Маша не очень любит арифметику, и попросила вас написать программу, которая автоматизирует процесс гадания. 
Входные данные
В единственной строке входного файла INPUT.TXT записано натуральное число n (n ≤ 1000), которое Маша была вынуждена сообщить. 
Выходные данные
В выходной файл OUTPUT.TXT выведите сумму всех натуральных делителей числа n. 

var n,i,otv:longint;
begin
 assign(input,'input.txt');
 assign(output,'output.txt');
 reset(input);
 rewrite(output);
  read(n);
  for i:=1 to n do
   if n mod i = 0 then otv:=otv+i;
   write(otv);
 close(input);
 close(output);
end.

Родителям

Родители могут найти полезную информацию по воспитанию детей, а также новости класса

Меня вдохновляют

22

победы моих учеников  в олимпиадах и конкурсах

конкурсыи олимпиады

Меня воодушевляют

travel

путешествия по стране и встречи с интересными людьми

путешествия

Меня радуют

flower

мои цветы на приусадебном участке

садоводство