[Logo] Форум DL
  [DL]  На главную страницу 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Обучение программированию "с начала" 1, 2, 3, 4, 5, 6
Автор Сообщение
Михаил Долинский

Темы: 2072
Сообщений: 49900

Мой профиль
Курсом "Одномерный массив" у нас с лета занимался Влад.
Однако до сих пор там очень много проблем, главные из которых:
1. Нет НИКАКОГО обучения в "Контрольных заданиях"
2. Абсолютная каша в "Сумме"
3. Дети повыходили из курса, а решать задачи из него же - не умеют :-(

Данная тема заведена, чтобы помочь Владу нормализовать курс.
Оля смотрела курс и даже пыталась высказывать свои замечания - просьба к Оле - зафиксировать свои замечания в этой теме форума.

Кроме того, мы договорились с Владом, что ОТНЫНЕ каждый ребенок в его курсе работает ДО ПЕРВОГО ВОПРОСА. Если ребенок сам не может справиться - Влад (и все мы точно также делаем)отправляет ребенка в СТРОКИ (сначала "Отладчик", потом "Элементарные алгоритмы"), а ВОПРОС РЕБЕНКА записывает (записываем) здесь в форуме. Точнее надо просить детей писать в КОНСУЛЬТАЦИЮ свой вопрос, а потом сюда его копировать (или сразу в форум пусть дети пишут?).

Всех НОВЫХ детей отправляем ТЕПЕРЬ по маршруту:
"Учим слова" - "Введение в программирование" - "Строки"

И так до тех пор, пока не исправим "Одномерный массив".

Кроме того, я УЖЕ собрал коллекцию "задач", которые дети не могут пройти:

- Холупко Антон - "Код максимально встречающегося символа"58840 Кугейко Мария
- Андрухович Н. - -"-
- Бабицкий - "Номера элементов"37004 Бобровская Наталья
- Литвинов - "Количество недостающих символов"58842 Кугейко Мария
- Андрухович С. - "Грибники"12386 Вераксич Сергей

Влад попросил ПОМОЧЬ ему - придумывать обучающие задания.
Что я и буду делать. Было бы здорово, если бы Оля и Маша тоже пытались помочь, по возможности.
Михаил Долинский

Темы: 2072
Сообщений: 49900

Мой профиль
Код максимально встречающегося символа

На 2 января не справились с этой задачей
(на них проверять вновь установленные в "не получилось" задания):
Холупко Антон (7 кл)
Андрухович Настя (4 кл)

Если переформулировать, эта задача звучит так:
Найти номер максимального элемента в одномерном массиве из 256 элементов с номерами от 0 до 255.

Какие проблемы могут возникать у школьников при решении этой задачи:

1) Они как раз и не могут переформулировать условия
2) Они не работали с массивами с номерами от 0 до 255
3) Они забыли как искать номер максимального элемента

Предлагаю следующую последовательность заданий в папке "Не получилось"

"Ручной просчет"
- показываем таблицу с кодами символов (a-97, b-98, c-99)
предлагаем 3 примера типа
дана строка "babaacacacaa", просим:
выписать последовательность кодов: (98 97 98 ... 97)
указать код буквы a, сколько раз встречается этот код
код буквы b, сколько раз встречается этот код
код буквы c, сколько раз встречается этот код
заполнить массив чисел от 0 до 255 для строки "babaacacacaa"
при этом уже есть нули от 0 ... до 94 и от 102 до 255

- ввести ответ для нескольких тестов
(первый - из условия задачи, цветами-шрифтами ПОДСКАЗАТЬ, как искать ответ)

- В конце выбрать правильный вариант переформулированного задания:
В массиве из 256 чисел (от 0 до 255) найти
- максимальный элемент
- номер максимального элемента
- минимальный элемент
- номер минимального элемента


"Работа с массивами от 0 до 255"
- выбрать фрагменты программ, где правильно объявлены и вводятся массивы от 0 до 255
- АЛЬТЕРНАТИВА - заполнить пропуски (и есть показать правильные ответы) - вырезаны именно все 0 и все 255.

"Выбрать правильную программу"
- для нахождения номера максимального элемента в массиве от 0 до 255
Михаил Долинский

Темы: 2072
Сообщений: 49900

Мой профиль
Количество недостающих символов

Не справился с этой задачей:
Литвинов Леша (2 кл)

Проблемы/непонимания могут быть такими
- суть задачи (сумма разностей количеств одинаковых букв)
- как строки представляются массивами чисел от 0 до 255
- как считать сумму разностей
- как "не учитывать пробелы"

Предлагаю следующие задания:

Ручной просчет:
- для нескольких пар строк (для тех, что тестах для программы?) дать ответ
- для этих же пар строк (не всех?) создать массивы чисел - встречаемости кодов символов
- для пар массивов посчитать разности и ответы
(суммы разностей БЕЗ учета количеств пробелов)

Выбор правильных фрагментов программ:
(сопоставление фрагмента программы и описания)
- ввод двух массивов чисел от 0 до 255
- суммирование разностей (без учета пробелов, вычитая только из большего меньшее)
Михаил Долинский

Темы: 2072
Сообщений: 49900

Мой профиль
Номера элементов

Не справился с этой задачей:
Бабицкий Алан (5 кл)

Проблемы/непонимания могут быть такими

- проверка на неравенство одного числа другому
- проверка на неравенство одного числа двум другим
- вывод номеров элементов массива (неравного одному)
- вывод номеров элементов массива, неравных двум

Предлагаю такие задания:

Ручной просчет
(тех же тестов, что для программы стоят, возможно не всех)

Вспомогательные программы
(с подсказкой - идеей решения, с нее ссылкой на текст программы?)
- проверка на неравенство одного числа другому
- проверка на неравенство одного числа двум другим
- вывод номеров элементов массива (неравного одному)
- вывод номеров элементов массива, неравных двум
Михаил Долинский

Темы: 2072
Сообщений: 49900

Мой профиль
Грибники

Не справился с этой задачей:
Андрухович Сергей (4 кл)

Вот его решение:

program p5;
var
  a           : array [1..10000] of longint;
  max,min,i,n : longint;
begin
  readln(n);
  for i:=1 to n do readln(a[i]);
  max:=a[1];
  for i:=2 to n do
    if a[i]>max then max:=a[i];
  min:=a[1];
  for i:=2 to n do
    if a[i]<min then min:=a[i];
  if (a[i]<>max) and (a[i]<>min)
    then writeln(i);
end.


При этом он сделал (уж не знаю сам или с помощью сестры - Насти) оба подводящих задания.

А ошибка его заключается в том, что он не сделал ЦИКЛ для вывода номеров несовпавших элементов.

Предлагаю добавить задание СОПОСТАВЬ исходник ОШИБКЕ и кроме этого текста добавить следующие РЕАЛЬНО посылавшиеся ошибочные программы:

Коробейников Федя (2 кл)
program s;
var
  a : array [1..10000] of longint;
  n,i,max,min : longint;
begin
  readln(n);
  for i:=1 to n do readln(a[i]);
  max:=a[1]; min:=a[1];
  for i:=2 to n do
    begin
      if a[i]>max then max:=a[i];
      if a[i]<min then min:=a[i];
    end;
  for i:=2 to n do
    if (max<>i) and (min<>i) then writeln(i);
end.


Андрухович Настя (4 кл)
program stroki;
var
  a       : array [1..1000] of longint;
  n,k,m,i : longint;
begin
  readln(k,m);
  readln(n);
  for i:=1 to n do readln(a[i]);
  for i:=1 to n do
    if (a[i]<>k) and (a[i]<>m)
      then writeln(i);
end.


Марсиков Павел (8 кл) - только этот текст ОТФОРМАТИРОВАТЬ нужно?
var
   a,c,d : array [1..100] of integer;
   i,n,max,min,nmax,nmin,k,j : integer;
   begin
          readln(n);
          for i:=1 to n do readln(a[i]);
          max:=a[1];
          min:=a[1];
          nmax:=1;
          nmin:=1;
          for i:=2 to n do
          if a[i]>max then
          begin
          max:=a[i];
          nmax:=i;
          end;
          for i:=2 to n do
          if a[i]<min then
          begin
          min:=a[i];
          nmin:=i;
          end;
          for i:=1 to n do
          if (a[i]<max) and (a[i]>min) then
          writeln(a[i]);

end.


Храменков Дима (7 кл)
program gribi;
var
  a:array [1..10000] of longint;
  l,n,i,max,min:longint;
begin
  readln(n);
  for i:=1 to n do readln(a[i]);
  max:=a[1]; min:=a[1];
  for i:=2 to n do
     begin
       if a[i]>max then max:=a[i];
       if a[i]<min then min:=a[i];
     end;
   for i:=1 to n do
     if (max<>a[i]) and (min<>a[i]) then writeln(a[i]);
end.


Приставко Марина (1 курс)
program al;
var
  a  : array [1..10000] of longint;
  n,k,i,max,s,min: longint;
begin
  readln(n);
  for i:=1 to n do readln(a[i]);
  max:=a[1];
  for i:=1 to n do
    if a[i]>max then  max:=a[i];
  min:=a[1];
  for i:=1 to n do
    if a[i]<min then  min:=a[i];
  for i:=1 to n do
  if (a[i]<max) and (a[i]>min)
    then writeln(i);
end.


Мороз Инна, 1 курс
program i1;
var
  a           : array  [0..1000] of longint;
  i,n,max,min,k : longint;
begin
  readln(n);
  for i:=1 to n do readln(a[i]);
  min:=a[1];
  for i:=1 to n do
   if a[i]<min then min:=a[i];
  max:=a[1];
  for i:=2 to n do
    if a[i]>max then max:=a[i];
  for i:=1 to n do
  if (a[i]<>min) and (a[i]<>max) then writeln(i);
end.


Коротков Алексей, 6 кл
program massiv;
var
  a                       : array [1..15000] of longint;
  i,max,nom,n,s,nom2,max2 : longint;
begin
  readln(n);
  for i:=1 to n do readln(a[i]);
  max:=a[1]; nom:=1; max2:=a[1]; nom2:=1;
  for i:=1 to n do
    if a[i]>max then begin
                       max:=a[i];
                       nom:=i;
                     end;
  for i:=1 to n do
    if a[i]<max2 then begin
                       max2:=a[i];
                       nom2:=i;
                     end;
  for i:=1 to n do
    if (i<>nom) and (i<>nom2) then writeln(i);
end.


Зубронов Слава, 9 кл.
program slava;
var
  a    : array[1..10000] of longint;
  n,i,max,min : longint;
begin
  readln(n);
  for i:=1 to n do readln(a[i]);
  max:=a[1];
  min:=a[1];
  for i:=1 to n do
   if a[i]>max then max:=a[i];
   if a[i]<min then min:=a[i];
  for i:=1 to n-1 do
   if (a[i]<>max) and (a[i]<>min)
   then writeln(i);
end.


Терехов Дима, 9 кл
program xxx;
var
  a : array [1..10000] of longint;
  n,x,k,s,i : longint;
begin
  readln(n);
  for i:=1 to n do readln(a[i]);
  s:=a[1]; x:=a[1];
  for i:=1 to n do
    if s<a[i] then s:=a[i];
    if x>a[i] then x:=a[i];
  for i:=1 to n do
    if (a[i]<>s) and (a[i]<>x) then writeln(i);
end.


Грибанов Вадим, 6 кл
var
  a : array [1..20000] of longint;
  n,m,k,i,s,y,x : longint;
begin
  read(n);
  for i:=1 to n do read(a[i]);
  m:=a[1]; k:=a[1]; y:=1; x:=1;
  for i:=1 to n do
    if a[i]>m then begin m:=a[i]; x:=i; end;
  for i:=1 to n do
    if a[i]<k then begin k:=a[i]; y:=i; end;
  for i:=1 to n do
    if (a[i]<>x) and (a[i]<>y)
      then writeln(i);
end.


Михаил Долинский

Темы: 2072
Сообщений: 49900

Мой профиль
Я не могу решить задачу:
Одномерный массив\По Владу Добрыдину\Контрольные задания\Задачи для строк\4 - "Сколько раз встречались?" 58853 Кугейко Мария, ПО-22, июль 2007

-- Спрашивает 114934 [Мозоль Дарья]
-- Курс 'Информатика 2007-2008'
Distance Learning Belarus - http://dl.gsu.unibel.by - 05.01.2008 11:24 


Сколько раз встречались?

Даша (10 кл) решала и пыталась сдавать (4 отсылки) эту задачу.
Поэтому прежде чем советовать, я решил посмотреть, а ЧТО она отсылала? А вот что:
Попытка 1.
program gds;
var
  k1,k2,k3 : array [0..255] of longint;
  i : longint;
begin
  for i:=0 to 255 do readln(k1[i]);
  for i:=0 to 255 do readln(k2[i]);
  if k1[i]=0 then k3[i]:=255;
  for i:=0 to 255 do
    begin
      k3[i]:=k2[i] div k1[i];
     end;
  writeln(k3[i]);
end.


Проблемы таковы:
1. Пишет k1[i] и k3[i] вне цикла
2. Делит на k1[i] НЕ ПРОВЕРЯЯ (проверяя в другом месте) равенство делителя нулю
3. В цикле один оператор - и все равно используются операторные скобки begin ... end

Попытка 2.
program gds;
var
  k1,k2,k3 : array [0..255] of longint;
  i : longint;
begin
  for i:=0 to 255 do readln(k1[i]);
  for i:=0 to 255 do readln(k2[i]);
  for i:=0 to 255 do
    if k1[i]=0 then k3[i]:=255;
    if k2[i]=0 then k3[i]:=0;
  for i:=0 to 255 do
    begin
      k3[i]:=k2[i] div k1[i];
    end;
  writeln(k3[i]);
end.


Добавилась еще ошибка:
В цикле используются два оператора
if k1[i]=0 then k3[i]:=255;
if k2[i]=0 then k3[i]:=0;
А операторных скобок begin ... end нет !!!

Попытка 3.
program gds;
var
  k1,k2,k3 : array [0..255] of longint;
  i : longint;
begin
  for i:=0 to 255 do readln(k1[i]);
  for i:=0 to 255 do readln(k2[i]);
  for i:=0 to 255 do
    if k1[i]=0 then k3[i]:=255;
    if k2[i]=0 then k3[i]:=0;
  for i:=0 to 255 do
    if k2[i]<>0 then k3[i]:=k2[i] div k1[i];
  writeln(k3[i]);
end.


Есть шаги вперед
- прежде чем делить на ноль - проверяем делитель
- в последнем цикле, использующем только один оператор, убраны операторные скобки (begin ... end)

Попытка 4.
program gds;
var
  k1,k2,k3 : array [0..255] of longint;
  i        : longint;
begin
  for i:=0 to 255 do readln(k1[i]);
  for i:=0 to 255 do readln(k2[i]);
  for i:=0 to 255 do
    if k1[i]=0 then k3[i]:=255;
    if k2[i]<>0 then k3[i]:=k2[i] div k1[i];
    if k2[i]=0 then k3[i]:=0;
  writeln(k3[i]);
end.


Оказывается оператор if ... then ... else Даше не известен :-(

Я предлагаю добавить упражнения, в которых последовательно предъявляются Дашины исходники и список ОШИБОК (с лишними тоже)
Ученик должен чекбоксами указать все ошибки, сделанные в программе.

Еще лучше (но сложнее в реализации?)

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


Владислав Добрыдин

Темы: 2
Сообщений: 57

Мой профиль
Контрольные задания / Задачи для строк:
  -Код максимально-встречающегося символа
     Добавил в "Не получилось":
      -Коды символов
      -Массив чисел
      -Максимальное и его номер из 10 чисел

  -Количество недостающих символов
    Добавил в "Не получилось":
     -Решение вручную
     -Сопоставление

Михаил Долинский

Темы: 2072
Сообщений: 49900

Мой профиль
я не могу решить задачу Количество недостающих символов. Вернее я её решаю правильно, т.к. уже решала,но при отправке задача непрвильна

-- Спрашивает 114934 [Мозоль Дарья]
-- Курс 'Информатика 2007-2008'
Distance Learning Belarus - http://dl.gsu.unibel.by - 13.01.2008 10:06
Михаил Долинский

Темы: 2072
Сообщений: 49900

Мой профиль
"Грузовики"58537 Добрыдин Владислав, июнь 2007

Я не могу решить эту задачу

-- Спрашивает 114442 [Туманов Вова]
-- Курс 'Информатика 2007-2008'
Distance Learning Belarus - http://dl.gsu.unibel.by - 13.01.2008 11:47
Владислав Добрыдин

Темы: 2
Сообщений: 57

Мой профиль
Сделал обучение к следующим задачам:
 Код максимально встречающегося символа / Контрольные задания
   Дополнил в "Не получилось"
    - Максимально встречающийся символ
    (Слисова Ирина, Мороз Инна, Коробейников Федя, Андрухович Настя, Грибанов Вадим, 
     Кошевников Иван, Мозоль Дарья, Подтелкин Влад)

 Количество недостающих символов / Контрольные задания 
   - Ввод-вывод массива 
   (Слисова Ирина, Мороз Инна, Коробейников Федя, Андрухович Настя, Грибанов Вадим, 
     Кошевников Иван, Мозоль Дарья, Подтелкин Влад)

 Сколько раз встречались / Контрольные задания
   - Найди ошибки
   - Найди ошибки 2
   - Найди ошибки 3 
   (Слисова Ирина, Мороз Инна, Коробейников Федя, Андрухович Настя, Грибанов Вадим, 
     Кошевников Иван, Мозоль Дарья, Подтелкин Влад) 

 Грибники / Контрольные задания
   - Грибники-сопоставление ошибке
   (Андрухович Сергей)

 Номера элементов / Грибники / Контрольные задания
   - Сравнение с одним числом
   - Номера элементов 2
   (Бабицкий Алан)

 Грузовики / Сумма
   - Выбрать правильную программу
   (Туманов Вова)

 Птицефабрика / Сумма
   - Птицефабрика с первого по N
   - Птицефабрика с M по последний
   - Птицефабрика 2
   (Тихонов Богдан, Ребко Сергей, Крупенко Женя)


Федор Коробейников

Темы: 46
Сообщений: 162

Мой профиль
Я не понимаю задачу "Степень возрастания"60794 . Напишите к ней пожалуйсто более подробное Не знаю
______________________
Work hard and win a prize
Михаил Долинский

Темы: 2072
Сообщений: 49900

Мой профиль
-----Исходное сообщение-----
От: Алексей Литвинов [SMTP:alex.o.litvinov@gmail.com]
Отправлено: Saturday, January 26, 2008 10:00 AM
Кому: Michael Dolinsky
Тема: Re: Здравствуй, Леша

Да, получилось
 
Спасибо за помощь

 
12.01.08, Michael Dolinsky < dolinsky@gsu.by <mailto:dolinsky@gsu.by>>
написал(а):

Владислав Викторович ПОСТАВИЛ  "НЕ ЗНАЮ" к задаче
"Количество недостающих символов"

- попробуй ТЕПЕРЬ ее решить

Обязательно сообщи мне результат - получилось или нет

Спасибо
Дмитрий Храменков

Темы: 0
Сообщений: 2

Мой профиль
не могу решить задачу: одномерный массив - модуль суммы.
______________________
Не могу разобраться с задачей: одномерный массив - модуль суммы
Владислав Добрыдин

Темы: 2
Сообщений: 57

Мой профиль
Добавил в Не получилось следующие задания:
Степень возрастания / Контрольные задания
  Идея решения
  (Коробейников Федя)

Нефть / Контрольные задания
  Решение вручную
  Минимальная цена
  Две минимальные цены 
  (Лапицкий Слава, Ничипорчик Сергей, Марухленко Андрей, 
   Терехов Дима, Астахов Сергей)

Модуль суммы / Контрольные задания
  Что такое модуль
  Решение вручную
  Модуль числа
  (Храменков Дима, Лапицкий Слава)

Владислав Добрыдин

Темы: 2
Сообщений: 57

Мой профиль
Электронная почта DL

Отправитель Ничипорчик Сергей
Дата 31.01.2008 12:26:45
Тема Нефть
Сообщение Я её решил.

Отправитель Лапицкий Слава
Дата 31.01.2008 14:13:04
Тема Re:Реши задачи
Сообщение Я решил задачу "Модуль суммы" !

 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Обучение программированию "с начала" 1, 2, 3, 4, 5, 6
Time:0,047