0 / 0 / 0
Регистрация: 27.06.2017
Сообщений: 12
1

Определить слова состоящие только из одних цифр

31.01.2018, 00:05. Показов 3323. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
дана символьная строка, содержащая слова разделенные между собой одним или несколькими пробелами. определить слова состоящие только из одних цифр. представьте эти слова в виде чисел и найдите их среднее арифметическое
0
31.01.2018, 00:05
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.01.2018, 00:05
Ответы с готовыми решениями:

Сжать двухмерный массив, удалить все столбцы состоящие из одних нулей и все строки состоящие из одних нулей
Помогите написать программу.

Дана строка, посчитать слова состоящие из одних цифр
Дана строка, посчитать слова состоящие из одних цифр.

Найти в строке слова, состоящие только из букв и только из цифр
Помогите новичку, прошу. УСЛОВИЕ: Вводят строку слов. Необходимо найти слова, состоящие только из букв и только из цифр. использую...

9
Платежеспособный зверь
 Аватар для кот Бегемот
8956 / 4382 / 1650
Регистрация: 28.10.2009
Сообщений: 11,626
31.01.2018, 00:53 2
Лучший ответ Сообщение было отмечено Romanian как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var
a,b:string;
c,i,f,k,s,m:integer;
begin
readln(a);
for i:=1 to length(a) do
if a[i]<>' 'then
 begin
  b:=b+a[i];
  if(ord(a[i])<48)or(ord(a[i])>57)then f:=1;
  end
else if a[i-1]<>' 'then
begin
if f=0 then
 begin
 val(b,c,m);
 s:=s+c;
 inc(k);
 end;
 b:='';
 c:=0;
 f:=0;
 end;
 writeln(s/k:2:2);
 end.
1
0 / 0 / 0
Регистрация: 27.06.2017
Сообщений: 12
31.01.2018, 02:27  [ТС] 3
Большое спасибо!!!

Добавлено через 1 час 20 минут
программа выводит цифры из текста, но она не считает их количество и сумму для нахождения среднего арифметического.
0
Модератор
10116 / 5452 / 3365
Регистрация: 17.08.2012
Сообщений: 16,658
31.01.2018, 02:56 4
Лучший ответ Сообщение было отмечено Romanian как решение

Решение

Romanian, неправда. Программа полностью соответствует Вашему заданию.

Никакие цифры из текста программа не выводит (цифры с числами путаете, я правильно понял?). Она определяет слова, состоящие только из одних цифр, представляет эти слова в виде чисел, и находит их среднее арифметическое. И что не так? Да, и где в Вашем задании хоть слово о каком-то там количестве?

Вариант программы с выводом всех найденных чисел, их количества и их среднего арифметического:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var
a,b:string;
c,i,f,k,s,m:integer;
begin
writeln('Введите строку, содержащую слова, состоящие их цифр:');
readln(a);
writeln('Слова из цифр:');
for i:=1 to length(a) do
if a[i]<>' 'then
 begin
  b:=b+a[i];
  if(ord(a[i])<48)or(ord(a[i])>57)then f:=1;
  end
else if a[i-1]<>' 'then
begin
if f=0 then
 begin
 val(b,c,m);
 writeln(c);
 s:=s+c;
 inc(k);
 end;
 b:='';
 c:=0;
 f:=0;
 end;
 if k > 0
  then writeln('Найдено чисел: ', k, ', среднее арифметическое чисел: ', s/k:2:2)
  else writeln('не найдены.')
end.
В программе устранена алгоритмическая ошибка: в оригинале программы будет аварийное завершение из-за деления на ноль в случае, если строка не содержит слов, состоящих исключительно из цифр.
2
Платежеспособный зверь
 Аватар для кот Бегемот
8956 / 4382 / 1650
Регистрация: 28.10.2009
Сообщений: 11,626
31.01.2018, 08:37 5
Cyborg Drone, спасибо. В моей программе есть ещё одна маленькая неточность- после readln(a) к строке надо добавить пробел
a:=a+' ';
Это если последнее слово будет числом, оно тоже должно быть учтено
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7799 / 4622 / 2831
Регистрация: 22.11.2013
Сообщений: 13,128
Записей в блоге: 1
31.01.2018, 09:19 6
кот Бегемот,
Еще одна неточность — необходимо предварительно избавиться от лидирующих пробелов, иначе может быть посчитано несуществующее число:
Pascal
1
2
  i:=1; while (i<=Length(a)) and (a[i]=' ') do Inc(i);
  for i:=i to Length(a) do ...
Добавлено через 9 минут
Вероятно, условие в строке 12 можно записать более явно
Pascal
12
  if (a[i]<'0') or (a[i]>'9') then
или
Pascal
12
  if not (a[i] in ['0'..'9']) then
0
Платежеспособный зверь
 Аватар для кот Бегемот
8956 / 4382 / 1650
Регистрация: 28.10.2009
Сообщений: 11,626
31.01.2018, 10:06 7
Цитата Сообщение от bormant Посмотреть сообщение
if (a[i]<'0') or (a[i]>'9') then
Да, конечно, просто поздним вечером голова работает не очень, написал первое пришедшее в голову.
Цитата Сообщение от bormant Посмотреть сообщение
необходимо предварительно избавиться от лидирующих пробелов
каким боком они здесь могут помешать, если стоит условие
Pascal
1
if a[i]<>' 'then
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7799 / 4622 / 2831
Регистрация: 22.11.2013
Сообщений: 13,128
Записей в блоге: 1
31.01.2018, 10:44 8
Цитата Сообщение от кот Бегемот Посмотреть сообщение
каким боком они здесь могут помешать
Рассказываю. Идем по #2.
Оговорка (1): Ввели строку длиной не 32 символа с учетом добавленного завершающего пробела.
Пусть для примера: ' 1 2' -- первый пробел.
5: a:=a+' '; ' 1 2 '
6: for i:=1 to Length(a) do => i=1
7: if a[i]<>' ' => if a[1]<>' ' => ложь
14: else if a[i-1]<>' ' => a[0]<>' ' => истина, см.(1)
16: if f=0 => истина, f глобальная, нигде пока не рисваивалась
21: Inc(k); => ага, посчитали несуществующее число.
28: вывели неверный ответ, поделив сумму на число, на единицу большее правильного

Или где-то выше ошибаюсь?
0
Платежеспособный зверь
 Аватар для кот Бегемот
8956 / 4382 / 1650
Регистрация: 28.10.2009
Сообщений: 11,626
31.01.2018, 13:44 9
Формально Вы конечно правы: Мало ли, а вдруг найдётся идиот, который введёт строку с начальным пробелом. Но тогда во всех программах надо ставить защиту от дураков, а это всего лишь удлинняет программу.
На олимпиадах, к примеру, уточняется, что ввод корректный по определению
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7799 / 4622 / 2831
Регистрация: 22.11.2013
Сообщений: 13,128
Записей в блоге: 1
31.01.2018, 14:13 10
кот Бегемот,
беда в том, что этот ввод тоже корректный по определению -- отсутствие пробелов в начале строки не оговорено специально.
А еще в plain text абзацы пробелами начинаются, так что вариант использования, увы, не класса "только идиот".

А в остальном правы -- иногда программа работает правильно.

Добавлено через 14 минут
Кстати, легко обходится (снижая лимит на максимальную длину строки):
Pascal
8
9
a:=' '+a+' ';
for i:=2 to Length(a) do ...
0
31.01.2018, 14:13
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.01.2018, 14:13
Помогаю со студенческими работами здесь

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

Строка: Преобразовать строку так, чтобы все слова в ней стали идентификаторами, слова состоящие только из цифр - удалить
Преобразовать строку так, чтобы все слова в ней стали идентификаторами, слова состоящие только из цифр - удалить.

Вывести все слова, состоящие только из цифр
Задание: ввести строку, конец ввода обозначен символом $ Вывести все цифровые слова, т.е. если слово между пробелами состоит только из...

В файле найти слова состоящие только из цифр
Дан текстовый файл. Написать функцию, которая проверяет, есть ли в нем слова, состоящие только из цифр, если есть – удалить их.

Напечатать все слова, состоящие только из цифр
напечатать все слова , состоящие только из цифр


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Отключение отслеживания файла, занесенного в .gitignore в Git
hw_wired 10.02.2025
Git помогает следить за изменениями в проекте, но иногда требуется исключить определенные файлы из системы контроля версий. Это могут быть конфигурационные файлы с локальными настройками, временные. . .
Что такое use strict в JavaScript
hw_wired 10.02.2025
Директива use strict - способ перевода JavaScript-кода в строгий режим работы, который делает язык более безопасным и предсказуемым. Она появилась в ECMAScript 5 как ответ на многочисленные проблемы,. . .
Как в jQuery проверить, что элемент скрыт
hw_wired 10.02.2025
jQuery предоставляет несколько эффективных способов определить, скрыт элемент или отображается на странице. Самый простой метод использует специальные селекторы :hidden и :visible. Селектор :hidden. . .
Как проверить (check out) ветку Git в удаленном репозитории
hw_wired 10.02.2025
Проверка удаленной ветки в Git требует понимания нескольких базовых концепций и точного выполнения определенной последовательности действий. Для начала необходимо получить актуальную информацию о. . .
chucknorris в HTML и другие обозначения цветов
hw_wired 10.02.2025
HTML, как основной язык разметки веб-страниц, прошел длинный путь развития в плане работы с цветами. На заре развития веб-технологий разработчики могли использовать только базовый набор из 16. . .
Стек и куча: отличия и назначение
hw_wired 10.02.2025
Управление памятью - ключевой элемент работы любой программы. В современных языках программирования память делится на две основные области: стек и кучу. Каждая из них обладает уникальными. . .
Комментарии в JSON
hw_wired 10.02.2025
JSON - текстовый формат обмена данными, построенный на основе синтаксиса JavaScript. Этот формат отличается простотой, читаемостью и широкой поддержкой во всех современных языках программирования. . . .
Перезаписываем локальные файлы с помощью git pull
hw_wired 10.02.2025
Git pull - незаменимая команда для синхронизации локального репозитория с удаленным. При работе над проектом в команде разработчиков часто возникает необходимость получить актуальные изменения,. . .
Оператор --> в C++
hw_wired 10.02.2025
Оператор --> (называемый "spaceship operator" или оператор космического корабля) - важное нововведение в стандарте C++20, упрощающее реализацию операций сравнения в пользовательских типах данных. . . .
Отмена git add до коммита
hw_wired 10.02.2025
Git предлагает несколько методов для отмены индексации файлов перед созданием коммита. Разработчики часто сталкиваются с ситуацией, когда нужно убрать файлы из индекса, не теряя внесенные изменения в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru