IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> И снова строки..., Массив элементов строки
сообщение
Сообщение #1


Гость






Задача.
В строке содержаться целые числа,разделенные запятыми. после последнего числа стоит точка. Создать массив из этих чисел.

{Строку вводим с клавиатуры. А потом выводим числа в строке}

Помогите!Не могу понять как создать этот массив...sad.gif
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


Что-то в коде не видно массива ^^^
Может так с массивом:
var
x: array [1..25] of longint;
i,j,n: Integer;
s,s1,s2: string;
begin
j:=1;
readln(s);
s2:=s;
for i:=1 to length(s) do begin
if s[i] in [','] then begin
s1:=copy(s2,1,pos(',',s2)-1);
val(s1,x[j],n);
delete(s2,1,pos(',',s2));
inc(j);
end else if s[i] in ['.'] then begin
s1:=copy(s2,1,pos('.',s2)-1);
val(s1,x[j],n); break; end;
end;

Тут идет преобразование в числа, код не компактный blum.gif , тебе выбирать.. smile.gif


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Чтоб непоняток не было полностью приведу:
var x:array [1..255] of longint;
i,kl:integer;
s:string;
begin
{readln (s);}
s:='565,44325,6754,2134,5,34.';
i:=0; kl:=0;
fillchar(x,sizeof(x),0);
repeat
inc (i); inc (kl);
while s[i] in ['0'..'9'] do begin
x[kl]:=x[kl]*10+ord(s[i])-$30;
inc (i);
end;
until s[i]='.';
for i:=1 to kl do writeln (x[i]);
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Malice, я не могу понять,как ты вывел формулу x[kl]:=x[kl]*10+ord(s[i])-$30... то есть не понимаю почему $30 в конце. Объясни,если нетрудно. Спасибо за решение задачи. smile.gif
Спасибо и Артемию smile.gif
P.S. Сразу про решение задачи от Malice не написала,потому что набрать его в Паскале не было возможности(
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 5.12.2021 17:59
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name