Согласие на обработку персональных данных.

25.10.2020
Добавлен курс Как стать веб-разработчиком.

23.10.2020
Новые видео и статья Как вывести одинарную кавычку в Паскале.

21.10.2020
Новые видео и статья Комментарии в HTML.

19.10.2020
Новые видео и статья Дерево элементов DOM.

03.10.2020
Новый выпуск журнала Автоматизация и Программирование.



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

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

Условие задачи 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

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