Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 28.01.2022
Сообщений: 10

Заменить слова-цифры соответствующими числовыми значениями и подсчитать их сумму

31.01.2022, 16:57. Показов 899. Ответов 5

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Прошу проанализировать задачу и объяснить ее логику.
Само задание:Составить программу, которая создает одномерный массив, заполняет его, выводит на экран. После чего выполняет задачи с ним и выводит на экран видоизмененную строку.
Задачка:Строка состоит из некоторого количества слов – цифр в пределах от 1 до 9. Заменить эти слова соответствующими числовыми значениями и подсчитать их сумму. Спасибо
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.01.2022, 16:57
Ответы с готовыми решениями:

Заменить все положительные четные значения массива соответствующими им отрицательными значениями
Здравствуйте, сможет кто помочь? Тут такое задание: "Дан одномерный целочисленный массив. Замените все положительные четные значения...

Дан текст. Заменить все цифры соответствующими словами
Дан текст. Заменить все цифры соответствующими словами.(сделать через switch case)

Дан текст. Заменить все цифры соответствующими словами
Дан текст. Заменить все цифры соответствующими словами.

5
 Аватар для XzzzX
405 / 280 / 120
Регистрация: 09.07.2021
Сообщений: 1,016
Записей в блоге: 1
31.01.2022, 17:16
ну а с чем конкретно возникают проблемы? с чтением строки?

что бы получить массив чисел из строки используйте .ToIntegers
что бы получить сумму массива используйте .Sum
0
 Аватар для XzzzX
405 / 280 / 120
Регистрация: 09.07.2021
Сообщений: 1,016
Записей в блоге: 1
31.01.2022, 17:25
конечно, если числа в строке не разделены пробелами, то .ToIntegers не поможет. в таком случае, что бы получить массив, следует использовать функцию преобразования .Select(s-> s.ToDigit), а затем преобразовать полученную последовательность в массив(раз уж это нужно по заданию) .ToArray в итоге получится .Select(s-> s.ToDigit).ToArray

Добавлено через 1 минуту
либо "классический" вариант: сделать цикл, на каждой итерации которого преобразовывать s[i] в integer и прибавлять значение к какой то переменной

Добавлено через 1 минуту
или в ваше случае понятие "слова" не было условным?
0
0 / 0 / 0
Регистрация: 28.01.2022
Сообщений: 10
31.01.2022, 19:17  [ТС]
Здравствуйте, не могли бы Вы подсказать можно ли в данном случае все-таки найти сумму и как это сделать?
Code
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
31
32
33
34
var
  a:array[0..9]of string;
  s,temp,stemp:string;
  i,j:integer;
begin
  writeln('Слова-цифры: ');
  a[1]:='один';a[2]:='два';a[3]:='три';
  a[4]:='четыре';a[5]:='пять';a[6]:='шесть';
  a[7]:='семь';a[8]:='восемь';a[9]:='девять';
  readln(s);
  temp:='';
  stemp:='';
  for i:=1 to length(s) do
  begin
    if s[i] in ['а'..'я','А'..'Я'] then
      temp:=temp+s[i];
    if not (s[i] in ['а'..'я','А'..'Я']) or (i=length(s)) then
    begin
      if temp<>'' then
      begin
        temp:=LowerCase(temp);
        for j:=1 to 9 do
          if a[j]=temp then
            str(j,temp);
      end;
      stemp:=stemp+temp;
      if not (s[i] in ['а'..'я','А'..'Я']) then
        stemp:=stemp+s[i];
      temp:=''
    end;
  end;
  s:=stemp;
  writeln('Цифры: ',s); 
end.
0
 Аватар для XzzzX
405 / 280 / 120
Регистрация: 09.07.2021
Сообщений: 1,016
Записей в блоге: 1
31.01.2022, 20:40
Лучший ответ Сообщение было отмечено SANYA23 как решение

Решение

значит с pascalABC.Net Вы всё таки не знакомы и пишите в старом стиле(тогда лучше бы создали тему в соответствующем разделе).

написать с нуля кстати проще, чем пытаться довести до ума этот код.
Кликните здесь для просмотра всего текста
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
function WordToInt(word: string): integer;
begin
  if word = 'один' then
    result:= 1
  else if word = 'два' then
    result:= 2
  else if word = 'три' then
    result:= 3
  else if word = 'четыре' then
    result:= 4
  else if word = 'пять' then
    result:= 5
  else if word = 'шесть' then
    result:= 6
  else if word = 'семь' then
    result:= 7
  else if word = 'восемь' then
    result:= 8
  else 
    result:= 9;
end;
 
BEGIN
  ReadLnString.ToWords.Sum(s-> (WordToInt(s))).Print;
END.


Добавлено через 2 минуты
а ну да, надо ведь через массив. да и с case лучше выглядит
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function WordToInt(word: string): integer;
begin
  case word of
    'один': result:= 1;
    'два': result:= 2;
    'три': result:= 3;
    'четыре': result:= 4;
    'пять': result:= 5;
    'шесть': result:= 6;
    'семь': result:= 7;
    'восемь': result:= 8;
  else 
    result:= 9;
  end;
end;
 
BEGIN
  var a:= ReadLnString.ToWords.Select(s-> WordToInt(s)).ToArray;
  a.Println;
  a.Sum.println;
END.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.01.2022, 20:40
Помогаю со студенческими работами здесь

Выбор значений ComboBox с соответствующими им числовыми показателями
Всем привет По заданию необходимо передать значения из &quot;label-ов с 1-8&quot; в comboBox из которых он впоследствии и будет состоять Затем...

Удалить из строки лишние пробелы и заменить цифры соответствующими буквами латинского алфавита
С клавиатуры вводится последовательность, содержащая от 1 до 50 слов, в каждом из которых от 1 до 10 строчных латинских букв и цифр. Между...

Заменить слова в строке числами, соответствующими количеству входящих в них символов
Само задание: Ввести с клавиатуры символьную строку длиной не более 80 символов, рассматриваемую как произвольное абстрактное...

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru