понедельник, 19 декабря 2011 г.

Урок 12. Цикл for

1. Проверить решение ДЗ
Задача for7.pas.
var a,b,i,s: integer;
begin
writeln('Даны два числа A и B (A < B). Найти сумму всех целых чисел от A до B включительно.');
write('Введите числа A и B в порядке возрвстания): ');
readln(a,b);
for  i:=a to b do
s:=s+i;
writeln();
writeln('Сумма чисел: ',s);
end.

2. Программируем вместе и самостоятельно
Вместе: for10.pas. Самостоятельно: for11.pas.
Вместе: for13.pas. Самостоятельно: for14.pas.
Вместе: for23.pas. 


3. ДЗ
Решите самостоятельно: for19.pasfor20.pasfor24.pas.

4. По результатам II четверти
В этой четверти на первое место вырвался Мысливцев Андрей. Наши поздравления Андрею и пожеланиями дальнейших успехов! Второе место - Иванов Антон, третье - Богданов Алина. Тройка лидеров не изменилась))

воскресенье, 11 декабря 2011 г.

Урок 11. По итогам районной олимпиады по программированию

1. Результаты олимпиады
По результатам олимпиады победителем стал Мысливцев Андрей. Он справился с тремя задачами, что позволило ему набрать 62 балла. От всей души поздравляем его с этим неожиданным результатом!

Еще двое наших участников, Богданова Алина и Иванов Антон, справились с одной задачей, что принесло им по 25 баллов из 100. Для первого выступления на олимпиаде очень неплохо.
2. Условия олимпиадных задач




3. Оператор цикла c параметром (for)
Синтаксис:
for переменная:=значение1 to значение2 do оператор
или
for переменная:=значение1 downto значение2 do оператор

Оператор for вызывает оператор, находящийся после слова do, по одному разу для каждого значения в диапазоне от значения1 до значения2.

Переменная цикла, начальное и конечное значения должны иметь порядковый тип. Со словом to, значение переменной цикла увеличивается на 1 при каждой итерации цикла. Со словом downto, значение переменной цикла уменьшается на 1 при каждой итерации цикла. Не следует самостоятельно изменять значение управляющей переменной внутри цикла.

4. Решение задач
Решить задачу for2.pas.
Рассмотреть решение олимпиадной задачи B.

5. Домашнее задание
Решить задачи: for1.pas,  for7.pas.


понедельник, 5 декабря 2011 г.

Урок 10. Подготовка к районной олимпиаде

1. Обсудить решение задачи о гостинице (домашняя задача)
Для проверки (решения) используем следующую таблицу:
Остальные задачи 2010-2011 года можно посмотреть по ссылке тут
2. Задача о заносе

понедельник, 28 ноября 2011 г.

Урок 9. Зачет по теме Ветвление и оператор выбора

1. Рассмотреть решение ДЗ
Показать решение задачи case18.
var a, a0,a1,a2: integer;
s:string;
begin
writeln('Дано целое число в диапазоне 100–999.Вывести строку-описание данного числа,например:256—«двести пятьдесят шесть»,814—«восемьсот четырнадцать».');
write('Введите целое число от 100 до 999: ');
read(a);
a2:=a div 100;
case a2 of
1 : s:='сто ';
2 : s:='двести ';
3 : s:='триста ';
4 : s:='четыресто ';
5 : s:='пятьсот ';
6 : s:='шестьсот ';
7 : s:='семьсот ';
8 : s:='восемьсот ';
9 : s:='девятьсот ';
else write('Вы ввели неверное число');
end;
a1:=a div 10 mod 10;
a0:=a mod 10;
if (a1<>1) then    begin
            case a1 of
             0 : s:=s;
             2 : s:=s+'двадцать';
             3 : s:=s+'тридцать';
             4 : s:=s+'сорок';
             5 : s:=s+'пятьдесят';
             6 : s:=s+'шестьдесят';
             7 : s:=s+'семьдесят';
             8 : s:=s+'восемьдесят';
             9 : s:=s+'девяносто';
            else write('Вы ввели неверное число');
            end;
            case a0 of
             0 : s:=s;
             1 : s:=s+' один';
             2 : s:=s+' два';
             3 : s:=s+' три';
             4 : s:=s+' четыре';
             5 : s:=s+' пять';
             6 : s:=s+' шесть';
             7 : s:=s+' семь';
             8 : s:=s+' восемь';
             9 : s:=s+' девять';
             else write('Вы ввели неверное число');
            end;
                  end
          else  begin
            case a0 of
             0 : s:=s+' десять';
             1 : s:=s+' одиннадцать';
             2 : s:=s+' двенадцать';
             3 : s:=s+' тринадцать';
             4 : s:=s+' четырнадцать';
             5 : s:=s+' пятнадцать';
             6 : s:=s+' шестнадцать';
             7 : s:=s+' семнадцать';
             8 : s:=s+' восемнадцать';
             9 : s:=s+' девятнадцать';
             else write('Вы ввели неверное число');
           end;
                 end;
writeln ('Вы ввели число ',s);
end.


2. Зачет
Список задач из блока "Ветвление": 1-11, 13, 14, 16-22, 24, 26, 28.
Список задач из блока "Выбор": 3-15, 17, 19, 20.

3. ДЗ для подготовки к олимпиаде
Следующее занятие - подготовка к районной олимпиаде по программированию. Можно не посещать это занятие тем, кто не идет на олимпиаду.

понедельник, 21 ноября 2011 г.

Урок 8. Условный оператор. Оператор выбора

1. Рассмотреть решение ДЗ
Задача if27
var x: real;
var y: integer;
begin
writeln('Программа находит значение функции');
write('Введите аргумент): ');
read(x);
if  (x<0) then  y:=0;
if  (trunc(x)mod 2 =0) then  y:=1;
if  (trunc(x)mod 2 =1) then  y:=-1;
writeln('y=',y);
end.


Задача if29
var x: integer;
begin
writeln('Программа выводит строку-описание вида «отрицательное четное число»,«нулевоечисло»,«положительное нечетное число» и т.д.');
write('Введите целое число: ');
read(x);
if  (x=0) then  write('Нулевое число');
if  (x<0)and(x mod 2=0) then  write('Отрицательное четное число');
if  (x<0)and(x mod 2<>0) then  write('Отрицательное нечетное число');
if  (x>0)and(x mod 2=0) then  write('Положительное четное число');
if  (x>0)and(x mod 2<>0) then  write('Положительное нечетное число');
end.

2. Самостоятельно решите задачу if30

3. Оператор выбора CASE

Оператор выбора работает следующим образом. Сначала вычисляется значение выражения, стоящее после зарезервированного слова case, а затем выполняется оператор (или составной оператор), соответствующий результату вычисления выражения.
Если списке выбора не окажется константы равной вычисленному значению ключа. В этом случае управление передается оператору, стоящему за словом else.

case выражение of
значение1 : оператор (группа операторов);
значение2 : оператор (группа операторов);
. . . 
значениеN : оператор (группа операторов)
else оператор (группа операторов);
end;
Рассмотрим его использование на примере следующих задач (стр. 22 электронного учебника): case1.pas, case16.pas.


4. Домашнее задание
Напишите программы для решения следующих задач: case2.pascase18.pas.

понедельник, 14 ноября 2011 г.

Урок 7. Условный оператор

1. Рассмотреть решение "Задачи ни каникулы"
Для проверки правильности работы программы можно протестировать ее по следующей таблице:
С этой задачей успешно справились двое наших учащихся: Мысливцев Андрей и Иванов Антон.
2. Решение задач на ветвление
Пишем вместе программы для решения задач: if25, if12, if23. Для решения задач необходимо нарисовать блок-схему.

3. Самостоятельное программирование.
Напишите программы для решения задач: if15.

4. Домашнее задание
Напишите программы для решения задач: if27, if29.

понедельник, 24 октября 2011 г.

Урок 6. Логические выражения. Тест

1. Проверка ДЗ

2. Решение упражнений
Прежде чем выполнять задания, вспомните как на координатной прямой задается : точка, полуплоскость, полоса, угол, прямая, окружность, круг.
4. Тест
Выполните тест "Ветвление". Оценивание происходит по 100-бальной шкале.

5. Подводим итоги за четверть

Итак, I  место заняла Богданова Алина. Поздравляем с достойной победой! Второе и третье место поделили Иванов Антон и Мысливцев Андрей.
Человек отчаянно хочет побеждать и выделяться.
Задача на каникулы
Напишите программу, которая определяет попадает ли точка с заданными координатами в данную область. 
 

понедельник, 17 октября 2011 г.

Урок 5. Логические выражения

1. Операции над множествами
Повторить понятие множества и операций для множествами: отрицание (инверсия), пересечение, объединение.

2. Решение задач
Выполните следующие задания

3. Программирование логических условий
Рассмотрим решение задачи Boolean7 (с 17 страницы).
Не учите меня программировать!

4. Домашнее задание
Напишите программы для решения следующих задач: Boolean10, Boolean16.
Программист - это не тот, кто пишет программы, а тот, чьи программы работают!

понедельник, 10 октября 2011 г.

Урок 4. Зачет по теме "Целые числа"

1. Найди верное выражение
Откройте презентацию "Целые числа" и выполните задания. Презентацию можно скачать тут.

2. Проверяем ДЗ
Протестируйте домашние задачи.
Задача Integer14. Все данные целого типа
Номер эксперимента Исходное число Полученное число
1 456 645
2 120 12
3 1207 820

Задача Integer20. Все данные целого типа
Номер эксперимента Количество секунд Количество полных часов
1 120 0
2 3600 1
3 10 000 2

Задача Integer25. Все данные целого типа
Номер эксперимента Номер дня года Номер дня недели
1 5 1
2 14 3
3 365 4

Приступали к выполнению ДЗ всего трое. Результаты: Шакарджян А. выполнила 2 задачи, Богданова Алина - 2 задачи, Мысливцев А. - 3 задачи.
Научиться программировать можно только программируя! 
 
3. Зачет по теме "Целые числа"
 В зачет входят следующие задачи:1-6, 8,9, 11, 12, 15, 16, 18, 19, 21-24, 26-30.
Программируем весело

Результаты урока
№ п/п ФИО ДЗ Зачет
1 Принц А. не выполнил 30
2 Иванов А. не выполнил 50
3 Туркин А. не выполнил 20
4 Мыльников А. не выполнил 10
5 Шакарджян А 20 10
6 Мамаева Л. не выполнила 20
7 Богданов А. 20 50
8 Мысливцев А. 30 30

понедельник, 3 октября 2011 г.

Урок 3. Повторение "Целые числа"

1. Задача недели
После обсуждения алгоритма решения, Алина и Андрей добились правильной работы программы. За что  получают дополнительные 30 баллов (с небольшим авансом).

2. Операции с целыми числами div и mod

Решение упражнений. Вычислите значение выражения, содержащего операции div и mod:

11 div 5

10 div 3

10 div 5

2 div 7

10 mod 5

2 mod 3

31 mod 16

0 mod 5

0 div 5

4*7 div 3 mod (6/3)

 16/4 mod 3 div 15

 (17 mod 3) div (15 mod 2)

Приоритет операций:
Операции Приоритет Вид операции
унарный минус, not первый (высший) унарные (одноместные) операции
*, /, div, mod, and второй операции типа умножения
+, –, or третий операции типа сложения
=, <>, <, >, <=, >= четвертый операции отношений (сравнений)
Более высокий приоритет имеют вычисления в круглых скобках, а затем вычисления функций.

3. Программируем вместе
Решим задачу Integer7 (стр. 15 задачника) , Integer13. Ниже привожу текст программы для отсутствующих  или не выполнивших задание.

program integer7;
var a,a1,a0: integer;
begin
writeln('Программа вычисления суммы и произведения цифр двузначного числа');
write('Введите двухзначное число: ');
read(a);
a1:=a div 10;
a0:=a mod 10;
writeln('Сумма цифр числа ', a, ' равна', a1+a0);
writeln('Произведение цифр числа ', a, ' равно', a1*a0);
end.
_____________________________________________________________________
program integer13;
var a,a2,a1,a0: integer;
begin
writeln('Программа сдвигает первую цифру трехзначного числа в конец');
write('Введите трехзначное число: ');
read(a);
a2:=a div 100;
a:=a mod 100*10+a2;
writeln('Искомое число: ', a);
end.

4. Программируем самостоятельно
Решите задачу Integer10, Integer17.

5. Домашнее задание
Напишите программы для решения следующих задач: Integer14, Integer20, Integer25.

Результаты работы на уроке
ФИО Задача Integer10 Задача Integer17 Задача недели
Принц А.


Иванов А. 15 15
Туркин А. 15 15
Мыльников А. 15

Шакарджян А 15

Волков С. 15 15
Аксенов С. 15 15
Богданов А. 15 15 30
Мысливцев А. 15 15 30

понедельник, 26 сентября 2011 г.

Урок 2. Зачет по теме "Ввод-вывод"

1. Проверка ДЗ
Загрузите домашние задачи на свой компьютер. Проверим правильность работы ваших программ.

Задача Begin7. Все данные вещественного типа, вывод отформатирован до двух знаков после запятой.
Номер эксперимента Исходные данные, R Результат, L Результат, S
1 1 6.28 3.14
2 1500 9420.00 7065000.00
3 5.6 35.17 98.47

Задача Begin20. Все данные вещественного типа, вывод отформатирован до двух знаков после запятой.
Номер эксперимента Исходные данные, x1 Исходные данные, y1 Исходные данные, x2 Исходные данные, y2 Результат, r
1 0 0 1 0 1.00
2 3 2 6 6 5.00
3 2.5 -3 4 6.7 9.82

2. Найди ошибку
Откройте презентацию "Ошибки" (скачать можно тут), найдите ошибку в каждом операторе. Поясните.

3. Программируем вместе
Давайте вместе решим задачу Begin22.
Вариант I. Используем дополнительную переменную.
Вариант II. Использование дополнительной переменной запрещено.

4. Зачет
На зачет выносятся задачи (мах 10 баллов): 5-6, 8-9, 11, 13-19, 21, 23-40.
Каждую задачу решает только один человек. Правильность работы программы необходимо доказать на 2-3 тестах.

Результаты урока
№ п/п ФИО ДЗ Зачет
1 Принц А. не выполнил 10
2 Иванов А. 20 30
3 Туркин А. не выполнил 20
4 Мыльников А. 20 20
5 Шакарджян А не выполнила 10
6 Волков С. не выполнил 30
7 Богданов А. 20 30
8 Мысливцев А. 20 40

Задача недели. Выпуклый (!) четырехугольник задан на плоскости координатами своих четырех вершин. Напишите программу, вычисляющую площадь этого четырехугольника.
Рекомендации:
1. Выясните, какой четырехугольник (n-угольник) называется выпуклым.
2. Вы умеете считать площади некоторых особых четырехугольников: квадрата, прямоугольника, параллелограмма (они, кстати, все выпуклые). Придумайте алгоритм вычисления площади произвольного выпуклого четырехугольника.

понедельник, 19 сентября 2011 г.

Урок 1. Повторение. Ввод-вывод

1. Переходим на версию PascalABC
Скачать дистрибутив свободной версии можно по адресу http://sunschool.math.sfedu.ru/pabc/ вот по такой ссылке Скачать Pascal ABC & Programming Taskbook Mini Edition (версия 3.0.1 от 5.03.07, 5.7 Мб).
К сожалению, данный архив содержит вирус троян (файл sysunima.exe в папке system32). Если у вас хороший антивирус (например, свежий Касперский), то вы можете смело скачивать данный архив и ставить на свой компьютер.
Если с антивирусом проблема, то предлагаю поступить следующим образом: скачать архив http://files.mail.ru/S49PRL (ссылка действительна 1 месяц), распаковать его и поместить папку PABC в папку Program Files системного диска (вероятнее всего C:), а папку PABCWork в головной каталог системного диска.

2. Структура программы. Идентификатор. Типы переменных. Разделители.  Оператор присваивания. Операторы ввода и вывода
Для  повторения данных вопросов воспользуйтесь конспектом или любым электронным учебником по Паскалю.


3. Поиск ошибок и отладка программ
Дистрибутив PascalABC содержит задачник М.Э. Абрамяна по программированию (в платной версии это задачник электронный). В бесплатной версии задачник доступен в формате .pdf. Находится в меню Помощь - Электронный задачник PT. В ТК (терминальном классе) учебник выложен на рабочий стол каждого юзера. Сейчас рассматриваем задачи раздела "Ввод и вывод данных, оператор присваивания".
Вам необходимо открыть, отладить и сохранить в своей папке все задачи, расположенные в папке Begin_err (этот и все последующие архивы будут доступны 1 месяц). В ТК папка выложена на рабочий стол.


4. Решение задач
Самостоятельно напишите программы для задач Begin10, Begin12. Докажите, что программа работает верно. Для это проведите необходимые вычисления с использование калькулятора (или устно) и сравните с результатами работы вашей программы.

5. Домашнее задание
Напишите программы для задач  Begin7, Begin20. Проверьте правильность работы программ хотя бы для трех случаев. Запишите результаты проверки в тетрадь.Сохраните программы в формате .pas. Принесите их с собой в электронном виде (флешка, почта и т.д.).

Что будет на следующем уроке? Будьте готовы к зачету по данной теме. В зачет войдут все задачи из раздела  "Ввод и вывод данных, оператор присваивания", кроме уже рассмотренных.

Результаты урока
№ п/п ФИО Begin1 Begin2 Begin3 Begin4 Begin10 Begin12
1 Принц А. 5 5 5


2 Мамаева Л. 5 5 5 5 10 10
3 Иванов А. 5 5 5 5 10 10
4 Туркин А. 5 5 5 5 10
5 Мыльников А. 5 5 5 5 10
6 Шакарджян А. 5 5 5 5 10
7 Волков С. 5 5 5 5 10
8 Аксенов С. 5 5 5 5 10