Теория: переменные, операторы, строки и приведение типов - 20 минут




Расскажи ребятам, что для работы программ почти всегда нужно что-нибудь запоминать: возраст пользователя, логин-пароль или тип персонажа в игре. Для этого нужны переменные - в них можно что-нибудь сохранить, и потом этим пользоваться. Но сначала переменную нужно объявить - т.е. сказать компилятору (продолжаем использовать усвоенные понятия), что нам нужна переменная такого-то типа. Разбери это на доске на примере "винрейта" (от англ. win-rate - соотношения числа побед в игре к общему числу игру). Определись с ребятами, что это - дробное число, выберите для его хранения нужный тип, пользуясь графом выбора типов данных. Запиши на доске "double" и спроси у детей: "Ок, объявили, а как к нему обратиться (получить к нему доступ)?". Приведи их к мысли об именах для переменных. Сразу договорись, что будете давать переменным только осмысленные имена! Никаких a, b, c1, someVarible!

Далее предложи группе написать вместе программку, выясняющую win-rate пользователя. Расскажи ребятам, что вся вводимая с клавиатуры информация - всегда текст! Если они удивились - хорошо. А если при этом спросили "как же тогда его умножать/делить?" - еще лучше! Расскажи про основные способы преобразования типов: Parse (приучит ребят к организации классов), кастинг (явное приведение типа).

Спроси у детей, что нужно знать, чтобы посчитать винрейт пользователя. Разбери с ребятами за несколько минут на доске основные операторы. Пускай они тебе сами расскажут, что можно делать с числами, а затем попробуй попросить их о том же со строками. Покажи им, что строки можно склеивать. Отметь также, что существует обратная операция, но она сложнее, и о ней позже. Здесь подробнее рассказать про ReadLine - это команда, на выходе которое есть строка, введенная пользователем.

Напиши на доске сложное арифметическое выражение (со скобочками и приоритетами операции) и попроси посчитать его значение (лучше, конечно, заготовить его заранее и не импровизировать). В случае успеха замени заранее подготовленные в нем одинаковые числа на переменные. Вначале используй математический подход (без декларирования типа данных, например, х = 3), затем поясни, что компьютеру нужно указать тип. Чтобы доказать необходимость этого, со словами "предположим, компьютер решил, что это текст" используй сначала строковый тип и покажи, что 3 + 5 = 35. Обычно это убеждает всех ребят, но непредвиденных сложностей никто не отменял: будь готов объяснять по нескольку раз. Только ни в коем случае не делай это одними и теми же словами!

Поясни ребятам смысл оператора "=": мы читаем слева направо "записать в int Х число 5". Напомни, что все действия выполняются последовательно: покажи, как выполнить одни и те же вычисления в одно большое сложное выражение и в несколько строк с сохранением промежуточного результата. Расскажи о том, что это может пригодиться, если нужно много раз считать одно и то же - проще ведь запомнить и потом использовать готовый результат! Если время позволяет, можешь перед этим пригласить кого-то к доске и попросить вычислить что-нибудь, а потом показать (или спросить у остальных), как можно было бы сделать быстрее, если "запомнить" результат вон того выражения.

Очень хорошо в этом примере будет видна разница между обычным и целочисленным делением: винрейт всегда получится нулевым! Поясни ребятам причину такого поведения программ и способы, которыми можно это исправить.

Пример программы-результата:

 

Console.WriteLine("Привет! Я - программа, вычисляющая твой винрейт! Мне нужно, чтобы ты ввел немного данных о себе!");

Console.WriteLine("Сколько игр ты успел сыграть?");

string answer = Console.ReadLine(); // объявляем переменную и сохраняем результат в нее

int totalGames = int.Parse(answer); // обрати внимание детей на всплывающую к методу подсказку

Console.WriteLine("А сколько из них ты выиграл?");

answer = Console.ReadLine(); // переменная уже есть - второй раз объявлять не нужно!

// поясни, что ее значение в целочисленном виде уже хранится в totalGames, оно не потеряется!

 

int gamesWon = int.Parse(answer);

double winRate = (double)gamesWon / (double)totalGames;

Console.WriteLine("Твой винрейт: " + winRate.ToString());

 

Console.ReadKey();

 

Практика - 15 минут

Напиши с ребятами несколько простеньких программок на пользовательский ввод-вывод. Это нужно для закрепления усвоенных навыков. Примеры программ:

1. "Попугай". Программа повторяет все, что введет пользователь;

2. "Введи свой возраст". Пользователь вводит свой возраст, и программа сообщает ему, сколько лет ему будет через N лет;

3. "Единицы измерения". Пользователь вводит значение в сантиметрах, а программа преобразует его в метры и выдает ответ. Это упражнение позволит детям закрепить понимание разницы между целочисленным и обычным делениями.

Будь ч у ток и внимателен: ребята могут стесняться просить помощи! Заранее предупреди, что удаление нужной скобочки или установка лишней может привести к сотне ошибок, причем часто проще написать программу сначала, чем найти проблему!

Турнир – 15 минут

За день до этого занятия ты должен получить задания турнира. Если этого не произошло – свяжись с методистом. Расскажи детям о том, что им предстоит делать и следи за дисциплиной. Более подробные инструкции будут в письме с заданиями.

Конец занятия - 5 минут

Отметь вместе с ребятами достижения группы, новую усвоенную информацию, выпиши все это на доске. Бегло повтори с ними теорию, потрать пару минут на сбор отзывов и пожеланий.

Затем выдай домашнее задание! Это могут быть либо задачи из учебника, либо подготовленные тобой заранее задания. Пример домашнего задания: " Учебник, страницы 31-32, задачи №№1, 2, 3, 6, 12".

Поясни им важность выполнения домашней работы: они делают ее ни в коем случае не для оценки! Они пришли, чтобы чему-то научиться, а для этого нужно каждое занятие узнавать что-нибудь новое. К сожалению, этого нельзя достичь, если каждое занятие повторять предыдущую тему (а так и будет, если не делать домашнее задание!).

Напоследок похвали их и поблагодари за занятие, каким бы странным это ни показалось им и тебе. Дерзай! Удачного занятия!

Результат

По итогам занятия ребята должны:

- понимать, что такое типы данных;

- знать основы хранения информации в двоичном виде;

- уметь выбирать тип данных для хранения информации;

- и изменять его;

- создавать более сложные программы в выбранной технологии.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: