0 / 0 / 0 Регистрация: 27.12.2015 Сообщений: 7 |
|
1 |
|
Проверить сколько нулей в заданном числе27.12.2015, 14:26. Показов 4287. Ответов 2
Вводится число, кол-во цифр неизвестно, проверить сколько нулей в этом числе.
0 |
mixternnik 2 / 2 / 1 Регистрация: 30.07.2015 Сообщений: 32 |
||||
27.12.2015, 15:15 |
2 |
|||
РешениеРеализация через строки
1 |
hunter_321 1 / 1 / 3 Регистрация: 25.03.2015 Сообщений: 41 |
||||||||
28.12.2015, 19:00 |
3 |
|||||||
Добавлено через 14 минут
1 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
28.12.2015, 19:00 |
Помогаю со студенческими работами здесь
Определить, сколько цифр в заданном 4-х значном числе больше 5.
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 3 |
Раздел:
Задачи /
Простейшие /
Найти количество нулей во всех числах последовательности
|
Основы программирования Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее… |
Условие задачи 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 я использовал поле ввода. Как это делается, я рассказал
здесь.
В VBScript я использовал диалоговое окно для ввода данных. Подробно об этом
я рассказал в книге Как стать программистом.
VBA — это язык, о котором я раньше вообще не рассказывал. Не буду
рассказывать и сейчас, потому что это тема отдельного разговора.
Скажу только, что для примера я использовал файл Excel,
в котором размести кнопку и связал её с макросом, который и вызывает функцию GetZerosNum
.
Пользователь вводит данные в ячейку таблицы Excel, а макрос на языке VBA читает данные из этой ячейки и подсчитывает количество нулей. Итог расчета выводится в другую ячейку.
Что из всего этого получилось, см. на рисунках.
Ну вот и всё. Надеюсь, вам было любопытно понаблюдать как творят программисты на разных языках. И, как видите, дело не в языке — дело в том, что именно для вашей задачи более удобно. И пусть этот простой пример не так ярко показывает возможности разных языков, но он однозначно показывает, что все языки по своему хороши…
ВНИМАНИЕ!
Если вам что-то осталось непонятно в примерах на Паскале, С++ и JavaScript, то советую почитать книги
“Основы программирования”,
“Основы С++” и
“Что такое JavaScript”.
|
Как стать программистом 2.0
Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… |
|
Помощь в технических вопросах
Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение — ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. |
Формулировка задачи:
Подсчитать количество нулей в заданном числе.
P.S. Число целое.
Код к задаче: «Подсчитать количество нулей в заданном целом числе»
textual
Листинг программы
begin write('Введите число:'); writeln('Количество нулей:',ReadInteger().ToString.ToCharArray().Where((c:char)->c ='0').Count()); end.
Полезно ли:
14 голосов , оценка 4.000 из 5
Похожие ответы
- Заданы два натуральных числа. Определить, являются ли среднее арифметическое этих чисел целым числом
- Подсчитать количество слов в каждом предложении текста
- Дан файл, содержащий целые числа
- Составить программу, которая заполняет массив случайными целыми числами
- Подсчитать количество элементов, для которых выполняется неравенство
- Дан файл f, компоненты которого являются целыми числами
- Определить количество цифр с наименьшим значением в цифровой записи данного числа
- Вывести целую и дробную часть вещественного числа
- Сколько цифр нужно исправить, чтобы исправленное число совпадало обращенным к заданному числу?
- Найти сумму элементов одномерного массива, у которых сумма делителей меньше заданного числа
- Даны два целых числа A и B (A < B). Вывести все целые числа, расположенные между данными числами
Var i,p:integer;
begin
p:=1;
for i:=1 to 10 do
if i mod 2 = 0 then p:=p*i;
writeln(‘p=’,p);
end.
Результат:
p=3840
# составить программу для вычисления функций y(x) при
# y=-1 если x<-1,
# y=x если x<1,
# y=1 если x=1
# Код на ruby 2.2.3p173
def y(x)
return -1 if x < -1
return x if x < 1
return 1 if x == 1
end
# Примеры применения
p y(-2)
p y(0)
p y(1)
Ответ:
28
Объяснение:
Наша Таня громко плачет.
24 символа и по 2 нажатия на Caps Lock для больших букв Н и Т
Var h,b,k,p,d:real;
begin
write(‘Введите В, К, П:’);
readln(b,k,p);
writeln(‘ H’,’Д’:8);
h:=2;
repeat
d:=100*h/(100-b)/(100-k)/p;
writeln(h:1:1,d:10:3);
h:=h+0.1
until h>4.0001 {Вообще-то здесь ровно 4 надо написать, но у меня тогда значение 4 не просчитывается, хотя должно бы}
<span>end.</span>
Вор варует — хакер взламывает
Вирусболезнь это живое — вирус компьютерный не живое
-
- 0
-
Помогите написать программу на PascalABCNET
Определите, сколько среди данных n чисел нулей.
ВХОДНЫЕ ДАННЫЕ
Вводится одно число n — количество чисел, а затем n целых чисел.
ВЫХОДНЫЕ ДАННЫЕ
Выведите одно целое число — количество нулей в этой последовательности.
-
Комментариев (0)
-
- 0
-
var
i,n,a,k : integer;
begin
readln (n);
k := 0;
for i := 1 to n do
begin
readln (a);
if a = 0 then
k := k +1;
end;
writeln (k);
end.
-
Комментариев (0)