Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2009, 00:20   #11
Doublefaced
Форумчанин
 
Регистрация: 01.03.2009
Сообщений: 100
По умолчанию

Код:
var
s:string;
l,i:integer;
g:longint;
begin
repeat
writeln('Vvedite stroku:');
readln(s);
until pos('.',s)>0;
begin
g:=1;
l:=length(s);
for i:=1 to l do
if s[i] in ['0'..'9'] then g:=g*(ord(s[i])-48);
end;
writeln('Result:');
writeln(g);
readln;
end.
Выложу решение, можнт кому приготится, работает, кроме пробелов.
Doublefaced вне форума Ответить с цитированием
Старый 09.06.2009, 00:24   #12
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Оо
там по-моему лишнего много.. вот мой вариант, на котором я тестировал
Код:
var
s:string;
l,i:integer;
g:longint;
begin
writeln('Vvedite stroku:');
readln(s);
g:=1;
l:=length(s);
for i:=1 to l do
if s[i] in ['0'..'9'] then g := g*(ord(s[i])-48);
writeln(g);
readln;
end.
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 09.06.2009, 00:27   #13
Doublefaced
Форумчанин
 
Регистрация: 01.03.2009
Сообщений: 100
По умолчанию

Всё из-за строки символов до точки
Doublefaced вне форума Ответить с цитированием
Старый 09.06.2009, 00:35   #14
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Цитата:
Сообщение от Doublefaced Посмотреть сообщение
Всё из-за строки символов до точки
Код:
...
begin
writeln('Vvedite stroku:');
readln(s);
s := copy(s,1,pos('.',s);
...
например так, если в строке содержится точка..
если же надо до момента ввода точки, считывайте уж посимвольно и прибавляйте к строке символы, отличные от точки..
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 09.06.2009, 15:24   #15
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от PrettyGirl
Найти произведение чисел в строке. Например, в строке "kjjjkkj2.5jkjn,,,hfd45jgfvjlkf dii1 0,2hfhg" произведение равно 2*5*45*10*2=9000
Код:
uses crt;
var
s,buf : string;
p,tmp : longint;
i,len,code : integer;

begin
clrscr;
p := 1;
readln(s);
i := 1;
len := length(s);
buf := '';
while i<=len do
 begin
 while (i<=len) and not (s[i] in ['0'..'9']) do inc(i);
 while (i<=len) and (s[i] in ['0'..'9']) do
  begin
  buf := buf + s[i];
  inc(i);
  end;
 val(buf,tmp,code);
 p := p*tmp;
 buf := '';
 end;

writeln(p);

readln;
end.
В следующий раз показывайте свои наработки.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 09.06.2009, 19:18   #16
Doublefaced
Форумчанин
 
Регистрация: 01.03.2009
Сообщений: 100
По умолчанию

Помогите сделать, чтобы считалось то что только до точки.
Doublefaced вне форума Ответить с цитированием
Старый 09.06.2009, 19:33   #17
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Doublefaced
Помогите сделать, чтобы считалось то что только до точки.
Пост #14 смотрите. Вам уже ответили.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 09.06.2009, 19:43   #18
Doublefaced
Форумчанин
 
Регистрация: 01.03.2009
Сообщений: 100
По умолчанию

Цитата:
Сообщение от __STDC__ Посмотреть сообщение
если же надо до момента ввода точки, считывайте уж посимвольно и прибавляйте к строке символы, отличные от точки..
как это? поясните пожалуйста.
Doublefaced вне форума Ответить с цитированием
Старый 09.06.2009, 19:45   #19
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Doublefaced, что как? Как считывать посимвольно? С помощью readkey.
Код:
repeat
c := readkey;
if c<>'.' then s:=s+c;
until c='.';
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 09.06.2009, 20:13   #20
Doublefaced
Форумчанин
 
Регистрация: 01.03.2009
Сообщений: 100
По умолчанию

А если я в делфи (КонсольАпл)?
Doublefaced вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сложение цифр в строке от 1 до 5 buba3230 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 04.06.2009 23:53
Найти произведение цифр натурального числа, больших В microlab Помощь студентам 6 23.12.2008 20:46
вычислить произведение четных чисел в каждой строке массива. Oliver Sykes Паскаль, Turbo Pascal, PascalABC.NET 5 09.10.2008 03:43
Найти (в процентах) частоту появления каждого из m наиболее часто встречающихся элементов sk1p Паскаль, Turbo Pascal, PascalABC.NET 2 26.09.2008 23:57