Раздел: Задачи / Простейшие /

Найти количество нулей во всех числах последовательности

Основы программирования

Подпишись на новости, чтобы ничего не пропустить


Условие задачи 0.4

Задача 0.4
Дана последовательность чисел, заданная пользователем. Найти количество нулей во всех числах последовательности.

В этот раз решил немного отойти от традиций и решить задачу на нескольких языках. А именно: 1) Паскаль; 2) С++; 3) JavaScript; 4) VBScript; 5) VBA.

А сподвигла меня на это просьба одного из читателей, который и попросил помочь в решении этой задачи. Правда, просил он только о VBA, но я решил расширить эту просьбу. И хотя к тому времени, когда я собрался это сделать, для читателя задача уже была неактуальна, я решил таки её решить - вдруг кому-то ещё пригодится...

ПРИМЕЧАНИЕ
Скачать исходные коды всех примеров можно здесь.

Как найти количество нулей в строке

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

В большинстве языков программирования с вводом строки не будет никаких сложностей (хотя есть особенности - о вводе данных более подробно расскажу ниже).

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

Пример на Паскале

//-------------------------------------------------------------------
// Вычисляет и возвращает количество нулей в строке st
//-------------------------------------------------------------------
function GetZerosNum(st : string) : word;
var i, n : word;
begin
  n := 0;
  for i := 1 to Length(st) do
    if st[i] = '0' then Inc(n);
  Result := n;
end;

Пример на С++

unsigned int GetZerosNum(string st) 
{
  unsigned int i, n = 0;	  
  for (i = 0; i < st.length(); i++)
    if (st[i] == '0') n++;  
  return n;
}

Пример на JavaScript

function GetZerosNum(st)
{ 
  var i, n = 0;	  
  for (i = 0; i < st.length; i++)
    if (st.charAt(i) == '0') n++;
  return n;
}

Пример на VBScript и VBA

'--------------------------------------------------------------------
' Вычисляет и возвращает количество нулей в строке st
'--------------------------------------------------------------------
function GetZerosNum(st) 
  n = 0
  for i = 1 to Len(st) 
    if Mid(st, i, 1) = "0" then n = n + 1
    next
  GetZerosNum = n
end function

Ну вот как-то так. Теперь ещё осталось разобраться с вводом данных. Для всех случаев я решил использовать глобальную переменную str, в которую буду получать строку, введённую пользователем.

В Паскале никаких сложностей с этим нет - просто используйте

ReadLn(str);

Снова и снова убеждаюсь, что Паскаль - это очень крутой и простой язык. А вот в С++ всё будет не так просто. Если вы используете cin, то будете неприятно удивлены тем обстоятельством, что строка будет прочитана только до первого пробела. Поэтому придётся сделать так:

getline(cin, str);

Найти количество нулей в строке на Паскале и С++

В JavaScript я использовал поле ввода. Как это делается, я рассказал здесь.

Найти количество нулей в строке на JavaScript

В VBScript я использовал диалоговое окно для ввода данных. Подробно об этом я рассказал в книге Как стать программистом.

Найти количество нулей в строке на VBScript

VBA - это язык, о котором я раньше вообще не рассказывал. Не буду рассказывать и сейчас, потому что это тема отдельного разговора. Скажу только, что для примера я использовал файл Excel, в котором размести кнопку и связал её с макросом, который и вызывает функцию GetZerosNum.

Пользователь вводит данные в ячейку таблицы Excel, а макрос на языке VBA читает данные из этой ячейки и подсчитывает количество нулей. Итог расчета выводится в другую ячейку.

Найти количество нулей в строке на VBA

Что из всего этого получилось, см. на рисунках.

Ну вот и всё. Надеюсь, вам было любопытно понаблюдать как творят программисты на разных языках. И, как видите, дело не в языке - дело в том, что именно для вашей задачи более удобно. И пусть этот простой пример не так ярко показывает возможности разных языков, но он однозначно показывает, что все языки по своему хороши...

ВНИМАНИЕ!
Если вам что-то осталось непонятно в примерах на Паскале, С++ и JavaScript, то советую почитать книги “Основы программирования”, “Основы С++” и “Что такое JavaScript”.


Основы C++ Основы C++

C++ - это один из самых популярных языков программирования. Не важно, на каком языке программируете лично вы. Но, если вы хотя бы в общих чертах не знаете С++, то это большой пробел в вашем образовании, который надо восполнить как можно быстрее... Подробнее...
Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика