Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
4 / 3 / 1
Регистрация: 18.12.2008
Сообщений: 136

Найти произведение цифр, встречающихся в строке

24.06.2009, 13:16. Показов 2381. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана строка символов до точки. Группа символов в ней между пробелами считается словом Найти произведение цифр, встречающихся в строке.
Delphi
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
program Project315;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
var
s:string;
i:integer;
g:longint;
 
begin
Write('Vvedite Stroku: ');
Readln(s);
s:=Copy(s,1,pos('.',s)-1);
g:=1;
 
begin
For i:=1 to Length(s) do
If s[i] in ['0'..'9'] then g:=g*(ord(s[i])-48);
end;
 
Writeln('Result = ',g);
Readln;
end.
Подскажите как сделать чтобы программа правильно высчитывала:
1 2 3. - выводит 6 это правильно.
Проблема с двухзначными числами например:
22 22. программа считает 16.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.06.2009, 13:16
Ответы с готовыми решениями:

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

Найти такое число, что сумма его цифр превосходит произведение цифр этого же числа на 1
сумма цифр заданного четырехзначного N превосходит произведение цифр этого же числа на 1. ПОМОГИТЕ ПОЖАЛУЙСТА

Вставить в строке знак «!» после символов, принадлежащих множеству и встречающихся в строке 2 раза
3)Дана строка и множество символов. Вставить в строке знак «!» после символов, принадлежащих множеству и встречающихся в строке 2 раза.

8
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1107 / 622 / 139
Регистрация: 31.03.2009
Сообщений: 2,567
24.06.2009, 13:26
можно же Val сделать?
1
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
24.06.2009, 13:29
я предлагаю сделать так
Pascal
1
2
3
4
5
6
7
8
9
10
11
l:=false;
t:=0;
begin
For i:=1 to Length(s) do
If (s[i] in ['0'..'9'])and(l=false)  then 
                          begin
                            l:=true;
                            t:=org(s[i])-48;
                          end else
If (s[i] in ['0'..'9'])and(l)  then   t:=t*10+org(s[i])-48 else begin g:=g*t; l:=false; end;
end;
1
 Аватар для Jazon_deenAlt
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
24.06.2009, 13:45
ну так правильно... у вас же
Delphi
1
If s[i] in ['0'..'9'] then g:=g*(ord(s[i])-48);
считает именно поцыфрово тоесть 22 ето есть 2 потом еще раз 2...
предлагаю раз уж так ввести какуюта переменную и сделать вместо
Delphi
1
2
3
For i:=1 to Length(s) do
If s[i] in ['0'..'9'] then g:=g*(ord(s[i])-48);
end;
что-то типа так
Delphi
1
2
3
4
5
6
7
8
9
10
11
perem:=0;
For i:=1 to Length(s) do
If (s[i] in ['0'..'9']) and (s[i+1] not in ['0'..'9']) then begin
perem:=perem*10 + (ord(s[i])-48)
g:=g*perem;
perem:=0;
end
else begin
perem:=perem*10 + (ord(s[i])-48);
end;
end;
как-то так) должно работать)
0
4 / 3 / 1
Регистрация: 18.12.2008
Сообщений: 136
24.06.2009, 14:09  [ТС]
Всё понял спасибо

Добавлено через 23 минуты 1 секунду
Delphi
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
program Project315;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
var
s:string;
l:boolean;
t,g:longint;
i:integer;
 
begin
Write('Vvedite Stroku: ');
Readln(s);
//s:=Copy(s,1,pos('.',s)-1);
g:=1;
 
begin
l:=false;
t:=0;
For i:=1 to Length(s) do
If (s[i] in ['0'..'9'])and(l=false)  then
                          begin
                            l:=true;
                            t:=ord(s[i])-48;
                          end else
If (s[i] in ['0'..'9'])and(l)  then   t:=t*10+ord(s[i])-48 else begin g:=g*t; l:=false; end;
Writeln('Result = ',g);
Readln;
end;
end.
Все равно считает символы после точки
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
24.06.2009, 14:29
Все равно считает символы после точки
А это зачем убрал?
//s:=Copy(s,1,pos('.',s)-1);
0
4 / 3 / 1
Регистрация: 18.12.2008
Сообщений: 136
24.06.2009, 14:35  [ТС]
С этим вообще стало, просто выводить то число, которое ввёл.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
24.06.2009, 14:41
Я вообще не понимаю, что ты делаешь. По условию нужно посчитать произведение цифр и все.
Или ты не все условие написал, и цифры и числа для тебя без разницы?
0
4 / 3 / 1
Регистрация: 18.12.2008
Сообщений: 136
24.06.2009, 14:43  [ТС]
Условие написал всё, только у меня считает символы после точки. Нужно считать только то что до точки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.06.2009, 14:43
Помогаю со студенческими работами здесь

Найти произведение цифр числа
Помогите решить задания!!!!!!!!!!!!!!! Буду очень благодарен.....

Найти произведение цифр k значного числа
Помогите пожалуйста создать программу которая будет вычислять произведение цифр k значного числа

Найти произведение первых трех цифр
Найти произведение первых трех цифр заданного целого числа и определить какому символу оно соответствует.

Найти произведение цифр натурального числа n.
ветвление 14.1 Написать программу, которая по заданным трем числам определяет, является ли сумма каких-либо двух из них положительной ...

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru