Подсчет числа оценок без использования условного оператора

Текст задания :
Известны оценки по информатике каждого из 20 учеников класса.
В начале списка перечислены все пятерки, затем все остальные оценки.
Сколько учеников имеют по информатике оценку «5»? Условный оператор не использовать.
Известно, что пятерки имеют не все ученики класса.

Решение :
Создаем новый VCL проект. Бросаем на форму компоненты
TButton;TMemo; TLabel;
Получится должно что-то вроде этого :

Снимок

Кнопку «Расчет» запрограммируем следующим образом :

[cc lang=»delphi» tab_size=»2″ line_numbers=»false» no_links=»false»]

procedure TForm1.Button1Click(Sender: TObject);
var
res, i: integer;
begin
res := 0;
for i := 0 to Memo1.Lines.Count — 1 do
res := res + (strToint(trim(Memo1.Lines[i])) div 5);
showMessage(‘Колличество отличников равно ‘ + inttostr(res));
end;

[/cc]

В данной процедуре мы проходим по строчкам Memo1 и добавляем в счетчик переменной res результат целочисленного деления на 5. В конце показываем значение переменной.

Снимок

 

Подсчет числа оценок без использования условного оператора: 5 комментариев

  1. lmikle

    А теперь так же посчитать кол-во 4 и 3. И данный алгоритм сразу не годится.
    Я бы как раз поставил задачу подсчета четверок. Это более интересная и более полезная задача.

    Вообще, большинство задач бредовые. И решение дается в таком виде, что кроме как copy-paste нафиг ненужно. Вместо того, что бы объяснить алгоритм, дается груда хреново отформатированного кода. Типа — сами разбирайтесь.

    В чем суть этого сайта?

    1. blog

      Текст задания прочитайте ещё раз.
      Данный алгоритм своей задаче отвечает.
      Если у Вас есть задача поинтереснее, то напишите статью, разместим её рядом.
      Перебрать весь сайт, к сожалению, не хватает времени.
      Суть этого сайта описана в заголовке «Блог русского Делфиста, посвящен языку Delphi»

      1. lmikle

        Ну так и надо писать статьи про Дельфи, а не вываливать готовые решения непойми чего, да еще и в нечитаемом виде. Кстати, если уж говорить совсем точно, то пока ничего, посвященного именно ЯЗЫКУ DELPHI (так с некоторых пор называется тот диалект Object Pascal’я, используемый в данной среде разработки) я не увидел. Еще как-то потянет на работу в среде разработки Delphi и то, непонятно для кого (в смысле, категория читателей).

        Если уж на то пошло, то я бы:
        1. Сделал бы категоризацию статей по темам и по уровню.
        2. Писал бы больше про использование конкретных языковых конструкций и/или компонентов.

        Ну и если про задачу, то, как я уже указал в первом комментарии, достаточно изменит ее нв просто подсчет кол-ва всех оценок, т.е. сколько 5к, 4, 3 и т.д. И это даст совершенно другую реализацию, которая, на мой взгляд, более полезна и, порой, применима в реально работе. Опять-же тут еще важна подача материала. Нвбросать компонентов и вписать код в соотв. обработчики не так и сложно. А вот понять почему эта задача решается именно так, это гораздо полезнее.

        ЗЫ. Если сам не догадаешься как решить задачку в такой постановке и без if’ов, пиши, подскажу.

        1. blog

          Товарищ,
          1. Вам сюда wordpress.com или сюда Blogspot.com
          2. Напишите, опубликую.
          3. Напишите новое задание и решение,опубликую.Данное задание решено правильно, а раз решено, то и тема закрыта.

          1. lmikle

            1. К сожалению, времени на создание своего блога у меня нет.
            2. См п. 1. Было бы время, завел бы свой блог. С трудом хватает времени на то, что бы отвечать на delphisources.ru
            3. Задание я уже написал. Решение — на основе бин-сорт. Если будет попозже время — напишу здесь.

Добавить комментарий для blog Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *